summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>2012-11-16 01:00:05 +0000
committermsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>2012-11-16 01:00:05 +0000
commita469f8a57669e1948d5cc29005d8c097312de63a (patch)
tree4af697f80e08ff9f10989840ea8a2669b73b8e08
parent76aa1ac14cceecf4968355e1ea6af822bce9cfc3 (diff)
Merge changes from CUPS 1.7svn-r10704.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@4027 a1ca3aef-8c08-0410-bb20-df032aa958be
-rw-r--r--CHANGES-1.6.txt2
-rw-r--r--CHANGES.txt7
-rw-r--r--backend/ipp.c442
-rw-r--r--backend/lpd.c4
-rw-r--r--backend/socket.c17
-rw-r--r--backend/usb-darwin.c63
-rw-r--r--cups/adminutil.c7
-rw-r--r--cups/array.c25
-rw-r--r--cups/cups-private.h5
-rw-r--r--cups/cups.h6
-rw-r--r--cups/debug.c44
-rw-r--r--cups/dest-job.c4
-rw-r--r--cups/dest-localization.c2
-rw-r--r--cups/dest.c3
-rw-r--r--cups/encode.c264
-rw-r--r--cups/globals.c12
-rw-r--r--cups/http-addr.c101
-rw-r--r--cups/http-addrlist.c64
-rw-r--r--cups/http-private.h52
-rw-r--r--cups/http-support.c14
-rw-r--r--cups/http.c1615
-rw-r--r--cups/http.h329
-rw-r--r--cups/ipp-private.h7
-rw-r--r--cups/ipp-support.c213
-rw-r--r--cups/ipp.c785
-rw-r--r--cups/ipp.h613
-rw-r--r--cups/ppd-cache.c13
-rw-r--r--cups/ppd-private.h3
-rw-r--r--cups/pwg-media.c37
-rw-r--r--cups/raster.h4
-rw-r--r--cups/request.c33
-rw-r--r--cups/testarray.c84
-rw-r--r--cups/testhttp.c18
-rw-r--r--cups/testipp.c18
-rw-r--r--cups/util.c9
-rw-r--r--cups/versioning.h30
-rw-r--r--doc/help/api-httpipp.html1160
-rw-r--r--locale/cups.pot839
-rw-r--r--locale/cups.strings22
-rw-r--r--locale/cups_ca.po1733
-rw-r--r--locale/cups_es.po2775
-rw-r--r--locale/cups_ja.po2050
-rw-r--r--monitor/tbcp.c9
-rw-r--r--scheduler/client.c65
-rw-r--r--scheduler/conf.c6
-rw-r--r--scheduler/conf.h5
-rw-r--r--scheduler/dirsvc.c4
-rw-r--r--scheduler/ipp.c3
-rw-r--r--scheduler/job.c28
-rw-r--r--scheduler/listen.c2
-rw-r--r--scheduler/main.c2
-rw-r--r--scheduler/network.c2
-rw-r--r--scheduler/printers.c4
-rw-r--r--scheduler/statbuf.c9
-rw-r--r--systemv/cupstestppd.c7
-rw-r--r--test/ippserver.c1775
-rw-r--r--test/ipptool.c50
-rwxr-xr-xtest/run-stp-tests.sh2
-rw-r--r--xcode/CUPS.xcodeproj/project.pbxproj2
-rw-r--r--xcode/config.h22
60 files changed, 7204 insertions, 8321 deletions
diff --git a/CHANGES-1.6.txt b/CHANGES-1.6.txt
index b7b72b8c1..e5e87ae88 100644
--- a/CHANGES-1.6.txt
+++ b/CHANGES-1.6.txt
@@ -11,7 +11,7 @@ CHANGES IN CUPS V1.6.2
- Fixed EPM packaging files (STR #4199)
- OpenBSD build fix (STR #4195, STR #4196, STR #4197)
- The scheduler could crash when using Avahi (STR #4183, STR #4192,
- STR #4200)
+ STR #4200, STR #4213)
- The IPP backend could get stuck in an endless loop on certain network
errors (STR #4194)
- 32-bit builds failed on Debian (STR #4133)
diff --git a/CHANGES.txt b/CHANGES.txt
index 637f4357a..3f4664159 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,8 +1,13 @@
-CHANGES.txt - 1.7b1 - 2012-09-30
+CHANGES.txt - 1.7b1 - 2012-11-15
--------------------------------
CHANGES IN CUPS V1.7b1
+ - Added new IPP APIs for checking values (STR #4167)
+ - Added new IPP APis for adding and setting formatted strings.
+ - Added new HTTP APIs to support basic server functionality via libcups.
+ - CUPS now supports compressing and decompressing streamed data
+ (STR #4168)
- CUPS now supports higher-level PIN printing, external accounting
systems, and "print here" printing environments (STR #4169)
- IRIX is no longer a supported operating system (STR #4092)
diff --git a/backend/ipp.c b/backend/ipp.c
index 7f8a17e1b..180586e05 100644
--- a/backend/ipp.c
+++ b/backend/ipp.c
@@ -19,7 +19,6 @@
* main() - Send a file to the printer or server.
* cancel_job() - Cancel a print job.
* check_printer_state() - Check the printer state.
- * compress_files() - Compress print files.
* monitor_printer() - Monitor the printer state.
* new_request() - Create a new print creation or validation
* request.
@@ -58,6 +57,18 @@ extern void xpc_connection_set_target_uid(xpc_connection_t connection,
/*
+ * Bits for job-state-reasons we care about...
+ */
+
+#define _CUPS_JSR_ACCOUNT_AUTHORIZATION_FAILED 0x01
+#define _CUPS_JSR_ACCOUNT_CLOSED 0x02
+#define _CUPS_JSR_ACCOUNT_INFO_NEEDED 0x04
+#define _CUPS_JSR_ACCOUNT_LIMIT_REACHED 0x08
+#define _CUPS_JSR_JOB_PASSWORD_WAIT 0x10
+#define _CUPS_JSR_JOB_RELEASE_WAIT 0x20
+
+
+/*
* Types...
*/
@@ -70,6 +81,7 @@ typedef struct _cups_monitor_s /**** Monitoring data ****/
int port, /* Port number */
version, /* IPP version */
job_id, /* Job ID for submitted job */
+ job_reasons, /* Job state reasons bits */
get_job_attrs; /* Support Get-Job-Attributes? */
const char *job_name; /* Job name for submitted job */
http_encryption_t encryption; /* Use encryption? */
@@ -107,6 +119,9 @@ static int password_tries = 0;
/* Password tries */
static const char * const pattrs[] = /* Printer attributes we want */
{
+#ifdef HAVE_LIBZ
+ "compression-supported",
+#endif /* HAVE_LIBZ */
"copies-supported",
"cups-version",
"document-format-supported",
@@ -158,17 +173,16 @@ static void cancel_job(http_t *http, const char *uri, int id,
static ipp_pstate_t check_printer_state(http_t *http, const char *uri,
const char *resource,
const char *user, int version);
-#ifdef HAVE_LIBZ
-static void compress_files(int num_files, char **files);
-#endif /* HAVE_LIBZ */
static void *monitor_printer(_cups_monitor_t *monitor);
static ipp_t *new_request(ipp_op_t op, int version, const char *uri,
const char *user, const char *title,
int num_options, cups_option_t *options,
const char *compression, int copies,
const char *format, _ppd_cache_t *pc,
+ ppd_file_t *ppd,
ipp_attribute_t *media_col_sup,
- ipp_attribute_t *doc_handling_sup);
+ ipp_attribute_t *doc_handling_sup,
+ int print_color_mode);
static const char *password_cb(const char *prompt, http_t *http,
const char *method, const char *resource,
void *user_data);
@@ -235,12 +249,16 @@ main(int argc, /* I - Number of command-line args */
prev_delay; /* Previous delay */
const char *compression; /* Compression mode */
int waitjob, /* Wait for job complete? */
+ waitjob_tries = 0, /* Number of times we've waited */
waitprinter; /* Wait for printer ready? */
_cups_monitor_t monitor; /* Monitoring data */
ipp_attribute_t *job_id_attr; /* job-id attribute */
int job_id; /* job-id value */
ipp_attribute_t *job_sheets; /* job-media-sheets-completed */
ipp_attribute_t *job_state; /* job-state */
+#ifdef HAVE_LIBZ
+ ipp_attribute_t *compression_sup; /* compression-supported */
+#endif /* HAVE_LIBZ */
ipp_attribute_t *copies_sup; /* copies-supported */
ipp_attribute_t *cups_version; /* cups-version */
ipp_attribute_t *format_sup; /* document-format-supported */
@@ -252,7 +270,8 @@ main(int argc, /* I - Number of command-line args */
int create_job = 0, /* Does printer support Create-Job? */
get_job_attrs = 0, /* Does printer support Get-Job-Attributes? */
send_document = 0, /* Does printer support Send-Document? */
- validate_job = 0; /* Does printer support Validate-Job? */
+ validate_job = 0, /* Does printer support Validate-Job? */
+ print_color_mode = 0; /* Does printer support print-color-mode? */
int copies, /* Number of copies for job */
copies_remaining; /* Number of copies remaining */
const char *content_type, /* CONTENT_TYPE environment variable */
@@ -265,8 +284,8 @@ main(int argc, /* I - Number of command-line args */
struct sigaction action; /* Actions for POSIX signals */
#endif /* HAVE_SIGACTION && !HAVE_SIGSET */
int version; /* IPP version */
- ppd_file_t *ppd; /* PPD file */
- _ppd_cache_t *pc; /* PPD cache and mapping data */
+ ppd_file_t *ppd = NULL; /* PPD file */
+ _ppd_cache_t *pc = NULL; /* PPD cache and mapping data */
fd_set input; /* Input set for select() */
@@ -551,6 +570,13 @@ main(int argc, /* I - Number of command-line args */
if (!_cups_strcasecmp(value, "true") || !_cups_strcasecmp(value, "yes") ||
!_cups_strcasecmp(value, "on") || !_cups_strcasecmp(value, "gzip"))
compression = "gzip";
+ else if (!_cups_strcasecmp(value, "deflate"))
+ compression = "deflate";
+ else if (!_cups_strcasecmp(value, "false") ||
+ !_cups_strcasecmp(value, "no") ||
+ !_cups_strcasecmp(value, "off") ||
+ !_cups_strcasecmp(value, "none"))
+ compression = "none";
}
#endif /* HAVE_LIBZ */
else if (!_cups_strcasecmp(name, "contimeout"))
@@ -601,11 +627,6 @@ main(int argc, /* I - Number of command-line args */
files = argv + 6;
send_options = 1;
-#ifdef HAVE_LIBZ
- if (compression)
- compress_files(num_files, files);
-#endif /* HAVE_LIBZ */
-
fprintf(stderr, "DEBUG: %d files to send in job...\n", num_files);
}
@@ -670,7 +691,8 @@ main(int argc, /* I - Number of command-line args */
return (CUPS_BACKEND_OK);
}
- http = _httpCreate(hostname, port, addrlist, cupsEncryption(), AF_UNSPEC);
+ http = _httpCreate(hostname, port, addrlist, AF_UNSPEC, cupsEncryption(), 1,
+ _HTTP_MODE_CLIENT);
httpSetTimeout(http, 30.0, timeout_cb, NULL);
/*
@@ -808,7 +830,7 @@ main(int argc, /* I - Number of command-line args */
fprintf(stderr, "DEBUG: Connected to %s:%d...\n",
httpAddrString(http->hostaddr, addrname, sizeof(addrname)),
- _httpAddrPort(http->hostaddr));
+ httpAddrPort(http->hostaddr));
/*
* Build a URI for the printer and fill the standard IPP attributes for
@@ -824,6 +846,9 @@ main(int argc, /* I - Number of command-line args */
* copies...
*/
+#ifdef HAVE_LIBZ
+ compression_sup = NULL;
+#endif /* HAVE_LIBZ */
copies_sup = NULL;
cups_version = NULL;
format_sup = NULL;
@@ -909,16 +934,18 @@ main(int argc, /* I - Number of command-line args */
if (version >= 20)
{
- _cupsLangPrintFilter(stderr, "INFO",
- _("The printer does not support IPP/%d.%d, trying "
- "IPP/%s."), version / 10, version % 10, "1.1");
+ _cupsLangPrintFilter(stderr, "INFO", _("Preparing to print."));
+ fprintf(stderr,
+ "DEBUG: The printer does not support IPP/%d.%d, trying "
+ "IPP/1.1.\n", version / 10, version % 10);
version = 11;
}
else
{
- _cupsLangPrintFilter(stderr, "INFO",
- _("The printer does not support IPP/%d.%d, trying "
- "IPP/%s."), version / 10, version % 10, "1.0");
+ _cupsLangPrintFilter(stderr, "INFO", _("Preparing to print."));
+ fprintf(stderr,
+ "DEBUG: The printer does not support IPP/%d.%d, trying "
+ "IPP/1.0.\n", version / 10, version % 10);
version = 10;
}
@@ -927,8 +954,8 @@ main(int argc, /* I - Number of command-line args */
else if (ipp_status == IPP_NOT_FOUND)
{
_cupsLangPrintFilter(stderr, "ERROR",
- _("The printer URI is incorrect or no longer "
- "exists."));
+ _("The printer configuration is incorrect or the "
+ "printer no longer exists."));
ippDelete(supported);
@@ -982,9 +1009,15 @@ main(int argc, /* I - Number of command-line args */
if ((printer_state = ippFindAttribute(supported,
"printer-state-reasons",
- IPP_TAG_KEYWORD)) != NULL && !busy)
+ IPP_TAG_KEYWORD)) == NULL)
+ {
+ update_reasons(NULL, "+cups-ipp-conformance-failure-report,"
+ "cups-ipp-missing-printer-state-reasons");
+ }
+ else if (!busy)
{
for (i = 0; i < printer_state->num_values; i ++)
+ {
if (!strcmp(printer_state->values[0].string.text,
"spool-area-full") ||
!strncmp(printer_state->values[0].string.text, "spool-area-full-",
@@ -993,10 +1026,8 @@ main(int argc, /* I - Number of command-line args */
busy = 1;
break;
}
+ }
}
- else
- update_reasons(NULL, "+cups-ipp-conformance-failure-report,"
- "cups-ipp-missing-printer-state-reasons");
if (busy)
{
@@ -1018,6 +1049,35 @@ main(int argc, /* I - Number of command-line args */
* Check for supported attributes...
*/
+#ifdef HAVE_LIBZ
+ if ((compression_sup = ippFindAttribute(supported, "compression-supported",
+ IPP_TAG_KEYWORD)) != NULL)
+ {
+ /*
+ * Check whether the requested compression is supported and/or default to
+ * compression if supported...
+ */
+
+ if (compression && !ippContainsString(compression_sup, compression))
+ {
+ fprintf(stderr, "DEBUG: Printer does not support the requested "
+ "compression value \"%s\".\n", compression);
+ compression = NULL;
+ }
+ else if (!compression)
+ {
+ if (ippContainsString(compression_sup, "deflate"))
+ compression = "deflate";
+ else if (ippContainsString(compression_sup, "gzip"))
+ compression = "gzip";
+
+ if (compression)
+ fprintf(stderr, "DEBUG: Automatically using \"%s\" compression.\n",
+ compression);
+ }
+ }
+#endif /* HAVE_LIBZ */
+
if ((copies_sup = ippFindAttribute(supported, "copies-supported",
IPP_TAG_RANGE)) != NULL)
{
@@ -1056,9 +1116,19 @@ main(int argc, /* I - Number of command-line args */
media_col_sup->values[i].string.text);
}
+ print_color_mode = ippFindAttribute(supported,
+ "print-color-mode-supported",
+ IPP_TAG_KEYWORD) != NULL;
+
if ((operations_sup = ippFindAttribute(supported, "operations-supported",
IPP_TAG_ENUM)) != NULL)
{
+ fprintf(stderr, "DEBUG: operations-supported (%d values)\n",
+ operations_sup->num_values);
+ for (i = 0; i < operations_sup->num_values; i ++)
+ fprintf(stderr, "DEBUG: [%d] = %s\n", i,
+ ippOpString(operations_sup->values[i].integer));
+
for (i = 0; i < operations_sup->num_values; i ++)
if (operations_sup->values[i].integer == IPP_PRINT_JOB)
break;
@@ -1190,7 +1260,6 @@ main(int argc, /* I - Number of command-line args */
*/
options = NULL;
- pc = NULL;
if (send_options)
{
@@ -1205,7 +1274,8 @@ main(int argc, /* I - Number of command-line args */
ppd = ppdOpenFile(getenv("PPD"));
pc = _ppdCacheCreateWithPPD(ppd);
- ppdClose(ppd);
+ ppdMarkDefaults(ppd);
+ cupsMarkOptions(ppd, num_options, options);
}
}
else
@@ -1328,8 +1398,8 @@ main(int argc, /* I - Number of command-line args */
{
request = new_request(IPP_VALIDATE_JOB, version, uri, argv[2],
monitor.job_name, num_options, options, compression,
- copies_sup ? copies : 1, document_format, pc,
- media_col_sup, doc_handling_sup);
+ copies_sup ? copies : 1, document_format, pc, ppd,
+ media_col_sup, doc_handling_sup, print_color_mode);
ippDelete(cupsDoRequest(http, request, resource));
@@ -1341,15 +1411,20 @@ main(int argc, /* I - Number of command-line args */
if (job_canceled)
break;
- if (ipp_status == IPP_SERVICE_UNAVAILABLE || ipp_status == IPP_PRINTER_BUSY)
+ if (ipp_status == IPP_STATUS_ERROR_SERVICE_UNAVAILABLE ||
+ ipp_status == IPP_STATUS_ERROR_BUSY)
{
_cupsLangPrintFilter(stderr, "INFO", _("The printer is in use."));
sleep(10);
}
- else if (ipp_status == IPP_DOCUMENT_FORMAT)
+ else if (ipp_status == IPP_STATUS_ERROR_DOCUMENT_FORMAT_NOT_SUPPORTED ||
+ ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_INFO_NEEDED ||
+ ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_CLOSED ||
+ ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_LIMIT_REACHED ||
+ ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_AUTHORIZATION_FAILED)
goto cleanup;
- else if (ipp_status == IPP_FORBIDDEN ||
- ipp_status == IPP_AUTHENTICATION_CANCELED)
+ else if (ipp_status == IPP_STATUS_ERROR_FORBIDDEN ||
+ ipp_status == IPP_STATUS_ERROR_CUPS_AUTHENTICATION_CANCELED)
{
const char *www_auth = httpGetField(http, HTTP_FIELD_WWW_AUTHENTICATE);
/* WWW-Authenticate field value */
@@ -1361,7 +1436,7 @@ main(int argc, /* I - Number of command-line args */
goto cleanup;
}
- else if (ipp_status == IPP_OPERATION_NOT_SUPPORTED)
+ else if (ipp_status == IPP_STATUS_ERROR_OPERATION_NOT_SUPPORTED)
{
/*
* This is all too common...
@@ -1401,7 +1476,8 @@ main(int argc, /* I - Number of command-line args */
IPP_PRINT_JOB,
version, uri, argv[2], monitor.job_name, num_options,
options, compression, copies_sup ? copies : 1,
- document_format, pc, media_col_sup, doc_handling_sup);
+ document_format, pc, ppd, media_col_sup,
+ doc_handling_sup, print_color_mode);
/*
* Do the request...
@@ -1490,9 +1566,9 @@ main(int argc, /* I - Number of command-line args */
if (job_canceled)
break;
- if (ipp_status == IPP_SERVICE_UNAVAILABLE ||
- ipp_status == IPP_NOT_POSSIBLE ||
- ipp_status == IPP_PRINTER_BUSY)
+ if (ipp_status == IPP_STATUS_ERROR_SERVICE_UNAVAILABLE ||
+ ipp_status == IPP_STATUS_ERROR_NOT_POSSIBLE ||
+ ipp_status == IPP_STATUS_ERROR_BUSY)
{
_cupsLangPrintFilter(stderr, "INFO", _("The printer is in use."));
sleep(10);
@@ -1507,8 +1583,12 @@ main(int argc, /* I - Number of command-line args */
goto cleanup;
}
}
- else if (ipp_status == IPP_ERROR_JOB_CANCELED ||
- ipp_status == IPP_NOT_AUTHORIZED)
+ else if (ipp_status == IPP_STATUS_ERROR_JOB_CANCELED ||
+ ipp_status == IPP_STATUS_ERROR_NOT_AUTHORIZED ||
+ ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_INFO_NEEDED ||
+ ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_CLOSED ||
+ ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_LIMIT_REACHED ||
+ ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_AUTHORIZATION_FAILED)
goto cleanup;
else
{
@@ -1517,10 +1597,10 @@ main(int argc, /* I - Number of command-line args */
*/
_cupsLangPrintFilter(stderr, "ERROR",
- _("Print file was not accepted."));
+ _("Print job was not accepted."));
- if (ipp_status == IPP_FORBIDDEN ||
- ipp_status == IPP_AUTHENTICATION_CANCELED)
+ if (ipp_status == IPP_STATUS_ERROR_FORBIDDEN ||
+ ipp_status == IPP_STATUS_ERROR_CUPS_AUTHENTICATION_CANCELED)
{
const char *www_auth = httpGetField(http, HTTP_FIELD_WWW_AUTHENTICATE);
/* WWW-Authenticate field value */
@@ -1555,8 +1635,7 @@ main(int argc, /* I - Number of command-line args */
else if ((job_id_attr = ippFindAttribute(response, "job-id",
IPP_TAG_INTEGER)) == NULL)
{
- _cupsLangPrintFilter(stderr, "INFO",
- _("Print file accepted - job ID unknown."));
+ fputs("DEBUG: Print job accepted - job ID unknown.\n", stderr);
update_reasons(NULL, "+cups-ipp-conformance-failure-report,"
"cups-ipp-missing-job-id");
job_id = 0;
@@ -1565,11 +1644,9 @@ main(int argc, /* I - Number of command-line args */
{
password_tries = 0;
monitor.job_id = job_id = job_id_attr->values[0].integer;
- _cupsLangPrintFilter(stderr, "INFO",
- _("Print file accepted - job ID %d."), job_id);
+ fprintf(stderr, "DEBUG: Print job accepted - job ID %d.\n", job_id);
}
- fprintf(stderr, "DEBUG: job-id=%d\n", job_id);
ippDelete(response);
if (job_canceled)
@@ -1618,6 +1695,9 @@ main(int argc, /* I - Number of command-line args */
http_status = cupsSendRequest(http, request, resource, 0);
if (http_status == HTTP_CONTINUE && request->state == IPP_DATA)
{
+ if (compression && strcmp(compression, "none"))
+ httpSetField(http, HTTP_FIELD_CONTENT_ENCODING, compression);
+
if (num_files == 0)
{
fd = 0;
@@ -1689,10 +1769,28 @@ main(int argc, /* I - Number of command-line args */
else if (ipp_status == IPP_SERVICE_UNAVAILABLE ||
ipp_status == IPP_NOT_POSSIBLE ||
ipp_status == IPP_PRINTER_BUSY)
+ {
+ if (argc == 6)
+ {
+ /*
+ * Need to reprocess the entire job; if we have a job ID, cancel the
+ * job first...
+ */
+
+ if (job_id > 0)
+ cancel_job(http, uri, job_id, resource, argv[2], version);
+
+ goto cleanup;
+ }
continue;
+ }
else if (ipp_status == IPP_REQUEST_VALUE ||
ipp_status == IPP_ERROR_JOB_CANCELED ||
ipp_status == IPP_NOT_AUTHORIZED ||
+ ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_INFO_NEEDED ||
+ ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_CLOSED ||
+ ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_LIMIT_REACHED ||
+ ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_AUTHORIZATION_FAILED ||
ipp_status == IPP_INTERNAL_ERROR)
{
/*
@@ -1798,6 +1896,17 @@ main(int argc, /* I - Number of command-line args */
ipp_status = IPP_OK;
break;
}
+ else if (ipp_status == IPP_INTERNAL_ERROR)
+ {
+ waitjob_tries ++;
+
+ if (waitjob_tries > 4)
+ {
+ ippDelete(response);
+ ipp_status = IPP_OK;
+ break;
+ }
+ }
}
if (response)
@@ -1905,6 +2014,7 @@ main(int argc, /* I - Number of command-line args */
cupsFreeOptions(num_options, options);
_ppdCacheDestroy(pc);
+ ppdClose(ppd);
httpClose(http);
@@ -1917,14 +2027,6 @@ main(int argc, /* I - Number of command-line args */
if (tmpfilename[0])
unlink(tmpfilename);
-#ifdef HAVE_LIBZ
- if (compression)
- {
- for (i = 0; i < num_files; i ++)
- unlink(files[i]);
- }
-#endif /* HAVE_LIBZ */
-
/*
* Return the queue status...
*/
@@ -1934,8 +2036,21 @@ main(int argc, /* I - Number of command-line args */
ipp_status <= IPP_OK_CONFLICT)
fprintf(stderr, "ATTR: auth-info-required=%s\n", auth_info_required);
+ if (ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_INFO_NEEDED)
+ fputs("JOBSTATE: account-info-needed\n", stderr);
+ else if (ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_CLOSED)
+ fputs("JOBSTATE: account-closed\n", stderr);
+ else if (ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_LIMIT_REACHED)
+ fputs("JOBSTATE: account-limit-reached\n", stderr);
+ else if (ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_AUTHORIZATION_FAILED)
+ fputs("JOBSTATE: account-authorization-failed\n", stderr);
+
if (ipp_status == IPP_NOT_AUTHORIZED || ipp_status == IPP_FORBIDDEN ||
- ipp_status == IPP_AUTHENTICATION_CANCELED)
+ ipp_status == IPP_AUTHENTICATION_CANCELED ||
+ ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_INFO_NEEDED ||
+ ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_CLOSED ||
+ ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_LIMIT_REACHED ||
+ ipp_status == IPP_STATUS_ERROR_CUPS_ACCOUNT_AUTHORIZATION_FAILED)
return (CUPS_BACKEND_AUTH_REQUIRED);
else if (ipp_status == IPP_INTERNAL_ERROR)
return (CUPS_BACKEND_STOP);
@@ -2064,77 +2179,6 @@ check_printer_state(
}
-#ifdef HAVE_LIBZ
-/*
- * 'compress_files()' - Compress print files.
- */
-
-static void
-compress_files(int num_files, /* I - Number of files */
- char **files) /* I - Files */
-{
- int i, /* Looping var */
- fd; /* Temporary file descriptor */
- ssize_t bytes; /* Bytes read/written */
- size_t total; /* Total bytes read */
- cups_file_t *in, /* Input file */
- *out; /* Output file */
- struct stat outinfo; /* Output file information */
- char filename[1024], /* Temporary filename */
- buffer[32768]; /* Copy buffer */
-
-
- fprintf(stderr, "DEBUG: Compressing %d job files...\n", num_files);
- for (i = 0; i < num_files; i ++)
- {
- if ((fd = cupsTempFd(filename, sizeof(filename))) < 0)
- {
- _cupsLangPrintError("ERROR", _("Unable to create compressed print file"));
- exit(CUPS_BACKEND_FAILED);
- }
-
- if ((out = cupsFileOpenFd(fd, "w9")) == NULL)
- {
- _cupsLangPrintError("ERROR", _("Unable to open compressed print file"));
- exit(CUPS_BACKEND_FAILED);
- }
-
- if ((in = cupsFileOpen(files[i], "r")) == NULL)
- {
- _cupsLangPrintError("ERROR", _("Unable to open print file"));
- cupsFileClose(out);
- exit(CUPS_BACKEND_FAILED);
- }
-
- total = 0;
- while ((bytes = cupsFileRead(in, buffer, sizeof(buffer))) > 0)
- if (cupsFileWrite(out, buffer, bytes) < bytes)
- {
- _cupsLangPrintError("ERROR",
- _("Unable to generate compressed print file"));
- cupsFileClose(in);
- cupsFileClose(out);
- exit(CUPS_BACKEND_FAILED);
- }
- else
- total += bytes;
-
- cupsFileClose(out);
- cupsFileClose(in);
-
- files[i] = strdup(filename);
-
- if (!stat(filename, &outinfo))
- fprintf(stderr,
- "DEBUG: File %d compressed to %.1f%% of original size, "
- CUPS_LLFMT " bytes...\n",
- i + 1, 100.0 * outinfo.st_size / total,
- CUPS_LLCAST outinfo.st_size);
- }
-}
-#endif /* HAVE_LIBZ */
-
-
/*
* 'monitor_printer()' - Monitor the printer state.
*/
@@ -2160,8 +2204,8 @@ monitor_printer(
* Make a copy of the printer connection...
*/
- http = _httpCreate(monitor->hostname, monitor->port, NULL, monitor->encryption,
- AF_UNSPEC);
+ http = _httpCreate(monitor->hostname, monitor->port, NULL, AF_UNSPEC,
+ monitor->encryption, 1, _HTTP_MODE_CLIENT);
httpSetTimeout(http, 30.0, timeout_cb, NULL);
if (username[0])
cupsSetUser(username);
@@ -2173,6 +2217,8 @@ monitor_printer(
delay = _cupsNextDelay(0, &prev_delay);
+ monitor->job_reasons = 0;
+
while (monitor->job_state < IPP_JOB_CANCELED && !job_canceled)
{
/*
@@ -2282,6 +2328,50 @@ monitor_printer(
}
}
+ if ((attr = ippFindAttribute(response, "job-state-reasons",
+ IPP_TAG_KEYWORD)) != NULL)
+ {
+ int i, new_reasons = 0; /* Looping var, new reasons */
+
+ for (i = 0; i < attr->num_values; i ++)
+ {
+ if (!strcmp(attr->values[i].string.text,
+ "account-authorization-failed"))
+ new_reasons |= _CUPS_JSR_ACCOUNT_AUTHORIZATION_FAILED;
+ else if (!strcmp(attr->values[i].string.text, "account-closed"))
+ new_reasons |= _CUPS_JSR_ACCOUNT_CLOSED;
+ else if (!strcmp(attr->values[i].string.text, "account-info-needed"))
+ new_reasons |= _CUPS_JSR_ACCOUNT_INFO_NEEDED;
+ else if (!strcmp(attr->values[i].string.text,
+ "account-limit-reached"))
+ new_reasons |= _CUPS_JSR_ACCOUNT_LIMIT_REACHED;
+ else if (!strcmp(attr->values[i].string.text, "job-password-wait"))
+ new_reasons |= _CUPS_JSR_JOB_PASSWORD_WAIT;
+ else if (!strcmp(attr->values[i].string.text, "job-release-wait"))
+ new_reasons |= _CUPS_JSR_JOB_RELEASE_WAIT;
+ }
+
+ if (new_reasons != monitor->job_reasons)
+ {
+ if (new_reasons & _CUPS_JSR_ACCOUNT_AUTHORIZATION_FAILED)
+ fputs("JOBSTATE: account-authorization-failed\n", stderr);
+ else if (new_reasons & _CUPS_JSR_ACCOUNT_CLOSED)
+ fputs("JOBSTATE: account-closed\n", stderr);
+ else if (new_reasons & _CUPS_JSR_ACCOUNT_INFO_NEEDED)
+ fputs("JOBSTATE: account-info-needed\n", stderr);
+ else if (new_reasons & _CUPS_JSR_ACCOUNT_LIMIT_REACHED)
+ fputs("JOBSTATE: account-limit-reached\n", stderr);
+ else if (new_reasons & _CUPS_JSR_JOB_PASSWORD_WAIT)
+ fputs("JOBSTATE: job-password-wait\n", stderr);
+ else if (new_reasons & _CUPS_JSR_JOB_RELEASE_WAIT)
+ fputs("JOBSTATE: job-release-wait\n", stderr);
+ else
+ fputs("JOBSTATE: job-printing\n", stderr);
+
+ monitor->job_reasons = new_reasons;
+ }
+ }
+
ippDelete(response);
fprintf(stderr, "DEBUG: (monitor) job-state=%s\n",
@@ -2344,8 +2434,10 @@ new_request(
int copies, /* I - copies value or 0 */
const char *format, /* I - document-format value or NULL */
_ppd_cache_t *pc, /* I - PPD cache and mapping data */
+ ppd_file_t *ppd, /* I - PPD file data */
ipp_attribute_t *media_col_sup, /* I - media-col-supported values */
- ipp_attribute_t *doc_handling_sup) /* I - multiple-document-handling-supported values */
+ ipp_attribute_t *doc_handling_sup, /* I - multiple-document-handling-supported values */
+ int print_color_mode) /* I - Printer supports print-color-mode */
{
int i; /* Looping var */
ipp_t *request; /* Request data */
@@ -2357,6 +2449,10 @@ new_request(
*media_type, /* media-type value */
*collate_str, /* multiple-document-handling value */
*mandatory; /* Mandatory attributes */
+ ipp_tag_t group; /* Current group */
+ ipp_attribute_t *attr; /* Current attribute */
+ const char *color_attr_name; /* Supported color attribute */
+ char buffer[1024]; /* Value buffer */
/*
@@ -2402,7 +2498,7 @@ new_request(
}
#ifdef HAVE_LIBZ
- if (compression && op != IPP_CREATE_JOB)
+ if (compression && op != IPP_OP_CREATE_JOB && op != IPP_OP_VALIDATE_JOB)
{
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_KEYWORD,
"compression", NULL, compression);
@@ -2420,19 +2516,27 @@ new_request(
{
int num_finishings = 0, /* Number of finishing values */
finishings[10]; /* Finishing enum values */
+ ppd_choice_t *choice; /* Marked choice */
/*
* Send standard IPP attributes...
*/
+ fputs("DEBUG: Adding standard IPP operation/job attributes.\n", stderr);
+
if (pc->password &&
(keyword = cupsGetOption("job-password", num_options,
options)) != NULL)
{
ippAddOctetString(request, IPP_TAG_OPERATION, "job-password",
keyword, strlen(keyword));
+
+ if ((keyword = cupsGetOption("job-password-encryption", num_options,
+ options)) == NULL)
+ keyword = "none";
+
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_KEYWORD,
- "job-password-encryption", NULL, "none");
+ "job-password-encryption", NULL, keyword);
}
if (pc->account_id &&
@@ -2457,6 +2561,7 @@ new_request(
strcmp(mandatory, "job-account-id") &&
strcmp(mandatory, "job-accounting-user-id") &&
strcmp(mandatory, "job-password") &&
+ strcmp(mandatory, "job-password-encryption") &&
strcmp(mandatory, "media") &&
strncmp(mandatory, "media-col", 9) &&
strcmp(mandatory, "multiple-document-handling") &&
@@ -2562,42 +2667,44 @@ new_request(
if ((keyword = cupsGetOption("output-bin", num_options,
options)) == NULL)
- keyword = _ppdCacheGetBin(pc, cupsGetOption("OutputBin", num_options,
- options));
+ {
+ if ((choice = ppdFindMarkedChoice(ppd, "OutputBin")) != NULL)
+ keyword = _ppdCacheGetBin(pc, choice->choice);
+ }
if (keyword)
ippAddString(request, IPP_TAG_JOB, IPP_TAG_KEYWORD, "output-bin",
NULL, keyword);
+ color_attr_name = print_color_mode ? "print-color-mode" : "output-mode";
+
if ((keyword = cupsGetOption("print-color-mode", num_options,
options)) != NULL)
- ippAddString(request, IPP_TAG_JOB, IPP_TAG_KEYWORD, "print-color-mode",
+ ippAddString(request, IPP_TAG_JOB, IPP_TAG_KEYWORD, color_attr_name,
NULL, keyword);
- else if ((keyword = cupsGetOption("ColorModel", num_options,
- options)) != NULL)
+ else if ((choice = ppdFindMarkedChoice(ppd, "ColorModel")) != NULL)
{
- if (!_cups_strcasecmp(keyword, "Gray"))
+ if (!_cups_strcasecmp(choice->choice, "Gray"))
ippAddString(request, IPP_TAG_JOB, IPP_TAG_KEYWORD,
- "print-color-mode", NULL, "monochrome");
+ color_attr_name, NULL, "monochrome");
else
ippAddString(request, IPP_TAG_JOB, IPP_TAG_KEYWORD,
- "print-color-mode", NULL, "color");
+ color_attr_name, NULL, "color");
}
if ((keyword = cupsGetOption("print-quality", num_options,
options)) != NULL)
ippAddInteger(request, IPP_TAG_JOB, IPP_TAG_ENUM, "print-quality",
atoi(keyword));
- else if ((keyword = cupsGetOption("cupsPrintQuality", num_options,
- options)) != NULL)
+ else if ((choice = ppdFindMarkedChoice(ppd, "cupsPrintQuality")) != NULL)
{
- if (!_cups_strcasecmp(keyword, "draft"))
+ if (!_cups_strcasecmp(choice->choice, "draft"))
ippAddInteger(request, IPP_TAG_JOB, IPP_TAG_ENUM, "print-quality",
IPP_QUALITY_DRAFT);
- else if (!_cups_strcasecmp(keyword, "normal"))
+ else if (!_cups_strcasecmp(choice->choice, "normal"))
ippAddInteger(request, IPP_TAG_JOB, IPP_TAG_ENUM, "print-quality",
IPP_QUALITY_NORMAL);
- else if (!_cups_strcasecmp(keyword, "high"))
+ else if (!_cups_strcasecmp(choice->choice, "high"))
ippAddInteger(request, IPP_TAG_JOB, IPP_TAG_ENUM, "print-quality",
IPP_QUALITY_HIGH);
}
@@ -2606,16 +2713,15 @@ new_request(
ippAddString(request, IPP_TAG_JOB, IPP_TAG_KEYWORD, "sides",
NULL, keyword);
else if (pc->sides_option &&
- (keyword = cupsGetOption(pc->sides_option, num_options,
- options)) != NULL)
+ (choice = ppdFindMarkedChoice(ppd, pc->sides_option)) != NULL)
{
- if (!_cups_strcasecmp(keyword, pc->sides_1sided))
+ if (!_cups_strcasecmp(choice->choice, pc->sides_1sided))
ippAddString(request, IPP_TAG_JOB, IPP_TAG_KEYWORD, "sides",
NULL, "one-sided");
- else if (!_cups_strcasecmp(keyword, pc->sides_2sided_long))
+ else if (!_cups_strcasecmp(choice->choice, pc->sides_2sided_long))
ippAddString(request, IPP_TAG_JOB, IPP_TAG_KEYWORD, "sides",
NULL, "two-sided-long-edge");
- if (!_cups_strcasecmp(keyword, pc->sides_2sided_short))
+ if (!_cups_strcasecmp(choice->choice, pc->sides_2sided_short))
ippAddString(request, IPP_TAG_JOB, IPP_TAG_KEYWORD, "sides",
NULL, "two-sided-short-edge");
}
@@ -2721,6 +2827,8 @@ new_request(
* When talking to another CUPS server, send all options...
*/
+ fputs("DEBUG: Adding all operation/job attributes.\n", stderr);
+ cupsEncodeOptions2(request, num_options, options, IPP_TAG_OPERATION);
cupsEncodeOptions2(request, num_options, options, IPP_TAG_JOB);
}
@@ -2728,6 +2836,34 @@ new_request(
ippAddInteger(request, IPP_TAG_JOB, IPP_TAG_INTEGER, "copies", copies);
}
+ fprintf(stderr, "DEBUG: IPP/%d.%d %s #%d\n", version / 10, version % 10,
+ ippOpString(ippGetOperation(request)), ippGetRequestId(request));
+ for (group = IPP_TAG_ZERO, attr = ippFirstAttribute(request);
+ attr;
+ attr = ippNextAttribute(request))
+ {
+ const char *name = ippGetName(attr);
+
+ if (!name)
+ {
+ group = IPP_TAG_ZERO;
+ continue;
+ }
+
+ if (group != ippGetGroupTag(attr))
+ {
+ group = ippGetGroupTag(attr);
+ fprintf(stderr, "DEBUG: ---- %s ----\n", ippTagString(group));
+ }
+
+ ippAttributeString(attr, buffer, sizeof(buffer));
+ fprintf(stderr, "DEBUG: %s %s%s %s\n", name,
+ ippGetCount(attr) > 1 ? "1setOf " : "",
+ ippTagString(ippGetValueTag(attr)), buffer);
+ }
+
+ fprintf(stderr, "DEBUG: ---- %s ----\n", ippTagString(IPP_TAG_END));
+
return (request);
}
diff --git a/backend/lpd.c b/backend/lpd.c
index 9d9e01b2b..c4f73155e 100644
--- a/backend/lpd.c
+++ b/backend/lpd.c
@@ -707,7 +707,7 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
*/
fprintf(stderr, "DEBUG: Connecting to %s:%d for printer %s\n", hostname,
- _httpAddrPort(&(addrlist->addr)), printer);
+ httpAddrPort(&(addrlist->addr)), printer);
_cupsLangPrintFilter(stderr, "INFO", _("Connecting to printer."));
for (lport = reserve == RESERVE_RFC1179 ? 732 : 1024, addr = addrlist,
@@ -889,7 +889,7 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
fprintf(stderr, "DEBUG: Connected to %s:%d (local port %d)...\n",
httpAddrString(&(addr->addr), addrname, sizeof(addrname)),
- _httpAddrPort(&(addr->addr)), lport);
+ httpAddrPort(&(addr->addr)), lport);
/*
* See if the printer supports SNMP...
diff --git a/backend/socket.c b/backend/socket.c
index 77255a394..2da3d07f2 100644
--- a/backend/socket.c
+++ b/backend/socket.c
@@ -73,10 +73,6 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
int print_fd; /* Print file */
int copies; /* Number of copies to print */
time_t start_time; /* Time of first connect */
-#ifdef __APPLE__
- time_t current_time, /* Current time */
- wait_time; /* Time to wait before shutting down socket */
-#endif /* __APPLE__ */
int contimeout; /* Connection timeout */
int waiteof; /* Wait for end-of-file? */
int port; /* Port number */
@@ -410,7 +406,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
fprintf(stderr, "DEBUG: Connected to %s:%d...\n",
httpAddrString(&(addr->addr), addrname, sizeof(addrname)),
- _httpAddrPort(&(addr->addr)));
+ httpAddrPort(&(addr->addr)));
/*
* Print everything...
@@ -438,17 +434,6 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
_cupsLangPrintFilter(stderr, "INFO", _("Print file sent."));
}
-#ifdef __APPLE__
- /*
- * Wait up to 5 seconds to get any pending back-channel data...
- */
-
- wait_time = time(NULL) + 5;
- while (wait_time >= time(&current_time))
- if (wait_bc(device_fd, wait_time - current_time) <= 0)
- break;
-#endif /* __APPLE__ */
-
if (waiteof)
{
/*
diff --git a/backend/usb-darwin.c b/backend/usb-darwin.c
index 5f303bec5..98cf9804a 100644
--- a/backend/usb-darwin.c
+++ b/backend/usb-darwin.c
@@ -96,6 +96,7 @@
#include <CoreFoundation/CoreFoundation.h>
#include <IOKit/usb/IOUSBLib.h>
#include <IOKit/IOCFPlugIn.h>
+#include <libproc.h>
#include <spawn.h>
#include <pthread.h>
@@ -134,6 +135,26 @@ extern char **environ;
#define kUSBGenericTOPrinterClassDriver CFSTR("/System/Library/Printers/Libraries/USBGenericPrintingClass.plugin")
#define kUSBPrinterClassDeviceNotOpen -9664 /*kPMInvalidIOMContext*/
+#define CRSetCrashLogMessage(m) _crc_make_setter(message, m)
+#define _crc_make_setter(attr, arg) (gCRAnnotations.attr = (uint64_t)(unsigned long)(arg))
+#define CRASH_REPORTER_CLIENT_HIDDEN __attribute__((visibility("hidden")))
+#define CRASHREPORTER_ANNOTATIONS_VERSION 4
+#define CRASHREPORTER_ANNOTATIONS_SECTION "__crash_info"
+
+struct crashreporter_annotations_t {
+ uint64_t version; // unsigned long
+ uint64_t message; // char *
+ uint64_t signature_string; // char *
+ uint64_t backtrace; // char *
+ uint64_t message2; // char *
+ uint64_t thread; // uint64_t
+ uint64_t dialog_mode; // unsigned int
+};
+
+CRASH_REPORTER_CLIENT_HIDDEN
+struct crashreporter_annotations_t gCRAnnotations
+ __attribute__((section("__DATA," CRASHREPORTER_ANNOTATIONS_SECTION)))
+ = { CRASHREPORTER_ANNOTATIONS_VERSION, 0, 0, 0, 0, 0, 0 };
/*
* Section 5.3 USB Printing Class spec
@@ -179,7 +200,7 @@ typedef struct classdriver_s /**** g.classdriver context ****/
UInt16 vendorID; /* Vendor id */
UInt16 productID; /* Product id */
printer_interface_t interface; /* identify the device to IOKit */
- UInt8 outpipe; /* mandatory bulkOut pipe */
+ UInt8 outpipe; /* mandatory bulkOut pipe */
UInt8 inpipe; /* optional bulkIn pipe */
/* general class requests */
@@ -293,6 +314,7 @@ static pid_t child_pid; /* Child PID */
static void run_legacy_backend(int argc, char *argv[], int fd); /* Starts child backend process running as a ppc executable */
#endif /* __i386__ || __x86_64__ */
static void sigterm_handler(int sig); /* SIGTERM handler */
+static void sigquit_handler(int sig, siginfo_t *si, void *unused);
#ifdef PARSE_PS_ERRORS
static const char *next_line (const char *buffer);
@@ -344,11 +366,21 @@ print_device(const char *uri, /* I - Device URI */
struct timeval *timeout, /* Timeout pointer */
tv; /* Time value */
struct timespec cond_timeout; /* pthread condition timeout */
+ struct sigaction action; /* Actions for POSIX signals */
(void)uri;
/*
+ * Catch SIGQUIT to determine who is sending it...
+ */
+
+ memset(&action, 0, sizeof(action));
+ action.sa_sigaction = sigquit_handler;
+ action.sa_flags = SA_SIGINFO;
+ sigaction(SIGQUIT, &action, NULL);
+
+ /*
* See if the side-channel descriptor is valid...
*/
@@ -472,9 +504,6 @@ print_device(const char *uri, /* I - Device URI */
if (!print_fd)
{
- struct sigaction action; /* POSIX signal action */
-
-
memset(&action, 0, sizeof(action));
sigemptyset(&action.sa_mask);
@@ -2094,6 +2123,32 @@ sigterm_handler(int sig) /* I - Signal */
}
+/*
+ * 'sigquit_handler()' - SIGQUIT handler.
+ */
+
+static void sigquit_handler(int sig, siginfo_t *si, void *unused)
+{
+ char *path;
+ char pathbuf[PROC_PIDPATHINFO_MAXSIZE];
+ static char msgbuf[256] = "";
+
+
+ (void)sig;
+ (void)unused;
+
+ if (proc_pidpath(si->si_pid, pathbuf, sizeof(pathbuf)) > 0 &&
+ (path = basename(pathbuf)) != NULL)
+ snprintf(msgbuf, sizeof(msgbuf), "SIGQUIT sent by %s(%d)", path, (int)si->si_pid);
+ else
+ snprintf(msgbuf, sizeof(msgbuf), "SIGQUIT sent by PID %d", (int)si->si_pid);
+
+ CRSetCrashLogMessage(msgbuf);
+
+ abort();
+}
+
+
#ifdef PARSE_PS_ERRORS
/*
* 'next_line()' - Find the next line in a buffer.
diff --git a/cups/adminutil.c b/cups/adminutil.c
index 440e443b5..dba769e0f 100644
--- a/cups/adminutil.c
+++ b/cups/adminutil.c
@@ -882,7 +882,7 @@ cupsAdminGetServerSettings(
*/
if (strcmp(cg->http->hostname, cg->server) ||
- cg->ipp_port != _httpAddrPort(cg->http->hostaddr) ||
+ cg->ipp_port != httpAddrPort(cg->http->hostaddr) ||
(cg->http->encryption != cg->encryption &&
cg->http->encryption == HTTP_ENCRYPT_NEVER))
{
@@ -901,8 +901,9 @@ cupsAdminGetServerSettings(
if (!cg->http)
{
- if ((cg->http = _httpCreate(cupsServer(), ippPort(), NULL,
- cupsEncryption(), AF_UNSPEC)) == NULL)
+ if ((cg->http = _httpCreate(cupsServer(), ippPort(), NULL, AF_UNSPEC,
+ cupsEncryption(), 1,
+ _HTTP_MODE_CLIENT)) == NULL)
{
if (errno)
_cupsSetError(IPP_SERVICE_UNAVAILABLE, NULL, 0);
diff --git a/cups/array.c b/cups/array.c
index a84f3e2a2..7a036784f 100644
--- a/cups/array.c
+++ b/cups/array.c
@@ -156,8 +156,14 @@ _cupsArrayAddStrings(cups_array_t *a, /* I - Array */
int status = 1; /* Status of add */
+ DEBUG_printf(("_cupsArrayAddStrings(a=%p, s=\"%s\", delim='%c')", a, s,
+ delim));
+
if (!a || !s || !*s)
+ {
+ DEBUG_puts("1_cupsArrayAddStrings: Returning 0");
return (0);
+ }
if (delim == ' ')
{
@@ -165,22 +171,32 @@ _cupsArrayAddStrings(cups_array_t *a, /* I - Array */
* Skip leading whitespace...
*/
+ DEBUG_puts("1_cupsArrayAddStrings: Skipping leading whitespace.");
+
while (*s && isspace(*s & 255))
s ++;
+
+ DEBUG_printf(("1_cupsArrayAddStrings: Remaining string \"%s\".", s));
}
- if (!strchr(s, delim) ||
- (delim == ' ' && !strchr(s, '\t') && !strchr(s, '\n')))
+ if (!strchr(s, delim) &&
+ (delim != ' ' || (!strchr(s, '\t') && !strchr(s, '\n'))))
{
/*
* String doesn't contain a delimiter, so add it as a single value...
*/
+ DEBUG_puts("1_cupsArrayAddStrings: No delimiter seen, adding a single "
+ "value.");
+
if (!cupsArrayFind(a, (void *)s))
status = cupsArrayAdd(a, (void *)s);
}
else if ((buffer = strdup(s)) == NULL)
+ {
+ DEBUG_puts("1_cupsArrayAddStrings: Unable to duplicate string.");
status = 0;
+ }
else
{
for (start = end = buffer; *end; start = end)
@@ -202,6 +218,9 @@ _cupsArrayAddStrings(cups_array_t *a, /* I - Array */
else
end = start + strlen(start);
+ DEBUG_printf(("1_cupsArrayAddStrings: Adding \"%s\", end=\"%s\"", start,
+ end));
+
if (!cupsArrayFind(a, start))
status &= cupsArrayAdd(a, start);
}
@@ -209,6 +228,8 @@ _cupsArrayAddStrings(cups_array_t *a, /* I - Array */
free(buffer);
}
+ DEBUG_printf(("1_cupsArrayAddStrings: Returning %d.", status));
+
return (status);
}
diff --git a/cups/cups-private.h b/cups/cups-private.h
index 4918755bf..babc0d081 100644
--- a/cups/cups-private.h
+++ b/cups/cups-private.h
@@ -87,6 +87,11 @@ typedef struct _cups_globals_s /**** CUPS global state data ****/
char resolved_uri[1024];
/* Buffer for cupsBackendDeviceURI */
+ /* debug.c */
+# ifdef DEBUG
+ int thread_id; /* Friendly thread ID */
+# endif /* DEBUG */
+
/* file.c */
cups_file_t *stdio_files[3];/* stdin, stdout, stderr */
diff --git a/cups/cups.h b/cups/cups.h
index e50468508..544841b49 100644
--- a/cups/cups.h
+++ b/cups/cups.h
@@ -353,12 +353,12 @@ extern ipp_t *cupsDoRequest(http_t *http, ipp_t *request,
const char *resource);
extern http_encryption_t cupsEncryption(void);
extern void cupsFreeJobs(int num_jobs, cups_job_t *jobs);
-extern int cupsGetClasses(char ***classes) _CUPS_DEPRECATED;
+extern int cupsGetClasses(char ***classes) _CUPS_DEPRECATED_MSG("Use cupsGetDests instead.");
extern const char *cupsGetDefault(void);
extern int cupsGetJobs(cups_job_t **jobs, const char *name,
int myjobs, int whichjobs);
extern const char *cupsGetPPD(const char *name);
-extern int cupsGetPrinters(char ***printers) _CUPS_DEPRECATED;
+extern int cupsGetPrinters(char ***printers) _CUPS_DEPRECATED_MSG("Use cupsGetDests instead.");
extern ipp_status_t cupsLastError(void);
extern int cupsPrintFile(const char *name, const char *filename,
const char *title, int num_options,
@@ -366,7 +366,7 @@ extern int cupsPrintFile(const char *name, const char *filename,
extern int cupsPrintFiles(const char *name, int num_files,
const char **files, const char *title,
int num_options, cups_option_t *options);
-extern char *cupsTempFile(char *filename, int len) _CUPS_DEPRECATED;
+extern char *cupsTempFile(char *filename, int len) _CUPS_DEPRECATED_MSG("Use cupsTempFd or cupsTempFile2 instead.");
extern int cupsTempFd(char *filename, int len);
extern int cupsAddDest(const char *name, const char *instance,
diff --git a/cups/debug.c b/cups/debug.c
index 71b693c70..27ade63ca 100644
--- a/cups/debug.c
+++ b/cups/debug.c
@@ -68,8 +68,24 @@ int _cups_debug_level = 1;
static regex_t *debug_filter = NULL;
/* Filter expression for messages */
static int debug_init = 0; /* Did we initialize debugging? */
-static _cups_mutex_t debug_mutex = _CUPS_MUTEX_INITIALIZER;
+static _cups_mutex_t debug_init_mutex = _CUPS_MUTEX_INITIALIZER,
/* Mutex to control initialization */
+ debug_log_mutex = _CUPS_MUTEX_INITIALIZER;
+ /* Mutex to serialize log entries */
+
+
+/*
+ * 'debug_thread_id()' - Return an integer representing the current thread.
+ */
+
+static int /* O - Local thread ID */
+debug_thread_id(void)
+{
+ _cups_globals_t *cg = _cupsGlobals(); /* Global data */
+
+
+ return (cg->thread_id);
+}
/*
@@ -433,9 +449,9 @@ _cups_debug_printf(const char *format, /* I - Printf-style format string */
{
int result; /* Filter result */
- _cupsMutexLock(&debug_mutex);
+ _cupsMutexLock(&debug_init_mutex);
result = regexec(debug_filter, format, 0, NULL, 0);
- _cupsMutexUnlock(&debug_mutex);
+ _cupsMutexUnlock(&debug_init_mutex);
if (result)
return;
@@ -446,13 +462,13 @@ _cups_debug_printf(const char *format, /* I - Printf-style format string */
*/
gettimeofday(&curtime, NULL);
- snprintf(buffer, sizeof(buffer), "%02d:%02d:%02d.%03d ",
- (int)((curtime.tv_sec / 3600) % 24),
+ snprintf(buffer, sizeof(buffer), "T%03d %02d:%02d:%02d.%03d ",
+ debug_thread_id(), (int)((curtime.tv_sec / 3600) % 24),
(int)((curtime.tv_sec / 60) % 60),
(int)(curtime.tv_sec % 60), (int)(curtime.tv_usec / 1000));
va_start(ap, format);
- bytes = debug_vsnprintf(buffer + 13, sizeof(buffer) - 14, format, ap) + 13;
+ bytes = debug_vsnprintf(buffer + 19, sizeof(buffer) - 20, format, ap) + 19;
va_end(ap);
if (bytes >= (sizeof(buffer) - 1))
@@ -470,7 +486,9 @@ _cups_debug_printf(const char *format, /* I - Printf-style format string */
* Write it out...
*/
+ _cupsMutexLock(&debug_log_mutex);
write(_cups_debug_fd, buffer, bytes);
+ _cupsMutexUnlock(&debug_log_mutex);
}
@@ -514,9 +532,9 @@ _cups_debug_puts(const char *s) /* I - String to output */
{
int result; /* Filter result */
- _cupsMutexLock(&debug_mutex);
+ _cupsMutexLock(&debug_init_mutex);
result = regexec(debug_filter, s, 0, NULL, 0);
- _cupsMutexUnlock(&debug_mutex);
+ _cupsMutexUnlock(&debug_init_mutex);
if (result)
return;
@@ -527,8 +545,8 @@ _cups_debug_puts(const char *s) /* I - String to output */
*/
gettimeofday(&curtime, NULL);
- bytes = snprintf(buffer, sizeof(buffer), "%02d:%02d:%02d.%03d %s",
- (int)((curtime.tv_sec / 3600) % 24),
+ bytes = snprintf(buffer, sizeof(buffer), "T%03d %02d:%02d:%02d.%03d %s",
+ debug_thread_id(), (int)((curtime.tv_sec / 3600) % 24),
(int)((curtime.tv_sec / 60) % 60),
(int)(curtime.tv_sec % 60), (int)(curtime.tv_usec / 1000),
s);
@@ -548,7 +566,9 @@ _cups_debug_puts(const char *s) /* I - String to output */
* Write it out...
*/
+ _cupsMutexLock(&debug_log_mutex);
write(_cups_debug_fd, buffer, bytes);
+ _cupsMutexUnlock(&debug_log_mutex);
}
@@ -562,7 +582,7 @@ _cups_debug_set(const char *logfile, /* I - Log file or NULL */
const char *filter, /* I - Filter string or NULL */
int force) /* I - Force initialization */
{
- _cupsMutexLock(&debug_mutex);
+ _cupsMutexLock(&debug_init_mutex);
if (!debug_init || force)
{
@@ -624,7 +644,7 @@ _cups_debug_set(const char *logfile, /* I - Log file or NULL */
debug_init = 1;
}
- _cupsMutexUnlock(&debug_mutex);
+ _cupsMutexUnlock(&debug_init_mutex);
}
#endif /* DEBUG */
diff --git a/cups/dest-job.c b/cups/dest-job.c
index f0792c728..c9a0d797f 100644
--- a/cups/dest-job.c
+++ b/cups/dest-job.c
@@ -15,7 +15,7 @@
*
* Contents:
*
- * cupsCancelDestJob() - Cancel a job on a destination.
+ * cupsCancelDestJob() - Cancel a job on a destination.
* cupsCloseDestJob() - Close a job and start printing.
* cupsCreateDestJob() - Create a job on a destination.
* cupsFinishDestDocument() - Finish the current document.
@@ -197,6 +197,7 @@ cupsCreateDestJob(
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME, "job-name", NULL,
title);
+ cupsEncodeOptions2(request, num_options, options, IPP_TAG_OPERATION);
cupsEncodeOptions2(request, num_options, options, IPP_TAG_JOB);
cupsEncodeOptions2(request, num_options, options, IPP_TAG_SUBSCRIPTION);
@@ -339,6 +340,7 @@ cupsStartDestDocument(
"document-format", NULL, format);
ippAddBoolean(request, IPP_TAG_OPERATION, "last-document", last_document);
+ cupsEncodeOptions2(request, num_options, options, IPP_TAG_OPERATION);
cupsEncodeOptions2(request, num_options, options, IPP_TAG_DOCUMENT);
/*
diff --git a/cups/dest-localization.c b/cups/dest-localization.c
index ad709ee82..fb52a9a69 100644
--- a/cups/dest-localization.c
+++ b/cups/dest-localization.c
@@ -188,7 +188,7 @@ cups_create_localizations(
httpGetHostname(http, http_hostname, sizeof(http_hostname));
if (!_cups_strcasecmp(http_hostname, hostname) &&
- port == _httpAddrPort(http->hostaddr))
+ port == httpAddrPort(http->hostaddr))
{
/*
* Use the same connection...
diff --git a/cups/dest.c b/cups/dest.c
index 46bc3adb1..1474eb41e 100644
--- a/cups/dest.c
+++ b/cups/dest.c
@@ -722,7 +722,8 @@ cupsConnectDest(
else
encryption = HTTP_ENCRYPT_IF_REQUESTED;
- http = _httpCreate(hostname, port, addrlist, encryption, AF_UNSPEC);
+ http = _httpCreate(hostname, port, addrlist, AF_UNSPEC, encryption, 1,
+ _HTTP_MODE_CLIENT);
/*
* Connect if requested...
diff --git a/cups/encode.c b/cups/encode.c
index 565a43705..224221c76 100644
--- a/cups/encode.c
+++ b/cups/encode.c
@@ -31,11 +31,100 @@
/*
- * Local list of option names and the value tags they should use...
+ * Local list of option names, the value tags they should use, and the list of
+ * supported operations...
*
- * **** THIS LIST MUST BE SORTED ****
+ * **** THIS LIST MUST BE SORTED BY ATTRIBUTE NAME ****
*/
+static const ipp_op_t ipp_job_creation[] =
+{
+ IPP_PRINT_JOB,
+ IPP_PRINT_URI,
+ IPP_CREATE_JOB,
+ IPP_OP_CUPS_NONE
+};
+
+static const ipp_op_t ipp_doc_creation[] =
+{
+ IPP_PRINT_JOB,
+ IPP_PRINT_URI,
+ IPP_SEND_DOCUMENT,
+ IPP_SEND_URI,
+ IPP_OP_CUPS_NONE
+};
+
+static const ipp_op_t ipp_sub_creation[] =
+{
+ IPP_PRINT_JOB,
+ IPP_PRINT_URI,
+ IPP_CREATE_JOB,
+ IPP_CREATE_PRINTER_SUBSCRIPTION,
+ IPP_CREATE_JOB_SUBSCRIPTION,
+ IPP_OP_CUPS_NONE
+};
+
+static const ipp_op_t ipp_all_print[] =
+{
+ IPP_PRINT_JOB,
+ IPP_PRINT_URI,
+ IPP_CREATE_JOB,
+ IPP_SEND_DOCUMENT,
+ IPP_SEND_URI,
+ IPP_OP_CUPS_NONE
+};
+
+static const ipp_op_t ipp_all_limit[] =
+{
+ IPP_GET_JOBS,
+ IPP_GET_PRINTER_ATTRIBUTES,
+ CUPS_GET_PRINTERS,
+ CUPS_GET_CLASSES,
+ CUPS_GET_DEVICES,
+ CUPS_GET_PPDS,
+ IPP_OP_CUPS_NONE
+};
+
+static const ipp_op_t ipp_set_printer[] =
+{
+ IPP_SET_PRINTER_ATTRIBUTES,
+ CUPS_ADD_MODIFY_PRINTER,
+ CUPS_ADD_MODIFY_CLASS,
+ IPP_OP_CUPS_NONE
+};
+
+static const ipp_op_t cups_am_class[] =
+{
+ CUPS_ADD_MODIFY_CLASS,
+ IPP_OP_CUPS_NONE
+};
+
+static const ipp_op_t cups_am_printer[] =
+{
+ CUPS_ADD_MODIFY_PRINTER,
+ IPP_OP_CUPS_NONE
+};
+
+static const ipp_op_t cups_schemes[] =
+{
+ CUPS_GET_DEVICES,
+ CUPS_GET_PPDS,
+ IPP_OP_CUPS_NONE
+};
+
+static const ipp_op_t cups_get_ppds[] =
+{
+ CUPS_GET_PPDS,
+ IPP_OP_CUPS_NONE
+};
+
+static const ipp_op_t cups_ppd_name[] =
+{
+ CUPS_ADD_MODIFY_PRINTER,
+ CUPS_GET_PPD,
+ IPP_OP_CUPS_NONE
+};
+
static const _ipp_option_t ipp_options[] =
{
{ 1, "auth-info", IPP_TAG_TEXT, IPP_TAG_JOB },
@@ -47,18 +136,26 @@ static const _ipp_option_t ipp_options[] =
{ 0, "brightness-default", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
{ 0, "columns", IPP_TAG_INTEGER, IPP_TAG_JOB },
{ 0, "columns-default", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
- { 0, "compression", IPP_TAG_KEYWORD, IPP_TAG_OPERATION },
+ { 0, "compression", IPP_TAG_KEYWORD, IPP_TAG_OPERATION,
+ IPP_TAG_ZERO,
+ ipp_doc_creation },
{ 0, "copies", IPP_TAG_INTEGER, IPP_TAG_JOB,
IPP_TAG_DOCUMENT },
{ 0, "copies-default", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
{ 0, "device-uri", IPP_TAG_URI, IPP_TAG_PRINTER },
{ 1, "document-copies", IPP_TAG_RANGE, IPP_TAG_JOB,
- IPP_TAG_DOCUMENT },
- { 0, "document-format", IPP_TAG_MIMETYPE, IPP_TAG_OPERATION },
+ IPP_TAG_DOCUMENT,
+ ipp_doc_creation },
+ { 0, "document-format", IPP_TAG_MIMETYPE, IPP_TAG_OPERATION,
+ IPP_TAG_ZERO,
+ ipp_doc_creation },
{ 0, "document-format-default", IPP_TAG_MIMETYPE, IPP_TAG_PRINTER },
{ 1, "document-numbers", IPP_TAG_RANGE, IPP_TAG_JOB,
- IPP_TAG_DOCUMENT },
- { 1, "exclude-schemes", IPP_TAG_NAME, IPP_TAG_OPERATION },
+ IPP_TAG_DOCUMENT,
+ ipp_all_print },
+ { 1, "exclude-schemes", IPP_TAG_NAME, IPP_TAG_OPERATION,
+ IPP_TAG_ZERO,
+ cups_schemes },
{ 1, "finishings", IPP_TAG_ENUM, IPP_TAG_JOB,
IPP_TAG_DOCUMENT },
{ 1, "finishings-default", IPP_TAG_ENUM, IPP_TAG_PRINTER },
@@ -71,11 +168,14 @@ static const _ipp_option_t ipp_options[] =
{ 0, "gamma-default", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
{ 0, "hue", IPP_TAG_INTEGER, IPP_TAG_JOB },
{ 0, "hue-default", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
- { 1, "include-schemes", IPP_TAG_NAME, IPP_TAG_OPERATION },
+ { 1, "include-schemes", IPP_TAG_NAME, IPP_TAG_OPERATION,
+ IPP_TAG_ZERO,
+ cups_schemes },
{ 0, "job-account-id", IPP_TAG_NAME, IPP_TAG_JOB },
{ 0, "job-account-id-default",IPP_TAG_NAME, IPP_TAG_PRINTER },
{ 0, "job-accounting-user-id", IPP_TAG_NAME, IPP_TAG_JOB },
{ 0, "job-accounting-user-id-default", IPP_TAG_NAME, IPP_TAG_PRINTER },
+ { 0, "job-authorization-uri", IPP_TAG_URI, IPP_TAG_OPERATION },
{ 0, "job-hold-until", IPP_TAG_KEYWORD, IPP_TAG_JOB },
{ 0, "job-id", IPP_TAG_INTEGER, IPP_TAG_ZERO }, /* never send as option */
{ 0, "job-impressions", IPP_TAG_INTEGER, IPP_TAG_ZERO }, /* never send as option */
@@ -86,8 +186,12 @@ static const _ipp_option_t ipp_options[] =
{ 0, "job-media-sheets", IPP_TAG_INTEGER, IPP_TAG_ZERO }, /* never send as option */
{ 0, "job-media-sheets-completed", IPP_TAG_INTEGER, IPP_TAG_ZERO }, /* never send as option */
{ 0, "job-page-limit", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
- { 0, "job-password", IPP_TAG_STRING, IPP_TAG_OPERATION },
- { 0, "job-password-encryption", IPP_TAG_KEYWORD, IPP_TAG_OPERATION },
+ { 0, "job-password", IPP_TAG_STRING, IPP_TAG_OPERATION,
+ IPP_TAG_ZERO,
+ ipp_job_creation },
+ { 0, "job-password-encryption", IPP_TAG_KEYWORD, IPP_TAG_OPERATION,
+ IPP_TAG_ZERO,
+ ipp_job_creation },
{ 0, "job-priority", IPP_TAG_INTEGER, IPP_TAG_JOB },
{ 0, "job-quota-period", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
{ 1, "job-sheets", IPP_TAG_NAME, IPP_TAG_JOB },
@@ -157,7 +261,33 @@ static const _ipp_option_t ipp_options[] =
{ 0, "penwidth", IPP_TAG_INTEGER, IPP_TAG_JOB },
{ 0, "penwidth-default", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
{ 0, "port-monitor", IPP_TAG_NAME, IPP_TAG_PRINTER },
- { 0, "ppd-name", IPP_TAG_NAME, IPP_TAG_PRINTER },
+ { 0, "ppd-device-id", IPP_TAG_TEXT, IPP_TAG_OPERATION,
+ IPP_TAG_ZERO,
+ cups_get_ppds },
+ { 0, "ppd-make", IPP_TAG_TEXT, IPP_TAG_OPERATION,
+ IPP_TAG_ZERO,
+ cups_get_ppds },
+ { 0, "ppd-make-and-model", IPP_TAG_TEXT, IPP_TAG_OPERATION,
+ IPP_TAG_ZERO,
+ cups_get_ppds },
+ { 0, "ppd-model-number", IPP_TAG_INTEGER, IPP_TAG_OPERATION,
+ IPP_TAG_ZERO,
+ cups_get_ppds },
+ { 0, "ppd-name", IPP_TAG_NAME, IPP_TAG_OPERATION,
+ IPP_TAG_ZERO,
+ cups_ppd_name },
+ { 0, "ppd-natural-language", IPP_TAG_LANGUAGE, IPP_TAG_OPERATION,
+ IPP_TAG_ZERO,
+ cups_get_ppds },
+ { 0, "ppd-product", IPP_TAG_TEXT, IPP_TAG_OPERATION,
+ IPP_TAG_ZERO,
+ cups_get_ppds },
+ { 0, "ppd-psversion", IPP_TAG_TEXT, IPP_TAG_OPERATION,
+ IPP_TAG_ZERO,
+ cups_get_ppds },
+ { 0, "ppd-type", IPP_TAG_KEYWORD, IPP_TAG_OPERATION,
+ IPP_TAG_ZERO,
+ cups_get_ppds },
{ 0, "ppi", IPP_TAG_INTEGER, IPP_TAG_JOB },
{ 0, "ppi-default", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
{ 0, "prettyprint", IPP_TAG_BOOLEAN, IPP_TAG_JOB },
@@ -257,23 +387,27 @@ cupsEncodeOptions2(
cups_option_t *options, /* I - Options */
ipp_tag_t group_tag) /* I - Group to encode */
{
- int i, j; /* Looping vars */
- int count; /* Number of values */
- char *s, /* Pointer into option value */
- *val, /* Pointer to option value */
- *copy, /* Copy of option value */
- *sep, /* Option separator */
- quote; /* Quote character */
- ipp_attribute_t *attr; /* IPP attribute */
- ipp_tag_t value_tag; /* IPP value tag */
- cups_option_t *option; /* Current option */
- ipp_t *collection; /* Collection value */
- int num_cols; /* Number of collection values */
- cups_option_t *cols; /* Collection values */
-
-
- DEBUG_printf(("cupsEncodeOptions2(ipp=%p, num_options=%d, options=%p, "
- "group_tag=%x)", ipp, num_options, options, group_tag));
+ int i, j; /* Looping vars */
+ int count; /* Number of values */
+ char *s, /* Pointer into option value */
+ *val, /* Pointer to option value */
+ *copy, /* Copy of option value */
+ *sep, /* Option separator */
+ quote; /* Quote character */
+ ipp_attribute_t *attr; /* IPP attribute */
+ ipp_tag_t value_tag; /* IPP value tag */
+ cups_option_t *option; /* Current option */
+ ipp_t *collection; /* Collection value */
+ int num_cols; /* Number of collection values */
+ cups_option_t *cols; /* Collection values */
+ ipp_op_t op; /* Operation for this request */
+ const ipp_op_t *ops; /* List of allowed operations */
+
+
+ DEBUG_printf(("cupsEncodeOptions2(ipp=%p(%s), num_options=%d, options=%p, "
+ "group_tag=%x)", ipp,
+ ipp ? ippOpString(ippGetOperation(ipp)) : "", num_options,
+ options, group_tag));
/*
* Range check input...
@@ -286,13 +420,18 @@ cupsEncodeOptions2(
* Do special handling for the document-format/raw options...
*/
- if (group_tag == IPP_TAG_OPERATION)
+ op = ippGetOperation(ipp);
+
+ if (group_tag == IPP_TAG_OPERATION &&
+ (op == IPP_PRINT_JOB || op == IPP_PRINT_URI ||
+ op == IPP_SEND_DOCUMENT || op == IPP_SEND_URI))
{
/*
* Handle the document format stuff first...
*/
- if ((val = (char *)cupsGetOption("document-format", num_options, options)) != NULL)
+ if ((val = (char *)cupsGetOption("document-format", num_options,
+ options)) != NULL)
ippAddString(ipp, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE, "document-format",
NULL, val);
else if (cupsGetOption("raw", num_options, options))
@@ -331,6 +470,22 @@ cupsEncodeOptions2(
continue;
value_tag = match->value_tag;
+
+ if (match->operations)
+ ops = match->operations;
+ else if (group_tag == IPP_TAG_JOB)
+ ops = ipp_job_creation;
+ else if (group_tag == IPP_TAG_DOCUMENT)
+ ops = ipp_doc_creation;
+ else if (group_tag == IPP_TAG_SUBSCRIPTION)
+ ops = ipp_sub_creation;
+ else if (group_tag == IPP_TAG_PRINTER)
+ ops = ipp_set_printer;
+ else
+ {
+ DEBUG_printf(("2cupsEncodeOptions2: Skipping \"%s\".", option->name));
+ continue;
+ }
}
else
{
@@ -344,10 +499,23 @@ cupsEncodeOptions2(
strcmp(option->name + namelen - 10, "-supported")))
{
if (group_tag != IPP_TAG_JOB && group_tag != IPP_TAG_DOCUMENT)
+ {
+ DEBUG_printf(("2cupsEncodeOptions2: Skipping \"%s\".", option->name));
continue;
+ }
}
else if (group_tag != IPP_TAG_PRINTER)
+ {
+ DEBUG_printf(("2cupsEncodeOptions2: Skipping \"%s\".", option->name));
continue;
+ }
+
+ if (group_tag == IPP_TAG_JOB)
+ ops = ipp_job_creation;
+ else if (group_tag == IPP_TAG_DOCUMENT)
+ ops = ipp_doc_creation;
+ else
+ ops = ipp_set_printer;
if (!_cups_strcasecmp(option->value, "true") ||
!_cups_strcasecmp(option->value, "false"))
@@ -357,6 +525,22 @@ cupsEncodeOptions2(
}
/*
+ * Verify that we send this attribute for this operation...
+ */
+
+ while (*ops != IPP_OP_CUPS_NONE)
+ if (op == *ops)
+ break;
+ else
+ ops ++;
+
+ if (*ops == IPP_OP_CUPS_NONE)
+ {
+ DEBUG_printf(("2cupsEncodeOptions2: Skipping \"%s\".", option->name));
+ continue;
+ }
+
+ /*
* Count the number of values...
*/
@@ -631,6 +815,26 @@ cupsEncodeOptions2(
}
+#ifdef DEBUG
+/*
+ * '_ippCheckOptions()' - Validate that the option array is sorted properly.
+ */
+
+const char * /* O - First out-of-order option or NULL */
+_ippCheckOptions(void)
+{
+ int i; /* Looping var */
+
+
+ for (i = 0; i < (int)(sizeof(ipp_options) / sizeof(ipp_options[0]) - 1); i ++)
+ if (strcmp(ipp_options[i].name, ipp_options[i + 1].name) >= 0)
+ return (ipp_options[i + 1].name);
+
+ return (NULL);
+}
+#endif /* DEBUG */
+
+
/*
* '_ippFindOption()' - Find the attribute information for an option.
*/
diff --git a/cups/globals.c b/cups/globals.c
index d7bd5ac50..eed949f83 100644
--- a/cups/globals.c
+++ b/cups/globals.c
@@ -38,6 +38,10 @@
*/
+#ifdef DEBUG
+static int cups_global_index = 0;
+ /* Next thread number */
+#endif /* DEBUG */
static _cups_threadkey_t cups_globals_key = _CUPS_THREADKEY_INITIALIZER;
/* Thread local storage key */
#ifdef HAVE_PTHREAD_H
@@ -216,6 +220,14 @@ cups_globals_alloc(void)
cg->expired_certs = 1;
cg->expired_root = 1;
+#ifdef DEBUG
+ /*
+ * Friendly thread ID for debugging...
+ */
+
+ cg->thread_id = ++ cups_global_index;
+#endif /* DEBUG */
+
/*
* Then set directories as appropriate...
*/
diff --git a/cups/http-addr.c b/cups/http-addr.c
index d80bb8d01..9cb9bee30 100644
--- a/cups/http-addr.c
+++ b/cups/http-addr.c
@@ -14,16 +14,19 @@
*
* Contents:
*
- * httpAddrAny() - Check for the "any" address.
- * httpAddrEqual() - Compare two addresses.
+ * httpAddrAny() - Check for the "any" address.
+ * httpAddrEqual() - Compare two addresses.
+ * httpAddrLength() - Return the length of the address in bytes.
+ * httpAddrListen() - Create a listening socket bound to the specified
+ * address and port.
* httpAddrLocalhost() - Check for the local loopback address.
- * httpAddrLookup() - Lookup the hostname associated with the address.
- * _httpAddrPort() - Get the port number associated with an address.
+ * httpAddrLookup() - Lookup the hostname associated with the address.
+ * httpAddrPort() - Get the port number associated with an address.
* _httpAddrSetPort() - Set the port number associated with an address.
- * httpAddrString() - Convert an IP address to a dotted string.
- * httpGetHostByName() - Lookup a hostname or IP address, and return
- * address records for the specified name.
- * httpGetHostname() - Get the FQDN for the local system.
+ * httpAddrString() - Convert an address to a numeric string.
+ * httpGetHostByName() - Lookup a hostname or IPv4 address, and return
+ * address records for the specified name.
+ * httpGetHostname() - Get the FQDN for the connection or local system.
*/
/*
@@ -131,6 +134,75 @@ httpAddrLength(const http_addr_t *addr) /* I - Address */
/*
+ * 'httpAddrListen()' - Create a listening socket bound to the specified
+ * address and port.
+ *
+ * @since CUPS 1.7@
+ */
+
+int /* O - Socket or -1 on error */
+httpAddrListen(http_addr_t *addr, /* I - Address to bind to */
+ int port) /* I - Port number to bind to */
+{
+ int fd = -1, /* Socket */
+ val; /* Socket value */
+
+
+ /*
+ * Range check input...
+ */
+
+ if (!addr || port <= 0)
+ return (-1);
+
+ if ((fd = socket(addr->addr.sa_family, SOCK_STREAM, 0)) < 0)
+ {
+ _cupsSetHTTPError(HTTP_STATUS_ERROR);
+ return (-1);
+ }
+
+ val = 1;
+ setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &val, sizeof(val));
+
+#ifdef IPV6_V6ONLY
+ if (addr->addr.sa_family == AF_INET6)
+ setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &val, sizeof(val));
+#endif /* IPV6_V6ONLY */
+
+ _httpAddrSetPort(addr, port);
+
+ if (bind(fd, (struct sockaddr *)addr, httpAddrLength(addr)))
+ {
+ _cupsSetHTTPError(HTTP_STATUS_ERROR);
+
+ close(fd);
+
+ return (-1);
+ }
+
+ if (listen(fd, 5))
+ {
+ _cupsSetHTTPError(HTTP_STATUS_ERROR);
+
+ close(fd);
+
+ return (-1);
+ }
+
+#ifdef SO_NOSIGPIPE
+ /*
+ * Disable SIGPIPE for this socket.
+ */
+
+ val = 1;
+ setsockopt(fd, SOL_SOCKET, SO_NOSIGPIPE, &val, sizeof(val));
+#endif /* SO_NOSIGPIPE */
+
+ return (fd);
+}
+
+
+/*
* 'httpAddrLocalhost()' - Check for the local loopback address.
*
* @since CUPS 1.2/OS X 10.5@
@@ -290,11 +362,13 @@ httpAddrLookup(
/*
- * '_httpAddrPort()' - Get the port number associated with an address.
+ * 'httpAddrPort()' - Get the port number associated with an address.
+ *
+ * @since CUPS 1.7@
*/
int /* O - Port number */
-_httpAddrPort(http_addr_t *addr) /* I - Address */
+httpAddrPort(http_addr_t *addr) /* I - Address */
{
if (!addr)
return (ippPort());
@@ -308,6 +382,13 @@ _httpAddrPort(http_addr_t *addr) /* I - Address */
return (ippPort());
}
+int /* O - Port number */
+_httpAddrPort(http_addr_t *addr) /* I - Address */
+{
+ /* TODO: Remove in CUPS 1.8 */
+ return (httpAddrPort(addr));
+}
+
/*
* '_httpAddrSetPort()' - Set the port number associated with an address.
diff --git a/cups/http-addrlist.c b/cups/http-addrlist.c
index 223a68695..e62a556f4 100644
--- a/cups/http-addrlist.c
+++ b/cups/http-addrlist.c
@@ -14,11 +14,12 @@
*
* Contents:
*
- * httpAddrConnect() - Connect to any of the addresses in the list.
+ * httpAddrConnect() - Connect to any of the addresses in the list.
* httpAddrConnect2() - Connect to any of the addresses in the list with a
- * timeout and optional cancel.
+ * timeout and optional cancel.
+ * httpAddrCopyList() - Copy an address list.
* httpAddrFreeList() - Free an address list.
- * httpAddrGetList() - Get a list of addresses for a hostname.
+ * httpAddrGetList() - Get a list of addresses for a hostname.
*/
/*
@@ -119,7 +120,7 @@ httpAddrConnect2(
DEBUG_printf(("2httpAddrConnect2: Trying %s:%d...",
httpAddrString(&(addrlist->addr), temp, sizeof(temp)),
- _httpAddrPort(&(addrlist->addr))));
+ httpAddrPort(&(addrlist->addr))));
if ((*sock = (int)socket(_httpAddrFamily(&(addrlist->addr)), SOCK_STREAM,
0)) < 0)
@@ -201,7 +202,7 @@ httpAddrConnect2(
{
DEBUG_printf(("1httpAddrConnect2: Connected to %s:%d...",
httpAddrString(&(addrlist->addr), temp, sizeof(temp)),
- _httpAddrPort(&(addrlist->addr))));
+ httpAddrPort(&(addrlist->addr))));
#ifdef O_NONBLOCK
fcntl(*sock, F_SETFL, flags);
@@ -282,7 +283,7 @@ httpAddrConnect2(
{
DEBUG_printf(("1httpAddrConnect2: Connected to %s:%d...",
httpAddrString(&peer, temp, sizeof(temp)),
- _httpAddrPort(&peer)));
+ httpAddrPort(&peer)));
return (addrlist);
}
@@ -295,7 +296,7 @@ httpAddrConnect2(
DEBUG_printf(("1httpAddrConnect2: Unable to connect to %s:%d: %s",
httpAddrString(&(addrlist->addr), temp, sizeof(temp)),
- _httpAddrPort(&(addrlist->addr)), strerror(errno)));
+ httpAddrPort(&(addrlist->addr)), strerror(errno)));
#ifndef WIN32
if (errno == EINPROGRESS)
@@ -327,6 +328,55 @@ httpAddrConnect2(
}
+
+/*
+ * 'httpAddrCopyList()' - Copy an address list.
+ *
+ * @since CUPS 1.7@
+ */
+
+http_addrlist_t * /* O - New address list or @code NULL@ on error */
+httpAddrCopyList(
+ http_addrlist_t *src) /* I - Source address list */
+{
+ http_addrlist_t *dst = NULL, /* First list entry */
+ *prev = NULL, /* Previous list entry */
+ *current = NULL;/* Current list entry */
+
+
+ while (src)
+ {
+ if ((current = malloc(sizeof(http_addrlist_t))) == NULL)
+ {
+ current = dst;
+
+ while (current)
+ {
+ prev = current;
+ current = current->next;
+
+ free(prev);
+ }
+
+ return (NULL);
+ }
+
+ memcpy(current, src, sizeof(http_addrlist_t));
+
+ current->next = NULL;
+
+ if (prev)
+ prev->next = current;
+ else
+ dst = current;
+
+ src = src->next;
+ }
+
+ return (dst);
+}
+
+
/*
* 'httpAddrFreeList()' - Free an address list.
*
diff --git a/cups/http-private.h b/cups/http-private.h
index 5e21c472d..d6cbeaf83 100644
--- a/cups/http-private.h
+++ b/cups/http-private.h
@@ -136,6 +136,10 @@ typedef int socklen_t;
# endif /* HAVE_GETIFADDRS */
# endif /* !WIN32 */
+# ifdef HAVE_LIBZ
+# include <zlib.h>
+# endif /* HAVE_LIBZ */
+
/*
* C++ magic...
@@ -236,7 +240,22 @@ typedef void *http_tls_t;
typedef void *http_tls_credentials_t;
# endif /* HAVE_LIBSSL */
-struct _http_s /**** HTTP connection structure. ****/
+typedef enum _http_coding_e /**** HTTP content coding enumeration ****/
+{
+ _HTTP_CODING_IDENTITY, /* No content coding */
+ _HTTP_CODING_GZIP, /* LZ77+gzip decompression */
+ _HTTP_CODING_DEFLATE, /* LZ77+zlib compression */
+ _HTTP_CODING_GUNZIP, /* LZ77+gzip decompression */
+ _HTTP_CODING_INFLATE /* LZ77+zlib decompression */
+} _http_coding_t;
+
+typedef enum _http_mode_e /**** HTTP mode enumeration ****/
+{
+ _HTTP_MODE_CLIENT, /* Client connected to server */
+ _HTTP_MODE_SERVER /* Server connected (accepted) from client */
+} _http_mode_t;
+
+struct _http_s /**** HTTP connection structure ****/
{
int fd; /* File descriptor for this socket */
int blocking; /* To block or not to block */
@@ -249,8 +268,8 @@ struct _http_s /**** HTTP connection structure. ****/
struct sockaddr_in _hostaddr; /* Address of connected host (deprecated) */
char hostname[HTTP_MAX_HOST],
/* Name of connected host */
- fields[HTTP_FIELD_MAX][HTTP_MAX_VALUE];
- /* Field values */
+ fields[HTTP_FIELD_ACCEPT_ENCODING][HTTP_MAX_VALUE];
+ /* Field values up to Accept-Encoding */
char *data; /* Pointer to data buffer */
http_encoding_t data_encoding; /* Chunked or not */
int _data_remaining;/* Number of bytes left (deprecated) */
@@ -264,16 +283,19 @@ struct _http_s /**** HTTP connection structure. ****/
int nonce_count; /* Nonce count */
http_tls_t tls; /* TLS state information */
http_encryption_t encryption; /* Encryption requirements */
+
/**** New in CUPS 1.1.19 ****/
fd_set *input_set; /* select() set for httpWait() (deprecated) */
http_status_t expect; /* Expect: header */
char *cookie; /* Cookie value(s) */
+
/**** New in CUPS 1.1.20 ****/
char _authstring[HTTP_MAX_VALUE],
/* Current Authentication value (deprecated) */
userpass[HTTP_MAX_VALUE];
/* Username:password string */
int digest_tries; /* Number of tries for digest auth */
+
/**** New in CUPS 1.2 ****/
off_t data_remaining; /* Number of bytes left */
http_addr_t *hostaddr; /* Current host address and port */
@@ -281,6 +303,7 @@ struct _http_s /**** HTTP connection structure. ****/
char wbuffer[HTTP_MAX_BUFFER];
/* Buffer for outgoing data */
int wused; /* Write buffer bytes used */
+
/**** New in CUPS 1.3 ****/
char *field_authorization;
/* Authorization field */
@@ -293,6 +316,7 @@ struct _http_s /**** HTTP connection structure. ****/
# ifdef HAVE_AUTHORIZATION_H
AuthorizationRef auth_ref; /* Authorization ref */
# endif /* HAVE_AUTHORIZATION_H */
+
/**** New in CUPS 1.5 ****/
http_tls_credentials_t tls_credentials;
/* TLS credentials */
@@ -303,6 +327,17 @@ struct _http_s /**** HTTP connection structure. ****/
# ifdef HAVE_GSSAPI
char gsshost[256]; /* Hostname for Kerberos */
# endif /* HAVE_GSSAPI */
+
+ /**** New in CUPS 1.7 ****/
+ _http_mode_t mode; /* _HTTP_MODE_CLIENT or _HTTP_MODE_SERVER */
+ char *accept_encoding,
+ /* Accept-Encoding field */
+ *allow, /* Allow field */
+ *server; /* Server field */
+# ifdef HAVE_LIBZ
+ _http_coding_t coding; /* _HTTP_CODING_xxx */
+ z_stream stream; /* (De)compression stream */
+# endif /* HAVE_LIBZ */
};
@@ -368,15 +403,17 @@ extern void _cups_freeifaddrs(struct ifaddrs *addrs);
*/
#define _httpAddrFamily(addrp) (addrp)->addr.sa_family
-extern int _httpAddrPort(http_addr_t *addr);
+extern int _httpAddrPort(http_addr_t *addr)
+ _CUPS_DEPRECATED_MSG("Use httpAddrPort "
+ "instead.");
extern void _httpAddrSetPort(http_addr_t *addr, int port);
extern char *_httpAssembleUUID(const char *server, int port,
const char *name, int number,
char *buffer, size_t bufsize);
extern http_t *_httpCreate(const char *host, int port,
- http_addrlist_t *addrlist,
+ http_addrlist_t *addrlist, int family,
http_encryption_t encryption,
- int family);
+ int blocking, _http_mode_t mode);
extern http_tls_credentials_t
_httpCreateCredentials(cups_array_t *credentials);
extern char *_httpDecodeURI(char *dst, const char *src,
@@ -385,7 +422,8 @@ extern void _httpDisconnect(http_t *http);
extern char *_httpEncodeURI(char *dst, const char *src,
size_t dstsize);
extern void _httpFreeCredentials(http_tls_credentials_t credentials);
-extern ssize_t _httpPeek(http_t *http, char *buffer, size_t length);
+extern ssize_t _httpPeek(http_t *http, char *buffer, size_t length)
+ _CUPS_DEPRECATED_MSG("Use httpPeek instead.");
extern const char *_httpResolveURI(const char *uri, char *resolved_uri,
size_t resolved_size, int options,
int (*cb)(void *context),
diff --git a/cups/http-support.c b/cups/http-support.c
index e69b44d05..2b0d9a827 100644
--- a/cups/http-support.c
+++ b/cups/http-support.c
@@ -1542,10 +1542,16 @@ _httpResolveURI(
# ifdef HAVE_DNSSD
if (DNSServiceCreateConnection(&ref) == kDNSServiceErr_NoError)
{
+ int interface = kDNSServiceInterfaceIndexAny;
+ /* Lookup on any interface */
+
+ if (!strcmp(scheme, "ippusb"))
+ interface = kDNSServiceInterfaceIndexLocalOnly;
+
localref = ref;
if (DNSServiceResolve(&localref,
- kDNSServiceFlagsShareConnection, 0, hostname, regtype,
- "local.", http_resolve_cb,
+ kDNSServiceFlagsShareConnection, interface,
+ hostname, regtype, "local.", http_resolve_cb,
&uribuf) == kDNSServiceErr_NoError)
{
int fds; /* Number of ready descriptors */
@@ -1619,7 +1625,7 @@ _httpResolveURI(
domainref = ref;
if (DNSServiceResolve(&domainref,
kDNSServiceFlagsShareConnection,
- 0, hostname, regtype, domain,
+ interface, hostname, regtype, domain,
http_resolve_cb,
&uribuf) == kDNSServiceErr_NoError)
domainsent = 1;
@@ -1747,7 +1753,7 @@ _httpResolveURI(
#endif /* HAVE_DNSSD || HAVE_AVAHI */
if ((options & _HTTP_RESOLVE_STDERR) && !uri)
- _cupsLangPrintFilter(stderr, "ERROR", _("Unable to find printer."));
+ _cupsLangPrintFilter(stderr, "INFO", _("Unable to find printer."));
}
else
{
diff --git a/cups/http.c b/cups/http.c
index c53465b2f..a547c47af 100644
--- a/cups/http.c
+++ b/cups/http.c
@@ -19,105 +19,120 @@
*
* Contents:
*
- * httpAddCredential() - Allocates and adds a single credential to an
- * array.
- * _httpBIOMethods() - Get the OpenSSL BIO methods for HTTP
- * connections.
- * httpBlocking() - Set blocking/non-blocking behavior on a
- * connection.
- * httpCheck() - Check to see if there is a pending response
- * from the server.
- * httpClearCookie() - Clear the cookie value(s).
- * httpClearFields() - Clear HTTP request fields.
- * httpClose() - Close an HTTP connection.
- * httpConnect() - Connect to a HTTP server.
- * httpConnectEncrypt() - Connect to a HTTP server using encryption.
- * httpCopyCredentials() - Copy the credentials associated with an
- * encrypted connection.
- * _httpCreate() - Create an unconnected HTTP connection.
- * _httpCreateCredentials() - Create credentials in the internal format.
- * httpDelete() - Send a DELETE request to the server.
- * _httpDisconnect() - Disconnect a HTTP connection.
- * httpEncryption() - Set the required encryption on the link.
- * httpError() - Get the last error on a connection.
- * httpFlush() - Flush data from a HTTP connection.
- * httpFlushWrite() - Flush data in write buffer.
- * _httpFreeCredentials() - Free internal credentials.
- * httpFreeCredentials() - Free an array of credentials.
- * httpGet() - Send a GET request to the server.
- * httpGetAuthString() - Get the current authorization string.
- * httpGetBlocking() - Get the blocking/non-block state of a
- * connection.
- * httpGetCookie() - Get any cookie data from the response.
- * httpGetFd() - Get the file descriptor associated with a
- * connection.
- * httpGetField() - Get a field value from a request/response.
- * httpGetLength() - Get the amount of data remaining from the
- * content-length or transfer-encoding fields.
- * httpGetLength2() - Get the amount of data remaining from the
- * content-length or transfer-encoding fields.
- * httpGets() - Get a line of text from a HTTP connection.
- * httpGetState() - Get the current state of the HTTP request.
- * httpGetStatus() - Get the status of the last HTTP request.
- * httpGetSubField() - Get a sub-field value.
- * httpGetSubField2() - Get a sub-field value.
- * httpGetVersion() - Get the HTTP version at the other end.
- * httpHead() - Send a HEAD request to the server.
- * httpInitialize() - Initialize the HTTP interface library and set
- * the default HTTP proxy (if any).
- * httpOptions() - Send an OPTIONS request to the server.
- * _httpPeek() - Peek at data from a HTTP connection.
- * httpPost() - Send a POST request to the server.
- * httpPrintf() - Print a formatted string to a HTTP connection.
- * httpPut() - Send a PUT request to the server.
- * httpRead() - Read data from a HTTP connection.
- * httpRead2() - Read data from a HTTP connection.
- * _httpReadCDSA() - Read function for the CDSA library.
- * _httpReadGNUTLS() - Read function for the GNU TLS library.
- * httpReconnect() - Reconnect to a HTTP server.
- * httpReconnect2() - Reconnect to a HTTP server with timeout and
- * optional cancel.
- * httpSetAuthString() - Set the current authorization string.
- * httpSetCredentials() - Set the credentials associated with an
- * encrypted connection.
- * httpSetCookie() - Set the cookie value(s).
- * httpSetExpect() - Set the Expect: header in a request.
- * httpSetField() - Set the value of an HTTP header.
- * httpSetLength() - Set the content-length and content-encoding.
- * httpSetTimeout() - Set read/write timeouts and an optional
- * callback.
- * httpTrace() - Send an TRACE request to the server.
- * _httpUpdate() - Update the current HTTP status for incoming
- * data.
- * httpUpdate() - Update the current HTTP state for incoming
- * data.
- * _httpWait() - Wait for data available on a connection (no
- * flush).
- * httpWait() - Wait for data available on a connection.
- * httpWrite() - Write data to a HTTP connection.
- * httpWrite2() - Write data to a HTTP connection.
- * _httpWriteCDSA() - Write function for the CDSA library.
- * _httpWriteGNUTLS() - Write function for the GNU TLS library.
- * http_bio_ctrl() - Control the HTTP connection.
- * http_bio_free() - Free OpenSSL data.
- * http_bio_new() - Initialize an OpenSSL BIO structure.
- * http_bio_puts() - Send a string for OpenSSL.
- * http_bio_read() - Read data for OpenSSL.
- * http_bio_write() - Write data for OpenSSL.
- * http_debug_hex() - Do a hex dump of a buffer.
- * http_field() - Return the field index for a field name.
- * http_read_ssl() - Read from a SSL/TLS connection.
- * http_send() - Send a request with all fields and the trailing
- * blank line.
- * http_set_credentials() - Set the SSL/TLS credentials.
- * http_set_timeout() - Set the socket timeout values.
- * http_set_wait() - Set the default wait value for reads.
- * http_setup_ssl() - Set up SSL/TLS support on a connection.
- * http_shutdown_ssl() - Shut down SSL/TLS on a connection.
- * http_upgrade() - Force upgrade to TLS encryption.
- * http_write() - Write a buffer to a HTTP connection.
- * http_write_chunk() - Write a chunked buffer.
- * http_write_ssl() - Write to a SSL/TLS connection.
+ * httpAcceptConnection() - Accept a new HTTP client connection from
+ * the specified listening socket.
+ * httpAddCredential() - Allocates and adds a single credential to
+ * an array.
+ * _httpBIOMethods() - Get the OpenSSL BIO methods for HTTP
+ * connections.
+ * httpBlocking() - Set blocking/non-blocking behavior on a
+ * connection.
+ * httpCheck() - Check to see if there is a pending response
+ * from the server.
+ * httpClearCookie() - Clear the cookie value(s).
+ * httpClearFields() - Clear HTTP request fields.
+ * httpClose() - Close an HTTP connection.
+ * httpConnect() - Connect to a HTTP server.
+ * httpConnect2() - Connect to a HTTP server.
+ * httpConnectEncrypt() - Connect to a HTTP server using encryption.
+ * httpCopyCredentials() - Copy the credentials associated with an
+ * encrypted connection.
+ * _httpCreate() - Create an unconnected HTTP connection.
+ * _httpCreateCredentials() - Create credentials in the internal format.
+ * httpDelete() - Send a DELETE request to the server.
+ * _httpDisconnect() - Disconnect a HTTP connection.
+ * httpEncryption() - Set the required encryption on the link.
+ * httpError() - Get the last error on a connection.
+ * httpFlush() - Flush data from a HTTP connection.
+ * httpFlushWrite() - Flush data in write buffer.
+ * _httpFreeCredentials() - Free internal credentials.
+ * httpFreeCredentials() - Free an array of credentials.
+ * httpGet() - Send a GET request to the server.
+ * httpGetContentEncoding() - Get a common content encoding, if any,
+ * between the client and server.
+ * httpGetAuthString() - Get the current authorization string.
+ * httpGetBlocking() - Get the blocking/non-block state of a
+ * connection.
+ * httpGetCookie() - Get any cookie data from the response.
+ * httpGetExpect() - Get the value of the Expect header, if any.
+ * httpGetFd() - Get the file descriptor associated with a
+ * connection.
+ * httpGetField() - Get a field value from a request/response.
+ * httpGetLength() - Get the amount of data remaining from the
+ * content-length or transfer-encoding fields.
+ * httpGetLength2() - Get the amount of data remaining from the
+ * content-length or transfer-encoding fields.
+ * httpGets() - Get a line of text from a HTTP connection.
+ * httpGetState() - Get the current state of the HTTP request.
+ * httpGetStatus() - Get the status of the last HTTP request.
+ * httpGetSubField() - Get a sub-field value.
+ * httpGetSubField2() - Get a sub-field value.
+ * httpGetVersion() - Get the HTTP version at the other end.
+ * httpHead() - Send a HEAD request to the server.
+ * httpInitialize() - Initialize the HTTP interface library and
+ * set the default HTTP proxy (if any).
+ * httpOptions() - Send an OPTIONS request to the server.
+ * httpPeek() - Peek at data from a HTTP connection.
+ * httpPost() - Send a POST request to the server.
+ * httpPrintf() - Print a formatted string to a HTTP
+ * connection.
+ * httpPut() - Send a PUT request to the server.
+ * httpRead() - Read data from a HTTP connection.
+ * httpRead2() - Read data from a HTTP connection.
+ * _httpReadCDSA() - Read function for the CDSA library.
+ * _httpReadGNUTLS() - Read function for the GNU TLS library.
+ * httpReadRequest() - Read a HTTP request from a connection.
+ * httpReconnect() - Reconnect to a HTTP server.
+ * httpReconnect2() - Reconnect to a HTTP server with timeout and
+ * optional cancel.
+ * httpSetAuthString() - Set the current authorization string.
+ * httpSetCredentials() - Set the credentials associated with an
+ * encrypted connection.
+ * httpSetCookie() - Set the cookie value(s).
+ * httpSetExpect() - Set the Expect: header in a request.
+ * httpSetField() - Set the value of an HTTP header.
+ * httpSetLength() - Set the content-length and
+ * content-encoding.
+ * httpSetTimeout() - Set read/write timeouts and an optional
+ * callback.
+ * httpTrace() - Send an TRACE request to the server.
+ * _httpUpdate() - Update the current HTTP status for incoming
+ * data.
+ * httpUpdate() - Update the current HTTP state for incoming
+ * data.
+ * _httpWait() - Wait for data available on a connection (no
+ * flush).
+ * httpWait() - Wait for data available on a connection.
+ * httpWrite() - Write data to a HTTP connection.
+ * httpWrite2() - Write data to a HTTP connection.
+ * _httpWriteCDSA() - Write function for the CDSA library.
+ * _httpWriteGNUTLS() - Write function for the GNU TLS library.
+ * httpWriteResponse() - Write a HTTP response to a client
+ * connection.
+ * http_bio_ctrl() - Control the HTTP connection.
+ * http_bio_free() - Free OpenSSL data.
+ * http_bio_new() - Initialize an OpenSSL BIO structure.
+ * http_bio_puts() - Send a string for OpenSSL.
+ * http_bio_read() - Read data for OpenSSL.
+ * http_bio_write() - Write data for OpenSSL.
+ * http_content_coding_finish() - Finish doing any content encoding.
+ * http_content_coding_start() - Start doing content encoding.
+ * http_debug_hex() - Do a hex dump of a buffer.
+ * http_field() - Return the field index for a field name.
+ * http_read_ssl() - Read from a SSL/TLS connection.
+ * http_send() - Send a request with all fields and the
+ * trailing blank line.
+ * http_set_credentials() - Set the SSL/TLS credentials.
+ * http_set_length() - Set the data_encoding and data_remaining
+ * values.
+ * http_set_timeout() - Set the socket timeout values.
+ * http_set_wait() - Set the default wait value for reads.
+ * http_setup_ssl() - Set up SSL/TLS support on a connection.
+ * http_shutdown_ssl() - Shut down SSL/TLS on a connection.
+ * http_upgrade() - Force upgrade to TLS encryption.
+ * http_write() - Write a buffer to a HTTP connection.
+ * http_write_chunk() - Write a chunked buffer.
+ * http_write_ssl() - Write to a SSL/TLS connection.
*/
/*
@@ -143,6 +158,11 @@
* Local functions...
*/
+#ifdef HAVE_LIBZ
+static void http_content_coding_finish(http_t *http);
+static void http_content_coding_start(http_t *http,
+ const char *value);
+#endif /* HAVE_LIBZ */
#ifdef DEBUG
static void http_debug_hex(const char *prefix, const char *buffer,
int bytes);
@@ -160,6 +180,7 @@ static int http_read_ssl(http_t *http, char *buf, int len);
static int http_set_credentials(http_t *http);
# endif /* HAVE_CDSASSL ** HAVE_SECCERTIFICATECOPYDATA */
#endif /* HAVE_SSL */
+static off_t http_set_length(http_t *http);
static void http_set_timeout(int fd, double timeout);
static void http_set_wait(http_t *http);
#ifdef HAVE_SSL
@@ -202,25 +223,31 @@ static const char * const http_fields[] =
"Transfer-Encoding",
"Upgrade",
"User-Agent",
- "WWW-Authenticate"
+ "WWW-Authenticate",
+ "Accept-Encoding",
+ "Allow",
+ "Server"
};
#ifdef DEBUG
static const char * const http_states[] =
{
- "HTTP_WAITING",
- "HTTP_OPTIONS",
- "HTTP_GET",
- "HTTP_GET_SEND",
- "HTTP_HEAD",
- "HTTP_POST",
- "HTTP_POST_RECV",
- "HTTP_POST_SEND",
- "HTTP_PUT",
- "HTTP_PUT_RECV",
- "HTTP_DELETE",
- "HTTP_TRACE",
- "HTTP_CLOSE",
- "HTTP_STATUS"
+ "HTTP_STATE_ERROR",
+ "HTTP_STATE_WAITING",
+ "HTTP_STATE_OPTIONS",
+ "HTTP_STATE_GET",
+ "HTTP_STATE_GET_SEND",
+ "HTTP_STATE_HEAD",
+ "HTTP_STATE_POST",
+ "HTTP_STATE_POST_RECV",
+ "HTTP_STATE_POST_SEND",
+ "HTTP_STATE_PUT",
+ "HTTP_STATE_PUT_RECV",
+ "HTTP_STATE_DELETE",
+ "HTTP_STATE_TRACE",
+ "HTTP_STATE_CONNECT",
+ "HTTP_STATE_STATUS",
+ "HTTP_STATE_UNKNOWN_METHOD",
+ "HTTP_STATE_UNKNOWN_VERSION"
};
#endif /* DEBUG */
@@ -254,6 +281,91 @@ static BIO_METHOD http_bio_methods =
/*
+ * 'httpAcceptConnection()' - Accept a new HTTP client connection from the
+ * specified listening socket.
+ *
+ * @since CUPS 1.7@
+ */
+
+http_t * /* O - HTTP connection or @code NULL@ */
+httpAcceptConnection(int fd, /* I - Listen socket file descriptor */
+ int blocking) /* I - 1 if the connection should be
+ blocking, 0 otherwise */
+{
+ http_t *http; /* HTTP connection */
+ http_addrlist_t addrlist; /* Dummy address list */
+ socklen_t addrlen; /* Length of address */
+ int val; /* Socket option value */
+
+
+ /*
+ * Range check input...
+ */
+
+ if (fd < 0)
+ return (NULL);
+
+ /*
+ * Create the client connection...
+ */
+
+ memset(&addrlist, 0, sizeof(addrlist));
+
+ if ((http = _httpCreate(NULL, 0, &addrlist, AF_UNSPEC,
+ HTTP_ENCRYPTION_IF_REQUESTED, blocking,
+ _HTTP_MODE_SERVER)) == NULL)
+ return (NULL);
+
+ /*
+ * Accept the client and get the remote address...
+ */
+
+ addrlen = sizeof(http_addr_t);
+
+ if ((http->fd = accept(fd, (struct sockaddr *)&(http->addrlist->addr),
+ &addrlen)) < 0)
+ {
+ _cupsSetHTTPError(HTTP_STATUS_ERROR);
+ httpClose(http);
+
+ return (NULL);
+ }
+
+ httpAddrString(&(http->addrlist->addr), http->hostname,
+ sizeof(http->hostname));
+
+#ifdef SO_NOSIGPIPE
+ /*
+ * Disable SIGPIPE for this socket.
+ */
+
+ val = 1;
+ setsockopt(http->fd, SOL_SOCKET, SO_NOSIGPIPE, &val, sizeof(val));
+#endif /* SO_NOSIGPIPE */
+
+ /*
+ * Using TCP_NODELAY improves responsiveness, especially on systems
+ * with a slow loopback interface. Since we write large buffers
+ * when sending print files and requests, there shouldn't be any
+ * performance penalty for this...
+ */
+
+ val = 1;
+ setsockopt(http->fd, IPPROTO_TCP, TCP_NODELAY, (char *)&val, sizeof(val));
+
+#ifdef FD_CLOEXEC
+ /*
+ * Close this socket when starting another process...
+ */
+
+ fcntl(http->fd, F_SETFD, FD_CLOEXEC);
+#endif /* FD_CLOEXEC */
+
+ return (http);
+}
+
+
+/*
* 'httpAddCredential()' - Allocates and adds a single credential to an array.
*
* Use @code cupsArrayNew(NULL, NULL)@ to create a credentials array.
@@ -355,13 +467,19 @@ httpClearCookie(http_t *http) /* I - Connection to server */
void
httpClearFields(http_t *http) /* I - Connection to server */
{
+ DEBUG_printf(("httpClearFields(http=%p)", http));
+
if (http)
{
memset(http->fields, 0, sizeof(http->fields));
- if (http->hostname[0] == '/')
- httpSetField(http, HTTP_FIELD_HOST, "localhost");
- else
- httpSetField(http, HTTP_FIELD_HOST, http->hostname);
+
+ if (http->mode == _HTTP_MODE_CLIENT)
+ {
+ if (http->hostname[0] == '/')
+ httpSetField(http, HTTP_FIELD_HOST, "localhost");
+ else
+ httpSetField(http, HTTP_FIELD_HOST, http->hostname);
+ }
if (http->field_authorization)
{
@@ -369,6 +487,24 @@ httpClearFields(http_t *http) /* I - Connection to server */
http->field_authorization = NULL;
}
+ if (http->accept_encoding)
+ {
+ _cupsStrFree(http->accept_encoding);
+ http->accept_encoding = NULL;
+ }
+
+ if (http->allow)
+ {
+ _cupsStrFree(http->allow);
+ http->allow = NULL;
+ }
+
+ if (http->server)
+ {
+ _cupsStrFree(http->server);
+ http->server = NULL;
+ }
+
http->expect = (http_status_t)0;
}
}
@@ -435,7 +571,7 @@ httpClose(http_t *http) /* I - Connection to server */
/*
* 'httpConnect()' - Connect to a HTTP server.
*
- * This function is deprecated - use @link httpConnectEncrypt@ instead.
+ * This function is deprecated - use @link httpConnect2@ instead.
*
* @deprecated@
*/
@@ -444,53 +580,84 @@ http_t * /* O - New HTTP connection */
httpConnect(const char *host, /* I - Host to connect to */
int port) /* I - Port number */
{
- return (httpConnectEncrypt(host, port, HTTP_ENCRYPT_IF_REQUESTED));
+ return (httpConnect2(host, port, NULL, AF_UNSPEC, HTTP_ENCRYPT_IF_REQUESTED,
+ 1, 30000, NULL));
}
/*
- * 'httpConnectEncrypt()' - Connect to a HTTP server using encryption.
+ * 'httpConnect2()' - Connect to a HTTP server.
+ *
+ * @since CUPS 1.7@
*/
http_t * /* O - New HTTP connection */
-httpConnectEncrypt(
+httpConnect2(
const char *host, /* I - Host to connect to */
int port, /* I - Port number */
- http_encryption_t encryption) /* I - Type of encryption to use */
+ http_addrlist_t *addrlist, /* I - List of addresses or NULL to lookup */
+ int family, /* I - Address family to use or @code AF_UNSPEC@ for any */
+ http_encryption_t encryption, /* I - Type of encryption to use */
+ int blocking, /* I - 1 for blocking connection, 0 for non-blocking */
+ int msec, /* I - Connection timeout in milliseconds */
+ int *cancel) /* I - Pointer to "cancel" variable */
{
http_t *http; /* New HTTP connection */
- DEBUG_printf(("httpConnectEncrypt(host=\"%s\", port=%d, encryption=%d)",
- host, port, encryption));
+ DEBUG_printf(("httpConnect2(host=\"%s\", port=%d, addrlist=%p, family=%d, "
+ "encryption=%d, blocking=%d, msec=%d, cancel=%p)", host, port,
+ addrlist, family, encryption, blocking, msec, cancel));
/*
* Create the HTTP structure...
*/
- if ((http = _httpCreate(host, port, NULL, encryption, AF_UNSPEC)) == NULL)
+ if ((http = _httpCreate(host, port, addrlist, family, encryption, blocking,
+ _HTTP_MODE_CLIENT)) == NULL)
return (NULL);
/*
* Connect to the remote system...
*/
- if (!httpReconnect(http))
+ if (!httpReconnect2(http, msec, cancel))
return (http);
/*
* Could not connect to any known address - bail out!
*/
- httpAddrFreeList(http->addrlist);
-
- free(http);
+ httpClose(http);
return (NULL);
}
/*
+ * 'httpConnectEncrypt()' - Connect to a HTTP server using encryption.
+ *
+ * This function is now deprecated. Please use the @link httpConnect2@ function
+ * instead.
+ *
+ * @deprecated@
+ */
+
+http_t * /* O - New HTTP connection */
+httpConnectEncrypt(
+ const char *host, /* I - Host to connect to */
+ int port, /* I - Port number */
+ http_encryption_t encryption) /* I - Type of encryption to use */
+{
+ DEBUG_printf(("httpConnectEncrypt(host=\"%s\", port=%d, encryption=%d)",
+ host, port, encryption));
+
+ return (httpConnect2(host, port, NULL, AF_UNSPEC, encryption, 1, 30000,
+ NULL));
+}
+
+
+/*
* 'httpCopyCredentials()' - Copy the credentials associated with an encrypted
* connection.
*
@@ -567,17 +734,21 @@ _httpCreate(
const char *host, /* I - Hostname */
int port, /* I - Port number */
http_addrlist_t *addrlist, /* I - Address list or NULL */
+ int family, /* I - Address family or AF_UNSPEC */
http_encryption_t encryption, /* I - Encryption to use */
- int family) /* I - Address family or AF_UNSPEC */
+ int blocking, /* I - 1 for blocking mode */
+ _http_mode_t mode) /* I - _HTTP_MODE_CLIENT or _SERVER */
{
http_t *http; /* New HTTP connection */
char service[255]; /* Service name */
+ http_addrlist_t *myaddrlist = NULL; /* My address list */
- DEBUG_printf(("4_httpCreate(host=\"%s\", port=%d, encryption=%d)",
- host, port, encryption));
+ DEBUG_printf(("4_httpCreate(host=\"%s\", port=%d, addrlist=%p, family=%d, "
+ "encryption=%d, blocking=%d, mode=%d)", host, port, addrlist,
+ family, encryption, blocking, mode));
- if (!host)
+ if (!host && mode == _HTTP_MODE_CLIENT)
return (NULL);
httpInitialize();
@@ -586,11 +757,19 @@ _httpCreate(
* Lookup the host...
*/
- sprintf(service, "%d", port);
+ if (addrlist)
+ {
+ myaddrlist = httpAddrCopyList(addrlist);
+ }
+ else
+ {
+ snprintf(service, sizeof(service), "%d", port);
- if (!addrlist)
- if ((addrlist = httpAddrGetList(host, family, service)) == NULL)
- return (NULL);
+ myaddrlist = httpAddrGetList(host, family, service);
+ }
+
+ if (!myaddrlist)
+ return (NULL);
/*
* Allocate memory for the structure...
@@ -607,20 +786,22 @@ _httpCreate(
* Initialize the HTTP data...
*/
+ http->mode = mode;
http->activity = time(NULL);
- http->addrlist = addrlist;
- http->blocking = 1;
+ http->addrlist = myaddrlist;
+ http->blocking = blocking;
http->fd = -1;
#ifdef HAVE_GSSAPI
http->gssctx = GSS_C_NO_CONTEXT;
http->gssname = GSS_C_NO_NAME;
#endif /* HAVE_GSSAPI */
- http->version = HTTP_1_1;
+ http->version = HTTP_VERSION_1_1;
- strlcpy(http->hostname, host, sizeof(http->hostname));
+ if (host)
+ strlcpy(http->hostname, host, sizeof(http->hostname));
if (port == 443) /* Always use encryption for https */
- http->encryption = HTTP_ENCRYPT_ALWAYS;
+ http->encryption = HTTP_ENCRYPTION_ALWAYS;
else
http->encryption = encryption;
@@ -785,7 +966,7 @@ httpFlush(http_t *http) /* I - Connection to server */
DEBUG_printf(("httpFlush(http=%p), state=%s", http,
- http_states[http->state]));
+ http_states[http->state + 1]));
/*
* Temporarily set non-blocking mode so we don't get stuck in httpRead()...
@@ -808,13 +989,16 @@ httpFlush(http_t *http) /* I - Connection to server */
http->blocking = blocking;
- if (http->state == oldstate && http->state != HTTP_WAITING && http->fd >= 0)
+ if (http->state == oldstate && http->state != HTTP_STATE_WAITING &&
+ http->fd >= 0)
{
/*
* Didn't get the data back, so close the current connection.
*/
- http->state = HTTP_WAITING;
+ DEBUG_puts("1httpFlush: Setting state to HTTP_STATE_WAITING and closing.");
+
+ http->state = HTTP_STATE_WAITING;
#ifdef HAVE_SSL
if (http->tls)
@@ -844,7 +1028,8 @@ httpFlushWrite(http_t *http) /* I - Connection to server */
int bytes; /* Bytes written */
- DEBUG_printf(("httpFlushWrite(http=%p)", http));
+ DEBUG_printf(("httpFlushWrite(http=%p) data_encoding=%d", http,
+ http ? http->data_encoding : -1));
if (!http || !http->wused)
{
@@ -853,7 +1038,7 @@ httpFlushWrite(http_t *http) /* I - Connection to server */
return (0);
}
- if (http->data_encoding == HTTP_ENCODE_CHUNKED)
+ if (http->data_encoding == HTTP_ENCODING_CHUNKED)
bytes = http_write_chunk(http, http->wbuffer, http->wused);
else
bytes = http_write(http, http->wbuffer, http->wused);
@@ -930,6 +1115,94 @@ httpGet(http_t *http, /* I - Connection to server */
/*
+ * 'httpGetContentEncoding()' - Get a common content encoding, if any, between
+ * the client and server.
+ *
+ * This function uses the value of the Accepts-Encoding HTTP header and must be
+ * called after receiving a response from the server or a request from the
+ * client. The value returned can be use in subsequent requests (for clients)
+ * or in the response (for servers) in order to compress the content stream.
+ *
+ * @since CUPS 1.7@
+ */
+
+const char * /* O - Content-Coding value or
+ @code NULL@ for the identity
+ coding. */
+httpGetContentEncoding(http_t *http) /* I - Connection to client/server */
+{
+#ifdef HAVE_LIBZ
+ if (http && http->accept_encoding)
+ {
+ int i; /* Looping var */
+ char temp[HTTP_MAX_VALUE], /* Copy of Accepts-Encoding value */
+ *start, /* Start of coding value */
+ *end; /* End of coding value */
+ double qvalue; /* "qvalue" for coding */
+ struct lconv *loc = localeconv(); /* Locale data */
+ static const char * const codings[] =
+ { /* Supported content codings */
+ "deflate",
+ "gzip",
+ "x-deflate",
+ "x-gzip"
+ };
+
+ strlcpy(temp, http->accept_encoding, sizeof(temp));
+
+ for (start = temp; *start; start = end)
+ {
+ /*
+ * Find the end of the coding name...
+ */
+
+ qvalue = 1.0;
+ end = start;
+ while (*end && *end != ';' && *end != ',' && !isspace(*end & 255))
+ end ++;
+
+ if (*end == ';')
+ {
+ /*
+ * Grab the qvalue as needed...
+ */
+
+ if (!strncmp(end, ";q=", 3))
+ qvalue = _cupsStrScand(end + 3, NULL, loc);
+
+ /*
+ * Skip past all attributes...
+ */
+
+ *end++ = '\0';
+ while (*end && *end != ',' && !isspace(*end & 255))
+ end ++;
+ }
+ else if (*end)
+ *end++ = '\0';
+
+ while (*end && isspace(*end & 255))
+ end ++;
+
+ /*
+ * Check value if it matches something we support...
+ */
+
+ if (qvalue <= 0.0)
+ continue;
+
+ for (i = 0; i < (int)(sizeof(codings) / sizeof(codings[0])); i ++)
+ if (!strcmp(start, codings[i]))
+ return (codings[i]);
+ }
+ }
+#endif /* HAVE_LIBZ */
+
+ return (NULL);
+}
+
+
+/*
* 'httpGetAuthString()' - Get the current authorization string.
*
* The authorization string is set by cupsDoAuthentication() and
@@ -977,6 +1250,25 @@ httpGetCookie(http_t *http) /* I - HTTP connecion */
/*
+ * 'httpGetExpect()' - Get the value of the Expect header, if any.
+ *
+ * Returns @code HTTP_STATUS_NONE@ if there is no Expect header, otherwise
+ * returns the expected HTTP status code, typically @code HTTP_STATUS_CONTINUE@.
+ *
+ * @since CUPS 1.7@
+ */
+
+http_status_t /* O - Expect: status, if any */
+httpGetExpect(http_t *http) /* I - Connection to client */
+{
+ if (!http)
+ return (HTTP_STATUS_ERROR);
+ else
+ return (http->expect);
+}
+
+
+/*
* 'httpGetFd()' - Get the file descriptor associated with a connection.
*
* @since CUPS 1.2/OS X 10.5@
@@ -999,18 +1291,32 @@ httpGetField(http_t *http, /* I - Connection to server */
{
if (!http || field <= HTTP_FIELD_UNKNOWN || field >= HTTP_FIELD_MAX)
return (NULL);
- else if (field == HTTP_FIELD_AUTHORIZATION &&
- http->field_authorization)
+
+ switch (field)
{
- /*
- * Special case for WWW-Authenticate: as its contents can be
- * longer than HTTP_MAX_VALUE...
- */
+ case HTTP_FIELD_ACCEPT_ENCODING :
+ return (http->accept_encoding);
- return (http->field_authorization);
+ case HTTP_FIELD_ALLOW :
+ return (http->allow);
+
+ case HTTP_FIELD_SERVER :
+ return (http->server);
+
+ case HTTP_FIELD_AUTHORIZATION :
+ if (http->field_authorization)
+ {
+ /*
+ * Special case for WWW-Authenticate: as its contents can be
+ * longer than HTTP_MAX_VALUE...
+ */
+
+ return (http->field_authorization);
+ }
+
+ default :
+ return (http->fields[field]);
}
- else
- return (http->fields[field]);
}
@@ -1055,8 +1361,11 @@ httpGetLength(http_t *http) /* I - Connection to server */
off_t /* O - Content length */
httpGetLength2(http_t *http) /* I - Connection to server */
{
+ off_t remaining; /* Remaining length */
+
+
DEBUG_printf(("2httpGetLength2(http=%p), state=%s", http,
- http_states[http->state]));
+ http_states[http->state + 1]));
if (!http)
return (-1);
@@ -1064,48 +1373,46 @@ httpGetLength2(http_t *http) /* I - Connection to server */
if (!_cups_strcasecmp(http->fields[HTTP_FIELD_TRANSFER_ENCODING], "chunked"))
{
DEBUG_puts("4httpGetLength2: chunked request!");
-
- http->data_encoding = HTTP_ENCODE_CHUNKED;
- http->data_remaining = 0;
+ remaining = 0;
}
else
{
- http->data_encoding = HTTP_ENCODE_LENGTH;
-
/*
* The following is a hack for HTTP servers that don't send a
- * content-length or transfer-encoding field...
+ * Content-Length or Transfer-Encoding field...
*
- * If there is no content-length then the connection must close
+ * If there is no Content-Length then the connection must close
* after the transfer is complete...
*/
if (!http->fields[HTTP_FIELD_CONTENT_LENGTH][0])
{
/*
- * Default content length is 0 for errors and 2^31-1 for other
- * successful requests...
+ * Default content length is 0 for errors and certain types of operations,
+ * and 2^31-1 for other successful requests...
*/
- if (http->status >= HTTP_MULTIPLE_CHOICES)
- http->data_remaining = 0;
+ if (http->status >= HTTP_MULTIPLE_CHOICES ||
+ http->state == HTTP_STATE_OPTIONS ||
+ (http->state == HTTP_STATE_GET && http->mode == _HTTP_MODE_SERVER) ||
+ http->state == HTTP_STATE_HEAD ||
+ (http->state == HTTP_STATE_PUT && http->mode == _HTTP_MODE_CLIENT) ||
+ http->state == HTTP_STATE_DELETE ||
+ http->state == HTTP_STATE_TRACE ||
+ http->state == HTTP_STATE_CONNECT)
+ remaining = 0;
else
- http->data_remaining = 2147483647;
+ remaining = 2147483647;
}
- else
- http->data_remaining = strtoll(http->fields[HTTP_FIELD_CONTENT_LENGTH],
- NULL, 10);
+ else if ((remaining = strtoll(http->fields[HTTP_FIELD_CONTENT_LENGTH],
+ NULL, 10)) < 0)
+ remaining = -1;
DEBUG_printf(("4httpGetLength2: content_length=" CUPS_LLFMT,
- CUPS_LLCAST http->data_remaining));
+ CUPS_LLCAST remaining));
}
- if (http->data_remaining <= INT_MAX)
- http->_data_remaining = (int)http->data_remaining;
- else
- http->_data_remaining = INT_MAX;
-
- return (http->data_remaining);
+ return (remaining);
}
@@ -1300,7 +1607,7 @@ httpGets(char *line, /* I - Line to read into */
http_state_t /* O - HTTP state */
httpGetState(http_t *http) /* I - Connection to server */
{
- return (http ? http->state : HTTP_ERROR);
+ return (http ? http->state : HTTP_STATE_ERROR);
}
@@ -1472,7 +1779,7 @@ httpGetSubField2(http_t *http, /* I - Connection to server */
http_version_t /* O - Version number */
httpGetVersion(http_t *http) /* I - Connection to server */
{
- return (http ? http->version : HTTP_1_0);
+ return (http ? http->version : HTTP_VERSION_1_0);
}
@@ -1584,17 +1891,19 @@ httpOptions(http_t *http, /* I - Connection to server */
/*
- * '_httpPeek()' - Peek at data from a HTTP connection.
+ * 'httpPeek()' - Peek at data from a HTTP connection.
*
* This function copies available data from the given HTTP connection, reading
* a buffer as needed. The data is still available for reading using
* @link httpRead@ or @link httpRead2@.
*
* For non-blocking connections the usual timeouts apply.
+ *
+ * @since CUPS 1.7@
*/
ssize_t /* O - Number of bytes copied */
-_httpPeek(http_t *http, /* I - Connection to server */
+httpPeek(http_t *http, /* I - Connection to server */
char *buffer, /* I - Buffer for data */
size_t length) /* I - Maximum number of bytes */
{
@@ -1602,7 +1911,7 @@ _httpPeek(http_t *http, /* I - Connection to server */
char len[32]; /* Length string */
- DEBUG_printf(("_httpPeek(http=%p, buffer=%p, length=" CUPS_LLFMT ")",
+ DEBUG_printf(("httpPeek(http=%p, buffer=%p, length=" CUPS_LLFMT ")",
http, buffer, CUPS_LLCAST length));
if (http == NULL || buffer == NULL)
@@ -1614,26 +1923,26 @@ _httpPeek(http_t *http, /* I - Connection to server */
if (length <= 0)
return (0);
- if (http->data_encoding == HTTP_ENCODE_CHUNKED &&
+ if (http->data_encoding == HTTP_ENCODING_CHUNKED &&
http->data_remaining <= 0)
{
- DEBUG_puts("2_httpPeek: Getting chunk length...");
+ DEBUG_puts("2httpPeek: Getting chunk length...");
if (httpGets(len, sizeof(len), http) == NULL)
{
- DEBUG_puts("1_httpPeek: Could not get length!");
+ DEBUG_puts("1httpPeek: Could not get length!");
return (0);
}
http->data_remaining = strtoll(len, NULL, 16);
if (http->data_remaining < 0)
{
- DEBUG_puts("1_httpPeek: Negative chunk length!");
+ DEBUG_puts("1httpPeek: Negative chunk length!");
return (0);
}
}
- DEBUG_printf(("2_httpPeek: data_remaining=" CUPS_LLFMT,
+ DEBUG_printf(("2httpPeek: data_remaining=" CUPS_LLFMT,
CUPS_LLCAST http->data_remaining));
if (http->data_remaining <= 0)
@@ -1643,19 +1952,22 @@ _httpPeek(http_t *http, /* I - Connection to server */
* data, go idle...
*/
- if (http->data_encoding == HTTP_ENCODE_CHUNKED)
+ if (http->data_encoding == HTTP_ENCODING_CHUNKED)
httpGets(len, sizeof(len), http);
- if (http->state == HTTP_POST_RECV)
+ if (http->state == HTTP_STATE_POST_RECV)
http->state ++;
else
- http->state = HTTP_WAITING;
+ http->state = HTTP_STATE_WAITING;
+
+ DEBUG_printf(("1httpPeek: 0-length chunk, set state to %s.",
+ http_states[http->state + 1]));
/*
* Prevent future reads for this request...
*/
- http->data_encoding = HTTP_ENCODE_LENGTH;
+ http->data_encoding = HTTP_ENCODING_FIELDS;
return (0);
}
@@ -1686,7 +1998,7 @@ _httpPeek(http_t *http, /* I - Connection to server */
else
buflen = http->data_remaining;
- DEBUG_printf(("2_httpPeek: Reading %d bytes into buffer.", (int)buflen));
+ DEBUG_printf(("2httpPeek: Reading %d bytes into buffer.", (int)buflen));
do
{
@@ -1738,10 +2050,10 @@ _httpPeek(http_t *http, /* I - Connection to server */
}
while (bytes < 0);
- DEBUG_printf(("2_httpPeek: Read " CUPS_LLFMT " bytes into buffer.",
+ DEBUG_printf(("2httpPeek: Read " CUPS_LLFMT " bytes into buffer.",
CUPS_LLCAST bytes));
#ifdef DEBUG
- http_debug_hex("_httpPeek", http->buffer, (int)bytes);
+ http_debug_hex("httpPeek", http->buffer, (int)bytes);
#endif /* DEBUG */
http->used = bytes;
@@ -1754,7 +2066,7 @@ _httpPeek(http_t *http, /* I - Connection to server */
bytes = (ssize_t)length;
- DEBUG_printf(("2_httpPeek: grabbing %d bytes from input buffer...",
+ DEBUG_printf(("2httpPeek: grabbing %d bytes from input buffer...",
(int)bytes));
memcpy(buffer, http->buffer, length);
@@ -1783,12 +2095,21 @@ _httpPeek(http_t *http, /* I - Connection to server */
}
#ifdef DEBUG
- http_debug_hex("_httpPeek", buffer, (int)bytes);
+ http_debug_hex("httpPeek", buffer, (int)bytes);
#endif /* DEBUG */
return (bytes);
}
+ssize_t /* O - Number of bytes copied */
+_httpPeek(http_t *http, /* I - Connection to server */
+ char *buffer, /* I - Buffer for data */
+ size_t length) /* I - Maximum number of bytes */
+{
+ /* TODO: Remove in CUPS 1.8 */
+ return (httpPeek(http, buffer, length));
+}
+
/*
* 'httpPost()' - Send a POST request to the server.
@@ -1824,9 +2145,9 @@ httpPrintf(http_t *http, /* I - Connection to server */
bytes = vsnprintf(buf, sizeof(buf), format, ap);
va_end(ap);
- DEBUG_printf(("3httpPrintf: %s", buf));
+ DEBUG_printf(("3httpPrintf: (%d bytes) %s", bytes, buf));
- if (http->data_encoding == HTTP_ENCODE_FIELDS)
+ if (http->data_encoding == HTTP_ENCODING_FIELDS)
return (httpWrite2(http, buf, bytes));
else
{
@@ -1889,8 +2210,9 @@ httpRead2(http_t *http, /* I - Connection to server */
char len[32]; /* Length string */
- DEBUG_printf(("httpRead2(http=%p, buffer=%p, length=" CUPS_LLFMT ")",
- http, buffer, CUPS_LLCAST length));
+ DEBUG_printf(("httpRead2(http=%p, buffer=%p, length=" CUPS_LLFMT
+ ") coding=%d", http, buffer, CUPS_LLCAST length,
+ http->coding));
if (http == NULL || buffer == NULL)
return (-1);
@@ -1901,7 +2223,7 @@ httpRead2(http_t *http, /* I - Connection to server */
if (length <= 0)
return (0);
- if (http->data_encoding == HTTP_ENCODE_CHUNKED &&
+ if (http->data_encoding == HTTP_ENCODING_CHUNKED &&
http->data_remaining <= 0)
{
DEBUG_puts("2httpRead2: Getting chunk length...");
@@ -1920,39 +2242,53 @@ httpRead2(http_t *http, /* I - Connection to server */
}
}
- DEBUG_printf(("2httpRead2: data_remaining=" CUPS_LLFMT,
- CUPS_LLCAST http->data_remaining));
+ DEBUG_printf(("2httpRead2: data_remaining=" CUPS_LLFMT ", used=%d",
+ CUPS_LLCAST http->data_remaining, http->used));
- if (http->data_remaining <= 0)
+ if (http->data_remaining <= 0 && http->data_encoding != HTTP_ENCODING_FIELDS)
{
/*
* A zero-length chunk ends a transfer; unless we are reading POST
* data, go idle...
*/
- if (http->data_encoding == HTTP_ENCODE_CHUNKED)
+#ifdef HAVE_LIBZ
+ if (http->coding)
+ http_content_coding_finish(http);
+#endif /* HAVE_LIBZ */
+
+ if (http->data_encoding == HTTP_ENCODING_CHUNKED)
httpGets(len, sizeof(len), http);
- if (http->state == HTTP_POST_RECV)
+ if (http->state == HTTP_STATE_POST_RECV)
http->state ++;
else
- http->state = HTTP_WAITING;
+ http->state = HTTP_STATE_WAITING;
+
+ DEBUG_printf(("1httpRead2: 0-length chunk, set state to %s.",
+ http_states[http->state + 1]));
/*
* Prevent future reads for this request...
*/
- http->data_encoding = HTTP_ENCODE_LENGTH;
+ http->data_encoding = HTTP_ENCODING_FIELDS;
return (0);
}
- else if (length > (size_t)http->data_remaining)
+ else if ((http->data_encoding == HTTP_ENCODING_LENGTH ||
+ http->coding == _HTTP_CODING_IDENTITY) &&
+ length > (size_t)http->data_remaining)
length = (size_t)http->data_remaining;
+#ifdef HAVE_LIBZ
+ if (http->used == 0 && (length <= 256 || http->coding))
+#else
if (http->used == 0 && length <= 256)
+#endif /* HAVE_LIBZ */
{
/*
- * Buffer small reads for better performance...
+ * Buffer small/compressed reads for better performance...
*/
ssize_t buflen; /* Length of read for buffer */
@@ -2034,6 +2370,57 @@ httpRead2(http_t *http, /* I - Connection to server */
http->used = bytes;
}
+#ifdef HAVE_LIBZ
+ if (http->coding)
+ {
+ int zerr; /* Decompressor error */
+ off_t comp_avail, /* Maximum bytes for decompression */
+ comp_bytes; /* Compressed bytes "used" */
+
+ if (http->used > http->data_remaining)
+ comp_avail = http->data_remaining;
+ else
+ comp_avail = http->used;
+
+ DEBUG_printf(("2httpRead2: length=%d, avail_in=%d", (int)length,
+ (int)comp_avail));
+
+ http->stream.next_in = (Bytef *)http->buffer;
+ http->stream.avail_in = comp_avail;
+ http->stream.next_out = (Bytef *)buffer;
+ http->stream.avail_out = length;
+
+ if ((zerr = inflate(&(http->stream), Z_SYNC_FLUSH)) < Z_OK)
+ {
+ DEBUG_printf(("2httpRead2: zerr=%d", zerr));
+ http->error = EIO;
+ return (-1);
+ }
+
+ bytes = length - http->stream.avail_out;
+ comp_bytes = comp_avail - http->stream.avail_in;
+
+ DEBUG_printf(("2httpRead2: avail_in=%d, avail_out=%d, bytes=%d, "
+ "comp_bytes=%d", http->stream.avail_in,
+ http->stream.avail_out, (int)bytes, (int)comp_bytes));
+
+ if ((http->used - comp_bytes) > 0)
+ {
+ http->used -= comp_bytes;
+ memmove(http->buffer, http->stream.next_in, http->used);
+ }
+ else
+ http->used = 0;
+
+ /*
+ * Adjust remaining bytes since chunk/content lengths are compressed while
+ * CUPS HTTP APIs return uncompressed sizes...
+ */
+
+ http->data_remaining += bytes - comp_bytes;
+ }
+ else
+#endif /* HAVE_LIBZ */
if (http->used > 0)
{
if (length > (size_t)http->used)
@@ -2168,12 +2555,23 @@ httpRead2(http_t *http, /* I - Connection to server */
if (http->data_remaining == 0)
{
- if (http->data_encoding == HTTP_ENCODE_CHUNKED)
+ if (http->data_encoding == HTTP_ENCODING_CHUNKED)
httpGets(len, sizeof(len), http);
- else if (http->state == HTTP_POST_RECV)
- http->state ++;
else
- http->state = HTTP_WAITING;
+ {
+#ifdef HAVE_LIBZ
+ if (http->coding)
+ http_content_coding_finish(http);
+#endif /* HAVE_LIBZ */
+
+ if (http->state == HTTP_STATE_POST_RECV)
+ http->state ++;
+ else
+ http->state = HTTP_STATE_WAITING;
+
+ DEBUG_printf(("1httpRead2: End of content, set state to %s.",
+ http_states[http->state + 1]));
+ }
}
return (bytes);
@@ -2289,7 +2687,171 @@ _httpReadGNUTLS(
/*
+ * 'httpReadRequest()' - Read a HTTP request from a connection.
+ *
+ * @since CUPS 1.7@
+ */
+
+http_state_t /* O - New state of connection */
+httpReadRequest(http_t *http, /* I - HTTP connection */
+ char *uri, /* I - URI buffer */
+ size_t urilen) /* I - Size of URI buffer */
+{
+ char line[4096], /* HTTP request line */
+ *req_method, /* HTTP request method */
+ *req_uri, /* HTTP request URI */
+ *req_version; /* HTTP request version number string */
+
+
+ /*
+ * Range check input...
+ */
+
+ DEBUG_printf(("httpReadRequest(http=%p, uri=%p, urilen=" CUPS_LLFMT ")",
+ http, uri, CUPS_LLCAST urilen));
+
+ if (uri)
+ *uri = '\0';
+
+ if (!http || !uri || urilen < 1)
+ {
+ DEBUG_puts("1httpReadRequest: Bad arguments, returning HTTP_STATE_ERROR.");
+ return (HTTP_STATE_ERROR);
+ }
+ else if (http->state != HTTP_STATE_WAITING)
+ {
+ DEBUG_printf(("1httpReadRequest: Bad state %s, returning HTTP_STATE_ERROR.",
+ http_states[http->state + 1]));
+ return (HTTP_STATE_ERROR);
+ }
+
+ /*
+ * Reset state...
+ */
+
+ httpClearFields(http);
+
+ http->activity = time(NULL);
+ http->data_encoding = HTTP_ENCODING_FIELDS;
+ http->data_remaining = 0;
+ http->keep_alive = HTTP_KEEPALIVE_OFF;
+ http->status = HTTP_STATUS_OK;
+ http->version = HTTP_VERSION_1_1;
+
+ /*
+ * Read a line from the socket...
+ */
+
+ if (!httpGets(line, sizeof(line), http))
+ {
+ DEBUG_puts("1httpReadRequest: Unable to read, returning HTTP_STATE_ERROR");
+ return (HTTP_STATE_ERROR);
+ }
+
+ if (!line[0])
+ {
+ DEBUG_puts("1httpReadRequest: Blank line, returning HTTP_STATE_WAITING");
+ return (HTTP_STATE_WAITING);
+ }
+
+ DEBUG_printf(("1httpReadRequest: %s", line));
+
+ /*
+ * Parse it...
+ */
+
+ req_method = line;
+ req_uri = line;
+
+ while (*req_uri && !isspace(*req_uri & 255))
+ req_uri ++;
+
+ if (!*req_uri)
+ {
+ DEBUG_puts("1httpReadRequest: No request URI.");
+ return (HTTP_STATE_ERROR);
+ }
+
+ *req_uri++ = '\0';
+
+ while (*req_uri && isspace(*req_uri & 255))
+ req_uri ++;
+
+ req_version = req_uri;
+
+ while (*req_version && !isspace(*req_version & 255))
+ req_version ++;
+
+ if (!*req_version)
+ {
+ DEBUG_puts("1httpReadRequest: No request protocol version.");
+ return (HTTP_STATE_ERROR);
+ }
+
+ *req_version++ = '\0';
+
+ while (*req_version && isspace(*req_version & 255))
+ req_version ++;
+
+ /*
+ * Validate...
+ */
+
+ if (!strcmp(req_method, "OPTIONS"))
+ http->state = HTTP_STATE_OPTIONS;
+ else if (!strcmp(req_method, "GET"))
+ http->state = HTTP_STATE_GET;
+ else if (!strcmp(req_method, "HEAD"))
+ http->state = HTTP_STATE_HEAD;
+ else if (!strcmp(req_method, "POST"))
+ http->state = HTTP_STATE_POST;
+ else if (!strcmp(req_method, "PUT"))
+ http->state = HTTP_STATE_PUT;
+ else if (!strcmp(req_method, "DELETE"))
+ http->state = HTTP_STATE_DELETE;
+ else if (!strcmp(req_method, "TRACE"))
+ http->state = HTTP_STATE_TRACE;
+ else if (!strcmp(req_method, "CONNECT"))
+ http->state = HTTP_STATE_CONNECT;
+ else
+ {
+ DEBUG_printf(("1httpReadRequest: Unknown method \"%s\".", req_method));
+ return (HTTP_STATE_UNKNOWN_METHOD);
+ }
+
+ DEBUG_printf(("1httpReadRequest: Set state to %s.",
+ http_states[http->state + 1]));
+
+ if (!strcmp(req_version, "HTTP/1.0"))
+ {
+ http->version = HTTP_VERSION_1_0;
+ http->keep_alive = HTTP_KEEPALIVE_OFF;
+ }
+ else if (!strcmp(req_version, "HTTP/1.1"))
+ {
+ http->version = HTTP_VERSION_1_1;
+ http->keep_alive = HTTP_KEEPALIVE_ON;
+ }
+ else
+ {
+ DEBUG_printf(("1httpReadRequest: Unknown version \"%s\".", req_version));
+ return (HTTP_STATE_UNKNOWN_VERSION);
+ }
+
+ DEBUG_printf(("1httpReadRequest: URI is \"%s\".", req_uri));
+ strlcpy(uri, req_uri, urilen);
+
+ return (http->state);
+}
+
+
+/*
* 'httpReconnect()' - Reconnect to a HTTP server.
+ *
+ * This function is deprecated. Please use the @link httpReconnect2@ function
+ * instead.
+ *
+ * @deprecated@
*/
int /* O - 0 on success, non-zero on failure */
@@ -2356,12 +2918,12 @@ httpReconnect2(http_t *http, /* I - Connection to server */
* Reset all state (except fields, which may be reused)...
*/
- http->state = HTTP_WAITING;
- http->status = HTTP_CONTINUE;
- http->version = HTTP_1_1;
+ http->state = HTTP_STATE_WAITING;
+ http->status = HTTP_STATUS_CONTINUE;
+ http->version = HTTP_VERSION_1_1;
http->keep_alive = HTTP_KEEPALIVE_OFF;
memset(&http->_hostaddr, 0, sizeof(http->_hostaddr));
- http->data_encoding = HTTP_ENCODE_LENGTH;
+ http->data_encoding = HTTP_ENCODING_FIELDS;
http->_data_remaining = 0;
http->used = 0;
http->expect = 0;
@@ -2377,7 +2939,7 @@ httpReconnect2(http_t *http, /* I - Connection to server */
for (current = http->addrlist; current; current = current->next)
DEBUG_printf(("2httpReconnect2: Address %s:%d",
httpAddrString(&(current->addr), temp, sizeof(temp)),
- _httpAddrPort(&(current->addr))));
+ httpAddrPort(&(current->addr))));
#endif /* DEBUG */
if ((addr = httpAddrConnect2(http->addrlist, &(http->fd), msec,
@@ -2432,7 +2994,7 @@ httpReconnect2(http_t *http, /* I - Connection to server */
DEBUG_printf(("1httpReconnect2: Connected to %s:%d...",
httpAddrString(http->hostaddr, temp, sizeof(temp)),
- _httpAddrPort(http->hostaddr)));
+ httpAddrPort(http->hostaddr)));
return (0);
}
@@ -2547,14 +3109,16 @@ httpSetCookie(http_t *http, /* I - Connection */
/*
* 'httpSetExpect()' - Set the Expect: header in a request.
*
- * Currently only HTTP_CONTINUE is supported for the "expect" argument.
+ * Currently only @code HTTP_STATUS_CONTINUE@ is supported for the "expect"
+ * argument.
*
* @since CUPS 1.2/OS X 10.5@
*/
void
httpSetExpect(http_t *http, /* I - Connection to server */
- http_status_t expect) /* I - HTTP status to expect (HTTP_CONTINUE) */
+ http_status_t expect) /* I - HTTP status to expect
+ (@code HTTP_CONTINUE@) */
{
if (http)
http->expect = expect;
@@ -2570,13 +3134,42 @@ httpSetField(http_t *http, /* I - Connection to server */
http_field_t field, /* I - Field index */
const char *value) /* I - Value */
{
+ DEBUG_printf(("httpSetField(http=%p, field=%d(%s), value=\"%s\")", http,
+ field, http_fields[field], value));
+
if (http == NULL ||
field < HTTP_FIELD_ACCEPT_LANGUAGE ||
- field > HTTP_FIELD_WWW_AUTHENTICATE ||
+ field >= HTTP_FIELD_MAX ||
value == NULL)
return;
- strlcpy(http->fields[field], value, HTTP_MAX_VALUE);
+ switch (field)
+ {
+ case HTTP_FIELD_ACCEPT_ENCODING :
+ if (http->accept_encoding)
+ _cupsStrFree(http->accept_encoding);
+
+ http->accept_encoding = _cupsStrAlloc(value);
+ break;
+
+ case HTTP_FIELD_ALLOW :
+ if (http->allow)
+ _cupsStrFree(http->allow);
+
+ http->allow = _cupsStrAlloc(value);
+ break;
+
+ case HTTP_FIELD_SERVER :
+ if (http->server)
+ _cupsStrFree(http->server);
+
+ http->server = _cupsStrAlloc(value);
+ break;
+
+ default :
+ strlcpy(http->fields[field], value, HTTP_MAX_VALUE);
+ break;
+ }
if (field == HTTP_FIELD_AUTHORIZATION)
{
@@ -2628,6 +3221,14 @@ httpSetField(http_t *http, /* I - Connection to server */
}
}
}
+#ifdef HAVE_LIBZ
+ else if (field == HTTP_FIELD_CONTENT_ENCODING &&
+ http->data_encoding != HTTP_ENCODING_FIELDS)
+ {
+ DEBUG_puts("1httpSetField: Calling http_content_coding_start.");
+ http_content_coding_start(http, value);
+ }
+#endif /* HAVE_LIBZ */
}
@@ -2641,6 +3242,9 @@ void
httpSetLength(http_t *http, /* I - Connection to server */
size_t length) /* I - Length (0 for chunked) */
{
+ DEBUG_printf(("httpSetLength(http=%p, length=" CUPS_LLFMT ")", http,
+ CUPS_LLCAST length));
+
if (!http)
return;
@@ -2720,7 +3324,7 @@ _httpUpdate(http_t *http, /* I - Connection to server */
DEBUG_printf(("_httpUpdate(http=%p, status=%p), state=%s", http, status,
- http_states[http->state]));
+ http_states[http->state + 1]));
/*
* Grab a single line from the connection...
@@ -2740,12 +3344,12 @@ _httpUpdate(http_t *http, /* I - Connection to server */
* Blank line means the start of the data section (if any). Return
* the result code, too...
*
- * If we get status 100 (HTTP_CONTINUE), then we *don't* change states.
- * Instead, we just return HTTP_CONTINUE to the caller and keep on
- * tryin'...
+ * If we get status 100 (HTTP_STATUS_CONTINUE), then we *don't* change
+ * states. Instead, we just return HTTP_STATUS_CONTINUE to the caller and
+ * keep on tryin'...
*/
- if (http->status == HTTP_CONTINUE)
+ if (http->status == HTTP_STATUS_CONTINUE)
{
*status = http->status;
return (0);
@@ -2769,29 +3373,48 @@ _httpUpdate(http_t *http, /* I - Connection to server */
return (0);
}
- *status = HTTP_CONTINUE;
+ *status = HTTP_STATUS_CONTINUE;
return (0);
}
#endif /* HAVE_SSL */
- httpGetLength2(http);
+ if (http_set_length(http) < 0)
+ {
+ DEBUG_puts("1_httpUpdate: Bad Content-Length.");
+ http->error = EINVAL;
+ http->status = *status = HTTP_ERROR;
+ return (0);
+ }
switch (http->state)
{
case HTTP_GET :
case HTTP_POST :
- case HTTP_POST_RECV :
+ case HTTP_STATE_POST_RECV :
case HTTP_PUT :
http->state ++;
+
+ DEBUG_printf(("1_httpUpdate: Set state to %s.",
+ http_states[http->state + 1]));
+
case HTTP_POST_SEND :
case HTTP_HEAD :
break;
default :
- http->state = HTTP_WAITING;
+ http->state = HTTP_STATE_WAITING;
+
+ DEBUG_puts("1_httpUpdate: Unknown state, reset state to "
+ "HTTP_STATE_WAITING.");
break;
}
+#ifdef HAVE_LIBZ
+ DEBUG_puts("1_httpUpdate: Calling http_content_coding_start.");
+ http_content_coding_start(http,
+ httpGetField(http, HTTP_FIELD_CONTENT_ENCODING));
+#endif /* HAVE_LIBZ */
+
*status = http->status;
return (0);
}
@@ -2809,6 +3432,8 @@ _httpUpdate(http_t *http, /* I - Connection to server */
return (0);
}
+ httpClearFields(http);
+
http->version = (http_version_t)(major * 100 + minor);
*status = http->status = (http_status_t)intstatus;
}
@@ -2822,6 +3447,8 @@ _httpUpdate(http_t *http, /* I - Connection to server */
while (_cups_isspace(*value))
value ++;
+ DEBUG_printf(("1_httpUpdate: Header %s: %s", line, value));
+
/*
* Be tolerants of servers that send unknown attribute fields...
*/
@@ -2852,7 +3479,8 @@ _httpUpdate(http_t *http, /* I - Connection to server */
else
{
DEBUG_printf(("1_httpUpdate: Bad response line \"%s\"!", line));
- *status = http->status = HTTP_ERROR;
+ http->error = EINVAL;
+ http->status = *status = HTTP_ERROR;
return (0);
}
@@ -2871,7 +3499,7 @@ httpUpdate(http_t *http) /* I - Connection to server */
DEBUG_printf(("httpUpdate(http=%p), state=%s", http,
- http_states[http->state]));
+ http_states[http->state + 1]));
/*
* Flush pending data, if any...
@@ -2889,7 +3517,7 @@ httpUpdate(http_t *http) /* I - Connection to server */
* If we haven't issued any commands, then there is nothing to "update"...
*/
- if (http->state == HTTP_WAITING)
+ if (http->state == HTTP_STATE_WAITING)
return (HTTP_CONTINUE);
/*
@@ -3117,8 +3745,11 @@ httpWrite2(http_t *http, /* I - Connection to server */
* Range check input...
*/
- if (http == NULL || buffer == NULL)
+ if (!http || !buffer)
+ {
+ DEBUG_puts("1httpWrite2: Returning -1 due to bad input.");
return (-1);
+ }
/*
* Mark activity on the connection...
@@ -3130,6 +3761,46 @@ httpWrite2(http_t *http, /* I - Connection to server */
* Buffer small writes for better performance...
*/
+#ifdef HAVE_LIBZ
+ if (http->coding)
+ {
+ DEBUG_printf(("1httpWrite2: http->coding=%d", http->coding));
+
+ if (length == 0)
+ {
+ http_content_coding_finish(http);
+ bytes = 0;
+ }
+ else
+ {
+ http->stream.next_in = (Bytef *)buffer;
+ http->stream.avail_in = length;
+ http->stream.next_out = (Bytef *)http->wbuffer + http->wused;
+ http->stream.avail_out = sizeof(http->wbuffer) - http->wused;
+
+ while (deflate(&(http->stream), Z_NO_FLUSH) == Z_OK)
+ {
+ http->wused = sizeof(http->wbuffer) - http->stream.avail_out;
+
+ if (http->stream.avail_out == 0)
+ {
+ if (httpFlushWrite(http) < 0)
+ {
+ DEBUG_puts("1httpWrite2: Unable to flush, returning -1.");
+ return (-1);
+ }
+
+ http->stream.next_out = (Bytef *)http->wbuffer;
+ http->stream.avail_out = sizeof(http->wbuffer);
+ }
+ }
+
+ http->wused = sizeof(http->wbuffer) - http->stream.avail_out;
+ bytes = length;
+ }
+ }
+ else
+#endif /* HAVE_LIBZ */
if (length > 0)
{
if (http->wused && (length + http->wused) > sizeof(http->wbuffer))
@@ -3163,7 +3834,7 @@ httpWrite2(http_t *http, /* I - Connection to server */
DEBUG_printf(("2httpWrite2: Writing " CUPS_LLFMT " bytes to socket...",
CUPS_LLCAST length));
- if (http->data_encoding == HTTP_ENCODE_CHUNKED)
+ if (http->data_encoding == HTTP_ENCODING_CHUNKED)
bytes = (ssize_t)http_write_chunk(http, buffer, (int)length);
else
bytes = (ssize_t)http_write(http, buffer, (int)length);
@@ -3172,7 +3843,7 @@ httpWrite2(http_t *http, /* I - Connection to server */
CUPS_LLCAST bytes));
}
- if (http->data_encoding == HTTP_ENCODE_LENGTH)
+ if (http->data_encoding == HTTP_ENCODING_LENGTH)
http->data_remaining -= bytes;
}
else
@@ -3182,20 +3853,23 @@ httpWrite2(http_t *http, /* I - Connection to server */
* Handle end-of-request processing...
*/
- if ((http->data_encoding == HTTP_ENCODE_CHUNKED && length == 0) ||
- (http->data_encoding == HTTP_ENCODE_LENGTH && http->data_remaining == 0))
+ if ((http->data_encoding == HTTP_ENCODING_CHUNKED && length == 0) ||
+ (http->data_encoding == HTTP_ENCODING_LENGTH && http->data_remaining == 0))
{
/*
* Finished with the transfer; unless we are sending POST or PUT
* data, go idle...
*/
- DEBUG_puts("2httpWrite: changing states...");
+ DEBUG_puts("2httpWrite2: Changing states.");
if (http->wused)
- httpFlushWrite(http);
+ {
+ if (httpFlushWrite(http) < 0)
+ return (-1);
+ }
- if (http->data_encoding == HTTP_ENCODE_CHUNKED)
+ if (http->data_encoding == HTTP_ENCODING_CHUNKED)
{
/*
* Send a 0-length chunk at the end of the request...
@@ -3207,11 +3881,21 @@ httpWrite2(http_t *http, /* I - Connection to server */
* Reset the data state...
*/
- http->data_encoding = HTTP_ENCODE_LENGTH;
+ http->data_encoding = HTTP_ENCODING_FIELDS;
http->data_remaining = 0;
}
+
+ if (http->state == HTTP_STATE_POST_RECV)
+ http->state ++;
+ else
+ http->state = HTTP_STATE_WAITING;
+
+ DEBUG_printf(("2httpWrite2: New state is %s.",
+ http_states[http->state + 1]));
}
+ DEBUG_printf(("1httpWrite2: Returning " CUPS_LLFMT ".", CUPS_LLCAST bytes));
+
return (bytes);
}
@@ -3292,6 +3976,187 @@ _httpWriteGNUTLS(
#endif /* HAVE_SSL && HAVE_GNUTLS */
+/*
+ * 'httpWriteResponse()' - Write a HTTP response to a client connection.
+ *
+ * @since CUPS 1.7@
+ */
+
+int /* O - 0 on success, -1 on error */
+httpWriteResponse(http_t *http, /* I - HTTP connection */
+ http_status_t status) /* I - Status code */
+{
+ http_encoding_t old_encoding; /* Old data_encoding value */
+ off_t old_remaining; /* Old data_remaining value */
+
+
+ /*
+ * Range check input...
+ */
+
+ DEBUG_printf(("httpWriteResponse(http=%p, status=%d)", http, status));
+
+ if (!http || status < HTTP_STATUS_CONTINUE)
+ {
+ DEBUG_puts("1httpWriteResponse: Bad input.");
+ return (-1);
+ }
+
+ /*
+ * Set the various standard fields if they aren't already...
+ */
+
+ if (!http->fields[HTTP_FIELD_DATE][0])
+ httpSetField(http, HTTP_FIELD_DATE, httpGetDateString(time(NULL)));
+
+ if (status >= HTTP_BAD_REQUEST && http->keep_alive)
+ {
+ http->keep_alive = 0;
+ httpSetField(http, HTTP_FIELD_KEEP_ALIVE, "");
+ }
+
+ if (http->version == HTTP_VERSION_1_1)
+ {
+ if (!http->fields[HTTP_FIELD_CONNECTION][0])
+ {
+ if (http->keep_alive)
+ httpSetField(http, HTTP_FIELD_CONNECTION, "Keep-Alive");
+ else
+ httpSetField(http, HTTP_FIELD_CONNECTION, "close");
+ }
+
+ if (http->keep_alive && !http->fields[HTTP_FIELD_KEEP_ALIVE][0])
+ httpSetField(http, HTTP_FIELD_KEEP_ALIVE, "timeout=10");
+ }
+
+#ifdef HAVE_SSL
+ if (status == HTTP_STATUS_UPGRADE_REQUIRED)
+ {
+ if (!http->fields[HTTP_FIELD_CONNECTION][0])
+ httpSetField(http, HTTP_FIELD_CONNECTION, "Upgrade");
+
+ if (!http->fields[HTTP_FIELD_UPGRADE][0])
+ httpSetField(http, HTTP_FIELD_UPGRADE, "TLS/1.2,TLS/1.1,TLS/1.0");
+ }
+#endif /* HAVE_SSL */
+
+ if (!http->server)
+ httpSetField(http, HTTP_FIELD_SERVER, CUPS_MINIMAL);
+
+#ifdef HAVE_LIBZ
+ /*
+ * Set the Accept-Encoding field if it isn't already...
+ */
+
+ if (!http->accept_encoding)
+ httpSetField(http, HTTP_FIELD_ACCEPT_ENCODING, "gzip, deflate, identity");
+#endif /* HAVE_LIBZ */
+
+ /*
+ * Send the response header...
+ */
+
+ old_encoding = http->data_encoding;
+ old_remaining = http->data_remaining;
+ http->data_encoding = HTTP_ENCODING_FIELDS;
+
+ if (httpPrintf(http, "HTTP/%d.%d %d %s\r\n", http->version / 100,
+ http->version % 100, (int)status, httpStatus(status)) < 0)
+ {
+ http->status = HTTP_STATUS_ERROR;
+ return (-1);
+ }
+
+ if (status != HTTP_STATUS_CONTINUE)
+ {
+ /*
+ * 100 Continue doesn't have the rest of the response headers...
+ */
+
+ int i; /* Looping var */
+ const char *value; /* Field value */
+
+ for (i = 0; i < HTTP_FIELD_MAX; i ++)
+ {
+ if ((value = httpGetField(http, i)) != NULL && *value)
+ {
+ if (httpPrintf(http, "%s: %s\r\n", http_fields[i], value) < 1)
+ {
+ http->status = HTTP_STATUS_ERROR;
+ return (-1);
+ }
+ }
+ }
+
+ if (http->cookie)
+ {
+ if (httpPrintf(http, "Set-Cookie: %s path=/%s\r\n", http->cookie,
+ http->tls ? " secure" : "") < 1)
+ {
+ http->status = HTTP_ERROR;
+ return (-1);
+ }
+ }
+ }
+
+ if (httpWrite2(http, "\r\n", 2) < 2)
+ {
+ http->status = HTTP_ERROR;
+ return (-1);
+ }
+
+ if (httpFlushWrite(http) < 0)
+ {
+ http->status = HTTP_ERROR;
+ return (-1);
+ }
+
+ if (status == HTTP_STATUS_CONTINUE)
+ {
+ /*
+ * Restore the old data_encoding and data_length values...
+ */
+
+ http->data_encoding = old_encoding;
+ http->data_remaining = old_remaining;
+
+ if (old_remaining <= INT_MAX)
+ http->_data_remaining = (int)old_remaining;
+ else
+ http->_data_remaining = INT_MAX;
+ }
+ else if (http->state == HTTP_STATE_OPTIONS ||
+ http->state == HTTP_STATE_HEAD ||
+ http->state == HTTP_STATE_PUT ||
+ http->state == HTTP_STATE_TRACE ||
+ http->state == HTTP_STATE_CONNECT)
+ {
+ DEBUG_printf(("1httpWriteResponse: Resetting state to HTTP_STATE_WAITING, "
+ "was %s.", http_states[http->state + 1]));
+ http->state = HTTP_STATE_WAITING;
+ }
+ else
+ {
+ /*
+ * Force data_encoding and data_length to be set according to the response
+ * headers...
+ */
+
+ http_set_length(http);
+
+ /*
+ * Then start any content encoding...
+ */
+
+ DEBUG_puts("1httpWriteResponse: Calling http_content_coding_start.");
+ http_content_coding_start(http,
+ httpGetField(http, HTTP_FIELD_CONTENT_ENCODING));
+ }
+
+ return (0);
+}
+
+
#if defined(HAVE_SSL) && defined(HAVE_LIBSSL)
/*
* 'http_bio_ctrl()' - Control the HTTP connection.
@@ -3441,6 +4306,152 @@ http_bio_write(BIO *h, /* I - BIO data */
#endif /* HAVE_SSL && HAVE_LIBSSL */
+#ifdef HAVE_LIBZ
+/*
+ * 'http_content_coding_finish()' - Finish doing any content encoding.
+ */
+
+static void
+http_content_coding_finish(
+ http_t *http) /* I - HTTP connection */
+{
+ int zerr; /* Compression status */
+
+
+ switch (http->coding)
+ {
+ case _HTTP_CODING_DEFLATE :
+ case _HTTP_CODING_GZIP :
+ do
+ {
+ http->stream.next_out = (Bytef *)http->wbuffer + http->wused;
+ http->stream.avail_out = sizeof(http->wbuffer) - http->wused;
+
+ zerr = deflate(&(http->stream), Z_FINISH);
+
+ http->wused = sizeof(http->wbuffer) - http->stream.avail_out;
+ if (http->wused == sizeof(http->wbuffer))
+ httpFlushWrite(http);
+ }
+ while (zerr == Z_OK);
+
+ deflateEnd(&(http->stream));
+
+ if (http->wused)
+ httpFlushWrite(http);
+ break;
+
+ case _HTTP_CODING_INFLATE :
+ case _HTTP_CODING_GUNZIP :
+ inflateEnd(&(http->stream));
+ break;
+
+ default :
+ break;
+ }
+
+ http->coding = _HTTP_CODING_IDENTITY;
+}
+
+
+/*
+ * 'http_content_coding_start()' - Start doing content encoding.
+ */
+
+static void
+http_content_coding_start(
+ http_t *http, /* I - HTTP connection */
+ const char *value) /* I - Value of Content-Encoding */
+{
+ int zerr; /* Error/status */
+ _http_coding_t coding; /* Content coding value */
+
+
+ DEBUG_printf(("http_content_coding_start(http=%p, value=\"%s\")", http,
+ value));
+
+ if (http->coding != _HTTP_CODING_IDENTITY)
+ {
+ DEBUG_printf(("1http_content_coding_start: http->coding already %d.",
+ http->coding));
+ return;
+ }
+ else if (!strcmp(value, "x-gzip") || !strcmp(value, "gzip"))
+ {
+ if (http->state == HTTP_GET_SEND || http->state == HTTP_POST_SEND)
+ coding = http->mode == _HTTP_MODE_SERVER ? _HTTP_CODING_GZIP :
+ _HTTP_CODING_GUNZIP;
+ else if (http->state == HTTP_STATE_POST_RECV || http->state == HTTP_PUT_RECV)
+ coding = http->mode == _HTTP_MODE_CLIENT ? _HTTP_CODING_GZIP :
+ _HTTP_CODING_GUNZIP;
+ else
+ {
+ DEBUG_puts("1http_content_coding_start: Not doing content coding.");
+ return;
+ }
+ }
+ else if (!strcmp(value, "x-deflate") || !strcmp(value, "deflate"))
+ {
+ if (http->state == HTTP_GET_SEND || http->state == HTTP_POST_SEND)
+ coding = http->mode == _HTTP_MODE_SERVER ? _HTTP_CODING_DEFLATE :
+ _HTTP_CODING_INFLATE;
+ else if (http->state == HTTP_STATE_POST_RECV || http->state == HTTP_PUT_RECV)
+ coding = http->mode == _HTTP_MODE_CLIENT ? _HTTP_CODING_DEFLATE :
+ _HTTP_CODING_INFLATE;
+ else
+ {
+ DEBUG_puts("1http_content_coding_start: Not doing content coding.");
+ return;
+ }
+ }
+ else
+ {
+ DEBUG_puts("1http_content_coding_start: Not doing content coding.");
+ return;
+ }
+
+ memset(&(http->stream), 0, sizeof(http->stream));
+
+ switch (coding)
+ {
+ case _HTTP_CODING_DEFLATE :
+ case _HTTP_CODING_GZIP :
+ if (http->wused)
+ httpFlushWrite(http);
+
+ if ((zerr = deflateInit2(&(http->stream), Z_DEFAULT_COMPRESSION,
+ Z_DEFLATED,
+ coding == _HTTP_CODING_DEFLATE ? 11 : 27, 7,
+ Z_DEFAULT_STRATEGY)) < Z_OK)
+ {
+ http->status = HTTP_ERROR;
+ http->error = zerr == Z_MEM_ERROR ? ENOMEM : EINVAL;
+ return;
+ }
+ break;
+
+ case _HTTP_CODING_INFLATE :
+ case _HTTP_CODING_GUNZIP :
+ if ((zerr = inflateInit2(&(http->stream), 32 + 15)) < Z_OK)
+ {
+ http->status = HTTP_ERROR;
+ http->error = zerr == Z_MEM_ERROR ? ENOMEM : EINVAL;
+ return;
+ }
+ break;
+
+ default :
+ break;
+ }
+
+ http->coding = coding;
+
+ DEBUG_printf(("1http_content_coding_start: http->coding now %d.",
+ http->coding));
+}
+#endif /* HAVE_LIBZ */
+
+
#ifdef DEBUG
/*
* 'http_debug_hex()' - Do a hex dump of a buffer.
@@ -3611,15 +4622,16 @@ http_read_ssl(http_t *http, /* I - Connection to server */
* 'http_send()' - Send a request with all fields and the trailing blank line.
*/
-static int /* O - 0 on success, non-zero on error */
-http_send(http_t *http, /* I - Connection to server */
- http_state_t request, /* I - Request code */
- const char *uri) /* I - URI */
+static int /* O - 0 on success, non-zero on error */
+http_send(http_t *http, /* I - Connection to server */
+ http_state_t request, /* I - Request code */
+ const char *uri) /* I - URI */
{
- int i; /* Looping var */
- char buf[1024]; /* Encoded URI buffer */
- static const char * const codes[] =
- { /* Request code strings */
+ int i; /* Looping var */
+ char buf[1024]; /* Encoded URI buffer */
+ const char *value; /* Field value */
+ static const char * const codes[] = /* Request code strings */
+ {
NULL,
"OPTIONS",
"GET",
@@ -3632,7 +4644,9 @@ http_send(http_t *http, /* I - Connection to server */
NULL,
"DELETE",
"TRACE",
- "CLOSE"
+ "CLOSE",
+ NULL,
+ NULL
};
@@ -3649,6 +4663,15 @@ http_send(http_t *http, /* I - Connection to server */
if (!http->fields[HTTP_FIELD_USER_AGENT][0])
httpSetField(http, HTTP_FIELD_USER_AGENT, CUPS_MINIMAL);
+#ifdef HAVE_LIBZ
+ /*
+ * Set the Accept-Encoding field if it isn't already...
+ */
+
+ if (!http->accept_encoding)
+ httpSetField(http, HTTP_FIELD_ACCEPT_ENCODING, "gzip, deflate, identity");
+#endif /* HAVE_LIBZ */
+
/*
* Encode the URI as needed...
*/
@@ -3659,7 +4682,8 @@ http_send(http_t *http, /* I - Connection to server */
* See if we had an error the last time around; if so, reconnect...
*/
- if (http->status == HTTP_ERROR || http->status >= HTTP_BAD_REQUEST)
+ if (http->fd < 0 || http->status == HTTP_ERROR ||
+ http->status >= HTTP_BAD_REQUEST)
if (httpReconnect(http))
return (-1);
@@ -3679,7 +4703,7 @@ http_send(http_t *http, /* I - Connection to server */
*/
http->state = request;
- http->data_encoding = HTTP_ENCODE_FIELDS;
+ http->data_encoding = HTTP_ENCODING_FIELDS;
if (request == HTTP_POST || request == HTTP_PUT)
http->state ++;
@@ -3690,7 +4714,7 @@ http_send(http_t *http, /* I - Connection to server */
if (http->encryption == HTTP_ENCRYPT_REQUIRED && !http->tls)
{
httpSetField(http, HTTP_FIELD_CONNECTION, "Upgrade");
- httpSetField(http, HTTP_FIELD_UPGRADE, "TLS/1.0,SSL/2.0,SSL/3.0");
+ httpSetField(http, HTTP_FIELD_UPGRADE, "TLS/1.2,TLS/1.1,TLS/1.0");
}
#endif /* HAVE_SSL */
@@ -3701,22 +4725,20 @@ http_send(http_t *http, /* I - Connection to server */
}
for (i = 0; i < HTTP_FIELD_MAX; i ++)
- if (http->fields[i][0] != '\0')
+ if ((value = httpGetField(http, i)) != NULL && *value)
{
- DEBUG_printf(("9http_send: %s: %s", http_fields[i],
- httpGetField(http, i)));
+ DEBUG_printf(("9http_send: %s: %s", http_fields[i], value));
if (i == HTTP_FIELD_HOST)
{
- if (httpPrintf(http, "Host: %s:%d\r\n", httpGetField(http, i),
- _httpAddrPort(http->hostaddr)) < 1)
+ if (httpPrintf(http, "Host: %s:%d\r\n", value,
+ httpAddrPort(http->hostaddr)) < 1)
{
http->status = HTTP_ERROR;
return (-1);
}
}
- else if (httpPrintf(http, "%s: %s\r\n", http_fields[i],
- httpGetField(http, i)) < 1)
+ else if (httpPrintf(http, "%s: %s\r\n", http_fields[i], value) < 1)
{
http->status = HTTP_ERROR;
return (-1);
@@ -3730,8 +4752,8 @@ http_send(http_t *http, /* I - Connection to server */
return (-1);
}
- if (http->expect == HTTP_CONTINUE &&
- (http->state == HTTP_POST_RECV || http->state == HTTP_PUT_RECV))
+ if (http->expect == HTTP_CONTINUE && http->mode == _HTTP_MODE_CLIENT &&
+ (http->state == HTTP_STATE_POST_RECV || http->state == HTTP_PUT_RECV))
if (httpPrintf(http, "Expect: 100-continue\r\n") < 1)
{
http->status = HTTP_ERROR;
@@ -3747,7 +4769,7 @@ http_send(http_t *http, /* I - Connection to server */
if (httpFlushWrite(http) < 0)
return (-1);
- httpGetLength2(http);
+ http_set_length(http);
httpClearFields(http);
/*
@@ -3867,6 +4889,57 @@ http_set_credentials(http_t *http) /* I - Connection to server */
/*
+ * 'http_set_length()' - Set the data_encoding and data_remaining values.
+ */
+
+static off_t /* O - Remainder or -1 on error */
+http_set_length(http_t *http) /* I - Connection */
+{
+ off_t remaining; /* Remainder */
+
+
+ DEBUG_printf(("http_set_length(http=%p) mode=%d state=%s", http, http->mode,
+ http_states[http->state + 1]));
+
+ if ((remaining = httpGetLength2(http)) >= 0)
+ {
+ if (http->mode == _HTTP_MODE_SERVER &&
+ http->state != HTTP_STATE_GET_SEND &&
+ http->state != HTTP_STATE_POST &&
+ http->state != HTTP_STATE_POST_SEND)
+ {
+ DEBUG_puts("1http_set_length: Not setting data_encoding/remaining.");
+ return (remaining);
+ }
+
+ if (!_cups_strcasecmp(http->fields[HTTP_FIELD_TRANSFER_ENCODING],
+ "chunked"))
+ {
+ DEBUG_puts("1http_set_length: Setting data_encoding to "
+ "HTTP_ENCODING_CHUNKED.");
+ http->data_encoding = HTTP_ENCODING_CHUNKED;
+ }
+ else
+ {
+ DEBUG_puts("1http_set_length: Setting data_encoding to "
+ "HTTP_ENCODING_LENGTH.");
+ http->data_encoding = HTTP_ENCODING_LENGTH;
+ }
+
+ DEBUG_printf(("1http_set_length: Setting data_remaining to " CUPS_LLFMT ".",
+ CUPS_LLCAST remaining));
+ http->data_remaining = remaining;
+
+ if (remaining <= INT_MAX)
+ http->_data_remaining = remaining;
+ else
+ http->_data_remaining = INT_MAX;
+ }
+
+ return (remaining);
+}
+
+/*
* 'http_set_timeout()' - Set the socket timeout values.
*/
@@ -4459,7 +5532,7 @@ http_upgrade(http_t *http) /* I - Connection to server */
httpClearFields(http);
httpSetField(http, HTTP_FIELD_CONNECTION, "upgrade");
- httpSetField(http, HTTP_FIELD_UPGRADE, "TLS/1.2, TLS/1.1, TLS/1.0, SSL/3.0");
+ httpSetField(http, HTTP_FIELD_UPGRADE, "TLS/1.2,TLS/1.1,TLS/1.0");
if ((ret = httpOptions(http, "*")) == 0)
{
diff --git a/cups/http.h b/cups/http.h
index 3aefd53b3..3c8a32113 100644
--- a/cups/http.h
+++ b/cups/http.h
@@ -126,17 +126,30 @@ typedef enum http_auth_e /**** HTTP authentication types ****/
typedef enum http_encoding_e /**** HTTP transfer encoding values ****/
{
- HTTP_ENCODE_LENGTH, /* Data is sent with Content-Length */
- HTTP_ENCODE_CHUNKED, /* Data is chunked */
- HTTP_ENCODE_FIELDS /* Sending HTTP fields */
+ HTTP_ENCODING_LENGTH, /* Data is sent with Content-Length */
+ HTTP_ENCODING_CHUNKED, /* Data is chunked */
+ HTTP_ENCODING_FIELDS /* Sending HTTP fields */
+
+# ifndef _CUPS_NO_DEPRECATED
+# define HTTP_ENCODE_LENGTH HTTP_ENCODING_LENGTH
+# define HTTP_ENCODE_CHUNKED HTTP_ENCODING_CHUNKED
+# define HTTP_ENCODE_FIELDS HTTP_ENCODING_FIELDS
+# endif /* !_CUPS_NO_DEPRECATED */
} http_encoding_t;
typedef enum http_encryption_e /**** HTTP encryption values ****/
{
- HTTP_ENCRYPT_IF_REQUESTED, /* Encrypt if requested (TLS upgrade) */
- HTTP_ENCRYPT_NEVER, /* Never encrypt */
- HTTP_ENCRYPT_REQUIRED, /* Encryption is required (TLS upgrade) */
- HTTP_ENCRYPT_ALWAYS /* Always encrypt (SSL) */
+ HTTP_ENCRYPTION_IF_REQUESTED, /* Encrypt if requested (TLS upgrade) */
+ HTTP_ENCRYPTION_NEVER, /* Never encrypt */
+ HTTP_ENCRYPTION_REQUIRED, /* Encryption is required (TLS upgrade) */
+ HTTP_ENCRYPTION_ALWAYS /* Always encrypt (SSL) */
+
+# ifndef _CUPS_NO_DEPRECATED
+# define HTTP_ENCRYPT_IF_REQUESTED HTTP_ENCRYPTION_IF_REQUESTED
+# define HTTP_ENCRYPT_NEVER HTTP_ENCRYPTION_NEVER
+# define HTTP_ENCRYPT_REQUIRED HTTP_ENCRYPTION_REQUIRED
+# define HTTP_ENCRYPT_ALWAYS HTTP_ENCRYPTION_ALWAYS
+# endif /* !_CUPS_NO_DEPRECATED */
} http_encryption_t;
typedef enum http_field_e /**** HTTP field names ****/
@@ -169,6 +182,9 @@ typedef enum http_field_e /**** HTTP field names ****/
HTTP_FIELD_UPGRADE, /* Upgrade field */
HTTP_FIELD_USER_AGENT, /* User-Agent field */
HTTP_FIELD_WWW_AUTHENTICATE, /* WWW-Authenticate field */
+ HTTP_FIELD_ACCEPT_ENCODING, /* Accepting-Encoding field @since CUPS 1.7@ */
+ HTTP_FIELD_ALLOW, /* Allow field @since CUPS 1.7@ */
+ HTTP_FIELD_SERVER, /* Server field @since CUPS 1.7@ */
HTTP_FIELD_MAX /* Maximum field index */
} http_field_t;
@@ -182,90 +198,181 @@ typedef enum http_state_e /**** HTTP state values; states
**** are server-oriented...
****/
{
- HTTP_WAITING, /* Waiting for command */
- HTTP_OPTIONS, /* OPTIONS command, waiting for blank line */
- HTTP_GET, /* GET command, waiting for blank line */
- HTTP_GET_SEND, /* GET command, sending data */
- HTTP_HEAD, /* HEAD command, waiting for blank line */
- HTTP_POST, /* POST command, waiting for blank line */
- HTTP_POST_RECV, /* POST command, receiving data */
- HTTP_POST_SEND, /* POST command, sending data */
- HTTP_PUT, /* PUT command, waiting for blank line */
- HTTP_PUT_RECV, /* PUT command, receiving data */
- HTTP_DELETE, /* DELETE command, waiting for blank line */
- HTTP_TRACE, /* TRACE command, waiting for blank line */
- HTTP_CLOSE, /* CLOSE command, waiting for blank line */
- HTTP_STATUS /* Command complete, sending status */
+ HTTP_STATE_ERROR = -1, /* Error on socket */
+ HTTP_STATE_WAITING, /* Waiting for command */
+ HTTP_STATE_OPTIONS, /* OPTIONS command, waiting for blank line */
+ HTTP_STATE_GET, /* GET command, waiting for blank line */
+ HTTP_STATE_GET_SEND, /* GET command, sending data */
+ HTTP_STATE_HEAD, /* HEAD command, waiting for blank line */
+ HTTP_STATE_POST, /* POST command, waiting for blank line */
+ HTTP_STATE_POST_RECV, /* POST command, receiving data */
+ HTTP_STATE_POST_SEND, /* POST command, sending data */
+ HTTP_STATE_PUT, /* PUT command, waiting for blank line */
+ HTTP_STATE_PUT_RECV, /* PUT command, receiving data */
+ HTTP_STATE_DELETE, /* DELETE command, waiting for blank line */
+ HTTP_STATE_TRACE, /* TRACE command, waiting for blank line */
+ HTTP_STATE_CONNECT, /* CONNECT command, waiting for blank line */
+ HTTP_STATE_STATUS, /* Command complete, sending status */
+ HTTP_STATE_UNKNOWN_METHOD, /* Unknown request method, waiting for blank line @since CUPS 1.7@ */
+ HTTP_STATE_UNKNOWN_VERSION /* Unknown request method, waiting for blank line @since CUPS 1.7@ */
+
+# ifndef _CUPS_NO_DEPRECATED
+# define HTTP_WAITING HTTP_STATE_WAITING
+# define HTTP_OPTIONS HTTP_STATE_OPTIONS
+# define HTTP_GET HTTP_STATE_GET
+# define HTTP_GET_SEND HTTP_STATE_GET_SEND
+# define HTTP_HEAD HTTP_STATE_HEAD
+# define HTTP_POST HTTP_STATE_POST
+# define HTTP_POST_RECV HTTP_STATE_POST_RECV
+# define HTTP_POST_SEND HTTP_STATE_POST_SEND
+# define HTTP_PUT HTTP_STATE_PUT
+# define HTTP_PUT_RECV HTTP_STATE_PUT_RECV
+# define HTTP_DELETE HTTP_STATE_DELETE
+# define HTTP_TRACE HTTP_STATE_TRACE
+# define HTTP_CLOSE HTTP_STATE_CONNECT
+# define HTTP_STATUS HTTP_STATE_STATUS
+# endif /* !_CUPS_NO_DEPRECATED */
} http_state_t;
typedef enum http_status_e /**** HTTP status codes ****/
{
- HTTP_ERROR = -1, /* An error response from httpXxxx() */
-
- HTTP_CONTINUE = 100, /* Everything OK, keep going... */
- HTTP_SWITCHING_PROTOCOLS, /* HTTP upgrade to TLS/SSL */
-
- HTTP_OK = 200, /* OPTIONS/GET/HEAD/POST/TRACE command was successful */
- HTTP_CREATED, /* PUT command was successful */
- HTTP_ACCEPTED, /* DELETE command was successful */
- HTTP_NOT_AUTHORITATIVE, /* Information isn't authoritative */
- HTTP_NO_CONTENT, /* Successful command, no new data */
- HTTP_RESET_CONTENT, /* Content was reset/recreated */
- HTTP_PARTIAL_CONTENT, /* Only a partial file was recieved/sent */
-
- HTTP_MULTIPLE_CHOICES = 300, /* Multiple files match request */
- HTTP_MOVED_PERMANENTLY, /* Document has moved permanently */
- HTTP_MOVED_TEMPORARILY, /* Document has moved temporarily */
- HTTP_SEE_OTHER, /* See this other link... */
- HTTP_NOT_MODIFIED, /* File not modified */
- HTTP_USE_PROXY, /* Must use a proxy to access this URI */
-
- HTTP_BAD_REQUEST = 400, /* Bad request */
- HTTP_UNAUTHORIZED, /* Unauthorized to access host */
- HTTP_PAYMENT_REQUIRED, /* Payment required */
- HTTP_FORBIDDEN, /* Forbidden to access this URI */
- HTTP_NOT_FOUND, /* URI was not found */
- HTTP_METHOD_NOT_ALLOWED, /* Method is not allowed */
- HTTP_NOT_ACCEPTABLE, /* Not Acceptable */
- HTTP_PROXY_AUTHENTICATION, /* Proxy Authentication is Required */
- HTTP_REQUEST_TIMEOUT, /* Request timed out */
- HTTP_CONFLICT, /* Request is self-conflicting */
- HTTP_GONE, /* Server has gone away */
- HTTP_LENGTH_REQUIRED, /* A content length or encoding is required */
- HTTP_PRECONDITION, /* Precondition failed */
- HTTP_REQUEST_TOO_LARGE, /* Request entity too large */
- HTTP_URI_TOO_LONG, /* URI too long */
- HTTP_UNSUPPORTED_MEDIATYPE, /* The requested media type is unsupported */
- HTTP_REQUESTED_RANGE, /* The requested range is not satisfiable */
- HTTP_EXPECTATION_FAILED, /* The expectation given in an Expect header field was not met */
- HTTP_UPGRADE_REQUIRED = 426, /* Upgrade to SSL/TLS required */
-
- HTTP_SERVER_ERROR = 500, /* Internal server error */
- HTTP_NOT_IMPLEMENTED, /* Feature not implemented */
- HTTP_BAD_GATEWAY, /* Bad gateway */
- HTTP_SERVICE_UNAVAILABLE, /* Service is unavailable */
- HTTP_GATEWAY_TIMEOUT, /* Gateway connection timed out */
- HTTP_NOT_SUPPORTED, /* HTTP version not supported */
-
- HTTP_AUTHORIZATION_CANCELED = 1000, /* User canceled authorization @since CUPS 1.4@ */
- HTTP_PKI_ERROR, /* Error negotiating a secure connection @since CUPS 1.5/OS X 10.7@ */
- HTTP_WEBIF_DISABLED /* Web interface is disabled @private@ */
+ HTTP_STATUS_ERROR = -1, /* An error response from httpXxxx() */
+ HTTP_STATUS_NONE = 0, /* No Expect value @since CUPS 1.7@ */
+
+ HTTP_STATUS_CONTINUE = 100, /* Everything OK, keep going... */
+ HTTP_STATUS_SWITCHING_PROTOCOLS, /* HTTP upgrade to TLS/SSL */
+
+ HTTP_STATUS_OK = 200, /* OPTIONS/GET/HEAD/POST/TRACE command was successful */
+ HTTP_STATUS_CREATED, /* PUT command was successful */
+ HTTP_STATUS_ACCEPTED, /* DELETE command was successful */
+ HTTP_STATUS_NOT_AUTHORITATIVE, /* Information isn't authoritative */
+ HTTP_STATUS_NO_CONTENT, /* Successful command, no new data */
+ HTTP_STATUS_RESET_CONTENT, /* Content was reset/recreated */
+ HTTP_STATUS_PARTIAL_CONTENT, /* Only a partial file was recieved/sent */
+
+ HTTP_STATUS_MULTIPLE_CHOICES = 300, /* Multiple files match request */
+ HTTP_STATUS_MOVED_PERMANENTLY, /* Document has moved permanently */
+ HTTP_STATUS_MOVED_TEMPORARILY, /* Document has moved temporarily */
+ HTTP_STATUS_SEE_OTHER, /* See this other link... */
+ HTTP_STATUS_NOT_MODIFIED, /* File not modified */
+ HTTP_STATUS_USE_PROXY, /* Must use a proxy to access this URI */
+
+ HTTP_STATUS_BAD_REQUEST = 400, /* Bad request */
+ HTTP_STATUS_UNAUTHORIZED, /* Unauthorized to access host */
+ HTTP_STATUS_PAYMENT_REQUIRED, /* Payment required */
+ HTTP_STATUS_FORBIDDEN, /* Forbidden to access this URI */
+ HTTP_STATUS_NOT_FOUND, /* URI was not found */
+ HTTP_STATUS_METHOD_NOT_ALLOWED, /* Method is not allowed */
+ HTTP_STATUS_NOT_ACCEPTABLE, /* Not Acceptable */
+ HTTP_STATUS_PROXY_AUTHENTICATION, /* Proxy Authentication is Required */
+ HTTP_STATUS_REQUEST_TIMEOUT, /* Request timed out */
+ HTTP_STATUS_CONFLICT, /* Request is self-conflicting */
+ HTTP_STATUS_GONE, /* Server has gone away */
+ HTTP_STATUS_LENGTH_REQUIRED, /* A content length or encoding is required */
+ HTTP_STATUS_PRECONDITION, /* Precondition failed */
+ HTTP_STATUS_REQUEST_TOO_LARGE, /* Request entity too large */
+ HTTP_STATUS_URI_TOO_LONG, /* URI too long */
+ HTTP_STATUS_UNSUPPORTED_MEDIATYPE, /* The requested media type is unsupported */
+ HTTP_STATUS_REQUESTED_RANGE, /* The requested range is not satisfiable */
+ HTTP_STATUS_EXPECTATION_FAILED, /* The expectation given in an Expect header field was not met */
+ HTTP_STATUS_UPGRADE_REQUIRED = 426, /* Upgrade to SSL/TLS required */
+
+ HTTP_STATUS_SERVER_ERROR = 500, /* Internal server error */
+ HTTP_STATUS_NOT_IMPLEMENTED, /* Feature not implemented */
+ HTTP_STATUS_BAD_GATEWAY, /* Bad gateway */
+ HTTP_STATUS_SERVICE_UNAVAILABLE, /* Service is unavailable */
+ HTTP_STATUS_GATEWAY_TIMEOUT, /* Gateway connection timed out */
+ HTTP_STATUS_NOT_SUPPORTED, /* HTTP version not supported */
+
+ CUPS_STATUS_AUTHORIZATION_CANCELED = 1000,
+ /* User canceled authorization @since CUPS 1.4@ */
+ CUPS_STATUS_PKI_ERROR, /* Error negotiating a secure connection @since CUPS 1.5/OS X 10.7@ */
+ CUPS_STATUS_WEBIF_DISABLED /* Web interface is disabled @private@ */
+
+# ifndef _CUPS_NO_DEPRECATED
+/* Old names for this enumeration */
+# define HTTP_ERROR HTTP_STATUS_ERROR
+
+# define HTTP_CONTINUE HTTP_STATUS_CONTINUE
+# define HTTP_SWITCHING_PROTOCOLS HTTP_STATUS_SWITCHING_PROTOCOLS
+
+# define HTTP_OK HTTP_STATUS_OK
+# define HTTP_CREATED HTTP_STATUS_CREATED
+# define HTTP_ACCEPTED HTTP_STATUS_ACCEPTED
+# define HTTP_NOT_AUTHORITATIVE HTTP_STATUS_NOT_AUTHORITATIVE
+# define HTTP_NO_CONTENT HTTP_STATUS_NO_CONTENT
+# define HTTP_RESET_CONTENT HTTP_STATUS_RESET_CONTENT
+# define HTTP_PARTIAL_CONTENT HTTP_STATUS_PARTIAL_CONTENT
+
+# define HTTP_MULTIPLE_CHOICES HTTP_STATUS_MULTIPLE_CHOICES
+# define HTTP_MOVED_PERMANENTLY HTTP_STATUS_MOVED_PERMANENTLY
+# define HTTP_MOVED_TEMPORARILY HTTP_STATUS_MOVED_TEMPORARILY
+# define HTTP_SEE_OTHER HTTP_STATUS_SEE_OTHER
+# define HTTP_NOT_MODIFIED HTTP_STATUS_NOT_MODIFIED
+# define HTTP_USE_PROXY HTTP_STATUS_USE_PROXY
+
+# define HTTP_BAD_REQUEST HTTP_STATUS_BAD_REQUEST
+# define HTTP_UNAUTHORIZED HTTP_STATUS_UNAUTHORIZED
+# define HTTP_PAYMENT_REQUIRED HTTP_STATUS_PAYMENT_REQUIRED
+# define HTTP_FORBIDDEN HTTP_STATUS_FORBIDDEN
+# define HTTP_NOT_FOUND HTTP_STATUS_NOT_FOUND
+# define HTTP_METHOD_NOT_ALLOWED HTTP_STATUS_METHOD_NOT_ALLOWED
+# define HTTP_NOT_ACCEPTABLE HTTP_STATUS_NOT_ACCEPTABLE
+# define HTTP_PROXY_AUTHENTICATION HTTP_STATUS_PROXY_AUTHENTICATION
+# define HTTP_REQUEST_TIMEOUT HTTP_STATUS_REQUEST_TIMEOUT
+# define HTTP_CONFLICT HTTP_STATUS_CONFLICT
+# define HTTP_GONE HTTP_STATUS_GONE
+# define HTTP_LENGTH_REQUIRED HTTP_STATUS_LENGTH_REQUIRED
+# define HTTP_PRECONDITION HTTP_STATUS_PRECONDITION
+# define HTTP_REQUEST_TOO_LARGE HTTP_STATUS_REQUEST_TOO_LARGE
+# define HTTP_URI_TOO_LONG HTTP_STATUS_URI_TOO_LONG
+# define HTTP_UNSUPPORTED_MEDIATYPE HTTP_STATUS_UNSUPPORTED_MEDIATYPE
+# define HTTP_REQUESTED_RANGE HTTP_STATUS_REQUESTED_RANGE
+# define HTTP_EXPECTATION_FAILED HTTP_STATUS_EXPECTATION_FAILED
+# define HTTP_UPGRADE_REQUIRED HTTP_STATUS_UPGRADE_REQUIRED
+
+# define HTTP_SERVER_ERROR HTTP_STATUS_SERVER_ERROR
+# define HTTP_NOT_IMPLEMENTED HTTP_STATUS_NOT_IMPLEMENTED
+# define HTTP_BAD_GATEWAY HTTP_STATUS_BAD_GATEWAY
+# define HTTP_SERVICE_UNAVAILABLE HTTP_STATUS_SERVICE_UNAVAILABLE
+# define HTTP_GATEWAY_TIMEOUT HTTP_STATUS_GATEWAY_TIMEOUT
+# define HTTP_NOT_SUPPORTED HTTP_STATUS_NOT_SUPPORTED
+
+# define HTTP_AUTHORIZATION_CANCELED CUPS_STATUS_AUTHORIZATION_CANCELED
+# define HTTP_PKI_ERROR CUPS_STATUS_PKI_ERROR
+# define HTTP_WEBIF_DISABLED CUPS_STATUS_WEBIF_DISABLED
+# endif /* !_CUPS_NO_DEPRECATED */
} http_status_t;
typedef enum http_uri_status_e /**** URI separation status @since CUPS 1.2@ ****/
{
- HTTP_URI_OVERFLOW = -8, /* URI buffer for httpAssembleURI is too small */
- HTTP_URI_BAD_ARGUMENTS = -7, /* Bad arguments to function (error) */
- HTTP_URI_BAD_RESOURCE = -6, /* Bad resource in URI (error) */
- HTTP_URI_BAD_PORT = -5, /* Bad port number in URI (error) */
- HTTP_URI_BAD_HOSTNAME = -4, /* Bad hostname in URI (error) */
- HTTP_URI_BAD_USERNAME = -3, /* Bad username in URI (error) */
- HTTP_URI_BAD_SCHEME = -2, /* Bad scheme in URI (error) */
- HTTP_URI_BAD_URI = -1, /* Bad/empty URI (error) */
- HTTP_URI_OK = 0, /* URI decoded OK */
- HTTP_URI_MISSING_SCHEME, /* Missing scheme in URI (warning) */
- HTTP_URI_UNKNOWN_SCHEME, /* Unknown scheme in URI (warning) */
- HTTP_URI_MISSING_RESOURCE /* Missing resource in URI (warning) */
+ HTTP_URI_STATUS_OVERFLOW = -8, /* URI buffer for httpAssembleURI is too small */
+ HTTP_URI_STATUS_BAD_ARGUMENTS = -7, /* Bad arguments to function (error) */
+ HTTP_URI_STATUS_BAD_RESOURCE = -6, /* Bad resource in URI (error) */
+ HTTP_URI_STATUS_BAD_PORT = -5, /* Bad port number in URI (error) */
+ HTTP_URI_STATUS_BAD_HOSTNAME = -4, /* Bad hostname in URI (error) */
+ HTTP_URI_STATUS_BAD_USERNAME = -3, /* Bad username in URI (error) */
+ HTTP_URI_STATUS_BAD_SCHEME = -2, /* Bad scheme in URI (error) */
+ HTTP_URI_STATUS_BAD_URI = -1, /* Bad/empty URI (error) */
+ HTTP_URI_STATUS_OK = 0, /* URI decoded OK */
+ HTTP_URI_STATUS_MISSING_SCHEME, /* Missing scheme in URI (warning) */
+ HTTP_URI_STATUS_UNKNOWN_SCHEME, /* Unknown scheme in URI (warning) */
+ HTTP_URI_STATUS_MISSING_RESOURCE /* Missing resource in URI (warning) */
+
+# ifndef _CUPS_NO_DEPRECATED
+# define HTTP_URI_OVERFLOW HTTP_URI_STATUS_OVERFLOW
+# define HTTP_URI_BAD_ARGUMENTS HTTP_URI_STATUS_BAD_ARGUMENTS
+# define HTTP_URI_BAD_RESOURCE HTTP_URI_STATUS_BAD_RESOURCE
+# define HTTP_URI_BAD_PORT HTTP_URI_STATUS_BAD_PORT
+# define HTTP_URI_BAD_HOSTNAME HTTP_URI_STATUS_BAD_HOSTNAME
+# define HTTP_URI_BAD_USERNAME HTTP_URI_STATUS_BAD_USERNAME
+# define HTTP_URI_BAD_SCHEME HTTP_URI_STATUS_BAD_SCHEME
+# define HTTP_URI_BAD_URI HTTP_URI_STATUS_BAD_URI
+# define HTTP_URI_OK HTTP_URI_STATUS_OK
+# define HTTP_URI_MISSING_SCHEME HTTP_URI_STATUS_MISSING_SCHEME
+# define HTTP_URI_UNKNOWN_SCHEME HTTP_URI_STATUS_UNKNOWN_SCHEME
+# define HTTP_URI_MISSING_RESOURCE HTTP_URI_STATUS_MISSING_RESOURCE
+# endif /* !_CUPS_NO_DEPRECATED */
} http_uri_status_t;
typedef enum http_uri_coding_e /**** URI en/decode flags ****/
@@ -281,9 +388,15 @@ typedef enum http_uri_coding_e /**** URI en/decode flags ****/
typedef enum http_version_e /**** HTTP version numbers ****/
{
- HTTP_0_9 = 9, /* HTTP/0.9 */
- HTTP_1_0 = 100, /* HTTP/1.0 */
- HTTP_1_1 = 101 /* HTTP/1.1 */
+ HTTP_VERSION_0_9 = 9, /* HTTP/0.9 */
+ HTTP_VERSION_1_0 = 100, /* HTTP/1.0 */
+ HTTP_VERSION_1_1 = 101 /* HTTP/1.1 */
+
+# ifndef _CUPS_NO_DEPRECATED
+# define HTTP_0_9 HTTP_VERSION_0_9
+# define HTTP_1_0 HTTP_VERSION_1_0
+# define HTTP_1_1 HTTP_VERSION_1_1
+# endif /* !_CUPS_NO_DEPRECATED */
} http_version_t;
typedef union _http_addr_u /**** Socket address union, which
@@ -334,9 +447,11 @@ extern void httpBlocking(http_t *http, int b);
extern int httpCheck(http_t *http);
extern void httpClearFields(http_t *http);
extern void httpClose(http_t *http);
-extern http_t *httpConnect(const char *host, int port);
+extern http_t *httpConnect(const char *host, int port)
+ _CUPS_DEPRECATED_MSG("Use httpConnect2 instead.");
extern http_t *httpConnectEncrypt(const char *host, int port,
- http_encryption_t encryption);
+ http_encryption_t encryption)
+ _CUPS_DEPRECATED_MSG("Use httpConnect2 instead.");
extern int httpDelete(http_t *http, const char *uri);
extern int httpEncryption(http_t *http, http_encryption_t e);
extern int httpError(http_t *http);
@@ -356,20 +471,20 @@ extern int httpPost(http_t *http, const char *uri);
extern int httpPrintf(http_t *http, const char *format, ...)
__attribute__ ((__format__ (__printf__, 2, 3)));
extern int httpPut(http_t *http, const char *uri);
-extern int httpRead(http_t *http, char *buffer, int length) _CUPS_DEPRECATED;
-extern int httpReconnect(http_t *http);
+extern int httpRead(http_t *http, char *buffer, int length) _CUPS_DEPRECATED_MSG("Use httpRead2 instead.");
+extern int httpReconnect(http_t *http) _CUPS_DEPRECATED_MSG("Use httpReconnect2 instead.");
extern void httpSeparate(const char *uri, char *method,
char *username, char *host, int *port,
- char *resource) _CUPS_DEPRECATED;
+ char *resource) _CUPS_DEPRECATED_MSG("Use httpSeparateURI instead.");
extern void httpSetField(http_t *http, http_field_t field,
const char *value);
extern const char *httpStatus(http_status_t status);
extern int httpTrace(http_t *http, const char *uri);
extern http_status_t httpUpdate(http_t *http);
-extern int httpWrite(http_t *http, const char *buffer, int length) _CUPS_DEPRECATED;
-extern char *httpEncode64(char *out, const char *in) _CUPS_DEPRECATED;
-extern char *httpDecode64(char *out, const char *in) _CUPS_DEPRECATED;
-extern int httpGetLength(http_t *http) _CUPS_DEPRECATED;
+extern int httpWrite(http_t *http, const char *buffer, int length) _CUPS_DEPRECATED_MSG("Use httpWrite2 instead.");
+extern char *httpEncode64(char *out, const char *in) _CUPS_DEPRECATED_MSG("Use httpEncode64_2 instead.");
+extern char *httpDecode64(char *out, const char *in) _CUPS_DEPRECATED_MSG("Use httpDecode64_2 instead.");
+extern int httpGetLength(http_t *http) _CUPS_DEPRECATED_MSG("Use httpGetLength2 instead.");
extern char *httpMD5(const char *, const char *, const char *,
char [33]);
extern char *httpMD5Final(const char *, const char *, const char *,
@@ -390,7 +505,7 @@ extern void httpSeparate2(const char *uri,
char *method, int methodlen,
char *username, int usernamelen,
char *host, int hostlen, int *port,
- char *resource, int resourcelen) _CUPS_DEPRECATED;
+ char *resource, int resourcelen) _CUPS_DEPRECATED_MSG("Use httpSeparateURI instead.");
/**** New in CUPS 1.2/OS X 10.5 ****/
extern int httpAddrAny(const http_addr_t *addr) _CUPS_API_1_2;
@@ -469,6 +584,28 @@ extern int httpReconnect2(http_t *http, int msec, int *cancel)
_CUPS_API_1_6;
+/**** New in CUPS 1.7 ****/
+extern http_t *httpAcceptConnection(int fd, int blocking)
+ _CUPS_API_1_7;
+extern http_addrlist_t *httpAddrCopyList(http_addrlist_t *src) _CUPS_API_1_7;
+extern int httpAddrListen(http_addr_t *addr, int port)
+ _CUPS_API_1_7;
+extern int httpAddrPort(http_addr_t *addr) _CUPS_API_1_7;
+extern http_t *httpConnect2(const char *host, int port,
+ http_addrlist_t *addrlist,
+ int family, http_encryption_t encryption,
+ int blocking, int msec, int *cancel)
+ _CUPS_API_1_7;
+extern const char *httpGetContentEncoding(http_t *http) _CUPS_API_1_7;
+extern http_status_t httpGetExpect(http_t *http) _CUPS_API_1_7;
+extern ssize_t httpPeek(http_t *http, char *buffer, size_t length)
+ _CUPS_API_1_7;
+extern http_state_t httpReadRequest(http_t *http, char *resource,
+ size_t resourcelen) _CUPS_API_1_7;
+extern http_state_t httpWriteResponse(http_t *http,
+ http_status_t status) _CUPS_API_1_7;
+
+
/*
* C++ magic...
*/
diff --git a/cups/ipp-private.h b/cups/ipp-private.h
index 1d3003c3f..c29d54895 100644
--- a/cups/ipp-private.h
+++ b/cups/ipp-private.h
@@ -3,7 +3,7 @@
*
* Private IPP definitions for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
@@ -54,6 +54,7 @@ typedef struct /**** Attribute mapping data ****/
ipp_tag_t group_tag; /* Group tag for this attribute */
ipp_tag_t alt_group_tag; /* Alternate group tag for this
* attribute */
+ const ipp_op_t *operations; /* Allowed operations for this attr */
} _ipp_option_t;
@@ -61,9 +62,11 @@ typedef struct /**** Attribute mapping data ****/
* Prototypes for private functions...
*/
+#ifdef DEBUG
+extern const char *_ippCheckOptions(void);
+#endif /* DEBUG */
extern _ipp_option_t *_ippFindOption(const char *name);
-
/*
* C++ magic...
*/
diff --git a/cups/ipp-support.c b/cups/ipp-support.c
index 8ad921dd5..dfe610352 100644
--- a/cups/ipp-support.c
+++ b/cups/ipp-support.c
@@ -84,6 +84,43 @@ static const char * const ipp_status_oks[] = /* "OK" status codes */
"client-error-document-security-error",
"client-error-document-unprintable-error"
},
+ * const ipp_status_480s[] = /* Vendor client errors */
+ {
+ /* 0x0480 - 0x048F */
+ "0x0480",
+ "0x0481",
+ "0x0482",
+ "0x0483",
+ "0x0484",
+ "0x0485",
+ "0x0486",
+ "0x0487",
+ "0x0488",
+ "0x0489",
+ "0x048A",
+ "0x048B",
+ "0x048C",
+ "0x048D",
+ "0x048E",
+ "0x048F",
+ /* 0x0490 - 0x049F */
+ "0x0490",
+ "0x0491",
+ "0x0492",
+ "0x0493",
+ "0x0494",
+ "0x0495",
+ "0x0496",
+ "0x0497",
+ "0x0498",
+ "0x0499",
+ "0x049A",
+ "0x049B",
+ "cups-error-account-info-needed",
+ "cups-error-account-closed",
+ "cups-error-account-limit-reached",
+ "cups-error-account-authorization-failed"
+ },
* const ipp_status_500s[] = /* Server errors */
{
"server-error-internal-error",
@@ -102,7 +139,7 @@ static const char * const ipp_status_oks[] = /* "OK" status codes */
},
* const ipp_status_1000s[] = /* CUPS internal */
{
- "cups-authorization-canceled",
+ "cups-authentication-canceled",
"cups-pki-error",
"cups-upgrade-required"
};
@@ -360,6 +397,101 @@ static const char * const ipp_document_states[] =
"trim-after-copies",
"trim-after-job"
},
+ * const ipp_finishings_vendor[] =
+ {
+ /* 0x40000000 to 0x4000000F */
+ "0x40000000",
+ "0x40000001",
+ "0x40000002",
+ "0x40000003",
+ "0x40000004",
+ "0x40000005",
+ "0x40000006",
+ "0x40000007",
+ "0x40000008",
+ "0x40000009",
+ "0x4000000A",
+ "0x4000000B",
+ "0x4000000C",
+ "0x4000000D",
+ "0x4000000E",
+ "0x4000000F",
+ /* 0x40000010 to 0x4000001F */
+ "0x40000010",
+ "0x40000011",
+ "0x40000012",
+ "0x40000013",
+ "0x40000014",
+ "0x40000015",
+ "0x40000016",
+ "0x40000017",
+ "0x40000018",
+ "0x40000019",
+ "0x4000001A",
+ "0x4000001B",
+ "0x4000001C",
+ "0x4000001D",
+ "0x4000001E",
+ "0x4000001F",
+ /* 0x40000020 to 0x4000002F */
+ "0x40000020",
+ "0x40000021",
+ "0x40000022",
+ "0x40000023",
+ "0x40000024",
+ "0x40000025",
+ "0x40000026",
+ "0x40000027",
+ "0x40000028",
+ "0x40000029",
+ "0x4000002A",
+ "0x4000002B",
+ "0x4000002C",
+ "0x4000002D",
+ "0x4000002E",
+ "0x4000002F",
+ /* 0x40000030 to 0x4000003F */
+ "0x40000030",
+ "0x40000031",
+ "0x40000032",
+ "0x40000033",
+ "0x40000034",
+ "0x40000035",
+ "0x40000036",
+ "0x40000037",
+ "0x40000038",
+ "0x40000039",
+ "0x4000003A",
+ "0x4000003B",
+ "0x4000003C",
+ "0x4000003D",
+ "0x4000003E",
+ "0x4000003F",
+ /* 0x40000040 - 0x4000004F */
+ "0x40000040",
+ "0x40000041",
+ "0x40000042",
+ "0x40000043",
+ "0x40000044",
+ "0x40000045",
+ "punch-top-left",
+ "punch-bottom-left",
+ "punch-top-right",
+ "punch-bottom-right",
+ "punch-dual-left",
+ "punch-dual-top",
+ "punch-dual-right",
+ "punch-dual-bottom",
+ "punch-triple-left",
+ "punch-triple-top",
+ /* 0x40000050 - 0x40000055 */
+ "punch-triple-right",
+ "punch-triple-bottom",
+ "punch-quad-left",
+ "punch-quad-top",
+ "punch-quad-right",
+ "punch-quad-bottom",
+ },
* const ipp_job_collation_types[] =
{ /* job-collation-type enums */
"uncollated-sheets",
@@ -648,14 +780,21 @@ ippEnumString(const char *attrname, /* I - Attribute name */
enumvalue <= (3 + (int)(sizeof(ipp_document_states) /
sizeof(ipp_document_states[0]))))
return (ipp_document_states[enumvalue - 3]);
- else if ((!strcmp(attrname, "finishings") ||
- !strcmp(attrname, "finishings-actual") ||
- !strcmp(attrname, "finishings-default") ||
- !strcmp(attrname, "finishings-ready") ||
- !strcmp(attrname, "finishings-supported")) &&
- enumvalue >= 3 &&
- enumvalue <= (3 + (int)(sizeof(ipp_finishings) / sizeof(ipp_finishings[0]))))
- return (ipp_finishings[enumvalue - 3]);
+ else if (!strcmp(attrname, "finishings") ||
+ !strcmp(attrname, "finishings-actual") ||
+ !strcmp(attrname, "finishings-default") ||
+ !strcmp(attrname, "finishings-ready") ||
+ !strcmp(attrname, "finishings-supported"))
+ {
+ if (enumvalue >= 3 &&
+ enumvalue <= (3 + (int)(sizeof(ipp_finishings) /
+ sizeof(ipp_finishings[0]))))
+ return (ipp_finishings[enumvalue - 3]);
+ else if (enumvalue >= 0x40000000 &&
+ enumvalue <= (0x40000000 + (int)(sizeof(ipp_finishings_vendor) /
+ sizeof(ipp_finishings_vendor[0]))))
+ return (ipp_finishings_vendor[enumvalue - 0x40000000]);
+ }
else if ((!strcmp(attrname, "job-collation-type") ||
!strcmp(attrname, "job-collation-type-actual")) &&
enumvalue >= 3 &&
@@ -731,6 +870,13 @@ ippEnumValue(const char *attrname, /* I - Attribute name */
!strcmp(attrname, "finishings-ready") ||
!strcmp(attrname, "finishings-supported"))
{
+ for (i = 0;
+ i < (int)(sizeof(ipp_finishings_vendor) /
+ sizeof(ipp_finishings_vendor[0]));
+ i ++)
+ if (!strcmp(enumstring, ipp_finishings_vendor[i]))
+ return (i + 0x40000000);
+
num_strings = (int)(sizeof(ipp_finishings) / sizeof(ipp_finishings[0]));
strings = ipp_finishings;
}
@@ -795,18 +941,25 @@ ippErrorString(ipp_status_t error) /* I - Error status */
* See if the error code is a known value...
*/
- if (error >= IPP_OK && error <= IPP_OK_EVENTS_COMPLETE)
+ if (error >= IPP_STATUS_OK && error <= IPP_STATUS_OK_EVENTS_COMPLETE)
return (ipp_status_oks[error]);
- else if (error == IPP_REDIRECTION_OTHER_SITE)
+ else if (error == IPP_STATUS_REDIRECTION_OTHER_SITE)
return ("redirection-other-site");
- else if (error == CUPS_SEE_OTHER)
+ else if (error == IPP_STATUS_CUPS_SEE_OTHER)
return ("cups-see-other");
- else if (error >= IPP_BAD_REQUEST && error <= IPP_PRINT_SUPPORT_FILE_NOT_FOUND)
- return (ipp_status_400s[error - IPP_BAD_REQUEST]);
- else if (error >= IPP_INTERNAL_ERROR && error <= IPP_PRINTER_IS_DEACTIVATED)
- return (ipp_status_500s[error - IPP_INTERNAL_ERROR]);
- else if (error >= IPP_AUTHENTICATION_CANCELED && error <= IPP_UPGRADE_REQUIRED)
- return (ipp_status_1000s[error - IPP_AUTHENTICATION_CANCELED]);
+ else if (error >= IPP_STATUS_ERROR_BAD_REQUEST &&
+ error <= IPP_STATUS_ERROR_DOCUMENT_UNPRINTABLE)
+ return (ipp_status_400s[error - IPP_STATUS_ERROR_BAD_REQUEST]);
+ else if (error >= 0x480 &&
+ error <= IPP_STATUS_ERROR_CUPS_ACCOUNT_AUTHORIZATION_FAILED)
+ return (ipp_status_480s[error - 0x0480]);
+ else if (error >= IPP_STATUS_ERROR_INTERNAL &&
+ error <= IPP_STATUS_ERROR_TOO_MANY_DOCUMENTS)
+ return (ipp_status_500s[error - IPP_STATUS_ERROR_INTERNAL]);
+ else if (error >= IPP_STATUS_ERROR_CUPS_AUTHENTICATION_CANCELED &&
+ error <= IPP_STATUS_ERROR_CUPS_UPGRADE_REQUIRED)
+ return (ipp_status_1000s[error -
+ IPP_STATUS_ERROR_CUPS_AUTHENTICATION_CANCELED]);
/*
* No, build an "0xxxxx" error string...
@@ -835,15 +988,19 @@ ippErrorValue(const char *name) /* I - Name */
return ((ipp_status_t)i);
if (!_cups_strcasecmp(name, "redirection-other-site"))
- return (IPP_REDIRECTION_OTHER_SITE);
+ return (IPP_STATUS_REDIRECTION_OTHER_SITE);
if (!_cups_strcasecmp(name, "cups-see-other"))
- return (CUPS_SEE_OTHER);
+ return (IPP_STATUS_CUPS_SEE_OTHER);
for (i = 0; i < (sizeof(ipp_status_400s) / sizeof(ipp_status_400s[0])); i ++)
if (!_cups_strcasecmp(name, ipp_status_400s[i]))
return ((ipp_status_t)(i + 0x400));
+ for (i = 0; i < (sizeof(ipp_status_480s) / sizeof(ipp_status_480s[0])); i ++)
+ if (!_cups_strcasecmp(name, ipp_status_480s[i]))
+ return ((ipp_status_t)(i + 0x480));
+
for (i = 0; i < (sizeof(ipp_status_500s) / sizeof(ipp_status_500s[0])); i ++)
if (!_cups_strcasecmp(name, ipp_status_500s[i]))
return ((ipp_status_t)(i + 0x500));
@@ -872,13 +1029,13 @@ ippOpString(ipp_op_t op) /* I - Operation ID */
* See if the operation ID is a known value...
*/
- if (op >= IPP_PRINT_JOB && op <= IPP_CLOSE_JOB)
+ if (op >= IPP_OP_PRINT_JOB && op <= IPP_OP_CLOSE_JOB)
return (ipp_std_ops[op]);
- else if (op == IPP_PRIVATE)
+ else if (op == IPP_OP_PRIVATE)
return ("windows-ext");
- else if (op >= CUPS_GET_DEFAULT && op <= CUPS_GET_PPD)
+ else if (op >= IPP_OP_CUPS_GET_DEFAULT && op <= IPP_OP_CUPS_GET_PPD)
return (ipp_cups_ops[op - CUPS_GET_DEFAULT]);
- else if (op == CUPS_GET_DOCUMENT)
+ else if (op == IPP_OP_CUPS_GET_DOCUMENT)
return (ipp_cups_ops2[0]);
/*
@@ -911,7 +1068,7 @@ ippOpValue(const char *name) /* I - Textual name */
return ((ipp_op_t)i);
if (!_cups_strcasecmp(name, "windows-ext"))
- return (IPP_PRIVATE);
+ return (IPP_OP_PRIVATE);
for (i = 0; i < (sizeof(ipp_cups_ops) / sizeof(ipp_cups_ops[0])); i ++)
if (!_cups_strcasecmp(name, ipp_cups_ops[i]))
@@ -922,12 +1079,12 @@ ippOpValue(const char *name) /* I - Textual name */
return ((ipp_op_t)(i + 0x4027));
if (!_cups_strcasecmp(name, "CUPS-Add-Class"))
- return (CUPS_ADD_MODIFY_CLASS);
+ return (IPP_OP_CUPS_ADD_MODIFY_CLASS);
if (!_cups_strcasecmp(name, "CUPS-Add-Printer"))
- return (CUPS_ADD_MODIFY_PRINTER);
+ return (IPP_OP_CUPS_ADD_MODIFY_PRINTER);
- return ((ipp_op_t)-1);
+ return (IPP_OP_CUPS_INVALID);
}
diff --git a/cups/ipp.c b/cups/ipp.c
index 9290edbbc..0c54a2803 100644
--- a/cups/ipp.c
+++ b/cups/ipp.c
@@ -33,7 +33,13 @@
* ippAddResolutions() - Add resolution values to an IPP message.
* ippAddSeparator() - Add a group separator to an IPP message.
* ippAddString() - Add a language-encoded string to an IPP message.
+ * ippAddStringf() - Add a formatted string to an IPP message.
+ * ippAddStringfv() - Add a formatted string to an IPP message.
* ippAddStrings() - Add language-encoded strings to an IPP message.
+ * ippContainsInteger() - Determine whether an attribute contains the
+ * specified value or is within the list of ranges.
+ * ippContainsString() - Determine whether an attribute contains the
+ * specified string value.
* ippCopyAttribute() - Copy an attribute.
* ippCopyAttributes() - Copy attributes from one IPP message to another.
* ippDateToTime() - Convert from RFC 1903 Date/Time format to UNIX
@@ -47,14 +53,15 @@
* ippGetBoolean() - Get a boolean value for an attribute.
* ippGetCollection() - Get a collection value for an attribute.
* ippGetCount() - Get the number of values in an attribute.
- * ippGetDate() - Get a date value for an attribute.
+ * ippGetDate() - Get a date value for an attribute.
* ippGetGroupTag() - Get the group associated with an attribute.
* ippGetInteger() - Get the integer/enum value for an attribute.
* ippGetName() - Get the attribute name.
* ippGetOperation() - Get the operation ID in an IPP message.
- * ippGetRange() - Get a rangeOfInteger value from an attribute.
+ * ippGetRange() - Get a rangeOfInteger value from an attribute.
* ippGetRequestId() - Get the request ID from an IPP message.
* ippGetResolution() - Get a resolution value for an attribute.
+ * ippGetState() - Get the IPP message state.
* ippGetStatusCode() - Get the status code from an IPP response or event
* message.
* ippGetString() - Get the string and optionally the language code
@@ -66,13 +73,14 @@
* ippNextAttribute() - Return the next attribute in the message.
* ippNew() - Allocate a new IPP message.
* ippNewRequest() - Allocate a new IPP request message.
+ * ippNewResponse() - Allocate a new IPP response message.
* ippRead() - Read data for an IPP message from a HTTP
* connection.
* ippReadFile() - Read data for an IPP message from a file.
* ippReadIO() - Read data for an IPP message.
* ippSetBoolean() - Set a boolean value in an attribute.
* ippSetCollection() - Set a collection value in an attribute.
- * ippSetDate() - Set a date value in an attribute.
+ * ippSetDate() - Set a date value in an attribute.
* ippSetGroupTag() - Set the group tag of an attribute.
* ippSetInteger() - Set an integer or enum value in an attribute.
* ippSetName() - Set the name of an attribute.
@@ -80,10 +88,12 @@
* ippSetRange() - Set a rangeOfInteger value in an attribute.
* ippSetRequestId() - Set the request ID in an IPP message.
* ippSetResolution() - Set a resolution value in an attribute.
- * ippSetState() - Set the current state of the IPP message.
+ * ippSetState() - Set the current state of the IPP message.
* ippSetStatusCode() - Set the status code in an IPP response or event
* message.
* ippSetString() - Set a string value in an attribute.
+ * ippSetStringf() - Set a formatted string value of an attribute.
+ * ippSetStringf() - Set a formatted string value of an attribute.
* ippSetValueTag() - Set the value tag of an attribute.
* ippSetVersion() - Set the version number in an IPP message.
* ippTimeToDate() - Convert from UNIX time to RFC 1903 format.
@@ -196,8 +206,8 @@ _cupsBufferRelease(char *b) /* I - Buffer to release */
/*
* 'ippAddBoolean()' - Add a boolean attribute to an IPP message.
*
- * The @code ipp@ parameter refers to an IPP message previously created using the
- * @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* The @code group@ parameter specifies the IPP attribute group tag: none
* (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
@@ -242,8 +252,8 @@ ippAddBoolean(ipp_t *ipp, /* I - IPP message */
/*
* 'ippAddBooleans()' - Add an array of boolean values.
*
- * The @code ipp@ parameter refers to an IPP message previously created using the
- * @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* The @code group@ parameter specifies the IPP attribute group tag: none
* (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
@@ -299,8 +309,8 @@ ippAddBooleans(ipp_t *ipp, /* I - IPP message */
/*
* 'ippAddCollection()' - Add a collection value.
*
- * The @code ipp@ parameter refers to an IPP message previously created using the
- * @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* The @code group@ parameter specifies the IPP attribute group tag: none
* (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
@@ -350,8 +360,8 @@ ippAddCollection(ipp_t *ipp, /* I - IPP message */
/*
* 'ippAddCollections()' - Add an array of collection values.
*
- * The @code ipp@ parameter refers to an IPP message previously created using the
- * @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* The @code group@ parameter specifies the IPP attribute group tag: none
* (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
@@ -414,8 +424,8 @@ ippAddCollections(
/*
* 'ippAddDate()' - Add a date attribute to an IPP message.
*
- * The @code ipp@ parameter refers to an IPP message previously created using the
- * @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* The @code group@ parameter specifies the IPP attribute group tag: none
* (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
@@ -460,8 +470,8 @@ ippAddDate(ipp_t *ipp, /* I - IPP message */
/*
* 'ippAddInteger()' - Add a integer attribute to an IPP message.
*
- * The @code ipp@ parameter refers to an IPP message previously created using the
- * @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* The @code group@ parameter specifies the IPP attribute group tag: none
* (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
@@ -528,8 +538,8 @@ ippAddInteger(ipp_t *ipp, /* I - IPP message */
/*
* 'ippAddIntegers()' - Add an array of integer values.
*
- * The @code ipp@ parameter refers to an IPP message previously created using the
- * @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* The @code group@ parameter specifies the IPP attribute group tag: none
* (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
@@ -600,8 +610,8 @@ ippAddIntegers(ipp_t *ipp, /* I - IPP message */
/*
* 'ippAddOctetString()' - Add an octetString value to an IPP message.
*
- * The @code ipp@ parameter refers to an IPP message previously created using the
- * @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* The @code group@ parameter specifies the IPP attribute group tag: none
* (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
@@ -624,7 +634,7 @@ ippAddOctetString(ipp_t *ipp, /* I - IPP message */
if (!ipp || !name || group < IPP_TAG_ZERO ||
group == IPP_TAG_END || group >= IPP_TAG_UNSUPPORTED_VALUE ||
- datalen < 0 || datalen > IPP_MAX_OCTETSTRING)
+ datalen < 0 || datalen > IPP_MAX_LENGTH)
return (NULL);
if ((attr = ipp_add_attr(ipp, name, group, IPP_TAG_STRING, 1)) == NULL)
@@ -658,8 +668,8 @@ ippAddOctetString(ipp_t *ipp, /* I - IPP message */
/*
* 'ippAddOutOfBand()' - Add an out-of-band value to an IPP message.
*
- * The @code ipp@ parameter refers to an IPP message previously created using the
- * @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* The @code group@ parameter specifies the IPP attribute group tag: none
* (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
@@ -714,8 +724,8 @@ ippAddOutOfBand(ipp_t *ipp, /* I - IPP message */
/*
* 'ippAddRange()' - Add a range of values to an IPP message.
*
- * The @code ipp@ parameter refers to an IPP message previously created using the
- * @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* The @code group@ parameter specifies the IPP attribute group tag: none
* (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
@@ -765,8 +775,8 @@ ippAddRange(ipp_t *ipp, /* I - IPP message */
/*
* 'ippAddRanges()' - Add ranges of values to an IPP message.
*
- * The @code ipp@ parameter refers to an IPP message previously created using the
- * @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* The @code group@ parameter specifies the IPP attribute group tag: none
* (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
@@ -826,8 +836,8 @@ ippAddRanges(ipp_t *ipp, /* I - IPP message */
/*
* 'ippAddResolution()' - Add a resolution value to an IPP message.
*
- * The @code ipp@ parameter refers to an IPP message previously created using the
- * @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* The @code group@ parameter specifies the IPP attribute group tag: none
* (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
@@ -879,8 +889,8 @@ ippAddResolution(ipp_t *ipp, /* I - IPP message */
/*
* 'ippAddResolutions()' - Add resolution values to an IPP message.
*
- * The @code ipp@ parameter refers to an IPP message previously created using the
- * @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* The @code group@ parameter specifies the IPP attribute group tag: none
* (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
@@ -943,8 +953,8 @@ ippAddResolutions(ipp_t *ipp, /* I - IPP message */
/*
* 'ippAddSeparator()' - Add a group separator to an IPP message.
*
- * The @code ipp@ parameter refers to an IPP message previously created using the
- * @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*/
ipp_attribute_t * /* O - New attribute */
@@ -970,8 +980,8 @@ ippAddSeparator(ipp_t *ipp) /* I - IPP message */
/*
* 'ippAddString()' - Add a language-encoded string to an IPP message.
*
- * The @code ipp@ parameter refers to an IPP message previously created using the
- * @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* The @code group@ parameter specifies the IPP attribute group tag: none
* (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
@@ -1085,10 +1095,225 @@ ippAddString(ipp_t *ipp, /* I - IPP message */
/*
+ * 'ippAddStringf()' - Add a formatted string to an IPP message.
+ *
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
+ *
+ * The @code group@ parameter specifies the IPP attribute group tag: none
+ * (@code IPP_TAG_ZERO@, for member attributes), document
+ * (@code IPP_TAG_DOCUMENT@), event notification
+ * (@code IPP_TAG_EVENT_NOTIFICATION@), operation (@code IPP_TAG_OPERATION@),
+ * printer (@code IPP_TAG_PRINTER@), subscription (@code IPP_TAG_SUBSCRIPTION@),
+ * or unsupported (@code IPP_TAG_UNSUPPORTED_GROUP@).
+ *
+ * Supported string values include charset (@code IPP_TAG_CHARSET@), keyword
+ * (@code IPP_TAG_KEYWORD@), language (@code IPP_TAG_LANGUAGE@), mimeMediaType
+ * (@code IPP_TAG_MIMETYPE@), name (@code IPP_TAG_NAME@), nameWithLanguage
+ * (@code IPP_TAG_NAMELANG), text (@code IPP_TAG_TEXT@), textWithLanguage
+ * (@code IPP_TAG_TEXTLANG@), uri (@code IPP_TAG_URI@), and uriScheme
+ * (@code IPP_TAG_URISCHEME@).
+ *
+ * The @code language@ parameter must be non-@code NULL@ for nameWithLanguage
+ * and textWithLanguage string values and must be @code NULL@ for all other
+ * string values.
+ *
+ * The @code format@ parameter uses formatting characters compatible with the
+ * printf family of standard functions. Additional arguments follow it as
+ * needed. The formatted string is truncated as needed to the maximum length of
+ * the corresponding value type.
+ *
+ * @since CUPS 1.7@
+ */
+
+ipp_attribute_t * /* O - New attribute */
+ippAddStringf(ipp_t *ipp, /* I - IPP message */
+ ipp_tag_t group, /* I - IPP group */
+ ipp_tag_t value_tag, /* I - Type of attribute */
+ const char *name, /* I - Name of attribute */
+ const char *language, /* I - Language code (@code NULL@ for default) */
+ const char *format, /* I - Printf-style format string */
+ ...) /* I - Additional arguments as needed */
+{
+ ipp_attribute_t *attr; /* New attribute */
+ va_list ap; /* Argument pointer */
+
+
+ va_start(ap, format);
+ attr = ippAddStringfv(ipp, group, value_tag, name, language, format, ap);
+ va_end(ap);
+
+ return (attr);
+}
+
+
+/*
+ * 'ippAddStringfv()' - Add a formatted string to an IPP message.
+ *
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
+ *
+ * The @code group@ parameter specifies the IPP attribute group tag: none
+ * (@code IPP_TAG_ZERO@, for member attributes), document
+ * (@code IPP_TAG_DOCUMENT@), event notification
+ * (@code IPP_TAG_EVENT_NOTIFICATION@), operation (@code IPP_TAG_OPERATION@),
+ * printer (@code IPP_TAG_PRINTER@), subscription (@code IPP_TAG_SUBSCRIPTION@),
+ * or unsupported (@code IPP_TAG_UNSUPPORTED_GROUP@).
+ *
+ * Supported string values include charset (@code IPP_TAG_CHARSET@), keyword
+ * (@code IPP_TAG_KEYWORD@), language (@code IPP_TAG_LANGUAGE@), mimeMediaType
+ * (@code IPP_TAG_MIMETYPE@), name (@code IPP_TAG_NAME@), nameWithLanguage
+ * (@code IPP_TAG_NAMELANG), text (@code IPP_TAG_TEXT@), textWithLanguage
+ * (@code IPP_TAG_TEXTLANG@), uri (@code IPP_TAG_URI@), and uriScheme
+ * (@code IPP_TAG_URISCHEME@).
+ *
+ * The @code language@ parameter must be non-@code NULL@ for nameWithLanguage
+ * and textWithLanguage string values and must be @code NULL@ for all other
+ * string values.
+ *
+ * The @code format@ parameter uses formatting characters compatible with the
+ * printf family of standard functions. Additional arguments are passed in the
+ * stdarg pointer @code ap@. The formatted string is truncated as needed to the
+ * maximum length of the corresponding value type.
+ *
+ * @since CUPS 1.7@
+ */
+
+ipp_attribute_t * /* O - New attribute */
+ippAddStringfv(ipp_t *ipp, /* I - IPP message */
+ ipp_tag_t group, /* I - IPP group */
+ ipp_tag_t value_tag, /* I - Type of attribute */
+ const char *name, /* I - Name of attribute */
+ const char *language, /* I - Language code (@code NULL@ for default) */
+ const char *format, /* I - Printf-style format string */
+ va_list ap) /* I - Additional arguments */
+{
+ char buffer[IPP_MAX_TEXT + 4];
+ /* Formatted text string */
+ ssize_t bytes, /* Length of formatted value */
+ max_bytes; /* Maximum number of bytes for value */
+
+
+ /*
+ * Range check input...
+ */
+
+ if (!ipp || !name || group < IPP_TAG_ZERO ||
+ group == IPP_TAG_END || group >= IPP_TAG_UNSUPPORTED_VALUE ||
+ (value_tag < IPP_TAG_TEXT && value_tag != IPP_TAG_TEXTLANG &&
+ value_tag != IPP_TAG_NAMELANG) || value_tag > IPP_TAG_MIMETYPE ||
+ !format || !ap)
+ return (NULL);
+
+ if ((value_tag == IPP_TAG_TEXTLANG || value_tag == IPP_TAG_NAMELANG)
+ != (language != NULL))
+ return (NULL);
+
+ /*
+ * Format the string...
+ */
+
+ if (!strcmp(format, "%s"))
+ {
+ /*
+ * Optimize the simple case...
+ */
+
+ const char *s = va_arg(ap, char *);
+
+ if (!s)
+ s = "(null)";
+
+ bytes = strlen(s);
+ strlcpy(buffer, s, sizeof(buffer));
+ }
+ else
+ {
+ /*
+ * Do a full formatting of the message...
+ */
+
+ if ((bytes = vsnprintf(buffer, sizeof(buffer), format, ap)) < 0)
+ return (NULL);
+ }
+
+ /*
+ * Limit the length of the string...
+ */
+
+ switch (value_tag)
+ {
+ default :
+ case IPP_TAG_TEXT :
+ case IPP_TAG_TEXTLANG :
+ max_bytes = IPP_MAX_TEXT;
+ break;
+
+ case IPP_TAG_NAME :
+ case IPP_TAG_NAMELANG :
+ max_bytes = IPP_MAX_NAME;
+ break;
+
+ case IPP_TAG_CHARSET :
+ max_bytes = IPP_MAX_CHARSET;
+ break;
+
+ case IPP_TAG_KEYWORD :
+ max_bytes = IPP_MAX_KEYWORD;
+ break;
+
+ case IPP_TAG_LANGUAGE :
+ max_bytes = IPP_MAX_LANGUAGE;
+ break;
+
+ case IPP_TAG_MIMETYPE :
+ max_bytes = IPP_MAX_MIMETYPE;
+ break;
+
+ case IPP_TAG_URI :
+ max_bytes = IPP_MAX_URI;
+ break;
+
+ case IPP_TAG_URISCHEME :
+ max_bytes = IPP_MAX_URISCHEME;
+ break;
+ }
+
+ if (bytes >= max_bytes)
+ {
+ char *bufmax, /* Buffer at max_bytes */
+ *bufptr; /* Pointer into buffer */
+
+ bufptr = buffer + strlen(buffer) - 1;
+ bufmax = buffer + max_bytes - 1;
+
+ while (bufptr > bufmax)
+ {
+ if (*bufptr & 0x80)
+ {
+ while ((*bufptr & 0xc0) == 0x80 && bufptr > buffer)
+ bufptr --;
+ }
+
+ bufptr --;
+ }
+
+ *bufptr = '\0';
+ }
+
+ /*
+ * Add the formatted string and return...
+ */
+
+ return (ippAddString(ipp, group, value_tag, name, language, buffer));
+}
+
+
+/*
* 'ippAddStrings()' - Add language-encoded strings to an IPP message.
*
- * The @code ipp@ parameter refers to an IPP message previously created using the
- * @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* The @code group@ parameter specifies the IPP attribute group tag: none
* (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
@@ -1226,6 +1451,133 @@ ippAddStrings(
/*
+ * 'ippContainsInteger()' - Determine whether an attribute contains the
+ * specified value or is within the list of ranges.
+ *
+ * Returns non-zero when the attribute contains either a matching integer or
+ * enum value, or the value falls within one of the rangeOfInteger values for
+ * the attribute.
+ *
+ * @since CUPS 1.7@
+ */
+
+int /* O - 1 on a match, 0 on no match */
+ippContainsInteger(
+ ipp_attribute_t *attr, /* I - Attribute */
+ int value) /* I - Integer/enum value */
+{
+ int i; /* Looping var */
+ _ipp_value_t *avalue; /* Current attribute value */
+
+
+ /*
+ * Range check input...
+ */
+
+ if (!attr)
+ return (0);
+
+ if (attr->value_tag != IPP_TAG_INTEGER && attr->value_tag != IPP_TAG_ENUM &&
+ attr->value_tag != IPP_TAG_RANGE)
+ return (0);
+
+ /*
+ * Compare...
+ */
+
+ if (attr->value_tag == IPP_TAG_RANGE)
+ {
+ for (i = attr->num_values, avalue = attr->values; i > 0; i --, avalue ++)
+ if (value >= avalue->range.lower && value <= avalue->range.upper)
+ return (1);
+ }
+ else
+ {
+ for (i = attr->num_values, avalue = attr->values; i > 0; i --, avalue ++)
+ if (value == avalue->integer)
+ return (1);
+ }
+
+ return (0);
+}
+
+
+/*
+ * 'ippContainsString()' - Determine whether an attribute contains the
+ * specified string value.
+ *
+ * Returns non-zero when the attribute contains a matching charset, keyword,
+ * language, mimeMediaType, name, text, URI, or URI scheme value.
+ *
+ * @since CUPS 1.7@
+ */
+
+int /* O - 1 on a match, 0 on no match */
+ippContainsString(
+ ipp_attribute_t *attr, /* I - Attribute */
+ const char *value) /* I - String value */
+{
+ int i; /* Looping var */
+ _ipp_value_t *avalue; /* Current attribute value */
+
+
+ DEBUG_printf(("ippContainsString(attr=%p, value=\"%s\")", attr, value));
+
+ /*
+ * Range check input...
+ */
+
+ if (!attr || !value)
+ {
+ DEBUG_puts("1ippContainsString: Returning 0 (bad input)");
+ return (0);
+ }
+
+ /*
+ * Compare...
+ */
+
+ DEBUG_printf(("1ippContainsString: attr %s, %s with %d values.",
+ attr->name, ippTagString(attr->value_tag),
+ attr->num_values));
+
+ switch (attr->value_tag & IPP_TAG_CUPS_MASK)
+ {
+ case IPP_TAG_CHARSET :
+ case IPP_TAG_KEYWORD :
+ case IPP_TAG_LANGUAGE :
+ case IPP_TAG_MIMETYPE :
+ case IPP_TAG_NAME :
+ case IPP_TAG_NAMELANG :
+ case IPP_TAG_TEXT :
+ case IPP_TAG_TEXTLANG :
+ case IPP_TAG_URI :
+ case IPP_TAG_URISCHEME :
+ for (i = attr->num_values, avalue = attr->values;
+ i > 0;
+ i --, avalue ++)
+ {
+ DEBUG_printf(("1ippContainsString: value[%d]=\"%s\"",
+ attr->num_values - i, avalue->string.text));
+
+ if (!strcmp(value, avalue->string.text))
+ {
+ DEBUG_puts("1ippContainsString: Returning 1 (match)");
+ return (1);
+ }
+ }
+
+ default :
+ break;
+ }
+
+ DEBUG_puts("1ippContainsString: Returning 0 (no match)");
+
+ return (0);
+}
+
+
+/*
* 'ippCopyAttribute()' - Copy an attribute.
*
* The specified attribute, @code attr@, is copied to the destination IPP message.
@@ -2250,7 +2602,7 @@ ippGetValueTag(ipp_attribute_t *attr) /* I - IPP attribute */
* Return the value...
*/
- return (attr->value_tag);
+ return (attr->value_tag & IPP_TAG_MASK);
}
@@ -2416,6 +2768,114 @@ ippNewRequest(ipp_op_t op) /* I - Operation code */
/*
+ * 'ippNewResponse()' - Allocate a new IPP response message.
+ *
+ * The new response message is initialized with the same version-number,
+ * request-id, attributes-charset, and attributes-natural-language as the
+ * provided request message. If the attributes-charset or
+ * attributes-natural-language attributes are missing from the request,
+ * "utf-8" and a value derived from the current locale are substituted,
+ * respectively.
+ *
+ * @since CUPS 1.7@
+ */
+
+ipp_t * /* O - IPP response message */
+ippNewResponse(ipp_t *request) /* I - IPP request message */
+{
+ ipp_t *response; /* IPP response message */
+ ipp_attribute_t *attr; /* Current attribute */
+
+
+ /*
+ * Range check input...
+ */
+
+ if (!request)
+ return (NULL);
+
+ /*
+ * Create a new IPP message...
+ */
+
+ if ((response = ippNew()) == NULL)
+ return (NULL);
+
+ /*
+ * Copy the request values over to the response...
+ */
+
+ response->request.status.version[0] = request->request.op.version[0];
+ response->request.status.version[1] = request->request.op.version[1];
+ response->request.status.request_id = request->request.op.request_id;
+
+ /*
+ * The first attribute MUST be attributes-charset...
+ */
+
+ attr = request->attrs;
+
+ if (attr && attr->name && !strcmp(attr->name, "attributes-charset") &&
+ attr->group_tag == IPP_TAG_OPERATION &&
+ attr->value_tag == IPP_TAG_CHARSET &&
+ attr->num_values == 1)
+ {
+ /*
+ * Copy charset from request...
+ */
+
+ ippAddString(response, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
+ "attributes-charset", NULL, attr->values[0].string.text);
+ }
+ else
+ {
+ /*
+ * Use "utf-8" as the default...
+ */
+
+ ippAddString(response, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
+ "attributes-charset", NULL, "utf-8");
+ }
+
+ /*
+ * Then attributes-natural-language...
+ */
+
+ if (attr)
+ attr = attr->next;
+
+ if (attr && attr->name &&
+ !strcmp(attr->name, "attributes-natural-language") &&
+ attr->group_tag == IPP_TAG_OPERATION &&
+ attr->value_tag == IPP_TAG_LANGUAGE &&
+ attr->num_values == 1)
+ {
+ /*
+ * Copy language from request...
+ */
+
+ ippAddString(response, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
+ "attributes-natural-language", NULL,
+ attr->values[0].string.text);
+ }
+ else
+ {
+ /*
+ * Use the language from the current locale...
+ */
+
+ cups_lang_t *language = cupsLangDefault();
+ /* Current locale */
+
+ ippAddString(response, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
+ "attributes-natural-language", NULL, language->language);
+ }
+
+ return (response);
+}
+
+
+/*
* 'ippRead()' - Read data for an IPP message from a HTTP connection.
*/
@@ -3211,7 +3671,7 @@ ippReadIO(void *src, /* I - Data source */
break;
default : /* Other unsupported values */
- if (tag == IPP_TAG_STRING && n > IPP_MAX_OCTETSTRING)
+ if (tag == IPP_TAG_STRING && n > IPP_MAX_LENGTH)
{
_cupsSetError(IPP_INTERNAL_ERROR,
_("IPP octetString length too large."), 1);
@@ -3271,8 +3731,8 @@ ippReadIO(void *src, /* I - Data source */
/*
* 'ippSetBoolean()' - Set a boolean value in an attribute.
*
- * The @code ipp@ parameter refers to the IPP message containing the attribute that was
- * previously created using the @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* The @code attr@ parameter may be modified as a result of setting the value.
*
@@ -3313,8 +3773,8 @@ ippSetBoolean(ipp_t *ipp, /* IO - IPP message */
/*
* 'ippSetCollection()' - Set a collection value in an attribute.
*
- * The @code ipp@ parameter refers to the IPP message containing the attribute that was
- * previously created using the @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* The @code attr@ parameter may be modified as a result of setting the value.
*
@@ -3362,8 +3822,8 @@ ippSetCollection(
/*
* 'ippSetDate()' - Set a date value in an attribute.
*
- * The @code ipp@ parameter refers to the IPP message containing the attribute that was
- * previously created using the @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* The @code attr@ parameter may be modified as a result of setting the value.
*
@@ -3404,8 +3864,8 @@ ippSetDate(ipp_t *ipp, /* IO - IPP message */
/*
* 'ippSetGroupTag()' - Set the group tag of an attribute.
*
- * The @code ipp@ parameter refers to the IPP message containing the attribute that was
- * previously created using the @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* The @code attr@ parameter may be modified as a result of setting the value.
*
@@ -3428,7 +3888,8 @@ ippSetGroupTag(
* Range check input - group tag must be 0x01 to 0x0F, per RFC 2911...
*/
- if (!ipp || !attr || group_tag < IPP_TAG_ZERO || group_tag == IPP_TAG_END ||
+ if (!ipp || !attr || !*attr ||
+ group_tag < IPP_TAG_ZERO || group_tag == IPP_TAG_END ||
group_tag >= IPP_TAG_UNSUPPORTED_VALUE)
return (0);
@@ -3445,8 +3906,8 @@ ippSetGroupTag(
/*
* 'ippSetInteger()' - Set an integer or enum value in an attribute.
*
- * The @code ipp@ parameter refers to the IPP message containing the attribute that was
- * previously created using the @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* The @code attr@ parameter may be modified as a result of setting the value.
*
@@ -3488,8 +3949,8 @@ ippSetInteger(ipp_t *ipp, /* IO - IPP message */
/*
* 'ippSetName()' - Set the name of an attribute.
*
- * The @code ipp@ parameter refers to the IPP message containing the attribute that was
- * previously created using the @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* The @code attr@ parameter may be modified as a result of setting the value.
*
@@ -3530,8 +3991,8 @@ ippSetName(ipp_t *ipp, /* IO - IPP message */
/*
* 'ippSetOperation()' - Set the operation ID in an IPP request message.
*
- * The @code ipp@ parameter refers to an IPP message previously created using the
- * @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* @since CUPS 1.6/OS X 10.8@
*/
@@ -3560,8 +4021,8 @@ ippSetOperation(ipp_t *ipp, /* I - IPP request message */
/*
* 'ippSetRange()' - Set a rangeOfInteger value in an attribute.
*
- * The @code ipp@ parameter refers to the IPP message containing the attribute that was
- * previously created using the @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* The @code attr@ parameter may be modified as a result of setting the value.
*
@@ -3606,8 +4067,8 @@ ippSetRange(ipp_t *ipp, /* IO - IPP message */
/*
* 'ippSetRequestId()' - Set the request ID in an IPP message.
*
- * The @code ipp@ parameter refers to an IPP message previously created using the
- * @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* The @code request_id@ parameter must be greater than 0.
*
@@ -3640,8 +4101,8 @@ ippSetRequestId(ipp_t *ipp, /* I - IPP message */
/*
* 'ippSetResolution()' - Set a resolution value in an attribute.
*
- * The @code ipp@ parameter refers to the IPP message containing the attribute that was
- * previously created using the @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* The @code attr@ parameter may be modified as a result of setting the value.
*
@@ -3718,8 +4179,8 @@ ippSetState(ipp_t *ipp, /* I - IPP message */
/*
* 'ippSetStatusCode()' - Set the status code in an IPP response or event message.
*
- * The @code ipp@ parameter refers to an IPP message previously created using the
- * @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* @since CUPS 1.6/OS X 10.8@
*/
@@ -3748,8 +4209,8 @@ ippSetStatusCode(ipp_t *ipp, /* I - IPP response or event message */
/*
* 'ippSetString()' - Set a string value in an attribute.
*
- * The @code ipp@ parameter refers to the IPP message containing the attribute that was
- * previously created using the @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* The @code attr@ parameter may be modified as a result of setting the value.
*
@@ -3808,10 +4269,196 @@ ippSetString(ipp_t *ipp, /* IO - IPP message */
/*
+ * 'ippSetStringf()' - Set a formatted string value of an attribute.
+ *
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
+ *
+ * The @code attr@ parameter may be modified as a result of setting the value.
+ *
+ * The @code element@ parameter specifies which value to set from 0 to
+ * @link ippGetCount(attr)@.
+ *
+ * The @code format@ parameter uses formatting characters compatible with the
+ * printf family of standard functions. Additional arguments follow it as
+ * needed. The formatted string is truncated as needed to the maximum length of
+ * the corresponding value type.
+ *
+ * @since CUPS 1.7@
+ */
+
+int /* O - 1 on success, 0 on failure */
+ippSetStringf(ipp_t *ipp, /* IO - IPP message */
+ ipp_attribute_t **attr, /* IO - IPP attribute */
+ int element, /* I - Value number (0-based) */
+ const char *format, /* I - Printf-style format string */
+ ...) /* I - Additional arguments as needed */
+{
+ int ret; /* Return value */
+ va_list ap; /* Pointer to additional arguments */
+
+
+ va_start(ap, format);
+ ret = ippSetStringfv(ipp, attr, element, format, ap);
+ va_end(ap);
+
+ return (ret);
+}
+
+
+/*
+ * 'ippSetStringf()' - Set a formatted string value of an attribute.
+ *
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
+ *
+ * The @code attr@ parameter may be modified as a result of setting the value.
+ *
+ * The @code element@ parameter specifies which value to set from 0 to
+ * @link ippGetCount(attr)@.
+ *
+ * The @code format@ parameter uses formatting characters compatible with the
+ * printf family of standard functions. Additional arguments follow it as
+ * needed. The formatted string is truncated as needed to the maximum length of
+ * the corresponding value type.
+ *
+ * @since CUPS 1.7@
+ */
+
+int /* O - 1 on success, 0 on failure */
+ippSetStringfv(ipp_t *ipp, /* IO - IPP message */
+ ipp_attribute_t **attr, /* IO - IPP attribute */
+ int element, /* I - Value number (0-based) */
+ const char *format, /* I - Printf-style format string */
+ va_list ap) /* I - Pointer to additional arguments */
+{
+ ipp_tag_t value_tag; /* Value tag */
+ char buffer[IPP_MAX_TEXT + 4];
+ /* Formatted text string */
+ ssize_t bytes, /* Length of formatted value */
+ max_bytes; /* Maximum number of bytes for value */
+
+
+ /*
+ * Range check input...
+ */
+
+ if (attr && *attr)
+ value_tag = (*attr)->value_tag & IPP_TAG_CUPS_MASK;
+ else
+ value_tag = IPP_TAG_ZERO;
+
+ if (!ipp || !attr || !*attr ||
+ (value_tag < IPP_TAG_TEXT && value_tag != IPP_TAG_TEXTLANG &&
+ value_tag != IPP_TAG_NAMELANG) || value_tag > IPP_TAG_MIMETYPE ||
+ !format || !ap)
+ return (0);
+
+ /*
+ * Format the string...
+ */
+
+ if (!strcmp(format, "%s"))
+ {
+ /*
+ * Optimize the simple case...
+ */
+
+ const char *s = va_arg(ap, char *);
+
+ if (!s)
+ s = "(null)";
+
+ bytes = strlen(s);
+ strlcpy(buffer, s, sizeof(buffer));
+ }
+ else
+ {
+ /*
+ * Do a full formatting of the message...
+ */
+
+ if ((bytes = vsnprintf(buffer, sizeof(buffer), format, ap)) < 0)
+ return (0);
+ }
+
+ /*
+ * Limit the length of the string...
+ */
+
+ switch (value_tag)
+ {
+ default :
+ case IPP_TAG_TEXT :
+ case IPP_TAG_TEXTLANG :
+ max_bytes = IPP_MAX_TEXT;
+ break;
+
+ case IPP_TAG_NAME :
+ case IPP_TAG_NAMELANG :
+ max_bytes = IPP_MAX_NAME;
+ break;
+
+ case IPP_TAG_CHARSET :
+ max_bytes = IPP_MAX_CHARSET;
+ break;
+
+ case IPP_TAG_KEYWORD :
+ max_bytes = IPP_MAX_KEYWORD;
+ break;
+
+ case IPP_TAG_LANGUAGE :
+ max_bytes = IPP_MAX_LANGUAGE;
+ break;
+
+ case IPP_TAG_MIMETYPE :
+ max_bytes = IPP_MAX_MIMETYPE;
+ break;
+
+ case IPP_TAG_URI :
+ max_bytes = IPP_MAX_URI;
+ break;
+
+ case IPP_TAG_URISCHEME :
+ max_bytes = IPP_MAX_URISCHEME;
+ break;
+ }
+
+ if (bytes >= max_bytes)
+ {
+ char *bufmax, /* Buffer at max_bytes */
+ *bufptr; /* Pointer into buffer */
+
+ bufptr = buffer + strlen(buffer) - 1;
+ bufmax = buffer + max_bytes - 1;
+
+ while (bufptr > bufmax)
+ {
+ if (*bufptr & 0x80)
+ {
+ while ((*bufptr & 0xc0) == 0x80 && bufptr > buffer)
+ bufptr --;
+ }
+
+ bufptr --;
+ }
+
+ *bufptr = '\0';
+ }
+
+ /*
+ * Set the formatted string and return...
+ */
+
+ return (ippSetString(ipp, attr, element, buffer));
+}
+
+
+/*
* 'ippSetValueTag()' - Set the value tag of an attribute.
*
- * The @code ipp@ parameter refers to the IPP message containing the attribute that was
- * previously created using the @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* The @code attr@ parameter may be modified as a result of setting the value.
*
@@ -3848,7 +4495,7 @@ ippSetValueTag(
* Range check input...
*/
- if (!ipp || !attr)
+ if (!ipp || !attr || !*attr)
return (0);
/*
@@ -3979,8 +4626,8 @@ ippSetValueTag(
/*
* 'ippSetVersion()' - Set the version number in an IPP message.
*
- * The @code ipp@ parameter refers to an IPP message previously created using the
- * @link ippNew@ or @link ippNewRequest@ functions.
+ * The @code ipp@ parameter refers to an IPP message previously created using
+ * the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
* The valid version numbers are currently 1.0, 1.1, 2.0, 2.1, and 2.2.
*
diff --git a/cups/ipp.h b/cups/ipp.h
index 2118dd353..65e4f285a 100644
--- a/cups/ipp.h
+++ b/cups/ipp.h
@@ -73,14 +73,22 @@ extern "C" {
typedef enum ipp_dstate_e /**** Document states ****/
{
- IPP_DOCUMENT_PENDING = 3,
- IPP_DOCUMENT_PROCESSING = 5,
- IPP_DOCUMENT_CANCELED = 7,
- IPP_DOCUMENT_ABORTED,
- IPP_DOCUMENT_COMPLETED
+ IPP_DOCUMENT_PENDING = 3, /* Document is pending */
+ IPP_DOCUMENT_PROCESSING = 5, /* Document is processing */
+ IPP_DOCUMENT_CANCELED = 7, /* Document is canceled */
+ IPP_DOCUMENT_ABORTED, /* Document is aborted */
+ IPP_DOCUMENT_COMPLETED /* Document is completed */
+
+# ifndef _CUPS_NO_DEPRECATED
+# define IPP_DOCUMENT_PENDING IPP_DSTATE_PENDING
+# define IPP_DOCUMENT_PROCESSING IPP_DSTATE_PROCESSING
+# define IPP_DOCUMENT_CANCELED IPP_DSTATE_CANCELED
+# define IPP_DOCUMENT_ABORTED IPP_DSTATE_ABORTED
+# define IPP_DOCUMENT_COMPLETED IPP_DSTATE_COMPLETED
+# endif /* !_CUPS_NO_DEPRECATED */
} ipp_dstate_t;
-typedef enum ipp_finish_e /**** Finishings ****/
+typedef enum ipp_finishings_e /**** Finishings ****/
{
IPP_FINISHINGS_NONE = 3, /* No finishing */
IPP_FINISHINGS_STAPLE, /* Staple (any location) */
@@ -113,126 +121,259 @@ typedef enum ipp_finish_e /**** Finishings ****/
IPP_FINISHINGS_TRIM_AFTER_PAGES = 60, /* Trim output after each page */
IPP_FINISHINGS_TRIM_AFTER_DOCUMENTS, /* Trim output after each document */
IPP_FINISHINGS_TRIM_AFTER_COPIES, /* Trim output after each copy */
- IPP_FINISHINGS_TRIM_AFTER_JOB /* Trim output after job */
-} ipp_finish_t;
+ IPP_FINISHINGS_TRIM_AFTER_JOB, /* Trim output after job */
+
+ /* Proposed extensions for finishings */
+ IPP_FINISHINGS_CUPS_PUNCH_TOP_LEFT = 0x40000046,
+ /* Punch 1 hole top left */
+ IPP_FINISHINGS_CUPS_PUNCH_BOTTOM_LEFT,/* Punch 1 hole bottom left */
+ IPP_FINISHINGS_CUPS_PUNCH_TOP_RIGHT, /* Punch 1 hole top right */
+ IPP_FINISHINGS_CUPS_PUNCH_BOTTOM_RIGHT,
+ /* Punch 1 hole bottom right */
+ IPP_FINISHINGS_CUPS_PUNCH_DUAL_LEFT, /* Punch 2 holes left side */
+ IPP_FINISHINGS_CUPS_PUNCH_DUAL_TOP, /* Punch 2 holes top edge */
+ IPP_FINISHINGS_CUPS_PUNCH_DUAL_RIGHT, /* Punch 2 holes right side */
+ IPP_FINISHINGS_CUPS_PUNCH_DUAL_BOTTOM,/* Punch 2 holes bottom edge */
+ IPP_FINISHINGS_CUPS_PUNCH_TRIPLE_LEFT,/* Punch 3 holes left side */
+ IPP_FINISHINGS_CUPS_PUNCH_TRIPLE_TOP, /* Punch 3 holes top edge */
+ IPP_FINISHINGS_CUPS_PUNCH_TRIPLE_RIGHT,
+ /* Punch 3 holes right side */
+ IPP_FINISHINGS_CUPS_PUNCH_TRIPLE_BOTTOM,
+ /* Punch 3 holes bottom edge */
+ IPP_FINISHINGS_CUPS_PUNCH_QUAD_LEFT, /* Punch 4 holes left side */
+ IPP_FINISHINGS_CUPS_PUNCH_QUAD_TOP, /* Punch 4 holes top edge */
+ IPP_FINISHINGS_CUPS_PUNCH_QUAD_RIGHT, /* Punch 4 holes right side */
+ IPP_FINISHINGS_CUPS_PUNCH_QUAD_BOTTOM /* Punch 4 holes bottom edge */
+} ipp_finishings_t;
+# ifndef _CUPS_NO_DEPRECATED
+typedef enum ipp_finishings_e ipp_finish_t;
+# endif /* !_CUPS_NO_DEPRECATED */
typedef enum ipp_jcollate_e /**** Job collation types ****/
{
- IPP_JOB_UNCOLLATED_SHEETS = 3,
- IPP_JOB_COLLATED_DOCUMENTS,
- IPP_JOB_UNCOLLATED_DOCUMENTS
+ IPP_JCOLLATE_UNCOLLATED_SHEETS = 3,
+ IPP_JCOLLATE_COLLATED_DOCUMENTS,
+ IPP_JCOLLATE_UNCOLLATED_DOCUMENTS
+
+# ifndef _CUPS_NO_DEPRECATED
+# define IPP_JOB_UNCOLLATED_SHEETS IPP_JCOLLATE_UNCOLLATED_SHEETS
+# define IPP_JOB_COLLATED_DOCUMENTS IPP_JCOLLATE_COLLATED_DOCUMENTS
+# define IPP_JOB_UNCOLLATED_DOCUMENTS IPP_JCOLLATE_UNCOLLATED_DOCUMENTS
+# endif /* !_CUPS_NO_DEPRECATED */
} ipp_jcollate_t;
typedef enum ipp_jstate_e /**** Job states ****/
{
- IPP_JOB_PENDING = 3, /* Job is waiting to be printed */
- IPP_JOB_HELD, /* Job is held for printing */
- IPP_JOB_PROCESSING, /* Job is currently printing */
- IPP_JOB_STOPPED, /* Job has been stopped */
- IPP_JOB_CANCELED, /* Job has been canceled */
- IPP_JOB_ABORTED, /* Job has aborted due to error */
- IPP_JOB_COMPLETED /* Job has completed successfully */
+ IPP_JSTATE_PENDING = 3, /* Job is waiting to be printed */
+ IPP_JSTATE_HELD, /* Job is held for printing */
+ IPP_JSTATE_PROCESSING, /* Job is currently printing */
+ IPP_JSTATE_STOPPED, /* Job has been stopped */
+ IPP_JSTATE_CANCELED, /* Job has been canceled */
+ IPP_JSTATE_ABORTED, /* Job has aborted due to error */
+ IPP_JSTATE_COMPLETED /* Job has completed successfully */
+
+# ifndef _CUPS_NO_DEPRECATED
+# define IPP_JOB_PENDING IPP_JSTATE_PENDING
+# define IPP_JOB_HELD IPP_JSTATE_HELD
+# define IPP_JOB_PROCESSING IPP_JSTATE_PROCESSING
+# define IPP_JOB_STOPPED IPP_JSTATE_STOPPED
+# define IPP_JOB_CANCELED IPP_JSTATE_CANCELED
+# define IPP_JOB_ABORTED IPP_JSTATE_ABORTED
+# define IPP_JOB_COMPLETED IPP_JSTATE_COMPLETED
/* Legacy name for canceled state */
-#define IPP_JOB_CANCELLED IPP_JOB_CANCELED
+# define IPP_JOB_CANCELLED IPP_JSTATE_CANCELED
+# endif /* !_CUPS_NO_DEPRECATED */
} ipp_jstate_t;
typedef enum ipp_op_e /**** IPP operations ****/
{
IPP_OP_CUPS_INVALID = -1, /* Invalid operation name for @link ippOpValue@ */
- IPP_PRINT_JOB = 0x0002, /* Print a single file */
- IPP_PRINT_URI, /* Print a single URL @private@ */
- IPP_VALIDATE_JOB, /* Validate job options */
- IPP_CREATE_JOB, /* Create an empty print job */
- IPP_SEND_DOCUMENT, /* Add a file to a job */
- IPP_SEND_URI, /* Add a URL to a job @private@ */
- IPP_CANCEL_JOB, /* Cancel a job */
- IPP_GET_JOB_ATTRIBUTES, /* Get job attributes */
- IPP_GET_JOBS, /* Get a list of jobs */
- IPP_GET_PRINTER_ATTRIBUTES, /* Get printer attributes */
- IPP_HOLD_JOB, /* Hold a job for printing */
- IPP_RELEASE_JOB, /* Release a job for printing */
- IPP_RESTART_JOB, /* Reprint a job */
- IPP_PAUSE_PRINTER = 0x0010, /* Stop a printer */
- IPP_RESUME_PRINTER, /* Start a printer */
- IPP_PURGE_JOBS, /* Cancel all jobs */
- IPP_SET_PRINTER_ATTRIBUTES, /* Set printer attributes @private@ */
- IPP_SET_JOB_ATTRIBUTES, /* Set job attributes */
- IPP_GET_PRINTER_SUPPORTED_VALUES, /* Get supported attribute values */
- IPP_CREATE_PRINTER_SUBSCRIPTION, /* Create a printer subscription @since CUPS 1.2/OS X 10.5@ */
- IPP_CREATE_JOB_SUBSCRIPTION, /* Create a job subscription @since CUPS 1.2/OS X 10.5@ */
- IPP_GET_SUBSCRIPTION_ATTRIBUTES, /* Get subscription attributes @since CUPS 1.2/OS X 10.5@ */
- IPP_GET_SUBSCRIPTIONS, /* Get list of subscriptions @since CUPS 1.2/OS X 10.5@ */
- IPP_RENEW_SUBSCRIPTION, /* Renew a printer subscription @since CUPS 1.2/OS X 10.5@ */
- IPP_CANCEL_SUBSCRIPTION, /* Cancel a subscription @since CUPS 1.2/OS X 10.5@ */
- IPP_GET_NOTIFICATIONS, /* Get notification events @since CUPS 1.2/OS X 10.5@ */
- IPP_SEND_NOTIFICATIONS, /* Send notification events @private@ */
- IPP_GET_RESOURCE_ATTRIBUTES, /* Get resource attributes @private@ */
- IPP_GET_RESOURCE_DATA, /* Get resource data @private@ */
- IPP_GET_RESOURCES, /* Get list of resources @private@ */
- IPP_GET_PRINT_SUPPORT_FILES, /* Get printer support files @private@ */
- IPP_ENABLE_PRINTER, /* Start a printer */
- IPP_DISABLE_PRINTER, /* Stop a printer */
- IPP_PAUSE_PRINTER_AFTER_CURRENT_JOB, /* Stop printer after the current job @private@ */
- IPP_HOLD_NEW_JOBS, /* Hold new jobs @private@ */
- IPP_RELEASE_HELD_NEW_JOBS, /* Release new jobs @private@ */
- IPP_DEACTIVATE_PRINTER, /* Stop a printer @private@ */
- IPP_ACTIVATE_PRINTER, /* Start a printer @private@ */
- IPP_RESTART_PRINTER, /* Restart a printer @private@ */
- IPP_SHUTDOWN_PRINTER, /* Turn a printer off @private@ */
- IPP_STARTUP_PRINTER, /* Turn a printer on @private@ */
- IPP_REPROCESS_JOB, /* Reprint a job @private@ */
- IPP_CANCEL_CURRENT_JOB, /* Cancel the current job @private@ */
- IPP_SUSPEND_CURRENT_JOB, /* Suspend the current job @private@ */
- IPP_RESUME_JOB, /* Resume the current job @private@ */
- IPP_PROMOTE_JOB, /* Promote a job to print sooner @private@ */
- IPP_SCHEDULE_JOB_AFTER, /* Schedule a job to print after another @private@ */
- IPP_CANCEL_DOCUMENT = 0x0033, /* Cancel-Document @private@ */
- IPP_GET_DOCUMENT_ATTRIBUTES, /* Get-Document-Attributes @private@ */
- IPP_GET_DOCUMENTS, /* Get-Documents @private@ */
- IPP_DELETE_DOCUMENT, /* Delete-Document @private@ */
- IPP_SET_DOCUMENT_ATTRIBUTES, /* Set-Document-Attributes @private@ */
- IPP_CANCEL_JOBS, /* Cancel-Jobs */
- IPP_CANCEL_MY_JOBS, /* Cancel-My-Jobs */
- IPP_RESUBMIT_JOB, /* Resubmit-Job */
- IPP_CLOSE_JOB, /* Close-Job */
- IPP_IDENTIFY_PRINTER, /* Identify-Printer (proposed IPP JPS3) */
- IPP_VALIDATE_DOCUMENT, /* Validate-Document (proposed IPP JPS3) */
- IPP_PRIVATE = 0x4000, /* Reserved @private@ */
- CUPS_GET_DEFAULT, /* Get the default printer */
- CUPS_GET_PRINTERS, /* Get a list of printers and/or classes */
- CUPS_ADD_MODIFY_PRINTER, /* Add or modify a printer */
- CUPS_DELETE_PRINTER, /* Delete a printer */
- CUPS_GET_CLASSES, /* Get a list of classes @deprecated@ */
- CUPS_ADD_MODIFY_CLASS, /* Add or modify a class */
- CUPS_DELETE_CLASS, /* Delete a class */
- CUPS_ACCEPT_JOBS, /* Accept new jobs on a printer */
- CUPS_REJECT_JOBS, /* Reject new jobs on a printer */
- CUPS_SET_DEFAULT, /* Set the default printer */
- CUPS_GET_DEVICES, /* Get a list of supported devices */
- CUPS_GET_PPDS, /* Get a list of supported drivers */
- CUPS_MOVE_JOB, /* Move a job to a different printer */
- CUPS_AUTHENTICATE_JOB, /* Authenticate a job @since CUPS 1.2/OS X 10.5@ */
- CUPS_GET_PPD, /* Get a PPD file @since CUPS 1.3/OS X 10.5@ */
- CUPS_GET_DOCUMENT = 0x4027 /* Get a document file @since CUPS 1.4/OS X 10.6@ */
-
- /* Legacy names for the add operations */
-#define CUPS_ADD_PRINTER CUPS_ADD_MODIFY_PRINTER
-#define CUPS_ADD_CLASS CUPS_ADD_MODIFY_CLASS
+ IPP_OP_CUPS_NONE = 0, /* No operation @private@ */
+ IPP_OP_PRINT_JOB = 0x0002, /* Print a single file */
+ IPP_OP_PRINT_URI, /* Print a single URL @private@ */
+ IPP_OP_VALIDATE_JOB, /* Validate job options */
+ IPP_OP_CREATE_JOB, /* Create an empty print job */
+ IPP_OP_SEND_DOCUMENT, /* Add a file to a job */
+ IPP_OP_SEND_URI, /* Add a URL to a job @private@ */
+ IPP_OP_CANCEL_JOB, /* Cancel a job */
+ IPP_OP_GET_JOB_ATTRIBUTES, /* Get job attributes */
+ IPP_OP_GET_JOBS, /* Get a list of jobs */
+ IPP_OP_GET_PRINTER_ATTRIBUTES, /* Get printer attributes */
+ IPP_OP_HOLD_JOB, /* Hold a job for printing */
+ IPP_OP_RELEASE_JOB, /* Release a job for printing */
+ IPP_OP_RESTART_JOB, /* Reprint a job */
+ IPP_OP_PAUSE_PRINTER = 0x0010, /* Stop a printer */
+ IPP_OP_RESUME_PRINTER, /* Start a printer */
+ IPP_OP_PURGE_JOBS, /* Cancel all jobs */
+ IPP_OP_SET_PRINTER_ATTRIBUTES, /* Set printer attributes @private@ */
+ IPP_OP_SET_JOB_ATTRIBUTES, /* Set job attributes */
+ IPP_OP_GET_PRINTER_SUPPORTED_VALUES, /* Get supported attribute values */
+ IPP_OP_CREATE_PRINTER_SUBSCRIPTION, /* Create a printer subscription @since CUPS 1.2/OS X 10.5@ */
+ IPP_OP_CREATE_JOB_SUBSCRIPTION, /* Create a job subscription @since CUPS 1.2/OS X 10.5@ */
+ IPP_OP_GET_SUBSCRIPTION_ATTRIBUTES, /* Get subscription attributes @since CUPS 1.2/OS X 10.5@ */
+ IPP_OP_GET_SUBSCRIPTIONS, /* Get list of subscriptions @since CUPS 1.2/OS X 10.5@ */
+ IPP_OP_RENEW_SUBSCRIPTION, /* Renew a printer subscription @since CUPS 1.2/OS X 10.5@ */
+ IPP_OP_CANCEL_SUBSCRIPTION, /* Cancel a subscription @since CUPS 1.2/OS X 10.5@ */
+ IPP_OP_GET_NOTIFICATIONS, /* Get notification events @since CUPS 1.2/OS X 10.5@ */
+ IPP_OP_SEND_NOTIFICATIONS, /* Send notification events @private@ */
+ IPP_OP_GET_RESOURCE_ATTRIBUTES, /* Get resource attributes @private@ */
+ IPP_OP_GET_RESOURCE_DATA, /* Get resource data @private@ */
+ IPP_OP_GET_RESOURCES, /* Get list of resources @private@ */
+ IPP_OP_GET_PRINT_SUPPORT_FILES, /* Get printer support files @private@ */
+ IPP_OP_ENABLE_PRINTER, /* Start a printer */
+ IPP_OP_DISABLE_PRINTER, /* Stop a printer */
+ IPP_OP_PAUSE_PRINTER_AFTER_CURRENT_JOB,
+ /* Stop printer after the current job @private@ */
+ IPP_OP_HOLD_NEW_JOBS, /* Hold new jobs @private@ */
+ IPP_OP_RELEASE_HELD_NEW_JOBS, /* Release new jobs @private@ */
+ IPP_OP_DEACTIVATE_PRINTER, /* Stop a printer @private@ */
+ IPP_OP_ACTIVATE_PRINTER, /* Start a printer @private@ */
+ IPP_OP_RESTART_PRINTER, /* Restart a printer @private@ */
+ IPP_OP_SHUTDOWN_PRINTER, /* Turn a printer off @private@ */
+ IPP_OP_STARTUP_PRINTER, /* Turn a printer on @private@ */
+ IPP_OP_REPROCESS_JOB, /* Reprint a job @private@ */
+ IPP_OP_CANCEL_CURRENT_JOB, /* Cancel the current job @private@ */
+ IPP_OP_SUSPEND_CURRENT_JOB, /* Suspend the current job @private@ */
+ IPP_OP_RESUME_JOB, /* Resume the current job @private@ */
+ IPP_OP_PROMOTE_JOB, /* Promote a job to print sooner @private@ */
+ IPP_OP_SCHEDULE_JOB_AFTER, /* Schedule a job to print after another @private@ */
+ IPP_OP_CANCEL_DOCUMENT = 0x0033, /* Cancel-Document @private@ */
+ IPP_OP_GET_DOCUMENT_ATTRIBUTES, /* Get-Document-Attributes @private@ */
+ IPP_OP_GET_DOCUMENTS, /* Get-Documents @private@ */
+ IPP_OP_DELETE_DOCUMENT, /* Delete-Document @private@ */
+ IPP_OP_SET_DOCUMENT_ATTRIBUTES, /* Set-Document-Attributes @private@ */
+ IPP_OP_CANCEL_JOBS, /* Cancel-Jobs */
+ IPP_OP_CANCEL_MY_JOBS, /* Cancel-My-Jobs */
+ IPP_OP_RESUBMIT_JOB, /* Resubmit-Job */
+ IPP_OP_CLOSE_JOB, /* Close-Job */
+ IPP_OP_IDENTIFY_PRINTER, /* Identify-Printer (proposed IPP JPS3) */
+ IPP_OP_VALIDATE_DOCUMENT, /* Validate-Document (proposed IPP JPS3) */
+ IPP_OP_PRIVATE = 0x4000, /* Reserved @private@ */
+ IPP_OP_CUPS_GET_DEFAULT, /* Get the default printer */
+ IPP_OP_CUPS_GET_PRINTERS, /* Get a list of printers and/or classes */
+ IPP_OP_CUPS_ADD_MODIFY_PRINTER, /* Add or modify a printer */
+ IPP_OP_CUPS_DELETE_PRINTER, /* Delete a printer */
+ IPP_OP_CUPS_GET_CLASSES, /* Get a list of classes @deprecated@ */
+ IPP_OP_CUPS_ADD_MODIFY_CLASS, /* Add or modify a class */
+ IPP_OP_CUPS_DELETE_CLASS, /* Delete a class */
+ IPP_OP_CUPS_ACCEPT_JOBS, /* Accept new jobs on a printer */
+ IPP_OP_CUPS_REJECT_JOBS, /* Reject new jobs on a printer */
+ IPP_OP_CUPS_SET_DEFAULT, /* Set the default printer */
+ IPP_OP_CUPS_GET_DEVICES, /* Get a list of supported devices */
+ IPP_OP_CUPS_GET_PPDS, /* Get a list of supported drivers */
+ IPP_OP_CUPS_MOVE_JOB, /* Move a job to a different printer */
+ IPP_OP_CUPS_AUTHENTICATE_JOB, /* Authenticate a job @since CUPS 1.2/OS X 10.5@ */
+ IPP_OP_CUPS_GET_PPD, /* Get a PPD file @since CUPS 1.3/OS X 10.5@ */
+ IPP_OP_CUPS_GET_DOCUMENT = 0x4027 /* Get a document file @since CUPS 1.4/OS X 10.6@ */
+
+# ifndef _CUPS_NO_DEPRECATED
+# define IPP_PRINT_JOB IPP_OP_PRINT_JOB
+# define IPP_PRINT_URI IPP_OP_PRINT_URI
+# define IPP_VALIDATE_JOB IPP_OP_VALIDATE_JOB
+# define IPP_CREATE_JOB IPP_OP_CREATE_JOB
+# define IPP_SEND_DOCUMENT IPP_OP_SEND_DOCUMENT
+# define IPP_SEND_URI IPP_OP_SEND_URI
+# define IPP_CANCEL_JOB IPP_OP_CANCEL_JOB
+# define IPP_GET_JOB_ATTRIBUTES IPP_OP_GET_JOB_ATTRIBUTES
+# define IPP_GET_JOBS IPP_OP_GET_JOBS
+# define IPP_GET_PRINTER_ATTRIBUTES IPP_OP_GET_PRINTER_ATTRIBUTES
+# define IPP_HOLD_JOB IPP_OP_HOLD_JOB
+# define IPP_RELEASE_JOB IPP_OP_RELEASE_JOB
+# define IPP_RESTART_JOB IPP_OP_RESTART_JOB
+# define IPP_PAUSE_PRINTER IPP_OP_PAUSE_PRINTER
+# define IPP_RESUME_PRINTER IPP_OP_RESUME_PRINTER
+# define IPP_PURGE_JOBS IPP_OP_PURGE_JOBS
+# define IPP_SET_PRINTER_ATTRIBUTES IPP_OP_SET_PRINTER_ATTRIBUTES
+# define IPP_SET_JOB_ATTRIBUTES IPP_OP_SET_JOB_ATTRIBUTES
+# define IPP_GET_PRINTER_SUPPORTED_VALUES IPP_OP_GET_PRINTER_SUPPORTED_VALUES
+# define IPP_CREATE_PRINTER_SUBSCRIPTION IPP_OP_CREATE_PRINTER_SUBSCRIPTION
+# define IPP_CREATE_JOB_SUBSCRIPTION IPP_OP_CREATE_JOB_SUBSCRIPTION
+# define IPP_GET_SUBSCRIPTION_ATTRIBUTES IPP_OP_GET_SUBSCRIPTION_ATTRIBUTES
+# define IPP_GET_SUBSCRIPTIONS IPP_OP_GET_SUBSCRIPTIONS
+# define IPP_RENEW_SUBSCRIPTION IPP_OP_RENEW_SUBSCRIPTION
+# define IPP_CANCEL_SUBSCRIPTION IPP_OP_CANCEL_SUBSCRIPTION
+# define IPP_GET_NOTIFICATIONS IPP_OP_GET_NOTIFICATIONS
+# define IPP_SEND_NOTIFICATIONS IPP_OP_SEND_NOTIFICATIONS
+# define IPP_GET_RESOURCE_ATTRIBUTES IPP_OP_GET_RESOURCE_ATTRIBUTES
+# define IPP_GET_RESOURCE_DATA IPP_OP_GET_RESOURCE_DATA
+# define IPP_GET_RESOURCES IPP_OP_GET_RESOURCES
+# define IPP_GET_PRINT_SUPPORT_FILES IPP_OP_GET_PRINT_SUPPORT_FILES
+# define IPP_ENABLE_PRINTER IPP_OP_ENABLE_PRINTER
+# define IPP_DISABLE_PRINTER IPP_OP_DISABLE_PRINTER
+# define IPP_PAUSE_PRINTER_AFTER_CURRENT_JOB IPP_OP_PAUSE_PRINTER_AFTER_CURRENT_JOB
+# define IPP_HOLD_NEW_JOBS IPP_OP_HOLD_NEW_JOBS
+# define IPP_RELEASE_HELD_NEW_JOBS IPP_OP_RELEASE_HELD_NEW_JOBS
+# define IPP_DEACTIVATE_PRINTER IPP_OP_DEACTIVATE_PRINTER
+# define IPP_ACTIVATE_PRINTER IPP_OP_ACTIVATE_PRINTER
+# define IPP_RESTART_PRINTER IPP_OP_RESTART_PRINTER
+# define IPP_SHUTDOWN_PRINTER IPP_OP_SHUTDOWN_PRINTER
+# define IPP_STARTUP_PRINTER IPP_OP_STARTUP_PRINTER
+# define IPP_REPROCESS_JOB IPP_OP_REPROCESS_JOB
+# define IPP_CANCEL_CURRENT_JOB IPP_OP_CANCEL_CURRENT_JOB
+# define IPP_SUSPEND_CURRENT_JOB IPP_OP_SUSPEND_CURRENT_JOB
+# define IPP_RESUME_JOB IPP_OP_RESUME_JOB
+# define IPP_PROMOTE_JOB IPP_OP_PROMOTE_JOB
+# define IPP_SCHEDULE_JOB_AFTER IPP_OP_SCHEDULE_JOB_AFTER
+# define IPP_CANCEL_DOCUMENT IPP_OP_CANCEL_DOCUMENT
+# define IPP_GET_DOCUMENT_ATTRIBUTES IPP_OP_GET_DOCUMENT_ATTRIBUTES
+# define IPP_GET_DOCUMENTS IPP_OP_GET_DOCUMENTS
+# define IPP_DELETE_DOCUMENT IPP_OP_DELETE_DOCUMENT
+# define IPP_SET_DOCUMENT_ATTRIBUTES IPP_OP_SET_DOCUMENT_ATTRIBUTES
+# define IPP_CANCEL_JOBS IPP_OP_CANCEL_JOBS
+# define IPP_CANCEL_MY_JOBS IPP_OP_CANCEL_MY_JOBS
+# define IPP_RESUBMIT_JOB IPP_OP_RESUBMIT_JOB
+# define IPP_CLOSE_JOB IPP_OP_CLOSE_JOB
+# define IPP_IDENTIFY_PRINTER IPP_OP_IDENTIFY_PRINTER
+# define IPP_VALIDATE_DOCUMENT IPP_OP_VALIDATE_DOCUMENT
+# define IPP_PRIVATE IPP_OP_PRIVATE
+# define CUPS_GET_DEFAULT IPP_OP_CUPS_GET_DEFAULT
+# define CUPS_GET_PRINTERS IPP_OP_CUPS_GET_PRINTERS
+# define CUPS_ADD_MODIFY_PRINTER IPP_OP_CUPS_ADD_MODIFY_PRINTER
+# define CUPS_DELETE_PRINTER IPP_OP_CUPS_DELETE_PRINTER
+# define CUPS_GET_CLASSES IPP_OP_CUPS_GET_CLASSES
+# define CUPS_ADD_MODIFY_CLASS IPP_OP_CUPS_ADD_MODIFY_CLASS
+# define CUPS_DELETE_CLASS IPP_OP_CUPS_DELETE_CLASS
+# define CUPS_ACCEPT_JOBS IPP_OP_CUPS_ACCEPT_JOBS
+# define CUPS_REJECT_JOBS IPP_OP_CUPS_REJECT_JOBS
+# define CUPS_SET_DEFAULT IPP_OP_CUPS_SET_DEFAULT
+# define CUPS_GET_DEVICES IPP_OP_CUPS_GET_DEVICES
+# define CUPS_GET_PPDS IPP_OP_CUPS_GET_PPDS
+# define CUPS_MOVE_JOB IPP_OP_CUPS_MOVE_JOB
+# define CUPS_AUTHENTICATE_JOB IPP_OP_CUPS_AUTHENTICATE_JOB
+# define CUPS_GET_PPD IPP_OP_CUPS_GET_PPD
+# define CUPS_GET_DOCUMENT IPP_OP_CUPS_GET_DOCUMENT
+ /* Legacy names */
+# define CUPS_ADD_PRINTER IPP_OP_CUPS_ADD_MODIFY_PRINTER
+# define CUPS_ADD_CLASS IPP_OP_CUPS_ADD_MODIFY_CLASS
+# endif /* !_CUPS_NO_DEPRECATED */
} ipp_op_t;
typedef enum ipp_orient_e /**** Orientation values ****/
{
- IPP_PORTRAIT = 3, /* No rotation */
- IPP_LANDSCAPE, /* 90 degrees counter-clockwise */
- IPP_REVERSE_LANDSCAPE, /* 90 degrees clockwise */
- IPP_REVERSE_PORTRAIT /* 180 degrees */
+ IPP_ORIENT_PORTRAIT = 3, /* No rotation */
+ IPP_ORIENT_LANDSCAPE, /* 90 degrees counter-clockwise */
+ IPP_ORIENT_REVERSE_LANDSCAPE, /* 90 degrees clockwise */
+ IPP_ORIENT_REVERSE_PORTRAIT /* 180 degrees */
+
+# ifndef _CUPS_NO_DEPRECATED
+# define IPP_PORTRAIT IPP_ORIENT_PORTRAIT
+# define IPP_LANDSCAPE IPP_ORIENT_LANDSCAPE
+# define IPP_REVERSE_LANDSCAPE IPP_ORIENT_REVERSE_LANDSCAPE
+# define IPP_REVERSE_PORTRAIT IPP_ORIENT_REVERSE_PORTRAIT
+# endif /* !_CUPS_NO_DEPRECATED */
} ipp_orient_t;
typedef enum ipp_pstate_e /**** Printer states ****/
{
- IPP_PRINTER_IDLE = 3, /* Printer is idle */
- IPP_PRINTER_PROCESSING, /* Printer is working */
- IPP_PRINTER_STOPPED /* Printer is stopped */
+ IPP_PSTATE_IDLE = 3, /* Printer is idle */
+ IPP_PSTATE_PROCESSING, /* Printer is working */
+ IPP_PSTATE_STOPPED /* Printer is stopped */
+
+# ifndef _CUPS_NO_DEPRECATED
+# define IPP_PRINTER_IDLE IPP_PSTATE_IDLE
+# define IPP_PRINTER_PROCESSING IPP_PSTATE_PROCESSING
+# define IPP_PRINTER_STOPPED IPP_PSTATE_STOPPED
+# endif /* _CUPS_NO_DEPRECATED */
} ipp_pstate_t;
typedef enum ipp_quality_e /**** Qualities ****/
@@ -250,76 +391,163 @@ typedef enum ipp_res_e /**** Resolution units ****/
typedef enum ipp_state_e /**** IPP states ****/
{
- IPP_ERROR = -1, /* An error occurred */
- IPP_IDLE, /* Nothing is happening/request completed */
- IPP_HEADER, /* The request header needs to be sent/received */
- IPP_ATTRIBUTE, /* One or more attributes need to be sent/received */
- IPP_DATA /* IPP request data needs to be sent/received */
+ IPP_STATE_ERROR = -1, /* An error occurred */
+ IPP_STATE_IDLE, /* Nothing is happening/request completed */
+ IPP_STATE_HEADER, /* The request header needs to be sent/received */
+ IPP_STATE_ATTRIBUTE, /* One or more attributes need to be sent/received */
+ IPP_STATE_DATA /* IPP request data needs to be sent/received */
+
+# ifndef _CUPS_NO_DEPRECATED
+# define IPP_ERROR IPP_STATE_ERROR
+# define IPP_IDLE IPP_STATE_IDLE
+# define IPP_HEADER IPP_STATE_HEADER
+# define IPP_ATTRIBUTE IPP_STATE_ATTRIBUTE
+# define IPP_DATA IPP_STATE_DATA
+# endif /* !_CUPS_NO_DEPRECATED */
} ipp_state_t;
typedef enum ipp_status_e /**** IPP status codes ****/
{
IPP_STATUS_CUPS_INVALID = -1, /* Invalid status name for @link ippErrorValue@ */
- IPP_OK = 0x0000, /* successful-ok */
- IPP_OK_SUBST, /* successful-ok-ignored-or-substituted-attributes */
- IPP_OK_CONFLICT, /* successful-ok-conflicting-attributes */
- IPP_OK_IGNORED_SUBSCRIPTIONS, /* successful-ok-ignored-subscriptions */
- IPP_OK_IGNORED_NOTIFICATIONS, /* successful-ok-ignored-notifications @private@ */
- IPP_OK_TOO_MANY_EVENTS, /* successful-ok-too-many-events */
- IPP_OK_BUT_CANCEL_SUBSCRIPTION, /* successful-ok-but-cancel-subscription @private@ */
- IPP_OK_EVENTS_COMPLETE, /* successful-ok-events-complete */
- IPP_REDIRECTION_OTHER_SITE = 0x200, /* redirection-other-site @private@ */
- CUPS_SEE_OTHER = 0x280, /* cups-see-other */
- IPP_BAD_REQUEST = 0x0400, /* client-error-bad-request */
- IPP_FORBIDDEN, /* client-error-forbidden */
- IPP_NOT_AUTHENTICATED, /* client-error-not-authenticated */
- IPP_NOT_AUTHORIZED, /* client-error-not-authorized */
- IPP_NOT_POSSIBLE, /* client-error-not-possible */
- IPP_TIMEOUT, /* client-error-timeout */
- IPP_NOT_FOUND, /* client-error-not-found */
- IPP_GONE, /* client-error-gone */
- IPP_REQUEST_ENTITY, /* client-error-request-entity-too-large */
- IPP_REQUEST_VALUE, /* client-error-request-value-too-long */
- IPP_DOCUMENT_FORMAT, /* client-error-document-format-not-supported */
- IPP_ATTRIBUTES, /* client-error-attributes-or-values-not-supported */
- IPP_URI_SCHEME, /* client-error-uri-scheme-not-supported */
- IPP_CHARSET, /* client-error-charset-not-supported */
- IPP_CONFLICT, /* client-error-conflicting-attributes */
- IPP_COMPRESSION_NOT_SUPPORTED, /* client-error-compression-not-supported */
- IPP_COMPRESSION_ERROR, /* client-error-compression-error */
- IPP_DOCUMENT_FORMAT_ERROR, /* client-error-document-format-error */
- IPP_DOCUMENT_ACCESS_ERROR, /* client-error-document-access-error */
- IPP_ATTRIBUTES_NOT_SETTABLE, /* client-error-attributes-not-settable */
- IPP_IGNORED_ALL_SUBSCRIPTIONS, /* client-error-ignored-all-subscriptions */
- IPP_TOO_MANY_SUBSCRIPTIONS, /* client-error-too-many-subscriptions */
- IPP_IGNORED_ALL_NOTIFICATIONS, /* client-error-ignored-all-notifications @private@ */
- IPP_PRINT_SUPPORT_FILE_NOT_FOUND, /* client-error-print-support-file-not-found @private@ */
- IPP_DOCUMENT_PASSWORD_ERROR, /* client-error-document-password-error */
- IPP_DOCUMENT_PERMISSION_ERROR, /* client-error-document-permission-error */
- IPP_DOCUMENT_SECURITY_ERROR, /* client-error-document-security-error */
- IPP_DOCUMENT_UNPRINTABLE_ERROR, /* client-error-document-unprintable-error */
-
- IPP_INTERNAL_ERROR = 0x0500, /* server-error-internal-error */
- IPP_OPERATION_NOT_SUPPORTED, /* server-error-operation-not-supported */
- IPP_SERVICE_UNAVAILABLE, /* server-error-service-unavailable */
- IPP_VERSION_NOT_SUPPORTED, /* server-error-version-not-supported */
- IPP_DEVICE_ERROR, /* server-error-device-error */
- IPP_TEMPORARY_ERROR, /* server-error-temporary-error */
- IPP_NOT_ACCEPTING, /* server-error-not-accepting-jobs */
- IPP_PRINTER_BUSY, /* server-error-busy */
- IPP_ERROR_JOB_CANCELED, /* server-error-job-canceled */
- IPP_MULTIPLE_JOBS_NOT_SUPPORTED, /* server-error-multiple-document-jobs-not-supported */
- IPP_PRINTER_IS_DEACTIVATED, /* server-error-printer-is-deactivated */
- IPP_TOO_MANY_JOBS, /* server-error-too-many-jobs */
- IPP_TOO_MANY_DOCUMENTS, /* server-error-too-many-documents */
-
- IPP_AUTHENTICATION_CANCELED = 0x1000, /* Authentication canceled by user @since CUPS 1.5/OS X 10.7@ */
- IPP_PKI_ERROR, /* Error negotiating a secure connection @since CUPS 1.5/OS X 10.7@ */
- IPP_UPGRADE_REQUIRED /* TLS upgrade required */
-
- /* Legacy name for canceled status */
-#define IPP_ERROR_JOB_CANCELLED IPP_ERROR_JOB_CANCELED
-
+ IPP_STATUS_OK = 0x0000, /* successful-ok */
+ IPP_STATUS_OK_IGNORED_OR_SUBSTITUTED, /* successful-ok-ignored-or-substituted-attributes */
+ IPP_STATUS_OK_CONFLICTING, /* successful-ok-conflicting-attributes */
+ IPP_STATUS_OK_IGNORED_SUBSCRIPTIONS, /* successful-ok-ignored-subscriptions */
+ IPP_STATUS_OK_IGNORED_NOTIFICATIONS, /* successful-ok-ignored-notifications @private@ */
+ IPP_STATUS_OK_TOO_MANY_EVENTS, /* successful-ok-too-many-events */
+ IPP_STATUS_OK_BUT_CANCEL_SUBSCRIPTION,/* successful-ok-but-cancel-subscription @private@ */
+ IPP_STATUS_OK_EVENTS_COMPLETE, /* successful-ok-events-complete */
+ IPP_STATUS_REDIRECTION_OTHER_SITE = 0x0200,
+ /* redirection-other-site @private@ */
+ IPP_STATUS_CUPS_SEE_OTHER = 0x0280, /* cups-see-other */
+ IPP_STATUS_ERROR_BAD_REQUEST = 0x0400,/* client-error-bad-request */
+ IPP_STATUS_ERROR_FORBIDDEN, /* client-error-forbidden */
+ IPP_STATUS_ERROR_NOT_AUTHENTICATED, /* client-error-not-authenticated */
+ IPP_STATUS_ERROR_NOT_AUTHORIZED, /* client-error-not-authorized */
+ IPP_STATUS_ERROR_NOT_POSSIBLE, /* client-error-not-possible */
+ IPP_STATUS_ERROR_TIMEOUT, /* client-error-timeout */
+ IPP_STATUS_ERROR_NOT_FOUND, /* client-error-not-found */
+ IPP_STATUS_ERROR_GONE, /* client-error-gone */
+ IPP_STATUS_ERROR_REQUEST_ENTITY, /* client-error-request-entity-too-large */
+ IPP_STATUS_ERROR_REQUEST_VALUE, /* client-error-request-value-too-long */
+ IPP_STATUS_ERROR_DOCUMENT_FORMAT_NOT_SUPPORTED,
+ /* client-error-document-format-not-supported */
+ IPP_STATUS_ERROR_ATTRIBUTES_OR_VALUES,/* client-error-attributes-or-values-not-supported */
+ IPP_STATUS_ERROR_URI_SCHEME, /* client-error-uri-scheme-not-supported */
+ IPP_STATUS_ERROR_CHARSET, /* client-error-charset-not-supported */
+ IPP_STATUS_ERROR_CONFLICTING, /* client-error-conflicting-attributes */
+ IPP_STATUS_ERROR_COMPRESSION_NOT_SUPPORTED,
+ /* client-error-compression-not-supported */
+ IPP_STATUS_ERROR_COMPRESSION_ERROR, /* client-error-compression-error */
+ IPP_STATUS_ERROR_DOCUMENT_FORMAT_ERROR,
+ /* client-error-document-format-error */
+ IPP_STATUS_ERROR_DOCUMENT_ACCESS, /* client-error-document-access-error */
+ IPP_STATUS_ERROR_ATTRIBUTES_NOT_SETTABLE,
+ /* client-error-attributes-not-settable */
+ IPP_STATUS_ERROR_IGNORED_ALL_SUBSCRIPTIONS,
+ /* client-error-ignored-all-subscriptions */
+ IPP_STATUS_ERROR_TOO_MANY_SUBSCRIPTIONS,
+ /* client-error-too-many-subscriptions */
+ IPP_STATUS_ERROR_IGNORED_ALL_NOTIFICATIONS,
+ /* client-error-ignored-all-notifications @private@ */
+ IPP_STATUS_ERROR_PRINT_SUPPORT_FILE_NOT_FOUND,
+ /* client-error-print-support-file-not-found @private@ */
+ IPP_STATUS_ERROR_DOCUMENT_PASSWORD, /* client-error-document-password-error */
+ IPP_STATUS_ERROR_DOCUMENT_PERMISSION, /* client-error-document-permission-error */
+ IPP_STATUS_ERROR_DOCUMENT_SECURITY, /* client-error-document-security-error */
+ IPP_STATUS_ERROR_DOCUMENT_UNPRINTABLE,/* client-error-document-unprintable-error */
+
+ /* Proposed extensions for paid printing */
+ IPP_STATUS_ERROR_CUPS_ACCOUNT_INFO_NEEDED = 0x049C,
+ /* cups-error-account-info-needed @since CUPS 1.7@ */
+ IPP_STATUS_ERROR_CUPS_ACCOUNT_CLOSED, /* cups-error-account-closed @since CUPS 1.7@ */
+ IPP_STATUS_ERROR_CUPS_ACCOUNT_LIMIT_REACHED,
+ /* cups-error-account-limit-reached @since CUPS 1.7@ */
+ IPP_STATUS_ERROR_CUPS_ACCOUNT_AUTHORIZATION_FAILED,
+ /* cups-error-account-authorization-failed @since CUPS 1.7@ */
+
+ IPP_STATUS_ERROR_INTERNAL = 0x0500, /* server-error-internal-error */
+ IPP_STATUS_ERROR_OPERATION_NOT_SUPPORTED,
+ /* server-error-operation-not-supported */
+ IPP_STATUS_ERROR_SERVICE_UNAVAILABLE, /* server-error-service-unavailable */
+ IPP_STATUS_ERROR_VERSION_NOT_SUPPORTED,
+ /* server-error-version-not-supported */
+ IPP_STATUS_ERROR_DEVICE, /* server-error-device-error */
+ IPP_STATUS_ERROR_TEMPORARY, /* server-error-temporary-error */
+ IPP_STATUS_ERROR_NOT_ACCEPTING_JOBS, /* server-error-not-accepting-jobs */
+ IPP_STATUS_ERROR_BUSY, /* server-error-busy */
+ IPP_STATUS_ERROR_JOB_CANCELED, /* server-error-job-canceled */
+ IPP_STATUS_ERROR_MULTIPLE_JOBS_NOT_SUPPORTED,
+ /* server-error-multiple-document-jobs-not-supported */
+ IPP_STATUS_ERROR_PRINTER_IS_DEACTIVATED,
+ /* server-error-printer-is-deactivated */
+ IPP_STATUS_ERROR_TOO_MANY_JOBS, /* server-error-too-many-jobs */
+ IPP_STATUS_ERROR_TOO_MANY_DOCUMENTS, /* server-error-too-many-documents */
+
+ /* These are internal and never sent over the wire... */
+ IPP_STATUS_ERROR_CUPS_AUTHENTICATION_CANCELED = 0x1000,
+ /* cups-authentication-canceled - Authentication canceled by user @since CUPS 1.5/OS X 10.7@ */
+ IPP_STATUS_ERROR_CUPS_PKI, /* cups-pki-error - Error negotiating a secure connection @since CUPS 1.5/OS X 10.7@ */
+ IPP_STATUS_ERROR_CUPS_UPGRADE_REQUIRED/* cups-upgrade-required - TLS upgrade required */
+
+# ifndef _CUPS_NO_DEPRECATED
+# define IPP_OK IPP_STATUS_OK
+# define IPP_OK_SUBST IPP_STATUS_OK_IGNORED_OR_SUBSTITUTED
+# define IPP_OK_CONFLICT IPP_STATUS_OK_CONFLICTING
+# define IPP_OK_IGNORED_SUBSCRIPTIONS IPP_STATUS_OK_IGNORED_SUBSCRIPTIONS
+# define IPP_OK_IGNORED_NOTIFICATIONS IPP_STATUS_OK_IGNORED_NOTIFICATIONS
+# define IPP_OK_TOO_MANY_EVENTS IPP_STATUS_OK_TOO_MANY_EVENTS
+# define IPP_OK_BUT_CANCEL_SUBSCRIPTION IPP_STATUS_OK_BUT_CANCEL_SUBSCRIPTION
+# define IPP_OK_EVENTS_COMPLETE IPP_STATUS_OK_EVENTS_COMPLETE
+# define IPP_REDIRECTION_OTHER_SITE IPP_STATUS_REDIRECTION_OTHER_SITE
+# define CUPS_SEE_OTHER IPP_STATUS_CUPS_SEE_OTHER
+# define IPP_BAD_REQUEST IPP_STATUS_ERROR_BAD_REQUEST
+# define IPP_FORBIDDEN IPP_STATUS_ERROR_FORBIDDEN
+# define IPP_NOT_AUTHENTICATED IPP_STATUS_ERROR_NOT_AUTHENTICATED
+# define IPP_NOT_AUTHORIZED IPP_STATUS_ERROR_NOT_AUTHORIZED
+# define IPP_NOT_POSSIBLE IPP_STATUS_ERROR_NOT_POSSIBLE
+# define IPP_TIMEOUT IPP_STATUS_ERROR_TIMEOUT
+# define IPP_NOT_FOUND IPP_STATUS_ERROR_NOT_FOUND
+# define IPP_GONE IPP_STATUS_ERROR_GONE
+# define IPP_REQUEST_ENTITY IPP_STATUS_ERROR_REQUEST_ENTITY
+# define IPP_REQUEST_VALUE IPP_STATUS_ERROR_REQUEST_VALUE
+# define IPP_DOCUMENT_FORMAT IPP_STATUS_ERROR_DOCUMENT_FORMAT_NOT_SUPPORTED
+# define IPP_ATTRIBUTES IPP_STATUS_ERROR_ATTRIBUTES_OR_VALUES
+# define IPP_URI_SCHEME IPP_STATUS_ERROR_URI_SCHEME
+# define IPP_CHARSET IPP_STATUS_ERROR_CHARSET
+# define IPP_CONFLICT IPP_STATUS_ERROR_CONFLICTING
+# define IPP_COMPRESSION_NOT_SUPPORTED IPP_STATUS_ERROR_COMPRESSION_NOT_SUPPORTED
+# define IPP_COMPRESSION_ERROR IPP_STATUS_ERROR_COMPRESSION_ERROR
+# define IPP_DOCUMENT_FORMAT_ERROR IPP_STATUS_ERROR_DOCUMENT_FORMAT_ERROR
+# define IPP_DOCUMENT_ACCESS_ERROR IPP_STATUS_ERROR_DOCUMENT_ACCESS
+# define IPP_ATTRIBUTES_NOT_SETTABLE IPP_STATUS_ERROR_ATTRIBUTES_NOT_SETTABLE
+# define IPP_IGNORED_ALL_SUBSCRIPTIONS IPP_STATUS_ERROR_IGNORED_ALL_SUBSCRIPTIONS
+# define IPP_TOO_MANY_SUBSCRIPTIONS IPP_STATUS_ERROR_TOO_MANY_SUBSCRIPTIONS
+# define IPP_IGNORED_ALL_NOTIFICATIONS IPP_STATUS_ERROR_IGNORED_ALL_NOTIFICATIONS
+# define IPP_PRINT_SUPPORT_FILE_NOT_FOUND IPP_STATUS_ERROR_PRINT_SUPPORT_FILE_NOT_FOUND
+# define IPP_DOCUMENT_PASSWORD_ERROR IPP_STATUS_ERROR_DOCUMENT_PASSWORD
+# define IPP_DOCUMENT_PERMISSION_ERROR IPP_STATUS_ERROR_DOCUMENT_PERMISSION
+# define IPP_DOCUMENT_SECURITY_ERROR IPP_STATUS_ERROR_DOCUMENT_SECURITY
+# define IPP_DOCUMENT_UNPRINTABLE_ERROR IPP_STATUS_ERROR_DOCUMENT_UNPRINTABLE
+# define IPP_INTERNAL_ERROR IPP_STATUS_ERROR_INTERNAL
+# define IPP_OPERATION_NOT_SUPPORTED IPP_STATUS_ERROR_OPERATION_NOT_SUPPORTED
+# define IPP_SERVICE_UNAVAILABLE IPP_STATUS_ERROR_SERVICE_UNAVAILABLE
+# define IPP_VERSION_NOT_SUPPORTED IPP_STATUS_ERROR_VERSION_NOT_SUPPORTED
+# define IPP_DEVICE_ERROR IPP_STATUS_ERROR_DEVICE
+# define IPP_TEMPORARY_ERROR IPP_STATUS_ERROR_TEMPORARY
+# define IPP_NOT_ACCEPTING IPP_STATUS_ERROR_NOT_ACCEPTING_JOBS
+# define IPP_PRINTER_BUSY IPP_STATUS_ERROR_BUSY
+# define IPP_ERROR_JOB_CANCELED IPP_STATUS_ERROR_JOB_CANCELED
+# define IPP_MULTIPLE_JOBS_NOT_SUPPORTED IPP_STATUS_ERROR_MULTIPLE_JOBS_NOT_SUPPORTED
+# define IPP_PRINTER_IS_DEACTIVATED IPP_STATUS_ERROR_PRINTER_IS_DEACTIVATED
+# define IPP_TOO_MANY_JOBS IPP_STATUS_ERROR_TOO_MANY_JOBS
+# define IPP_TOO_MANY_DOCUMENTS IPP_STATUS_ERROR_TOO_MANY_DOCUMENTS
+# define IPP_AUTHENTICATION_CANCELED IPP_STATUS_ERROR_CUPS_AUTHENTICATION_CANCELED
+# define IPP_PKI_ERROR IPP_STATUS_ERROR_CUPS_PKI
+# define IPP_UPGRADE_REQUIRED IPP_STATUS_ERROR_CUPS_UPGRADE_REQUIRED
+ /* Legacy name for canceled status */
+# define IPP_ERROR_JOB_CANCELLED IPP_STATUS_ERROR_JOB_CANCELED
+# endif /* _CUPS_NO_DEPRECATED */
} ipp_status_t;
typedef enum ipp_tag_e /**** Format tags for attributes ****/
@@ -364,9 +592,14 @@ typedef enum ipp_tag_e /**** Format tags for attributes ****/
IPP_TAG_MIMETYPE, /* MIME media type value */
IPP_TAG_MEMBERNAME, /* Collection member name value */
IPP_TAG_EXTENSION = 0x7f, /* Extension point for 32-bit tags */
- IPP_TAG_MASK = 0x7fffffff, /* Mask for copied attribute values @private@ */
+ IPP_TAG_CUPS_MASK = 0x7fffffff, /* Mask for copied attribute values @private@ */
/* The following expression is used to avoid compiler warnings with +/-0x80000000 */
- IPP_TAG_COPY = -0x7fffffff-1 /* Bitflag for copied attribute values @private@ */
+ IPP_TAG_CUPS_CONST = -0x7fffffff-1 /* Bitflag for copied/const attribute values @private@ */
+
+# ifndef _CUPS_NO_DEPRECATED
+# define IPP_TAG_MASK IPP_TAG_CUPS_MASK
+# define IPP_TAG_COPY IPP_TAG_CUPS_CONST
+# endif /* !_CUPS_NO_DEPRECATED */
} ipp_tag_t;
typedef unsigned char ipp_uchar_t; /**** Unsigned 8-bit integer/character ****/
@@ -387,12 +620,18 @@ typedef int (*ipp_copycb_t)(void *context, ipp_t *dst, ipp_attribute_t *attr);
* Please use the new accessor functions available in CUPS 1.6 and later, as
* these definitions will be moved to a private header file in a future release.
*
- * Define _IPP_PRIVATE_STRUCTURES to cause the private IPP structures to be
+ * Define _IPP_PRIVATE_STRUCTURES to 1 to cause the private IPP structures to be
* exposed in CUPS 1.6. This happens automatically on OS X when compiling for
* a deployment target of 10.7 or earlier.
+ *
+ * Define _IPP_PRIVATE_STRUCTURES to 0 to prevent the private IPP structures
+ * from being exposed. This is useful when migrating existing code to the new
+ * accessors.
*/
-# if defined(_CUPS_SOURCE) || defined(_CUPS_IPP_PRIVATE_H_)
+# ifdef _IPP_PRIVATE_STRUCTURES
+ /* Somebody has overridden the value */
+# elif defined(_CUPS_SOURCE) || defined(_CUPS_IPP_PRIVATE_H_)
/* Building CUPS */
# define _IPP_PRIVATE_STRUCTURES 1
# elif defined(__APPLE__)
@@ -403,9 +642,11 @@ typedef int (*ipp_copycb_t)(void *context, ipp_t *dst, ipp_attribute_t *attr);
/* Building for 10.7 and earlier */
# define _IPP_PRIVATE_STRUCTURES 1
# endif /* MAC_OS_X_VERSION_10_8 && MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_8 */
+# else
+# define _IPP_PRIVATE_STRUCTURES 0
# endif /* _CUPS_SOURCE || _CUPS_IPP_PRIVATE_H_ */
-# ifdef _IPP_PRIVATE_STRUCTURES
+# if _IPP_PRIVATE_STRUCTURES
typedef union _ipp_request_u /**** Request Header ****/
{
struct /* Any Header */
@@ -664,6 +905,28 @@ extern int ippSetValueTag(ipp_t *ipp, ipp_attribute_t **attr,
extern int ippSetVersion(ipp_t *ipp, int major, int minor)
_CUPS_API_1_6;
+/**** New in CUPS 1.7 ****/
+extern ipp_attribute_t *ippAddStringf(ipp_t *ipp, ipp_tag_t group,
+ ipp_tag_t value_tag, const char *name,
+ const char *language, const char *format,
+ ...) _CUPS_API_1_7;
+extern ipp_attribute_t *ippAddStringfv(ipp_t *ipp, ipp_tag_t group,
+ ipp_tag_t value_tag, const char *name,
+ const char *language,
+ const char *format, va_list ap)
+ _CUPS_API_1_7;
+extern int ippContainsInteger(ipp_attribute_t *attr, int value)
+ _CUPS_API_1_7;
+extern int ippContainsString(ipp_attribute_t *attr,
+ const char *value) _CUPS_API_1_7;
+extern ipp_t *ippNewResponse(ipp_t *request) _CUPS_API_1_7;
+extern int ippSetStringf(ipp_t *ipp, ipp_attribute_t **attr,
+ int element, const char *format,
+ ...) _CUPS_API_1_7;
+extern int ippSetStringfv(ipp_t *ipp, ipp_attribute_t **attr,
+ int element, const char *format,
+ va_list ap) _CUPS_API_1_7;
+
/*
* C++ magic...
diff --git a/cups/ppd-cache.c b/cups/ppd-cache.c
index 2e7a5d626..be4c64e98 100644
--- a/cups/ppd-cache.c
+++ b/cups/ppd-cache.c
@@ -560,6 +560,8 @@ _ppdCacheCreateWithFile(
}
else if (!_cups_strcasecmp(line, "MaxCopies"))
pc->max_copies = atoi(value);
+ else if (!_cups_strcasecmp(line, "ChargeInfoURI"))
+ pc->charge_info_uri = _cupsStrAlloc(value);
else if (!_cups_strcasecmp(line, "JobAccountId"))
pc->account_id = !_cups_strcasecmp(value, "true");
else if (!_cups_strcasecmp(line, "JobAccountingUserId"))
@@ -1380,10 +1382,13 @@ _ppdCacheCreateWithPPD(ppd_file_t *ppd) /* I - PPD file */
pc->max_copies = 9999;
/*
- * cupsJobAccountId, cupsJobAccountingUserId, cupsJobPassword, and
- * cupsMandatory.
+ * cupsChargeInfoURI, cupsJobAccountId, cupsJobAccountingUserId,
+ * cupsJobPassword, and cupsMandatory.
*/
+ if ((ppd_attr = ppdFindAttr(ppd, "cupsChargeInfoURI", NULL)) != NULL)
+ pc->charge_info_uri = _cupsStrAlloc(ppd_attr->value);
+
if ((ppd_attr = ppdFindAttr(ppd, "cupsJobAccountId", NULL)) != NULL)
pc->account_id = !_cups_strcasecmp(ppd_attr->value, "true");
@@ -1496,6 +1501,7 @@ _ppdCacheDestroy(_ppd_cache_t *pc) /* I - PPD cache and mapping data */
cupsArrayDelete(pc->prefilters);
cupsArrayDelete(pc->finishings);
+ _cupsStrFree(pc->charge_info_uri);
_cupsStrFree(pc->password);
cupsArrayDelete(pc->mandatory);
@@ -2395,6 +2401,9 @@ _ppdCacheWriteFile(
* Accounting/quota/PIN/managed printing values...
*/
+ if (pc->charge_info_uri)
+ cupsFilePutConf(fp, "ChargeInfoURI", pc->charge_info_uri);
+
cupsFilePrintf(fp, "AccountId %s\n", pc->account_id ? "true" : "false");
cupsFilePrintf(fp, "AccountingUserId %s\n",
pc->accounting_user_id ? "true" : "false");
diff --git a/cups/ppd-private.h b/cups/ppd-private.h
index 1eaa2c816..03b014783 100644
--- a/cups/ppd-private.h
+++ b/cups/ppd-private.h
@@ -49,7 +49,7 @@ extern "C" {
* Constants...
*/
-# define _PPD_CACHE_VERSION 4 /* Version number in cache file */
+# define _PPD_CACHE_VERSION 5 /* Version number in cache file */
/*
@@ -146,6 +146,7 @@ struct _ppd_cache_s /**** PPD cache and PWG conversion data ****/
accounting_user_id; /* cupsJobAccountingUserId value */
char *password; /* cupsJobPassword value */
cups_array_t *mandatory; /* cupsMandatory value */
+ char *charge_info_uri; /* cupsChargeInfoURI value */
};
diff --git a/cups/pwg-media.c b/cups/pwg-media.c
index 222b6ef7c..a1ec90028 100644
--- a/cups/pwg-media.c
+++ b/cups/pwg-media.c
@@ -15,6 +15,19 @@
*
* Contents:
*
+ * _pwgFormatInches() - Convert and format PWG units as inches.
+ * _pwgFormatMillimeters() - Convert and format PWG units as millimeters.
+ * _pwgGenerateSize() - Generate a PWG size keyword.
+ * _pwgInitSize() - Initialize a PWG size using IPP job template
+ * attributes.
+ * _pwgMediaForLegacy() - Find a PWG media size by ISO/IPP legacy name.
+ * _pwgMediaForPPD() - Find a PWG media size by Adobe PPD name.
+ * _pwgMediaForPWG() - Find a PWG media size by 5101.1 self-describing
+ * name.
+ * _pwgMediaForSize() - Get the PWG media name for a given size.
+ * pwg_compare_legacy() - Compare two sizes using the legacy names.
+ * pwg_compare_ppd() - Compare two sizes using the PPD names.
+ * pwg_compare_pwg() - Compare two sizes using the PWG names.
*/
/*
@@ -74,6 +87,7 @@ static _pwg_media_t const cups_pwg_media[] =
_PWG_MEDIA_IN("na_fanfold-eur_8.5x12in", NULL, "FanFoldGerman", 8.5, 12),
_PWG_MEDIA_IN("na_letter-plus_8.5x12.69in", NULL, "LetterPlus", 8.5, 12.69),
_PWG_MEDIA_IN("na_foolscap_8.5x13in", NULL, "FanFoldGermanLegal", 8.5, 13),
+ _PWG_MEDIA_IN("na_oficio_8.5x13.4in", NULL, "Oficio", 8.5, 13.4),
_PWG_MEDIA_IN("na_legal_8.5x14in", "na-legal", "Legal", 8.5, 14),
_PWG_MEDIA_IN("na_super-a_8.94x14in", NULL, "SuperA", 8.94, 14),
_PWG_MEDIA_IN("na_9x11_9x11in", "na-9x11-envelope", "9x11", 9, 11),
@@ -104,10 +118,6 @@ static _pwg_media_t const cups_pwg_media[] =
_PWG_MEDIA_IN("na_arch-e_36x48in", "arch-e", "ARCHE", 36, 48),
_PWG_MEDIA_IN("na_f_44x68in", NULL, "AnsiF", 44, 68),
- /* Chinese Standard Sheet Media Inch Sizes */
- _PWG_MEDIA_IN("roc_16k_7.75x10.75in", NULL, "roc16k", 7.75, 10.75),
- _PWG_MEDIA_IN("roc_8k_10.75x15.5in", NULL, "roc8k", 10.75, 15.5),
-
/* ISO Standard Sheet Media Sizes */
_PWG_MEDIA_MM("iso_a10_26x37mm", "iso-a10", "A10", 26, 37),
_PWG_MEDIA_MM("iso_a9_37x52mm", "iso-a9", "A9", 37, 52),
@@ -170,6 +180,10 @@ static _pwg_media_t const cups_pwg_media[] =
_PWG_MEDIA_MM("iso_c1_648x917mm", "iso-c1", "EnvC1", 648, 917),
_PWG_MEDIA_MM("iso_c0_917x1297mm", "iso-c0", "EnvC0", 917, 1297),
_PWG_MEDIA_MM("iso_dl_110x220mm", "iso-designated", "EnvDL", 110, 220),
+ _PWG_MEDIA_MM("iso_ra4_215x305mm", "iso-ra4", NULL, 215, 305),
+ _PWG_MEDIA_MM("iso_sra4_225x320mm", "iso-sra4", NULL, 225, 320),
+ _PWG_MEDIA_MM("iso_ra3_305x430mm", "iso-ra3", NULL, 305, 430),
+ _PWG_MEDIA_MM("iso_sra3_320x450mm", "iso-sra3", NULL, 320, 450),
_PWG_MEDIA_MM("iso_ra2_430x610mm", "iso-ra2", NULL, 430, 610),
_PWG_MEDIA_MM("iso_sra2_450x640mm", "iso-sra2", NULL, 450, 640),
_PWG_MEDIA_MM("iso_ra1_610x860mm", "iso-ra1", NULL, 610, 860),
@@ -190,15 +204,21 @@ static _pwg_media_t const cups_pwg_media[] =
_PWG_MEDIA_MM("jis_b1_728x1030mm", "jis-b1", "B1", 728, 1030),
_PWG_MEDIA_MM("jis_b0_1030x1456mm", "jis-b0", "B0", 1030, 1456),
_PWG_MEDIA_MM("jis_exec_216x330mm", NULL, NULL, 216, 330),
+ _PWG_MEDIA_MM("jpn_kaku2_240x332mm", NULL, "EnvKaku2", 240, 332),
+ _PWG_MEDIA_MM("jpn_kaku3_216x277mm", NULL, "EnvKaku3", 216, 277),
+ _PWG_MEDIA_MM("jpn_kaku4_197x267mm", NULL, "EnvKaku4", 197, 267),
+ _PWG_MEDIA_MM("jpn_kaku5_190x240mm", NULL, "EnvKaku5", 190, 240),
+ _PWG_MEDIA_MM("jpn_kaku7_142x205mm", NULL, "EnvKaku7", 142, 205),
+ _PWG_MEDIA_MM("jpn_kaku8_119x197mm", NULL, "EnvKaku8", 119, 197),
_PWG_MEDIA_MM("jpn_chou4_90x205mm", NULL, "EnvChou4", 90, 205),
_PWG_MEDIA_MM("jpn_hagaki_100x148mm", NULL, "Postcard", 100, 148),
_PWG_MEDIA_MM("jpn_you4_105x235mm", NULL, "EnvYou4", 105, 235),
_PWG_MEDIA_MM("jpn_you6_98x190mm", NULL, "EnvYou6", 98, 190),
_PWG_MEDIA_MM("jpn_chou2_111.1x146mm", NULL, NULL, 111.1, 146),
_PWG_MEDIA_MM("jpn_chou3_120x235mm", NULL, "EnvChou3", 120, 235),
+ _PWG_MEDIA_MM("jpn_chou40_90x225mm", NULL, "EnvChou40", 90, 225),
_PWG_MEDIA_MM("jpn_oufuku_148x200mm", NULL, "DoublePostcardRotated", 148, 200),
_PWG_MEDIA_MM("jpn_kahu_240x322.1mm", NULL, NULL, 240, 322.1),
- _PWG_MEDIA_MM("jpn_kaku2_240x332mm", NULL, "EnvKaku2", 240, 332),
/* Chinese Standard Sheet Media Sizes */
_PWG_MEDIA_MM("prc_32k_97x151mm", NULL, "PRC32K", 97, 151),
@@ -216,6 +236,10 @@ static _pwg_media_t const cups_pwg_media[] =
_PWG_MEDIA_MM("om_dai-pa-kai_275x395mm", NULL, NULL, 275, 395),
_PWG_MEDIA_MM("prc_10_324x458mm", NULL, "EnvPRC10", 324, 458),
+ /* Chinese Standard Sheet Media Inch Sizes */
+ _PWG_MEDIA_IN("roc_16k_7.75x10.75in", NULL, "roc16k", 7.75, 10.75),
+ _PWG_MEDIA_IN("roc_8k_10.75x15.5in", NULL, "roc8k", 10.75, 15.5),
+
/* Other English Standard Sheet Media Sizes */
_PWG_MEDIA_IN("oe_photo-l_3.5x5in", NULL, "3.5x5", 3.5, 5),
@@ -226,7 +250,8 @@ static _pwg_media_t const cups_pwg_media[] =
_PWG_MEDIA_MM("om_large-photo_200x300", NULL, "om_large-photo", 200, 300),
_PWG_MEDIA_MM("om_folio_210x330mm", "folio", "Folio", 210, 330),
_PWG_MEDIA_MM("om_folio-sp_215x315mm", NULL, "FolioSP", 215, 315),
- _PWG_MEDIA_MM("om_invite_220x220mm", NULL, "EnvInvite", 220, 220)
+ _PWG_MEDIA_MM("om_invite_220x220mm", NULL, "EnvInvite", 220, 220),
+ _PWG_MEDIA_MM("om_small-photo_100x200mm", NULL, "om_wide-photo", 100, 200)
};
diff --git a/cups/raster.h b/cups/raster.h
index c83d0bf7b..cfacc906d 100644
--- a/cups/raster.h
+++ b/cups/raster.h
@@ -368,11 +368,11 @@ typedef ssize_t (*cups_raster_iocb_t)(void *ctx, unsigned char *buffer, size_t l
extern void cupsRasterClose(cups_raster_t *r);
extern cups_raster_t *cupsRasterOpen(int fd, cups_mode_t mode);
extern unsigned cupsRasterReadHeader(cups_raster_t *r,
- cups_page_header_t *h) _CUPS_DEPRECATED;
+ cups_page_header_t *h) _CUPS_DEPRECATED_MSG("Use cupsRasterReadHeader2 instead.");
extern unsigned cupsRasterReadPixels(cups_raster_t *r,
unsigned char *p, unsigned len);
extern unsigned cupsRasterWriteHeader(cups_raster_t *r,
- cups_page_header_t *h) _CUPS_DEPRECATED;
+ cups_page_header_t *h) _CUPS_DEPRECATED_MSG("Use cupsRasterWriteHeader2 instead.");
extern unsigned cupsRasterWritePixels(cups_raster_t *r,
unsigned char *p, unsigned len);
diff --git a/cups/request.c b/cups/request.c
index 51457df84..01b8764ef 100644
--- a/cups/request.c
+++ b/cups/request.c
@@ -385,7 +385,7 @@ cupsGetResponse(http_t *http, /* I - Connection to server or @code CUPS_HTTP
{
status = httpUpdate(http);
}
- while (status != HTTP_ERROR && http->state == HTTP_POST_RECV);
+ while (status == HTTP_STATUS_CONTINUE);
DEBUG_printf(("2cupsGetResponse: status=%d", status));
@@ -602,10 +602,10 @@ cupsSendRequest(http_t *http, /* I - Connection to server or @code CUPS_HTTP
const char *resource, /* I - Resource path */
size_t length) /* I - Length of data to follow or @code CUPS_LENGTH_VARIABLE@ */
{
- http_status_t status; /* Status of HTTP request */
- int got_status; /* Did we get the status? */
- ipp_state_t state; /* State of IPP processing */
- http_status_t expect; /* Expect: header to use */
+ http_status_t status; /* Status of HTTP request */
+ int got_status; /* Did we get the status? */
+ ipp_state_t state; /* State of IPP processing */
+ http_status_t expect; /* Expect: header to use */
DEBUG_printf(("cupsSendRequest(http=%p, request=%p(%s), resource=\"%s\", "
@@ -789,28 +789,31 @@ cupsSendRequest(http_t *http, /* I - Connection to server or @code CUPS_HTTP
* Process the current HTTP status...
*/
- if (status >= HTTP_MULTIPLE_CHOICES)
+ if (status >= HTTP_STATUS_MULTIPLE_CHOICES)
{
+ int temp_status; /* Temporary status */
+
_cupsSetHTTPError(status);
do
{
- status = httpUpdate(http);
+ temp_status = httpUpdate(http);
}
- while (status != HTTP_ERROR && http->state == HTTP_POST_RECV);
+ while (temp_status != HTTP_STATUS_ERROR &&
+ http->state == HTTP_STATE_POST_RECV);
httpFlush(http);
}
switch (status)
{
- case HTTP_ERROR :
- case HTTP_CONTINUE :
- case HTTP_OK :
+ case HTTP_STATUS_CONTINUE :
+ case HTTP_STATUS_OK :
+ case HTTP_STATUS_ERROR :
DEBUG_printf(("1cupsSendRequest: Returning %d.", status));
return (status);
- case HTTP_UNAUTHORIZED :
+ case HTTP_STATUS_UNAUTHORIZED :
if (cupsDoAuthentication(http, "POST", resource))
{
DEBUG_puts("1cupsSendRequest: Returning HTTP_AUTHORIZATION_CANCELED.");
@@ -827,7 +830,7 @@ cupsSendRequest(http_t *http, /* I - Connection to server or @code CUPS_HTTP
break;
#ifdef HAVE_SSL
- case HTTP_UPGRADE_REQUIRED :
+ case HTTP_STATUS_UPGRADE_REQUIRED :
/*
* Flush any error message, reconnect, and then upgrade with
* encryption...
@@ -851,7 +854,7 @@ cupsSendRequest(http_t *http, /* I - Connection to server or @code CUPS_HTTP
break;
#endif /* HAVE_SSL */
- case HTTP_EXPECTATION_FAILED :
+ case HTTP_STATUS_EXPECTATION_FAILED :
/*
* Don't try using the Expect: header the next time around...
*/
@@ -993,7 +996,7 @@ _cupsConnect(void)
*/
if (strcmp(cg->http->hostname, cg->server) ||
- cg->ipp_port != _httpAddrPort(cg->http->hostaddr) ||
+ cg->ipp_port != httpAddrPort(cg->http->hostaddr) ||
(cg->http->encryption != cg->encryption &&
cg->http->encryption == HTTP_ENCRYPT_NEVER))
{
diff --git a/cups/testarray.c b/cups/testarray.c
index 9f7eb2a71..5ae622606 100644
--- a/cups/testarray.c
+++ b/cups/testarray.c
@@ -27,7 +27,7 @@
#include "string-private.h"
#include "debug-private.h"
-#include "array.h"
+#include "array-private.h"
#include "dir.h"
@@ -405,6 +405,88 @@ main(int argc, /* I - Number of command-line arguments */
cupsArrayDelete(dup_array);
/*
+ * Test the array with string functions...
+ */
+
+ fputs("_cupsArrayNewStrings(\" \\t\\nfoo bar\\tboo\\nfar\", ' '): ", stdout);
+ array = _cupsArrayNewStrings(" \t\nfoo bar\tboo\nfar", ' ');
+ if (!array)
+ {
+ status = 1;
+ puts("FAIL (unable to create array)");
+ }
+ else if (cupsArrayCount(array) != 4)
+ {
+ status = 1;
+ printf("FAIL (got %d elements, expected 4)\n", cupsArrayCount(array));
+ }
+ else if (strcmp(text = (char *)cupsArrayFirst(array), "bar"))
+ {
+ status = 1;
+ printf("FAIL (first element \"%s\", expected \"bar\")\n", text);
+ }
+ else if (strcmp(text = (char *)cupsArrayNext(array), "boo"))
+ {
+ status = 1;
+ printf("FAIL (first element \"%s\", expected \"boo\")\n", text);
+ }
+ else if (strcmp(text = (char *)cupsArrayNext(array), "far"))
+ {
+ status = 1;
+ printf("FAIL (first element \"%s\", expected \"far\")\n", text);
+ }
+ else if (strcmp(text = (char *)cupsArrayNext(array), "foo"))
+ {
+ status = 1;
+ printf("FAIL (first element \"%s\", expected \"foo\")\n", text);
+ }
+ else
+ puts("PASS");
+
+ fputs("_cupsArrayAddStrings(array, \"foo2,bar2\", ','): ", stdout);
+ _cupsArrayAddStrings(array, "foo2,bar2", ',');
+
+ if (cupsArrayCount(array) != 6)
+ {
+ status = 1;
+ printf("FAIL (got %d elements, expected 6)\n", cupsArrayCount(array));
+ }
+ else if (strcmp(text = (char *)cupsArrayFirst(array), "bar"))
+ {
+ status = 1;
+ printf("FAIL (first element \"%s\", expected \"bar\")\n", text);
+ }
+ else if (strcmp(text = (char *)cupsArrayNext(array), "bar2"))
+ {
+ status = 1;
+ printf("FAIL (first element \"%s\", expected \"bar2\")\n", text);
+ }
+ else if (strcmp(text = (char *)cupsArrayNext(array), "boo"))
+ {
+ status = 1;
+ printf("FAIL (first element \"%s\", expected \"boo\")\n", text);
+ }
+ else if (strcmp(text = (char *)cupsArrayNext(array), "far"))
+ {
+ status = 1;
+ printf("FAIL (first element \"%s\", expected \"far\")\n", text);
+ }
+ else if (strcmp(text = (char *)cupsArrayNext(array), "foo"))
+ {
+ status = 1;
+ printf("FAIL (first element \"%s\", expected \"foo\")\n", text);
+ }
+ else if (strcmp(text = (char *)cupsArrayNext(array), "foo2"))
+ {
+ status = 1;
+ printf("FAIL (first element \"%s\", expected \"foo2\")\n", text);
+ }
+ else
+ puts("PASS");
+
+ cupsArrayDelete(array);
+
+ /*
* Summarize the results and return...
*/
diff --git a/cups/testhttp.c b/cups/testhttp.c
index 089e4d28c..3e699cd3b 100644
--- a/cups/testhttp.c
+++ b/cups/testhttp.c
@@ -186,6 +186,7 @@ main(int argc, /* I - Number of command-line arguments */
*addr; /* Current address */
off_t length, total; /* Length and total bytes */
time_t start, current; /* Start and end time */
+ const char *encoding; /* Negotiated Content-Encoding */
static const char * const uri_status_strings[] =
{
"HTTP_URI_OVERFLOW",
@@ -554,9 +555,24 @@ main(int argc, /* I - Number of command-line arguments */
perror(hostname);
continue;
}
- printf("Requesting file \"%s\"...\n", resource);
+ printf("Checking file \"%s\"...\n", resource);
httpClearFields(http);
httpSetField(http, HTTP_FIELD_ACCEPT_LANGUAGE, "en");
+ httpHead(http, resource);
+ while ((status = httpUpdate(http)) == HTTP_CONTINUE);
+
+ if (status == HTTP_OK)
+ puts("HEAD OK:");
+ else
+ printf("HEAD failed with status %d...\n", status);
+
+ encoding = httpGetContentEncoding(http);
+
+ printf("Requesting file \"%s\" (Accept-Encoding: %s)...\n", resource,
+ encoding ? encoding : "identity");
+ httpClearFields(http);
+ httpSetField(http, HTTP_FIELD_ACCEPT_LANGUAGE, "en");
+ httpSetField(http, HTTP_FIELD_ACCEPT_ENCODING, encoding);
httpGet(http, resource);
while ((status = httpUpdate(http)) == HTTP_CONTINUE);
diff --git a/cups/testipp.c b/cups/testipp.c
index 5655b6be2..88ed7dfac 100644
--- a/cups/testipp.c
+++ b/cups/testipp.c
@@ -263,6 +263,7 @@ main(int argc, /* I - Number of command-line arguments */
cups_file_t *fp; /* File pointer */
int i; /* Looping var */
int status; /* Status of tests (0 = success, 1 = fail) */
+ const char *name; /* Option name */
status = 0;
@@ -625,11 +626,26 @@ main(int argc, /* I - Number of command-line arguments */
ippDelete(request);
+#ifdef DEBUG
+ /*
+ * Test that private option array is sorted...
+ */
+
+ fputs("_ippCheckOptions: ", stdout);
+ if ((name = _ippCheckOptions()) == NULL)
+ puts("PASS");
+ else
+ {
+ printf("FAIL (\"%s\" out of order)\n", name);
+ status = 1;
+ }
+#endif /* DEBUG */
+
/*
* Test _ippFindOption() private API...
*/
- fputs("_ippFindOption(printer-type): ", stdout);
+ fputs("_ippFindOption(\"printer-type\"): ", stdout);
if (_ippFindOption("printer-type"))
puts("PASS");
else
diff --git a/cups/util.c b/cups/util.c
index c9826549c..77e3e79eb 100644
--- a/cups/util.c
+++ b/cups/util.c
@@ -248,6 +248,7 @@ cupsCreateJob(
if (title)
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME, "job-name", NULL,
title);
+ cupsEncodeOptions2(request, num_options, options, IPP_TAG_OPERATION);
cupsEncodeOptions2(request, num_options, options, IPP_TAG_JOB);
cupsEncodeOptions2(request, num_options, options, IPP_TAG_SUBSCRIPTION);
@@ -1066,7 +1067,7 @@ cupsGetPPD3(http_t *http, /* I - HTTP connection or @code CUPS_HTTP_DEFAUL
*/
httpGetHostname(http, http_hostname, sizeof(http_hostname));
- http_port = _httpAddrPort(http->hostaddr);
+ http_port = httpAddrPort(http->hostaddr);
DEBUG_printf(("2cupsGetPPD3: Connection hostname=\"%s\", port=%d",
http_hostname, http_port));
@@ -1669,7 +1670,7 @@ cups_get_printer_uri(
*/
httpGetHostname(http, http_hostname, sizeof(http_hostname));
- http_port = _httpAddrPort(http->hostaddr);
+ http_port = httpAddrPort(http->hostaddr);
/*
* Build an IPP_GET_PRINTER_ATTRIBUTES request, which requires the following
@@ -1695,7 +1696,9 @@ cups_get_printer_uri(
* Do the request and get back a response...
*/
- if ((response = cupsDoRequest(http, request, "/")) != NULL)
+ snprintf(resource, resourcesize, "/printers/%s", name);
+
+ if ((response = cupsDoRequest(http, request, resource)) != NULL)
{
const char *device_uri = NULL; /* device-uri value */
diff --git a/cups/versioning.h b/cups/versioning.h
index 38bfddbeb..f1b02d648 100644
--- a/cups/versioning.h
+++ b/cups/versioning.h
@@ -20,9 +20,9 @@
/*
* This header defines several constants - _CUPS_DEPRECATED,
* _CUPS_API_1_1, _CUPS_API_1_1_19, _CUPS_API_1_1_20, _CUPS_API_1_1_21,
- * _CUPS_API_1_2, _CUPS_API_1_3, _CUPS_API_1_4, _CUPS_API_1_5, _CUPS_API_1_6 -
- * which add compiler-specific attributes that flag functions that are
- * deprecated or added in particular releases.
+ * _CUPS_API_1_2, _CUPS_API_1_3, _CUPS_API_1_4, _CUPS_API_1_5, _CUPS_API_1_6,
+ * and _CUPS_API_1_7 - which add compiler-specific attributes that flag
+ * functions that are deprecated or added in particular releases.
*
* On OS X, the _CUPS_API_* constants are defined based on the values of
* the MAC_OS_X_VERSION_MIN_ALLOWED and MAC_OS_X_VERSION_MAX_ALLOWED constants
@@ -49,6 +49,9 @@
# ifndef AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
# define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER __attribute__((unavailable))
# endif /* !AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER */
+# ifndef AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
+# define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER __attribute__((unavailable))
+# endif /* !AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER */
# define _CUPS_API_1_1_19 AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
# define _CUPS_API_1_1_20 AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
# define _CUPS_API_1_1_21 AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
@@ -56,7 +59,8 @@
# define _CUPS_API_1_3 AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
# define _CUPS_API_1_4 AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
# define _CUPS_API_1_5 AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
-# define _CUPS_API_1_6
+# define _CUPS_API_1_6 AVAILABLE_MAX_OS_X_VERSION_10_8_AND_LATER
+# define _CUPS_API_1_7 AVAILABLE_MAX_OS_X_VERSION_10_9_AND_LATER
# else
# define _CUPS_API_1_1_19
# define _CUPS_API_1_1_20
@@ -66,6 +70,7 @@
# define _CUPS_API_1_4
# define _CUPS_API_1_5
# define _CUPS_API_1_6
+# define _CUPS_API_1_7
# endif /* __APPLE__ && !_CUPS_SOURCE */
/*
@@ -73,16 +78,27 @@
* a warning at compile-time.
*/
-# if defined(__GNUC__) && __GNUC__ > 2 && !defined(_CUPS_SOURCE)
-# define _CUPS_DEPRECATED __attribute__ ((__deprecated__))
+# if defined(__GNUC__) && __GNUC__ > 2
+# if defined(__clang__) && defined(_CUPS_NO_DEPRECATED)
+# define _CUPS_DEPRECATED __attribute__ ((unavailable))
+# define _CUPS_DEPRECATED_MSG(m) __attribute__ ((unavailable(m)))
+# elif !defined(_CUPS_SOURCE) || defined(_CUPS_NO_DEPRECATED)
+# define _CUPS_DEPRECATED __attribute__ ((deprecated))
+# define _CUPS_DEPRECATED_MSG(m) __attribute__ ((deprecated(m)))
+# else
+# define _CUPS_DEPRECATED
+# define _CUPS_DEPRECATED_MSG(m)
+# endif /* !_CUPS_SOURCE || _CUPS_NO_DEPRECATED */
# else
# define _CUPS_DEPRECATED
-# endif /* __GNUC__ && __GNUC__ > 2 && !_CUPS_SOURCE */
+# define _CUPS_DEPRECATED_MSG(m)
+# endif /* __GNUC__ && __GNUC__ > 2 */
# ifndef __GNUC__
# define __attribute__(x)
# endif /* !__GNUC__ */
+#
#endif /* !_CUPS_VERSIONING_H_ */
/*
diff --git a/doc/help/api-httpipp.html b/doc/help/api-httpipp.html
index b30af9eb8..23d9e7f90 100644
--- a/doc/help/api-httpipp.html
+++ b/doc/help/api-httpipp.html
@@ -404,12 +404,17 @@ current thread.">cupsLastErrorString</a></li>
<li><a href="#cupsReadResponseData" title="Read additional data after the IPP response.">cupsReadResponseData</a></li>
<li><a href="#cupsSendRequest" title="Send an IPP request.">cupsSendRequest</a></li>
<li><a href="#cupsWriteRequestData" title="Write additional data after an IPP request.">cupsWriteRequestData</a></li>
+ <li><a href="#httpAcceptConnection" title="Accept a new HTTP client connection from the
+specified listening socket.">httpAcceptConnection</a></li>
<li><a href="#httpAddCredential" title="Allocates and adds a single credential to an array.">httpAddCredential</a></li>
<li><a href="#httpAddrAny" title="Check for the &quot;any&quot; address.">httpAddrAny</a></li>
<li><a href="#httpAddrEqual" title="Compare two addresses.">httpAddrEqual</a></li>
<li><a href="#httpAddrLength" title="Return the length of the address in bytes.">httpAddrLength</a></li>
+ <li><a href="#httpAddrListen" title="Create a listening socket bound to the specified
+address and port.">httpAddrListen</a></li>
<li><a href="#httpAddrLocalhost" title="Check for the local loopback address.">httpAddrLocalhost</a></li>
<li><a href="#httpAddrLookup" title="Lookup the hostname associated with the address.">httpAddrLookup</a></li>
+ <li><a href="#httpAddrPort" title="Get the port number associated with an address.">httpAddrPort</a></li>
<li><a href="#httpAddrString" title="Convert an address to a numeric string.">httpAddrString</a></li>
<li><a href="#httpAssembleURI" title="Assemble a uniform resource identifier from its
components.">httpAssembleURI</a></li>
@@ -421,6 +426,7 @@ components with a formatted resource.">httpAssembleURIf</a></li>
<li><a href="#httpClearFields" title="Clear HTTP request fields.">httpClearFields</a></li>
<li><a href="#httpClose" title="Close an HTTP connection.">httpClose</a></li>
<li><a href="#httpConnect" title="Connect to a HTTP server.">httpConnect</a></li>
+ <li><a href="#httpConnect2" title="Connect to a HTTP server.">httpConnect2</a></li>
<li><a href="#httpConnectEncrypt" title="Connect to a HTTP server using encryption.">httpConnectEncrypt</a></li>
<li><a href="#httpCopyCredentials" title="Copy the credentials associated with an encrypted
connection.">httpCopyCredentials</a></li>
@@ -437,10 +443,13 @@ connection.">httpCopyCredentials</a></li>
<li><a href="#httpGet" title="Send a GET request to the server.">httpGet</a></li>
<li><a href="#httpGetAuthString" title="Get the current authorization string.">httpGetAuthString</a></li>
<li><a href="#httpGetBlocking" title="Get the blocking/non-block state of a connection.">httpGetBlocking</a></li>
+ <li><a href="#httpGetContentEncoding" title="Get a common content encoding, if any, between
+the client and server.">httpGetContentEncoding</a></li>
<li><a href="#httpGetCookie" title="Get any cookie data from the response.">httpGetCookie</a></li>
<li><a href="#httpGetDateString" title="Get a formatted date/time string from a time value.">httpGetDateString</a></li>
<li><a href="#httpGetDateString2" title="Get a formatted date/time string from a time value.">httpGetDateString2</a></li>
<li><a href="#httpGetDateTime" title="Get a time value from a formatted date/time string.">httpGetDateTime</a></li>
+ <li><a href="#httpGetExpect" title="Get the value of the Expect header, if any.">httpGetExpect</a></li>
<li><a href="#httpGetFd" title="Get the file descriptor associated with a connection.">httpGetFd</a></li>
<li><a href="#httpGetField" title="Get a field value from a request/response.">httpGetField</a></li>
<li><a href="#httpGetHostByName" title="Lookup a hostname or IPv4 address, and return
@@ -465,10 +474,12 @@ with the server-supplied nonce value, method, and
request-uri.">httpMD5Final</a></li>
<li><a href="#httpMD5String" title="Convert an MD5 sum to a character string.">httpMD5String</a></li>
<li><a href="#httpOptions" title="Send an OPTIONS request to the server.">httpOptions</a></li>
+ <li><a href="#httpPeek" title="Peek at data from a HTTP connection.">httpPeek</a></li>
<li><a href="#httpPost" title="Send a POST request to the server.">httpPost</a></li>
<li><a href="#httpPut" title="Send a PUT request to the server.">httpPut</a></li>
<li><a href="#httpRead" title="Read data from a HTTP connection.">httpRead</a></li>
<li><a href="#httpRead2" title="Read data from a HTTP connection.">httpRead2</a></li>
+ <li><a href="#httpReadRequest" title="Read a HTTP request from a connection.">httpReadRequest</a></li>
<li><a href="#httpReconnect" title="Reconnect to a HTTP server.">httpReconnect</a></li>
<li><a href="#httpReconnect2" title="Reconnect to a HTTP server with timeout and optional
cancel.">httpReconnect2</a></li>
@@ -492,6 +503,7 @@ connection.">httpSetCredentials</a></li>
<li><a href="#httpWait" title="Wait for data available on a connection.">httpWait</a></li>
<li><a href="#httpWrite" title="Write data to a HTTP connection.">httpWrite</a></li>
<li><a href="#httpWrite2" title="Write data to a HTTP connection.">httpWrite2</a></li>
+ <li><a href="#httpWriteResponse" title="Write a HTTP response to a client connection.">httpWriteResponse</a></li>
<li><a href="#ippAddBoolean" title="Add a boolean attribute to an IPP message.">ippAddBoolean</a></li>
<li><a href="#ippAddBooleans" title="Add an array of boolean values.">ippAddBooleans</a></li>
<li><a href="#ippAddCollection" title="Add a collection value.">ippAddCollection</a></li>
@@ -507,8 +519,14 @@ connection.">httpSetCredentials</a></li>
<li><a href="#ippAddResolutions" title="Add resolution values to an IPP message.">ippAddResolutions</a></li>
<li><a href="#ippAddSeparator" title="Add a group separator to an IPP message.">ippAddSeparator</a></li>
<li><a href="#ippAddString" title="Add a language-encoded string to an IPP message.">ippAddString</a></li>
+ <li><a href="#ippAddStringf" title="Add a formatted string to an IPP message.">ippAddStringf</a></li>
+ <li><a href="#ippAddStringfv" title="Add a formatted string to an IPP message.">ippAddStringfv</a></li>
<li><a href="#ippAddStrings" title="Add language-encoded strings to an IPP message.">ippAddStrings</a></li>
<li><a href="#ippAttributeString" title="Convert the attribute's value to a string.">ippAttributeString</a></li>
+ <li><a href="#ippContainsInteger" title="Determine whether an attribute contains the
+specified value or is within the list of ranges.">ippContainsInteger</a></li>
+ <li><a href="#ippContainsString" title="Determine whether an attribute contains the
+specified string value.">ippContainsString</a></li>
<li><a href="#ippCopyAttribute" title="Copy an attribute.">ippCopyAttribute</a></li>
<li><a href="#ippCopyAttributes" title="Copy attributes from one IPP message to another.">ippCopyAttributes</a></li>
<li><a href="#ippDateToTime" title="Convert from RFC 1903 Date/Time format to UNIX time
@@ -542,6 +560,7 @@ in seconds.">ippDateToTime</a></li>
<li><a href="#ippLength" title="Compute the length of an IPP message.">ippLength</a></li>
<li><a href="#ippNew" title="Allocate a new IPP message.">ippNew</a></li>
<li><a href="#ippNewRequest" title="Allocate a new IPP request message.">ippNewRequest</a></li>
+ <li><a href="#ippNewResponse" title="Allocate a new IPP response message.">ippNewResponse</a></li>
<li><a href="#ippNextAttribute" title="Return the next attribute in the message.">ippNextAttribute</a></li>
<li><a href="#ippOpString" title="Return a name for the given operation id.">ippOpString</a></li>
<li><a href="#ippOpValue" title="Return an operation id for the given name.">ippOpValue</a></li>
@@ -563,6 +582,8 @@ in seconds.">ippDateToTime</a></li>
<li><a href="#ippSetState" title="Set the current state of the IPP message.">ippSetState</a></li>
<li><a href="#ippSetStatusCode" title="Set the status code in an IPP response or event message.">ippSetStatusCode</a></li>
<li><a href="#ippSetString" title="Set a string value in an attribute.">ippSetString</a></li>
+ <li><a href="#ippSetStringf" title="Set a formatted string value of an attribute.">ippSetStringf</a></li>
+ <li><a href="#ippSetStringfv" title="Set a formatted string value of an attribute.">ippSetStringfv</a></li>
<li><a href="#ippSetValueTag" title="Set the value tag of an attribute.">ippSetValueTag</a></li>
<li><a href="#ippSetVersion" title="Set the version number in an IPP message.">ippSetVersion</a></li>
<li><a href="#ippTagString" title="Return the tag name corresponding to a tag value.">ippTagString</a></li>
@@ -590,7 +611,6 @@ with a hostname. ">http_addrlist_t</a></li>
<li><a href="#http_keepalive_t" title="HTTP keep-alive values">http_keepalive_t</a></li>
<li><a href="#http_state_t" title="HTTP state values; states
are server-oriented...">http_state_t</a></li>
- <li><a href="#http_status_t" title="HTTP status codes">http_status_t</a></li>
<li><a href="#http_t" title="HTTP connection type">http_t</a></li>
<li><a href="#http_timeout_cb_t" title="HTTP timeout callback ">http_timeout_cb_t</a></li>
<li><a href="#http_uri_coding_t" title="URI en/decode flags">http_uri_coding_t</a></li>
@@ -601,7 +621,7 @@ are server-oriented...">http_state_t</a></li>
Please use the new accessor functions available in CUPS 1.6 and later, as
these definitions will be moved to a private header file in a future release.">ipp_copycb_t</a></li>
<li><a href="#ipp_dstate_t" title="Document states">ipp_dstate_t</a></li>
- <li><a href="#ipp_finish_t" title="Finishings">ipp_finish_t</a></li>
+ <li><a href="#ipp_finish_t" title="Job collation types">ipp_finish_t</a></li>
<li><a href="#ipp_iocb_t" title="IPP IO Callback Function ">ipp_iocb_t</a></li>
<li><a href="#ipp_jcollate_t" title="Job collation types">ipp_jcollate_t</a></li>
<li><a href="#ipp_orient_t" title="Orientation values">ipp_orient_t</a></li>
@@ -634,7 +654,7 @@ are server-oriented...">http_state_e</a></li>
<li><a href="#http_uri_status_e" title="URI separation status ">http_uri_status_e</a></li>
<li><a href="#http_version_e" title="HTTP version numbers">http_version_e</a></li>
<li><a href="#ipp_dstate_e" title="Document states">ipp_dstate_e</a></li>
- <li><a href="#ipp_finish_e" title="Finishings">ipp_finish_e</a></li>
+ <li><a href="#ipp_finishings_e" title="Finishings">ipp_finishings_e</a></li>
<li><a href="#ipp_jcollate_e" title="Job collation types">ipp_jcollate_e</a></li>
<li><a href="#ipp_jstate_e" title="Job states">ipp_jstate_e</a></li>
<li><a href="#ipp_op_e" title="IPP operations">ipp_op_e</a></li>
@@ -1160,7 +1180,7 @@ the request respectively.
<h3 class="function"><span class="info">&nbsp;CUPS 1.1.20/OS X 10.4&nbsp;</span><a name="cupsGetFd">cupsGetFd</a></h3>
<p class="description">Get a file from the server.</p>
<p class="code">
-<a href="#http_status_t">http_status_t</a> cupsGetFd (<br>
+http_status_t cupsGetFd (<br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#http_t">http_t</a> *http,<br>
&nbsp;&nbsp;&nbsp;&nbsp;const char *resource,<br>
&nbsp;&nbsp;&nbsp;&nbsp;int fd<br>
@@ -1183,7 +1203,7 @@ the request respectively.
<h3 class="function"><span class="info">&nbsp;CUPS 1.1.20/OS X 10.4&nbsp;</span><a name="cupsGetFile">cupsGetFile</a></h3>
<p class="description">Get a file from the server.</p>
<p class="code">
-<a href="#http_status_t">http_status_t</a> cupsGetFile (<br>
+http_status_t cupsGetFile (<br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#http_t">http_t</a> *http,<br>
&nbsp;&nbsp;&nbsp;&nbsp;const char *resource,<br>
&nbsp;&nbsp;&nbsp;&nbsp;const char *filename<br>
@@ -1243,7 +1263,7 @@ const char *cupsLastErrorString (void);</p>
<h3 class="function"><span class="info">&nbsp;CUPS 1.1.20/OS X 10.4&nbsp;</span><a name="cupsPutFd">cupsPutFd</a></h3>
<p class="description">Put a file on the server.</p>
<p class="code">
-<a href="#http_status_t">http_status_t</a> cupsPutFd (<br>
+http_status_t cupsPutFd (<br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#http_t">http_t</a> *http,<br>
&nbsp;&nbsp;&nbsp;&nbsp;const char *resource,<br>
&nbsp;&nbsp;&nbsp;&nbsp;int fd<br>
@@ -1267,7 +1287,7 @@ successfully.
<h3 class="function"><span class="info">&nbsp;CUPS 1.1.20/OS X 10.4&nbsp;</span><a name="cupsPutFile">cupsPutFile</a></h3>
<p class="description">Put a file on the server.</p>
<p class="code">
-<a href="#http_status_t">http_status_t</a> cupsPutFile (<br>
+http_status_t cupsPutFile (<br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#http_t">http_t</a> *http,<br>
&nbsp;&nbsp;&nbsp;&nbsp;const char *resource,<br>
&nbsp;&nbsp;&nbsp;&nbsp;const char *filename<br>
@@ -1316,7 +1336,7 @@ respectively.
<h3 class="function"><span class="info">&nbsp;CUPS 1.4/OS X 10.6&nbsp;</span><a name="cupsSendRequest">cupsSendRequest</a></h3>
<p class="description">Send an IPP request.</p>
<p class="code">
-<a href="#http_status_t">http_status_t</a> cupsSendRequest (<br>
+http_status_t cupsSendRequest (<br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#http_t">http_t</a> *http,<br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ipp_t">ipp_t</a> *request,<br>
&nbsp;&nbsp;&nbsp;&nbsp;const char *resource,<br>
@@ -1352,7 +1372,7 @@ Note: Unlike <a href="#cupsDoFileRequest"><code>cupsDoFileRequest</code></a>, <a
<h3 class="function"><span class="info">&nbsp;CUPS 1.4/OS X 10.6&nbsp;</span><a name="cupsWriteRequestData">cupsWriteRequestData</a></h3>
<p class="description">Write additional data after an IPP request.</p>
<p class="code">
-<a href="#http_status_t">http_status_t</a> cupsWriteRequestData (<br>
+http_status_t cupsWriteRequestData (<br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#http_t">http_t</a> *http,<br>
&nbsp;&nbsp;&nbsp;&nbsp;const char *buffer,<br>
&nbsp;&nbsp;&nbsp;&nbsp;size_t length<br>
@@ -1373,6 +1393,24 @@ Note: Unlike <a href="#cupsDoFileRequest"><code>cupsDoFileRequest</code></a>, <a
after <a href="#cupsStartDocument"><code>cupsStartDocument</code></a> to provide a document file.
</p>
+<h3 class="function"><span class="info">&nbsp;CUPS 1.7&nbsp;</span><a name="httpAcceptConnection">httpAcceptConnection</a></h3>
+<p class="description">Accept a new HTTP client connection from the
+specified listening socket.</p>
+<p class="code">
+<a href="#http_t">http_t</a> *httpAcceptConnection (<br>
+&nbsp;&nbsp;&nbsp;&nbsp;int fd,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;int blocking<br>
+);</p>
+<h4 class="parameters">Parameters</h4>
+<dl>
+<dt>fd</dt>
+<dd class="description">Listen socket file descriptor</dd>
+<dt>blocking</dt>
+<dd class="description">1 if the connection should be
+blocking, 0 otherwise</dd>
+</dl>
+<h4 class="returnvalue">Return Value</h4>
+<p class="description">HTTP connection or <code>NULL</code></p>
<h3 class="function"><span class="info">&nbsp;CUPS 1.5/OS X 10.7&nbsp;</span><a name="httpAddCredential">httpAddCredential</a></h3>
<p class="description">Allocates and adds a single credential to an array.</p>
<p class="code">
@@ -1438,6 +1476,23 @@ int httpAddrLength (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Length in bytes</p>
+<h3 class="function"><span class="info">&nbsp;CUPS 1.7&nbsp;</span><a name="httpAddrListen">httpAddrListen</a></h3>
+<p class="description">Create a listening socket bound to the specified
+address and port.</p>
+<p class="code">
+int httpAddrListen (<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#http_addr_t">http_addr_t</a> *addr,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;int port<br>
+);</p>
+<h4 class="parameters">Parameters</h4>
+<dl>
+<dt>addr</dt>
+<dd class="description">Address to bind to</dd>
+<dt>port</dt>
+<dd class="description">Port number to bind to</dd>
+</dl>
+<h4 class="returnvalue">Return Value</h4>
+<p class="description">Socket or -1 on error</p>
<h3 class="function"><span class="info">&nbsp;CUPS 1.2/OS X 10.5&nbsp;</span><a name="httpAddrLocalhost">httpAddrLocalhost</a></h3>
<p class="description">Check for the local loopback address.</p>
<p class="code">
@@ -1470,6 +1525,19 @@ char *httpAddrLookup (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Host name</p>
+<h3 class="function"><span class="info">&nbsp;CUPS 1.7&nbsp;</span><a name="httpAddrPort">httpAddrPort</a></h3>
+<p class="description">Get the port number associated with an address.</p>
+<p class="code">
+int httpAddrPort (<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#http_addr_t">http_addr_t</a> *addr<br>
+);</p>
+<h4 class="parameters">Parameters</h4>
+<dl>
+<dt>addr</dt>
+<dd class="description">Address</dd>
+</dl>
+<h4 class="returnvalue">Return Value</h4>
+<p class="description">Port number</p>
<h3 class="function"><span class="info">&nbsp;CUPS 1.2/OS X 10.5&nbsp;</span><a name="httpAddrString">httpAddrString</a></h3>
<p class="description">Convert an address to a numeric string.</p>
<p class="code">
@@ -1654,10 +1722,44 @@ void httpClose (<br>
<h4 class="returnvalue">Return Value</h4>
<p class="description">New HTTP connection</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">This function is deprecated - use <a href="#httpConnectEncrypt"><code>httpConnectEncrypt</code></a> instead.
+<p class="discussion">This function is deprecated - use <a href="#httpConnect2"><code>httpConnect2</code></a> instead.
</p>
-<h3 class="function"><a name="httpConnectEncrypt">httpConnectEncrypt</a></h3>
+<h3 class="function"><span class="info">&nbsp;CUPS 1.7&nbsp;</span><a name="httpConnect2">httpConnect2</a></h3>
+<p class="description">Connect to a HTTP server.</p>
+<p class="code">
+<a href="#http_t">http_t</a> *httpConnect2 (<br>
+&nbsp;&nbsp;&nbsp;&nbsp;const char *host,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;int port,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#http_addrlist_t">http_addrlist_t</a> *addrlist,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;int family,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#http_encryption_t">http_encryption_t</a> encryption,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;int blocking,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;int msec,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;int *cancel<br>
+);</p>
+<h4 class="parameters">Parameters</h4>
+<dl>
+<dt>host</dt>
+<dd class="description">Host to connect to</dd>
+<dt>port</dt>
+<dd class="description">Port number</dd>
+<dt>addrlist</dt>
+<dd class="description">List of addresses or NULL to lookup</dd>
+<dt>family</dt>
+<dd class="description">Address family to use or <code>AF_UNSPEC</code> for any</dd>
+<dt>encryption</dt>
+<dd class="description">Type of encryption to use</dd>
+<dt>blocking</dt>
+<dd class="description">1 for blocking connection, 0 for non-blocking</dd>
+<dt>msec</dt>
+<dd class="description">Connection timeout in milliseconds</dd>
+<dt>cancel</dt>
+<dd class="description">Pointer to &quot;cancel&quot; variable</dd>
+</dl>
+<h4 class="returnvalue">Return Value</h4>
+<p class="description">New HTTP connection</p>
+<h3 class="function"><span class="info">&nbsp;DEPRECATED&nbsp;</span><a name="httpConnectEncrypt">httpConnectEncrypt</a></h3>
<p class="description">Connect to a HTTP server using encryption.</p>
<p class="code">
<a href="#http_t">http_t</a> *httpConnectEncrypt (<br>
@@ -1676,6 +1778,11 @@ void httpClose (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">New HTTP connection</p>
+<h4 class="discussion">Discussion</h4>
+<p class="discussion">This function is now deprecated. Please use the <a href="#httpConnect2"><code>httpConnect2</code></a> function
+instead.
+
+</p>
<h3 class="function"><span class="info">&nbsp;CUPS 1.5/OS X 10.7&nbsp;</span><a name="httpCopyCredentials">httpCopyCredentials</a></h3>
<p class="description">Copy the credentials associated with an encrypted
connection.</p>
@@ -1905,6 +2012,29 @@ int httpGetBlocking (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">1 if blocking, 0 if non-blocking</p>
+<h3 class="function"><span class="info">&nbsp;CUPS 1.7&nbsp;</span><a name="httpGetContentEncoding">httpGetContentEncoding</a></h3>
+<p class="description">Get a common content encoding, if any, between
+the client and server.</p>
+<p class="code">
+const char *httpGetContentEncoding (<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#http_t">http_t</a> *http<br>
+);</p>
+<h4 class="parameters">Parameters</h4>
+<dl>
+<dt>http</dt>
+<dd class="description">Connection to client/server</dd>
+</dl>
+<h4 class="returnvalue">Return Value</h4>
+<p class="description">Content-Coding value or
+<code>NULL</code> for the identity
+coding.</p>
+<h4 class="discussion">Discussion</h4>
+<p class="discussion">This function uses the value of the Accepts-Encoding HTTP header and must be
+called after receiving a response from the server or a request from the
+client. The value returned can be use in subsequent requests (for clients)
+or in the response (for servers) in order to compress the content stream.
+
+</p>
<h3 class="function"><span class="info">&nbsp;CUPS 1.1.19/OS X 10.3&nbsp;</span><a name="httpGetCookie">httpGetCookie</a></h3>
<p class="description">Get any cookie data from the response.</p>
<p class="code">
@@ -1963,6 +2093,24 @@ time_t httpGetDateTime (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">UNIX time</p>
+<h3 class="function"><span class="info">&nbsp;CUPS 1.7&nbsp;</span><a name="httpGetExpect">httpGetExpect</a></h3>
+<p class="description">Get the value of the Expect header, if any.</p>
+<p class="code">
+http_status_t httpGetExpect (<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#http_t">http_t</a> *http<br>
+);</p>
+<h4 class="parameters">Parameters</h4>
+<dl>
+<dt>http</dt>
+<dd class="description">Connection to client</dd>
+</dl>
+<h4 class="returnvalue">Return Value</h4>
+<p class="description">Expect: status, if any</p>
+<h4 class="discussion">Discussion</h4>
+<p class="discussion">Returns <code>HTTP_STATUS_NONE</code> if there is no Expect header, otherwise
+returns the expected HTTP status code, typically <code>HTTP_STATUS_CONTINUE</code>.
+
+</p>
<h3 class="function"><span class="info">&nbsp;CUPS 1.2/OS X 10.5&nbsp;</span><a name="httpGetFd">httpGetFd</a></h3>
<p class="description">Get the file descriptor associated with a connection.</p>
<p class="code">
@@ -2086,7 +2234,7 @@ content larger than 2^31 - 1.
<h3 class="function"><span class="info">&nbsp;CUPS 1.2/OS X 10.5&nbsp;</span><a name="httpGetStatus">httpGetStatus</a></h3>
<p class="description">Get the status of the last HTTP request.</p>
<p class="code">
-<a href="#http_status_t">http_status_t</a> httpGetStatus (<br>
+http_status_t httpGetStatus (<br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#http_t">http_t</a> *http<br>
);</p>
<h4 class="parameters">Parameters</h4>
@@ -2274,6 +2422,33 @@ int httpOptions (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Status of call (0 = success)</p>
+<h3 class="function"><span class="info">&nbsp;CUPS 1.7&nbsp;</span><a name="httpPeek">httpPeek</a></h3>
+<p class="description">Peek at data from a HTTP connection.</p>
+<p class="code">
+ssize_t httpPeek (<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#http_t">http_t</a> *http,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;char *buffer,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;size_t length<br>
+);</p>
+<h4 class="parameters">Parameters</h4>
+<dl>
+<dt>http</dt>
+<dd class="description">Connection to server</dd>
+<dt>buffer</dt>
+<dd class="description">Buffer for data</dd>
+<dt>length</dt>
+<dd class="description">Maximum number of bytes</dd>
+</dl>
+<h4 class="returnvalue">Return Value</h4>
+<p class="description">Number of bytes copied</p>
+<h4 class="discussion">Discussion</h4>
+<p class="discussion">This function copies available data from the given HTTP connection, reading
+a buffer as needed. The data is still available for reading using
+<a href="#httpRead"><code>httpRead</code></a> or <a href="#httpRead2"><code>httpRead2</code></a>.<br>
+<br>
+For non-blocking connections the usual timeouts apply.
+
+</p>
<h3 class="function"><a name="httpPost">httpPost</a></h3>
<p class="description">Send a POST request to the server.</p>
<p class="code">
@@ -2349,7 +2524,26 @@ ssize_t httpRead2 (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Number of bytes read</p>
-<h3 class="function"><a name="httpReconnect">httpReconnect</a></h3>
+<h3 class="function"><span class="info">&nbsp;CUPS 1.7&nbsp;</span><a name="httpReadRequest">httpReadRequest</a></h3>
+<p class="description">Read a HTTP request from a connection.</p>
+<p class="code">
+<a href="#http_state_t">http_state_t</a> httpReadRequest (<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#http_t">http_t</a> *http,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;char *uri,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;size_t urilen<br>
+);</p>
+<h4 class="parameters">Parameters</h4>
+<dl>
+<dt>http</dt>
+<dd class="description">HTTP connection</dd>
+<dt>uri</dt>
+<dd class="description">URI buffer</dd>
+<dt>urilen</dt>
+<dd class="description">Size of URI buffer</dd>
+</dl>
+<h4 class="returnvalue">Return Value</h4>
+<p class="description">New state of connection</p>
+<h3 class="function"><span class="info">&nbsp;DEPRECATED&nbsp;</span><a name="httpReconnect">httpReconnect</a></h3>
<p class="description">Reconnect to a HTTP server.</p>
<p class="code">
int httpReconnect (<br>
@@ -2362,6 +2556,11 @@ int httpReconnect (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">0 on success, non-zero on failure</p>
+<h4 class="discussion">Discussion</h4>
+<p class="discussion">This function is deprecated. Please use the <a href="#httpReconnect2"><code>httpReconnect2</code></a> function
+instead.
+
+</p>
<h3 class="function"><a name="httpReconnect2">httpReconnect2</a></h3>
<p class="description">Reconnect to a HTTP server with timeout and optional
cancel.</p>
@@ -2561,17 +2760,19 @@ int httpSetCredentials (<br>
<p class="code">
void httpSetExpect (<br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#http_t">http_t</a> *http,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#http_status_t">http_status_t</a> expect<br>
+&nbsp;&nbsp;&nbsp;&nbsp;http_status_t expect<br>
);</p>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
<dd class="description">Connection to server</dd>
<dt>expect</dt>
-<dd class="description">HTTP status to expect (HTTP_CONTINUE)</dd>
+<dd class="description">HTTP status to expect
+(<code>HTTP_CONTINUE</code>)</dd>
</dl>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">Currently only HTTP_CONTINUE is supported for the &quot;expect&quot; argument.
+<p class="discussion">Currently only <code>HTTP_STATUS_CONTINUE</code> is supported for the &quot;expect&quot;
+argument.
</p>
<h3 class="function"><a name="httpSetField">httpSetField</a></h3>
@@ -2635,7 +2836,7 @@ data pointer and must return 1 to continue or 0 to error (time) out.
<p class="description">Return a short string describing a HTTP status code.</p>
<p class="code">
const char *httpStatus (<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<a href="#http_status_t">http_status_t</a> status<br>
+&nbsp;&nbsp;&nbsp;&nbsp;http_status_t status<br>
);</p>
<h4 class="parameters">Parameters</h4>
<dl>
@@ -2666,7 +2867,7 @@ int httpTrace (<br>
<h3 class="function"><a name="httpUpdate">httpUpdate</a></h3>
<p class="description">Update the current HTTP state for incoming data.</p>
<p class="code">
-<a href="#http_status_t">http_status_t</a> httpUpdate (<br>
+http_status_t httpUpdate (<br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#http_t">http_t</a> *http<br>
);</p>
<h4 class="parameters">Parameters</h4>
@@ -2735,6 +2936,22 @@ ssize_t httpWrite2 (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Number of bytes written</p>
+<h3 class="function"><span class="info">&nbsp;CUPS 1.7&nbsp;</span><a name="httpWriteResponse">httpWriteResponse</a></h3>
+<p class="description">Write a HTTP response to a client connection.</p>
+<p class="code">
+int httpWriteResponse (<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#http_t">http_t</a> *http,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;http_status_t status<br>
+);</p>
+<h4 class="parameters">Parameters</h4>
+<dl>
+<dt>http</dt>
+<dd class="description">HTTP connection</dd>
+<dt>status</dt>
+<dd class="description">Status code</dd>
+</dl>
+<h4 class="returnvalue">Return Value</h4>
+<p class="description">0 on success, -1 on error</p>
<h3 class="function"><a name="ippAddBoolean">ippAddBoolean</a></h3>
<p class="description">Add a boolean attribute to an IPP message.</p>
<p class="code">
@@ -2758,8 +2975,8 @@ ssize_t httpWrite2 (<br>
<h4 class="returnvalue">Return Value</h4>
<p class="description">New attribute</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using the
-<a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.<br>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
<br>
The <code>group</code> parameter specifies the IPP attribute group tag: none
(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
@@ -2792,8 +3009,8 @@ event notification (<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation
<h4 class="returnvalue">Return Value</h4>
<p class="description">New attribute</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using the
-<a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.<br>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
<br>
The <code>group</code> parameter specifies the IPP attribute group tag: none
(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
@@ -2823,8 +3040,8 @@ event notification (<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation
<h4 class="returnvalue">Return Value</h4>
<p class="description">New attribute</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using the
-<a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.<br>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
<br>
The <code>group</code> parameter specifies the IPP attribute group tag: none
(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
@@ -2859,8 +3076,8 @@ event notification (<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation
<h4 class="returnvalue">Return Value</h4>
<p class="description">New attribute</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using the
-<a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.<br>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
<br>
The <code>group</code> parameter specifies the IPP attribute group tag: none
(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
@@ -2892,8 +3109,8 @@ event notification (<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation
<h4 class="returnvalue">Return Value</h4>
<p class="description">New attribute</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using the
-<a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.<br>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
<br>
The <code>group</code> parameter specifies the IPP attribute group tag: none
(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
@@ -2926,8 +3143,8 @@ event notification (<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation
<h4 class="returnvalue">Return Value</h4>
<p class="description">New attribute</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using the
-<a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.<br>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
<br>
The <code>group</code> parameter specifies the IPP attribute group tag: none
(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
@@ -2966,8 +3183,8 @@ Supported values include enum (<code>IPP_TAG_ENUM</code>) and integer
<h4 class="returnvalue">Return Value</h4>
<p class="description">New attribute</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using the
-<a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.<br>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
<br>
The <code>group</code> parameter specifies the IPP attribute group tag: none
(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
@@ -3003,8 +3220,8 @@ Supported values include enum (<code>IPP_TAG_ENUM</code>) and integer
<h4 class="returnvalue">Return Value</h4>
<p class="description">New attribute</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using the
-<a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.<br>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
<br>
The <code>group</code> parameter specifies the IPP attribute group tag: none
(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
@@ -3036,8 +3253,8 @@ event notification (<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation
<h4 class="returnvalue">Return Value</h4>
<p class="description">New attribute</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using the
-<a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.<br>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
<br>
The <code>group</code> parameter specifies the IPP attribute group tag: none
(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
@@ -3078,8 +3295,8 @@ admin-define (<code>IPP_TAG_ADMINDEFINE</code>).
<h4 class="returnvalue">Return Value</h4>
<p class="description">New attribute</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using the
-<a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.<br>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
<br>
The <code>group</code> parameter specifies the IPP attribute group tag: none
(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
@@ -3117,8 +3334,8 @@ The <code>lower</code> parameter must be less than or equal to the <code>upper</
<h4 class="returnvalue">Return Value</h4>
<p class="description">New attribute</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using the
-<a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.<br>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
<br>
The <code>group</code> parameter specifies the IPP attribute group tag: none
(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
@@ -3154,8 +3371,8 @@ event notification (<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation
<h4 class="returnvalue">Return Value</h4>
<p class="description">New attribute</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using the
-<a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.<br>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
<br>
The <code>group</code> parameter specifies the IPP attribute group tag: none
(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
@@ -3194,8 +3411,8 @@ event notification (<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation
<h4 class="returnvalue">Return Value</h4>
<p class="description">New attribute</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using the
-<a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.<br>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
<br>
The <code>group</code> parameter specifies the IPP attribute group tag: none
(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
@@ -3216,8 +3433,8 @@ event notification (<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation
<h4 class="returnvalue">Return Value</h4>
<p class="description">New attribute</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using the
-<a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.</p>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.</p>
<h3 class="function"><a name="ippAddString">ippAddString</a></h3>
<p class="description">Add a language-encoded string to an IPP message.</p>
<p class="code">
@@ -3247,8 +3464,8 @@ event notification (<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation
<h4 class="returnvalue">Return Value</h4>
<p class="description">New attribute</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using the
-<a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.<br>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
<br>
The <code>group</code> parameter specifies the IPP attribute group tag: none
(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
@@ -3265,6 +3482,124 @@ Supported string values include charset (<code>IPP_TAG_CHARSET</code>), keyword
<br>
The <code>language</code> parameter must be non-<code>NULL</code> for nameWithLanguage and
textWithLanguage string values and must be <code>NULL</code> for all other string values.</p>
+<h3 class="function"><span class="info">&nbsp;CUPS 1.7&nbsp;</span><a name="ippAddStringf">ippAddStringf</a></h3>
+<p class="description">Add a formatted string to an IPP message.</p>
+<p class="code">
+<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddStringf (<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ipp_t">ipp_t</a> *ipp,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;ipp_tag_t group,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;ipp_tag_t value_tag,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;const char *name,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;const char *language,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;const char *format,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;...<br>
+);</p>
+<h4 class="parameters">Parameters</h4>
+<dl>
+<dt>ipp</dt>
+<dd class="description">IPP message</dd>
+<dt>group</dt>
+<dd class="description">IPP group</dd>
+<dt>value_tag</dt>
+<dd class="description">Type of attribute</dd>
+<dt>name</dt>
+<dd class="description">Name of attribute</dd>
+<dt>language</dt>
+<dd class="description">Language code (<code>NULL</code> for default)</dd>
+<dt>format</dt>
+<dd class="description">Printf-style format string</dd>
+<dt>...</dt>
+<dd class="description">Additional arguments as needed</dd>
+</dl>
+<h4 class="returnvalue">Return Value</h4>
+<p class="description">New attribute</p>
+<h4 class="discussion">Discussion</h4>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
+<br>
+The <code>group</code> parameter specifies the IPP attribute group tag: none
+(<code>IPP_TAG_ZERO</code>, for member attributes), document
+(<code>IPP_TAG_DOCUMENT</code>), event notification
+(<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation (<code>IPP_TAG_OPERATION</code>),
+printer (<code>IPP_TAG_PRINTER</code>), subscription (<code>IPP_TAG_SUBSCRIPTION</code>),
+or unsupported (<code>IPP_TAG_UNSUPPORTED_GROUP</code>).<br>
+<br>
+Supported string values include charset (<code>IPP_TAG_CHARSET</code>), keyword
+(<code>IPP_TAG_KEYWORD</code>), language (<code>IPP_TAG_LANGUAGE</code>), mimeMediaType
+(<code>IPP_TAG_MIMETYPE</code>), name (<code>IPP_TAG_NAME</code>), nameWithLanguage
+(<code>IPP_TAG_NAMELANG), text (</code>code IPP_TAG_TEXT@), textWithLanguage
+(<code>IPP_TAG_TEXTLANG</code>), uri (<code>IPP_TAG_URI</code>), and uriScheme
+(<code>IPP_TAG_URISCHEME</code>).<br>
+<br>
+The <code>language</code> parameter must be non-<code>NULL</code> for nameWithLanguage
+and textWithLanguage string values and must be <code>NULL</code> for all other
+string values.<br>
+<br>
+The <code>format</code> parameter uses formatting characters compatible with the
+printf family of standard functions. Additional arguments follow it as
+needed. The formatted string is truncated as needed to the maximum length of
+the corresponding value type.
+
+</p>
+<h3 class="function"><span class="info">&nbsp;CUPS 1.7&nbsp;</span><a name="ippAddStringfv">ippAddStringfv</a></h3>
+<p class="description">Add a formatted string to an IPP message.</p>
+<p class="code">
+<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddStringfv (<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ipp_t">ipp_t</a> *ipp,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;ipp_tag_t group,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;ipp_tag_t value_tag,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;const char *name,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;const char *language,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;const char *format,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;va_list ap<br>
+);</p>
+<h4 class="parameters">Parameters</h4>
+<dl>
+<dt>ipp</dt>
+<dd class="description">IPP message</dd>
+<dt>group</dt>
+<dd class="description">IPP group</dd>
+<dt>value_tag</dt>
+<dd class="description">Type of attribute</dd>
+<dt>name</dt>
+<dd class="description">Name of attribute</dd>
+<dt>language</dt>
+<dd class="description">Language code (<code>NULL</code> for default)</dd>
+<dt>format</dt>
+<dd class="description">Printf-style format string</dd>
+<dt>ap</dt>
+<dd class="description">Additional arguments</dd>
+</dl>
+<h4 class="returnvalue">Return Value</h4>
+<p class="description">New attribute</p>
+<h4 class="discussion">Discussion</h4>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
+<br>
+The <code>group</code> parameter specifies the IPP attribute group tag: none
+(<code>IPP_TAG_ZERO</code>, for member attributes), document
+(<code>IPP_TAG_DOCUMENT</code>), event notification
+(<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation (<code>IPP_TAG_OPERATION</code>),
+printer (<code>IPP_TAG_PRINTER</code>), subscription (<code>IPP_TAG_SUBSCRIPTION</code>),
+or unsupported (<code>IPP_TAG_UNSUPPORTED_GROUP</code>).<br>
+<br>
+Supported string values include charset (<code>IPP_TAG_CHARSET</code>), keyword
+(<code>IPP_TAG_KEYWORD</code>), language (<code>IPP_TAG_LANGUAGE</code>), mimeMediaType
+(<code>IPP_TAG_MIMETYPE</code>), name (<code>IPP_TAG_NAME</code>), nameWithLanguage
+(<code>IPP_TAG_NAMELANG), text (</code>code IPP_TAG_TEXT@), textWithLanguage
+(<code>IPP_TAG_TEXTLANG</code>), uri (<code>IPP_TAG_URI</code>), and uriScheme
+(<code>IPP_TAG_URISCHEME</code>).<br>
+<br>
+The <code>language</code> parameter must be non-<code>NULL</code> for nameWithLanguage
+and textWithLanguage string values and must be <code>NULL</code> for all other
+string values.<br>
+<br>
+The <code>format</code> parameter uses formatting characters compatible with the
+printf family of standard functions. Additional arguments are passed in the
+stdarg pointer <code>ap</code>. The formatted string is truncated as needed to the
+maximum length of the corresponding value type.
+
+</p>
<h3 class="function"><a name="ippAddStrings">ippAddStrings</a></h3>
<p class="description">Add language-encoded strings to an IPP message.</p>
<p class="code">
@@ -3297,8 +3632,8 @@ textWithLanguage string values and must be <code>NULL</code> for all other strin
<h4 class="returnvalue">Return Value</h4>
<p class="description">New attribute</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using the
-<a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.<br>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
<br>
The <code>group</code> parameter specifies the IPP attribute group tag: none
(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
@@ -3340,6 +3675,51 @@ trailing nul. The buffer pointer can be NULL to get the required length,
just like (v)snprintf.
</p>
+<h3 class="function"><span class="info">&nbsp;CUPS 1.7&nbsp;</span><a name="ippContainsInteger">ippContainsInteger</a></h3>
+<p class="description">Determine whether an attribute contains the
+specified value or is within the list of ranges.</p>
+<p class="code">
+int ippContainsInteger (<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ipp_attribute_t">ipp_attribute_t</a> *attr,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;int value<br>
+);</p>
+<h4 class="parameters">Parameters</h4>
+<dl>
+<dt>attr</dt>
+<dd class="description">Attribute</dd>
+<dt>value</dt>
+<dd class="description">Integer/enum value</dd>
+</dl>
+<h4 class="returnvalue">Return Value</h4>
+<p class="description">1 on a match, 0 on no match</p>
+<h4 class="discussion">Discussion</h4>
+<p class="discussion">Returns non-zero when the attribute contains either a matching integer or
+enum value, or the value falls within one of the rangeOfInteger values for
+the attribute.
+
+</p>
+<h3 class="function"><span class="info">&nbsp;CUPS 1.7&nbsp;</span><a name="ippContainsString">ippContainsString</a></h3>
+<p class="description">Determine whether an attribute contains the
+specified string value.</p>
+<p class="code">
+int ippContainsString (<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ipp_attribute_t">ipp_attribute_t</a> *attr,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;const char *value<br>
+);</p>
+<h4 class="parameters">Parameters</h4>
+<dl>
+<dt>attr</dt>
+<dd class="description">Attribute</dd>
+<dt>value</dt>
+<dd class="description">String value</dd>
+</dl>
+<h4 class="returnvalue">Return Value</h4>
+<p class="description">1 on a match, 0 on no match</p>
+<h4 class="discussion">Discussion</h4>
+<p class="discussion">Returns non-zero when the attribute contains a matching charset, keyword,
+language, mimeMediaType, name, text, URI, or URI scheme value.
+
+</p>
<h3 class="function"><span class="info">&nbsp;CUPS 1.6/OS X 10.8&nbsp;</span><a name="ippCopyAttribute">ippCopyAttribute</a></h3>
<p class="description">Copy an attribute.</p>
<p class="code">
@@ -3898,6 +4278,28 @@ attributes-natural-language attributes added. The
attributes-natural-language value is derived from the current locale.
</p>
+<h3 class="function"><span class="info">&nbsp;CUPS 1.7&nbsp;</span><a name="ippNewResponse">ippNewResponse</a></h3>
+<p class="description">Allocate a new IPP response message.</p>
+<p class="code">
+<a href="#ipp_t">ipp_t</a> *ippNewResponse (<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ipp_t">ipp_t</a> *request<br>
+);</p>
+<h4 class="parameters">Parameters</h4>
+<dl>
+<dt>request</dt>
+<dd class="description">IPP request message</dd>
+</dl>
+<h4 class="returnvalue">Return Value</h4>
+<p class="description">IPP response message</p>
+<h4 class="discussion">Discussion</h4>
+<p class="discussion">The new response message is initialized with the same version-number,
+request-id, attributes-charset, and attributes-natural-language as the
+provided request message. If the attributes-charset or
+attributes-natural-language attributes are missing from the request,
+&quot;utf-8&quot; and a value derived from the current locale are substituted,
+respectively.
+
+</p>
<h3 class="function"><span class="info">&nbsp;CUPS 1.6/OS X 10.8&nbsp;</span><a name="ippNextAttribute">ippNextAttribute</a></h3>
<p class="description">Return the next attribute in the message.</p>
<p class="code">
@@ -4023,8 +4425,8 @@ int ippSetBoolean (<br>
<h4 class="returnvalue">Return Value</h4>
<p class="description">1 on success, 0 on failure</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to the IPP message containing the attribute that was
-previously created using the <a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.<br>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
<br>
The <code>attr</code> parameter may be modified as a result of setting the value.<br>
<br>
@@ -4055,8 +4457,8 @@ int ippSetCollection (<br>
<h4 class="returnvalue">Return Value</h4>
<p class="description">1 on success, 0 on failure</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to the IPP message containing the attribute that was
-previously created using the <a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.<br>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
<br>
The <code>attr</code> parameter may be modified as a result of setting the value.<br>
<br>
@@ -4087,8 +4489,8 @@ int ippSetDate (<br>
<h4 class="returnvalue">Return Value</h4>
<p class="description">1 on success, 0 on failure</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to the IPP message containing the attribute that was
-previously created using the <a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.<br>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
<br>
The <code>attr</code> parameter may be modified as a result of setting the value.<br>
<br>
@@ -4116,8 +4518,8 @@ int ippSetGroupTag (<br>
<h4 class="returnvalue">Return Value</h4>
<p class="description">1 on success, 0 on failure</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to the IPP message containing the attribute that was
-previously created using the <a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.<br>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
<br>
The <code>attr</code> parameter may be modified as a result of setting the value.<br>
<br>
@@ -4151,8 +4553,8 @@ int ippSetInteger (<br>
<h4 class="returnvalue">Return Value</h4>
<p class="description">1 on success, 0 on failure</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to the IPP message containing the attribute that was
-previously created using the <a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.<br>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
<br>
The <code>attr</code> parameter may be modified as a result of setting the value.<br>
<br>
@@ -4180,8 +4582,8 @@ int ippSetName (<br>
<h4 class="returnvalue">Return Value</h4>
<p class="description">1 on success, 0 on failure</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to the IPP message containing the attribute that was
-previously created using the <a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.<br>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
<br>
The <code>attr</code> parameter may be modified as a result of setting the value.
@@ -4203,8 +4605,8 @@ int ippSetOperation (<br>
<h4 class="returnvalue">Return Value</h4>
<p class="description">1 on success, 0 on failure</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using the
-<a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.
</p>
<h3 class="function"><a name="ippSetPort">ippSetPort</a></h3>
@@ -4244,8 +4646,8 @@ int ippSetRange (<br>
<h4 class="returnvalue">Return Value</h4>
<p class="description">1 on success, 0 on failure</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to the IPP message containing the attribute that was
-previously created using the <a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.<br>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
<br>
The <code>attr</code> parameter may be modified as a result of setting the value.<br>
<br>
@@ -4270,8 +4672,8 @@ int ippSetRequestId (<br>
<h4 class="returnvalue">Return Value</h4>
<p class="description">1 on success, 0 on failure</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using the
-<a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.<br>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
<br>
The <code>request_id</code> parameter must be greater than 0.
@@ -4305,8 +4707,8 @@ int ippSetResolution (<br>
<h4 class="returnvalue">Return Value</h4>
<p class="description">1 on success, 0 on failure</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to the IPP message containing the attribute that was
-previously created using the <a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.<br>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
<br>
The <code>attr</code> parameter may be modified as a result of setting the value.<br>
<br>
@@ -4347,8 +4749,8 @@ int ippSetStatusCode (<br>
<h4 class="returnvalue">Return Value</h4>
<p class="description">1 on success, 0 on failure</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using the
-<a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.
</p>
<h3 class="function"><span class="info">&nbsp;CUPS 1.6/OS X 10.8&nbsp;</span><a name="ippSetString">ippSetString</a></h3>
@@ -4374,8 +4776,8 @@ int ippSetString (<br>
<h4 class="returnvalue">Return Value</h4>
<p class="description">1 on success, 0 on failure</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to the IPP message containing the attribute that was
-previously created using the <a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.<br>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
<br>
The <code>attr</code> parameter may be modified as a result of setting the value.<br>
<br>
@@ -4383,6 +4785,86 @@ The <code>element</code> parameter specifies which value to set from 0 to
<a href="#ippGetCount(attr)"><code>ippGetCount(attr)</code></a>.
</p>
+<h3 class="function"><span class="info">&nbsp;CUPS 1.7&nbsp;</span><a name="ippSetStringf">ippSetStringf</a></h3>
+<p class="description">Set a formatted string value of an attribute.</p>
+<p class="code">
+int ippSetStringf (<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ipp_t">ipp_t</a> *ipp,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ipp_attribute_t">ipp_attribute_t</a> **attr,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;int element,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;const char *format,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;...<br>
+);</p>
+<h4 class="parameters">Parameters</h4>
+<dl>
+<dt>ipp</dt>
+<dd class="description">IPP message</dd>
+<dt>attr</dt>
+<dd class="description">IPP attribute</dd>
+<dt>element</dt>
+<dd class="description">Value number (0-based)</dd>
+<dt>format</dt>
+<dd class="description">Printf-style format string</dd>
+<dt>...</dt>
+<dd class="description">Additional arguments as needed</dd>
+</dl>
+<h4 class="returnvalue">Return Value</h4>
+<p class="description">1 on success, 0 on failure</p>
+<h4 class="discussion">Discussion</h4>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
+<br>
+The <code>attr</code> parameter may be modified as a result of setting the value.<br>
+<br>
+The <code>element</code> parameter specifies which value to set from 0 to
+<a href="#ippGetCount(attr)"><code>ippGetCount(attr)</code></a>.<br>
+<br>
+The <code>format</code> parameter uses formatting characters compatible with the
+printf family of standard functions. Additional arguments follow it as
+needed. The formatted string is truncated as needed to the maximum length of
+the corresponding value type.
+
+</p>
+<h3 class="function"><span class="info">&nbsp;CUPS 1.7&nbsp;</span><a name="ippSetStringfv">ippSetStringfv</a></h3>
+<p class="description">Set a formatted string value of an attribute.</p>
+<p class="code">
+int ippSetStringfv (<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ipp_t">ipp_t</a> *ipp,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ipp_attribute_t">ipp_attribute_t</a> **attr,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;int element,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;const char *format,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;va_list ap<br>
+);</p>
+<h4 class="parameters">Parameters</h4>
+<dl>
+<dt>ipp</dt>
+<dd class="description">IPP message</dd>
+<dt>attr</dt>
+<dd class="description">IPP attribute</dd>
+<dt>element</dt>
+<dd class="description">Value number (0-based)</dd>
+<dt>format</dt>
+<dd class="description">Printf-style format string</dd>
+<dt>ap</dt>
+<dd class="description">Pointer to additional arguments</dd>
+</dl>
+<h4 class="returnvalue">Return Value</h4>
+<p class="description">1 on success, 0 on failure</p>
+<h4 class="discussion">Discussion</h4>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
+<br>
+The <code>attr</code> parameter may be modified as a result of setting the value.<br>
+<br>
+The <code>element</code> parameter specifies which value to set from 0 to
+<a href="#ippGetCount(attr)"><code>ippGetCount(attr)</code></a>.<br>
+<br>
+The <code>format</code> parameter uses formatting characters compatible with the
+printf family of standard functions. Additional arguments follow it as
+needed. The formatted string is truncated as needed to the maximum length of
+the corresponding value type.
+
+</p>
<h3 class="function"><span class="info">&nbsp;CUPS 1.6/OS X 10.8&nbsp;</span><a name="ippSetValueTag">ippSetValueTag</a></h3>
<p class="description">Set the value tag of an attribute.</p>
<p class="code">
@@ -4403,8 +4885,8 @@ int ippSetValueTag (<br>
<h4 class="returnvalue">Return Value</h4>
<p class="description">1 on success, 0 on failure</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to the IPP message containing the attribute that was
-previously created using the <a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.<br>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
<br>
The <code>attr</code> parameter may be modified as a result of setting the value.<br>
<br>
@@ -4441,8 +4923,8 @@ int ippSetVersion (<br>
<h4 class="returnvalue">Return Value</h4>
<p class="description">1 on success, 0 on failure</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using the
-<a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.<br>
+<p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
+the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
<br>
The valid version numbers are currently 1.0, 1.1, 2.0, 2.1, and 2.2.
@@ -4607,12 +5089,7 @@ typedef enum <a href="#http_keepalive_e">http_keepalive_e</a> http_keepalive_t;
<p class="description">HTTP state values; states
are server-oriented...</p>
<p class="code">
-typedef enum <a href="#http_state_e">http_state_e</a> / http_state_t;
-</p>
-<h3 class="typedef"><a name="http_status_t">http_status_t</a></h3>
-<p class="description">HTTP status codes</p>
-<p class="code">
-typedef enum <a href="#http_status_e">http_status_e</a> http_status_t;
+typedef enum <a href="#http_state_e">http_state_e</a> http_state_t;
</p>
<h3 class="typedef"><a name="http_t">http_t</a></h3>
<p class="description">HTTP connection type</p>
@@ -4657,9 +5134,9 @@ typedef int (*ipp_copycb_t)(void *context, <a href="#ipp_t">ipp_t</a> *dst, <a h
typedef enum <a href="#ipp_dstate_e">ipp_dstate_e</a> ipp_dstate_t;
</p>
<h3 class="typedef"><a name="ipp_finish_t">ipp_finish_t</a></h3>
-<p class="description">Finishings</p>
+<p class="description">Job collation types</p>
<p class="code">
-typedef enum <a href="#ipp_finish_e">ipp_finish_e</a> ipp_finish_t;
+typedef enum <a href="#ipp_finishings_e">ipp_finishings_e</a> ipp_finish_t;
</p>
<h3 class="typedef"><span class="info">&nbsp;CUPS 1.2/OS X 10.5&nbsp;</span><a name="ipp_iocb_t">ipp_iocb_t</a></h3>
<p class="description">IPP IO Callback Function </p>
@@ -4790,34 +5267,38 @@ with a hostname. </p>
<p class="description">HTTP transfer encoding values</p>
<h4 class="constants">Constants</h4>
<dl>
-<dt>HTTP_ENCODE_CHUNKED </dt>
+<dt>HTTP_ENCODING_CHUNKED </dt>
<dd class="description">Data is chunked</dd>
-<dt>HTTP_ENCODE_FIELDS </dt>
+<dt>HTTP_ENCODING_FIELDS </dt>
<dd class="description">Sending HTTP fields</dd>
-<dt>HTTP_ENCODE_LENGTH </dt>
+<dt>HTTP_ENCODING_LENGTH </dt>
<dd class="description">Data is sent with Content-Length</dd>
</dl>
<h3 class="enumeration"><a name="http_encryption_e">http_encryption_e</a></h3>
<p class="description">HTTP encryption values</p>
<h4 class="constants">Constants</h4>
<dl>
-<dt>HTTP_ENCRYPT_ALWAYS </dt>
+<dt>HTTP_ENCRYPTION_ALWAYS </dt>
<dd class="description">Always encrypt (SSL)</dd>
-<dt>HTTP_ENCRYPT_IF_REQUESTED </dt>
+<dt>HTTP_ENCRYPTION_IF_REQUESTED </dt>
<dd class="description">Encrypt if requested (TLS upgrade)</dd>
-<dt>HTTP_ENCRYPT_NEVER </dt>
+<dt>HTTP_ENCRYPTION_NEVER </dt>
<dd class="description">Never encrypt</dd>
-<dt>HTTP_ENCRYPT_REQUIRED </dt>
+<dt>HTTP_ENCRYPTION_REQUIRED </dt>
<dd class="description">Encryption is required (TLS upgrade)</dd>
</dl>
<h3 class="enumeration"><a name="http_field_e">http_field_e</a></h3>
<p class="description">HTTP field names</p>
<h4 class="constants">Constants</h4>
<dl>
+<dt>HTTP_FIELD_ACCEPT_ENCODING <span class="info">&nbsp;CUPS 1.7&nbsp;</span></dt>
+<dd class="description">Accepting-Encoding field </dd>
<dt>HTTP_FIELD_ACCEPT_LANGUAGE </dt>
<dd class="description">Accept-Language field</dd>
<dt>HTTP_FIELD_ACCEPT_RANGES </dt>
<dd class="description">Accept-Ranges field</dd>
+<dt>HTTP_FIELD_ALLOW <span class="info">&nbsp;CUPS 1.7&nbsp;</span></dt>
+<dd class="description">Allow field </dd>
<dt>HTTP_FIELD_AUTHORIZATION </dt>
<dd class="description">Authorization field</dd>
<dt>HTTP_FIELD_CONNECTION </dt>
@@ -4862,6 +5343,8 @@ with a hostname. </p>
<dd class="description">Referer field</dd>
<dt>HTTP_FIELD_RETRY_AFTER </dt>
<dd class="description">Retry-After field</dd>
+<dt>HTTP_FIELD_SERVER <span class="info">&nbsp;CUPS 1.7&nbsp;</span></dt>
+<dd class="description">Server field </dd>
<dt>HTTP_FIELD_TRANSFER_ENCODING </dt>
<dd class="description">Transfer-Encoding field</dd>
<dt>HTTP_FIELD_UNKNOWN </dt>
@@ -4887,124 +5370,132 @@ with a hostname. </p>
are server-oriented...</p>
<h4 class="constants">Constants</h4>
<dl>
-<dt>HTTP_CLOSE </dt>
-<dd class="description">CLOSE command, waiting for blank line</dd>
-<dt>HTTP_DELETE </dt>
+<dt>HTTP_STATE_CONNECT </dt>
+<dd class="description">CONNECT command, waiting for blank line</dd>
+<dt>HTTP_STATE_DELETE </dt>
<dd class="description">DELETE command, waiting for blank line</dd>
-<dt>HTTP_GET </dt>
+<dt>HTTP_STATE_ERROR </dt>
+<dd class="description">Error on socket</dd>
+<dt>HTTP_STATE_GET </dt>
<dd class="description">GET command, waiting for blank line</dd>
-<dt>HTTP_GET_SEND </dt>
+<dt>HTTP_STATE_GET_SEND </dt>
<dd class="description">GET command, sending data</dd>
-<dt>HTTP_HEAD </dt>
+<dt>HTTP_STATE_HEAD </dt>
<dd class="description">HEAD command, waiting for blank line</dd>
-<dt>HTTP_OPTIONS </dt>
+<dt>HTTP_STATE_OPTIONS </dt>
<dd class="description">OPTIONS command, waiting for blank line</dd>
-<dt>HTTP_POST </dt>
+<dt>HTTP_STATE_POST </dt>
<dd class="description">POST command, waiting for blank line</dd>
-<dt>HTTP_POST_RECV </dt>
+<dt>HTTP_STATE_POST_RECV </dt>
<dd class="description">POST command, receiving data</dd>
-<dt>HTTP_POST_SEND </dt>
+<dt>HTTP_STATE_POST_SEND </dt>
<dd class="description">POST command, sending data</dd>
-<dt>HTTP_PUT </dt>
+<dt>HTTP_STATE_PUT </dt>
<dd class="description">PUT command, waiting for blank line</dd>
-<dt>HTTP_PUT_RECV </dt>
+<dt>HTTP_STATE_PUT_RECV </dt>
<dd class="description">PUT command, receiving data</dd>
-<dt>HTTP_STATUS </dt>
+<dt>HTTP_STATE_STATUS </dt>
<dd class="description">Command complete, sending status</dd>
-<dt>HTTP_TRACE </dt>
+<dt>HTTP_STATE_TRACE </dt>
<dd class="description">TRACE command, waiting for blank line</dd>
-<dt>HTTP_WAITING </dt>
+<dt>HTTP_STATE_UNKNOWN_METHOD <span class="info">&nbsp;CUPS 1.7&nbsp;</span></dt>
+<dd class="description">Unknown request method, waiting for blank line </dd>
+<dt>HTTP_STATE_UNKNOWN_VERSION <span class="info">&nbsp;CUPS 1.7&nbsp;</span></dt>
+<dd class="description">Unknown request method, waiting for blank line </dd>
+<dt>HTTP_STATE_WAITING </dt>
<dd class="description">Waiting for command</dd>
</dl>
<h3 class="enumeration"><a name="http_status_e">http_status_e</a></h3>
<p class="description">HTTP status codes</p>
<h4 class="constants">Constants</h4>
<dl>
-<dt>HTTP_ACCEPTED </dt>
-<dd class="description">DELETE command was successful</dd>
-<dt>HTTP_AUTHORIZATION_CANCELED <span class="info">&nbsp;CUPS 1.4&nbsp;</span></dt>
+<dt>CUPS_STATUS_AUTHORIZATION_CANCELED <span class="info">&nbsp;CUPS 1.4&nbsp;</span></dt>
<dd class="description">User canceled authorization </dd>
-<dt>HTTP_BAD_GATEWAY </dt>
+<dt>CUPS_STATUS_PKI_ERROR <span class="info">&nbsp;CUPS 1.5/OS X 10.7&nbsp;</span></dt>
+<dd class="description">Error negotiating a secure connection </dd>
+<dt>HTTP_STATUS_ACCEPTED </dt>
+<dd class="description">DELETE command was successful</dd>
+<dt>HTTP_STATUS_BAD_GATEWAY </dt>
<dd class="description">Bad gateway</dd>
-<dt>HTTP_BAD_REQUEST </dt>
+<dt>HTTP_STATUS_BAD_REQUEST </dt>
<dd class="description">Bad request</dd>
-<dt>HTTP_CONFLICT </dt>
+<dt>HTTP_STATUS_CONFLICT </dt>
<dd class="description">Request is self-conflicting</dd>
-<dt>HTTP_CONTINUE </dt>
+<dt>HTTP_STATUS_CONTINUE </dt>
<dd class="description">Everything OK, keep going...</dd>
-<dt>HTTP_CREATED </dt>
+<dt>HTTP_STATUS_CREATED </dt>
<dd class="description">PUT command was successful</dd>
-<dt>HTTP_ERROR </dt>
+<dt>HTTP_STATUS_ERROR </dt>
<dd class="description">An error response from httpXxxx()</dd>
-<dt>HTTP_EXPECTATION_FAILED </dt>
+<dt>HTTP_STATUS_EXPECTATION_FAILED </dt>
<dd class="description">The expectation given in an Expect header field was not met</dd>
-<dt>HTTP_FORBIDDEN </dt>
+<dt>HTTP_STATUS_FORBIDDEN </dt>
<dd class="description">Forbidden to access this URI</dd>
-<dt>HTTP_GATEWAY_TIMEOUT </dt>
+<dt>HTTP_STATUS_GATEWAY_TIMEOUT </dt>
<dd class="description">Gateway connection timed out</dd>
-<dt>HTTP_GONE </dt>
+<dt>HTTP_STATUS_GONE </dt>
<dd class="description">Server has gone away</dd>
-<dt>HTTP_LENGTH_REQUIRED </dt>
+<dt>HTTP_STATUS_LENGTH_REQUIRED </dt>
<dd class="description">A content length or encoding is required</dd>
-<dt>HTTP_METHOD_NOT_ALLOWED </dt>
+<dt>HTTP_STATUS_METHOD_NOT_ALLOWED </dt>
<dd class="description">Method is not allowed</dd>
-<dt>HTTP_MOVED_PERMANENTLY </dt>
+<dt>HTTP_STATUS_MOVED_PERMANENTLY </dt>
<dd class="description">Document has moved permanently</dd>
-<dt>HTTP_MOVED_TEMPORARILY </dt>
+<dt>HTTP_STATUS_MOVED_TEMPORARILY </dt>
<dd class="description">Document has moved temporarily</dd>
-<dt>HTTP_MULTIPLE_CHOICES </dt>
+<dt>HTTP_STATUS_MULTIPLE_CHOICES </dt>
<dd class="description">Multiple files match request</dd>
-<dt>HTTP_NOT_ACCEPTABLE </dt>
+<dt>HTTP_STATUS_NONE <span class="info">&nbsp;CUPS 1.7&nbsp;</span></dt>
+<dd class="description">No Expect value </dd>
+<dt>HTTP_STATUS_NOT_ACCEPTABLE </dt>
<dd class="description">Not Acceptable</dd>
-<dt>HTTP_NOT_AUTHORITATIVE </dt>
+<dt>HTTP_STATUS_NOT_AUTHORITATIVE </dt>
<dd class="description">Information isn't authoritative</dd>
-<dt>HTTP_NOT_FOUND </dt>
+<dt>HTTP_STATUS_NOT_FOUND </dt>
<dd class="description">URI was not found</dd>
-<dt>HTTP_NOT_IMPLEMENTED </dt>
+<dt>HTTP_STATUS_NOT_IMPLEMENTED </dt>
<dd class="description">Feature not implemented</dd>
-<dt>HTTP_NOT_MODIFIED </dt>
+<dt>HTTP_STATUS_NOT_MODIFIED </dt>
<dd class="description">File not modified</dd>
-<dt>HTTP_NOT_SUPPORTED </dt>
+<dt>HTTP_STATUS_NOT_SUPPORTED </dt>
<dd class="description">HTTP version not supported</dd>
-<dt>HTTP_NO_CONTENT </dt>
+<dt>HTTP_STATUS_NO_CONTENT </dt>
<dd class="description">Successful command, no new data</dd>
-<dt>HTTP_OK </dt>
+<dt>HTTP_STATUS_OK </dt>
<dd class="description">OPTIONS/GET/HEAD/POST/TRACE command was successful</dd>
-<dt>HTTP_PARTIAL_CONTENT </dt>
+<dt>HTTP_STATUS_PARTIAL_CONTENT </dt>
<dd class="description">Only a partial file was recieved/sent</dd>
-<dt>HTTP_PAYMENT_REQUIRED </dt>
+<dt>HTTP_STATUS_PAYMENT_REQUIRED </dt>
<dd class="description">Payment required</dd>
-<dt>HTTP_PKI_ERROR <span class="info">&nbsp;CUPS 1.5/OS X 10.7&nbsp;</span></dt>
-<dd class="description">Error negotiating a secure connection </dd>
-<dt>HTTP_PRECONDITION </dt>
+<dt>HTTP_STATUS_PRECONDITION </dt>
<dd class="description">Precondition failed</dd>
-<dt>HTTP_PROXY_AUTHENTICATION </dt>
+<dt>HTTP_STATUS_PROXY_AUTHENTICATION </dt>
<dd class="description">Proxy Authentication is Required</dd>
-<dt>HTTP_REQUESTED_RANGE </dt>
+<dt>HTTP_STATUS_REQUESTED_RANGE </dt>
<dd class="description">The requested range is not satisfiable</dd>
-<dt>HTTP_REQUEST_TIMEOUT </dt>
+<dt>HTTP_STATUS_REQUEST_TIMEOUT </dt>
<dd class="description">Request timed out</dd>
-<dt>HTTP_REQUEST_TOO_LARGE </dt>
+<dt>HTTP_STATUS_REQUEST_TOO_LARGE </dt>
<dd class="description">Request entity too large</dd>
-<dt>HTTP_RESET_CONTENT </dt>
+<dt>HTTP_STATUS_RESET_CONTENT </dt>
<dd class="description">Content was reset/recreated</dd>
-<dt>HTTP_SEE_OTHER </dt>
+<dt>HTTP_STATUS_SEE_OTHER </dt>
<dd class="description">See this other link...</dd>
-<dt>HTTP_SERVER_ERROR </dt>
+<dt>HTTP_STATUS_SERVER_ERROR </dt>
<dd class="description">Internal server error</dd>
-<dt>HTTP_SERVICE_UNAVAILABLE </dt>
+<dt>HTTP_STATUS_SERVICE_UNAVAILABLE </dt>
<dd class="description">Service is unavailable</dd>
-<dt>HTTP_SWITCHING_PROTOCOLS </dt>
+<dt>HTTP_STATUS_SWITCHING_PROTOCOLS </dt>
<dd class="description">HTTP upgrade to TLS/SSL</dd>
-<dt>HTTP_UNAUTHORIZED </dt>
+<dt>HTTP_STATUS_UNAUTHORIZED </dt>
<dd class="description">Unauthorized to access host</dd>
-<dt>HTTP_UNSUPPORTED_MEDIATYPE </dt>
+<dt>HTTP_STATUS_UNSUPPORTED_MEDIATYPE </dt>
<dd class="description">The requested media type is unsupported</dd>
-<dt>HTTP_UPGRADE_REQUIRED </dt>
+<dt>HTTP_STATUS_UPGRADE_REQUIRED </dt>
<dd class="description">Upgrade to SSL/TLS required</dd>
-<dt>HTTP_URI_TOO_LONG </dt>
+<dt>HTTP_STATUS_URI_TOO_LONG </dt>
<dd class="description">URI too long</dd>
-<dt>HTTP_USE_PROXY </dt>
+<dt>HTTP_STATUS_USE_PROXY </dt>
<dd class="description">Must use a proxy to access this URI</dd>
</dl>
<h3 class="enumeration"><a name="http_uri_coding_e">http_uri_coding_e</a></h3>
@@ -5030,40 +5521,40 @@ are server-oriented...</p>
<p class="description">URI separation status </p>
<h4 class="constants">Constants</h4>
<dl>
-<dt>HTTP_URI_BAD_ARGUMENTS </dt>
+<dt>HTTP_URI_STATUS_BAD_ARGUMENTS </dt>
<dd class="description">Bad arguments to function (error)</dd>
-<dt>HTTP_URI_BAD_HOSTNAME </dt>
+<dt>HTTP_URI_STATUS_BAD_HOSTNAME </dt>
<dd class="description">Bad hostname in URI (error)</dd>
-<dt>HTTP_URI_BAD_PORT </dt>
+<dt>HTTP_URI_STATUS_BAD_PORT </dt>
<dd class="description">Bad port number in URI (error)</dd>
-<dt>HTTP_URI_BAD_RESOURCE </dt>
+<dt>HTTP_URI_STATUS_BAD_RESOURCE </dt>
<dd class="description">Bad resource in URI (error)</dd>
-<dt>HTTP_URI_BAD_SCHEME </dt>
+<dt>HTTP_URI_STATUS_BAD_SCHEME </dt>
<dd class="description">Bad scheme in URI (error)</dd>
-<dt>HTTP_URI_BAD_URI </dt>
+<dt>HTTP_URI_STATUS_BAD_URI </dt>
<dd class="description">Bad/empty URI (error)</dd>
-<dt>HTTP_URI_BAD_USERNAME </dt>
+<dt>HTTP_URI_STATUS_BAD_USERNAME </dt>
<dd class="description">Bad username in URI (error)</dd>
-<dt>HTTP_URI_MISSING_RESOURCE </dt>
+<dt>HTTP_URI_STATUS_MISSING_RESOURCE </dt>
<dd class="description">Missing resource in URI (warning)</dd>
-<dt>HTTP_URI_MISSING_SCHEME </dt>
+<dt>HTTP_URI_STATUS_MISSING_SCHEME </dt>
<dd class="description">Missing scheme in URI (warning)</dd>
-<dt>HTTP_URI_OK </dt>
+<dt>HTTP_URI_STATUS_OK </dt>
<dd class="description">URI decoded OK</dd>
-<dt>HTTP_URI_OVERFLOW </dt>
+<dt>HTTP_URI_STATUS_OVERFLOW </dt>
<dd class="description">URI buffer for httpAssembleURI is too small</dd>
-<dt>HTTP_URI_UNKNOWN_SCHEME </dt>
+<dt>HTTP_URI_STATUS_UNKNOWN_SCHEME </dt>
<dd class="description">Unknown scheme in URI (warning)</dd>
</dl>
<h3 class="enumeration"><a name="http_version_e">http_version_e</a></h3>
<p class="description">HTTP version numbers</p>
<h4 class="constants">Constants</h4>
<dl>
-<dt>HTTP_0_9 </dt>
+<dt>HTTP_VERSION_0_9 </dt>
<dd class="description">HTTP/0.9</dd>
-<dt>HTTP_1_0 </dt>
+<dt>HTTP_VERSION_1_0 </dt>
<dd class="description">HTTP/1.0</dd>
-<dt>HTTP_1_1 </dt>
+<dt>HTTP_VERSION_1_1 </dt>
<dd class="description">HTTP/1.1</dd>
</dl>
<h3 class="enumeration"><a name="ipp_dstate_e">ipp_dstate_e</a></h3>
@@ -5071,12 +5562,17 @@ are server-oriented...</p>
<h4 class="constants">Constants</h4>
<dl>
<dt>IPP_DOCUMENT_ABORTED </dt>
+<dd class="description">Document is aborted</dd>
<dt>IPP_DOCUMENT_CANCELED </dt>
+<dd class="description">Document is canceled</dd>
<dt>IPP_DOCUMENT_COMPLETED </dt>
+<dd class="description">Document is completed</dd>
<dt>IPP_DOCUMENT_PENDING </dt>
+<dd class="description">Document is pending</dd>
<dt>IPP_DOCUMENT_PROCESSING </dt>
+<dd class="description">Document is processing</dd>
</dl>
-<h3 class="enumeration"><a name="ipp_finish_e">ipp_finish_e</a></h3>
+<h3 class="enumeration"><a name="ipp_finishings_e">ipp_finishings_e</a></h3>
<p class="description">Finishings</p>
<h4 class="constants">Constants</h4>
<dl>
@@ -5096,6 +5592,38 @@ are server-oriented...</p>
<dd class="description">Fold to make booklet</dd>
<dt>IPP_FINISHINGS_COVER </dt>
<dd class="description">Add cover</dd>
+<dt>IPP_FINISHINGS_CUPS_PUNCH_BOTTOM_LEFT </dt>
+<dd class="description">Punch 1 hole bottom left</dd>
+<dt>IPP_FINISHINGS_CUPS_PUNCH_BOTTOM_RIGHT </dt>
+<dd class="description">Punch 1 hole bottom right</dd>
+<dt>IPP_FINISHINGS_CUPS_PUNCH_DUAL_BOTTOM </dt>
+<dd class="description">Punch 2 holes bottom edge</dd>
+<dt>IPP_FINISHINGS_CUPS_PUNCH_DUAL_LEFT </dt>
+<dd class="description">Punch 2 holes left side</dd>
+<dt>IPP_FINISHINGS_CUPS_PUNCH_DUAL_RIGHT </dt>
+<dd class="description">Punch 2 holes right side</dd>
+<dt>IPP_FINISHINGS_CUPS_PUNCH_DUAL_TOP </dt>
+<dd class="description">Punch 2 holes top edge</dd>
+<dt>IPP_FINISHINGS_CUPS_PUNCH_QUAD_BOTTOM </dt>
+<dd class="description">Punch 4 holes bottom edge</dd>
+<dt>IPP_FINISHINGS_CUPS_PUNCH_QUAD_LEFT </dt>
+<dd class="description">Punch 4 holes left side</dd>
+<dt>IPP_FINISHINGS_CUPS_PUNCH_QUAD_RIGHT </dt>
+<dd class="description">Punch 4 holes right side</dd>
+<dt>IPP_FINISHINGS_CUPS_PUNCH_QUAD_TOP </dt>
+<dd class="description">Punch 4 holes top edge</dd>
+<dt>IPP_FINISHINGS_CUPS_PUNCH_TOP_LEFT </dt>
+<dd class="description">Punch 1 hole top left</dd>
+<dt>IPP_FINISHINGS_CUPS_PUNCH_TOP_RIGHT </dt>
+<dd class="description">Punch 1 hole top right</dd>
+<dt>IPP_FINISHINGS_CUPS_PUNCH_TRIPLE_BOTTOM </dt>
+<dd class="description">Punch 3 holes bottom edge</dd>
+<dt>IPP_FINISHINGS_CUPS_PUNCH_TRIPLE_LEFT </dt>
+<dd class="description">Punch 3 holes left side</dd>
+<dt>IPP_FINISHINGS_CUPS_PUNCH_TRIPLE_RIGHT </dt>
+<dd class="description">Punch 3 holes right side</dd>
+<dt>IPP_FINISHINGS_CUPS_PUNCH_TRIPLE_TOP </dt>
+<dd class="description">Punch 3 holes top edge</dd>
<dt>IPP_FINISHINGS_EDGE_STITCH </dt>
<dd class="description">Stitch along any side</dd>
<dt>IPP_FINISHINGS_EDGE_STITCH_BOTTOM </dt>
@@ -5149,152 +5677,152 @@ are server-oriented...</p>
<p class="description">Job collation types</p>
<h4 class="constants">Constants</h4>
<dl>
-<dt>IPP_JOB_COLLATED_DOCUMENTS </dt>
-<dt>IPP_JOB_UNCOLLATED_DOCUMENTS </dt>
-<dt>IPP_JOB_UNCOLLATED_SHEETS </dt>
+<dt>IPP_JCOLLATE_COLLATED_DOCUMENTS </dt>
+<dt>IPP_JCOLLATE_UNCOLLATED_DOCUMENTS </dt>
+<dt>IPP_JCOLLATE_UNCOLLATED_SHEETS </dt>
</dl>
<h3 class="enumeration"><a name="ipp_jstate_e">ipp_jstate_e</a></h3>
<p class="description">Job states</p>
<h4 class="constants">Constants</h4>
<dl>
-<dt>IPP_JOB_ABORTED </dt>
+<dt>IPP_JSTATE_ABORTED </dt>
<dd class="description">Job has aborted due to error</dd>
-<dt>IPP_JOB_CANCELED </dt>
+<dt>IPP_JSTATE_CANCELED </dt>
<dd class="description">Job has been canceled</dd>
-<dt>IPP_JOB_COMPLETED </dt>
+<dt>IPP_JSTATE_COMPLETED </dt>
<dd class="description">Job has completed successfully</dd>
-<dt>IPP_JOB_HELD </dt>
+<dt>IPP_JSTATE_HELD </dt>
<dd class="description">Job is held for printing</dd>
-<dt>IPP_JOB_PENDING </dt>
+<dt>IPP_JSTATE_PENDING </dt>
<dd class="description">Job is waiting to be printed</dd>
-<dt>IPP_JOB_PROCESSING </dt>
+<dt>IPP_JSTATE_PROCESSING </dt>
<dd class="description">Job is currently printing</dd>
-<dt>IPP_JOB_STOPPED </dt>
+<dt>IPP_JSTATE_STOPPED </dt>
<dd class="description">Job has been stopped</dd>
</dl>
<h3 class="enumeration"><a name="ipp_op_e">ipp_op_e</a></h3>
<p class="description">IPP operations</p>
<h4 class="constants">Constants</h4>
<dl>
-<dt>CUPS_ACCEPT_JOBS </dt>
+<dt>IPP_OP_CANCEL_JOB </dt>
+<dd class="description">Cancel a job</dd>
+<dt>IPP_OP_CANCEL_JOBS </dt>
+<dd class="description">Cancel-Jobs</dd>
+<dt>IPP_OP_CANCEL_MY_JOBS </dt>
+<dd class="description">Cancel-My-Jobs</dd>
+<dt>IPP_OP_CANCEL_SUBSCRIPTION <span class="info">&nbsp;CUPS 1.2/OS X 10.5&nbsp;</span></dt>
+<dd class="description">Cancel a subscription </dd>
+<dt>IPP_OP_CLOSE_JOB </dt>
+<dd class="description">Close-Job</dd>
+<dt>IPP_OP_CREATE_JOB </dt>
+<dd class="description">Create an empty print job</dd>
+<dt>IPP_OP_CREATE_JOB_SUBSCRIPTION <span class="info">&nbsp;CUPS 1.2/OS X 10.5&nbsp;</span></dt>
+<dd class="description">Create a job subscription </dd>
+<dt>IPP_OP_CREATE_PRINTER_SUBSCRIPTION <span class="info">&nbsp;CUPS 1.2/OS X 10.5&nbsp;</span></dt>
+<dd class="description">Create a printer subscription </dd>
+<dt>IPP_OP_CUPS_ACCEPT_JOBS </dt>
<dd class="description">Accept new jobs on a printer</dd>
-<dt>CUPS_ADD_MODIFY_CLASS </dt>
+<dt>IPP_OP_CUPS_ADD_MODIFY_CLASS </dt>
<dd class="description">Add or modify a class</dd>
-<dt>CUPS_ADD_MODIFY_PRINTER </dt>
+<dt>IPP_OP_CUPS_ADD_MODIFY_PRINTER </dt>
<dd class="description">Add or modify a printer</dd>
-<dt>CUPS_AUTHENTICATE_JOB <span class="info">&nbsp;CUPS 1.2/OS X 10.5&nbsp;</span></dt>
+<dt>IPP_OP_CUPS_AUTHENTICATE_JOB <span class="info">&nbsp;CUPS 1.2/OS X 10.5&nbsp;</span></dt>
<dd class="description">Authenticate a job </dd>
-<dt>CUPS_DELETE_CLASS </dt>
+<dt>IPP_OP_CUPS_DELETE_CLASS </dt>
<dd class="description">Delete a class</dd>
-<dt>CUPS_DELETE_PRINTER </dt>
+<dt>IPP_OP_CUPS_DELETE_PRINTER </dt>
<dd class="description">Delete a printer</dd>
-<dt>CUPS_GET_CLASSES <span class="info">&nbsp;DEPRECATED&nbsp;</span></dt>
+<dt>IPP_OP_CUPS_GET_CLASSES <span class="info">&nbsp;DEPRECATED&nbsp;</span></dt>
<dd class="description">Get a list of classes </dd>
-<dt>CUPS_GET_DEFAULT </dt>
+<dt>IPP_OP_CUPS_GET_DEFAULT </dt>
<dd class="description">Get the default printer</dd>
-<dt>CUPS_GET_DEVICES </dt>
+<dt>IPP_OP_CUPS_GET_DEVICES </dt>
<dd class="description">Get a list of supported devices</dd>
-<dt>CUPS_GET_DOCUMENT <span class="info">&nbsp;CUPS 1.4/OS X 10.6&nbsp;</span></dt>
+<dt>IPP_OP_CUPS_GET_DOCUMENT <span class="info">&nbsp;CUPS 1.4/OS X 10.6&nbsp;</span></dt>
<dd class="description">Get a document file </dd>
-<dt>CUPS_GET_PPD <span class="info">&nbsp;CUPS 1.3/OS X 10.5&nbsp;</span></dt>
+<dt>IPP_OP_CUPS_GET_PPD <span class="info">&nbsp;CUPS 1.3/OS X 10.5&nbsp;</span></dt>
<dd class="description">Get a PPD file </dd>
-<dt>CUPS_GET_PPDS </dt>
+<dt>IPP_OP_CUPS_GET_PPDS </dt>
<dd class="description">Get a list of supported drivers</dd>
-<dt>CUPS_GET_PRINTERS </dt>
+<dt>IPP_OP_CUPS_GET_PRINTERS </dt>
<dd class="description">Get a list of printers and/or classes</dd>
-<dt>CUPS_MOVE_JOB </dt>
+<dt>IPP_OP_CUPS_INVALID </dt>
+<dd class="description">Invalid operation name for <a href="#ippOpValue"><code>ippOpValue</code></a></dd>
+<dt>IPP_OP_CUPS_MOVE_JOB </dt>
<dd class="description">Move a job to a different printer</dd>
-<dt>CUPS_REJECT_JOBS </dt>
+<dt>IPP_OP_CUPS_REJECT_JOBS </dt>
<dd class="description">Reject new jobs on a printer</dd>
-<dt>CUPS_SET_DEFAULT </dt>
+<dt>IPP_OP_CUPS_SET_DEFAULT </dt>
<dd class="description">Set the default printer</dd>
-<dt>IPP_CANCEL_JOB </dt>
-<dd class="description">Cancel a job</dd>
-<dt>IPP_CANCEL_JOBS </dt>
-<dd class="description">Cancel-Jobs</dd>
-<dt>IPP_CANCEL_MY_JOBS </dt>
-<dd class="description">Cancel-My-Jobs</dd>
-<dt>IPP_CANCEL_SUBSCRIPTION <span class="info">&nbsp;CUPS 1.2/OS X 10.5&nbsp;</span></dt>
-<dd class="description">Cancel a subscription </dd>
-<dt>IPP_CLOSE_JOB </dt>
-<dd class="description">Close-Job</dd>
-<dt>IPP_CREATE_JOB </dt>
-<dd class="description">Create an empty print job</dd>
-<dt>IPP_CREATE_JOB_SUBSCRIPTION <span class="info">&nbsp;CUPS 1.2/OS X 10.5&nbsp;</span></dt>
-<dd class="description">Create a job subscription </dd>
-<dt>IPP_CREATE_PRINTER_SUBSCRIPTION <span class="info">&nbsp;CUPS 1.2/OS X 10.5&nbsp;</span></dt>
-<dd class="description">Create a printer subscription </dd>
-<dt>IPP_DISABLE_PRINTER </dt>
+<dt>IPP_OP_DISABLE_PRINTER </dt>
<dd class="description">Stop a printer</dd>
-<dt>IPP_ENABLE_PRINTER </dt>
+<dt>IPP_OP_ENABLE_PRINTER </dt>
<dd class="description">Start a printer</dd>
-<dt>IPP_GET_JOBS </dt>
+<dt>IPP_OP_GET_JOBS </dt>
<dd class="description">Get a list of jobs</dd>
-<dt>IPP_GET_JOB_ATTRIBUTES </dt>
+<dt>IPP_OP_GET_JOB_ATTRIBUTES </dt>
<dd class="description">Get job attributes</dd>
-<dt>IPP_GET_NOTIFICATIONS <span class="info">&nbsp;CUPS 1.2/OS X 10.5&nbsp;</span></dt>
+<dt>IPP_OP_GET_NOTIFICATIONS <span class="info">&nbsp;CUPS 1.2/OS X 10.5&nbsp;</span></dt>
<dd class="description">Get notification events </dd>
-<dt>IPP_GET_PRINTER_ATTRIBUTES </dt>
+<dt>IPP_OP_GET_PRINTER_ATTRIBUTES </dt>
<dd class="description">Get printer attributes</dd>
-<dt>IPP_GET_PRINTER_SUPPORTED_VALUES </dt>
+<dt>IPP_OP_GET_PRINTER_SUPPORTED_VALUES </dt>
<dd class="description">Get supported attribute values</dd>
-<dt>IPP_GET_SUBSCRIPTIONS <span class="info">&nbsp;CUPS 1.2/OS X 10.5&nbsp;</span></dt>
+<dt>IPP_OP_GET_SUBSCRIPTIONS <span class="info">&nbsp;CUPS 1.2/OS X 10.5&nbsp;</span></dt>
<dd class="description">Get list of subscriptions </dd>
-<dt>IPP_GET_SUBSCRIPTION_ATTRIBUTES <span class="info">&nbsp;CUPS 1.2/OS X 10.5&nbsp;</span></dt>
+<dt>IPP_OP_GET_SUBSCRIPTION_ATTRIBUTES <span class="info">&nbsp;CUPS 1.2/OS X 10.5&nbsp;</span></dt>
<dd class="description">Get subscription attributes </dd>
-<dt>IPP_HOLD_JOB </dt>
+<dt>IPP_OP_HOLD_JOB </dt>
<dd class="description">Hold a job for printing</dd>
-<dt>IPP_IDENTIFY_PRINTER </dt>
+<dt>IPP_OP_IDENTIFY_PRINTER </dt>
<dd class="description">Identify-Printer (proposed IPP JPS3)</dd>
-<dt>IPP_OP_CUPS_INVALID </dt>
-<dd class="description">Invalid operation name for <a href="#ippOpValue"><code>ippOpValue</code></a></dd>
-<dt>IPP_PAUSE_PRINTER </dt>
+<dt>IPP_OP_PAUSE_PRINTER </dt>
<dd class="description">Stop a printer</dd>
-<dt>IPP_PRINT_JOB </dt>
+<dt>IPP_OP_PRINT_JOB </dt>
<dd class="description">Print a single file</dd>
-<dt>IPP_PURGE_JOBS </dt>
+<dt>IPP_OP_PURGE_JOBS </dt>
<dd class="description">Cancel all jobs</dd>
-<dt>IPP_RELEASE_JOB </dt>
+<dt>IPP_OP_RELEASE_JOB </dt>
<dd class="description">Release a job for printing</dd>
-<dt>IPP_RENEW_SUBSCRIPTION <span class="info">&nbsp;CUPS 1.2/OS X 10.5&nbsp;</span></dt>
+<dt>IPP_OP_RENEW_SUBSCRIPTION <span class="info">&nbsp;CUPS 1.2/OS X 10.5&nbsp;</span></dt>
<dd class="description">Renew a printer subscription </dd>
-<dt>IPP_RESTART_JOB </dt>
+<dt>IPP_OP_RESTART_JOB </dt>
<dd class="description">Reprint a job</dd>
-<dt>IPP_RESUBMIT_JOB </dt>
+<dt>IPP_OP_RESUBMIT_JOB </dt>
<dd class="description">Resubmit-Job</dd>
-<dt>IPP_RESUME_PRINTER </dt>
+<dt>IPP_OP_RESUME_PRINTER </dt>
<dd class="description">Start a printer</dd>
-<dt>IPP_SEND_DOCUMENT </dt>
+<dt>IPP_OP_SEND_DOCUMENT </dt>
<dd class="description">Add a file to a job</dd>
-<dt>IPP_SET_JOB_ATTRIBUTES </dt>
+<dt>IPP_OP_SET_JOB_ATTRIBUTES </dt>
<dd class="description">Set job attributes</dd>
-<dt>IPP_VALIDATE_DOCUMENT </dt>
+<dt>IPP_OP_VALIDATE_DOCUMENT </dt>
<dd class="description">Validate-Document (proposed IPP JPS3)</dd>
-<dt>IPP_VALIDATE_JOB </dt>
+<dt>IPP_OP_VALIDATE_JOB </dt>
<dd class="description">Validate job options</dd>
</dl>
<h3 class="enumeration"><a name="ipp_orient_e">ipp_orient_e</a></h3>
<p class="description">Orientation values</p>
<h4 class="constants">Constants</h4>
<dl>
-<dt>IPP_LANDSCAPE </dt>
+<dt>IPP_ORIENT_LANDSCAPE </dt>
<dd class="description">90 degrees counter-clockwise</dd>
-<dt>IPP_PORTRAIT </dt>
+<dt>IPP_ORIENT_PORTRAIT </dt>
<dd class="description">No rotation</dd>
-<dt>IPP_REVERSE_LANDSCAPE </dt>
+<dt>IPP_ORIENT_REVERSE_LANDSCAPE </dt>
<dd class="description">90 degrees clockwise</dd>
-<dt>IPP_REVERSE_PORTRAIT </dt>
+<dt>IPP_ORIENT_REVERSE_PORTRAIT </dt>
<dd class="description">180 degrees</dd>
</dl>
<h3 class="enumeration"><a name="ipp_pstate_e">ipp_pstate_e</a></h3>
<p class="description">Printer states</p>
<h4 class="constants">Constants</h4>
<dl>
-<dt>IPP_PRINTER_IDLE </dt>
+<dt>IPP_PSTATE_IDLE </dt>
<dd class="description">Printer is idle</dd>
-<dt>IPP_PRINTER_PROCESSING </dt>
+<dt>IPP_PSTATE_PROCESSING </dt>
<dd class="description">Printer is working</dd>
-<dt>IPP_PRINTER_STOPPED </dt>
+<dt>IPP_PSTATE_STOPPED </dt>
<dd class="description">Printer is stopped</dd>
</dl>
<h3 class="enumeration"><a name="ipp_quality_e">ipp_quality_e</a></h3>
@@ -5321,121 +5849,129 @@ are server-oriented...</p>
<p class="description">IPP states</p>
<h4 class="constants">Constants</h4>
<dl>
-<dt>IPP_ATTRIBUTE </dt>
+<dt>IPP_STATE_ATTRIBUTE </dt>
<dd class="description">One or more attributes need to be sent/received</dd>
-<dt>IPP_DATA </dt>
+<dt>IPP_STATE_DATA </dt>
<dd class="description">IPP request data needs to be sent/received</dd>
-<dt>IPP_ERROR </dt>
+<dt>IPP_STATE_ERROR </dt>
<dd class="description">An error occurred</dd>
-<dt>IPP_HEADER </dt>
+<dt>IPP_STATE_HEADER </dt>
<dd class="description">The request header needs to be sent/received</dd>
-<dt>IPP_IDLE </dt>
+<dt>IPP_STATE_IDLE </dt>
<dd class="description">Nothing is happening/request completed</dd>
</dl>
<h3 class="enumeration"><a name="ipp_status_e">ipp_status_e</a></h3>
<p class="description">IPP status codes</p>
<h4 class="constants">Constants</h4>
<dl>
-<dt>CUPS_SEE_OTHER </dt>
+<dt>IPP_STATUS_CUPS_INVALID </dt>
+<dd class="description">Invalid status name for <a href="#ippErrorValue"><code>ippErrorValue</code></a></dd>
+<dt>IPP_STATUS_CUPS_SEE_OTHER </dt>
<dd class="description">cups-see-other</dd>
-<dt>IPP_ATTRIBUTES </dt>
-<dd class="description">client-error-attributes-or-values-not-supported</dd>
-<dt>IPP_ATTRIBUTES_NOT_SETTABLE </dt>
+<dt>IPP_STATUS_ERROR_ATTRIBUTES_NOT_SETTABLE </dt>
<dd class="description">client-error-attributes-not-settable</dd>
-<dt>IPP_AUTHENTICATION_CANCELED <span class="info">&nbsp;CUPS 1.5/OS X 10.7&nbsp;</span></dt>
-<dd class="description">Authentication canceled by user </dd>
-<dt>IPP_BAD_REQUEST </dt>
+<dt>IPP_STATUS_ERROR_ATTRIBUTES_OR_VALUES </dt>
+<dd class="description">client-error-attributes-or-values-not-supported</dd>
+<dt>IPP_STATUS_ERROR_BAD_REQUEST </dt>
<dd class="description">client-error-bad-request</dd>
-<dt>IPP_CHARSET </dt>
+<dt>IPP_STATUS_ERROR_BUSY </dt>
+<dd class="description">server-error-busy</dd>
+<dt>IPP_STATUS_ERROR_CHARSET </dt>
<dd class="description">client-error-charset-not-supported</dd>
-<dt>IPP_COMPRESSION_ERROR </dt>
+<dt>IPP_STATUS_ERROR_COMPRESSION_ERROR </dt>
<dd class="description">client-error-compression-error</dd>
-<dt>IPP_COMPRESSION_NOT_SUPPORTED </dt>
+<dt>IPP_STATUS_ERROR_COMPRESSION_NOT_SUPPORTED </dt>
<dd class="description">client-error-compression-not-supported</dd>
-<dt>IPP_CONFLICT </dt>
+<dt>IPP_STATUS_ERROR_CONFLICTING </dt>
<dd class="description">client-error-conflicting-attributes</dd>
-<dt>IPP_DEVICE_ERROR </dt>
+<dt>IPP_STATUS_ERROR_CUPS_ACCOUNT_AUTHORIZATION_FAILED <span class="info">&nbsp;CUPS 1.7&nbsp;</span></dt>
+<dd class="description">cups-error-account-authorization-failed </dd>
+<dt>IPP_STATUS_ERROR_CUPS_ACCOUNT_CLOSED <span class="info">&nbsp;CUPS 1.7&nbsp;</span></dt>
+<dd class="description">cups-error-account-closed </dd>
+<dt>IPP_STATUS_ERROR_CUPS_ACCOUNT_INFO_NEEDED <span class="info">&nbsp;CUPS 1.7&nbsp;</span></dt>
+<dd class="description">cups-error-account-info-needed </dd>
+<dt>IPP_STATUS_ERROR_CUPS_ACCOUNT_LIMIT_REACHED <span class="info">&nbsp;CUPS 1.7&nbsp;</span></dt>
+<dd class="description">cups-error-account-limit-reached </dd>
+<dt>IPP_STATUS_ERROR_CUPS_AUTHENTICATION_CANCELED <span class="info">&nbsp;CUPS 1.5/OS X 10.7&nbsp;</span></dt>
+<dd class="description">cups-authentication-canceled - Authentication canceled by user </dd>
+<dt>IPP_STATUS_ERROR_CUPS_PKI <span class="info">&nbsp;CUPS 1.5/OS X 10.7&nbsp;</span></dt>
+<dd class="description">cups-pki-error - Error negotiating a secure connection </dd>
+<dt>IPP_STATUS_ERROR_CUPS_UPGRADE_REQUIRED </dt>
+<dd class="description">cups-upgrade-required - TLS upgrade required</dd>
+<dt>IPP_STATUS_ERROR_DEVICE </dt>
<dd class="description">server-error-device-error</dd>
-<dt>IPP_DOCUMENT_ACCESS_ERROR </dt>
+<dt>IPP_STATUS_ERROR_DOCUMENT_ACCESS </dt>
<dd class="description">client-error-document-access-error</dd>
-<dt>IPP_DOCUMENT_FORMAT </dt>
-<dd class="description">client-error-document-format-not-supported</dd>
-<dt>IPP_DOCUMENT_FORMAT_ERROR </dt>
+<dt>IPP_STATUS_ERROR_DOCUMENT_FORMAT_ERROR </dt>
<dd class="description">client-error-document-format-error</dd>
-<dt>IPP_DOCUMENT_PASSWORD_ERROR </dt>
+<dt>IPP_STATUS_ERROR_DOCUMENT_FORMAT_NOT_SUPPORTED </dt>
+<dd class="description">client-error-document-format-not-supported</dd>
+<dt>IPP_STATUS_ERROR_DOCUMENT_PASSWORD </dt>
<dd class="description">client-error-document-password-error</dd>
-<dt>IPP_DOCUMENT_PERMISSION_ERROR </dt>
+<dt>IPP_STATUS_ERROR_DOCUMENT_PERMISSION </dt>
<dd class="description">client-error-document-permission-error</dd>
-<dt>IPP_DOCUMENT_SECURITY_ERROR </dt>
+<dt>IPP_STATUS_ERROR_DOCUMENT_SECURITY </dt>
<dd class="description">client-error-document-security-error</dd>
-<dt>IPP_DOCUMENT_UNPRINTABLE_ERROR </dt>
+<dt>IPP_STATUS_ERROR_DOCUMENT_UNPRINTABLE </dt>
<dd class="description">client-error-document-unprintable-error</dd>
-<dt>IPP_ERROR_JOB_CANCELED </dt>
-<dd class="description">server-error-job-canceled</dd>
-<dt>IPP_FORBIDDEN </dt>
+<dt>IPP_STATUS_ERROR_FORBIDDEN </dt>
<dd class="description">client-error-forbidden</dd>
-<dt>IPP_GONE </dt>
+<dt>IPP_STATUS_ERROR_GONE </dt>
<dd class="description">client-error-gone</dd>
-<dt>IPP_IGNORED_ALL_SUBSCRIPTIONS </dt>
+<dt>IPP_STATUS_ERROR_IGNORED_ALL_SUBSCRIPTIONS </dt>
<dd class="description">client-error-ignored-all-subscriptions</dd>
-<dt>IPP_INTERNAL_ERROR </dt>
+<dt>IPP_STATUS_ERROR_INTERNAL </dt>
<dd class="description">server-error-internal-error</dd>
-<dt>IPP_MULTIPLE_JOBS_NOT_SUPPORTED </dt>
+<dt>IPP_STATUS_ERROR_JOB_CANCELED </dt>
+<dd class="description">server-error-job-canceled</dd>
+<dt>IPP_STATUS_ERROR_MULTIPLE_JOBS_NOT_SUPPORTED </dt>
<dd class="description">server-error-multiple-document-jobs-not-supported</dd>
-<dt>IPP_NOT_ACCEPTING </dt>
+<dt>IPP_STATUS_ERROR_NOT_ACCEPTING_JOBS </dt>
<dd class="description">server-error-not-accepting-jobs</dd>
-<dt>IPP_NOT_AUTHENTICATED </dt>
+<dt>IPP_STATUS_ERROR_NOT_AUTHENTICATED </dt>
<dd class="description">client-error-not-authenticated</dd>
-<dt>IPP_NOT_AUTHORIZED </dt>
+<dt>IPP_STATUS_ERROR_NOT_AUTHORIZED </dt>
<dd class="description">client-error-not-authorized</dd>
-<dt>IPP_NOT_FOUND </dt>
+<dt>IPP_STATUS_ERROR_NOT_FOUND </dt>
<dd class="description">client-error-not-found</dd>
-<dt>IPP_NOT_POSSIBLE </dt>
+<dt>IPP_STATUS_ERROR_NOT_POSSIBLE </dt>
<dd class="description">client-error-not-possible</dd>
-<dt>IPP_OK </dt>
-<dd class="description">successful-ok</dd>
-<dt>IPP_OK_CONFLICT </dt>
-<dd class="description">successful-ok-conflicting-attributes</dd>
-<dt>IPP_OK_EVENTS_COMPLETE </dt>
-<dd class="description">successful-ok-events-complete</dd>
-<dt>IPP_OK_IGNORED_SUBSCRIPTIONS </dt>
-<dd class="description">successful-ok-ignored-subscriptions</dd>
-<dt>IPP_OK_SUBST </dt>
-<dd class="description">successful-ok-ignored-or-substituted-attributes</dd>
-<dt>IPP_OK_TOO_MANY_EVENTS </dt>
-<dd class="description">successful-ok-too-many-events</dd>
-<dt>IPP_OPERATION_NOT_SUPPORTED </dt>
+<dt>IPP_STATUS_ERROR_OPERATION_NOT_SUPPORTED </dt>
<dd class="description">server-error-operation-not-supported</dd>
-<dt>IPP_PKI_ERROR <span class="info">&nbsp;CUPS 1.5/OS X 10.7&nbsp;</span></dt>
-<dd class="description">Error negotiating a secure connection </dd>
-<dt>IPP_PRINTER_BUSY </dt>
-<dd class="description">server-error-busy</dd>
-<dt>IPP_PRINTER_IS_DEACTIVATED </dt>
+<dt>IPP_STATUS_ERROR_PRINTER_IS_DEACTIVATED </dt>
<dd class="description">server-error-printer-is-deactivated</dd>
-<dt>IPP_REQUEST_ENTITY </dt>
+<dt>IPP_STATUS_ERROR_REQUEST_ENTITY </dt>
<dd class="description">client-error-request-entity-too-large</dd>
-<dt>IPP_REQUEST_VALUE </dt>
+<dt>IPP_STATUS_ERROR_REQUEST_VALUE </dt>
<dd class="description">client-error-request-value-too-long</dd>
-<dt>IPP_SERVICE_UNAVAILABLE </dt>
+<dt>IPP_STATUS_ERROR_SERVICE_UNAVAILABLE </dt>
<dd class="description">server-error-service-unavailable</dd>
-<dt>IPP_STATUS_CUPS_INVALID </dt>
-<dd class="description">Invalid status name for <a href="#ippErrorValue"><code>ippErrorValue</code></a></dd>
-<dt>IPP_TEMPORARY_ERROR </dt>
+<dt>IPP_STATUS_ERROR_TEMPORARY </dt>
<dd class="description">server-error-temporary-error</dd>
-<dt>IPP_TIMEOUT </dt>
+<dt>IPP_STATUS_ERROR_TIMEOUT </dt>
<dd class="description">client-error-timeout</dd>
-<dt>IPP_TOO_MANY_DOCUMENTS </dt>
+<dt>IPP_STATUS_ERROR_TOO_MANY_DOCUMENTS </dt>
<dd class="description">server-error-too-many-documents</dd>
-<dt>IPP_TOO_MANY_JOBS </dt>
+<dt>IPP_STATUS_ERROR_TOO_MANY_JOBS </dt>
<dd class="description">server-error-too-many-jobs</dd>
-<dt>IPP_TOO_MANY_SUBSCRIPTIONS </dt>
+<dt>IPP_STATUS_ERROR_TOO_MANY_SUBSCRIPTIONS </dt>
<dd class="description">client-error-too-many-subscriptions</dd>
-<dt>IPP_UPGRADE_REQUIRED </dt>
-<dd class="description">TLS upgrade required</dd>
-<dt>IPP_URI_SCHEME </dt>
+<dt>IPP_STATUS_ERROR_URI_SCHEME </dt>
<dd class="description">client-error-uri-scheme-not-supported</dd>
-<dt>IPP_VERSION_NOT_SUPPORTED </dt>
+<dt>IPP_STATUS_ERROR_VERSION_NOT_SUPPORTED </dt>
<dd class="description">server-error-version-not-supported</dd>
+<dt>IPP_STATUS_OK </dt>
+<dd class="description">successful-ok</dd>
+<dt>IPP_STATUS_OK_CONFLICTING </dt>
+<dd class="description">successful-ok-conflicting-attributes</dd>
+<dt>IPP_STATUS_OK_EVENTS_COMPLETE </dt>
+<dd class="description">successful-ok-events-complete</dd>
+<dt>IPP_STATUS_OK_IGNORED_OR_SUBSTITUTED </dt>
+<dd class="description">successful-ok-ignored-or-substituted-attributes</dd>
+<dt>IPP_STATUS_OK_IGNORED_SUBSCRIPTIONS </dt>
+<dd class="description">successful-ok-ignored-subscriptions</dd>
+<dt>IPP_STATUS_OK_TOO_MANY_EVENTS </dt>
+<dd class="description">successful-ok-too-many-events</dd>
</dl>
<h3 class="enumeration"><a name="ipp_tag_e">ipp_tag_e</a></h3>
<p class="description">Format tags for attributes</p>
diff --git a/locale/cups.pot b/locale/cups.pot
index ddb65575c..cc8c2f99d 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: 2012-05-23 16:24-0700\n"
+"POT-Creation-Date: 2012-10-22 11:09-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -39,12 +39,12 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
-#: systemv/lpstat.c:1876 systemv/lpstat.c:2001
+#: systemv/lpstat.c:1833 systemv/lpstat.c:1958
msgid "\t\t(all)"
msgstr ""
-#: systemv/lpstat.c:1879 systemv/lpstat.c:1882 systemv/lpstat.c:2004
-#: systemv/lpstat.c:2007
+#: systemv/lpstat.c:1836 systemv/lpstat.c:1839 systemv/lpstat.c:1961
+#: systemv/lpstat.c:1964
msgid "\t\t(none)"
msgstr ""
@@ -53,104 +53,104 @@ msgstr ""
msgid "\t%d entries"
msgstr ""
-#: systemv/lpstat.c:756 systemv/lpstat.c:772
+#: systemv/lpstat.c:713 systemv/lpstat.c:729
#, c-format
msgid "\t%s"
msgstr ""
-#: systemv/lpstat.c:1857 systemv/lpstat.c:1982
+#: systemv/lpstat.c:1814 systemv/lpstat.c:1939
msgid "\tAfter fault: continue"
msgstr ""
-#: systemv/lpstat.c:1481 systemv/lpstat.c:1826 systemv/lpstat.c:1952
+#: systemv/lpstat.c:1438 systemv/lpstat.c:1783 systemv/lpstat.c:1909
#, c-format
msgid "\tAlerts: %s"
msgstr ""
-#: systemv/lpstat.c:1880 systemv/lpstat.c:2005
+#: systemv/lpstat.c:1837 systemv/lpstat.c:1962
msgid "\tBanner required"
msgstr ""
-#: systemv/lpstat.c:1881 systemv/lpstat.c:2006
+#: systemv/lpstat.c:1838 systemv/lpstat.c:1963
msgid "\tCharset sets:"
msgstr ""
-#: systemv/lpstat.c:1845 systemv/lpstat.c:1970
+#: systemv/lpstat.c:1802 systemv/lpstat.c:1927
msgid "\tConnection: direct"
msgstr ""
-#: systemv/lpstat.c:1836 systemv/lpstat.c:1962
+#: systemv/lpstat.c:1793 systemv/lpstat.c:1919
msgid "\tConnection: remote"
msgstr ""
-#: systemv/lpstat.c:1800 systemv/lpstat.c:1926
+#: systemv/lpstat.c:1757 systemv/lpstat.c:1883
msgid "\tContent types: any"
msgstr ""
-#: systemv/lpstat.c:1884 systemv/lpstat.c:2009
+#: systemv/lpstat.c:1841 systemv/lpstat.c:1966
msgid "\tDefault page size:"
msgstr ""
-#: systemv/lpstat.c:1883 systemv/lpstat.c:2008
+#: systemv/lpstat.c:1840 systemv/lpstat.c:1965
msgid "\tDefault pitch:"
msgstr ""
-#: systemv/lpstat.c:1885 systemv/lpstat.c:2010
+#: systemv/lpstat.c:1842 systemv/lpstat.c:1967
msgid "\tDefault port settings:"
msgstr ""
-#: systemv/lpstat.c:1806 systemv/lpstat.c:1932
+#: systemv/lpstat.c:1763 systemv/lpstat.c:1889
#, c-format
msgid "\tDescription: %s"
msgstr ""
-#: systemv/lpstat.c:1799 systemv/lpstat.c:1925
+#: systemv/lpstat.c:1756 systemv/lpstat.c:1882
msgid "\tForm mounted:"
msgstr ""
-#: systemv/lpstat.c:1878 systemv/lpstat.c:2003
+#: systemv/lpstat.c:1835 systemv/lpstat.c:1960
msgid "\tForms allowed:"
msgstr ""
-#: systemv/lpstat.c:1840 systemv/lpstat.c:1966
+#: systemv/lpstat.c:1797 systemv/lpstat.c:1923
#, c-format
msgid "\tInterface: %s.ppd"
msgstr ""
-#: systemv/lpstat.c:1849 systemv/lpstat.c:1974
+#: systemv/lpstat.c:1806 systemv/lpstat.c:1931
#, c-format
msgid "\tInterface: %s/interfaces/%s"
msgstr ""
-#: systemv/lpstat.c:1853 systemv/lpstat.c:1978
+#: systemv/lpstat.c:1810 systemv/lpstat.c:1935
#, c-format
msgid "\tInterface: %s/ppd/%s.ppd"
msgstr ""
-#: systemv/lpstat.c:1831 systemv/lpstat.c:1957
+#: systemv/lpstat.c:1788 systemv/lpstat.c:1914
#, c-format
msgid "\tLocation: %s"
msgstr ""
-#: systemv/lpstat.c:1856 systemv/lpstat.c:1981
+#: systemv/lpstat.c:1813 systemv/lpstat.c:1938
msgid "\tOn fault: no alert"
msgstr ""
-#: systemv/lpstat.c:1801 systemv/lpstat.c:1927
+#: systemv/lpstat.c:1758 systemv/lpstat.c:1884
msgid "\tPrinter types: unknown"
msgstr ""
-#: systemv/lpstat.c:1462
+#: systemv/lpstat.c:1419
#, c-format
msgid "\tStatus: %s"
msgstr ""
-#: systemv/lpstat.c:1861 systemv/lpstat.c:1875 systemv/lpstat.c:1986
-#: systemv/lpstat.c:2000
+#: systemv/lpstat.c:1818 systemv/lpstat.c:1832 systemv/lpstat.c:1943
+#: systemv/lpstat.c:1957
msgid "\tUsers allowed:"
msgstr ""
-#: systemv/lpstat.c:1868 systemv/lpstat.c:1993
+#: systemv/lpstat.c:1825 systemv/lpstat.c:1950
msgid "\tUsers denied:"
msgstr ""
@@ -175,7 +175,7 @@ msgstr ""
msgid "\tprinting is enabled"
msgstr ""
-#: systemv/lpstat.c:1484
+#: systemv/lpstat.c:1441
#, c-format
msgid "\tqueued for %s"
msgstr ""
@@ -188,7 +188,7 @@ msgstr ""
msgid "\tqueuing is enabled"
msgstr ""
-#: systemv/lpstat.c:1792 systemv/lpstat.c:1918
+#: systemv/lpstat.c:1749 systemv/lpstat.c:1875
msgid "\treason unknown"
msgstr ""
@@ -198,11 +198,11 @@ msgid ""
" DETAILED CONFORMANCE TEST RESULTS"
msgstr ""
-#: systemv/cupstestppd.c:3800
+#: systemv/cupstestppd.c:3801
msgid " Ignore specific warnings."
msgstr ""
-#: systemv/cupstestppd.c:3804
+#: systemv/cupstestppd.c:3805
msgid " Issue warnings instead of errors."
msgstr ""
@@ -250,7 +250,7 @@ msgstr ""
msgid " REF: Pages 52-54, section 5.2."
msgstr ""
-#: berkeley/lpq.c:554
+#: berkeley/lpq.c:558
#, c-format
msgid " %-39.39s %.0f bytes"
msgstr ""
@@ -409,11 +409,11 @@ msgstr ""
msgid " cupstestdsc [options] -"
msgstr ""
-#: systemv/cupstestppd.c:3795
+#: systemv/cupstestppd.c:3796
msgid " program | cupstestppd [options] -"
msgstr ""
-#: systemv/cupstestppd.c:3727
+#: systemv/cupstestppd.c:3728
#, c-format
msgid ""
" %s \"%s %s\" conflicts with \"%s %s\"\n"
@@ -425,7 +425,7 @@ msgstr ""
msgid " %s %s %s does not exist."
msgstr ""
-#: systemv/cupstestppd.c:3884
+#: systemv/cupstestppd.c:3885
#, c-format
msgid " %s %s file \"%s\" has the wrong capitalization."
msgstr ""
@@ -437,13 +437,13 @@ msgid ""
" REF: Page 122, section 5.17"
msgstr ""
-#: systemv/cupstestppd.c:3487 systemv/cupstestppd.c:3536
-#: systemv/cupstestppd.c:3575
+#: systemv/cupstestppd.c:3488 systemv/cupstestppd.c:3537
+#: systemv/cupstestppd.c:3576
#, c-format
msgid " %s Bad UTF-8 \"%s\" translation string for option %s, choice %s."
msgstr ""
-#: systemv/cupstestppd.c:3441
+#: systemv/cupstestppd.c:3442
#, c-format
msgid " %s Bad UTF-8 \"%s\" translation string for option %s."
msgstr ""
@@ -473,7 +473,7 @@ msgstr ""
msgid " %s Bad cupsUIConstraints %s: \"%s\""
msgstr ""
-#: systemv/cupstestppd.c:3391
+#: systemv/cupstestppd.c:3392
#, c-format
msgid " %s Bad language \"%s\"."
msgstr ""
@@ -510,12 +510,12 @@ msgstr ""
msgid " %s Empty cupsUIConstraints %s"
msgstr ""
-#: systemv/cupstestppd.c:3519 systemv/cupstestppd.c:3559
+#: systemv/cupstestppd.c:3520 systemv/cupstestppd.c:3560
#, c-format
msgid " %s Missing \"%s\" translation string for option %s, choice %s."
msgstr ""
-#: systemv/cupstestppd.c:3427
+#: systemv/cupstestppd.c:3428
#, c-format
msgid " %s Missing \"%s\" translation string for option %s."
msgstr ""
@@ -568,7 +568,7 @@ msgstr ""
msgid " %s Missing option %s in cupsUIConstraints %s: \"%s\""
msgstr ""
-#: systemv/cupstestppd.c:3613
+#: systemv/cupstestppd.c:3614
#, c-format
msgid " %s No base translation \"%s\" is included in file."
msgstr ""
@@ -590,12 +590,12 @@ msgstr ""
msgid " %s Size \"%s\" has unexpected dimensions (%gx%g)."
msgstr ""
-#: systemv/cupstestppd.c:3332
+#: systemv/cupstestppd.c:3333
#, c-format
msgid " %s Size \"%s\" should be \"%s\"."
msgstr ""
-#: systemv/cupstestppd.c:3292
+#: systemv/cupstestppd.c:3293
#, c-format
msgid " %s Size \"%s\" should be the Adobe standard name \"%s\"."
msgstr ""
@@ -712,7 +712,7 @@ msgid ""
" REF: Page 84, section 5.9"
msgstr ""
-#: systemv/cupstestppd.c:3754 systemv/cupstestppd.c:3776
+#: systemv/cupstestppd.c:3755 systemv/cupstestppd.c:3777
#, c-format
msgid " **FAIL** Default option code cannot be interpreted: %s"
msgstr ""
@@ -1007,15 +1007,15 @@ msgstr ""
msgid " --lf End lines with LF (UNIX/Linux/OS X)."
msgstr ""
-#: test/ipptool.c:4404
+#: test/ipptool.c:4446
msgid " -4 Connect using IPv4."
msgstr ""
-#: test/ipptool.c:4405
+#: test/ipptool.c:4447
msgid " -6 Connect using IPv6."
msgstr ""
-#: test/ipptool.c:4406
+#: test/ipptool.c:4448
msgid " -C Send requests using chunking (default)."
msgstr ""
@@ -1031,11 +1031,11 @@ msgstr ""
msgid " -E Encrypt the connection."
msgstr ""
-#: test/ipptool.c:4408
+#: test/ipptool.c:4450
msgid " -E Test with HTTP Upgrade to TLS."
msgstr ""
-#: scheduler/main.c:2021
+#: scheduler/main.c:1988
msgid " -F Run in the foreground but detach from console."
msgstr ""
@@ -1043,7 +1043,7 @@ msgstr ""
msgid " -H samba-server Use the named SAMBA server."
msgstr ""
-#: test/ipptool.c:4410
+#: test/ipptool.c:4452
msgid " -I Ignore errors."
msgstr ""
@@ -1051,11 +1051,11 @@ msgstr ""
msgid " -I include-dir Add include directory to search path."
msgstr ""
-#: systemv/cupstestppd.c:3799
+#: systemv/cupstestppd.c:3800
msgid " -I {filename,filters,none,profiles}"
msgstr ""
-#: test/ipptool.c:4411
+#: test/ipptool.c:4453
msgid " -L Send requests using content-length."
msgstr ""
@@ -1063,15 +1063,15 @@ msgstr ""
msgid " -P filename.ppd Set PPD file."
msgstr ""
-#: systemv/cupstestppd.c:3801
+#: systemv/cupstestppd.c:3802
msgid " -R root-directory Set alternate root."
msgstr ""
-#: test/ipptool.c:4413
+#: test/ipptool.c:4455
msgid " -S Test with SSL encryption."
msgstr ""
-#: test/ipptool.c:4415
+#: test/ipptool.c:4457
msgid " -T seconds Set the receive/send timeout in seconds."
msgstr ""
@@ -1079,15 +1079,15 @@ msgstr ""
msgid " -U username Specify username."
msgstr ""
-#: test/ipptool.c:4417
+#: test/ipptool.c:4459
msgid " -V version Set default IPP version."
msgstr ""
-#: systemv/cupstestppd.c:3802
+#: systemv/cupstestppd.c:3803
msgid " -W {all,none,constraints,defaults,duplex,filters,profiles,sizes,translations}"
msgstr ""
-#: test/ipptool.c:4419
+#: test/ipptool.c:4461
msgid " -X Produce XML plist instead of plain text."
msgstr ""
@@ -1099,11 +1099,11 @@ msgstr ""
msgid " -c catalog.po Load the specified message catalog."
msgstr ""
-#: scheduler/cupsfilter.c:1435 scheduler/main.c:2019
+#: scheduler/cupsfilter.c:1435 scheduler/main.c:1986
msgid " -c cupsd.conf Set cupsd.conf file to use."
msgstr ""
-#: test/ipptool.c:4421
+#: test/ipptool.c:4463
msgid " -d name=value Set named variable to value."
msgstr ""
@@ -1119,15 +1119,15 @@ msgstr ""
msgid " -e Use every filter from the PPD file."
msgstr ""
-#: scheduler/main.c:2020
+#: scheduler/main.c:1987
msgid " -f Run in the foreground."
msgstr ""
-#: test/ipptool.c:4423
+#: test/ipptool.c:4465
msgid " -f filename Set default request filename."
msgstr ""
-#: scheduler/main.c:2023
+#: scheduler/main.c:1990
msgid " -h Show this usage message."
msgstr ""
@@ -1139,7 +1139,7 @@ msgstr ""
msgid " -i mime/type Set input MIME type (otherwise auto-typed)."
msgstr ""
-#: test/ipptool.c:4425
+#: test/ipptool.c:4467
msgid " -i seconds Repeat the last file with the given time interval."
msgstr ""
@@ -1147,7 +1147,7 @@ msgstr ""
msgid " -j job-id[,N] Filter file N from the specified job (default is file 1)."
msgstr ""
-#: scheduler/main.c:2024
+#: scheduler/main.c:1991
msgid " -l Run cupsd from launchd(8)."
msgstr ""
@@ -1167,7 +1167,7 @@ msgstr ""
msgid " -n copies Set number of copies."
msgstr ""
-#: test/ipptool.c:4427
+#: test/ipptool.c:4469
msgid " -n count Repeat the last file the given number of times."
msgstr ""
@@ -1187,15 +1187,15 @@ msgstr ""
msgid " -p filename.ppd Set PPD file."
msgstr ""
-#: systemv/cupstestppd.c:3806 test/ipptool.c:4429
+#: systemv/cupstestppd.c:3807 test/ipptool.c:4471
msgid " -q Run silently."
msgstr ""
-#: systemv/cupstestppd.c:3807
+#: systemv/cupstestppd.c:3808
msgid " -r Use 'relaxed' open mode."
msgstr ""
-#: test/ipptool.c:4430
+#: test/ipptool.c:4472
msgid " -t Produce a test report."
msgstr ""
@@ -1203,7 +1203,7 @@ msgstr ""
msgid " -t Test PPDs instead of generating them."
msgstr ""
-#: scheduler/main.c:2025
+#: scheduler/main.c:1992
msgid " -t Test the configuration file."
msgstr ""
@@ -1215,12 +1215,12 @@ msgstr ""
msgid " -u Remove the PPD file when finished."
msgstr ""
-#: systemv/cupsaddsmb.c:291 systemv/cupstestppd.c:3808 test/ipptool.c:4431
+#: systemv/cupsaddsmb.c:291 systemv/cupstestppd.c:3809 test/ipptool.c:4473
#: ppdc/ppdc.cxx:452 ppdc/ppdpo.cxx:259
msgid " -v Be verbose."
msgstr ""
-#: systemv/cupstestppd.c:3809
+#: systemv/cupstestppd.c:3810
msgid " -vv Be very verbose."
msgstr ""
@@ -1276,12 +1276,12 @@ msgstr ""
#: systemv/cupstestppd.c:3037 systemv/cupstestppd.c:3102
#: systemv/cupstestppd.c:3117 systemv/cupstestppd.c:3156
#: systemv/cupstestppd.c:3176 systemv/cupstestppd.c:3190
-#: systemv/cupstestppd.c:3387 systemv/cupstestppd.c:3423
-#: systemv/cupstestppd.c:3437 systemv/cupstestppd.c:3483
-#: systemv/cupstestppd.c:3515 systemv/cupstestppd.c:3532
-#: systemv/cupstestppd.c:3555 systemv/cupstestppd.c:3571
-#: systemv/cupstestppd.c:3609 systemv/cupstestppd.c:3750
-#: systemv/cupstestppd.c:3772 systemv/cupstestppd.c:3880
+#: systemv/cupstestppd.c:3388 systemv/cupstestppd.c:3424
+#: systemv/cupstestppd.c:3438 systemv/cupstestppd.c:3484
+#: systemv/cupstestppd.c:3516 systemv/cupstestppd.c:3533
+#: systemv/cupstestppd.c:3556 systemv/cupstestppd.c:3572
+#: systemv/cupstestppd.c:3610 systemv/cupstestppd.c:3751
+#: systemv/cupstestppd.c:3773 systemv/cupstestppd.c:3881
msgid " FAIL"
msgstr ""
@@ -1289,22 +1289,22 @@ msgstr ""
msgid " PASS"
msgstr ""
-#: berkeley/lpq.c:560
+#: berkeley/lpq.c:564
#, c-format
msgid "%-6s %-10.10s %-4d %-10d %-27.27s %.0f bytes"
msgstr ""
-#: berkeley/lpq.c:565
+#: berkeley/lpq.c:569
#, c-format
msgid "%-7s %-7.7s %-7d %-31.31s %.0f bytes"
msgstr ""
-#: systemv/lpstat.c:750
+#: systemv/lpstat.c:707
#, c-format
msgid "%s accepting requests since %s"
msgstr ""
-#: scheduler/ipp.c:10045
+#: scheduler/ipp.c:10106
#, c-format
msgid "%s cannot be changed."
msgstr ""
@@ -1314,28 +1314,28 @@ msgstr ""
msgid "%s is not implemented by the CUPS version of lpc."
msgstr ""
-#: berkeley/lpq.c:651
+#: berkeley/lpq.c:655
#, c-format
msgid "%s is not ready"
msgstr ""
-#: berkeley/lpq.c:644
+#: berkeley/lpq.c:648
#, c-format
msgid "%s is ready"
msgstr ""
-#: berkeley/lpq.c:647
+#: berkeley/lpq.c:651
#, c-format
msgid "%s is ready and printing"
msgstr ""
#: filter/rastertoepson.c:985 filter/rastertohp.c:711
-#: filter/rastertolabel.c:1134
+#: filter/rastertolabel.c:1123
#, c-format
msgid "%s job-id user title copies options [file]"
msgstr ""
-#: systemv/lpstat.c:754
+#: systemv/lpstat.c:711
#, c-format
msgid "%s not accepting requests since %s -"
msgstr ""
@@ -1345,17 +1345,17 @@ msgstr ""
msgid "%s not supported."
msgstr ""
-#: systemv/lpstat.c:765
+#: systemv/lpstat.c:722
#, c-format
msgid "%s/%s accepting requests since %s"
msgstr ""
-#: systemv/lpstat.c:770
+#: systemv/lpstat.c:727
#, c-format
msgid "%s/%s not accepting requests since %s -"
msgstr ""
-#: berkeley/lpq.c:552
+#: berkeley/lpq.c:556
#, c-format
msgid "%s: %-33.33s [job %d localhost]"
msgstr ""
@@ -1424,11 +1424,6 @@ msgstr ""
msgid "%s: Error - expected destination after \"-P\" option."
msgstr ""
-#: systemv/lpstat.c:231
-#, c-format
-msgid "%s: Error - expected destination after \"-b\" option."
-msgstr ""
-
#: systemv/lp.c:138
#, c-format
msgid "%s: Error - expected destination after \"-d\" option."
@@ -1450,7 +1445,7 @@ msgid "%s: Error - expected hostname after \"-H\" option."
msgstr ""
#: berkeley/lpq.c:180 berkeley/lprm.c:123 systemv/cancel.c:124
-#: systemv/cupsaccept.c:123 systemv/lp.c:189 systemv/lpstat.c:291
+#: systemv/cupsaccept.c:123 systemv/lp.c:189 systemv/lpstat.c:259
#, c-format
msgid "%s: Error - expected hostname after \"-h\" option."
msgstr ""
@@ -1553,7 +1548,7 @@ msgid "%s: Error - unknown destination \"%s/%s\"."
msgstr ""
#: berkeley/lpr.c:274 berkeley/lprm.c:139 systemv/cancel.c:156
-#: systemv/cupsaccept.c:164 systemv/lp.c:496 systemv/lpstat.c:452
+#: systemv/cupsaccept.c:164 systemv/lp.c:496 systemv/lpstat.c:409
#, c-format
msgid "%s: Error - unknown option \"%c\"."
msgstr ""
@@ -1568,7 +1563,7 @@ msgstr ""
msgid "%s: Expected job ID after \"-i\" option."
msgstr ""
-#: systemv/lpstat.c:504 systemv/lpstat.c:543
+#: systemv/lpstat.c:461 systemv/lpstat.c:500
#, c-format
msgid "%s: Invalid destination name in list \"%s\"."
msgstr ""
@@ -1632,7 +1627,7 @@ msgstr ""
msgid "%s: Unable to read MIME database from \"%s\" or \"%s\"."
msgstr ""
-#: berkeley/lpq.c:153 systemv/lpstat.c:558
+#: berkeley/lpq.c:153 systemv/lpstat.c:515
#, c-format
msgid "%s: Unknown destination \"%s\"."
msgstr ""
@@ -2481,7 +2476,7 @@ msgstr ""
msgid "A Samba username is required to export printer drivers"
msgstr ""
-#: scheduler/ipp.c:2283
+#: scheduler/ipp.c:2341
#, c-format
msgid "A class named \"%s\" already exists."
msgstr ""
@@ -2631,7 +2626,7 @@ msgstr ""
msgid "Accept Jobs"
msgstr ""
-#: cups/http-support.c:1284
+#: cups/http-support.c:1285
msgid "Accepted"
msgstr ""
@@ -2660,7 +2655,7 @@ msgstr ""
msgid "Always"
msgstr ""
-#: backend/socket.c:129
+#: backend/socket.c:130
msgid "AppSocket/HP JetDirect"
msgstr ""
@@ -2726,7 +2721,12 @@ msgstr ""
msgid "B9"
msgstr ""
-#: cups/dest.c:1680
+#: scheduler/ipp.c:11032
+#, c-format
+msgid "Bad 'document-format' value \"%s\"."
+msgstr ""
+
+#: cups/dest.c:1683
msgid "Bad NULL dests pointer"
msgstr ""
@@ -2746,16 +2746,16 @@ msgstr ""
#: cups/ppd-cache.c:239 cups/ppd-cache.c:255 cups/ppd-cache.c:271
#: cups/ppd-cache.c:280 cups/ppd-cache.c:288 cups/ppd-cache.c:305
#: cups/ppd-cache.c:313 cups/ppd-cache.c:328 cups/ppd-cache.c:336
-#: cups/ppd-cache.c:354 cups/ppd-cache.c:366 cups/ppd-cache.c:381
-#: cups/ppd-cache.c:393 cups/ppd-cache.c:415 cups/ppd-cache.c:423
-#: cups/ppd-cache.c:441 cups/ppd-cache.c:449 cups/ppd-cache.c:464
-#: cups/ppd-cache.c:472 cups/ppd-cache.c:490 cups/ppd-cache.c:498
-#: cups/ppd-cache.c:525 cups/ppd-cache.c:571 cups/ppd-cache.c:579
-#: cups/ppd-cache.c:587
+#: cups/ppd-cache.c:357 cups/ppd-cache.c:369 cups/ppd-cache.c:384
+#: cups/ppd-cache.c:396 cups/ppd-cache.c:418 cups/ppd-cache.c:426
+#: cups/ppd-cache.c:444 cups/ppd-cache.c:452 cups/ppd-cache.c:467
+#: cups/ppd-cache.c:475 cups/ppd-cache.c:493 cups/ppd-cache.c:501
+#: cups/ppd-cache.c:528 cups/ppd-cache.c:589 cups/ppd-cache.c:597
+#: cups/ppd-cache.c:605
msgid "Bad PPD cache file."
msgstr ""
-#: cups/http-support.c:1299
+#: cups/http-support.c:1300
msgid "Bad Request"
msgstr ""
@@ -2767,7 +2767,7 @@ msgstr ""
msgid "Bad UIConstraints"
msgstr ""
-#: scheduler/ipp.c:1380
+#: scheduler/ipp.c:1438
#, c-format
msgid "Bad copies value %d."
msgstr ""
@@ -2776,23 +2776,22 @@ msgstr ""
msgid "Bad custom parameter"
msgstr ""
-#: cups/http-support.c:1451 scheduler/ipp.c:2350
+#: cups/http-support.c:1452 scheduler/ipp.c:2408
#, c-format
msgid "Bad device-uri \"%s\"."
msgstr ""
-#: scheduler/ipp.c:2391
+#: scheduler/ipp.c:2449
#, c-format
msgid "Bad device-uri scheme \"%s\"."
msgstr ""
-#: scheduler/ipp.c:8224 scheduler/ipp.c:8240 scheduler/ipp.c:9454
-#: scheduler/ipp.c:10968
+#: scheduler/ipp.c:8284 scheduler/ipp.c:8300 scheduler/ipp.c:9515
#, c-format
msgid "Bad document-format \"%s\"."
msgstr ""
-#: scheduler/ipp.c:9470
+#: scheduler/ipp.c:9531
#, c-format
msgid "Bad document-format-default \"%s\"."
msgstr ""
@@ -2801,42 +2800,42 @@ msgstr ""
msgid "Bad filename buffer"
msgstr ""
-#: scheduler/ipp.c:10060
+#: scheduler/ipp.c:10121
msgid "Bad job-priority value."
msgstr ""
-#: scheduler/ipp.c:1410
+#: scheduler/ipp.c:1468
#, c-format
msgid "Bad job-sheets value \"%s\"."
msgstr ""
-#: scheduler/ipp.c:1394
+#: scheduler/ipp.c:1452
msgid "Bad job-sheets value type."
msgstr ""
-#: scheduler/ipp.c:10090
+#: scheduler/ipp.c:10151
msgid "Bad job-state value."
msgstr ""
-#: scheduler/ipp.c:2974 scheduler/ipp.c:3426 scheduler/ipp.c:6078
-#: scheduler/ipp.c:6225 scheduler/ipp.c:7658 scheduler/ipp.c:7927
-#: scheduler/ipp.c:8775 scheduler/ipp.c:9001 scheduler/ipp.c:9350
-#: scheduler/ipp.c:9953
+#: scheduler/ipp.c:3032 scheduler/ipp.c:3484 scheduler/ipp.c:6138
+#: scheduler/ipp.c:6285 scheduler/ipp.c:7718 scheduler/ipp.c:7987
+#: scheduler/ipp.c:8836 scheduler/ipp.c:9062 scheduler/ipp.c:9411
+#: scheduler/ipp.c:10014
#, c-format
msgid "Bad job-uri \"%s\"."
msgstr ""
-#: scheduler/ipp.c:2049 scheduler/ipp.c:5622
+#: scheduler/ipp.c:2107 scheduler/ipp.c:5682
#, c-format
msgid "Bad notify-pull-method \"%s\"."
msgstr ""
-#: scheduler/ipp.c:2013 scheduler/ipp.c:5586
+#: scheduler/ipp.c:2071 scheduler/ipp.c:5646
#, c-format
msgid "Bad notify-recipient-uri \"%s\"."
msgstr ""
-#: scheduler/ipp.c:1426
+#: scheduler/ipp.c:1484
#, c-format
msgid "Bad number-up value %d."
msgstr ""
@@ -2846,21 +2845,21 @@ msgstr ""
msgid "Bad option + choice on line %d."
msgstr ""
-#: scheduler/ipp.c:1443
+#: scheduler/ipp.c:1501
#, c-format
msgid "Bad page-ranges values %d-%d."
msgstr ""
-#: scheduler/ipp.c:2434
+#: scheduler/ipp.c:2492
#, c-format
msgid "Bad port-monitor \"%s\"."
msgstr ""
-#: cups/dest.c:676 cups/dest.c:1333
+#: cups/dest.c:677 cups/dest.c:1334
msgid "Bad printer URI."
msgstr ""
-#: scheduler/ipp.c:2495
+#: scheduler/ipp.c:2553
#, c-format
msgid "Bad printer-state value %d."
msgstr ""
@@ -2891,7 +2890,7 @@ msgstr ""
msgid "Bond Paper"
msgstr ""
-#: backend/usb-darwin.c:1846
+#: backend/usb-darwin.c:1875
#, c-format
msgid "Boolean expected for waiteof option \"%s\"."
msgstr ""
@@ -2912,11 +2911,11 @@ msgstr ""
msgid "Cancel RSS Subscription"
msgstr ""
-#: backend/ipp.c:1921
+#: backend/ipp.c:2016
msgid "Canceling print job."
msgstr ""
-#: scheduler/ipp.c:2475
+#: scheduler/ipp.c:2533
msgid "Cannot share a remote Kerberized printer."
msgstr ""
@@ -2929,7 +2928,7 @@ msgstr ""
msgid "Change Settings"
msgstr ""
-#: scheduler/ipp.c:2061 scheduler/ipp.c:5634
+#: scheduler/ipp.c:2119 scheduler/ipp.c:5694
#, c-format
msgid "Character set \"%s\" not supported."
msgstr ""
@@ -2942,7 +2941,7 @@ msgstr ""
msgid "Clean Print Heads"
msgstr ""
-#: scheduler/ipp.c:3878
+#: scheduler/ipp.c:3936
msgid "Close-Job doesn't support the job-uri attribute."
msgstr ""
@@ -2965,15 +2964,15 @@ msgstr ""
msgid "Community name uses indefinite length"
msgstr ""
-#: backend/ipp.c:786 backend/lpd.c:871 backend/socket.c:395
+#: backend/ipp.c:820 backend/lpd.c:888 backend/socket.c:409
msgid "Connected to printer."
msgstr ""
-#: backend/ipp.c:691 backend/lpd.c:694 backend/socket.c:314
+#: backend/ipp.c:725 backend/lpd.c:711 backend/socket.c:328
msgid "Connecting to printer."
msgstr ""
-#: cups/http-support.c:1272
+#: cups/http-support.c:1273
msgid "Continue"
msgstr ""
@@ -2981,15 +2980,15 @@ msgstr ""
msgid "Continuous"
msgstr ""
-#: backend/lpd.c:1020 backend/lpd.c:1152
+#: backend/lpd.c:1037 backend/lpd.c:1169
msgid "Control file sent successfully."
msgstr ""
-#: backend/ipp.c:1233 backend/lpd.c:464
+#: backend/ipp.c:1271 backend/lpd.c:481
msgid "Copying print data."
msgstr ""
-#: cups/http-support.c:1281
+#: cups/http-support.c:1282
msgid "Created"
msgstr ""
@@ -3021,7 +3020,7 @@ msgstr ""
msgid "Darkness"
msgstr ""
-#: backend/lpd.c:1105
+#: backend/lpd.c:1122
msgid "Data file sent successfully."
msgstr ""
@@ -3037,7 +3036,7 @@ msgstr ""
msgid "DeskJet Series"
msgstr ""
-#: scheduler/ipp.c:1346
+#: scheduler/ipp.c:1362
#, c-format
msgid "Destination \"%s\" is not accepting jobs."
msgstr ""
@@ -3086,7 +3085,7 @@ msgstr ""
msgid "Disabled"
msgstr ""
-#: scheduler/ipp.c:6127
+#: scheduler/ipp.c:6187
#, c-format
msgid "Document #%d does not exist in job #%d."
msgstr ""
@@ -3415,7 +3414,7 @@ msgstr ""
msgid "Executive"
msgstr ""
-#: cups/http-support.c:1327
+#: cups/http-support.c:1328
msgid "Expectation Failed"
msgstr ""
@@ -3474,13 +3473,13 @@ msgstr ""
msgid "File Folder "
msgstr ""
-#: scheduler/ipp.c:2370
+#: scheduler/ipp.c:2428
#, c-format
msgid "File device URIs have been disabled. To enable, see the FileDevice directive in \"%s/cupsd.conf\"."
msgstr ""
#: filter/rastertoepson.c:1117 filter/rastertohp.c:845
-#: filter/rastertolabel.c:1273
+#: filter/rastertolabel.c:1262
#, c-format
msgid "Finished page %d."
msgstr ""
@@ -3489,7 +3488,7 @@ msgstr ""
msgid "Folio"
msgstr ""
-#: cups/http-support.c:1306
+#: cups/http-support.c:1307
msgid "Forbidden"
msgstr ""
@@ -3509,10 +3508,10 @@ msgstr ""
msgid "Glossy Paper"
msgstr ""
-#: scheduler/ipp.c:2952 scheduler/ipp.c:3352 scheduler/ipp.c:3890
-#: scheduler/ipp.c:6056 scheduler/ipp.c:6203 scheduler/ipp.c:7635
-#: scheduler/ipp.c:8753 scheduler/ipp.c:8979 scheduler/ipp.c:9328
-#: scheduler/ipp.c:9931
+#: scheduler/ipp.c:3010 scheduler/ipp.c:3410 scheduler/ipp.c:3948
+#: scheduler/ipp.c:6116 scheduler/ipp.c:6263 scheduler/ipp.c:7695
+#: scheduler/ipp.c:8814 scheduler/ipp.c:9040 scheduler/ipp.c:9389
+#: scheduler/ipp.c:9992
msgid "Got a printer-uri attribute but no job-id."
msgstr ""
@@ -3532,83 +3531,111 @@ msgstr ""
msgid "Help file not in index."
msgstr ""
-#: cups/ipp.c:2687 cups/ipp.c:2714 cups/ipp.c:2737
+#: cups/ipp.c:2701 cups/ipp.c:2728 cups/ipp.c:2751
msgid "IPP 1setOf attribute with incompatible value tags."
msgstr ""
-#: cups/ipp.c:2650
+#: cups/ipp.c:2664
msgid "IPP attribute has no name."
msgstr ""
-#: cups/ipp.c:5487
+#: cups/ipp.c:5579
msgid "IPP attribute is not a member of the message."
msgstr ""
-#: cups/ipp.c:3083
+#: cups/ipp.c:3140
msgid "IPP begCollection value not 0 bytes."
msgstr ""
-#: cups/ipp.c:2873
+#: cups/ipp.c:2887
msgid "IPP boolean value not 1 byte."
msgstr ""
-#: cups/ipp.c:2934
+#: cups/ipp.c:2958
msgid "IPP date value not 11 bytes."
msgstr ""
-#: cups/ipp.c:3104
+#: cups/ipp.c:3161
msgid "IPP endCollection value not 0 bytes."
msgstr ""
-#: cups/ipp.c:2848
+#: cups/ipp.c:2862
msgid "IPP enum value not 4 bytes."
msgstr ""
-#: cups/ipp.c:2579
+#: cups/ipp.c:2593
msgid "IPP extension tag larger than 0x7FFFFFFF."
msgstr ""
-#: cups/ipp.c:2845
+#: cups/ipp.c:2859
msgid "IPP integer value not 4 bytes."
msgstr ""
-#: cups/ipp.c:3045
+#: cups/ipp.c:3084
msgid "IPP language length overflows value."
msgstr ""
-#: cups/ipp.c:2764
+#: cups/ipp.c:3093
+msgid "IPP language length too large."
+msgstr ""
+
+#: cups/ipp.c:2778
msgid "IPP member name is not empty."
msgstr ""
-#: cups/ipp.c:3122
+#: cups/ipp.c:3187
msgid "IPP memberName value is empty."
msgstr ""
-#: cups/ipp.c:2633
+#: cups/ipp.c:3179
+msgid "IPP memberName with no attribute."
+msgstr ""
+
+#: cups/ipp.c:2647
msgid "IPP name larger than 32767 bytes."
msgstr ""
-#: cups/ipp.c:3011
+#: cups/ipp.c:3035
msgid "IPP nameWithLanguage value less than minimum 4 bytes."
msgstr ""
-#: cups/ipp.c:2979
+#: cups/ipp.c:3050
+msgid "IPP nameWithLanguage value more than maximum 1090 bytes."
+msgstr ""
+
+#: cups/ipp.c:3217
+msgid "IPP octetString length too large."
+msgstr ""
+
+#: cups/ipp.c:3003
msgid "IPP rangeOfInteger value not 8 bytes."
msgstr ""
-#: cups/ipp.c:2952
+#: cups/ipp.c:2976
msgid "IPP resolution value not 9 bytes."
msgstr ""
-#: cups/ipp.c:3063
+#: cups/ipp.c:3111
msgid "IPP string length overflows value."
msgstr ""
-#: cups/ipp.c:3007
+#: cups/ipp.c:2933
+msgid "IPP string value too large."
+msgstr ""
+
+#: cups/ipp.c:3119
+msgid "IPP text length too large."
+msgstr ""
+
+#: cups/ipp.c:3031
msgid "IPP textWithLanguage value less than minimum 4 bytes."
msgstr ""
-#: cups/ipp.c:2831
+#: cups/ipp.c:3046
+msgid "IPP textWithLanguage value more than maximum 1090 bytes."
+msgstr ""
+
+#: cups/ipp.c:2845
msgid "IPP value larger than 32767 bytes."
msgstr ""
@@ -3652,7 +3679,7 @@ msgstr ""
msgid "Intellitech"
msgstr ""
-#: cups/http-support.c:1333
+#: cups/http-support.c:1334
msgid "Internal Server Error"
msgstr ""
@@ -3668,11 +3695,11 @@ msgstr ""
msgid "Internet Postage 3-Part"
msgstr ""
-#: backend/ipp.c:307
+#: backend/ipp.c:328
msgid "Internet Printing Protocol"
msgstr ""
-#: cups/dest-options.c:839
+#: cups/dest-options.c:837
msgid "Invalid media size."
msgstr ""
@@ -3741,52 +3768,52 @@ msgstr ""
msgid "JIS B9"
msgstr ""
-#: scheduler/ipp.c:9051
+#: scheduler/ipp.c:9112
#, c-format
msgid "Job #%d cannot be restarted - no files."
msgstr ""
-#: scheduler/ipp.c:2992 scheduler/ipp.c:3222 scheduler/ipp.c:3277
-#: scheduler/ipp.c:3454 scheduler/ipp.c:3900 scheduler/ipp.c:5720
-#: scheduler/ipp.c:6096 scheduler/ipp.c:6243 scheduler/ipp.c:6543
-#: scheduler/ipp.c:7482 scheduler/ipp.c:7504 scheduler/ipp.c:7676
-#: scheduler/ipp.c:7901 scheduler/ipp.c:7944 scheduler/ipp.c:8793
-#: scheduler/ipp.c:9019 scheduler/ipp.c:9368 scheduler/ipp.c:9971
+#: scheduler/ipp.c:3050 scheduler/ipp.c:3280 scheduler/ipp.c:3335
+#: scheduler/ipp.c:3512 scheduler/ipp.c:3958 scheduler/ipp.c:5780
+#: scheduler/ipp.c:6156 scheduler/ipp.c:6303 scheduler/ipp.c:6603
+#: scheduler/ipp.c:7542 scheduler/ipp.c:7564 scheduler/ipp.c:7736
+#: scheduler/ipp.c:7961 scheduler/ipp.c:8004 scheduler/ipp.c:8854
+#: scheduler/ipp.c:9080 scheduler/ipp.c:9429 scheduler/ipp.c:10032
#, c-format
msgid "Job #%d does not exist."
msgstr ""
-#: scheduler/ipp.c:3486
+#: scheduler/ipp.c:3544
#, c-format
msgid "Job #%d is already aborted - can't cancel."
msgstr ""
-#: scheduler/ipp.c:3480
+#: scheduler/ipp.c:3538
#, c-format
msgid "Job #%d is already canceled - can't cancel."
msgstr ""
-#: scheduler/ipp.c:3492
+#: scheduler/ipp.c:3550
#, c-format
msgid "Job #%d is already completed - can't cancel."
msgstr ""
-#: scheduler/ipp.c:7702 scheduler/ipp.c:7986 scheduler/ipp.c:9986
+#: scheduler/ipp.c:7762 scheduler/ipp.c:8046 scheduler/ipp.c:10047
#, c-format
msgid "Job #%d is finished and cannot be altered."
msgstr ""
-#: scheduler/ipp.c:9033
+#: scheduler/ipp.c:9094
#, c-format
msgid "Job #%d is not complete."
msgstr ""
-#: scheduler/ipp.c:3007
+#: scheduler/ipp.c:3065
#, c-format
msgid "Job #%d is not held for authentication."
msgstr ""
-#: scheduler/ipp.c:8807
+#: scheduler/ipp.c:8868
#, c-format
msgid "Job #%d is not held."
msgstr ""
@@ -3807,7 +3834,7 @@ msgstr ""
msgid "Job Stopped"
msgstr ""
-#: scheduler/ipp.c:10068
+#: scheduler/ipp.c:10129
msgid "Job is completed and cannot be changed."
msgstr ""
@@ -3815,11 +3842,11 @@ msgstr ""
msgid "Job operation failed"
msgstr ""
-#: scheduler/ipp.c:10104 scheduler/ipp.c:10123 scheduler/ipp.c:10134
+#: scheduler/ipp.c:10165 scheduler/ipp.c:10184 scheduler/ipp.c:10195
msgid "Job state cannot be changed."
msgstr ""
-#: scheduler/ipp.c:8899
+#: scheduler/ipp.c:8960
msgid "Job subscriptions cannot be renewed."
msgstr ""
@@ -3827,7 +3854,7 @@ msgstr ""
msgid "Jobs"
msgstr ""
-#: backend/lpd.c:185
+#: backend/lpd.c:186
msgid "LPD/LPR Host or Printer"
msgstr ""
@@ -3839,7 +3866,7 @@ msgstr ""
msgid "Label Top"
msgstr ""
-#: scheduler/ipp.c:2070 scheduler/ipp.c:5643
+#: scheduler/ipp.c:2128 scheduler/ipp.c:5703
#, c-format
msgid "Language \"%s\" not supported."
msgstr ""
@@ -3876,7 +3903,7 @@ msgstr ""
msgid "Long-Edge (Portrait)"
msgstr ""
-#: cups/http-support.c:1558
+#: cups/http-support.c:1560
msgid "Looking for printer."
msgstr ""
@@ -3920,7 +3947,7 @@ msgstr ""
msgid "Missing asterisk in column 1"
msgstr ""
-#: scheduler/ipp.c:6119
+#: scheduler/ipp.c:6179
msgid "Missing document-number attribute."
msgstr ""
@@ -3935,7 +3962,7 @@ msgstr ""
msgid "Missing form variable"
msgstr ""
-#: scheduler/ipp.c:9422
+#: scheduler/ipp.c:9483
msgid "Missing last-document attribute in request."
msgstr ""
@@ -3947,7 +3974,7 @@ msgstr ""
msgid "Missing media-size in media-col."
msgstr ""
-#: scheduler/ipp.c:6673
+#: scheduler/ipp.c:6733
msgid "Missing notify-subscription-ids attribute."
msgstr ""
@@ -3955,7 +3982,7 @@ msgstr ""
msgid "Missing option keyword"
msgstr ""
-#: scheduler/ipp.c:3133 scheduler/ipp.c:3158
+#: scheduler/ipp.c:3191 scheduler/ipp.c:3216
msgid "Missing requesting-user-name attribute."
msgstr ""
@@ -4005,7 +4032,7 @@ msgstr ""
msgid "Move Job"
msgstr ""
-#: cups/http-support.c:1290
+#: cups/http-support.c:1291
msgid "Moved Permanently"
msgstr ""
@@ -4037,7 +4064,7 @@ msgstr ""
msgid "No"
msgstr ""
-#: cups/http-support.c:1287
+#: cups/http-support.c:1288
msgid "No Content"
msgstr ""
@@ -4053,11 +4080,11 @@ msgstr ""
msgid "No Windows printer drivers are installed."
msgstr ""
-#: cups/request.c:566 cups/request.c:908
+#: cups/request.c:568 cups/request.c:914
msgid "No active connection"
msgstr ""
-#: scheduler/ipp.c:3403
+#: scheduler/ipp.c:3461
#, c-format
msgid "No active jobs on %s."
msgstr ""
@@ -4066,7 +4093,7 @@ msgstr ""
msgid "No attributes in request."
msgstr ""
-#: scheduler/ipp.c:3034
+#: scheduler/ipp.c:3092
msgid "No authentication information provided."
msgstr ""
@@ -4074,11 +4101,11 @@ msgstr ""
msgid "No community name"
msgstr ""
-#: scheduler/ipp.c:5919
+#: scheduler/ipp.c:5979
msgid "No default printer."
msgstr ""
-#: cgi-bin/ipp-var.c:436 scheduler/ipp.c:7248
+#: cgi-bin/ipp-var.c:436 scheduler/ipp.c:7308
msgid "No destinations added."
msgstr ""
@@ -4094,7 +4121,7 @@ msgstr ""
msgid "No error-status"
msgstr ""
-#: scheduler/ipp.c:8190 scheduler/ipp.c:9436
+#: scheduler/ipp.c:8250 scheduler/ipp.c:9497
msgid "No file in print request."
msgstr ""
@@ -4107,7 +4134,7 @@ msgid "No name OID"
msgstr ""
#: filter/rastertoepson.c:1147 filter/rastertohp.c:876
-#: filter/rastertolabel.c:1302
+#: filter/rastertolabel.c:1291
msgid "No pages were found."
msgstr ""
@@ -4115,15 +4142,15 @@ msgstr ""
msgid "No printer name"
msgstr ""
-#: cups/util.c:1801
+#: cups/util.c:1829
msgid "No printer-uri found"
msgstr ""
-#: cups/util.c:1786
+#: cups/util.c:1814
msgid "No printer-uri found for class"
msgstr ""
-#: scheduler/ipp.c:6322
+#: scheduler/ipp.c:6382
msgid "No printer-uri in request."
msgstr ""
@@ -4131,11 +4158,11 @@ msgstr ""
msgid "No request-id"
msgstr ""
-#: scheduler/ipp.c:5528
+#: scheduler/ipp.c:5588
msgid "No subscription attributes in request."
msgstr ""
-#: scheduler/ipp.c:7575
+#: scheduler/ipp.c:7635
msgid "No subscriptions found."
msgstr ""
@@ -4159,11 +4186,11 @@ msgstr ""
msgid "Normal"
msgstr ""
-#: cups/http-support.c:1309
+#: cups/http-support.c:1310
msgid "Not Found"
msgstr ""
-#: cups/http-support.c:1321
+#: cups/http-support.c:1322
msgid "Not Implemented"
msgstr ""
@@ -4171,15 +4198,15 @@ msgstr ""
msgid "Not Installed"
msgstr ""
-#: cups/http-support.c:1296
+#: cups/http-support.c:1297
msgid "Not Modified"
msgstr ""
-#: cups/http-support.c:1324
+#: cups/http-support.c:1325
msgid "Not Supported"
msgstr ""
-#: scheduler/ipp.c:1518 scheduler/ipp.c:10666
+#: scheduler/ipp.c:1576 scheduler/ipp.c:10728
msgid "Not allowed to print."
msgstr ""
@@ -4191,7 +4218,7 @@ msgstr ""
msgid "Note: this program only validates the DSC comments, not the PostScript itself."
msgstr ""
-#: cups/http-support.c:1278 cups/ppd.c:338
+#: cups/http-support.c:1279 cups/ppd.c:338
msgid "OK"
msgstr ""
@@ -4233,9 +4260,9 @@ msgstr ""
msgid "Options Installed"
msgstr ""
-#: scheduler/cupsfilter.c:1430 scheduler/main.c:2018 systemv/cupsaddsmb.c:284
-#: systemv/cupsctl.c:203 systemv/cupstestdsc.c:429 systemv/cupstestppd.c:3797
-#: test/ipptool.c:4403 ppdc/ppdc.cxx:437 ppdc/ppdhtml.cxx:174
+#: scheduler/cupsfilter.c:1430 scheduler/main.c:1985 systemv/cupsaddsmb.c:284
+#: systemv/cupsctl.c:203 systemv/cupstestdsc.c:429 systemv/cupstestppd.c:3798
+#: test/ipptool.c:4445 ppdc/ppdc.cxx:437 ppdc/ppdhtml.cxx:174
#: ppdc/ppdi.cxx:130 ppdc/ppdmerge.cxx:369 ppdc/ppdpo.cxx:254
msgid "Options:"
msgstr ""
@@ -4244,7 +4271,7 @@ msgstr ""
msgid "Out of date PPD cache file."
msgstr ""
-#: cups/ppd-cache.c:1381
+#: cups/ppd-cache.c:1416
msgid "Out of memory."
msgstr ""
@@ -4252,22 +4279,22 @@ msgstr ""
msgid "Output Mode"
msgstr ""
-#: systemv/lpstat.c:1191 systemv/lpstat.c:1195
+#: systemv/lpstat.c:1148 systemv/lpstat.c:1152
#, c-format
msgid "Output for printer %s is sent to %s"
msgstr ""
-#: systemv/lpstat.c:1185
+#: systemv/lpstat.c:1142
#, c-format
msgid "Output for printer %s is sent to remote printer %s on %s"
msgstr ""
-#: systemv/lpstat.c:1209 systemv/lpstat.c:1213
+#: systemv/lpstat.c:1166 systemv/lpstat.c:1170
#, c-format
msgid "Output for printer %s/%s is sent to %s"
msgstr ""
-#: systemv/lpstat.c:1203
+#: systemv/lpstat.c:1160
#, c-format
msgid "Output for printer %s/%s is sent to remote printer %s on %s"
msgstr ""
@@ -4320,7 +4347,7 @@ msgstr ""
msgid "ParamCustominTearInterval"
msgstr ""
-#: cups/auth.c:199 cups/auth.c:367
+#: cups/auth.c:206 cups/auth.c:374
#, c-format
msgid "Password for %s on %s? "
msgstr ""
@@ -4382,6 +4409,10 @@ msgstr ""
msgid "Postcard Long Edge"
msgstr ""
+#: backend/ipp.c:925 backend/ipp.c:933
+msgid "Preparing to print."
+msgstr ""
+
#: ppdc/sample.c:295
msgid "Print Density"
msgstr ""
@@ -4418,31 +4449,22 @@ msgstr ""
msgid "Print and Tear"
msgstr ""
-#: backend/ipp.c:1537
-#, c-format
-msgid "Print file accepted - job ID %d."
-msgstr ""
-
-#: backend/ipp.c:1527
-msgid "Print file accepted - job ID unknown."
-msgstr ""
-
-#: backend/socket.c:424 backend/usb-unix.c:191
+#: backend/socket.c:438 backend/usb-unix.c:191
msgid "Print file sent."
msgstr ""
-#: backend/ipp.c:1488
-msgid "Print file was not accepted."
-msgstr ""
-
-#: backend/ipp.c:1895
+#: backend/ipp.c:1990
msgid "Print job canceled at printer."
msgstr ""
-#: backend/ipp.c:1890
+#: backend/ipp.c:1985
msgid "Print job too large."
msgstr ""
+#: backend/ipp.c:1543
+msgid "Print job was not accepted."
+msgstr ""
+
#: cgi-bin/ipp-var.c:1047
msgid "Printer Added"
msgstr ""
@@ -4467,7 +4489,7 @@ msgstr ""
msgid "Printer Settings"
msgstr ""
-#: backend/ipp.c:1893
+#: backend/ipp.c:1988
msgid "Printer cannot print supplied content."
msgstr ""
@@ -4480,7 +4502,7 @@ msgid "Printers"
msgstr ""
#: filter/rastertoepson.c:1093 filter/rastertohp.c:817
-#: filter/rastertolabel.c:1249
+#: filter/rastertolabel.c:1238
#, c-format
msgid "Printing page %d, %d%% complete."
msgstr ""
@@ -4493,16 +4515,16 @@ msgstr ""
msgid "Quarto"
msgstr ""
-#: scheduler/ipp.c:1513 scheduler/ipp.c:10661
+#: scheduler/ipp.c:1571 scheduler/ipp.c:10723
msgid "Quota limit reached."
msgstr ""
-#: berkeley/lpq.c:515
+#: berkeley/lpq.c:519
msgid "Rank Owner Job File(s) Total Size"
msgstr ""
#. TRANSLATORS: Pri is job priority.
-#: berkeley/lpq.c:511
+#: berkeley/lpq.c:515
msgid "Rank Owner Pri Job Files Total Size"
msgstr ""
@@ -4510,12 +4532,12 @@ msgstr ""
msgid "Reject Jobs"
msgstr ""
-#: backend/lpd.c:1016 backend/lpd.c:1148
+#: backend/lpd.c:1033 backend/lpd.c:1165
#, c-format
msgid "Remote host did not accept control file (%d)."
msgstr ""
-#: backend/lpd.c:1101
+#: backend/lpd.c:1118
#, c-format
msgid "Remote host did not accept data file (%d)."
msgstr ""
@@ -4524,7 +4546,7 @@ msgstr ""
msgid "Reprint After Error"
msgstr ""
-#: cups/http-support.c:1312
+#: cups/http-support.c:1313
msgid "Request Entity Too Large"
msgstr ""
@@ -4557,15 +4579,15 @@ msgstr ""
msgid "SEQUENCE uses indefinite length"
msgstr ""
-#: cups/http-support.c:1336
+#: cups/http-support.c:1337
msgid "SSL/TLS Negotiation Error"
msgstr ""
-#: cups/http-support.c:1293
+#: cups/http-support.c:1294
msgid "See Other"
msgstr ""
-#: backend/usb-darwin.c:543 backend/usb-libusb.c:273
+#: backend/usb-darwin.c:572 backend/usb-libusb.c:405
msgid "Sending data to printer."
msgstr ""
@@ -4585,7 +4607,7 @@ msgstr ""
msgid "Server Stopped"
msgstr ""
-#: cups/http-support.c:1330
+#: cups/http-support.c:1331
msgid "Service Unavailable"
msgstr ""
@@ -4622,7 +4644,7 @@ msgstr ""
msgid "Special Paper"
msgstr ""
-#: backend/lpd.c:1057
+#: backend/lpd.c:1074
#, c-format
msgid "Spooling job, %.0f%% complete."
msgstr ""
@@ -4637,7 +4659,7 @@ msgid "Starting Banner"
msgstr ""
#: filter/rastertoepson.c:1069 filter/rastertohp.c:793
-#: filter/rastertolabel.c:1225
+#: filter/rastertolabel.c:1214
#, c-format
msgid "Starting page %d."
msgstr ""
@@ -4654,8 +4676,8 @@ msgstr ""
msgid "Stylus Photo Series"
msgstr ""
-#: scheduler/ipp.c:3549 scheduler/ipp.c:6689 scheduler/ipp.c:7388
-#: scheduler/ipp.c:8887
+#: scheduler/ipp.c:3607 scheduler/ipp.c:6749 scheduler/ipp.c:7448
+#: scheduler/ipp.c:8948
#, c-format
msgid "Subscription #%d does not exist."
msgstr ""
@@ -4672,7 +4694,7 @@ msgstr ""
msgid "Super B/A3"
msgstr ""
-#: cups/http-support.c:1275
+#: cups/http-support.c:1276
msgid "Switching Protocols"
msgstr ""
@@ -4700,29 +4722,39 @@ msgstr ""
msgid "Tear-Off Adjust Position"
msgstr ""
-#: scheduler/ipp.c:6393 scheduler/ipp.c:6471 scheduler/ipp.c:6487
-#: scheduler/ipp.c:6505
+#: scheduler/ipp.c:1407
+#, c-format
+msgid "The \"%s\" attribute is required for print jobs."
+msgstr ""
+
+#: scheduler/ipp.c:6453 scheduler/ipp.c:6531 scheduler/ipp.c:6547
+#: scheduler/ipp.c:6565
#, c-format
msgid "The %s attribute cannot be provided with job-ids."
msgstr ""
-#: scheduler/ipp.c:5118
+#: scheduler/ipp.c:1383
+#, c-format
+msgid "The '%s' Job Description attribute cannot be supplied in a job creation request."
+msgstr ""
+
+#: scheduler/ipp.c:5176
#, c-format
msgid "The '%s' operation attribute cannot be supplied in a Create-Job request."
msgstr ""
-#: scheduler/ipp.c:6919
+#: scheduler/ipp.c:6979
#, c-format
msgid "The PPD file \"%s\" could not be found."
msgstr ""
-#: scheduler/ipp.c:6906
+#: scheduler/ipp.c:6966
#, c-format
msgid "The PPD file \"%s\" could not be opened: %s"
msgstr ""
#: filter/rastertoepson.c:1038 filter/rastertohp.c:764
-#: filter/rastertolabel.c:1189
+#: filter/rastertolabel.c:1178
msgid "The PPD file could not be opened."
msgstr ""
@@ -4746,11 +4778,11 @@ msgstr ""
msgid "The fuser's temperature is low."
msgstr ""
-#: scheduler/ipp.c:2097
+#: scheduler/ipp.c:2155
msgid "The notify-lease-duration attribute cannot be used with job subscriptions."
msgstr ""
-#: scheduler/ipp.c:2080 scheduler/ipp.c:5653
+#: scheduler/ipp.c:2138 scheduler/ipp.c:5713
#, c-format
msgid "The notify-user-data value is too large (%d > 63 octets)."
msgstr ""
@@ -4791,22 +4823,17 @@ msgstr ""
msgid "The paper tray needs to be filled."
msgstr ""
-#: backend/ipp.c:909
-msgid "The printer URI is incorrect or no longer exists."
+#: backend/ipp.c:945
+msgid "The printer configuration is incorrect or the printer no longer exists."
msgstr ""
-#: backend/lpd.c:619 backend/lpd.c:1009 backend/lpd.c:1091 backend/lpd.c:1141
+#: backend/lpd.c:636 backend/lpd.c:1026 backend/lpd.c:1108 backend/lpd.c:1158
msgid "The printer did not respond."
msgstr ""
-#: backend/ipp.c:892 backend/ipp.c:899
-#, c-format
-msgid "The printer does not support IPP/%d.%d, trying IPP/%s."
-msgstr ""
-
-#: backend/ipp.c:757 backend/ipp.c:874 backend/ipp.c:980 backend/ipp.c:1313
-#: backend/ipp.c:1464 backend/lpd.c:828 backend/socket.c:374
-#: backend/usb-unix.c:131 backend/usb-unix.c:424 backend/usb-unix.c:507
+#: backend/ipp.c:791 backend/ipp.c:908 backend/ipp.c:1018 backend/ipp.c:1361
+#: backend/ipp.c:1516 backend/lpd.c:845 backend/socket.c:388
+#: backend/usb-unix.c:131 backend/usb-unix.c:423 backend/usb-unix.c:506
msgid "The printer is in use."
msgstr ""
@@ -4814,8 +4841,8 @@ msgstr ""
msgid "The printer is not connected."
msgstr ""
-#: backend/ipp.c:735 backend/ipp.c:768 backend/ipp.c:870 backend/lpd.c:807
-#: backend/lpd.c:848 backend/socket.c:353 backend/socket.c:386
+#: backend/ipp.c:769 backend/ipp.c:802 backend/ipp.c:904 backend/lpd.c:824
+#: backend/lpd.c:865 backend/socket.c:367 backend/socket.c:400
msgid "The printer is not responding."
msgstr ""
@@ -4823,11 +4850,11 @@ msgstr ""
msgid "The printer is now connected."
msgstr ""
-#: backend/usb-darwin.c:1286
+#: backend/usb-darwin.c:1315
msgid "The printer is now online."
msgstr ""
-#: backend/usb-darwin.c:1307
+#: backend/usb-darwin.c:1336
msgid "The printer is offline."
msgstr ""
@@ -4839,7 +4866,7 @@ msgstr ""
msgid "The printer is running low on toner."
msgstr ""
-#: backend/ipp.c:750 backend/lpd.c:821 backend/socket.c:367
+#: backend/ipp.c:784 backend/lpd.c:838 backend/socket.c:381
msgid "The printer is unreachable at this time."
msgstr ""
@@ -4851,7 +4878,7 @@ msgstr ""
msgid "The printer may be out of toner."
msgstr ""
-#: backend/ipp.c:744 backend/lpd.c:815 backend/socket.c:361
+#: backend/ipp.c:778 backend/lpd.c:832 backend/socket.c:375
msgid "The printer may not exist or is unavailable at this time."
msgstr ""
@@ -4859,18 +4886,18 @@ msgstr ""
msgid "The printer name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
msgstr ""
-#: scheduler/ipp.c:876 scheduler/ipp.c:1136 scheduler/ipp.c:3198
-#: scheduler/ipp.c:3369 scheduler/ipp.c:5101 scheduler/ipp.c:5487
-#: scheduler/ipp.c:5801 scheduler/ipp.c:6359 scheduler/ipp.c:7124
-#: scheduler/ipp.c:7180 scheduler/ipp.c:7494 scheduler/ipp.c:7760
-#: scheduler/ipp.c:7849 scheduler/ipp.c:7882 scheduler/ipp.c:8205
-#: scheduler/ipp.c:8598 scheduler/ipp.c:8679 scheduler/ipp.c:9840
-#: scheduler/ipp.c:10294 scheduler/ipp.c:10624 scheduler/ipp.c:10706
-#: scheduler/ipp.c:10998
+#: scheduler/ipp.c:876 scheduler/ipp.c:1136 scheduler/ipp.c:3256
+#: scheduler/ipp.c:3427 scheduler/ipp.c:5159 scheduler/ipp.c:5547
+#: scheduler/ipp.c:5861 scheduler/ipp.c:6419 scheduler/ipp.c:7184
+#: scheduler/ipp.c:7240 scheduler/ipp.c:7554 scheduler/ipp.c:7820
+#: scheduler/ipp.c:7909 scheduler/ipp.c:7942 scheduler/ipp.c:8265
+#: scheduler/ipp.c:8658 scheduler/ipp.c:8740 scheduler/ipp.c:9901
+#: scheduler/ipp.c:10355 scheduler/ipp.c:10686 scheduler/ipp.c:10768
+#: scheduler/ipp.c:11142
msgid "The printer or class does not exist."
msgstr ""
-#: scheduler/ipp.c:1304
+#: scheduler/ipp.c:1320
msgid "The printer or class is not shared."
msgstr ""
@@ -4894,12 +4921,12 @@ msgstr ""
msgid "The printer's waste bin is full."
msgstr ""
-#: scheduler/ipp.c:982 scheduler/ipp.c:2261
+#: scheduler/ipp.c:982 scheduler/ipp.c:2319
#, c-format
msgid "The printer-uri \"%s\" contains invalid characters."
msgstr ""
-#: scheduler/ipp.c:3175
+#: scheduler/ipp.c:3233
msgid "The printer-uri attribute is required."
msgstr ""
@@ -4907,7 +4934,7 @@ msgstr ""
msgid "The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
msgstr ""
-#: scheduler/ipp.c:2245
+#: scheduler/ipp.c:2303
msgid "The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
msgstr ""
@@ -4919,12 +4946,12 @@ msgstr ""
msgid "The web interface is currently disabled. Run \"cupsctl WebInterface=yes\" to enable it."
msgstr ""
-#: scheduler/ipp.c:6454
+#: scheduler/ipp.c:6514
#, c-format
msgid "The which-jobs value \"%s\" is not supported."
msgstr ""
-#: scheduler/ipp.c:5731
+#: scheduler/ipp.c:5791
msgid "There are too many subscriptions."
msgstr ""
@@ -4932,8 +4959,8 @@ msgstr ""
msgid "There is a paper jam."
msgstr ""
-#: backend/usb-darwin.c:379 backend/usb-darwin.c:438 backend/usb-darwin.c:505
-#: backend/usb-darwin.c:526 backend/usb-libusb.c:235 backend/usb-libusb.c:256
+#: backend/usb-darwin.c:411 backend/usb-darwin.c:470 backend/usb-darwin.c:534
+#: backend/usb-darwin.c:555 backend/usb-libusb.c:330 backend/usb-libusb.c:384
msgid "There was an unrecoverable USB error."
msgstr ""
@@ -4941,16 +4968,16 @@ msgstr ""
msgid "Thermal Transfer Media"
msgstr ""
-#: scheduler/ipp.c:1507
+#: scheduler/ipp.c:1565
msgid "Too many active jobs."
msgstr ""
-#: scheduler/ipp.c:1401
+#: scheduler/ipp.c:1459
#, c-format
msgid "Too many job-sheets values (%d > 2)."
msgstr ""
-#: scheduler/ipp.c:2529
+#: scheduler/ipp.c:2587
#, c-format
msgid "Too many printer-state-reasons values (%d > %d)."
msgstr ""
@@ -4979,7 +5006,7 @@ msgstr ""
msgid "Tray 4"
msgstr ""
-#: cups/http-support.c:1315
+#: cups/http-support.c:1316
msgid "URI Too Long"
msgstr ""
@@ -5031,11 +5058,11 @@ msgstr ""
msgid "Unable to add class"
msgstr ""
-#: backend/ipp.c:1635
+#: backend/ipp.c:1691
msgid "Unable to add document to print job."
msgstr ""
-#: scheduler/ipp.c:1548
+#: scheduler/ipp.c:1606
#, c-format
msgid "Unable to add job for destination \"%s\"."
msgstr ""
@@ -5060,7 +5087,7 @@ msgstr ""
msgid "Unable to cancel RSS subscription"
msgstr ""
-#: backend/ipp.c:1942
+#: backend/ipp.c:2037
msgid "Unable to cancel print job."
msgstr ""
@@ -5080,11 +5107,11 @@ msgstr ""
msgid "Unable to configure printer options."
msgstr ""
-#: cups/adminutil.c:911 cups/request.c:1016
+#: cups/adminutil.c:911 cups/request.c:1022
msgid "Unable to connect to host."
msgstr ""
-#: backend/ipp.c:713 backend/ipp.c:1138 backend/lpd.c:787 backend/socket.c:333
+#: backend/ipp.c:747 backend/ipp.c:1176 backend/lpd.c:804 backend/socket.c:347
#: backend/usb-unix.c:117
msgid "Unable to contact printer, queuing on next printer in class."
msgstr ""
@@ -5104,12 +5131,12 @@ msgstr ""
msgid "Unable to copy CUPS printer driver files (%d)."
msgstr ""
-#: scheduler/ipp.c:2649
+#: scheduler/ipp.c:2707
#, c-format
msgid "Unable to copy PPD file - %s"
msgstr ""
-#: scheduler/ipp.c:2704
+#: scheduler/ipp.c:2762
msgid "Unable to copy PPD file."
msgstr ""
@@ -5123,16 +5150,16 @@ msgstr ""
msgid "Unable to copy Windows 9x printer driver files (%d)."
msgstr ""
-#: scheduler/ipp.c:2626
+#: scheduler/ipp.c:2684
#, c-format
msgid "Unable to copy interface script - %s"
msgstr ""
-#: backend/ipp.c:2034
+#: backend/ipp.c:2129
msgid "Unable to create compressed print file"
msgstr ""
-#: cups/util.c:602 cups/util.c:1656
+#: cups/util.c:602 cups/util.c:1657
msgid "Unable to create printer-uri"
msgstr ""
@@ -5156,35 +5183,35 @@ msgstr ""
msgid "Unable to edit cupsd.conf files larger than 1MB"
msgstr ""
-#: cups/http.c:4272
+#: cups/http.c:4287
msgid "Unable to establish a secure connection to host (certificate chain invalid)."
msgstr ""
-#: cups/http.c:4262
+#: cups/http.c:4277
msgid "Unable to establish a secure connection to host (certificate not yet valid)."
msgstr ""
-#: cups/http.c:4257
+#: cups/http.c:4272
msgid "Unable to establish a secure connection to host (expired certificate)."
msgstr ""
-#: cups/http.c:4267
+#: cups/http.c:4282
msgid "Unable to establish a secure connection to host (host name mismatch)."
msgstr ""
-#: cups/http.c:4277
+#: cups/http.c:4292
msgid "Unable to establish a secure connection to host (peer dropped connection before responding)."
msgstr ""
-#: cups/http.c:4252
+#: cups/http.c:4267
msgid "Unable to establish a secure connection to host (self-signed certificate)."
msgstr ""
-#: cups/http.c:4247
+#: cups/http.c:4262
msgid "Unable to establish a secure connection to host (untrusted certificate)."
msgstr ""
-#: cups/http.c:4008 cups/http.c:4304 cups/http.c:4337 cups/http.c:4354
+#: cups/http.c:4021 cups/http.c:4319 cups/http.c:4352 cups/http.c:4369
msgid "Unable to establish a secure connection to host."
msgstr ""
@@ -5192,15 +5219,15 @@ msgstr ""
msgid "Unable to find destination for job"
msgstr ""
-#: cups/http-support.c:1748
+#: cups/http-support.c:1750
msgid "Unable to find printer."
msgstr ""
-#: backend/ipp.c:2056
+#: backend/ipp.c:2151
msgid "Unable to generate compressed print file"
msgstr ""
-#: backend/ipp.c:3009
+#: backend/ipp.c:3284
msgid "Unable to get backend exit status."
msgstr ""
@@ -5228,7 +5255,7 @@ msgstr ""
msgid "Unable to get printer status"
msgstr ""
-#: backend/ipp.c:933
+#: backend/ipp.c:969
msgid "Unable to get printer status."
msgstr ""
@@ -5246,13 +5273,13 @@ msgstr ""
msgid "Unable to load help index."
msgstr ""
-#: backend/ipp.c:642 backend/lpd.c:421 backend/socket.c:275
+#: backend/ipp.c:673 backend/lpd.c:435 backend/socket.c:286
#, c-format
msgid "Unable to locate printer \"%s\"."
msgstr ""
-#: backend/dnssd.c:781 backend/ipp.c:324 backend/lpd.c:204
-#: backend/socket.c:171
+#: backend/dnssd.c:781 backend/ipp.c:345 backend/lpd.c:205
+#: backend/socket.c:172
msgid "Unable to locate printer."
msgstr ""
@@ -5276,7 +5303,7 @@ msgstr ""
msgid "Unable to open PPD file"
msgstr ""
-#: backend/ipp.c:2040
+#: backend/ipp.c:2135
msgid "Unable to open compressed print file"
msgstr ""
@@ -5288,7 +5315,7 @@ msgstr ""
msgid "Unable to open device file"
msgstr ""
-#: scheduler/ipp.c:6140
+#: scheduler/ipp.c:6200
#, c-format
msgid "Unable to open document #%d in job #%d."
msgstr ""
@@ -5297,14 +5324,14 @@ msgstr ""
msgid "Unable to open help file."
msgstr ""
-#: backend/ipp.c:365 backend/ipp.c:1398 backend/ipp.c:1594 backend/ipp.c:2046
-#: backend/lpd.c:488 backend/socket.c:158 backend/usb.c:237
+#: backend/ipp.c:386 backend/ipp.c:1450 backend/ipp.c:1650 backend/ipp.c:2141
+#: backend/lpd.c:505 backend/socket.c:159 backend/usb.c:237
#: filter/gziptoany.c:71 filter/pstops.c:300
msgid "Unable to open print file"
msgstr ""
#: filter/rastertoepson.c:998 filter/rastertohp.c:724
-#: filter/rastertolabel.c:1147
+#: filter/rastertolabel.c:1136
msgid "Unable to open raster file"
msgstr ""
@@ -5312,12 +5339,12 @@ msgstr ""
msgid "Unable to print test page"
msgstr ""
-#: backend/runloop.c:96 backend/runloop.c:325 backend/usb-darwin.c:613
-#: backend/usb-darwin.c:657 backend/usb-libusb.c:343 backend/usb-libusb.c:378
+#: backend/runloop.c:96 backend/runloop.c:325 backend/usb-darwin.c:642
+#: backend/usb-darwin.c:686 backend/usb-libusb.c:475 backend/usb-libusb.c:510
msgid "Unable to read print data."
msgstr ""
-#: cups/dest.c:3402
+#: cups/dest.c:3409
msgid "Unable to resolve printer URI."
msgstr ""
@@ -5334,7 +5361,7 @@ msgstr ""
msgid "Unable to send command to printer driver"
msgstr ""
-#: backend/usb-darwin.c:735 backend/usb-libusb.c:454
+#: backend/usb-darwin.c:764 backend/usb-libusb.c:586
msgid "Unable to send data to printer."
msgstr ""
@@ -5351,7 +5378,7 @@ msgstr ""
msgid "Unable to set server default"
msgstr ""
-#: backend/ipp.c:2868 backend/ipp.c:2945 backend/ipp.c:2953
+#: backend/ipp.c:3143 backend/ipp.c:3220 backend/ipp.c:3228
msgid "Unable to start backend process."
msgstr ""
@@ -5359,7 +5386,7 @@ msgstr ""
msgid "Unable to upload cupsd.conf file"
msgstr ""
-#: backend/usb-darwin.c:1985 backend/usb-darwin.c:2009
+#: backend/usb-darwin.c:2014 backend/usb-darwin.c:2038
msgid "Unable to use legacy USB class driver."
msgstr ""
@@ -5372,7 +5399,7 @@ msgstr ""
msgid "Unable to write uncompressed print data: %s"
msgstr ""
-#: cups/http-support.c:1303
+#: cups/http-support.c:1304
msgid "Unauthorized"
msgstr ""
@@ -5380,7 +5407,7 @@ msgstr ""
msgid "Units"
msgstr ""
-#: cups/http-support.c:1343 cups/ppd.c:366
+#: cups/http-support.c:1344 cups/ppd.c:366
msgid "Unknown"
msgstr ""
@@ -5389,26 +5416,26 @@ msgstr ""
msgid "Unknown choice \"%s\" for option \"%s\"."
msgstr ""
-#: backend/ipp.c:507
+#: backend/ipp.c:528
#, c-format
msgid "Unknown encryption option value: \"%s\"."
msgstr ""
-#: backend/lpd.c:350
+#: backend/lpd.c:351
#, c-format
msgid "Unknown file order: \"%s\"."
msgstr ""
-#: backend/lpd.c:321
+#: backend/lpd.c:322
#, c-format
msgid "Unknown format character: \"%c\"."
msgstr ""
-#: cups/dest-options.c:770
+#: cups/dest-options.c:769
msgid "Unknown media size name."
msgstr ""
-#: backend/ipp.c:554
+#: backend/ipp.c:585
#, c-format
msgid "Unknown option \"%s\" with value \"%s\"."
msgstr ""
@@ -5418,17 +5445,17 @@ msgstr ""
msgid "Unknown option \"%s\"."
msgstr ""
-#: backend/lpd.c:336
+#: backend/lpd.c:337
#, c-format
msgid "Unknown print mode: \"%s\"."
msgstr ""
-#: scheduler/ipp.c:10496
+#: scheduler/ipp.c:10557
#, c-format
msgid "Unknown printer-error-policy \"%s\"."
msgstr ""
-#: scheduler/ipp.c:10479
+#: scheduler/ipp.c:10540
#, c-format
msgid "Unknown printer-op-policy \"%s\"."
msgstr ""
@@ -5437,37 +5464,51 @@ msgstr ""
msgid "Unknown service name."
msgstr ""
-#: backend/ipp.c:526
+#: backend/ipp.c:557
#, c-format
msgid "Unknown version option value: \"%s\"."
msgstr ""
+#: scheduler/ipp.c:11013
+#, c-format
+msgid "Unsupported 'compression' value \"%s\"."
+msgstr ""
+
+#: scheduler/ipp.c:11043
+#, c-format
+msgid "Unsupported 'document-format' value \"%s\"."
+msgstr ""
+
+#: scheduler/ipp.c:11118
+msgid "Unsupported 'job-name' value."
+msgstr ""
+
#: scheduler/ipp.c:402
#, c-format
msgid "Unsupported character set \"%s\"."
msgstr ""
-#: scheduler/ipp.c:8171 scheduler/ipp.c:9401 scheduler/ipp.c:10950
+#: scheduler/ipp.c:8231 scheduler/ipp.c:9462
#, c-format
msgid "Unsupported compression \"%s\"."
msgstr ""
-#: scheduler/ipp.c:8305 scheduler/ipp.c:9551 scheduler/ipp.c:10979
+#: scheduler/ipp.c:8365 scheduler/ipp.c:9612
#, c-format
msgid "Unsupported document-format \"%s\"."
msgstr ""
-#: scheduler/ipp.c:9534
+#: scheduler/ipp.c:9595
#, c-format
msgid "Unsupported document-format \"%s/%s\"."
msgstr ""
-#: scheduler/ipp.c:1367
+#: scheduler/ipp.c:1425
#, c-format
msgid "Unsupported format \"%s\"."
msgstr ""
-#: scheduler/ipp.c:1465
+#: scheduler/ipp.c:1523
msgid "Unsupported margins."
msgstr ""
@@ -5498,7 +5539,7 @@ msgstr ""
msgid "Unsupported value type"
msgstr ""
-#: cups/http-support.c:1318
+#: cups/http-support.c:1319
msgid "Upgrade Required"
msgstr ""
@@ -5514,8 +5555,8 @@ msgid ""
" [-u allow:user,user] [-u deny:user,user]"
msgstr ""
-#: backend/dnssd.c:241 backend/ipp.c:313 backend/lpd.c:191
-#: backend/socket.c:135 backend/usb.c:183 filter/commandtops.c:74
+#: backend/dnssd.c:241 backend/ipp.c:334 backend/lpd.c:192
+#: backend/socket.c:136 backend/usb.c:183 filter/commandtops.c:74
#: filter/gziptoany.c:50 filter/pstops.c:264 monitor/bcp.c:62
#: monitor/tbcp.c:61
#, c-format
@@ -5530,7 +5571,7 @@ msgstr ""
msgid "Usage: cupsctl [options] [param=value ... paramN=valueN]"
msgstr ""
-#: scheduler/main.c:2017
+#: scheduler/main.c:1984
msgid "Usage: cupsd [options]"
msgstr ""
@@ -5542,11 +5583,11 @@ msgstr ""
msgid "Usage: cupstestdsc [options] filename.ps [... filename.ps]"
msgstr ""
-#: systemv/cupstestppd.c:3793
+#: systemv/cupstestppd.c:3794
msgid "Usage: cupstestppd [options] filename1.ppd[.gz] [... filenameN.ppd[.gz]]"
msgstr ""
-#: test/ipptool.c:4401
+#: test/ipptool.c:4443
msgid "Usage: ipptool [options] URI filename [ ... filenameN ]"
msgstr ""
@@ -5573,7 +5614,7 @@ msgid ""
" lppasswd [-g groupname] -x [username]"
msgstr ""
-#: berkeley/lpq.c:670
+#: berkeley/lpq.c:674
msgid "Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]"
msgstr ""
@@ -5613,15 +5654,15 @@ msgstr ""
msgid "Version uses indefinite length"
msgstr ""
-#: backend/ipp.c:1675
+#: backend/ipp.c:1757
msgid "Waiting for job to complete."
msgstr ""
-#: backend/usb-darwin.c:457 backend/usb-libusb.c:193
+#: backend/usb-darwin.c:489 backend/usb-libusb.c:282
msgid "Waiting for printer to become available."
msgstr ""
-#: backend/socket.c:444
+#: backend/socket.c:458
msgid "Waiting for printer to finish."
msgstr ""
@@ -5629,7 +5670,7 @@ msgstr ""
msgid "Warning, no Windows 2000 printer drivers are installed."
msgstr ""
-#: cups/http-support.c:1339
+#: cups/http-support.c:1340
msgid "Web Interface is Disabled"
msgstr ""
@@ -5666,11 +5707,11 @@ msgstr ""
msgid "completed"
msgstr ""
-#: scheduler/ipp.c:6012
+#: scheduler/ipp.c:6072
msgid "cups-deviced failed to execute."
msgstr ""
-#: scheduler/ipp.c:6842 scheduler/ipp.c:7091
+#: scheduler/ipp.c:6902 scheduler/ipp.c:7151
msgid "cups-driverd failed to execute."
msgstr ""
@@ -5698,25 +5739,25 @@ msgstr ""
msgid "cupsctl: Unknown option \"-%c\""
msgstr ""
-#: scheduler/main.c:189
+#: scheduler/main.c:190
msgid "cupsd: Expected config filename after \"-c\" option."
msgstr ""
-#: scheduler/main.c:221 scheduler/main.c:228
+#: scheduler/main.c:222 scheduler/main.c:229
msgid "cupsd: Unable to get current directory."
msgstr ""
-#: scheduler/main.c:295
+#: scheduler/main.c:296
#, c-format
msgid "cupsd: Unknown argument \"%s\" - aborting."
msgstr ""
-#: scheduler/main.c:288
+#: scheduler/main.c:289
#, c-format
msgid "cupsd: Unknown option \"%c\" - aborting."
msgstr ""
-#: scheduler/main.c:255
+#: scheduler/main.c:256
msgid "cupsd: launchd(8) support not compiled in, running in normal mode."
msgstr ""
@@ -5747,12 +5788,12 @@ msgstr ""
msgid "cupstestppd: The -v option is incompatible with the -q option."
msgstr ""
-#: systemv/lpstat.c:1231 systemv/lpstat.c:1234 systemv/lpstat.c:1237
+#: systemv/lpstat.c:1188 systemv/lpstat.c:1191 systemv/lpstat.c:1194
#, c-format
msgid "device for %s/%s: %s"
msgstr ""
-#: systemv/lpstat.c:1218 systemv/lpstat.c:1221 systemv/lpstat.c:1224
+#: systemv/lpstat.c:1175 systemv/lpstat.c:1178 systemv/lpstat.c:1181
#, c-format
msgid "device for %s: %s"
msgstr ""
@@ -5832,7 +5873,7 @@ msgstr ""
msgid "ipptool: Unknown option \"-%c\"."
msgstr ""
-#: scheduler/ipp.c:7838
+#: scheduler/ipp.c:7898
msgid "job-printer-uri attribute missing."
msgstr ""
@@ -6120,34 +6161,34 @@ msgstr ""
msgid "lppasswd: user \"%s\" and group \"%s\" do not exist."
msgstr ""
-#: systemv/lpstat.c:1039
+#: systemv/lpstat.c:996
#, c-format
msgid "lpstat: error - %s environment variable names non-existent destination \"%s\"."
msgstr ""
-#: systemv/lpstat.c:970
+#: systemv/lpstat.c:927
#, c-format
msgid "members of class %s:"
msgstr ""
-#: berkeley/lpq.c:582
+#: berkeley/lpq.c:586
msgid "no entries"
msgstr ""
-#: systemv/lpstat.c:1043
+#: systemv/lpstat.c:1000
msgid "no system default destination"
msgstr ""
-#: scheduler/ipp.c:5702
+#: scheduler/ipp.c:5762
msgid "notify-events not specified."
msgstr ""
-#: scheduler/ipp.c:2034 scheduler/ipp.c:5607
+#: scheduler/ipp.c:2092 scheduler/ipp.c:5667
#, c-format
msgid "notify-recipient-uri URI \"%s\" is already used."
msgstr ""
-#: scheduler/ipp.c:2024 scheduler/ipp.c:5597
+#: scheduler/ipp.c:2082 scheduler/ipp.c:5657
#, c-format
msgid "notify-recipient-uri URI \"%s\" uses unknown scheme."
msgstr ""
@@ -6629,32 +6670,32 @@ msgstr ""
msgid "ppdmerge: Unable to backup %s to %s - %s"
msgstr ""
-#: systemv/lpstat.c:1784
+#: systemv/lpstat.c:1741
#, c-format
msgid "printer %s disabled since %s -"
msgstr ""
-#: systemv/lpstat.c:1773
+#: systemv/lpstat.c:1730
#, c-format
msgid "printer %s is idle. enabled since %s"
msgstr ""
-#: systemv/lpstat.c:1778
+#: systemv/lpstat.c:1735
#, c-format
msgid "printer %s now printing %s-%d. enabled since %s"
msgstr ""
-#: systemv/lpstat.c:1909
+#: systemv/lpstat.c:1866
#, c-format
msgid "printer %s/%s disabled since %s -"
msgstr ""
-#: systemv/lpstat.c:1895
+#: systemv/lpstat.c:1852
#, c-format
msgid "printer %s/%s is idle. enabled since %s"
msgstr ""
-#: systemv/lpstat.c:1902
+#: systemv/lpstat.c:1859
#, c-format
msgid "printer %s/%s now printing %s-%d. enabled since %s"
msgstr ""
@@ -6672,11 +6713,11 @@ msgstr ""
msgid "request-id uses indefinite length"
msgstr ""
-#: systemv/lpstat.c:2048
+#: systemv/lpstat.c:2005
msgid "scheduler is not running"
msgstr ""
-#: systemv/lpstat.c:2044
+#: systemv/lpstat.c:2001
msgid "scheduler is running"
msgstr ""
@@ -6693,12 +6734,12 @@ msgstr ""
msgid "stopped"
msgstr ""
-#: systemv/lpstat.c:1017
+#: systemv/lpstat.c:974
#, c-format
msgid "system default destination: %s"
msgstr ""
-#: systemv/lpstat.c:1014
+#: systemv/lpstat.c:971
#, c-format
msgid "system default destination: %s/%s"
msgstr ""
diff --git a/locale/cups.strings b/locale/cups.strings
index 745be0f84..164144f15 100644
--- a/locale/cups.strings
+++ b/locale/cups.strings
@@ -269,7 +269,6 @@
"%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 \"-b\" option." = "%s: Error - expected destination after \"-b\" 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.";
@@ -579,6 +578,7 @@
"B7" = "B7";
"B8" = "B8";
"B9" = "B9";
+"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";
@@ -775,14 +775,21 @@
"IPP extension tag larger than 0x7FFFFFFF." = "IPP extension tag larger than 0x7FFFFFFF.";
"IPP integer value not 4 bytes." = "IPP integer value not 4 bytes.";
"IPP language length overflows value." = "IPP language length overflows value.";
+"IPP language length too large." = "IPP language length too large.";
"IPP member name is not empty." = "IPP member name is not empty.";
"IPP memberName value is empty." = "IPP memberName value is empty.";
+"IPP memberName with no attribute." = "IPP memberName with no attribute.";
"IPP name larger than 32767 bytes." = "IPP name larger than 32767 bytes.";
"IPP nameWithLanguage value less than minimum 4 bytes." = "IPP nameWithLanguage value less than minimum 4 bytes.";
+"IPP nameWithLanguage value more than maximum 1090 bytes." = "IPP nameWithLanguage value more than maximum 1090 bytes.";
+"IPP octetString length too large." = "IPP octetString length too large.";
"IPP rangeOfInteger value not 8 bytes." = "IPP rangeOfInteger value not 8 bytes.";
"IPP resolution value not 9 bytes." = "IPP resolution value not 9 bytes.";
"IPP string length overflows value." = "IPP string length overflows value.";
+"IPP string value too large." = "IPP string value too large.";
+"IPP text length too large." = "IPP text length too large.";
"IPP textWithLanguage value less than minimum 4 bytes." = "IPP textWithLanguage value less than minimum 4 bytes.";
+"IPP textWithLanguage value more than maximum 1090 bytes." = "IPP textWithLanguage value more than maximum 1090 bytes.";
"IPP value larger than 32767 bytes." = "IPP value larger than 32767 bytes.";
"ISOLatin1" = "ISOLatin1";
"Illegal control character" = "Illegal control character";
@@ -967,6 +974,7 @@
"Postcard Double " = "Postcard Double ";
"Postcard Double Long Edge" = "Postcard Double Long Edge";
"Postcard Long Edge" = "Postcard Long Edge";
+"Preparing to print." = "Preparing to print.";
"Print Density" = "Print Density";
"Print Job:" = "Print Job:";
"Print Mode" = "Print Mode";
@@ -976,12 +984,10 @@
"Print Test Page" = "Print Test Page";
"Print and Cut" = "Print and Cut";
"Print and Tear" = "Print and Tear";
-"Print file accepted - job ID %d." = "Print file accepted - job ID %d.";
-"Print file accepted - job ID unknown." = "Print file accepted - job ID unknown.";
"Print file sent." = "Print file sent.";
-"Print file was not accepted." = "Print file was not accepted.";
"Print job canceled at printer." = "Print job canceled at printer.";
"Print job too large." = "Print job too large.";
+"Print job was not accepted." = "Print job was not accepted.";
"Printer Added" = "Printer Added";
"Printer Default" = "Printer Default";
"Printer Deleted" = "Printer Deleted";
@@ -1045,7 +1051,9 @@
"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 cannot be provided with job-ids." = "The %s attribute cannot be provided with job-ids.";
+"The '%s' Job Description attribute cannot be supplied in a job creation request." = "The '%s' Job Description 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";
@@ -1066,9 +1074,8 @@
"The paper tray is empty." = "The paper tray is empty.";
"The paper tray is missing." = "The paper tray is missing.";
"The paper tray needs to be filled." = "The paper tray needs to be filled.";
-"The printer URI is incorrect or no longer exists." = "The printer URI is incorrect or no longer exists.";
+"The printer configuration is incorrect or the printer no longer exists." = "The printer configuration is incorrect or the printer no longer exists.";
"The printer did not respond." = "The printer did not respond.";
-"The printer does not support IPP/%d.%d, trying IPP/%s." = "The printer does not support IPP/%d.%d, trying IPP/%s.";
"The printer is in use." = "The printer is in use.";
"The printer is not connected." = "The printer is not connected.";
"The printer is not responding." = "The printer is not responding.";
@@ -1217,6 +1224,9 @@
"Unknown printer-op-policy \"%s\"." = "Unknown printer-op-policy \"%s\".";
"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\".";
+"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\".";
diff --git a/locale/cups_ca.po b/locale/cups_ca.po
index cde14d651..d128cdcb3 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: 2012-05-23 16:24-0700\n"
+"POT-Creation-Date: 2012-10-22 11:09-0400\n"
"PO-Revision-Date: 2012-05-26 12:28+0200\n"
"Last-Translator: Àngel Mompó <mecatxis@gmail.com>\n"
"Language-Team: Catalan <ca@dodds.net> <>\n"
@@ -42,160 +42,122 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-#: systemv/lpstat.c:1876 systemv/lpstat.c:2001
msgid "\t\t(all)"
msgstr "\t\t(tots)"
-#: systemv/lpstat.c:1879 systemv/lpstat.c:1882 systemv/lpstat.c:2004
-#: systemv/lpstat.c:2007
msgid "\t\t(none)"
msgstr "\t\t(cap)"
-#: berkeley/lpc.c:434
#, c-format
msgid "\t%d entries"
msgstr "\t%d entrades"
-#: systemv/lpstat.c:756 systemv/lpstat.c:772
#, c-format
msgid "\t%s"
msgstr "\t%s"
-#: systemv/lpstat.c:1857 systemv/lpstat.c:1982
msgid "\tAfter fault: continue"
msgstr "\tDesprés d'una fallada: continua"
-#: systemv/lpstat.c:1481 systemv/lpstat.c:1826 systemv/lpstat.c:1952
#, c-format
msgid "\tAlerts: %s"
msgstr "\tAlertes: %s"
-#: systemv/lpstat.c:1880 systemv/lpstat.c:2005
msgid "\tBanner required"
msgstr "\tNecessita un bàner"
-#: systemv/lpstat.c:1881 systemv/lpstat.c:2006
msgid "\tCharset sets:"
msgstr "\tConjunt de caràcters:"
-#: systemv/lpstat.c:1845 systemv/lpstat.c:1970
msgid "\tConnection: direct"
msgstr "\tConnexió: directa"
-#: systemv/lpstat.c:1836 systemv/lpstat.c:1962
msgid "\tConnection: remote"
msgstr "\tConnexió: remota"
-#: systemv/lpstat.c:1800 systemv/lpstat.c:1926
msgid "\tContent types: any"
msgstr "\tTipus de contingut: qualsevol"
-#: systemv/lpstat.c:1884 systemv/lpstat.c:2009
msgid "\tDefault page size:"
msgstr "\tMida de la pàgina per defecte:"
-#: systemv/lpstat.c:1883 systemv/lpstat.c:2008
msgid "\tDefault pitch:"
msgstr "\tDensitat per defecte:"
-#: systemv/lpstat.c:1885 systemv/lpstat.c:2010
msgid "\tDefault port settings:"
msgstr "\tConfiguració del port per defecte:"
-#: systemv/lpstat.c:1806 systemv/lpstat.c:1932
#, c-format
msgid "\tDescription: %s"
msgstr "\tDescripció: %s"
-#: systemv/lpstat.c:1799 systemv/lpstat.c:1925
msgid "\tForm mounted:"
msgstr "\tFormularis muntats:"
-#: systemv/lpstat.c:1878 systemv/lpstat.c:2003
msgid "\tForms allowed:"
msgstr "\tFormularis admesos:"
-#: systemv/lpstat.c:1840 systemv/lpstat.c:1966
#, c-format
msgid "\tInterface: %s.ppd"
msgstr "\tInterfície: %s.ppd"
-#: systemv/lpstat.c:1849 systemv/lpstat.c:1974
#, c-format
msgid "\tInterface: %s/interfaces/%s"
msgstr "\tInterfície: %s/interfícies/%s"
-#: systemv/lpstat.c:1853 systemv/lpstat.c:1978
#, c-format
msgid "\tInterface: %s/ppd/%s.ppd"
msgstr "\tInterfície: %s/ppd/%s.ppd"
-#: systemv/lpstat.c:1831 systemv/lpstat.c:1957
#, c-format
msgid "\tLocation: %s"
msgstr "\tUbicació: %s"
-#: systemv/lpstat.c:1856 systemv/lpstat.c:1981
msgid "\tOn fault: no alert"
msgstr "\tEn cas de fallada: no avisis"
-#: systemv/lpstat.c:1801 systemv/lpstat.c:1927
msgid "\tPrinter types: unknown"
msgstr "\tTipus d'impresores: desconeguts"
-#: systemv/lpstat.c:1462
#, c-format
msgid "\tStatus: %s"
msgstr "\tEstat: %s"
-#: systemv/lpstat.c:1861 systemv/lpstat.c:1875 systemv/lpstat.c:1986
-#: systemv/lpstat.c:2000
msgid "\tUsers allowed:"
msgstr "\tUsuaris permesos:"
-#: systemv/lpstat.c:1868 systemv/lpstat.c:1993
msgid "\tUsers denied:"
msgstr "\tUsuaris sense permís:"
-#: berkeley/lpc.c:436
msgid "\tdaemon present"
msgstr "\tpresència del dimoni"
-#: berkeley/lpc.c:432
msgid "\tno entries"
msgstr "\tcap entrada"
-#: berkeley/lpc.c:404 berkeley/lpc.c:416
#, c-format
msgid "\tprinter is on device '%s' speed -1"
msgstr "\tLa impressora és al dispositiu «%s» velocitat -1"
-#: berkeley/lpc.c:429
msgid "\tprinting is disabled"
msgstr "\tLa impressora està deshabilitada"
-#: berkeley/lpc.c:427
msgid "\tprinting is enabled"
msgstr "\tLa impressora està habilitada"
-#: systemv/lpstat.c:1484
#, c-format
msgid "\tqueued for %s"
msgstr "\ten cua per %s"
-#: berkeley/lpc.c:424
msgid "\tqueuing is disabled"
msgstr "\tla cua està deshabilitada"
-#: berkeley/lpc.c:422
msgid "\tqueuing is enabled"
msgstr "\tla cua està habilitada"
-#: systemv/lpstat.c:1792 systemv/lpstat.c:1918
msgid "\treason unknown"
msgstr "\traó desconeguda"
-#: systemv/cupstestppd.c:454
msgid ""
"\n"
" DETAILED CONFORMANCE TEST RESULTS"
@@ -203,134 +165,102 @@ msgstr ""
"\n"
" RESULTAT DETALLAT DEL TEST DE CONFORMITAT"
-#: systemv/cupstestppd.c:3800
msgid " Ignore specific warnings."
msgstr " Ignora els avisos específics."
-#: systemv/cupstestppd.c:3804
msgid " Issue warnings instead of errors."
msgstr " Mostra avisos enlloc d'errors."
-#: systemv/cupstestppd.c:410 systemv/cupstestppd.c:415
msgid " REF: Page 15, section 3.1."
msgstr " REF: pàgina 15, secció 3.1."
-#: systemv/cupstestppd.c:405
msgid " REF: Page 15, section 3.2."
msgstr " REF: pàgina 15, secció 3.2."
-#: systemv/cupstestppd.c:425
msgid " REF: Page 19, section 3.3."
msgstr " REF: pàgina 19, secció 3.3."
-#: systemv/cupstestppd.c:378
msgid " REF: Page 20, section 3.4."
msgstr " REF: pàgina 20, secció 3.4."
-#: systemv/cupstestppd.c:430
msgid " REF: Page 27, section 3.5."
msgstr " REF: pàgina 27, secció 3.5."
-#: systemv/cupstestppd.c:373
msgid " REF: Page 42, section 5.2."
msgstr " REF: pàgina 42, secció 5.2."
-#: systemv/cupstestppd.c:420
msgid " REF: Pages 16-17, section 3.2."
msgstr " REF: pàgines 16-17, secció 3.2."
-#: systemv/cupstestppd.c:390
msgid " REF: Pages 42-45, section 5.2."
msgstr " REF: pàgines 42-45, secció 5.2."
-#: systemv/cupstestppd.c:384
msgid " REF: Pages 45-46, section 5.2."
msgstr " REF: pàgines 45-46, secció 5.2."
-#: systemv/cupstestppd.c:395
msgid " REF: Pages 48-49, section 5.2."
msgstr " REF: pàgines 48-49, secció 5.2."
-#: systemv/cupstestppd.c:400
msgid " REF: Pages 52-54, section 5.2."
msgstr " REF: pàgines 52-54, secció 5.2."
-#: berkeley/lpq.c:554
#, c-format
msgid " %-39.39s %.0f bytes"
msgstr " %-39.39s %.0f bytes"
-#: systemv/cupstestppd.c:589
#, c-format
msgid " PASS Default%s"
msgstr " VALIDA Default%s"
-#: systemv/cupstestppd.c:524
msgid " PASS DefaultImageableArea"
msgstr " VALIDA DefaultImageableArea"
-#: systemv/cupstestppd.c:558
msgid " PASS DefaultPaperDimension"
msgstr " VALIDA DefaultPaperDimension"
-#: systemv/cupstestppd.c:631
msgid " PASS FileVersion"
msgstr " VALIDA FileVersion"
-#: systemv/cupstestppd.c:675
msgid " PASS FormatVersion"
msgstr " VALIDA FileVersion"
-#: systemv/cupstestppd.c:695
msgid " PASS LanguageEncoding"
msgstr " VALIDA LanguageEncoding"
-#: systemv/cupstestppd.c:715
msgid " PASS LanguageVersion"
msgstr " VALIDA LanguageVersion"
-#: systemv/cupstestppd.c:769
msgid " PASS Manufacturer"
msgstr " VALIDA Manufacturer"
-#: systemv/cupstestppd.c:809
msgid " PASS ModelName"
msgstr " VALIDA ModelName"
-#: systemv/cupstestppd.c:829
msgid " PASS NickName"
msgstr " VALIDA NickName"
-#: systemv/cupstestppd.c:889
msgid " PASS PCFileName"
msgstr " VALIDA PCFileName"
-#: systemv/cupstestppd.c:964
msgid " PASS PSVersion"
msgstr " VALIDA PSVersion"
-#: systemv/cupstestppd.c:869
msgid " PASS PageRegion"
msgstr " VALIDA PageRegion"
-#: systemv/cupstestppd.c:849
msgid " PASS PageSize"
msgstr " VALIDA PageSize"
-#: systemv/cupstestppd.c:924
msgid " PASS Product"
msgstr " VALIDA Product"
-#: systemv/cupstestppd.c:999
msgid " PASS ShortNickName"
msgstr " VALIDA ShortNickName"
-#: systemv/cupstestppd.c:1374
#, c-format
msgid " WARN %s has no corresponding options."
msgstr " AVÍS %s no té les opcions corresponents."
-#: systemv/cupstestppd.c:1486
#, c-format
msgid ""
" WARN %s shares a common prefix with %s\n"
@@ -339,7 +269,6 @@ msgstr ""
" AVÍS %s té un prefixe comú amb %s\n"
" REF: pàgina 15, secció 3.2."
-#: systemv/cupstestppd.c:1345
#, c-format
msgid ""
" WARN Duplex option keyword %s may not work as expected and should "
@@ -350,13 +279,11 @@ msgstr ""
"s'espera i s'hauria de dir Duplex.\n"
" REF: pàgina 122, secció 5.17"
-#: systemv/cupstestppd.c:1744
msgid " WARN File contains a mix of CR, LF, and CR LF line endings."
msgstr ""
" AVÍS El fitxer conté una barreja de CR, LF, i CR LF com a finals "
"de línia."
-#: systemv/cupstestppd.c:1390
msgid ""
" WARN LanguageEncoding required by PPD 4.3 spec.\n"
" REF: Pages 56-57, section 5.3."
@@ -365,12 +292,10 @@ msgstr ""
"4.3\n"
" REF: pàgines 56-57, secció 5.3."
-#: systemv/cupstestppd.c:1726
#, c-format
msgid " WARN Line %d only contains whitespace."
msgstr " AVÍS La línia %d només conté espais en blanc."
-#: systemv/cupstestppd.c:1398
msgid ""
" WARN Manufacturer required by PPD 4.3 spec.\n"
" REF: Pages 58-59, section 5.3."
@@ -378,7 +303,6 @@ msgstr ""
" AVÍS El fabricant requereix les espec. del PPD 4.3.\n"
" REF: pàgines 58-59, secció 5.3."
-#: systemv/cupstestppd.c:1749
msgid ""
" WARN Non-Windows PPD files should use lines ending with only LF, "
"not CR LF."
@@ -386,7 +310,6 @@ msgstr ""
" AVÍS Els fitxers PPD que no són del Windows han de fer servir "
"només LF com a final de línia, no CR LF."
-#: systemv/cupstestppd.c:1382
#, c-format
msgid ""
" WARN Obsolete PPD version %.1f.\n"
@@ -395,7 +318,6 @@ msgstr ""
" AVÍS La versió del PPD %.1f és obsoleta!\n"
" REF: pàgina 42, secció 5.2."
-#: systemv/cupstestppd.c:1413
msgid ""
" WARN PCFileName longer than 8.3 in violation of PPD spec.\n"
" REF: Pages 61-62, section 5.3."
@@ -404,7 +326,6 @@ msgstr ""
"PPD.\n"
" REF: pàgines 61-62, secció 5.3."
-#: systemv/cupstestppd.c:1421
msgid ""
" WARN PCFileName should contain a unique filename.\n"
" REF: Pages 61-62, section 5.3."
@@ -413,7 +334,6 @@ msgstr ""
"PPD.\n"
" REF: pàgines 61-62, secció 5.3."
-#: systemv/cupstestppd.c:1456
msgid ""
" WARN Protocols contains PJL but JCL attributes are not set.\n"
" REF: Pages 78-79, section 5.7."
@@ -422,7 +342,6 @@ msgstr ""
"s'han definit.\n"
" REF: pàgines 78-79, secció 5.7."
-#: systemv/cupstestppd.c:1447
msgid ""
" WARN Protocols contains both PJL and BCP; expected TBCP.\n"
" REF: Pages 78-79, section 5.7."
@@ -431,7 +350,6 @@ msgstr ""
"TBCP.\n"
" REF: pàgines 78-79, secció 5.7."
-#: systemv/cupstestppd.c:1430
msgid ""
" WARN ShortNickName required by PPD 4.3 spec.\n"
" REF: Pages 64-65, section 5.3."
@@ -439,19 +357,15 @@ msgstr ""
" AVÍS Es requereix un ShortNickName segons les espec.del PPD 4.3.\n"
" REF: pàgines 64-65, secció 5.3."
-#: systemv/cupsaddsmb.c:282
msgid " cupsaddsmb [options] -a"
msgstr " cupsaddsmb [opcions] -a"
-#: systemv/cupstestdsc.c:427
msgid " cupstestdsc [options] -"
msgstr " cupstestdsc [opcions] -"
-#: systemv/cupstestppd.c:3795
msgid " program | cupstestppd [options] -"
msgstr " programa | cupstestppd [opcions] -"
-#: systemv/cupstestppd.c:3727
#, c-format
msgid ""
" %s \"%s %s\" conflicts with \"%s %s\"\n"
@@ -460,17 +374,14 @@ msgstr ""
" %s «%s %s» entra en conflicte amb «%s %s»\n"
" (restricció=«%s %s %s %s»)."
-#: systemv/cupstestppd.c:2248
#, c-format
msgid " %s %s %s does not exist."
msgstr " %s %s %s no existeix."
-#: systemv/cupstestppd.c:3884
#, c-format
msgid " %s %s file \"%s\" has the wrong capitalization."
msgstr " %s %s el fitxer «%s» fa un ús incorrecte de les majúscules."
-#: systemv/cupstestppd.c:2318
#, c-format
msgid ""
" %s Bad %s choice %s.\n"
@@ -479,100 +390,71 @@ msgstr ""
" %s Mala %s elecció %s!\n"
" REF: pàgina 122, secció 5.17"
-#: systemv/cupstestppd.c:3487 systemv/cupstestppd.c:3536
-#: systemv/cupstestppd.c:3575
#, c-format
msgid " %s Bad UTF-8 \"%s\" translation string for option %s, choice %s."
msgstr ""
" %s UTF-8 incorrecte «%s» a la traducció de l'opció %s, elecció %s."
-#: systemv/cupstestppd.c:3441
#, c-format
msgid " %s Bad UTF-8 \"%s\" translation string for option %s."
msgstr " %s UTF-8 Incorrecte «%s» a la traducció de l'opció %s."
-#: systemv/cupstestppd.c:2389
#, c-format
msgid " %s Bad cupsFilter value \"%s\"."
msgstr " %s Valor incorrecte del cupsFilter «%s»."
-#: systemv/cupstestppd.c:2475
#, c-format
msgid " %s Bad cupsFilter2 value \"%s\"."
msgstr " %s Valor incorrecte del cupsFilter2 «%s»"
-#: systemv/cupstestppd.c:2964
#, c-format
msgid " %s Bad cupsICCProfile %s."
msgstr " %s cupsICCProfile incorrecte %s."
-#: systemv/cupstestppd.c:2571
#, c-format
msgid " %s Bad cupsPreFilter value \"%s\"."
msgstr " %s Valor de la cupsPreFilter incorrecte «%s»."
-#: systemv/cupstestppd.c:1822
#, c-format
msgid " %s Bad cupsUIConstraints %s: \"%s\""
msgstr " %s cupsUIConstraints incorrecte %s: «%s»"
-#: systemv/cupstestppd.c:3391
#, c-format
msgid " %s Bad language \"%s\"."
msgstr " %s language incorrecte «%s»."
-#: systemv/cupstestppd.c:2433 systemv/cupstestppd.c:2529
-#: systemv/cupstestppd.c:2615 systemv/cupstestppd.c:2673
-#: systemv/cupstestppd.c:2728 systemv/cupstestppd.c:2783
-#: systemv/cupstestppd.c:2838 systemv/cupstestppd.c:2891
-#: systemv/cupstestppd.c:3013
#, c-format
msgid " %s Bad permissions on %s file \"%s\"."
msgstr " %s Permisos del fitxer %s incorrectes «%s»."
-#: systemv/cupstestppd.c:2373 systemv/cupstestppd.c:2459
-#: systemv/cupstestppd.c:2555 systemv/cupstestppd.c:2642
-#: systemv/cupstestppd.c:2697 systemv/cupstestppd.c:2752
-#: systemv/cupstestppd.c:2807 systemv/cupstestppd.c:2862
#, c-format
msgid " %s Bad spelling of %s - should be %s."
msgstr " %s %s Està mal escrit: hauria de ser %s."
-#: systemv/cupstestppd.c:2907
#, c-format
msgid " %s Cannot provide both APScanAppPath and APScanAppBundleID."
msgstr " %s No hi pot haver APScanAppPath i APScanAppBundleID alhora."
-#: systemv/cupstestppd.c:2205
#, c-format
msgid " %s Default choices conflicting."
msgstr " %s Conflictes amb les opcions per defecte."
-#: systemv/cupstestppd.c:1803
#, c-format
msgid " %s Empty cupsUIConstraints %s"
msgstr " %s cupsUIConstraints buit %s"
-#: systemv/cupstestppd.c:3519 systemv/cupstestppd.c:3559
#, c-format
msgid " %s Missing \"%s\" translation string for option %s, choice %s."
msgstr " %s Falta la traducció de «%s» per l'opció %s, elecció %s."
-#: systemv/cupstestppd.c:3427
#, c-format
msgid " %s Missing \"%s\" translation string for option %s."
msgstr " %s Falta la traducció de «%s» per l'opció %s."
-#: systemv/cupstestppd.c:2418 systemv/cupstestppd.c:2514
-#: systemv/cupstestppd.c:2600 systemv/cupstestppd.c:2658
-#: systemv/cupstestppd.c:2713 systemv/cupstestppd.c:2768
-#: systemv/cupstestppd.c:2823 systemv/cupstestppd.c:2875
-#: systemv/cupstestppd.c:2998
#, c-format
msgid " %s Missing %s file \"%s\"."
msgstr " %s Falta el fitxer %s «%s»."
-#: systemv/cupstestppd.c:3121
#, c-format
msgid ""
" %s Missing REQUIRED PageRegion option.\n"
@@ -581,7 +463,6 @@ msgstr ""
" %s Falta l'opció PageRegion NECESSÀRIA .\n"
" REF: pàgina 100, secció 5.14."
-#: systemv/cupstestppd.c:3106
#, c-format
msgid ""
" %s Missing REQUIRED PageSize option.\n"
@@ -590,37 +471,30 @@ msgstr ""
" %s Falta l'opció PageSize NECESSÀRIA.\n"
" REF: pàgina 99, secció 5.14."
-#: systemv/cupstestppd.c:2013 systemv/cupstestppd.c:2054
#, c-format
msgid " %s Missing choice *%s %s in UIConstraints \"*%s %s *%s %s\"."
msgstr " %s Falta l'elecció *%s %s a UIConstraints «*%s %s *%s %s»."
-#: systemv/cupstestppd.c:1908
#, c-format
msgid " %s Missing choice *%s %s in cupsUIConstraints %s: \"%s\""
msgstr " %s Falta l'elecció *%s %s a cupsUIConstraints %s: «%s»"
-#: systemv/cupstestppd.c:1840
#, c-format
msgid " %s Missing cupsUIResolver %s"
msgstr " %s Falta el cupsUIResolver %s"
-#: systemv/cupstestppd.c:1999 systemv/cupstestppd.c:2040
#, c-format
msgid " %s Missing option %s in UIConstraints \"*%s %s *%s %s\"."
msgstr " %s Falta l'opció %s a UIConstraints «*%s %s *%s %s»."
-#: systemv/cupstestppd.c:1892
#, c-format
msgid " %s Missing option %s in cupsUIConstraints %s: \"%s\""
msgstr " %s Falta l'opció %s a cupsUIConstraints %s: «%s»"
-#: systemv/cupstestppd.c:3613
#, c-format
msgid " %s No base translation \"%s\" is included in file."
msgstr " %s No s'ha inclòs cap traducció de base «%s» al fitxer."
-#: systemv/cupstestppd.c:2294
#, c-format
msgid ""
" %s REQUIRED %s does not define choice None.\n"
@@ -629,44 +503,36 @@ msgstr ""
" %s NECESSARI %s no defineix l'eleció «Cap»!\n"
" REF: pàgina 122, secció 5.17"
-#: systemv/cupstestppd.c:3180 systemv/cupstestppd.c:3194
#, c-format
msgid " %s Size \"%s\" defined for %s but not for %s."
msgstr " %s Mida \"%s\" definida per %s però no per %s."
-#: systemv/cupstestppd.c:3160
#, c-format
msgid " %s Size \"%s\" has unexpected dimensions (%gx%g)."
msgstr " %s Mida \"%s\" té unes dimensions inesperades (%gx%g)."
-#: systemv/cupstestppd.c:3332
#, c-format
msgid " %s Size \"%s\" should be \"%s\"."
msgstr " %s Mida «%s» hauria de ser «%s»."
-#: systemv/cupstestppd.c:3292
#, c-format
msgid " %s Size \"%s\" should be the Adobe standard name \"%s\"."
msgstr " %s Mida \"%s\" hauria de ser el nom estàndard d'Adobe «%s»."
-#: systemv/cupstestppd.c:3041
#, c-format
msgid " %s cupsICCProfile %s hash value collides with %s."
msgstr " %s cupsICCProfile %s el valor resum (hash) col·lideix amb %s."
-#: systemv/cupstestppd.c:1963
#, c-format
msgid " %s cupsUIResolver %s causes a loop."
msgstr " %s cupsUIResolver %s entra en bucle."
-#: systemv/cupstestppd.c:1945
#, c-format
msgid ""
" %s cupsUIResolver %s does not list at least two different options."
msgstr ""
" %s cupsUIResolver %s no llista com a mínim dues opcions diferents."
-#: systemv/cupstestppd.c:1168
#, c-format
msgid ""
" **FAIL** %s must be 1284DeviceID\n"
@@ -675,7 +541,6 @@ msgstr ""
" **ERROR** %s ha de ser 1284DeviceID!\n"
" REF: pàgina 72, secció 5.5"
-#: systemv/cupstestppd.c:580
#, c-format
msgid ""
" **FAIL** Bad Default%s %s\n"
@@ -684,7 +549,6 @@ msgstr ""
" **ERROR** Default%s incorrecte %s\n"
" REF: pàgina 40, secció 4.5."
-#: systemv/cupstestppd.c:514
#, c-format
msgid ""
" **FAIL** Bad DefaultImageableArea %s\n"
@@ -693,7 +557,6 @@ msgstr ""
" **ERROR** DefaultImageableArea incorrecte %s\n"
" REF: pàgina 102, secció 5.15."
-#: systemv/cupstestppd.c:550
#, c-format
msgid ""
" **FAIL** Bad DefaultPaperDimension %s\n"
@@ -702,7 +565,6 @@ msgstr ""
" **ERROR** DefaultPaperDimension incorrecte %s\n"
" REF: pàgina 103, secció 5.15."
-#: systemv/cupstestppd.c:623
#, c-format
msgid ""
" **FAIL** Bad FileVersion \"%s\"\n"
@@ -711,7 +573,6 @@ msgstr ""
" **ERROR** FileVersion incorrecte «%s»\n"
" REF: pàgina 56, secció 5.3."
-#: systemv/cupstestppd.c:667
#, c-format
msgid ""
" **FAIL** Bad FormatVersion \"%s\"\n"
@@ -720,7 +581,6 @@ msgstr ""
" **ERROR** FormatVersion incorrecte «%s»\n"
" REF: pàgina 56, secció 5.3."
-#: systemv/cupstestppd.c:1025
msgid ""
" **FAIL** Bad JobPatchFile attribute in file\n"
" REF: Page 24, section 3.4."
@@ -728,17 +588,14 @@ msgstr ""
" **ERROR** atribut de JobPatchFile incorrecte al fitxer\n"
" REF: pàgina 24, secció 3.4."
-#: systemv/cupstestppd.c:1213
#, c-format
msgid " **FAIL** Bad LanguageEncoding %s - must be ISOLatin1."
msgstr " **ERROR** LanguageEncoding incorrecte %s: ha de ser ISOLatin1."
-#: systemv/cupstestppd.c:1227
#, c-format
msgid " **FAIL** Bad LanguageVersion %s - must be English."
msgstr " **ERROR** LanguageVersion incorrecta %s: ha de ser anglès."
-#: systemv/cupstestppd.c:743 systemv/cupstestppd.c:760
#, c-format
msgid ""
" **FAIL** Bad Manufacturer (should be \"%s\")\n"
@@ -747,7 +604,6 @@ msgstr ""
" **ERROR** Manufacturer incorrecte (hauria de ser «%s»)\n"
" REF: pàgina 211, taula D.1."
-#: systemv/cupstestppd.c:800
#, c-format
msgid ""
" **FAIL** Bad ModelName - \"%c\" not allowed in string.\n"
@@ -756,7 +612,6 @@ msgstr ""
" **ERROR** ModelName incorrecte - no es permet «%c» a la cadena.\n"
" REF: pàgines 59-60, secció 5.3."
-#: systemv/cupstestppd.c:956
msgid ""
" **FAIL** Bad PSVersion - not \"(string) int\".\n"
" REF: Pages 62-64, section 5.3."
@@ -764,7 +619,6 @@ msgstr ""
" **ERROR** PSVersion incorrecte - no és «(cadena) enter».\n"
" REF: pàgines 62-64, secció 5.3."
-#: systemv/cupstestppd.c:917
msgid ""
" **FAIL** Bad Product - not \"(string)\".\n"
" REF: Page 62, section 5.3."
@@ -772,7 +626,6 @@ msgstr ""
" **ERROR** Product incorrecte - no és «(cadena)».\n"
" REF: pàgina 62, secció 5.3."
-#: systemv/cupstestppd.c:991
msgid ""
" **FAIL** Bad ShortNickName - longer than 31 chars.\n"
" REF: Pages 64-65, section 5.3."
@@ -780,7 +633,6 @@ msgstr ""
" **ERROR** ShortNickName incorrecte - més llarg de 31 caràcters.\n"
" REF: pàgines 64-65, secció 5.3."
-#: systemv/cupstestppd.c:1149
#, c-format
msgid ""
" **FAIL** Bad option %s choice %s\n"
@@ -789,13 +641,11 @@ msgstr ""
" **ERROR** Elecció %s incorrecta %s\n"
" REF: pàgina 84, secció 5.9"
-#: systemv/cupstestppd.c:3754 systemv/cupstestppd.c:3776
#, c-format
msgid " **FAIL** Default option code cannot be interpreted: %s"
msgstr ""
" **ERROR** El codi de l'opció per defecte no es pot interpretar: %s"
-#: systemv/cupstestppd.c:1286
#, c-format
msgid ""
" **FAIL** Default translation string for option %s choice %s contains "
@@ -804,7 +654,6 @@ msgstr ""
" **ERROR** La traducció per defecte de l'opció %s elecció %s conté "
"caràcters de 8 bits."
-#: systemv/cupstestppd.c:1259
#, c-format
msgid ""
" **FAIL** Default translation string for option %s contains 8-bit "
@@ -813,34 +662,29 @@ msgstr ""
" **ERROR** La traducció per defecte de l'opció %s conté caràcters de 8 "
"bits."
-#: systemv/cupstestppd.c:2101
#, c-format
msgid " **FAIL** Group names %s and %s differ only by case."
msgstr ""
" **ERROR** Els noms dels grups %s i %s només es diferencien en les "
"majúscules."
-#: systemv/cupstestppd.c:2146
#, c-format
msgid " **FAIL** Multiple occurrences of option %s choice name %s."
msgstr ""
" **ERROR** Coincidències múltiples de l'opció %s nom de l'elecció %s."
-#: systemv/cupstestppd.c:2163
#, c-format
msgid " **FAIL** Option %s choice names %s and %s differ only by case."
msgstr ""
" **ERROR** L'opció %s noms de les opcions %s i %s només es diferencien "
"per les majúscules."
-#: systemv/cupstestppd.c:2123
#, c-format
msgid " **FAIL** Option names %s and %s differ only by case."
msgstr ""
" **ERROR** Els noms de les opcions %s i %s només es diferencien per "
"les majúscules."
-#: systemv/cupstestppd.c:600
#, c-format
msgid ""
" **FAIL** REQUIRED Default%s\n"
@@ -849,7 +693,6 @@ msgstr ""
" **ERROR** ES NECESSITA Default%s\n"
" REF: pàgina 40, secció 4.5."
-#: systemv/cupstestppd.c:499
msgid ""
" **FAIL** REQUIRED DefaultImageableArea\n"
" REF: Page 102, section 5.15."
@@ -857,7 +700,6 @@ msgstr ""
" **ERROR** ES NECESSITA DefaultImageableArea\n"
" REF: pàgina 102, secció 5.15."
-#: systemv/cupstestppd.c:535
msgid ""
" **FAIL** REQUIRED DefaultPaperDimension\n"
" REF: Page 103, section 5.15."
@@ -865,7 +707,6 @@ msgstr ""
" **ERROR** ES NECESSITA DefaultPaperDimension\n"
" REF: pàgina 103, secció 5.15."
-#: systemv/cupstestppd.c:641
msgid ""
" **FAIL** REQUIRED FileVersion\n"
" REF: Page 56, section 5.3."
@@ -873,7 +714,6 @@ msgstr ""
" **ERROR** ES NECESSITA FileVersion\n"
" REF: pàgina 56, secció 5.3."
-#: systemv/cupstestppd.c:685
msgid ""
" **FAIL** REQUIRED FormatVersion\n"
" REF: Page 56, section 5.3."
@@ -881,7 +721,6 @@ msgstr ""
" **ERROR** ES NECESSITA FormatVersion\n"
" REF: pàgina 56, secció 5.3."
-#: systemv/cupstestppd.c:1076
#, c-format
msgid ""
" **FAIL** REQUIRED ImageableArea for PageSize %s\n"
@@ -892,7 +731,6 @@ msgstr ""
" REF: pàgina 41, secció 5.\n"
" REF: pàgina 102, secció 5.15."
-#: systemv/cupstestppd.c:705
msgid ""
" **FAIL** REQUIRED LanguageEncoding\n"
" REF: Pages 56-57, section 5.3."
@@ -900,7 +738,6 @@ msgstr ""
" **ERROR** ES NECESSITA LanguageEncoding\n"
" REF: pàgines 56-57, secció 5.3."
-#: systemv/cupstestppd.c:725
msgid ""
" **FAIL** REQUIRED LanguageVersion\n"
" REF: Pages 57-58, section 5.3."
@@ -908,7 +745,6 @@ msgstr ""
" **ERROR** ES NECESSITA LanguageVersion\n"
" REF: pàgines 57-58, secció 5.3."
-#: systemv/cupstestppd.c:779
msgid ""
" **FAIL** REQUIRED Manufacturer\n"
" REF: Pages 58-59, section 5.3."
@@ -916,7 +752,6 @@ msgstr ""
" **ERROR** ES NECESSITA Manufacturer\n"
" REF: pàgines 58-59, secció 5.3."
-#: systemv/cupstestppd.c:819
msgid ""
" **FAIL** REQUIRED ModelName\n"
" REF: Pages 59-60, section 5.3."
@@ -924,7 +759,6 @@ msgstr ""
" **ERROR** ES NECESSITA ModelName\n"
" REF: pàgines 59-60, secció 5.3."
-#: systemv/cupstestppd.c:839
msgid ""
" **FAIL** REQUIRED NickName\n"
" REF: Page 60, section 5.3."
@@ -932,7 +766,6 @@ msgstr ""
" **ERROR** ES NECESSITA NickName\n"
" REF: pàgina 60, secció 5.3."
-#: systemv/cupstestppd.c:899
msgid ""
" **FAIL** REQUIRED PCFileName\n"
" REF: Pages 61-62, section 5.3."
@@ -940,7 +773,6 @@ msgstr ""
" **ERROR** ES NECESSITA PCFileName\n"
" REF: pàgines 61-62, secció 5.3."
-#: systemv/cupstestppd.c:974
msgid ""
" **FAIL** REQUIRED PSVersion\n"
" REF: Pages 62-64, section 5.3."
@@ -948,7 +780,6 @@ msgstr ""
" **ERROR** ES NECESSITA PSVersion\n"
" REF: pàgines 62-64, secció 5.3."
-#: systemv/cupstestppd.c:879
msgid ""
" **FAIL** REQUIRED PageRegion\n"
" REF: Page 100, section 5.14."
@@ -956,7 +787,6 @@ msgstr ""
" **ERROR** ES NECESSITA PageRegion\n"
" REF: pàgina 100, secció 5.14."
-#: systemv/cupstestppd.c:1045
msgid ""
" **FAIL** REQUIRED PageSize\n"
" REF: Page 41, section 5.\n"
@@ -966,7 +796,6 @@ msgstr ""
" REF: pàgina 41, secció 5.\n"
" REF: pàgina 99, secció 5.14."
-#: systemv/cupstestppd.c:859
msgid ""
" **FAIL** REQUIRED PageSize\n"
" REF: Pages 99-100, section 5.14."
@@ -974,7 +803,6 @@ msgstr ""
" **ERROR** ES NECESSITA PageSize\n"
" REF: pàgines 99-100, secció 5.14."
-#: systemv/cupstestppd.c:1098
#, c-format
msgid ""
" **FAIL** REQUIRED PaperDimension for PageSize %s\n"
@@ -985,7 +813,6 @@ msgstr ""
" REF: pàgina 41, secció 5.\n"
" REF: pàgina 103, secció 5.15."
-#: systemv/cupstestppd.c:934
msgid ""
" **FAIL** REQUIRED Product\n"
" REF: Page 62, section 5.3."
@@ -993,7 +820,6 @@ msgstr ""
" **ERROR** ES NECESSITA Product\n"
" REF: pàgina 62, secció 5.3."
-#: systemv/cupstestppd.c:1009
msgid ""
" **FAIL** REQUIRED ShortNickName\n"
" REF: Page 64-65, section 5.3."
@@ -1001,22 +827,17 @@ msgstr ""
" **FAIL** ES NECESSITA ShortNickName\n"
" REF: pàgina 64-65, secció 5.3."
-#: systemv/cupstestppd.c:334 systemv/cupstestppd.c:353
-#: systemv/cupstestppd.c:365
#, c-format
msgid " **FAIL** Unable to open PPD file - %s on line %d."
msgstr " **ERROR** No es pot obrir el fitxer PPD - %s a la línia %d."
-#: systemv/cupstestppd.c:1498
#, c-format
msgid " %d ERRORS FOUND"
msgstr " %d S'HAN TROBAT ERRORS"
-#: systemv/cupstestdsc.c:431
msgid " -h Show program usage"
msgstr " -h Mostra la sintaxi del programa"
-#: systemv/cupstestdsc.c:234 systemv/cupstestdsc.c:276
#, c-format
msgid ""
" Bad %%%%BoundingBox: on line %d.\n"
@@ -1025,7 +846,6 @@ msgstr ""
" %%%%BoundingBox incorrecte: a la línia %d.\n"
" REF: pàgina 39, %%%%BoundingBox:"
-#: systemv/cupstestdsc.c:305
#, c-format
msgid ""
" Bad %%%%Page: on line %d.\n"
@@ -1034,7 +854,6 @@ msgstr ""
" %%%%Page incorrecte: a la línia %d.\n"
" REF: pàgina 53, %%%%Page:"
-#: systemv/cupstestdsc.c:218 systemv/cupstestdsc.c:258
#, c-format
msgid ""
" Bad %%%%Pages: on line %d.\n"
@@ -1043,7 +862,6 @@ msgstr ""
" %%%%Pages incorrecte: a la línia %d!\n"
" REF: pàgina 43, %%%%Pages:"
-#: systemv/cupstestdsc.c:176
#, c-format
msgid ""
" Line %d is longer than 255 characters (%d).\n"
@@ -1052,7 +870,6 @@ msgstr ""
" La línia %d és més llarga de 255 caràcters (%d)\n"
" REF: pàgina 25, Longitud de línia"
-#: systemv/cupstestdsc.c:192
msgid ""
" Missing %!PS-Adobe-3.0 on first line.\n"
" REF: Page 17, 3.1 Conforming Documents"
@@ -1060,13 +877,11 @@ msgstr ""
" Falta %!PS-Adobe-3.0 a la primera línia.\n"
" REF: pàgina 17, 3.1 Adaptació de documents"
-#: systemv/cupstestdsc.c:362
#, c-format
msgid " Missing %%EndComments comment. REF: Page 41, %%EndComments"
msgstr ""
" Falta el comentari %%EndComments. REF: pàgina 41, %%EndComments"
-#: systemv/cupstestdsc.c:342
#, c-format
msgid ""
" Missing or bad %%BoundingBox: comment.\n"
@@ -1075,7 +890,6 @@ msgstr ""
" %%BoundingBox incorrecte o inexistent: comentari.\n"
" REF: pàgina 39, %%BoundingBox:"
-#: systemv/cupstestdsc.c:372
#, c-format
msgid ""
" Missing or bad %%Page: comments.\n"
@@ -1084,7 +898,6 @@ msgstr ""
" %%Page incorrecte o inexistent: comentaris.\n"
" REF: pàgina 53, %%Page:"
-#: systemv/cupstestdsc.c:352
#, c-format
msgid ""
" Missing or bad %%Pages: comment.\n"
@@ -1093,159 +906,124 @@ msgstr ""
" %%Pages incorrecte o inexistent: comentari.\n"
" REF: pàgina 43, %%Pages:"
-#: systemv/cupstestppd.c:1500
msgid " NO ERRORS FOUND"
msgstr " NO S'HA TROBAT CAP ERROR"
-#: systemv/cupstestdsc.c:395
#, c-format
msgid " Saw %d lines that exceeded 255 characters."
msgstr " S'han trobat %d línies que superen els 255 caràcters."
-#: systemv/cupstestdsc.c:390
#, c-format
msgid " Too many %%BeginDocument comments."
msgstr " Massa comentaris %%BeginDocument."
-#: systemv/cupstestdsc.c:382
#, c-format
msgid " Too many %%EndDocument comments."
msgstr " Massa comentaris %%EndDocument."
-#: systemv/cupstestdsc.c:402
msgid " Warning: file contains binary data."
msgstr " Avís: el fitxer conté dades binàries."
-#: systemv/cupstestdsc.c:410
#, c-format
msgid " Warning: no %%EndComments comment in file."
msgstr " Avís: no hi ha cap %%EndComments al fitxer."
-#: systemv/cupstestdsc.c:406
#, c-format
msgid " Warning: obsolete DSC version %.1f in file."
msgstr " Avís: versió del DSC %.1f obsoleta al fitxer."
-#: systemv/cupsctl.c:210
msgid " --[no-]debug-logging Turn debug logging on/off."
msgstr " --[no-]debug-logging Activa o desactiva el registre de depuració."
-#: systemv/cupsctl.c:212
msgid " --[no-]remote-admin Turn remote administration on/off."
msgstr " --[no-]remote-admin Activa o desactiva l'administració remota."
-#: systemv/cupsctl.c:214
msgid " --[no-]remote-any Allow/prevent access from the Internet."
msgstr " --[no-]remote-any Permet o impedeix l'accés des d'Internet."
-#: systemv/cupsctl.c:216
msgid " --[no-]share-printers Turn printer sharing on/off."
msgstr ""
" --[no-]share-printers Activa o desactiva la compartició d'impressores."
-#: systemv/cupsctl.c:218
msgid " --[no-]user-cancel-any Allow/prevent users to cancel any job."
msgstr ""
" --[no-]user-cancel-any Permet o impedeix que els usuaris cancel·lin "
"tasques."
-#: ppdc/ppdc.cxx:455
msgid " --cr End lines with CR (Mac OS 9)."
msgstr " --cr Final de línia amb CR (Mac OS 9)."
-#: ppdc/ppdc.cxx:457
msgid " --crlf End lines with CR + LF (Windows)."
msgstr " --crlf Final de línia amb CR + LF (Windows)."
-#: ppdc/ppdc.cxx:459
msgid " --lf End lines with LF (UNIX/Linux/OS X)."
msgstr " --lf Final de línia amb LF (UNIX/Linux/OS X)."
-#: test/ipptool.c:4404
msgid " -4 Connect using IPv4."
msgstr " -4 Connecta fent servir IPv4."
-#: test/ipptool.c:4405
msgid " -6 Connect using IPv6."
msgstr " -6 Connecta fent servir IPv6."
-#: test/ipptool.c:4406
msgid " -C Send requests using chunking (default)."
msgstr ""
" -C Envia les sol·licituds fent servir la fragmentació "
"(per defecte)."
-#: scheduler/cupsfilter.c:1431
msgid " -D Remove the input file when finished."
msgstr " -D Elimina el fitxer d'entrada quan ha acabat."
-#: ppdc/ppdc.cxx:438 ppdc/ppdhtml.cxx:175 ppdc/ppdpo.cxx:255
msgid " -D name=value Set named variable to value."
msgstr " -D nom=valor Estableix la variable indicada al valor."
-#: systemv/cupsaddsmb.c:285 systemv/cupsctl.c:205
msgid " -E Encrypt the connection."
msgstr " -E Xifra la connexió."
-#: test/ipptool.c:4408
msgid " -E Test with HTTP Upgrade to TLS."
msgstr ""
" -E Fa una prova amb l'actualització d'HTTP a TLS."
-#: scheduler/main.c:2021
msgid ""
" -F Run in the foreground but detach from console."
msgstr ""
" -F Executa en primer pla però separat de la consola."
-#: systemv/cupsaddsmb.c:286
msgid " -H samba-server Use the named SAMBA server."
msgstr " -H servidor-samba Fa servir el servidor SAMBA indicat."
-#: test/ipptool.c:4410
msgid " -I Ignore errors."
msgstr " -I Ignora els errors."
-#: ppdc/ppdc.cxx:440 ppdc/ppdhtml.cxx:177 ppdc/ppdi.cxx:131 ppdc/ppdpo.cxx:257
msgid " -I include-dir Add include directory to search path."
msgstr " -I dir-inclòs Afegeix el directori inclòs al camí de cerca."
-#: systemv/cupstestppd.c:3799
msgid " -I {filename,filters,none,profiles}"
msgstr " -I {nomfitxer,filtres,cap,perfils}"
-#: test/ipptool.c:4411
msgid " -L Send requests using content-length."
msgstr ""
" -L Envia les peticions fent servir content-length."
-#: scheduler/cupsfilter.c:1433
msgid " -P filename.ppd Set PPD file."
msgstr " -P nomfitxer.ppd Estableix el fitxer PPD."
-#: systemv/cupstestppd.c:3801
msgid " -R root-directory Set alternate root."
msgstr " -R directori-arrel Estableix una arrel alternativa."
-#: test/ipptool.c:4413
msgid " -S Test with SSL encryption."
msgstr " -S Fa una prova amb xifrat SSL."
-#: test/ipptool.c:4415
msgid " -T seconds Set the receive/send timeout in seconds."
msgstr ""
" -T segons Estableix el temps d'espera màxim per enviar i "
"rebre en segons."
-#: scheduler/cupsfilter.c:1434 systemv/cupsaddsmb.c:288 systemv/cupsctl.c:206
msgid " -U username Specify username."
msgstr " -U nomusuari Especifica un nom d'usuari."
-#: test/ipptool.c:4417
msgid " -V version Set default IPP version."
msgstr " -V versió Estableix la versió per defecte del IPP."
-#: systemv/cupstestppd.c:3802
msgid ""
" -W {all,none,constraints,defaults,duplex,filters,profiles,sizes,"
"translations}"
@@ -1253,71 +1031,56 @@ msgstr ""
" -W {tots,cap,restringits,per defecte,dúplex,filtres,perfils,mides,"
"traduccions}"
-#: test/ipptool.c:4419
msgid " -X Produce XML plist instead of plain text."
msgstr ""
" -X Retorna els plist en XML en comptes de text pla."
-#: systemv/cupsaddsmb.c:289
msgid " -a Export all printers."
msgstr " -a Exporta totes les impressores."
-#: ppdc/ppdc.cxx:442
msgid " -c catalog.po Load the specified message catalog."
msgstr " -c catàleg.po Carrega el catàleg de missatges indicat."
-#: scheduler/cupsfilter.c:1435 scheduler/main.c:2019
msgid " -c cupsd.conf Set cupsd.conf file to use."
msgstr ""
" -c cupsd.conf Estableix el fitxer cupsd.conf que cal fer servir."
-#: test/ipptool.c:4421
msgid " -d name=value Set named variable to value."
msgstr " -d nom=valor Estableix la variable indicada al valor."
-#: ppdc/ppdc.cxx:444
msgid " -d output-dir Specify the output directory."
msgstr " -d dir-sortida Especifica el directori de sortida."
-#: scheduler/cupsfilter.c:1437
msgid " -d printer Use the named printer."
msgstr " -d impressora Fa servir la impressora indicada."
-#: scheduler/cupsfilter.c:1439
msgid " -e Use every filter from the PPD file."
msgstr " -e Fa servir tots els filtres del fitxer PPD."
-#: scheduler/main.c:2020
msgid " -f Run in the foreground."
msgstr " -f Executa en primer pla."
-#: test/ipptool.c:4423
msgid " -f filename Set default request filename."
msgstr ""
" -f nomfitxer Estableix el nom del fitxer per defecte de la "
"sol·licitud."
-#: scheduler/main.c:2023
msgid " -h Show this usage message."
msgstr " -h Mostra aquest missatge de sintaxi."
-#: systemv/cupsaddsmb.c:290 systemv/cupsctl.c:207
msgid " -h server[:port] Specify server address."
msgstr " -h servidor[:port] Especifica l'adreça del servidor."
-#: scheduler/cupsfilter.c:1441
msgid " -i mime/type Set input MIME type (otherwise auto-typed)."
msgstr ""
" -i tipus/mime Estableix el tipus MIME d'entrada (auto-typed si "
"no s'especifica)."
-#: test/ipptool.c:4425
msgid ""
" -i seconds Repeat the last file with the given time interval."
msgstr ""
" -i segons Repeteix l'últim fitxer amb l'interval especificat."
-#: scheduler/cupsfilter.c:1443
msgid ""
" -j job-id[,N] Filter file N from the specified job (default is "
"file 1)."
@@ -1325,255 +1088,157 @@ msgstr ""
" -j id-tasca[,N] Filtra el fitxer N a la tasca especificada (el "
"fitxer per defecte és 1)."
-#: scheduler/main.c:2024
msgid " -l Run cupsd from launchd(8)."
msgstr " -l Executa cupsd des de launchd(8)."
-#: ppdc/ppdc.cxx:446
msgid " -l lang[,lang,...] Specify the output language(s) (locale)."
msgstr ""
" -l idioma[,idioma,...] Especifica els idiomes de sortida (locale)."
-#: ppdc/ppdc.cxx:448
msgid " -m Use the ModelName value as the filename."
msgstr ""
" -m Fa servir el valor de ModelName com a nom de "
"fitxer."
-#: scheduler/cupsfilter.c:1445
msgid ""
" -m mime/type Set output MIME type (otherwise application/pdf)."
msgstr ""
" -m tipus/mime Estableix el tipus MIME de sortida (application/"
"pdf si no s'especifica)."
-#: scheduler/cupsfilter.c:1447
msgid " -n copies Set number of copies."
msgstr " -n còpies Estableix el nombre de còpies."
-#: test/ipptool.c:4427
msgid ""
" -n count Repeat the last file the given number of times."
msgstr ""
" -n comptador Repeteix l'últim fitxer el nombre indicat de "
"vegades."
-#: ppdc/ppdi.cxx:133
msgid ""
" -o filename.drv Set driver information file (otherwise ppdi.drv)."
msgstr ""
" -o nomfitxer.drv Estableix el fitxer d'informació del controlador "
"(ppdi.drv si no s'especifica)."
-#: ppdc/ppdmerge.cxx:370
msgid " -o filename.ppd[.gz] Set output file (otherwise stdout)."
msgstr ""
" -o nomfitxer.ppd[.gz] Estableix el fitxer de sortida (stdout si no "
"s'especifica)."
-#: scheduler/cupsfilter.c:1448
msgid " -o name=value Set option(s)."
msgstr " -o nom=valor Estableix les opcions."
-#: scheduler/cupsfilter.c:1449
msgid " -p filename.ppd Set PPD file."
msgstr " -p nomfitxer.ppd Estableix el fitxer PPD."
-#: systemv/cupstestppd.c:3806 test/ipptool.c:4429
msgid " -q Run silently."
msgstr " -q S'executa en mode silenciós."
-#: systemv/cupstestppd.c:3807
msgid " -r Use 'relaxed' open mode."
msgstr " -r Fa servir el mode obert «relaxat»."
-#: test/ipptool.c:4430
msgid " -t Produce a test report."
msgstr " -t Genera un informe de prova."
-#: ppdc/ppdc.cxx:450
msgid " -t Test PPDs instead of generating them."
msgstr " -t Prova els PPDs en comptes de generar-los."
-#: scheduler/main.c:2025
msgid " -t Test the configuration file."
msgstr " -t Prova el fitxer de configuració."
-#: scheduler/cupsfilter.c:1450
msgid " -t title Set title."
msgstr " -t títol Estableix el títol."
-#: scheduler/cupsfilter.c:1451
msgid " -u Remove the PPD file when finished."
msgstr " -u Elimina el fitxer PPD quan ha acabat."
-#: systemv/cupsaddsmb.c:291 systemv/cupstestppd.c:3808 test/ipptool.c:4431
-#: ppdc/ppdc.cxx:452 ppdc/ppdpo.cxx:259
msgid " -v Be verbose."
msgstr " -v Mode detallat."
-#: systemv/cupstestppd.c:3809
msgid " -vv Be very verbose."
msgstr " -vv Mode molt detallat."
-#: ppdc/ppdc.cxx:453
msgid " -z Compress PPD files using GNU zip."
msgstr ""
" -z Comprimeix els fitxers PPD fent servir el zip de "
"GNU."
-#: systemv/cupstestppd.c:332 systemv/cupstestppd.c:351
-#: systemv/cupstestppd.c:363 systemv/cupstestppd.c:496
-#: systemv/cupstestppd.c:511 systemv/cupstestppd.c:532
-#: systemv/cupstestppd.c:547 systemv/cupstestppd.c:577
-#: systemv/cupstestppd.c:597 systemv/cupstestppd.c:620
-#: systemv/cupstestppd.c:638 systemv/cupstestppd.c:664
-#: systemv/cupstestppd.c:682 systemv/cupstestppd.c:702
-#: systemv/cupstestppd.c:722 systemv/cupstestppd.c:740
-#: systemv/cupstestppd.c:757 systemv/cupstestppd.c:776
-#: systemv/cupstestppd.c:797 systemv/cupstestppd.c:816
-#: systemv/cupstestppd.c:836 systemv/cupstestppd.c:856
-#: systemv/cupstestppd.c:876 systemv/cupstestppd.c:896
-#: systemv/cupstestppd.c:914 systemv/cupstestppd.c:931
-#: systemv/cupstestppd.c:953 systemv/cupstestppd.c:971
-#: systemv/cupstestppd.c:988 systemv/cupstestppd.c:1006
-#: systemv/cupstestppd.c:1022 systemv/cupstestppd.c:1042
-#: systemv/cupstestppd.c:1073 systemv/cupstestppd.c:1095
-#: systemv/cupstestppd.c:1146 systemv/cupstestppd.c:1165
-#: systemv/cupstestppd.c:1209 systemv/cupstestppd.c:1223
-#: systemv/cupstestppd.c:1255 systemv/cupstestppd.c:1282
-#: systemv/cupstestppd.c:1800 systemv/cupstestppd.c:1819
-#: systemv/cupstestppd.c:1837 systemv/cupstestppd.c:1889
-#: systemv/cupstestppd.c:1905 systemv/cupstestppd.c:1942
-#: systemv/cupstestppd.c:1960 systemv/cupstestppd.c:1996
-#: systemv/cupstestppd.c:2010 systemv/cupstestppd.c:2037
-#: systemv/cupstestppd.c:2051 systemv/cupstestppd.c:2097
-#: systemv/cupstestppd.c:2119 systemv/cupstestppd.c:2142
-#: systemv/cupstestppd.c:2159 systemv/cupstestppd.c:2201
-#: systemv/cupstestppd.c:2244 systemv/cupstestppd.c:2291
-#: systemv/cupstestppd.c:2315 systemv/cupstestppd.c:2369
-#: systemv/cupstestppd.c:2385 systemv/cupstestppd.c:2415
-#: systemv/cupstestppd.c:2429 systemv/cupstestppd.c:2455
-#: systemv/cupstestppd.c:2471 systemv/cupstestppd.c:2511
-#: systemv/cupstestppd.c:2525 systemv/cupstestppd.c:2551
-#: systemv/cupstestppd.c:2567 systemv/cupstestppd.c:2597
-#: systemv/cupstestppd.c:2611 systemv/cupstestppd.c:2638
-#: systemv/cupstestppd.c:2655 systemv/cupstestppd.c:2669
-#: systemv/cupstestppd.c:2693 systemv/cupstestppd.c:2710
-#: systemv/cupstestppd.c:2724 systemv/cupstestppd.c:2748
-#: systemv/cupstestppd.c:2765 systemv/cupstestppd.c:2779
-#: systemv/cupstestppd.c:2803 systemv/cupstestppd.c:2820
-#: systemv/cupstestppd.c:2834 systemv/cupstestppd.c:2858
-#: systemv/cupstestppd.c:2872 systemv/cupstestppd.c:2887
-#: systemv/cupstestppd.c:2904 systemv/cupstestppd.c:2960
-#: systemv/cupstestppd.c:2995 systemv/cupstestppd.c:3009
-#: systemv/cupstestppd.c:3037 systemv/cupstestppd.c:3102
-#: systemv/cupstestppd.c:3117 systemv/cupstestppd.c:3156
-#: systemv/cupstestppd.c:3176 systemv/cupstestppd.c:3190
-#: systemv/cupstestppd.c:3387 systemv/cupstestppd.c:3423
-#: systemv/cupstestppd.c:3437 systemv/cupstestppd.c:3483
-#: systemv/cupstestppd.c:3515 systemv/cupstestppd.c:3532
-#: systemv/cupstestppd.c:3555 systemv/cupstestppd.c:3571
-#: systemv/cupstestppd.c:3609 systemv/cupstestppd.c:3750
-#: systemv/cupstestppd.c:3772 systemv/cupstestppd.c:3880
msgid " FAIL"
msgstr " ERROR"
-#: systemv/cupstestppd.c:1306
msgid " PASS"
msgstr " VÀLID"
-#: berkeley/lpq.c:560
#, c-format
msgid "%-6s %-10.10s %-4d %-10d %-27.27s %.0f bytes"
msgstr "%-6s %-10.10s %-4d %-10d %-27.27s %.0f bytes"
-#: berkeley/lpq.c:565
#, c-format
msgid "%-7s %-7.7s %-7d %-31.31s %.0f bytes"
msgstr "%-7s %-7.7s %-7d %-31.31s %.0f bytes"
-#: systemv/lpstat.c:750
#, c-format
msgid "%s accepting requests since %s"
msgstr "%s accepta peticions des de %s"
-#: scheduler/ipp.c:10045
#, c-format
msgid "%s cannot be changed."
msgstr "%s no es pot canviar."
-#: berkeley/lpc.c:189
#, c-format
msgid "%s is not implemented by the CUPS version of lpc."
msgstr "%s no està implementat en la versió del CUPS del lpc."
-#: berkeley/lpq.c:651
#, c-format
msgid "%s is not ready"
msgstr "%s no està preparada"
-#: berkeley/lpq.c:644
#, c-format
msgid "%s is ready"
msgstr "%s està preparada"
-#: berkeley/lpq.c:647
#, c-format
msgid "%s is ready and printing"
msgstr "%s està preparada i imprimeix"
-#: filter/rastertoepson.c:985 filter/rastertohp.c:711
-#: filter/rastertolabel.c:1134
#, c-format
msgid "%s job-id user title copies options [file]"
msgstr "%s identificador-tasca usuari títol còpies opcions [fitxer]"
-#: systemv/lpstat.c:754
#, c-format
msgid "%s not accepting requests since %s -"
msgstr "%s no accepta peticions des de %s -"
-#: scheduler/ipp.c:691
#, c-format
msgid "%s not supported."
msgstr "no es permet l'ús de %s."
-#: systemv/lpstat.c:765
#, c-format
msgid "%s/%s accepting requests since %s"
msgstr "%s/%s accepta peticions des de %s"
-#: systemv/lpstat.c:770
#, c-format
msgid "%s/%s not accepting requests since %s -"
msgstr "%s/%s no accepta peticions des de %s -"
-#: berkeley/lpq.c:552
#, c-format
msgid "%s: %-33.33s [job %d localhost]"
msgstr "%s: %-33.33s [tasca %d localhost]"
#. TRANSLATORS: Message is "subject: error"
-#: cups/langprintf.c:86 scheduler/cupsfilter.c:714 systemv/lpadmin.c:805
-#: systemv/lpadmin.c:856 systemv/lpadmin.c:906 systemv/lpadmin.c:962
-#: systemv/lpadmin.c:1060 systemv/lpadmin.c:1112 systemv/lpadmin.c:1168
-#: systemv/lpadmin.c:1478
#, c-format
msgid "%s: %s"
msgstr "%s: %s"
-#: systemv/cancel.c:294 systemv/cancel.c:357
#, c-format
msgid "%s: %s failed: %s"
msgstr "%s: %s ha fallat: %s"
-#: systemv/cupsaccept.c:68
#, c-format
msgid "%s: Don't know what to do."
msgstr "%s: no sé que fer."
-#: berkeley/lpq.c:236 berkeley/lpr.c:344 systemv/lp.c:584
#, c-format
msgid ""
"%s: Error - %s environment variable names non-existent destination \"%s\"."
@@ -1581,136 +1246,104 @@ msgstr ""
"%s: error - els noms de les variables d'entorn %s tenen un destí inexistent "
"«%s»."
-#: systemv/lp.c:231
#, c-format
msgid "%s: Error - bad job ID."
msgstr "%s: error - ID de la tasca incorrecte."
-#: systemv/lp.c:219
#, c-format
msgid "%s: Error - cannot print files and alter jobs simultaneously."
msgstr ""
"%s: error - no es poden imprimir fitxers i modificar tasques al mateix temps."
-#: systemv/lp.c:505
#, c-format
msgid "%s: Error - cannot print from stdin if files or a job ID are provided."
msgstr ""
"%s: error - no es pot imprimir des d'stdin si s'indiquen els fitxers o "
"l'identificador de la tasca."
-#: systemv/lp.c:461
#, c-format
msgid "%s: Error - expected character set after \"-S\" option."
msgstr ""
"%s: error - s'esperava un conjunt de caràcters després de l'opció «-S»."
-#: systemv/lp.c:480
#, c-format
msgid "%s: Error - expected content type after \"-T\" option."
msgstr "%s: error - s'esperava un tipus de contingut després de l'opció «-T»."
-#: berkeley/lpr.c:240
#, c-format
msgid "%s: Error - expected copies after \"-#\" option."
msgstr "%s: error - s'esperaven còpies després de l'opció «-#»."
-#: systemv/lp.c:264
#, c-format
msgid "%s: Error - expected copies after \"-n\" option."
msgstr "%s: error - s'esperaven còpies després de l'opció «-n»."
-#: berkeley/lpr.c:209
#, c-format
msgid "%s: Error - expected destination after \"-P\" option."
msgstr "%s: error - s'esperava un destí després de l'opció «-P»."
-#: systemv/lpstat.c:231
-#, c-format
-msgid "%s: Error - expected destination after \"-b\" option."
-msgstr "%s: error - s'esperava un destí després de l'opció «-b»."
-
-#: systemv/lp.c:138
#, c-format
msgid "%s: Error - expected destination after \"-d\" option."
msgstr "%s: error - s'esperava un destí després de l'opció «-d»."
-#: systemv/lp.c:168
#, c-format
msgid "%s: Error - expected form after \"-f\" option."
msgstr "%s: error - s'esperava un formulari després de l'opció «-f»."
-#: systemv/lp.c:391
#, c-format
msgid "%s: Error - expected hold name after \"-H\" option."
msgstr "%s: error - s'esperava un nom per pausa després de l'opció «-H»."
-#: berkeley/lpr.c:103
#, c-format
msgid "%s: Error - expected hostname after \"-H\" option."
msgstr ""
"%s: error - s'esperava el nom de l'ordinador central després de l'opció «-H»."
-#: berkeley/lpq.c:180 berkeley/lprm.c:123 systemv/cancel.c:124
-#: systemv/cupsaccept.c:123 systemv/lp.c:189 systemv/lpstat.c:291
#, c-format
msgid "%s: Error - expected hostname after \"-h\" option."
msgstr ""
"%s: error - s'esperava el nom de l'ordinador central després de l'opció «-h»."
-#: systemv/lp.c:371
#, c-format
msgid "%s: Error - expected mode list after \"-y\" option."
msgstr "%s: error - s'esperava una llista de modes després de l'opció «-y»."
-#: berkeley/lpr.c:263
#, c-format
msgid "%s: Error - expected name after \"-%c\" option."
msgstr "%s: error - s'esperava un nom després de l'opció «-%c»."
-#: berkeley/lpr.c:153 systemv/lp.c:288
#, c-format
msgid "%s: Error - expected option=value after \"-o\" option."
msgstr "%s: error - s'esperava opció=valor després de l'opció «-o»."
-#: systemv/lp.c:441
#, c-format
msgid "%s: Error - expected page list after \"-P\" option."
msgstr "%s: error - s'esperava una llista de pàgines després de l'opció «-P»."
-#: systemv/lp.c:308
#, c-format
msgid "%s: Error - expected priority after \"-%c\" option."
msgstr "%s: error - s'esperava una prioritat després de l'opció «-%c»."
-#: systemv/cupsaccept.c:141
#, c-format
msgid "%s: Error - expected reason text after \"-r\" option."
msgstr "%s: error - s'esperava una explicació després de l'opció «-r»."
-#: systemv/lp.c:354
#, c-format
msgid "%s: Error - expected title after \"-t\" option."
msgstr "%s: error - s'esperava un títol després de l'opció «-t»."
-#: berkeley/lpq.c:111 berkeley/lpr.c:84 berkeley/lprm.c:104
-#: systemv/cancel.c:94 systemv/cupsaccept.c:101 systemv/lp.c:116
-#: systemv/lpadmin.c:438 systemv/lpstat.c:137
#, c-format
msgid "%s: Error - expected username after \"-U\" option."
msgstr "%s: error - s'esperava un nom d'usuari després de l'opció «-U»."
-#: systemv/cancel.c:145
#, c-format
msgid "%s: Error - expected username after \"-u\" option."
msgstr "%s: error - s'esperava un nom d'usuari després de l'opció «-u»."
-#: berkeley/lpr.c:125
#, c-format
msgid "%s: Error - expected value after \"-%c\" option."
msgstr "%s: error - s'esperava un valor després de l'opció «-%c»."
-#: systemv/lpstat.c:157 systemv/lpstat.c:171
#, c-format
msgid ""
"%s: Error - need \"completed\", \"not-completed\", or \"all\" after \"-W\" "
@@ -1719,147 +1352,114 @@ msgstr ""
"%s: error - es requereix «completed», «not-completed», o «all» després de "
"l'opció «-W»."
-#: berkeley/lpq.c:241 berkeley/lpr.c:349 systemv/lp.c:589
#, c-format
msgid "%s: Error - no default destination available."
msgstr "%s: error - no hi ha un destí per defecte."
-#: systemv/lp.c:330
#, c-format
msgid "%s: Error - priority must be between 1 and 100."
msgstr "%s: error - la prioritat ha de ser entre 1 i 100."
-#: berkeley/lpr.c:352 systemv/lp.c:592
#, c-format
msgid "%s: Error - scheduler not responding."
msgstr "%s: error - el planificador no està responent."
-#: berkeley/lpr.c:305 systemv/lp.c:537
#, c-format
msgid "%s: Error - too many files - \"%s\"."
msgstr "%s: error - massa fitxers - «%s»."
-#: berkeley/lpr.c:287 systemv/lp.c:520
#, c-format
msgid "%s: Error - unable to access \"%s\" - %s"
msgstr "%s: error - no es pot accedir a «%s» - %s"
-#: berkeley/lpr.c:395 systemv/lp.c:623
#, c-format
msgid "%s: Error - unable to queue from stdin - %s."
msgstr "%s: error - no es pot posar en cua des d'stdin - %s."
-#: berkeley/lprm.c:87 berkeley/lprm.c:172 systemv/cancel.c:214
#, c-format
msgid "%s: Error - unknown destination \"%s\"."
msgstr "%s: error - el destí «%s» és desconegut."
-#: berkeley/lpq.c:150
#, c-format
msgid "%s: Error - unknown destination \"%s/%s\"."
msgstr "%s: error - el destí «%s/%s» és desconegut."
-#: berkeley/lpr.c:274 berkeley/lprm.c:139 systemv/cancel.c:156
-#: systemv/cupsaccept.c:164 systemv/lp.c:496 systemv/lpstat.c:452
#, c-format
msgid "%s: Error - unknown option \"%c\"."
msgstr "%s: error - la opció «%c» és desconeguda."
-#: systemv/cupsaccept.c:157
#, c-format
msgid "%s: Error - unknown option \"%s\"."
msgstr "%s: error - la opció «%s» és desconeguda."
-#: systemv/lp.c:208
#, c-format
msgid "%s: Expected job ID after \"-i\" option."
msgstr "%s: s'esperava l'ID d'una tasca després de l'opció «-i»."
-#: systemv/lpstat.c:504 systemv/lpstat.c:543
#, c-format
msgid "%s: Invalid destination name in list \"%s\"."
msgstr "%s: el nom del destí no és vàlid a la llista «%s»."
-#: scheduler/cupsfilter.c:567
#, c-format
msgid "%s: Invalid filter string \"%s\"."
msgstr "%s: la cadena del filtre «%s» no és vàlida."
-#: systemv/lp.c:418
#, c-format
msgid "%s: Need job ID (\"-i jobid\") before \"-H restart\"."
msgstr "%s: es necessita l'ID de la tasca («-i jobid») abans de «-H restart»."
-#: scheduler/cupsfilter.c:458
#, c-format
msgid "%s: No filter to convert from %s/%s to %s/%s."
msgstr "%s: no hi ha cap filtre per convertir de %s/%s a %s/%s."
-#: systemv/cupsaccept.c:198
#, c-format
msgid "%s: Operation failed: %s"
msgstr "%s: ha fallat l'operació: %s"
-#: berkeley/lpq.c:97 berkeley/lpr.c:70 berkeley/lprm.c:67 systemv/cancel.c:81
-#: systemv/cupsaccept.c:88 systemv/cupsaddsmb.c:86 systemv/lp.c:102
-#: systemv/lpadmin.c:239 systemv/lpinfo.c:88 systemv/lpmove.c:73
-#: systemv/lpstat.c:102 test/ipptool.c:304 test/ipptool.c:321
#, c-format
msgid "%s: Sorry, no encryption support."
msgstr "%s: ho sento, no està compilada la compatibilitat pel xifrat."
-#: berkeley/lpq.c:295 scheduler/cupsfilter.c:1221 systemv/cancel.c:237
-#: systemv/cupsaddsmb.c:144 systemv/cupsaddsmb.c:171
#, c-format
msgid "%s: Unable to connect to server."
msgstr "%s: no es pot connectar al servidor."
-#: systemv/cancel.c:317
#, c-format
msgid "%s: Unable to contact server."
msgstr "%s: no es pot contactar amb el servidor."
-#: scheduler/cupsfilter.c:424
#, c-format
msgid "%s: Unable to determine MIME type of \"%s\"."
msgstr "%s: no es pot determinar el tips de MIME de «%s»."
-#: ppdc/ppdmerge.cxx:96
#, c-format
msgid "%s: Unable to open %s: %s"
msgstr "%s: no es pot obrir %s: %s"
-#: scheduler/cupsfilter.c:662 ppdc/ppdmerge.cxx:112
#, c-format
msgid "%s: Unable to open PPD file: %s on line %d."
msgstr "%s: no es pot obrir el fitxer PPD: %s a la línia %d."
-#: scheduler/cupsfilter.c:392
#, c-format
msgid "%s: Unable to read MIME database from \"%s\" or \"%s\"."
msgstr "%s: no es pot llegir la base de dades MIME de «%s» o «%s»."
-#: berkeley/lpq.c:153 systemv/lpstat.c:558
#, c-format
msgid "%s: Unknown destination \"%s\"."
msgstr "%s: el destí «%s» és desconegut."
-#: scheduler/cupsfilter.c:435
#, c-format
msgid "%s: Unknown destination MIME type %s/%s."
msgstr "%s: es destí de tipus MIME %s/%s és desconegut."
-#: scheduler/cupsfilter.c:1426
#, c-format
msgid "%s: Unknown option \"%c\"."
msgstr "%s: l'opció «%c» és desconeguda."
-#: scheduler/cupsfilter.c:416
#, c-format
msgid "%s: Unknown source MIME type %s/%s."
msgstr "%s: la font del tipus de MIME %s/%s és desconeguda."
-#: berkeley/lpr.c:139
#, c-format
msgid ""
"%s: Warning - \"%c\" format modifier not supported - output may not be "
@@ -1868,1309 +1468,983 @@ msgstr ""
"%s: avís - no es permet l'us del modificador de format «%c» - el resultat "
"pot no ser correcte."
-#: systemv/lp.c:468
#, c-format
msgid "%s: Warning - character set option ignored."
msgstr "%s: avís - s'ignora l'opció del grup de caràcters."
-#: systemv/lp.c:487
#, c-format
msgid "%s: Warning - content type option ignored."
msgstr "%s: avís - s'ignora l'opció de tipus de contingut."
-#: systemv/lp.c:175
#, c-format
msgid "%s: Warning - form option ignored."
msgstr "%s: avís - s'ignora l'opció de formulari."
-#: systemv/lp.c:378
#, c-format
msgid "%s: Warning - mode option ignored."
msgstr "%s: avís - s'ignora l'opció de mode."
-#: ppdc/sample.c:310
msgid "-1"
msgstr "-1"
-#: ppdc/sample.c:301
msgid "-10"
msgstr "-10"
-#: ppdc/sample.c:393
msgid "-100"
msgstr "-100"
-#: ppdc/sample.c:392
msgid "-105"
msgstr "-105"
-#: ppdc/sample.c:300
msgid "-11"
msgstr "-11"
-#: ppdc/sample.c:391
msgid "-110"
msgstr "-110"
-#: ppdc/sample.c:390
msgid "-115"
msgstr "-115"
-#: ppdc/sample.c:299
msgid "-12"
msgstr "-12"
-#: ppdc/sample.c:389
msgid "-120"
msgstr "-120"
-#: ppdc/sample.c:298
msgid "-13"
msgstr "-13"
-#: ppdc/sample.c:297
msgid "-14"
msgstr "-14"
-#: ppdc/sample.c:296
msgid "-15"
msgstr "-15"
-#: ppdc/sample.c:309
msgid "-2"
msgstr "-2"
-#: ppdc/sample.c:409
msgid "-20"
msgstr "-20"
-#: ppdc/sample.c:408
msgid "-25"
msgstr "-25"
-#: ppdc/sample.c:308
msgid "-3"
msgstr "-3"
-#: ppdc/sample.c:407
msgid "-30"
msgstr "-30"
-#: ppdc/sample.c:406
msgid "-35"
msgstr "-35"
-#: ppdc/sample.c:307
msgid "-4"
msgstr "-4"
-#: ppdc/sample.c:405
msgid "-40"
msgstr "-40"
-#: ppdc/sample.c:404
msgid "-45"
msgstr "-45"
-#: ppdc/sample.c:306
msgid "-5"
msgstr "-5"
-#: ppdc/sample.c:403
msgid "-50"
msgstr "-50"
-#: ppdc/sample.c:402
msgid "-55"
msgstr "-55"
-#: ppdc/sample.c:305
msgid "-6"
msgstr "-6"
-#: ppdc/sample.c:401
msgid "-60"
msgstr "-60"
-#: ppdc/sample.c:400
msgid "-65"
msgstr "-65"
-#: ppdc/sample.c:304
msgid "-7"
msgstr "-7"
-#: ppdc/sample.c:399
msgid "-70"
msgstr "-70"
-#: ppdc/sample.c:398
msgid "-75"
msgstr "-75"
-#: ppdc/sample.c:303
msgid "-8"
msgstr "-8"
-#: ppdc/sample.c:397
msgid "-80"
msgstr "-80"
-#: ppdc/sample.c:396
msgid "-85"
msgstr "-85"
-#: ppdc/sample.c:302
msgid "-9"
msgstr "-9"
-#: ppdc/sample.c:395
msgid "-90"
msgstr "-90"
-#: ppdc/sample.c:394
msgid "-95"
msgstr "-95"
-#: ppdc/sample.c:311
msgid "0"
msgstr "0"
-#: ppdc/sample.c:312
msgid "1"
msgstr "1"
-#: ppdc/sample.c:384
msgid "1 inch/sec."
msgstr "1 polzada/seg."
-#: ppdc/sample.c:172
msgid "1.25x0.25\""
msgstr "1.25x0.25\""
-#: ppdc/sample.c:173
msgid "1.25x2.25\""
msgstr "1.25x2.25\""
-#: ppdc/sample.c:432
msgid "1.5 inch/sec."
msgstr "1.5 polzades/seg."
-#: ppdc/sample.c:174
msgid "1.50x0.25\""
msgstr "1.50x0.25\""
-#: ppdc/sample.c:175
msgid "1.50x0.50\""
msgstr "1.50x0.50\""
-#: ppdc/sample.c:176
msgid "1.50x1.00\""
msgstr "1.50x1.00\""
-#: ppdc/sample.c:177
msgid "1.50x2.00\""
msgstr "1.50x2.00\""
-#: ppdc/sample.c:321
msgid "10"
msgstr "10"
-#: ppdc/sample.c:443
msgid "10 inches/sec."
msgstr "10 polzades/seg."
-#: ppdc/sample.c:6
msgid "10 x 11"
msgstr "10 x 11"
-#: ppdc/sample.c:7
msgid "10 x 13"
msgstr "10 x 13"
-#: ppdc/sample.c:8
msgid "10 x 14"
msgstr "10 x 14"
-#: ppdc/sample.c:423
msgid "100"
msgstr "100"
-#: ppdc/sample.c:334
msgid "100 mm/sec."
msgstr "100 mm/seg."
-#: ppdc/sample.c:424
msgid "105"
msgstr "105"
-#: ppdc/sample.c:322
msgid "11"
msgstr "11"
-#: ppdc/sample.c:444
msgid "11 inches/sec."
msgstr "11 polzades/seg."
-#: ppdc/sample.c:425
msgid "110"
msgstr "110"
-#: ppdc/sample.c:426
msgid "115"
msgstr "115"
-#: ppdc/sample.c:323
msgid "12"
msgstr "12"
-#: ppdc/sample.c:445
msgid "12 inches/sec."
msgstr "12 polzades/seg."
-#: ppdc/sample.c:9
msgid "12 x 11"
msgstr "12 x 11"
-#: ppdc/sample.c:427
msgid "120"
msgstr "120"
-#: ppdc/sample.c:335
msgid "120 mm/sec."
msgstr "120 mm/seg."
-#: ppdc/sample.c:243
msgid "120x60dpi"
msgstr "120x60ppp"
-#: ppdc/sample.c:249
msgid "120x72dpi"
msgstr "120x72ppp"
-#: ppdc/sample.c:324
msgid "13"
msgstr "13"
-#: ppdc/sample.c:232
msgid "136dpi"
msgstr "136ppp"
-#: ppdc/sample.c:325
msgid "14"
msgstr "14"
-#: ppdc/sample.c:326
msgid "15"
msgstr "15"
-#: ppdc/sample.c:328
msgid "15 mm/sec."
msgstr "15 mm/seg."
-#: ppdc/sample.c:10
msgid "15 x 11"
msgstr "15 x 11"
-#: ppdc/sample.c:336
msgid "150 mm/sec."
msgstr "150 mm/seg."
-#: ppdc/sample.c:283
msgid "150dpi"
msgstr "150ppp"
-#: ppdc/sample.c:368
msgid "16"
msgstr "16"
-#: ppdc/sample.c:369
msgid "17"
msgstr "17"
-#: ppdc/sample.c:370
msgid "18"
msgstr "18"
-#: ppdc/sample.c:244
msgid "180dpi"
msgstr "180ppp"
-#: ppdc/sample.c:371
msgid "19"
msgstr "19"
-#: ppdc/sample.c:313
msgid "2"
msgstr "2"
-#: ppdc/sample.c:385
msgid "2 inches/sec."
msgstr "2 polzades/seg."
-#: ppdc/sample.c:270
msgid "2-Sided Printing"
msgstr "Impressió a doble cara"
-#: ppdc/sample.c:178
msgid "2.00x0.37\""
msgstr "2.00x0.37\""
-#: ppdc/sample.c:179
msgid "2.00x0.50\""
msgstr "2.00x0.50\""
-#: ppdc/sample.c:180
msgid "2.00x1.00\""
msgstr "2.00x1.00\""
-#: ppdc/sample.c:181
msgid "2.00x1.25\""
msgstr "2.00x1.25\""
-#: ppdc/sample.c:182
msgid "2.00x2.00\""
msgstr "2.00x2.00\""
-#: ppdc/sample.c:183
msgid "2.00x3.00\""
msgstr "2.00x3.00\""
-#: ppdc/sample.c:184
msgid "2.00x4.00\""
msgstr "2.00x4.00\""
-#: ppdc/sample.c:185
msgid "2.00x5.50\""
msgstr "2.00x5.50\""
-#: ppdc/sample.c:186
msgid "2.25x0.50\""
msgstr "2.25x0.50\""
-#: ppdc/sample.c:187
msgid "2.25x1.25\""
msgstr "2.25x1.25\""
-#: ppdc/sample.c:188
msgid "2.25x4.00\""
msgstr "2.25x4.00\""
-#: ppdc/sample.c:189
msgid "2.25x5.50\""
msgstr "2.25x5.50\""
-#: ppdc/sample.c:190
msgid "2.38x5.50\""
msgstr "2.38x5.50\""
-#: ppdc/sample.c:433
msgid "2.5 inches/sec."
msgstr "2.5 polzades/seg."
-#: ppdc/sample.c:191
msgid "2.50x1.00\""
msgstr "2.50x1.00\""
-#: ppdc/sample.c:192
msgid "2.50x2.00\""
msgstr "2.50x2.00\""
-#: ppdc/sample.c:193
msgid "2.75x1.25\""
msgstr "2.75x1.25\""
-#: ppdc/sample.c:194
msgid "2.9 x 1\""
msgstr "2.9 x 1\""
-#: ppdc/sample.c:372
msgid "20"
msgstr "20"
-#: ppdc/sample.c:329
msgid "20 mm/sec."
msgstr "20 mm/seg."
-#: ppdc/sample.c:337
msgid "200 mm/sec."
msgstr "200 mm/seg."
-#: ppdc/sample.c:233
msgid "203dpi"
msgstr "203ppp"
-#: ppdc/sample.c:373
msgid "21"
msgstr "21"
-#: ppdc/sample.c:374
msgid "22"
msgstr "22"
-#: ppdc/sample.c:375
msgid "23"
msgstr "23"
-#: ppdc/sample.c:376
msgid "24"
msgstr "24"
-#: ppdc/sample.c:241
msgid "24-Pin Series"
msgstr "Sèrie de 24 pins"
-#: ppdc/sample.c:250
msgid "240x72dpi"
msgstr "240x72ppp"
-#: ppdc/sample.c:377
msgid "25"
msgstr "25"
-#: ppdc/sample.c:338
msgid "250 mm/sec."
msgstr "250 mm/seg."
-#: ppdc/sample.c:378
msgid "26"
msgstr "26"
-#: ppdc/sample.c:379
msgid "27"
msgstr "27"
-#: ppdc/sample.c:380
msgid "28"
msgstr "28"
-#: ppdc/sample.c:381
msgid "29"
msgstr "29"
-#: ppdc/sample.c:314
msgid "3"
msgstr "3"
-#: ppdc/sample.c:386
msgid "3 inches/sec."
msgstr "3 polzades/seg."
-#: ppdc/sample.c:3
msgid "3 x 5"
msgstr "3 x 5"
-#: ppdc/sample.c:195
msgid "3.00x1.00\""
msgstr "3.00x1.00\""
-#: ppdc/sample.c:196
msgid "3.00x1.25\""
msgstr "3.00x1.25\""
-#: ppdc/sample.c:197
msgid "3.00x2.00\""
msgstr "3.00x2.00\""
-#: ppdc/sample.c:198
msgid "3.00x3.00\""
msgstr "3.00x3.00\""
-#: ppdc/sample.c:199
msgid "3.00x5.00\""
msgstr "3.00x5.00\""
-#: ppdc/sample.c:200
msgid "3.25x2.00\""
msgstr "3.25x2.00\""
-#: ppdc/sample.c:201
msgid "3.25x5.00\""
msgstr "3.25x5.00\""
-#: ppdc/sample.c:202
msgid "3.25x5.50\""
msgstr "3.25x5.50\""
-#: ppdc/sample.c:203
msgid "3.25x5.83\""
msgstr "3.25x5.83\""
-#: ppdc/sample.c:204
msgid "3.25x7.83\""
msgstr "3.25x7.83\""
-#: ppdc/sample.c:4
msgid "3.5 x 5"
msgstr "3.5 x 5"
-#: ppdc/sample.c:171
msgid "3.5\" Disk"
msgstr "Disc de 3.5\""
-#: ppdc/sample.c:205
msgid "3.50x1.00\""
msgstr "3.5x1.00\""
-#: ppdc/sample.c:382
msgid "30"
msgstr "30"
-#: ppdc/sample.c:330
msgid "30 mm/sec."
msgstr "30 mm/seg."
-#: ppdc/sample.c:339
msgid "300 mm/sec."
msgstr "300 mm/seg."
-#: ppdc/sample.c:234
msgid "300dpi"
msgstr "300ppp"
-#: ppdc/sample.c:410
msgid "35"
msgstr "35"
-#: ppdc/sample.c:246
msgid "360dpi"
msgstr "360ppp"
-#: ppdc/sample.c:245
msgid "360x180dpi"
msgstr "360x180ppp"
-#: ppdc/sample.c:315
msgid "4"
msgstr "4"
-#: ppdc/sample.c:387
msgid "4 inches/sec."
msgstr "4 polzades/seg."
-#: ppdc/sample.c:206
msgid "4.00x1.00\""
msgstr "4.00x1.00\""
-#: ppdc/sample.c:214
msgid "4.00x13.00\""
msgstr "4.00x13.00\""
-#: ppdc/sample.c:207
msgid "4.00x2.00\""
msgstr "4.00x2.00\""
-#: ppdc/sample.c:208
msgid "4.00x2.50\""
msgstr "4.00x2.50\""
-#: ppdc/sample.c:209
msgid "4.00x3.00\""
msgstr "4.00x3.00\""
-#: ppdc/sample.c:210
msgid "4.00x4.00\""
msgstr "4.00x4.00\""
-#: ppdc/sample.c:211
msgid "4.00x5.00\""
msgstr "4.00x5.00\""
-#: ppdc/sample.c:212
msgid "4.00x6.00\""
msgstr "4.00x6.00\""
-#: ppdc/sample.c:213
msgid "4.00x6.50\""
msgstr "4.00x6.50\""
-#: ppdc/sample.c:411
msgid "40"
msgstr "40"
-#: ppdc/sample.c:331
msgid "40 mm/sec."
msgstr "40 mm/seg."
-#: ppdc/sample.c:412
msgid "45"
msgstr "45"
-#: ppdc/sample.c:316
msgid "5"
msgstr "5"
-#: ppdc/sample.c:437
msgid "5 inches/sec."
msgstr "5 polzades/seg."
-#: ppdc/sample.c:5
msgid "5 x 7"
msgstr "15 x 11"
-#: ppdc/sample.c:413
msgid "50"
msgstr "50"
-#: ppdc/sample.c:414
msgid "55"
msgstr "55"
-#: ppdc/sample.c:317
msgid "6"
msgstr "6"
-#: ppdc/sample.c:438
msgid "6 inches/sec."
msgstr "6 polzades/seg."
-#: ppdc/sample.c:215
msgid "6.00x1.00\""
msgstr "6.00x1.00\""
-#: ppdc/sample.c:216
msgid "6.00x2.00\""
msgstr "6.00x2.00\""
-#: ppdc/sample.c:217
msgid "6.00x3.00\""
msgstr "6.00x3.00\""
-#: ppdc/sample.c:218
msgid "6.00x4.00\""
msgstr "6.00x4.00\""
-#: ppdc/sample.c:219
msgid "6.00x5.00\""
msgstr "6.00x5.00\""
-#: ppdc/sample.c:220
msgid "6.00x6.00\""
msgstr "6.00x6.00\""
-#: ppdc/sample.c:221
msgid "6.00x6.50\""
msgstr "6.00x6.50\""
-#: ppdc/sample.c:415
msgid "60"
msgstr "60"
-#: ppdc/sample.c:332
msgid "60 mm/sec."
msgstr "60 mm/seg."
-#: ppdc/sample.c:261
msgid "600dpi"
msgstr "600ppp"
-#: ppdc/sample.c:242
msgid "60dpi"
msgstr "60ppp"
-#: ppdc/sample.c:248
msgid "60x72dpi"
msgstr "60x72ppp"
-#: ppdc/sample.c:416
msgid "65"
msgstr "65"
-#: ppdc/sample.c:318
msgid "7"
msgstr "7"
-#: ppdc/sample.c:440
msgid "7 inches/sec."
msgstr "7 polzades/seg."
-#: ppdc/sample.c:11
msgid "7 x 9"
msgstr "7 x 9"
-#: ppdc/sample.c:417
msgid "70"
msgstr "70"
-#: ppdc/sample.c:252
msgid "720dpi"
msgstr "720ppp"
-#: ppdc/sample.c:418
msgid "75"
msgstr "75"
-#: ppdc/sample.c:319
msgid "8"
msgstr "8"
-#: ppdc/sample.c:441
msgid "8 inches/sec."
msgstr "8 polzades/seg."
-#: ppdc/sample.c:12
msgid "8 x 10"
msgstr "8 x 10"
-#: ppdc/sample.c:222
msgid "8.00x1.00\""
msgstr "8.00x1.00\""
-#: ppdc/sample.c:223
msgid "8.00x2.00\""
msgstr "8.00x2.00\""
-#: ppdc/sample.c:224
msgid "8.00x3.00\""
msgstr "8.00x3.00\""
-#: ppdc/sample.c:225
msgid "8.00x4.00\""
msgstr "8.00x4.00\""
-#: ppdc/sample.c:226
msgid "8.00x5.00\""
msgstr "8.00x5.00\""
-#: ppdc/sample.c:227
msgid "8.00x6.00\""
msgstr "8.00x6.00\""
-#: ppdc/sample.c:228
msgid "8.00x6.50\""
msgstr "8.00x6.50\""
-#: ppdc/sample.c:419
msgid "80"
msgstr "80"
-#: ppdc/sample.c:333
msgid "80 mm/sec."
msgstr "80 mm/seg."
-#: ppdc/sample.c:420
msgid "85"
msgstr "85"
-#: ppdc/sample.c:320
msgid "9"
msgstr "9"
-#: ppdc/sample.c:442
msgid "9 inches/sec."
msgstr "9 polzades/seg."
-#: ppdc/sample.c:13
msgid "9 x 11"
msgstr "9 x 11"
-#: ppdc/sample.c:14
msgid "9 x 12"
msgstr "9 x 12"
-#: ppdc/sample.c:247
msgid "9-Pin Series"
msgstr "Sèrie de 9 pins"
-#: ppdc/sample.c:421
msgid "90"
msgstr "90"
-#: ppdc/sample.c:422
msgid "95"
msgstr "95"
-#: berkeley/lpc.c:213
msgid "?Invalid help command unknown."
msgstr "?Comanda d'ajuda no vàlida desconeguda."
-#: cgi-bin/admin.c:2368
msgid "A Samba password is required to export printer drivers"
msgstr ""
"Necessiteu una contrasenya de Samba per exportar els controladors "
"d'impressora"
-#: cgi-bin/admin.c:2364
msgid "A Samba username is required to export printer drivers"
msgstr ""
"Necessiteu una nom d'usuari de Samba per exportar els controladors "
"d'impressora"
-#: scheduler/ipp.c:2283
#, c-format
msgid "A class named \"%s\" already exists."
msgstr "Ja existeix una classe anomenada «%s»."
-#: scheduler/ipp.c:1004
#, c-format
msgid "A printer named \"%s\" already exists."
msgstr "Ja existeix una impressora anomenada «%s»."
-#: ppdc/sample.c:15
msgid "A0"
msgstr "A0"
-#: ppdc/sample.c:16
msgid "A0 Long Edge"
msgstr "A0 costat llarg"
-#: ppdc/sample.c:17
msgid "A1"
msgstr "A1"
-#: ppdc/sample.c:18
msgid "A1 Long Edge"
msgstr "A1 costat llarg"
-#: ppdc/sample.c:37
msgid "A10"
msgstr "A10"
-#: ppdc/sample.c:19
msgid "A2"
msgstr "A2"
-#: ppdc/sample.c:20
msgid "A2 Long Edge"
msgstr "A2 costat llarg"
-#: ppdc/sample.c:21
msgid "A3"
msgstr "A3"
-#: ppdc/sample.c:22
msgid "A3 Long Edge"
msgstr "A3 costat llarg"
-#: ppdc/sample.c:23
msgid "A3 Oversize"
msgstr "A3 estès"
-#: ppdc/sample.c:24
msgid "A3 Oversize Long Edge"
msgstr "A3 estès pel costat llarg"
-#: ppdc/sample.c:25
msgid "A4"
msgstr "A4"
-#: ppdc/sample.c:27
msgid "A4 Long Edge"
msgstr "A4 costat llarg"
-#: ppdc/sample.c:26
msgid "A4 Oversize"
msgstr "A4 estès"
-#: ppdc/sample.c:28
msgid "A4 Small"
msgstr "A4 reduït"
-#: ppdc/sample.c:29
msgid "A5"
msgstr "A5"
-#: ppdc/sample.c:31
msgid "A5 Long Edge"
msgstr "A5 costat llarg"
-#: ppdc/sample.c:30
msgid "A5 Oversize"
msgstr "A5 estès"
-#: ppdc/sample.c:32
msgid "A6"
msgstr "A6"
-#: ppdc/sample.c:33
msgid "A6 Long Edge"
msgstr "A6 costat llarg"
-#: ppdc/sample.c:34
msgid "A7"
msgstr "A7"
-#: ppdc/sample.c:35
msgid "A8"
msgstr "A8"
-#: ppdc/sample.c:36
msgid "A9"
msgstr "A9"
-#: ppdc/sample.c:38
msgid "ANSI A"
msgstr "ANSI A"
-#: ppdc/sample.c:39
msgid "ANSI B"
msgstr "ANSI B"
-#: ppdc/sample.c:40
msgid "ANSI C"
msgstr "ANSI C"
-#: ppdc/sample.c:41
msgid "ANSI D"
msgstr "ANSI D"
-#: ppdc/sample.c:42
msgid "ANSI E"
msgstr "ANSI E"
-#: ppdc/sample.c:47
msgid "ARCH C"
msgstr "ARCH C"
-#: ppdc/sample.c:48
msgid "ARCH C Long Edge"
msgstr "ARCH C costat llarg"
-#: ppdc/sample.c:49
msgid "ARCH D"
msgstr "ARCH D"
-#: ppdc/sample.c:50
msgid "ARCH D Long Edge"
msgstr "ARCH D costat llarg"
-#: ppdc/sample.c:51
msgid "ARCH E"
msgstr "ARCH E"
-#: ppdc/sample.c:52
msgid "ARCH E Long Edge"
msgstr "ARCH E costat llarg"
-#: cgi-bin/classes.c:169 cgi-bin/printers.c:172
msgid "Accept Jobs"
msgstr "Accepta tasques"
-#: cups/http-support.c:1284
msgid "Accepted"
msgstr "Acceptada"
-#: cgi-bin/admin.c:570
msgid "Add Class"
msgstr "Afegeix una classe"
-#: cgi-bin/admin.c:882
msgid "Add Printer"
msgstr "Afegeix una impressora"
-#: cgi-bin/admin.c:444 cgi-bin/admin.c:477 cgi-bin/admin.c:525
-#: cgi-bin/admin.c:535
msgid "Add RSS Subscription"
msgstr "Afegeix una subscripció RSS"
-#: ppdc/sample.c:163
msgid "Address"
msgstr "Adreça"
-#: cgi-bin/admin.c:210 cgi-bin/admin.c:284 cgi-bin/admin.c:2745
msgid "Administration"
msgstr "Administració"
-#: ppdc/sample.c:429
msgid "Always"
msgstr "Sempre"
-#: backend/socket.c:129
msgid "AppSocket/HP JetDirect"
msgstr "AppSocket/HP JetDirect"
-#: ppdc/sample.c:450
msgid "Applicator"
msgstr "Aplicador"
-#: scheduler/ipp.c:1079
#, c-format
msgid "Attempt to set %s printer-state to bad value %d."
msgstr ""
"S'ha intentat posar l'estat de la impressora %s a un valor incorrecte %d."
-#: scheduler/ipp.c:325
#, c-format
msgid "Attribute groups are out of order (%x < %x)."
msgstr "Grups d'atribut desordenats (%x < %x)."
-#: ppdc/sample.c:126
msgid "B0"
msgstr "B0"
-#: ppdc/sample.c:127
msgid "B1"
msgstr "B1"
-#: ppdc/sample.c:137
msgid "B10"
msgstr "B10"
-#: ppdc/sample.c:128
msgid "B2"
msgstr "B2"
-#: ppdc/sample.c:129
msgid "B3"
msgstr "B3"
-#: ppdc/sample.c:130
msgid "B4"
msgstr "B4"
-#: ppdc/sample.c:131
msgid "B5"
msgstr "B5"
-#: ppdc/sample.c:132
msgid "B5 Oversize"
msgstr "A5 estès"
-#: ppdc/sample.c:133
msgid "B6"
msgstr "B6"
-#: ppdc/sample.c:134
msgid "B7"
msgstr "B7"
-#: ppdc/sample.c:135
msgid "B8"
msgstr "B8"
-#: ppdc/sample.c:136
msgid "B9"
msgstr "B9"
-#: cups/dest.c:1680
+#, c-format
+msgid "Bad 'document-format' value \"%s\"."
+msgstr ""
+
msgid "Bad NULL dests pointer"
msgstr "El punter de dests NULL és incorrecte"
-#: cups/ppd.c:345
msgid "Bad OpenGroup"
msgstr "La OpenGroup és incorrecta"
-#: cups/ppd.c:347
msgid "Bad OpenUI/JCLOpenUI"
msgstr "La OpenUI/JCLOpenUI és incorrecta"
-#: cups/ppd.c:349
msgid "Bad OrderDependency"
msgstr "La OrderDependency és incorrecta"
-#: cups/ppd-cache.c:148 cups/ppd-cache.c:195 cups/ppd-cache.c:233
-#: cups/ppd-cache.c:239 cups/ppd-cache.c:255 cups/ppd-cache.c:271
-#: cups/ppd-cache.c:280 cups/ppd-cache.c:288 cups/ppd-cache.c:305
-#: cups/ppd-cache.c:313 cups/ppd-cache.c:328 cups/ppd-cache.c:336
-#: cups/ppd-cache.c:354 cups/ppd-cache.c:366 cups/ppd-cache.c:381
-#: cups/ppd-cache.c:393 cups/ppd-cache.c:415 cups/ppd-cache.c:423
-#: cups/ppd-cache.c:441 cups/ppd-cache.c:449 cups/ppd-cache.c:464
-#: cups/ppd-cache.c:472 cups/ppd-cache.c:490 cups/ppd-cache.c:498
-#: cups/ppd-cache.c:525 cups/ppd-cache.c:571 cups/ppd-cache.c:579
-#: cups/ppd-cache.c:587
msgid "Bad PPD cache file."
msgstr "El fitxer PPD de memòria cau és incorrecte."
-#: cups/http-support.c:1299
msgid "Bad Request"
msgstr "La petició és incorrecta"
-#: cups/snmp.c:1002
msgid "Bad SNMP version number"
msgstr "El número de versió del SNMP és incorrecte"
-#: cups/ppd.c:350
msgid "Bad UIConstraints"
msgstr "La UIConstraints és incorrecta"
-#: scheduler/ipp.c:1380
#, c-format
msgid "Bad copies value %d."
msgstr "El valor de copies %d és incorrecte"
-#: cups/ppd.c:358
msgid "Bad custom parameter"
msgstr "El paràmetre personalitzat és incorrecte"
-#: cups/http-support.c:1451 scheduler/ipp.c:2350
#, c-format
msgid "Bad device-uri \"%s\"."
msgstr "La device-uri «%s» és incorrecta."
-#: scheduler/ipp.c:2391
#, c-format
msgid "Bad device-uri scheme \"%s\"."
msgstr "L'esquema «%s» de la device-uri és incorrecte."
-#: scheduler/ipp.c:8224 scheduler/ipp.c:8240 scheduler/ipp.c:9454
-#: scheduler/ipp.c:10968
#, c-format
msgid "Bad document-format \"%s\"."
msgstr "La document-format «%s» és incorrecta."
-#: scheduler/ipp.c:9470
#, c-format
msgid "Bad document-format-default \"%s\"."
msgstr "La document-format-default «%s» és incorrecta."
-#: cups/util.c:929
msgid "Bad filename buffer"
msgstr "El nom del fitxer de la memòria cau és incorrecte"
-#: scheduler/ipp.c:10060
msgid "Bad job-priority value."
msgstr "El valor de la job-priority és incorrecte."
-#: scheduler/ipp.c:1410
#, c-format
msgid "Bad job-sheets value \"%s\"."
msgstr "El valor «%s» de la job-sheets és incorrecte."
-#: scheduler/ipp.c:1394
msgid "Bad job-sheets value type."
msgstr "El tipus de valor de la job-sheets és incorrecte."
-#: scheduler/ipp.c:10090
msgid "Bad job-state value."
msgstr "El valor de la job-state és incorrecte."
-#: scheduler/ipp.c:2974 scheduler/ipp.c:3426 scheduler/ipp.c:6078
-#: scheduler/ipp.c:6225 scheduler/ipp.c:7658 scheduler/ipp.c:7927
-#: scheduler/ipp.c:8775 scheduler/ipp.c:9001 scheduler/ipp.c:9350
-#: scheduler/ipp.c:9953
#, c-format
msgid "Bad job-uri \"%s\"."
msgstr "La job-uri «%s» és incorrecta."
-#: scheduler/ipp.c:2049 scheduler/ipp.c:5622
#, c-format
msgid "Bad notify-pull-method \"%s\"."
msgstr "La notify-pull-method «%s» és incorrecta."
-#: scheduler/ipp.c:2013 scheduler/ipp.c:5586
#, c-format
msgid "Bad notify-recipient-uri \"%s\"."
msgstr "La notify-recipient-uri «%s» és incorrecta."
-#: scheduler/ipp.c:1426
#, c-format
msgid "Bad number-up value %d."
msgstr "El valor de number-up %d és incorrecte."
-#: cups/adminutil.c:292
#, c-format
msgid "Bad option + choice on line %d."
msgstr "L'opció + elecció de la línia %d és incorrecta."
-#: scheduler/ipp.c:1443
#, c-format
msgid "Bad page-ranges values %d-%d."
msgstr "Els valors de page-ranges %d-%d són incorrectes."
-#: scheduler/ipp.c:2434
#, c-format
msgid "Bad port-monitor \"%s\"."
msgstr "La port-monitor «%s» és incorrecta."
-#: cups/dest.c:676 cups/dest.c:1333
msgid "Bad printer URI."
msgstr "L'URI de la impressora és incorrecte."
-#: scheduler/ipp.c:2495
#, c-format
msgid "Bad printer-state value %d."
msgstr "El valor %d de printer-state és incorrecte."
-#: scheduler/ipp.c:293
#, c-format
msgid "Bad request ID %d."
msgstr "L'Identificador %d de la sol·licitud és incorrecte."
-#: scheduler/ipp.c:278
#, c-format
msgid "Bad request version number %d.%d."
msgstr "El número de versió %d.%d de la sol·licitud és incorrecte."
-#: cgi-bin/admin.c:1484
msgid "Bad subscription ID"
msgstr "L'identificador de la subscripció és incorrecte."
-#: cups/ppd.c:360
msgid "Bad value string"
msgstr "El valor de la cadena és incorrecte"
-#: cgi-bin/admin.c:3290 cgi-bin/admin.c:3536
msgid "Banners"
msgstr "Bàners"
-#: ppdc/sample.c:287
msgid "Bond Paper"
msgstr "Paper de valors"
-#: backend/usb-darwin.c:1846
#, c-format
msgid "Boolean expected for waiteof option \"%s\"."
msgstr "S'esperava un booleà per l'opció waiteof «%s»."
-#: filter/pstops.c:2057
msgid "Buffer overflow detected, aborting."
msgstr "S'ha detectat un desbordament la memòria cau. S'interromp."
-#: ppdc/sample.c:254
msgid "CMYK"
msgstr "CMYK"
-#: ppdc/sample.c:363
msgid "CPCL Label Printer"
msgstr "Impressora d'etiquetes CPCL"
-#: cgi-bin/admin.c:1485 cgi-bin/admin.c:1524 cgi-bin/admin.c:1534
msgid "Cancel RSS Subscription"
msgstr "Cancel·la la subscripció RSS"
-#: backend/ipp.c:1921
msgid "Canceling print job."
msgstr "Es cancel·la la tasca."
-#: scheduler/ipp.c:2475
msgid "Cannot share a remote Kerberized printer."
msgstr "No es pot compartir una impressora remota sobre Kerberos."
-#: ppdc/sample.c:279
msgid "Cassette"
msgstr "Classet"
-#: cgi-bin/admin.c:1655 cgi-bin/admin.c:1797 cgi-bin/admin.c:1810
-#: cgi-bin/admin.c:1821
msgid "Change Settings"
msgstr "Canvia la configuració"
-#: scheduler/ipp.c:2061 scheduler/ipp.c:5634
#, c-format
msgid "Character set \"%s\" not supported."
msgstr "No es permet l'ús del grup de caràcters «%s»."
-#: cgi-bin/classes.c:195 cgi-bin/classes.c:322
msgid "Classes"
msgstr "Classes"
-#: cgi-bin/printers.c:182
msgid "Clean Print Heads"
msgstr "Neteja els capçals de la impressora"
-#: scheduler/ipp.c:3878
msgid "Close-Job doesn't support the job-uri attribute."
msgstr "Close-Job no permet l'ús de l'atribut job-uri."
-#: ppdc/sample.c:282
msgid "Color"
msgstr "Color"
-#: ppdc/sample.c:253
msgid "Color Mode"
msgstr "Mode de color"
-#: berkeley/lpc.c:204
msgid ""
"Commands may be abbreviated. Commands are:\n"
"\n"
@@ -3180,88 +2454,67 @@ msgstr ""
"\n"
"exit help quit status ?"
-#: cups/snmp.c:1006
msgid "Community name uses indefinite length"
msgstr "Els noms de comunitat tenen longitud indefinida"
-#: backend/ipp.c:786 backend/lpd.c:871 backend/socket.c:395
msgid "Connected to printer."
msgstr "S'ha connectat a la impressora."
-#: backend/ipp.c:691 backend/lpd.c:694 backend/socket.c:314
msgid "Connecting to printer."
msgstr "Es connecta a la impressora."
-#: cups/http-support.c:1272
msgid "Continue"
msgstr "Continua"
-#: ppdc/sample.c:365
msgid "Continuous"
msgstr "Contínua"
-#: backend/lpd.c:1020 backend/lpd.c:1152
msgid "Control file sent successfully."
msgstr "El fitxer de control s'ha enviat correctament."
-#: backend/ipp.c:1233 backend/lpd.c:464
msgid "Copying print data."
msgstr "Es copien les dades d'impressió."
-#: cups/http-support.c:1281
msgid "Created"
msgstr "Creat"
-#: cups/ppd.c:1113 cups/ppd.c:1153 cups/ppd.c:1398 cups/ppd.c:1501
msgid "Custom"
msgstr "Personalitzat"
-#: ppdc/sample.c:359
msgid "CustominCutInterval"
msgstr "CustominCutInterval"
-#: ppdc/sample.c:357
msgid "CustominTearInterval"
msgstr "CustominTearInterval"
-#: ppdc/sample.c:343
msgid "Cut"
msgstr "Tall"
-#: ppdc/sample.c:451
msgid "Cutter"
msgstr "Ganiveta"
-#: ppdc/sample.c:239
msgid "Dark"
msgstr "Fosc"
-#: ppdc/sample.c:235
msgid "Darkness"
msgstr "Foscor"
-#: backend/lpd.c:1105
msgid "Data file sent successfully."
msgstr "El fitxer de dades s'ha enviat correctament."
-#: cgi-bin/admin.c:2094 cgi-bin/admin.c:2105 cgi-bin/admin.c:2150
msgid "Delete Class"
msgstr "Elimina la classe"
-#: cgi-bin/admin.c:2179 cgi-bin/admin.c:2190 cgi-bin/admin.c:2235
msgid "Delete Printer"
msgstr "Elimina la impressora"
-#: ppdc/sample.c:281
msgid "DeskJet Series"
msgstr "Sèrie Deskjet"
-#: scheduler/ipp.c:1346
#, c-format
msgid "Destination \"%s\" is not accepting jobs."
msgstr "El Destí «%s» no accepta tasques."
-#: systemv/lpinfo.c:300
#, c-format
msgid ""
"Device: uri = %s\n"
@@ -3278,92 +2531,70 @@ msgstr ""
" identificador = %s\n"
" ubicació = %s"
-#: ppdc/sample.c:436
msgid "Direct Thermal Media"
msgstr "Paper per impressió tèrmica directa"
-#: cups/file.c:296
#, c-format
msgid "Directory \"%s\" contains a relative path."
msgstr "El directori «%s» conté un camí relatiu."
-#: cups/file.c:268
#, c-format
msgid "Directory \"%s\" has insecure permissions (0%o/uid=%d/gid=%d)."
msgstr "El directori «%s» té permisos que no són segurs (0%o/uid=%d/gid=%d)."
-#: cups/file.c:285
#, c-format
msgid "Directory \"%s\" is a file."
msgstr "El directori «%s» és un fitxer."
-#: cups/file.c:256
#, c-format
msgid "Directory \"%s\" not available: %s"
msgstr "El directori «%s» no està disponible: %s"
-#: cups/file.c:241
#, c-format
msgid "Directory \"%s\" permissions OK (0%o/uid=%d/gid=%d)."
msgstr "El directori «%s» té els permisos correctes (0%o/uid=%d/gid=%d)."
-#: ppdc/sample.c:345
msgid "Disabled"
msgstr "Desabilitat"
-#: scheduler/ipp.c:6127
#, c-format
msgid "Document #%d does not exist in job #%d."
msgstr "No s'ha trobat el document #%d a la tasca #%d."
-#: ppdc/sample.c:275
msgid "Duplexer"
msgstr "Unitat d'impressió a dues cares"
-#: ppdc/sample.c:229
msgid "Dymo"
msgstr "Dymo"
-#: ppdc/sample.c:431
msgid "EPL1 Label Printer"
msgstr "Impressora d'etiquetes EPL1"
-#: ppdc/sample.c:434
msgid "EPL2 Label Printer"
msgstr "Impressora d'etiquetes EPL2"
-#: cgi-bin/admin.c:1849 cgi-bin/admin.c:1861 cgi-bin/admin.c:1915
-#: cgi-bin/admin.c:1922 cgi-bin/admin.c:1957 cgi-bin/admin.c:1970
-#: cgi-bin/admin.c:1994 cgi-bin/admin.c:2067
msgid "Edit Configuration File"
msgstr "Edita el fitxer de configuració"
-#: cups/adminutil.c:337
msgid "Empty PPD file."
msgstr "El fitxer PPD és buit."
#. TRANSLATORS: Banner/cover sheet after the print job.
-#: cgi-bin/admin.c:3561
msgid "Ending Banner"
msgstr "S'està acabant el bàner"
-#: ppdc/sample.c:2
msgid "English"
msgstr "Anglès"
-#: systemv/lppasswd.c:193
msgid "Enter old password:"
msgstr "Introduïu la contrasenya antiga:"
-#: systemv/lppasswd.c:224
msgid "Enter password again:"
msgstr "Introduïu la contrasenya un altre cop:"
-#: systemv/lppasswd.c:212
msgid "Enter password:"
msgstr "Introduïu la contrasenya:"
-#: scheduler/client.c:2427
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 "
@@ -3374,339 +2605,251 @@ msgstr ""
"l'autenticació Kerberos, assegureu-vos de tenir un tiquet Kerberos que sigui "
"vàlid."
-#: ppdc/sample.c:73
msgid "Envelope #10 "
msgstr "Sobre #10"
-#: ppdc/sample.c:74
msgid "Envelope #11"
msgstr "Sobre #11"
-#: ppdc/sample.c:75
msgid "Envelope #12"
msgstr "Sobre #12"
-#: ppdc/sample.c:76
msgid "Envelope #14"
msgstr "Sobre #14"
-#: ppdc/sample.c:77
msgid "Envelope #9"
msgstr "Sobre #9"
-#: ppdc/sample.c:89
msgid "Envelope B4"
msgstr "Sobre B4"
-#: ppdc/sample.c:90
msgid "Envelope B5"
msgstr "Sobre B5"
-#: ppdc/sample.c:91
msgid "Envelope B6"
msgstr "Sobre B6"
-#: ppdc/sample.c:78
msgid "Envelope C0"
msgstr "Sobre C0"
-#: ppdc/sample.c:79
msgid "Envelope C1"
msgstr "Sobre C1"
-#: ppdc/sample.c:80
msgid "Envelope C2"
msgstr "Sobre C2"
-#: ppdc/sample.c:81
msgid "Envelope C3"
msgstr "Sobre C3"
-#: ppdc/sample.c:67
msgid "Envelope C4"
msgstr "Sobre C4"
-#: ppdc/sample.c:68
msgid "Envelope C5"
msgstr "Sobre C5"
-#: ppdc/sample.c:69
msgid "Envelope C6"
msgstr "Sobre C6"
-#: ppdc/sample.c:82
msgid "Envelope C65"
msgstr "Sobre C65"
-#: ppdc/sample.c:83
msgid "Envelope C7"
msgstr "Sobre C7"
-#: ppdc/sample.c:84
msgid "Envelope Choukei 3"
msgstr "Sobre Choukei 3"
-#: ppdc/sample.c:85
msgid "Envelope Choukei 3 Long Edge"
msgstr "Sobre Choukei 3 costat llarg"
-#: ppdc/sample.c:86
msgid "Envelope Choukei 4"
msgstr "Sobre Choukei 4"
-#: ppdc/sample.c:87
msgid "Envelope Choukei 4 Long Edge"
msgstr "Sobre Choukei 4 costat llarg"
-#: ppdc/sample.c:70
msgid "Envelope DL"
msgstr "Sobre DL"
-#: ppdc/sample.c:269
msgid "Envelope Feed"
msgstr "Alimentació de sobres"
-#: ppdc/sample.c:88
msgid "Envelope Invite"
msgstr "Sobre d'invitació"
-#: ppdc/sample.c:92
msgid "Envelope Italian"
msgstr "Sobre italià"
-#: ppdc/sample.c:93
msgid "Envelope Kaku2"
msgstr "Sobre Kaku2"
-#: ppdc/sample.c:94
msgid "Envelope Kaku2 Long Edge"
msgstr "Sobre Kaku2 costat llarg"
-#: ppdc/sample.c:95
msgid "Envelope Kaku3"
msgstr "Sobre Kaku3"
-#: ppdc/sample.c:96
msgid "Envelope Kaku3 Long Edge"
msgstr "Sobre Kaku3 costat llarg"
-#: ppdc/sample.c:97
msgid "Envelope Monarch"
msgstr "Sobre monarch"
-#: ppdc/sample.c:99
msgid "Envelope PRC1 "
msgstr "Sobre PRC1"
-#: ppdc/sample.c:100
msgid "Envelope PRC1 Long Edge"
msgstr "Sobre PRC1 costat llarg"
-#: ppdc/sample.c:117
msgid "Envelope PRC10"
msgstr "Sobre PRC10"
-#: ppdc/sample.c:118
msgid "Envelope PRC10 Long Edge"
msgstr "Sobre PRC10 costat llarg"
-#: ppdc/sample.c:101
msgid "Envelope PRC2"
msgstr "Sobre PRC2"
-#: ppdc/sample.c:102
msgid "Envelope PRC2 Long Edge"
msgstr "Sobre PRC2 costat llarg"
-#: ppdc/sample.c:103
msgid "Envelope PRC3"
msgstr "Sobre PRC3"
-#: ppdc/sample.c:104
msgid "Envelope PRC3 Long Edge"
msgstr "Sobre PRC3 costat llarg"
-#: ppdc/sample.c:105
msgid "Envelope PRC4"
msgstr "Sobre PRC4"
-#: ppdc/sample.c:106
msgid "Envelope PRC4 Long Edge"
msgstr "Sobre PRC4 costat llarg"
-#: ppdc/sample.c:108
msgid "Envelope PRC5 Long Edge"
msgstr "Sobre PRC5 costat llarg"
-#: ppdc/sample.c:107
msgid "Envelope PRC5PRC5"
msgstr "Sobre PRC5"
-#: ppdc/sample.c:109
msgid "Envelope PRC6"
msgstr "Sobre PRC6"
-#: ppdc/sample.c:110
msgid "Envelope PRC6 Long Edge"
msgstr "Sobre PRC6 costat llarg"
-#: ppdc/sample.c:111
msgid "Envelope PRC7"
msgstr "Sobre PRC7"
-#: ppdc/sample.c:112
msgid "Envelope PRC7 Long Edge"
msgstr "Sobre PRC7 costat llarg"
-#: ppdc/sample.c:113
msgid "Envelope PRC8"
msgstr "Sobre PRC8"
-#: ppdc/sample.c:114
msgid "Envelope PRC8 Long Edge"
msgstr "Sobre PRC8 costat llarg"
-#: ppdc/sample.c:115
msgid "Envelope PRC9"
msgstr "Sobre PRC9"
-#: ppdc/sample.c:116
msgid "Envelope PRC9 Long Edge"
msgstr "Sobre PRC9 costat llarg"
-#: ppdc/sample.c:98
msgid "Envelope Personal"
msgstr "Sobre personalitzat"
-#: ppdc/sample.c:119
msgid "Envelope You4"
msgstr "Sobre You4"
-#: ppdc/sample.c:120
msgid "Envelope You4 Long Edge"
msgstr "Sobre You4 costat llarg"
-#: ppdc/sample.c:240
msgid "Epson"
msgstr "Epson"
-#: cgi-bin/admin.c:3604
msgid "Error Policy"
msgstr "Normes d'error"
-#: filter/rastertopwg.c:403 filter/rastertopwg.c:418 filter/rastertopwg.c:429
-#: filter/rastertopwg.c:440
msgid "Error sending raster data."
msgstr "S'ha produït un error quan s'enviaven les dades de la trama."
-#: systemv/lpinfo.c:103 systemv/lpmove.c:88
msgid "Error: need hostname after \"-h\" option."
msgstr "ERROR: es necessita un nom d'amfitrió després de l'opció «-h»."
-#: ppdc/sample.c:355
msgid "Every 10 Labels"
msgstr "Cada 10 etiquetes"
-#: ppdc/sample.c:347
msgid "Every 2 Labels"
msgstr "Cada 2 etiquetes"
-#: ppdc/sample.c:348
msgid "Every 3 Labels"
msgstr "Cada 3 etiquetes"
-#: ppdc/sample.c:349
msgid "Every 4 Labels"
msgstr "Cada 4 etiquetes"
-#: ppdc/sample.c:350
msgid "Every 5 Labels"
msgstr "Cada 5 etiquetes"
-#: ppdc/sample.c:351
msgid "Every 6 Labels"
msgstr "Cada 6 etiquetes"
-#: ppdc/sample.c:352
msgid "Every 7 Labels"
msgstr "Cada 7 etiquetes"
-#: ppdc/sample.c:353
msgid "Every 8 Labels"
msgstr "Cada 8 etiquetes"
-#: ppdc/sample.c:354
msgid "Every 9 Labels"
msgstr "Cada 9 etiquetes"
-#: ppdc/sample.c:346
msgid "Every Label"
msgstr "Cada etiqueta"
-#: ppdc/sample.c:121
msgid "Executive"
msgstr "Executiu"
-#: cups/http-support.c:1327
msgid "Expectation Failed"
msgstr "Ha fallat la condició del valor que s'esperava"
-#: cgi-bin/admin.c:2356 cgi-bin/admin.c:2375
msgid "Export Printers to Samba"
msgstr "Exportar les impressores al Samba"
-#: systemv/cupstestdsc.c:172 systemv/cupstestdsc.c:189
-#: systemv/cupstestdsc.c:214 systemv/cupstestdsc.c:231
-#: systemv/cupstestdsc.c:255 systemv/cupstestdsc.c:273
-#: systemv/cupstestdsc.c:302 systemv/cupstestdsc.c:339
-#: systemv/cupstestdsc.c:349 systemv/cupstestdsc.c:359
-#: systemv/cupstestdsc.c:369 systemv/cupstestdsc.c:379
-#: systemv/cupstestdsc.c:387
msgid "FAIL"
msgstr "ERROR"
-#: ppdc/sample.c:122
msgid "FanFold German"
msgstr "Paper continu alemany"
-#: ppdc/sample.c:123
msgid "FanFold Legal German"
msgstr "Paper continu legal alemany"
-#: ppdc/sample.c:124
msgid "Fanfold US"
msgstr "Paper continu americà"
-#: cups/file.c:300
#, c-format
msgid "File \"%s\" contains a relative path."
msgstr "El fitxer «%s» conté un camí relatiu."
-#: cups/file.c:275
#, c-format
msgid "File \"%s\" has insecure permissions (0%o/uid=%d/gid=%d)."
msgstr "El fitxer «%s» té permisos que no són segurs (0%o/uid=%d/gid=%d)."
-#: cups/file.c:289
#, c-format
msgid "File \"%s\" is a directory."
msgstr "El fitxer «%s» és un directori."
-#: cups/file.c:261
#, c-format
msgid "File \"%s\" not available: %s"
msgstr "El fitxer «%s» no està disponible: %s"
-#: cups/file.c:247
#, c-format
msgid "File \"%s\" permissions OK (0%o/uid=%d/gid=%d)."
msgstr "El fitxer «%s» té els permisos correctes (0%o/uid=%d/gid=%d)."
-#: ppdc/sample.c:169
msgid "File Folder "
msgstr "Carpeta d'arxivador "
-#: scheduler/ipp.c:2370
#, c-format
msgid ""
"File device URIs have been disabled. To enable, see the FileDevice directive "
@@ -3715,511 +2858,401 @@ msgstr ""
"S'han deshabilitat els URIs dels dispositius de fitxers. Per habilitar-los, "
"vegeu la directriu FileDevice a «%s/cupsd.conf»."
-#: filter/rastertoepson.c:1117 filter/rastertohp.c:845
-#: filter/rastertolabel.c:1273
#, c-format
msgid "Finished page %d."
msgstr "S'ha acabat la pàgina %d."
-#: ppdc/sample.c:125
msgid "Folio"
msgstr "Foli"
-#: cups/http-support.c:1306
msgid "Forbidden"
msgstr "Prohibit"
-#: cups/ppd.c:742 cups/ppd.c:1302
msgid "General"
msgstr "General"
-#: ppdc/sample.c:259
msgid "Generic"
msgstr "Genèric"
-#: cups/snmp.c:1016
msgid "Get-Response-PDU uses indefinite length"
msgstr "La Get-Response-PDU fa servir una longitud indefinida"
-#: ppdc/sample.c:290
msgid "Glossy Paper"
msgstr "Paper fotogràfic"
-#: scheduler/ipp.c:2952 scheduler/ipp.c:3352 scheduler/ipp.c:3890
-#: scheduler/ipp.c:6056 scheduler/ipp.c:6203 scheduler/ipp.c:7635
-#: scheduler/ipp.c:8753 scheduler/ipp.c:8979 scheduler/ipp.c:9328
-#: scheduler/ipp.c:9931
msgid "Got a printer-uri attribute but no job-id."
msgstr "S'ha obtingut l'atribut printer-uri però no el job-id."
-#: ppdc/sample.c:255
msgid "Grayscale"
msgstr "Escala de grisos"
-#: ppdc/sample.c:280
msgid "HP"
msgstr "HP"
-#: ppdc/sample.c:170
msgid "Hanging Folder"
msgstr "Carpeta per penjar"
-#: cgi-bin/help.c:143
msgid "Help file not in index."
msgstr "El fitxer d'ajuda no és a l'índex."
-#: cups/ipp.c:2687 cups/ipp.c:2714 cups/ipp.c:2737
msgid "IPP 1setOf attribute with incompatible value tags."
msgstr ""
"L'atribut 1setOf del IPP té etiquetes amb valors que no són compatibles."
-#: cups/ipp.c:2650
msgid "IPP attribute has no name."
msgstr "L'atribut del IPP no té nom."
-#: cups/ipp.c:5487
msgid "IPP attribute is not a member of the message."
msgstr "L'atribut del IPP no és membre del missatge."
-#: cups/ipp.c:3083
msgid "IPP begCollection value not 0 bytes."
msgstr "El valor de begColletion del IPP no té 0 bytes."
-#: cups/ipp.c:2873
msgid "IPP boolean value not 1 byte."
msgstr "El valor booleà del IPP no té 1 byte."
-#: cups/ipp.c:2934
msgid "IPP date value not 11 bytes."
msgstr "El valor de date del IPP no té 11 bytes."
-#: cups/ipp.c:3104
msgid "IPP endCollection value not 0 bytes."
msgstr "El valor de endColletion del IPP no té 0 bytes."
-#: cups/ipp.c:2848
msgid "IPP enum value not 4 bytes."
msgstr "El valor de enum del IPP no té 4 bytes."
-#: cups/ipp.c:2579
msgid "IPP extension tag larger than 0x7FFFFFFF."
msgstr "La etiqueta d'extension del IPP és més llarga de 0x7FFFFFFF."
-#: cups/ipp.c:2845
msgid "IPP integer value not 4 bytes."
msgstr "El valor enter de IPP no té 4 bytes."
-#: cups/ipp.c:3045
msgid "IPP language length overflows value."
msgstr "El valor de la longitud del llenguatge del IPP desborda."
-#: cups/ipp.c:2764
+msgid "IPP language length too large."
+msgstr ""
+
msgid "IPP member name is not empty."
msgstr "El nom del membre del IPP no està buit."
-#: cups/ipp.c:3122
msgid "IPP memberName value is empty."
msgstr "El valor de memberName de l'IPP està buit."
-#: cups/ipp.c:2633
+msgid "IPP memberName with no attribute."
+msgstr ""
+
msgid "IPP name larger than 32767 bytes."
msgstr "EL nom del IPP és més llarg de 32767 bytes."
-#: cups/ipp.c:3011
msgid "IPP nameWithLanguage value less than minimum 4 bytes."
msgstr ""
"El valor de nameWithLanguage del IPP és més petit que el mínim, 4 bytes."
-#: cups/ipp.c:2979
+msgid "IPP nameWithLanguage value more than maximum 1090 bytes."
+msgstr ""
+
+msgid "IPP octetString length too large."
+msgstr ""
+
msgid "IPP rangeOfInteger value not 8 bytes."
msgstr "El valor de rangeOfInteger del IPP no té 8 bytes."
-#: cups/ipp.c:2952
msgid "IPP resolution value not 9 bytes."
msgstr "El valor de resolution del IPP no té 9 bytes."
-#: cups/ipp.c:3063
msgid "IPP string length overflows value."
msgstr "El valor de la longitud de la cadena del IPP desborda."
-#: cups/ipp.c:3007
+msgid "IPP string value too large."
+msgstr ""
+
+msgid "IPP text length too large."
+msgstr ""
+
msgid "IPP textWithLanguage value less than minimum 4 bytes."
msgstr ""
"EL valor de textWithLanguage del IPP és més petit que el mínim, 4 bytes."
-#: cups/ipp.c:2831
+msgid "IPP textWithLanguage value more than maximum 1090 bytes."
+msgstr ""
+
msgid "IPP value larger than 32767 bytes."
msgstr "El valor del IPP és més llarg de 32767 bytes."
-#: ppdc/sample.c:1
msgid "ISOLatin1"
msgstr "ISOLatin1"
-#: cups/ppd.c:353
msgid "Illegal control character"
msgstr "Caràcter de control no permès"
-#: cups/ppd.c:354
msgid "Illegal main keyword string"
msgstr "Cadena de paraula clau principal no permesa"
-#: cups/ppd.c:355
msgid "Illegal option keyword string"
msgstr "Cadena de paraula clau d'opció no permesa"
-#: cups/ppd.c:356
msgid "Illegal translation string"
msgstr "Cadena de traducció no permesa"
-#: cups/ppd.c:357
msgid "Illegal whitespace character"
msgstr "Caràcter d'espai en blanc no permés"
-#: ppdc/sample.c:274
msgid "Installable Options"
msgstr "Opcions instal·lables"
-#: ppdc/sample.c:277
msgid "Installed"
msgstr "Instal·lat"
-#: ppdc/sample.c:293
msgid "IntelliBar Label Printer"
msgstr "Impressora d'etiquetes IntelliBar"
-#: ppdc/sample.c:292
msgid "Intellitech"
msgstr "Intellitech"
-#: cups/http-support.c:1333
msgid "Internal Server Error"
msgstr "Error intern del servidor"
-#: cups/ppd.c:344
msgid "Internal error"
msgstr "Error intern"
-#: ppdc/sample.c:167
msgid "Internet Postage 2-Part"
msgstr "Franqueig per Internet en 2 parts"
-#: ppdc/sample.c:168
msgid "Internet Postage 3-Part"
msgstr "Franqueig per Internet en 3 parts"
-#: backend/ipp.c:307
msgid "Internet Printing Protocol"
msgstr "Protocol d'impressió per Internet"
-#: cups/dest-options.c:839
msgid "Invalid media size."
msgstr "Mida del suport no vàlida."
-#: filter/commandtops.c:125
#, c-format
msgid "Invalid printer command \"%s\"."
msgstr "La comanda de la impressora «%s» no és vàlida."
-#: cups/ppd.c:1420
msgid "JCL"
msgstr "Llenguatge de control de tasques (JCL)"
-#: ppdc/sample.c:53
msgid "JIS B0"
msgstr "JIS B0"
-#: ppdc/sample.c:55
msgid "JIS B1"
msgstr "JIS B1"
-#: ppdc/sample.c:54
msgid "JIS B10"
msgstr "JIS B10"
-#: ppdc/sample.c:56
msgid "JIS B2"
msgstr "JIS B2"
-#: ppdc/sample.c:57
msgid "JIS B3"
msgstr "JIS B3"
-#: ppdc/sample.c:58
msgid "JIS B4"
msgstr "JIS B4"
-#: ppdc/sample.c:59
msgid "JIS B4 Long Edge"
msgstr "JIS B4 costat llarg"
-#: ppdc/sample.c:60
msgid "JIS B5"
msgstr "JIS B5"
-#: ppdc/sample.c:61
msgid "JIS B5 Long Edge"
msgstr "JIS B5 costat llarg"
-#: ppdc/sample.c:62
msgid "JIS B6"
msgstr "JIS B6"
-#: ppdc/sample.c:63
msgid "JIS B6 Long Edge"
msgstr "JIS B6 costat llarg"
-#: ppdc/sample.c:64
msgid "JIS B7"
msgstr "JIS B7"
-#: ppdc/sample.c:65
msgid "JIS B8"
msgstr "JIS B8"
-#: ppdc/sample.c:66
msgid "JIS B9"
msgstr "JIS B9"
-#: scheduler/ipp.c:9051
#, c-format
msgid "Job #%d cannot be restarted - no files."
msgstr "La tasca #%d no es pot tornar a iniciar - no hi ha fitxers."
-#: scheduler/ipp.c:2992 scheduler/ipp.c:3222 scheduler/ipp.c:3277
-#: scheduler/ipp.c:3454 scheduler/ipp.c:3900 scheduler/ipp.c:5720
-#: scheduler/ipp.c:6096 scheduler/ipp.c:6243 scheduler/ipp.c:6543
-#: scheduler/ipp.c:7482 scheduler/ipp.c:7504 scheduler/ipp.c:7676
-#: scheduler/ipp.c:7901 scheduler/ipp.c:7944 scheduler/ipp.c:8793
-#: scheduler/ipp.c:9019 scheduler/ipp.c:9368 scheduler/ipp.c:9971
#, c-format
msgid "Job #%d does not exist."
msgstr "La tasca #%d no existeix."
-#: scheduler/ipp.c:3486
#, c-format
msgid "Job #%d is already aborted - can't cancel."
msgstr "La tasca #%d ja s'ha interromput: no es pot cancel·lar."
-#: scheduler/ipp.c:3480
#, c-format
msgid "Job #%d is already canceled - can't cancel."
msgstr "La tasca #%d ja està cancel·lada: no es pot cancel·lar."
-#: scheduler/ipp.c:3492
#, c-format
msgid "Job #%d is already completed - can't cancel."
msgstr "La tasca #%d ja s'ha acabat: no es pot cancel·lar."
-#: scheduler/ipp.c:7702 scheduler/ipp.c:7986 scheduler/ipp.c:9986
#, c-format
msgid "Job #%d is finished and cannot be altered."
msgstr "La tasca #%d s'ha acabat i no es pot canviar."
-#: scheduler/ipp.c:9033
#, c-format
msgid "Job #%d is not complete."
msgstr "La tasca #%d no s'ha acabat."
-#: scheduler/ipp.c:3007
#, c-format
msgid "Job #%d is not held for authentication."
msgstr "La tasca #%d no està aturada per ser autenticada."
-#: scheduler/ipp.c:8807
#, c-format
msgid "Job #%d is not held."
msgstr "La tasca #%d no està aturada."
-#: cgi-bin/ipp-var.c:1055
msgid "Job Completed"
msgstr "S'ha acabat la tasca"
-#: cgi-bin/ipp-var.c:1053
msgid "Job Created"
msgstr "S'ha creat la tasca"
-#: cgi-bin/ipp-var.c:1059
msgid "Job Options Changed"
msgstr "S'han canviat les opcions de la tasca"
-#: cgi-bin/ipp-var.c:1057
msgid "Job Stopped"
msgstr "S'ha aturat la tasca"
-#: scheduler/ipp.c:10068
msgid "Job is completed and cannot be changed."
msgstr "La tasca s'ha finalitzat i no es pot canviar."
-#: cgi-bin/jobs.c:198
msgid "Job operation failed"
msgstr "Ha fallat l'operació de la tasca"
-#: scheduler/ipp.c:10104 scheduler/ipp.c:10123 scheduler/ipp.c:10134
msgid "Job state cannot be changed."
msgstr "L'estat de la tasca no es pot canviar."
-#: scheduler/ipp.c:8899
msgid "Job subscriptions cannot be renewed."
msgstr "Les subscripcions a les tasca no es poden renovar."
-#: cgi-bin/jobs.c:103 cgi-bin/jobs.c:114 cgi-bin/jobs.c:195
msgid "Jobs"
msgstr "Tasques"
-#: backend/lpd.c:185
msgid "LPD/LPR Host or Printer"
msgstr "Amfitrió o impressora LPD/LPR"
-#: ppdc/sample.c:230
msgid "Label Printer"
msgstr "Impressora d'etiquetes"
-#: ppdc/sample.c:446
msgid "Label Top"
msgstr "Capçalera de l'etiqueta"
-#: scheduler/ipp.c:2070 scheduler/ipp.c:5643
#, c-format
msgid "Language \"%s\" not supported."
msgstr "No s'admet l'idioma «%s»."
-#: ppdc/sample.c:164
msgid "Large Address"
msgstr "Adreça gran"
-#: ppdc/sample.c:291
msgid "LaserJet Series PCL 4/5"
msgstr "Sèrie Laser Jet PCL 4/5"
-#: ppdc/sample.c:43
msgid "Letter Oversize"
msgstr "Carta gran"
-#: ppdc/sample.c:44
msgid "Letter Oversize Long Edge"
msgstr "Carta americà gran costat llarg"
-#: ppdc/sample.c:236
msgid "Light"
msgstr "Lluminós"
-#: cups/ppd.c:352
msgid "Line longer than the maximum allowed (255 characters)"
msgstr "La línia la longitud màxima permesa (255 caràcters)"
-#: cgi-bin/admin.c:2393
msgid "List Available Printers"
msgstr "Llista les impressores disponibles"
-#: ppdc/sample.c:272
msgid "Long-Edge (Portrait)"
msgstr "Costat-llarg (vertical)"
-#: cups/http-support.c:1558
msgid "Looking for printer."
msgstr "S'està buscant la impressora."
-#: ppdc/sample.c:268
msgid "Manual Feed"
msgstr "Alimentació manual"
-#: cups/ppd.c:789 cups/ppd.c:1357
msgid "Media Size"
msgstr "Mida del paper"
-#: cups/ppd.c:793 cups/ppd.c:1361 ppdc/sample.c:262
msgid "Media Source"
msgstr "Font del paper"
-#: ppdc/sample.c:364
msgid "Media Tracking"
msgstr "Seguiment del paper"
-#: cups/ppd.c:791 cups/ppd.c:1359 ppdc/sample.c:285
msgid "Media Type"
msgstr "Tipus de paper"
-#: ppdc/sample.c:237
msgid "Medium"
msgstr "Mitjà"
-#: cups/ppd.c:341
msgid "Memory allocation error"
msgstr "S'ha produït un error d'ubicació de memòria"
-#: cups/ppd.c:361
msgid "Missing CloseGroup"
msgstr "Falta el CloseGroup"
-#: cups/ppd.c:342
msgid "Missing PPD-Adobe-4.x header"
msgstr "Falta la capçalera PPD-ADOBE-4.x"
-#: cups/ppd.c:351
msgid "Missing asterisk in column 1"
msgstr "Falta un asterisc a la columna 1"
-#: scheduler/ipp.c:6119
msgid "Missing document-number attribute."
msgstr "Falta l'atribut document-number."
-#: cups/adminutil.c:273
#, c-format
msgid "Missing double quote on line %d."
msgstr "Falta una cometa doble a la línia %d."
-#: cgi-bin/admin.c:736 cgi-bin/admin.c:2106 cgi-bin/admin.c:2191
-#: cgi-bin/admin.c:2785 cgi-bin/admin.c:3039 cgi-bin/admin.c:3150
-#: cgi-bin/admin.c:3860
msgid "Missing form variable"
msgstr "Falta una variable del formulari"
-#: scheduler/ipp.c:9422
msgid "Missing last-document attribute in request."
msgstr "Falta l'atribut last-document-number a la petició."
-#: cups/pwg-media.c:535
msgid "Missing media or media-col."
msgstr "Falta el media o el media-col."
-#: cups/pwg-media.c:454
msgid "Missing media-size in media-col."
msgstr "Falta el media-size al media-col."
-#: scheduler/ipp.c:6673
msgid "Missing notify-subscription-ids attribute."
msgstr "Falta l'atribut notify-subscription-ids."
-#: cups/ppd.c:359
msgid "Missing option keyword"
msgstr "Falta l'opció keyword"
-#: scheduler/ipp.c:3133 scheduler/ipp.c:3158
msgid "Missing requesting-user-name attribute."
msgstr "Falta l'atribut requesting-user-name."
-#: scheduler/ipp.c:461
msgid "Missing required attributes."
msgstr "Falten alguns atributs necessaris."
-#: cups/adminutil.c:254
#, c-format
msgid "Missing value on line %d."
msgstr "Falta un valor a la línia %d."
-#: cups/ppd.c:343
msgid "Missing value string"
msgstr "Falta la cadena de valor"
-#: cups/pwg-media.c:442
msgid "Missing x-dimension in media-size."
msgstr "Falta la mida x a la mida del suport."
-#: cups/pwg-media.c:448
msgid "Missing y-dimension in media-size."
msgstr "Falta la mida y a la mida del suport."
-#: systemv/lpinfo.c:470
#, c-format
msgid ""
"Model: name = %s\n"
@@ -4232,734 +3265,558 @@ msgstr ""
" fabricant i model = %s\n"
" id del dispositiu = %s"
-#: cgi-bin/admin.c:570
msgid "Modify Class"
msgstr "Modifica la classe"
-#: cgi-bin/admin.c:882
msgid "Modify Printer"
msgstr "Modifica la impressora"
-#: cgi-bin/ipp-var.c:425 cgi-bin/ipp-var.c:516
msgid "Move All Jobs"
msgstr "Mou totes les tasques"
-#: cgi-bin/ipp-var.c:364 cgi-bin/ipp-var.c:423 cgi-bin/ipp-var.c:514
msgid "Move Job"
msgstr "Mou la tasca"
-#: cups/http-support.c:1290
msgid "Moved Permanently"
msgstr "S'ha mogut de manera permanent"
-#: cups/ppd.c:340
msgid "NULL PPD file pointer"
msgstr "Punter del fitxer PPD NUL"
-#: cups/snmp.c:1053
msgid "Name OID uses indefinite length"
msgstr "El nom de l'OID fa servir una longitud indefinida"
-#: scheduler/ipp.c:1142
msgid "Nested classes are not allowed."
msgstr "No es permeten les classes imbricades."
-#: ppdc/sample.c:430
msgid "Never"
msgstr "Mai"
-#: ppdc/sample.c:256
msgid "New Stylus Color Series"
msgstr "Sèrie New Stylus Color"
-#: ppdc/sample.c:258
msgid "New Stylus Photo Series"
msgstr "Sèrie New Stylus Photo"
-#: cups/ppd.c:1949
msgid "No"
msgstr "No"
-#: cups/http-support.c:1287
msgid "No Content"
msgstr "No hi ha contingut"
-#: cups/util.c:1298
msgid "No PPD name"
msgstr "El PPD no té nom"
-#: cups/snmp.c:1047
msgid "No VarBind SEQUENCE"
msgstr "No hi ha cap SEQUENCE VarBind"
-#: cups/adminutil.c:788
msgid "No Windows printer drivers are installed."
msgstr "No hi ha cap controlador d'impressores de Windows instal·lat."
-#: cups/request.c:566 cups/request.c:908
msgid "No active connection"
msgstr "No hi ha cap connexió activa"
-#: scheduler/ipp.c:3403
#, c-format
msgid "No active jobs on %s."
msgstr "No hi ha cap tasca activa a %s."
-#: scheduler/ipp.c:302
msgid "No attributes in request."
msgstr "No hi ha atributs en demanda."
-#: scheduler/ipp.c:3034
msgid "No authentication information provided."
msgstr "No s'ha donat cap informació d'autenticació."
-#: cups/snmp.c:1004
msgid "No community name"
msgstr "Ho hi na cap nom de comunitat"
-#: scheduler/ipp.c:5919
msgid "No default printer."
msgstr "No hi ha cap impressora per defecte."
-#: cgi-bin/ipp-var.c:436 scheduler/ipp.c:7248
msgid "No destinations added."
msgstr "No s'ha afegit cap destí."
-#: backend/usb.c:200
msgid "No device URI found in argv[0] or in DEVICE_URI environment variable."
msgstr ""
"No s'ha trobat cap URI de dispositiu a argv[0] o a la variable d'entorn "
"DEVICE_URI."
-#: cups/snmp.c:1034
msgid "No error-index"
msgstr "No hi ca cap error-index"
-#: cups/snmp.c:1026
msgid "No error-status"
msgstr "No hi ha cap status-error"
-#: scheduler/ipp.c:8190 scheduler/ipp.c:9436
msgid "No file in print request."
msgstr "No hi ha cap printer-uri a la sol·licitud."
-#: cups/util.c:923
msgid "No modification time"
msgstr "No hi ha hora de modificació"
-#: cups/snmp.c:1051
msgid "No name OID"
msgstr "No hi ha cap nom d'OID"
-#: filter/rastertoepson.c:1147 filter/rastertohp.c:876
-#: filter/rastertolabel.c:1302
msgid "No pages were found."
msgstr "No s'ha trobat cap pàgina."
-#: cups/util.c:917
msgid "No printer name"
msgstr "No hi ha cap nom d'impressora"
-#: cups/util.c:1801
msgid "No printer-uri found"
msgstr "No s'ha trobat cap printer-uri"
-#: cups/util.c:1786
msgid "No printer-uri found for class"
msgstr "No s'ha trobat cap printer-uri per la classe"
-#: scheduler/ipp.c:6322
msgid "No printer-uri in request."
msgstr "No hi ha cap printer-uri a la sol·licitud."
-#: cups/snmp.c:1018
msgid "No request-id"
msgstr "No hi ha cap request-id"
-#: scheduler/ipp.c:5528
msgid "No subscription attributes in request."
msgstr "No hi ha cap atribut de la subscripció a la sol·licitud."
-#: scheduler/ipp.c:7575
msgid "No subscriptions found."
msgstr "No s'ha trobat cap sol·licitud."
-#: cups/snmp.c:1042
msgid "No variable-bindings SEQUENCE"
msgstr "No hi ha cap SEQUENCE variable-bindings"
-#: cups/snmp.c:997
msgid "No version number"
msgstr "No hi ha cap número de versió"
-#: ppdc/sample.c:367
msgid "Non-continuous (Mark sensing)"
msgstr "Discontinu (sensible a les marques)"
-#: ppdc/sample.c:366
msgid "Non-continuous (Web sensing)"
msgstr "Discontinu (Sensible al web)"
-#: ppdc/sample.c:238
msgid "Normal"
msgstr "Normal"
-#: cups/http-support.c:1309
msgid "Not Found"
msgstr "No s'ha trobat"
-#: cups/http-support.c:1321
msgid "Not Implemented"
msgstr "No implementat"
-#: ppdc/sample.c:276
msgid "Not Installed"
msgstr "No està instal·lat"
-#: cups/http-support.c:1296
msgid "Not Modified"
msgstr "No està modificat"
-#: cups/http-support.c:1324
msgid "Not Supported"
msgstr "No és compatible"
-#: scheduler/ipp.c:1518 scheduler/ipp.c:10666
msgid "Not allowed to print."
msgstr "No teniu permís per imprimir."
-#: ppdc/sample.c:146
msgid "Note"
msgstr "Nota"
-#: systemv/cupstestdsc.c:433
msgid ""
"Note: this program only validates the DSC comments, not the PostScript "
"itself."
msgstr ""
"Nota: aquest programa només valida els comentaris DSC, no el PostScript."
-#: cups/http-support.c:1278 cups/ppd.c:338
msgid "OK"
msgstr "D'acord"
-#: ppdc/sample.c:271
msgid "Off (1-Sided)"
msgstr "Inactiu (Una cara)"
-#: ppdc/sample.c:361
msgid "Oki"
msgstr "Oki"
-#: cgi-bin/help.c:91 cgi-bin/help.c:132 cgi-bin/help.c:142 cgi-bin/help.c:172
msgid "Online Help"
msgstr "Ajuda en línia"
-#: cups/adminutil.c:955
#, c-format
msgid "Open of %s failed: %s"
msgstr "No s'ha pogut obrir %s: %s"
-#: cups/ppd.c:346
msgid "OpenGroup without a CloseGroup first"
msgstr "OpenGroup sense un CloseGroup abans"
-#: cups/ppd.c:348
msgid "OpenUI/JCLOpenUI without a CloseUI/JCLCloseUI first"
msgstr "OpenUI/JCLOpenUI sense un CloseUI/JCLCloseUI abans"
-#: cgi-bin/admin.c:3631
msgid "Operation Policy"
msgstr "Política d'operacions"
-#: filter/pstops.c:2205
#, c-format
msgid "Option \"%s\" cannot be included via %%%%IncludeFeature."
msgstr "L'opció «%s» no es pot incloure a través de %%%%IncludeFeature."
-#: cgi-bin/admin.c:3281 cgi-bin/admin.c:3365
msgid "Options Installed"
msgstr "Opcions instal·lades"
-#: scheduler/cupsfilter.c:1430 scheduler/main.c:2018 systemv/cupsaddsmb.c:284
-#: systemv/cupsctl.c:203 systemv/cupstestdsc.c:429 systemv/cupstestppd.c:3797
-#: test/ipptool.c:4403 ppdc/ppdc.cxx:437 ppdc/ppdhtml.cxx:174
-#: ppdc/ppdi.cxx:130 ppdc/ppdmerge.cxx:369 ppdc/ppdpo.cxx:254
msgid "Options:"
msgstr "Opcions:"
-#: cups/ppd-cache.c:156
msgid "Out of date PPD cache file."
msgstr "El fitxer de memòria cau del PPD no està actualitzat."
-#: cups/ppd-cache.c:1381
msgid "Out of memory."
msgstr "Sense memòria."
-#: cups/ppd.c:795 cups/ppd.c:1363
msgid "Output Mode"
msgstr "Mode de sortida"
-#: systemv/lpstat.c:1191 systemv/lpstat.c:1195
#, c-format
msgid "Output for printer %s is sent to %s"
msgstr "La sortida de la impressora %s s'envia a %s"
-#: systemv/lpstat.c:1185
#, c-format
msgid "Output for printer %s is sent to remote printer %s on %s"
msgstr "La sortida de la impressora %s s'envia a la impressora remota %s a %s"
-#: systemv/lpstat.c:1209 systemv/lpstat.c:1213
#, c-format
msgid "Output for printer %s/%s is sent to %s"
msgstr "La sortida per la impressora %s/%s s'envia a la impressora %s"
-#: systemv/lpstat.c:1203
#, c-format
msgid "Output for printer %s/%s is sent to remote printer %s on %s"
msgstr ""
"La sortida per la impressora %s/%s s'envia a la impressora remota %s a %s"
-#: systemv/cupstestdsc.c:399
msgid "PASS"
msgstr "VÀLID"
-#: ppdc/sample.c:260
msgid "PCL Laser Printer"
msgstr "Impressora làser PCL"
-#: ppdc/sample.c:149
msgid "PRC16K"
msgstr "PRC16K"
-#: ppdc/sample.c:150
msgid "PRC16K Long Edge"
msgstr "PRC16K costat llarg"
-#: ppdc/sample.c:151
msgid "PRC32K"
msgstr "PRC32K"
-#: ppdc/sample.c:154
msgid "PRC32K Long Edge"
msgstr "PRC32K costat llarg"
-#: ppdc/sample.c:152
msgid "PRC32K Oversize"
msgstr "PRC32K gran"
-#: ppdc/sample.c:153
msgid "PRC32K Oversize Long Edge"
msgstr "PRC32K gran costat llarg"
-#: cups/snmp.c:1014
msgid "Packet does not contain a Get-Response-PDU"
msgstr "El paquet no conté cap Get-Response-PDU"
-#: cups/snmp.c:993
msgid "Packet does not start with SEQUENCE"
msgstr "El paquet no comença amb SEQUENCE"
-#: ppdc/sample.c:360
msgid "ParamCustominCutInterval"
msgstr "ParamCustominCutInterval"
-#: ppdc/sample.c:358
msgid "ParamCustominTearInterval"
msgstr "ParamCustominTearInterval"
-#: cups/auth.c:199 cups/auth.c:367
#, c-format
msgid "Password for %s on %s? "
msgstr "Contrasenya per %s a %s? "
-#: systemv/cupsaddsmb.c:252
#, c-format
msgid "Password for %s required to access %s via SAMBA: "
msgstr "Es necessita la contrasenya de %s per accedir a %s a través de SAMBA: "
-#: cgi-bin/classes.c:167
msgid "Pause Class"
msgstr "Posa la classe en pausa"
-#: cgi-bin/printers.c:170
msgid "Pause Printer"
msgstr "Posa la impressora en pausa"
-#: ppdc/sample.c:448
msgid "Peel-Off"
msgstr "Desenganxar"
-#: ppdc/sample.c:160
msgid "Photo"
msgstr "Fotografia"
-#: ppdc/sample.c:161
msgid "Photo Labels"
msgstr "Etiquetes de fotografia"
-#: ppdc/sample.c:286
msgid "Plain Paper"
msgstr "Paper normal"
-#: cgi-bin/admin.c:3299 cgi-bin/admin.c:3580
msgid "Policies"
msgstr "Polítiques"
-#: cgi-bin/admin.c:3306 cgi-bin/admin.c:3649 cgi-bin/admin.c:3662
msgid "Port Monitor"
msgstr "Seguiment del port"
-#: ppdc/sample.c:278
msgid "PostScript Printer"
msgstr "Impressora PostScript"
-#: ppdc/sample.c:147
msgid "Postcard"
msgstr "Postal"
-#: ppdc/sample.c:71
msgid "Postcard Double "
msgstr "Postal doble"
-#: ppdc/sample.c:72
msgid "Postcard Double Long Edge"
msgstr "Postal doble costat llarg"
-#: ppdc/sample.c:148
msgid "Postcard Long Edge"
msgstr "Postal costat llarg"
-#: ppdc/sample.c:295
+msgid "Preparing to print."
+msgstr ""
+
msgid "Print Density"
msgstr "Densitat de la impressió"
-#: cups/notify.c:82
msgid "Print Job:"
msgstr "Tasca d'impressió:"
-#: ppdc/sample.c:340
msgid "Print Mode"
msgstr "Mode d'impressió"
-#: ppdc/sample.c:383
msgid "Print Rate"
msgstr "Ritme d'impressió"
-#: cgi-bin/printers.c:179
msgid "Print Self-Test Page"
msgstr "Imprimeix la pàgina de prova pròpia"
-#: ppdc/sample.c:327
msgid "Print Speed"
msgstr "Velocitat d'impressió"
-#: cgi-bin/ipp-var.c:792
msgid "Print Test Page"
msgstr "Imprimeix una pàgina de prova"
-#: ppdc/sample.c:356
msgid "Print and Cut"
msgstr "Imprimeix i talla"
-#: ppdc/sample.c:344
msgid "Print and Tear"
msgstr "Imprimeix i estripa"
-#: backend/ipp.c:1537
-#, c-format
-msgid "Print file accepted - job ID %d."
-msgstr "S'ha acceptat el fitxer d'impressió - ID de la tasca %d."
-
-#: backend/ipp.c:1527
-msgid "Print file accepted - job ID unknown."
-msgstr "S'ha acceptat el fitxer d'impressió - l'ID de la tasca és desconegut."
-
-#: backend/socket.c:424 backend/usb-unix.c:191
msgid "Print file sent."
msgstr "S'ha enviat el fitxer d'impressió."
-#: backend/ipp.c:1488
-msgid "Print file was not accepted."
-msgstr "No s'ha acceptat el fitxer d'impressió."
-
-#: backend/ipp.c:1895
msgid "Print job canceled at printer."
msgstr "S'ha cancel·lat la tasca a la impressora."
-#: backend/ipp.c:1890
msgid "Print job too large."
msgstr "La tasca d'impressió és massa llarga."
-#: cgi-bin/ipp-var.c:1047
+msgid "Print job was not accepted."
+msgstr ""
+
msgid "Printer Added"
msgstr "S'ha afegit una impressora"
-#: ppdc/sample.c:263
msgid "Printer Default"
msgstr "Impressora per defecte"
-#: cgi-bin/ipp-var.c:1051
msgid "Printer Deleted"
msgstr "S'ha eliminat la impressora"
-#: cgi-bin/ipp-var.c:1049
msgid "Printer Modified"
msgstr "S'ha modificat la impressora"
-#: cgi-bin/ipp-var.c:1045
msgid "Printer Paused"
msgstr "S'ha posat la impressora en pausa"
-#: ppdc/sample.c:294
msgid "Printer Settings"
msgstr "Configuració de la impressora"
-#: backend/ipp.c:1893
msgid "Printer cannot print supplied content."
msgstr "La impressora no pot imprimir el contingut subministrat."
-#: cups/notify.c:126
msgid "Printer:"
msgstr "Impressora:"
-#: cgi-bin/printers.c:204 cgi-bin/printers.c:332
msgid "Printers"
msgstr "Impressores"
-#: filter/rastertoepson.c:1093 filter/rastertohp.c:817
-#: filter/rastertolabel.c:1249
#, c-format
msgid "Printing page %d, %d%% complete."
msgstr "S'està imprimint la pàgina %d. S'ha completat el %d%%."
-#: cgi-bin/classes.c:173 cgi-bin/printers.c:176
msgid "Purge Jobs"
msgstr "Purga les tasques"
-#: ppdc/sample.c:155
msgid "Quarto"
msgstr "Quart"
-#: scheduler/ipp.c:1513 scheduler/ipp.c:10661
msgid "Quota limit reached."
msgstr "S'ha assolit el límit de la quota."
-#: berkeley/lpq.c:515
msgid "Rank Owner Job File(s) Total Size"
msgstr ""
"Rang Propietari Tasca Fitxer(s) Mida total"
#. TRANSLATORS: Pri is job priority.
-#: berkeley/lpq.c:511
msgid ""
"Rank Owner Pri Job Files Total Size"
msgstr ""
"Rang Propietari Pri Tasca Fitxers Mida "
"total"
-#: cgi-bin/classes.c:171 cgi-bin/printers.c:174
msgid "Reject Jobs"
msgstr "Rebutja tasques"
-#: backend/lpd.c:1016 backend/lpd.c:1148
#, c-format
msgid "Remote host did not accept control file (%d)."
msgstr "L'amfitrió remot no accepta el fitxer de control (%d)."
-#: backend/lpd.c:1101
#, c-format
msgid "Remote host did not accept data file (%d)."
msgstr "L'amfitrió remot no accepta el fitxer de dades (%d)."
-#: ppdc/sample.c:428
msgid "Reprint After Error"
msgstr "Torna a imprimir després d'un error"
-#: cups/http-support.c:1312
msgid "Request Entity Too Large"
msgstr "Entitat de petició massa gran"
-#: cups/ppd.c:797 cups/ppd.c:1365 ppdc/sample.c:231
msgid "Resolution"
msgstr "Resolució"
-#: cgi-bin/classes.c:165
msgid "Resume Class"
msgstr "Reprèn la classe"
-#: cgi-bin/printers.c:167
msgid "Resume Printer"
msgstr "Reprèn la impressora"
-#: ppdc/sample.c:165
msgid "Return Address"
msgstr "Remitent"
-#: ppdc/sample.c:449
msgid "Rewind"
msgstr "Rebobina"
-#: cups/adminutil.c:2052
#, c-format
msgid "Running command: %s %s -N -A %s -c '%s'"
msgstr "S'està executant l'ordre: %s %s -N -A %s -c «%s»"
-#: cups/snmp.c:995
msgid "SEQUENCE uses indefinite length"
msgstr "SEQUENCE té una longitud indefinida"
-#: cups/http-support.c:1336
msgid "SSL/TLS Negotiation Error"
msgstr "S'ha produït un error mentre es negociava el SSL/TLS"
-#: cups/http-support.c:1293
msgid "See Other"
msgstr "Vegeu altres"
-#: backend/usb-darwin.c:543 backend/usb-libusb.c:273
msgid "Sending data to printer."
msgstr "S'envien les dades a la impressora."
-#: cgi-bin/ipp-var.c:1061
msgid "Server Restarted"
msgstr "S'ha reiniciat el servidor"
-#: cgi-bin/ipp-var.c:1067
msgid "Server Security Auditing"
msgstr "S'està auditant la seguretat del servidor"
-#: cgi-bin/ipp-var.c:1063
msgid "Server Started"
msgstr "S'ha iniciat el servidor"
-#: cgi-bin/ipp-var.c:1065
msgid "Server Stopped"
msgstr "S'ha aturat el servidor"
-#: cups/http-support.c:1330
msgid "Service Unavailable"
msgstr "El servei no està disponible"
-#: cgi-bin/admin.c:2786 cgi-bin/admin.c:2832 cgi-bin/admin.c:2989
-#: cgi-bin/admin.c:3008
msgid "Set Allowed Users"
msgstr "Definir els permisos dels usuaris"
-#: cgi-bin/admin.c:3035
msgid "Set As Server Default"
msgstr "Establir com a servidor per defecte"
-#: cgi-bin/admin.c:3135
msgid "Set Class Options"
msgstr "Definir les opcions de la classe"
-#: cgi-bin/admin.c:3135 cgi-bin/admin.c:3309 cgi-bin/admin.c:3691
msgid "Set Printer Options"
msgstr "Definir les opcions de la impressora"
-#: cgi-bin/admin.c:3861 cgi-bin/admin.c:3905 cgi-bin/admin.c:3923
msgid "Set Publishing"
msgstr "Establir com a pública"
-#: ppdc/sample.c:166
msgid "Shipping Address"
msgstr "Adreça de lliurament"
-#: ppdc/sample.c:273
msgid "Short-Edge (Landscape)"
msgstr "Costat curt (horitzontal)"
-#: ppdc/sample.c:288
msgid "Special Paper"
msgstr "Paper especial"
-#: backend/lpd.c:1057
#, c-format
msgid "Spooling job, %.0f%% complete."
msgstr "S'està posant a la cua la tasca. S'ha completat el %.0f%%."
-#: ppdc/sample.c:341
msgid "Standard"
msgstr "Estàndard"
#. TRANSLATORS: Banner/cover sheet before the print job.
-#: cgi-bin/admin.c:3552
msgid "Starting Banner"
msgstr "Bàner inicial"
-#: filter/rastertoepson.c:1069 filter/rastertohp.c:793
-#: filter/rastertolabel.c:1225
#, c-format
msgid "Starting page %d."
msgstr "S'està començant la pàgina %d."
-#: ppdc/sample.c:156
msgid "Statement"
msgstr "Declaració"
-#: ppdc/sample.c:251
msgid "Stylus Color Series"
msgstr "Sèrie Stylus Color"
-#: ppdc/sample.c:257
msgid "Stylus Photo Series"
msgstr "Sèrie Stylus Photo"
-#: scheduler/ipp.c:3549 scheduler/ipp.c:6689 scheduler/ipp.c:7388
-#: scheduler/ipp.c:8887
#, c-format
msgid "Subscription #%d does not exist."
msgstr "La subscripció #%d no existeix."
-#: ppdc/sample.c:157
msgid "Super A"
msgstr "Super A"
-#: ppdc/sample.c:158
msgid "Super B"
msgstr "Super B"
-#: ppdc/sample.c:162
msgid "Super B/A3"
msgstr "Super B/A3"
-#: cups/http-support.c:1275
msgid "Switching Protocols"
msgstr "Intercanviar els protocols"
-#: ppdc/sample.c:159
msgid "Tabloid"
msgstr "Tabloide"
-#: ppdc/sample.c:45
msgid "Tabloid Oversize"
msgstr "Tabloide gran"
-#: ppdc/sample.c:46
msgid "Tabloid Oversize Long Edge"
msgstr "Tabloide gran costat llarg"
-#: ppdc/sample.c:342
msgid "Tear"
msgstr "Estripar"
-#: ppdc/sample.c:447
msgid "Tear-Off"
msgstr "Estripar"
-#: ppdc/sample.c:388
msgid "Tear-Off Adjust Position"
msgstr "Posició d'ajust d'estripat"
-#: scheduler/ipp.c:6393 scheduler/ipp.c:6471 scheduler/ipp.c:6487
-#: scheduler/ipp.c:6505
+#, c-format
+msgid "The \"%s\" attribute is required for print jobs."
+msgstr ""
+
#, c-format
msgid "The %s attribute cannot be provided with job-ids."
msgstr "No es pot fer servir l'atribut %s amb les job-ids."
-#: scheduler/ipp.c:5118
+#, c-format
+msgid ""
+"The '%s' Job Description attribute cannot be supplied in a job creation "
+"request."
+msgstr ""
+
#, c-format
msgid ""
"The '%s' operation attribute cannot be supplied in a Create-Job request."
@@ -4967,22 +3824,17 @@ msgstr ""
"L'atribut d'operació «%s» no es pot subministrar en una petició de Create-"
"Job."
-#: scheduler/ipp.c:6919
#, c-format
msgid "The PPD file \"%s\" could not be found."
msgstr "No s'ha pogut trobar el fitxer PPD «%s»."
-#: scheduler/ipp.c:6906
#, c-format
msgid "The PPD file \"%s\" could not be opened: %s"
msgstr "No s'ha pogut obrir el fitxer PPD «%s»: %s"
-#: filter/rastertoepson.c:1038 filter/rastertohp.c:764
-#: filter/rastertolabel.c:1189
msgid "The PPD file could not be opened."
msgstr "No s'ha pogut obrir el fitxer PPD."
-#: cgi-bin/admin.c:749
msgid ""
"The class name may only contain up to 127 printable characters and may not "
"contain spaces, slashes (/), or the pound sign (#)."
@@ -4990,137 +3842,99 @@ msgstr ""
"El nom de la classe només pot tenir fins a 127 caràcters imprimibles i no "
"pot contenir espais, barres (/) o el símbol coixinet (#)."
-#: cups/localize.c:353
msgid "The developer unit needs to be replaced."
msgstr "S'ha de canviar la unitat de desenvolupament."
-#: cups/localize.c:351
msgid "The developer unit will need to be replaced soon."
msgstr "La unitat de desenvolupament s'haurà de canviar aviat."
-#: cups/localize.c:343
msgid "The fuser's temperature is high."
msgstr "La temperatura del fusor és alta."
-#: cups/localize.c:345
msgid "The fuser's temperature is low."
msgstr "La temperatura del fusor és baixa."
-#: scheduler/ipp.c:2097
msgid ""
"The notify-lease-duration attribute cannot be used with job subscriptions."
msgstr ""
"No es pot fer servir l'atribut notify-lease-duration amb les subscripcions a "
"tasques."
-#: scheduler/ipp.c:2080 scheduler/ipp.c:5653
#, c-format
msgid "The notify-user-data value is too large (%d > 63 octets)."
msgstr "El valor de notify-user-data és massa llarg (%d > 63 octets)."
-#: cups/localize.c:349
msgid "The optical photoconductor needs to be replaced."
msgstr "S'ha de canviar el fotoconductor òptic."
-#: cups/localize.c:347
msgid "The optical photoconductor will need to be replaced soon."
msgstr "El fotoconductor òptic s'haurà de canviar aviat."
-#: cups/localize.c:331
msgid "The output bin is almost full."
msgstr "La safata de sortida és gairebé plena."
-#: cups/localize.c:333
msgid "The output bin is full."
msgstr "La safata de sortida és plena."
-#: cups/localize.c:329
msgid "The output bin is missing."
msgstr "Falta la safata de sortida."
-#: cups/localize.c:325
msgid "The paper tray is almost empty."
msgstr "La safata de paper és gairebé buida."
-#: cups/localize.c:327
msgid "The paper tray is empty."
msgstr "La safata de paper és buida."
-#: cups/localize.c:323
msgid "The paper tray is missing."
msgstr "Falta la safata de paper."
-#: cups/localize.c:306
msgid "The paper tray needs to be filled."
msgstr "S'ha d'omplir la safata de paper."
-#: backend/ipp.c:909
-msgid "The printer URI is incorrect or no longer exists."
-msgstr "L'URI de la impressora no és correcte o ja no existeix."
+msgid "The printer configuration is incorrect or the printer no longer exists."
+msgstr ""
-#: backend/lpd.c:619 backend/lpd.c:1009 backend/lpd.c:1091 backend/lpd.c:1141
msgid "The printer did not respond."
msgstr "La impressora no ha respost."
-#: backend/ipp.c:892 backend/ipp.c:899
-#, c-format
-msgid "The printer does not support IPP/%d.%d, trying IPP/%s."
-msgstr "La impressora no admet el IPP/%d.%d, s'està intentant el IPP/%s."
-
-#: backend/ipp.c:757 backend/ipp.c:874 backend/ipp.c:980 backend/ipp.c:1313
-#: backend/ipp.c:1464 backend/lpd.c:828 backend/socket.c:374
-#: backend/usb-unix.c:131 backend/usb-unix.c:424 backend/usb-unix.c:507
msgid "The printer is in use."
msgstr "La impressora està ocupada."
-#: backend/runloop.c:254 backend/runloop.c:374 cups/localize.c:311
msgid "The printer is not connected."
msgstr "La impressora no està connectada."
-#: backend/ipp.c:735 backend/ipp.c:768 backend/ipp.c:870 backend/lpd.c:807
-#: backend/lpd.c:848 backend/socket.c:353 backend/socket.c:386
msgid "The printer is not responding."
msgstr "La impressora no respòn."
-#: backend/runloop.c:396
msgid "The printer is now connected."
msgstr "Ara la impressora està connectada."
-#: backend/usb-darwin.c:1286
msgid "The printer is now online."
msgstr "Ara la impressora està en línia."
-#: backend/usb-darwin.c:1307
msgid "The printer is offline."
msgstr "La impressora està fora de línia."
-#: cups/localize.c:335
msgid "The printer is running low on ink."
msgstr "S'està acabant la tinta de la impressora."
-#: cups/localize.c:313
msgid "The printer is running low on toner."
msgstr "S'està acabant el tòner de la impressora."
-#: backend/ipp.c:750 backend/lpd.c:821 backend/socket.c:367
msgid "The printer is unreachable at this time."
msgstr "Ara mateix no es pot accedir a la impressora."
-#: cups/localize.c:337
msgid "The printer may be out of ink."
msgstr "Es deu haver acabat la tinta de la impressora."
-#: cups/localize.c:315
msgid "The printer may be out of toner."
msgstr "Es deu haver acabat el tòner de la impressora."
-#: backend/ipp.c:744 backend/lpd.c:815 backend/socket.c:361
msgid "The printer may not exist or is unavailable at this time."
msgstr ""
"Pot ser que la impressora no existeixi o que ara mateix no estigui "
"accessible."
-#: cgi-bin/admin.c:931
msgid ""
"The printer name may only contain up to 127 printable characters and may not "
"contain spaces, slashes (/), or the pound sign (#)."
@@ -5128,64 +3942,45 @@ msgstr ""
"El nom de la impressora només pot tenir fins a 127 caràcters imprimibles i "
"no pot contenir espais, barres (/) o el símbol coixinet (#)."
-#: scheduler/ipp.c:876 scheduler/ipp.c:1136 scheduler/ipp.c:3198
-#: scheduler/ipp.c:3369 scheduler/ipp.c:5101 scheduler/ipp.c:5487
-#: scheduler/ipp.c:5801 scheduler/ipp.c:6359 scheduler/ipp.c:7124
-#: scheduler/ipp.c:7180 scheduler/ipp.c:7494 scheduler/ipp.c:7760
-#: scheduler/ipp.c:7849 scheduler/ipp.c:7882 scheduler/ipp.c:8205
-#: scheduler/ipp.c:8598 scheduler/ipp.c:8679 scheduler/ipp.c:9840
-#: scheduler/ipp.c:10294 scheduler/ipp.c:10624 scheduler/ipp.c:10706
-#: scheduler/ipp.c:10998
msgid "The printer or class does not exist."
msgstr "La impressora o la classe no existeix."
-#: scheduler/ipp.c:1304
msgid "The printer or class is not shared."
msgstr "La impressora o la classe no estan compartides."
-#: cups/localize.c:317
msgid "The printer's cover is open."
msgstr "La tapa de la impressora està oberta."
-#: cups/localize.c:321
msgid "The printer's door is open."
msgstr "La porta de la impressora està oberta."
-#: cups/localize.c:319
msgid "The printer's interlock is open."
msgstr "L'enclavament de seguretat de la impressora està obert."
-#: cups/localize.c:339
msgid "The printer's waste bin is almost full."
msgstr "El dipòsit de residus és gairebé ple."
-#: cups/localize.c:341
msgid "The printer's waste bin is full."
msgstr "El dipòsit de residus és ple."
-#: scheduler/ipp.c:982 scheduler/ipp.c:2261
#, c-format
msgid "The printer-uri \"%s\" contains invalid characters."
msgstr "El printer-uri «%s» conté caràcters no vàlids."
-#: scheduler/ipp.c:3175
msgid "The printer-uri attribute is required."
msgstr "L'atribut printer-uri és obligatori."
-#: scheduler/ipp.c:966
msgid ""
"The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
msgstr ""
"El printer-uri ha de tenir la forma «ipp://NOMAMFITRIÓ/classes/NOMCLASSE»."
-#: scheduler/ipp.c:2245
msgid ""
"The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
msgstr ""
"El printer-uri ha de tenir la forma «ipp://NOMAMFITRIÓ/printers/"
"NOMIMPRESSORA»."
-#: cgi-bin/admin.c:474
msgid ""
"The subscription name may not contain spaces, slashes (/), question marks "
"(?), or the pound sign (#)."
@@ -5193,7 +3988,6 @@ msgstr ""
"La subscripció no pot contenir espais, barres (/), interrogacions (?), o el "
"símbol coixinet (#)."
-#: scheduler/client.c:2450
msgid ""
"The web interface is currently disabled. Run \"cupsctl WebInterface=yes\" to "
"enable it."
@@ -5201,279 +3995,216 @@ msgstr ""
"La interfície web està deshabilitada. Executeu «cupsctl WebInterface=yes» "
"per habilitar-la."
-#: scheduler/ipp.c:6454
#, c-format
msgid "The which-jobs value \"%s\" is not supported."
msgstr "El valor «%s» de which-jobs no està implementat."
-#: scheduler/ipp.c:5731
msgid "There are too many subscriptions."
msgstr "Hi ha massa subscripcions."
-#: cups/localize.c:308
msgid "There is a paper jam."
msgstr "S'ha encallat el paper."
-#: backend/usb-darwin.c:379 backend/usb-darwin.c:438 backend/usb-darwin.c:505
-#: backend/usb-darwin.c:526 backend/usb-libusb.c:235 backend/usb-libusb.c:256
msgid "There was an unrecoverable USB error."
msgstr "Hi ha un error de l'USB irrecuperable."
-#: ppdc/sample.c:435
msgid "Thermal Transfer Media"
msgstr "Mitjà de transferència tèrmica"
-#: scheduler/ipp.c:1507
msgid "Too many active jobs."
msgstr "Hi ha massa tasques actives."
-#: scheduler/ipp.c:1401
#, c-format
msgid "Too many job-sheets values (%d > 2)."
msgstr "Hi ha massa valors de job-sheets (%d > 2)."
-#: scheduler/ipp.c:2529
#, c-format
msgid "Too many printer-state-reasons values (%d > %d)."
msgstr "Hi ha massa valors de printer-state-reasons (%d > %d)."
-#: ppdc/sample.c:289
msgid "Transparency"
msgstr "Transparència"
-#: ppdc/sample.c:284
msgid "Tray"
msgstr "Safata"
-#: ppdc/sample.c:264
msgid "Tray 1"
msgstr "Safata 1"
-#: ppdc/sample.c:265
msgid "Tray 2"
msgstr "Safata 2"
-#: ppdc/sample.c:266
msgid "Tray 3"
msgstr "Safata 3"
-#: ppdc/sample.c:267
msgid "Tray 4"
msgstr "Safata 4"
-#: cups/http-support.c:1315
msgid "URI Too Long"
msgstr "L'URI és massa llarg"
-#: ppdc/sample.c:138
msgid "US Ledger"
msgstr "Llibre major americà"
-#: ppdc/sample.c:139
msgid "US Legal"
msgstr "Legal americà"
-#: ppdc/sample.c:140
msgid "US Legal Oversize"
msgstr "Legal americà gran"
-#: ppdc/sample.c:141
msgid "US Letter"
msgstr "Carta americà"
-#: ppdc/sample.c:142
msgid "US Letter Long Edge"
msgstr "Carta americà costat llarg"
-#: ppdc/sample.c:143
msgid "US Letter Oversize"
msgstr "Carta americà gran"
-#: ppdc/sample.c:144
msgid "US Letter Oversize Long Edge"
msgstr "Carta americà gran costat llarg"
-#: ppdc/sample.c:145
msgid "US Letter Small"
msgstr "Carta americà petit"
-#: cgi-bin/admin.c:1959 cgi-bin/admin.c:1972 cgi-bin/admin.c:1996
msgid "Unable to access cupsd.conf file"
msgstr "No es pot accedir al fitxer cups.conf"
-#: cgi-bin/help.c:133
msgid "Unable to access help file."
msgstr "No es pot accedir al fitxer d'ajuda."
-#: cgi-bin/admin.c:526
msgid "Unable to add RSS subscription"
msgstr "No es pot afegir la subscripció RSS"
-#: cgi-bin/admin.c:814
msgid "Unable to add class"
msgstr "No es pot afegir la classe"
-#: backend/ipp.c:1635
msgid "Unable to add document to print job."
msgstr "No es pot obrir el documenta la tasca."
-#: scheduler/ipp.c:1548
#, c-format
msgid "Unable to add job for destination \"%s\"."
msgstr "No es pot afegir la tasca al destí «%s»."
-#: cgi-bin/admin.c:1059 cgi-bin/admin.c:1419
msgid "Unable to add printer"
msgstr "No es pot afegir la impressora"
-#: scheduler/ipp.c:1246
msgid "Unable to allocate memory for file types."
msgstr "No es pot assignar la memòria pels tipus de fitxers."
-#: filter/pstops.c:451
msgid "Unable to allocate memory for page info"
msgstr "No s'ha pogut assignar memòria per la pàgina d'informació"
-#: filter/pstops.c:445
msgid "Unable to allocate memory for pages array"
msgstr "No s'ha pogut assignar memòria per la matriu de pàgines"
-#: cgi-bin/admin.c:1525
msgid "Unable to cancel RSS subscription"
msgstr "No es pot cancel·lar la subscripció RSS"
-#: backend/ipp.c:1942
msgid "Unable to cancel print job."
msgstr "No es pot cancel·lar la tasca d'impressió."
-#: cgi-bin/admin.c:2990
msgid "Unable to change printer"
msgstr "No es pot canviar la impressora"
-#: cgi-bin/admin.c:3906
msgid "Unable to change printer-is-shared attribute"
msgstr "No es pot canviar l'atribut printer-is-shared"
-#: cgi-bin/admin.c:1657 cgi-bin/admin.c:1799
msgid "Unable to change server settings"
msgstr "No es pot canviar la configuració del servidor"
-#: filter/commandtops.c:420
msgid "Unable to configure printer options."
msgstr "No es poden configurar les opcions de la impressora."
-#: cups/adminutil.c:911 cups/request.c:1016
msgid "Unable to connect to host."
msgstr "No es pot connectar a l'ordinador central."
-#: backend/ipp.c:713 backend/ipp.c:1138 backend/lpd.c:787 backend/socket.c:333
-#: backend/usb-unix.c:117
msgid "Unable to contact printer, queuing on next printer in class."
msgstr ""
"No es pot contactar amb la impressora. Es posa a la cua de la següent "
"impressora de la classe."
-#: cups/adminutil.c:726
#, c-format
msgid "Unable to copy 64-bit CUPS printer driver files (%d)."
msgstr ""
"No es poden copiar els fitxers del controlador d'impressora CUPS de 64 bits "
"(%d)."
-#: cups/adminutil.c:691
#, c-format
msgid "Unable to copy 64-bit Windows printer driver files (%d)."
msgstr ""
"No es poden copiar els fitxers del controlador d'impressora Windows de 64 "
"bits (%d)."
-#: cups/adminutil.c:522
#, c-format
msgid "Unable to copy CUPS printer driver files (%d)."
msgstr "No es poden copiar els fitxers del controlador d'impressora CUPS (%d)."
-#: scheduler/ipp.c:2649
#, c-format
msgid "Unable to copy PPD file - %s"
msgstr "No es pot copiar el fitxer PPD - %s"
-#: scheduler/ipp.c:2704
msgid "Unable to copy PPD file."
msgstr "No es pot copiar el fitxer PPD."
-#: cups/adminutil.c:487
#, c-format
msgid "Unable to copy Windows 2000 printer driver files (%d)."
msgstr ""
"No es poden copiar els fitxers del controlador d'impressora Windows 2000 "
"(%d)."
-#: cups/adminutil.c:610
#, c-format
msgid "Unable to copy Windows 9x printer driver files (%d)."
msgstr ""
"No es poden copiar els fitxers del controlador d'impressora Windows 9x (%d)."
-#: scheduler/ipp.c:2626
#, c-format
msgid "Unable to copy interface script - %s"
msgstr "No es pot copiar l'script de la interfície - %s"
-#: backend/ipp.c:2034
msgid "Unable to create compressed print file"
msgstr "No es pot crear el fitxer d'impressió comprimit"
-#: cups/util.c:602 cups/util.c:1656
msgid "Unable to create printer-uri"
msgstr "No es pot crear el printer-uri"
-#: cgi-bin/admin.c:1850 cgi-bin/admin.c:1862 scheduler/cupsfilter.c:1236
msgid "Unable to create temporary file"
msgstr "No es pot crear el fitxer temporal"
-#: cgi-bin/admin.c:2153
msgid "Unable to delete class"
msgstr "No es pot esborrar la classe"
-#: cgi-bin/admin.c:2238
msgid "Unable to delete printer"
msgstr "No es pot esborrar la impressora"
-#: cgi-bin/classes.c:260 cgi-bin/printers.c:269
msgid "Unable to do maintenance command"
msgstr "No es pot executar la comanda de manteniment"
-#: cgi-bin/admin.c:1974
msgid "Unable to edit cupsd.conf files larger than 1MB"
msgstr "No es poden editar fitxers cupsd.conf més grans d'1MB"
-#: cups/http.c:4272
msgid ""
"Unable to establish a secure connection to host (certificate chain invalid)."
msgstr ""
"No s'ha pogut establir una connexió segura amb l'amfitrió (la cadena del "
"certificat no és vàlida)."
-#: cups/http.c:4262
msgid ""
"Unable to establish a secure connection to host (certificate not yet valid)."
msgstr ""
"No s'ha pogut establir una connexió segura amb l'amfitrió (el certificat "
"encara no és vàlid)."
-#: cups/http.c:4257
msgid "Unable to establish a secure connection to host (expired certificate)."
msgstr ""
"No s'ha pogut establir una connexió segura amb l'amfitrió (ha expirat el "
"certificat)."
-#: cups/http.c:4267
msgid "Unable to establish a secure connection to host (host name mismatch)."
msgstr ""
"No s'ha pogut establir una connexió segura amb l'amfitrió (hi ha un error en "
"el nom de l'amfitrió)."
-#: cups/http.c:4277
msgid ""
"Unable to establish a secure connection to host (peer dropped connection "
"before responding)."
@@ -5481,345 +4212,276 @@ msgstr ""
"No s'ha pogut establir una connexió segura amb l'amfitrió (s'ha tallat la "
"connexió abans de respondre)."
-#: cups/http.c:4252
msgid ""
"Unable to establish a secure connection to host (self-signed certificate)."
msgstr ""
"No s'ha pogut establir una connexió segura amb l'amfitrió (el certificat és "
"autosignat)."
-#: cups/http.c:4247
msgid ""
"Unable to establish a secure connection to host (untrusted certificate)."
msgstr ""
"No s'ha pogut establir una connexió segura amb l'amfitrió (el certificat no "
"és de confiança)."
-#: cups/http.c:4008 cups/http.c:4304 cups/http.c:4337 cups/http.c:4354
msgid "Unable to establish a secure connection to host."
msgstr "No es pot establir una connexió segura amb l'ordinador central."
-#: cgi-bin/ipp-var.c:365
msgid "Unable to find destination for job"
msgstr "No es pot trobar el destí de la tasca"
-#: cups/http-support.c:1748
msgid "Unable to find printer."
msgstr "No es pot trobar la impressora."
-#: backend/ipp.c:2056
msgid "Unable to generate compressed print file"
msgstr "No es pot generar el fitxer d'impressió comprimit"
-#: backend/ipp.c:3009
msgid "Unable to get backend exit status."
msgstr "No es pot obtenir el motiu de la sortida en segon pla"
-#: cgi-bin/classes.c:450
msgid "Unable to get class list"
msgstr "No es pot obtenir la llista de classes"
-#: cgi-bin/classes.c:549
msgid "Unable to get class status"
msgstr "No es pot obtenir l'estat de la classe"
-#: cgi-bin/admin.c:1320
msgid "Unable to get list of printer drivers"
msgstr "No es pot obtenir la llista dels controladors d'impressora"
-#: cgi-bin/admin.c:2840
msgid "Unable to get printer attributes"
msgstr "No es poden obtenir els atributs de la impressora"
-#: cgi-bin/printers.c:467
msgid "Unable to get printer list"
msgstr "No es pot obtenir la llista d'impressores"
-#: cgi-bin/printers.c:569
msgid "Unable to get printer status"
msgstr "No es pot obtenir l'estat de la impressora"
-#: backend/ipp.c:933
msgid "Unable to get printer status."
msgstr "No es pot obtenir l'estat de la impressora."
-#: cups/adminutil.c:565 cups/adminutil.c:769
#, c-format
msgid "Unable to install Windows 2000 printer driver files (%d)."
msgstr ""
"No es poden instal·lar els fitxers del controlador d'impressores per Windows "
"2000 (%d)."
-#: cups/adminutil.c:639
#, c-format
msgid "Unable to install Windows 9x printer driver files (%d)."
msgstr ""
"No es poden instal·lar els fitxers del controlador d'impressores per Windows "
"9x (%d)."
-#: cgi-bin/help.c:92
msgid "Unable to load help index."
msgstr "No es pot carregar l'índex de l'ajuda."
-#: backend/ipp.c:642 backend/lpd.c:421 backend/socket.c:275
#, c-format
msgid "Unable to locate printer \"%s\"."
msgstr "No es pot ubicar la impressora «%s»."
-#: backend/dnssd.c:781 backend/ipp.c:324 backend/lpd.c:204
-#: backend/socket.c:171
msgid "Unable to locate printer."
msgstr "No es pot ubicar la impressora."
-#: cgi-bin/admin.c:813
msgid "Unable to modify class"
msgstr "No es pot modificar la classe"
-#: cgi-bin/admin.c:1058 cgi-bin/admin.c:1418
msgid "Unable to modify printer"
msgstr "No es pot modificar la impressora"
-#: cgi-bin/ipp-var.c:432 cgi-bin/ipp-var.c:521
msgid "Unable to move job"
msgstr "No es pot moure la tasca"
-#: cgi-bin/ipp-var.c:434 cgi-bin/ipp-var.c:523
msgid "Unable to move jobs"
msgstr "No es poden moure les tasques"
-#: cgi-bin/admin.c:3186 cups/ppd.c:339
msgid "Unable to open PPD file"
msgstr "No es pot obrir el fitxer PPD"
-#: backend/ipp.c:2040
msgid "Unable to open compressed print file"
msgstr "No es pot obrir el fitxer d'impressió comprimit"
-#: cgi-bin/admin.c:2608
msgid "Unable to open cupsd.conf file:"
msgstr "No es pot obrir el fitxer cups.conf"
-#: backend/usb-unix.c:141
msgid "Unable to open device file"
msgstr "No es pot obrir el fitxer de dispositiu"
-#: scheduler/ipp.c:6140
#, c-format
msgid "Unable to open document #%d in job #%d."
msgstr "No es pot obrir el document #%d a la tasca #%d."
-#: cgi-bin/help.c:364
msgid "Unable to open help file."
msgstr "No es pot obrir el fitxer d'impressió."
-#: backend/ipp.c:365 backend/ipp.c:1398 backend/ipp.c:1594 backend/ipp.c:2046
-#: backend/lpd.c:488 backend/socket.c:158 backend/usb.c:237
-#: filter/gziptoany.c:71 filter/pstops.c:300
msgid "Unable to open print file"
msgstr "No es pot obrir el fitxer d'impressió"
-#: filter/rastertoepson.c:998 filter/rastertohp.c:724
-#: filter/rastertolabel.c:1147
msgid "Unable to open raster file"
msgstr "No es pot obrir el fitxer de trama"
-#: cgi-bin/ipp-var.c:795
msgid "Unable to print test page"
msgstr "No es pot imprimir la pàgina de prova"
-#: backend/runloop.c:96 backend/runloop.c:325 backend/usb-darwin.c:613
-#: backend/usb-darwin.c:657 backend/usb-libusb.c:343 backend/usb-libusb.c:378
msgid "Unable to read print data."
msgstr "No es poden llegir les dades d'impressió."
-#: cups/dest.c:3402
msgid "Unable to resolve printer URI."
msgstr "No es pot resoldre l'URI de la impressora."
-#: cups/adminutil.c:2088
#, c-format
msgid "Unable to run \"%s\": %s"
msgstr "No es pot executar «%s»: %s"
-#: filter/pstops.c:563
msgid "Unable to see in file"
msgstr "No es pot veure al fitxer"
-#: cgi-bin/ipp-var.c:598 cgi-bin/ipp-var.c:618
msgid "Unable to send command to printer driver"
msgstr "No es pot enviar la comanda al controlador de la impressora"
-#: backend/usb-darwin.c:735 backend/usb-libusb.c:454
msgid "Unable to send data to printer."
msgstr "No es poden enviar dades a la impressora."
-#: cups/adminutil.c:821
#, c-format
msgid "Unable to set Windows printer driver (%d)."
msgstr "No es pot configurar el controlador d'impressores per Windows (%d)"
-#: cgi-bin/admin.c:3807
msgid "Unable to set options"
msgstr "No es poden configurar les opcions"
-#: cgi-bin/admin.c:3077
msgid "Unable to set server default"
msgstr "No es pot posar la configuració per defecte al servidor"
-#: backend/ipp.c:2868 backend/ipp.c:2945 backend/ipp.c:2953
msgid "Unable to start backend process."
msgstr "No es pot iniciar el procés en segon pla."
-#: cgi-bin/admin.c:1912
msgid "Unable to upload cupsd.conf file"
msgstr "No es pot penjar el fitxer cups.conf"
-#: backend/usb-darwin.c:1985 backend/usb-darwin.c:2009
msgid "Unable to use legacy USB class driver."
msgstr "No es pot fer servir el controlador de la classe USB antic."
-#: backend/runloop.c:125 backend/runloop.c:380
msgid "Unable to write print data"
msgstr "No es poden escriure les dades d'impressió"
-#: filter/gziptoany.c:90
#, c-format
msgid "Unable to write uncompressed print data: %s"
msgstr "No es poden escriure les dades sense comprimir: %s"
-#: cups/http-support.c:1303
msgid "Unauthorized"
msgstr "No autoritzat"
-#: cgi-bin/admin.c:3503
msgid "Units"
msgstr "Unitats"
-#: cups/http-support.c:1343 cups/ppd.c:366
msgid "Unknown"
msgstr "Desconegut"
-#: filter/pstops.c:2213
#, c-format
msgid "Unknown choice \"%s\" for option \"%s\"."
msgstr "La tria de «%s» per l'opció «%s» és desconeguda."
-#: backend/ipp.c:507
#, c-format
msgid "Unknown encryption option value: \"%s\"."
msgstr "El valor de l'opció de xifrat «%s» és desconegut."
-#: backend/lpd.c:350
#, c-format
msgid "Unknown file order: \"%s\"."
msgstr "Ordre desconegut del fitxer: «%s»."
-#: backend/lpd.c:321
#, c-format
msgid "Unknown format character: \"%c\"."
msgstr "Format del caràcter desconegut: «%c»."
-#: cups/dest-options.c:770
msgid "Unknown media size name."
msgstr "El nom de la mida del suport no és conegut."
-#: backend/ipp.c:554
#, c-format
msgid "Unknown option \"%s\" with value \"%s\"."
msgstr "L'opció «%s» amb valor «%s» és desconeguda."
-#: filter/pstops.c:2196
#, c-format
msgid "Unknown option \"%s\"."
msgstr "L'opció «%s» és desconeguda."
-#: backend/lpd.c:336
#, c-format
msgid "Unknown print mode: \"%s\"."
msgstr "El mode d'impressió «%s» és desconegut."
-#: scheduler/ipp.c:10496
#, c-format
msgid "Unknown printer-error-policy \"%s\"."
msgstr "El paràmetre printer-error-policy «%s» és desconegut."
-#: scheduler/ipp.c:10479
#, c-format
msgid "Unknown printer-op-policy \"%s\"."
msgstr "El paràmetre printer-op-policy «%s» és desconegut."
-#: cups/http-addrlist.c:710
msgid "Unknown service name."
msgstr "El nom del servei és desconegut."
-#: backend/ipp.c:526
#, c-format
msgid "Unknown version option value: \"%s\"."
msgstr "El valor de l'opció de la versió és desconegut: «%s»."
-#: scheduler/ipp.c:402
+#, c-format
+msgid "Unsupported 'compression' value \"%s\"."
+msgstr ""
+
+#, c-format
+msgid "Unsupported 'document-format' value \"%s\"."
+msgstr ""
+
+msgid "Unsupported 'job-name' value."
+msgstr ""
+
#, c-format
msgid "Unsupported character set \"%s\"."
msgstr "No s'admet el grup de caràcters «%s»."
-#: scheduler/ipp.c:8171 scheduler/ipp.c:9401 scheduler/ipp.c:10950
#, c-format
msgid "Unsupported compression \"%s\"."
msgstr "No s'admet la compressió «%s»."
-#: scheduler/ipp.c:8305 scheduler/ipp.c:9551 scheduler/ipp.c:10979
#, c-format
msgid "Unsupported document-format \"%s\"."
msgstr "No s'admet el document-format «%s»."
-#: scheduler/ipp.c:9534
#, c-format
msgid "Unsupported document-format \"%s/%s\"."
msgstr "No s'admet el document-format «%s/%s»."
-#: scheduler/ipp.c:1367
#, c-format
msgid "Unsupported format \"%s\"."
msgstr "No s'admet el format «%s»."
-#: scheduler/ipp.c:1465
msgid "Unsupported margins."
msgstr "No s'admeten els marges."
-#: cups/pwg-media.c:529
msgid "Unsupported media value."
msgstr "No s'admet el valor del suport."
-#: filter/pstops.c:2478
#, c-format
msgid "Unsupported number-up value %d, using number-up=1."
msgstr "No s'admet el valor %d a number-up. Es fa servir number-up=1."
-#: filter/pstops.c:2512
#, c-format
msgid "Unsupported number-up-layout value %s, using number-up-layout=lrtb."
msgstr ""
"No s'admet el valor %s a number-up-layout. Es fa servir number-up-"
"layout=lrtb."
-#: filter/pstops.c:2563
#, c-format
msgid "Unsupported page-border value %s, using page-border=none."
msgstr "No s'admet el valor %s a page-border. Es fa servir page-border=none."
-#: filter/rastertopwg.c:147 filter/rastertopwg.c:155 filter/rastertopwg.c:164
msgid "Unsupported raster data."
msgstr "No s'admet les dades en trama."
-#: cups/snmp.c:1112
msgid "Unsupported value type"
msgstr "El tipus de valor no és compatible"
-#: cups/http-support.c:1318
msgid "Upgrade Required"
msgstr "S'ha d'actualitzar"
-#: systemv/lpadmin.c:668
msgid ""
"Usage:\n"
"\n"
@@ -5840,49 +4502,36 @@ msgstr ""
" [-P fitxer-ppd] [-o nom=valor]\n"
" [-u allow:usuari,usuari] [-u deny:usuari,usuari]"
-#: backend/dnssd.c:241 backend/ipp.c:313 backend/lpd.c:191
-#: backend/socket.c:135 backend/usb.c:183 filter/commandtops.c:74
-#: filter/gziptoany.c:50 filter/pstops.c:264 monitor/bcp.c:62
-#: monitor/tbcp.c:61
#, c-format
msgid "Usage: %s job-id user title copies options [file]"
msgstr "Sintaxi: %s id-tasca usuari títol còpies opcions [fitxer]"
-#: systemv/cupsaddsmb.c:281
msgid "Usage: cupsaddsmb [options] printer1 ... printerN"
msgstr "Sintaxi: cupsaddsmb [opcions] impressora1 ... impressoraN"
-#: systemv/cupsctl.c:200
msgid "Usage: cupsctl [options] [param=value ... paramN=valueN]"
msgstr "Sintaxi: cupsctl [opcions] [param=valor ... paramN=valorN]"
-#: scheduler/main.c:2017
msgid "Usage: cupsd [options]"
msgstr "Sintaxi: cupsd [opcions]"
-#: scheduler/cupsfilter.c:1429
msgid "Usage: cupsfilter [ options ] filename"
msgstr "Sintaxi: cupsfilter [ opcions ] nomfitxer"
-#: systemv/cupstestdsc.c:425
msgid "Usage: cupstestdsc [options] filename.ps [... filename.ps]"
msgstr "Sintaxi: cupstestdsc [opcions] nomfitxer.ps [...nomfitxer.ps]"
-#: systemv/cupstestppd.c:3793
msgid ""
"Usage: cupstestppd [options] filename1.ppd[.gz] [... filenameN.ppd[.gz]]"
msgstr ""
"Sintaxi: cupstestppd [opcions] nomfitxer1.ppd[.gz] [... nomfitxerN.ppd[.gz]]"
-#: test/ipptool.c:4401
msgid "Usage: ipptool [options] URI filename [ ... filenameN ]"
msgstr "Sintaxi: ipptool [opcions] URI nomfitxer[ ... nomfitxerN]"
-#: systemv/lpmove.c:125
msgid "Usage: lpmove job/src dest"
msgstr "Sintaxi: lpmove tasca/font destí"
-#: systemv/lpoptions.c:553
msgid ""
"Usage: lpoptions [-h server] [-E] -d printer\n"
" lpoptions [-h server] [-E] [-p printer] -l\n"
@@ -5894,11 +4543,9 @@ msgstr ""
" lpoptions [-h servidor] [-E] -p impressora -o opció[=valor] ...\n"
" lpoptions [-h servidor] [-E] -x impressora"
-#: systemv/lppasswd.c:476
msgid "Usage: lppasswd [-g groupname]"
msgstr "Sintaxi: lppasswd [-g nomgrup]"
-#: systemv/lppasswd.c:479
msgid ""
"Usage: lppasswd [-g groupname] [username]\n"
" lppasswd [-g groupname] -a [username]\n"
@@ -5908,76 +4555,59 @@ msgstr ""
" lppasswd [-g nomgrup] -a [nomusuari]\n"
" lppasswd [-g nomgrup] -x [nomusuari]"
-#: berkeley/lpq.c:670
msgid ""
"Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]"
msgstr ""
"Sintaxi: lpq [-P destí] [-U nomusuari] [-h nomamfitrió[:port]] [-l] "
"[+interval]"
-#: ppdc/ppdc.cxx:435
msgid "Usage: ppdc [options] filename.drv [ ... filenameN.drv ]"
msgstr "Sintaxi: ppdc [opcions] nomfitxer.rv [ ... nomfitxerN.drv ]"
-#: ppdc/ppdhtml.cxx:172
msgid "Usage: ppdhtml [options] filename.drv >filename.html"
msgstr "Sintaxi: ppdhtml [opcions] nomfitxer.drv >nomfitxer.html"
-#: ppdc/ppdi.cxx:128
msgid "Usage: ppdi [options] filename.ppd [ ... filenameN.ppd ]"
msgstr "Sintaxi: ppdi [opcions] nomfitxer.ppd [ ... nomfitxerN.ppd ]"
-#: ppdc/ppdmerge.cxx:367
msgid "Usage: ppdmerge [options] filename.ppd [ ... filenameN.ppd ]"
msgstr "Sintaxi: ppdmerge [opcions] nomfitxer.ppd [ ... nomfitxerN.ppd ]"
-#: ppdc/ppdpo.cxx:252
msgid ""
"Usage: ppdpo [options] -o filename.po filename.drv [ ... filenameN.drv ]"
msgstr ""
"Sintaxi: ppdpo [opcions] -o nomfitxer.po nomfitxer.drv [ ... nomfitxerN.drv]"
-#: backend/snmp.c:218
msgid "Usage: snmp [host-or-ip-address]"
msgstr "Sintaxi: snmp [adreça-amfitrió-o-ip]"
-#: cups/snmp.c:1064
msgid "Value uses indefinite length"
msgstr "El valor té una longitud indefinida"
-#: cups/snmp.c:1049
msgid "VarBind uses indefinite length"
msgstr "VarBind té una longitud indefinida"
-#: cups/snmp.c:999
msgid "Version uses indefinite length"
msgstr "Version té una longitud indefinida"
-#: backend/ipp.c:1675
msgid "Waiting for job to complete."
msgstr "S'està esperant que acabi la tasca."
-#: backend/usb-darwin.c:457 backend/usb-libusb.c:193
msgid "Waiting for printer to become available."
msgstr "S'està esperant que la impressora estigui disponible."
-#: backend/socket.c:444
msgid "Waiting for printer to finish."
msgstr "S'està esperant que la impressora acabi."
-#: cups/adminutil.c:793
msgid "Warning, no Windows 2000 printer drivers are installed."
msgstr "AVÍS. No hi ha cap controlador per Windows 2000 instal·lat."
-#: cups/http-support.c:1339
msgid "Web Interface is Disabled"
msgstr "La interfície web està deshabilitada"
-#: cups/ppd.c:1947
msgid "Yes"
msgstr "Sí"
-#: scheduler/client.c:2437
#, c-format
msgid ""
"You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://"
@@ -5986,7 +4616,6 @@ msgstr ""
"Heu d'accedir a aquesta pagina a través de la URL <A HREF=\"https://%s:%d%s"
"\">https://%s:%d%s</A>."
-#: systemv/lppasswd.c:254
msgid ""
"Your password must be at least 6 characters long, cannot contain your "
"username, and must contain at least one letter and number."
@@ -5994,288 +4623,222 @@ msgstr ""
"La contrasenya ha de tenir com a mínim 6 caràcters, no pot contenir el nom "
"d'usuari, i ha de tenir com a mínim una lletra i un número."
-#: ppdc/sample.c:439
msgid "ZPL Label Printer"
msgstr "Impressora d'etiquetes ZPL"
-#: ppdc/sample.c:362
msgid "Zebra"
msgstr "Zebra"
-#: cups/notify.c:102
msgid "aborted"
msgstr "interromput"
-#: cups/notify.c:99
msgid "canceled"
msgstr "cancel·lat"
-#: cups/notify.c:105
msgid "completed"
msgstr "completat"
-#: scheduler/ipp.c:6012
msgid "cups-deviced failed to execute."
msgstr "no s'ha pogut executar correctament la cups-deviced."
-#: scheduler/ipp.c:6842 scheduler/ipp.c:7091
msgid "cups-driverd failed to execute."
msgstr "no s'ha pogut executar correctament la cups-driverd"
-#: systemv/cupsaddsmb.c:233
#, c-format
msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s"
msgstr "cupsaddsmb: falta el fitxer PPD per la impressora «%s» - %s"
-#: systemv/cupsctl.c:141
msgid "cupsctl: Cannot set Listen or Port directly."
msgstr "cupsctl: no es pot establir Listen o Port directament."
-#: systemv/cupsctl.c:152
#, c-format
msgid "cupsctl: Unable to connect to server: %s"
msgstr "cupsctl: no es pot connectar al servidor: %s"
-#: systemv/cupsctl.c:195
#, c-format
msgid "cupsctl: Unknown option \"%s\""
msgstr "cupsctl: l'opció «%s» és desconeguda"
-#: systemv/cupsctl.c:197
#, c-format
msgid "cupsctl: Unknown option \"-%c\""
msgstr "cupsctl: l'opció «-%c» és desconeguda"
-#: scheduler/main.c:189
msgid "cupsd: Expected config filename after \"-c\" option."
msgstr ""
"cupsd: s'esperava un nom de fitxer de configuració després de l'opció «-c»."
-#: scheduler/main.c:221 scheduler/main.c:228
msgid "cupsd: Unable to get current directory."
msgstr "cupsd: No es pot obtenir el directori actual."
-#: scheduler/main.c:295
#, c-format
msgid "cupsd: Unknown argument \"%s\" - aborting."
msgstr "cupsd: l'argument «%s» és desconegut - s'interromp."
-#: scheduler/main.c:288
#, c-format
msgid "cupsd: Unknown option \"%c\" - aborting."
msgstr "cupsd: l'opció «%c» és desconeguda - s'interromp."
-#: scheduler/main.c:255
msgid "cupsd: launchd(8) support not compiled in, running in normal mode."
msgstr ""
"cupsd: no s'ha compilat amb compatibilitat per launchd(8). S'executa en mode "
"normal."
-#: scheduler/cupsfilter.c:1209
#, c-format
msgid "cupsfilter: Invalid document number %d."
msgstr "cupsfilter: el document número %d no és vàlid."
-#: scheduler/cupsfilter.c:1203
#, c-format
msgid "cupsfilter: Invalid job ID %d."
msgstr "cupsfilter: la tasca %d no és vàlida."
-#: scheduler/cupsfilter.c:358
msgid "cupsfilter: Only one filename can be specified."
msgstr "cupsfilter: només es pot especificar un nom de fitxer."
-#: scheduler/cupsfilter.c:1251
#, c-format
msgid "cupsfilter: Unable to get job file - %s"
msgstr "cupsfilter: no es pot obtenir el fitxer de la tasca - %s"
-#: systemv/cupstestppd.c:261
msgid "cupstestppd: The -q option is incompatible with the -v option."
msgstr "cupstestppd: l'opció -q no és compatible amb la opció -v."
-#: systemv/cupstestppd.c:277
msgid "cupstestppd: The -v option is incompatible with the -q option."
msgstr "cupstestppd: la opció -v no és compatible amb la opció -q."
-#: systemv/lpstat.c:1231 systemv/lpstat.c:1234 systemv/lpstat.c:1237
#, c-format
msgid "device for %s/%s: %s"
msgstr "dispositiu per %s/%s: %s"
-#: systemv/lpstat.c:1218 systemv/lpstat.c:1221 systemv/lpstat.c:1224
#, c-format
msgid "device for %s: %s"
msgstr "dispositiu per %s: %s"
-#: cups/snmp.c:1036
msgid "error-index uses indefinite length"
msgstr "error-index fa servir una longitud indefinida"
-#: cups/snmp.c:1028
msgid "error-status uses indefinite length"
msgstr "error-status fa servir una longitud indefinida"
-#: cups/notify.c:90
msgid "held"
msgstr "En pausa"
-#: berkeley/lpc.c:209
msgid "help\t\tGet help on commands."
msgstr "help\t\tproporciona ajuda sobre les comandes."
-#: cups/notify.c:131
msgid "idle"
msgstr "inactiva"
-#: test/ipptool.c:373 test/ipptool.c:515 test/ipptool.c:539
msgid "ipptool: \"-i\" and \"-n\" are incompatible with -X\"."
msgstr "ipptool: «-i» i «-n» no són compatibles amb «-X»."
-#: test/ipptool.c:597
#, c-format
msgid "ipptool: Bad URI - %s."
msgstr "ipptool: l'URI no es correcte - %s."
-#: test/ipptool.c:362
#, c-format
msgid "ipptool: Bad version %s for \"-V\"."
msgstr "ipptool: la versió %s de «-V» no és correcta."
-#: test/ipptool.c:508
msgid "ipptool: Invalid seconds for \"-i\"."
msgstr "ipptool: els segons de «-i» no són correctes."
-#: test/ipptool.c:578
msgid "ipptool: May only specify a single URI."
msgstr "ipptool: heu d'especificar només un URI."
-#: test/ipptool.c:531
msgid "ipptool: Missing count for \"-n\"."
msgstr "ipptool: falta el comptador de «-n»."
-#: test/ipptool.c:408
msgid "ipptool: Missing filename for \"-f\"."
msgstr "ipptool: falta el nom del fitxer a «-f»."
-#: test/ipptool.c:389
msgid "ipptool: Missing name=value for \"-d\"."
msgstr "ipptool: falta nom=valor a «-d»."
-#: test/ipptool.c:498
msgid "ipptool: Missing seconds for \"-i\"."
msgstr "ipptool: falten els segons a «-i»."
-#: test/ipptool.c:332
msgid "ipptool: Missing timeout for \"-T\"."
msgstr "ipptool: falta el temps màxim d'espera a «-T»."
-#: test/ipptool.c:345
msgid "ipptool: Missing version for \"-V\"."
msgstr "ipptool: falta la versió a «-V»."
-#: test/ipptool.c:624
msgid "ipptool: URI required before test file."
msgstr "ipptool: falta l'URI abans del fitxer de prova."
-#: test/ipptool.c:558
#, c-format
msgid "ipptool: Unknown option \"-%c\"."
msgstr "ipptool: l'opció «-%c» és desconeguda."
-#: scheduler/ipp.c:7838
msgid "job-printer-uri attribute missing."
msgstr "Falta l'atribut de job-printer-uri."
-#: systemv/lpadmin.c:131 systemv/lpadmin.c:375
msgid "lpadmin: Class name can only contain printable characters."
msgstr "lpadmin: el nom de la classe només pot tenir caràcters imprimibles."
-#: systemv/lpadmin.c:614
msgid "lpadmin: Expected PPD after \"-P\" option."
msgstr "lpadmin: s'esperava un PPD després de la opció «-P»."
-#: systemv/lpadmin.c:457
msgid "lpadmin: Expected allow/deny:userlist after \"-u\" option."
msgstr "lpadmin: s'esperava allow/deny:llistausuaris després de la opció «-u»."
-#: systemv/lpadmin.c:364
msgid "lpadmin: Expected class after \"-r\" option."
msgstr "lpadmin: s'esperava una classe després de la opció «-r»."
-#: systemv/lpadmin.c:120
msgid "lpadmin: Expected class name after \"-c\" option."
msgstr "lpadmin: s'esperava un nom de classe després de la opció «-c»."
-#: systemv/lpadmin.c:558
msgid "lpadmin: Expected description after \"-D\" option."
msgstr "lpadmin: s'esperava una descripció després de la opció «-D»."
-#: systemv/lpadmin.c:491
msgid "lpadmin: Expected device URI after \"-v\" option."
msgstr "lpadmin: s'esperava un URI de dispositiu després de la opció «-v»."
-#: systemv/lpadmin.c:574
msgid "lpadmin: Expected file type(s) after \"-I\" option."
msgstr "lpadmin: s'esperava un(s) tipus de fitxer(s) després de la opció «-I»."
-#: systemv/lpadmin.c:202
msgid "lpadmin: Expected hostname after \"-h\" option."
msgstr ""
"lpadmin: s'esperava un nom d'ordinador central després de la opció «-h»."
-#: systemv/lpadmin.c:221
msgid "lpadmin: Expected interface after \"-i\" option."
msgstr "lpadmin: s'esperava una interfície després de la opció «-i»."
-#: systemv/lpadmin.c:594
msgid "lpadmin: Expected location after \"-L\" option."
msgstr "lpadmin: s'esperava una ubicació després de la opció «-L»."
-#: systemv/lpadmin.c:274
msgid "lpadmin: Expected model after \"-m\" option."
msgstr "lpadmin: s'esperava un model després de la opció «-m»."
-#: systemv/lpadmin.c:417
msgid "lpadmin: Expected name after \"-R\" option."
msgstr "lpadmin: s'esperava un nom després de la opció «-R»."
-#: systemv/lpadmin.c:294
msgid "lpadmin: Expected name=value after \"-o\" option."
msgstr "lpadmin: s'esperava nom=valor després de la opció «-o»."
-#: systemv/lpadmin.c:313
msgid "lpadmin: Expected printer after \"-p\" option."
msgstr "lpadmin: s'esperava una impressora després de la opció «-p»."
-#: systemv/lpadmin.c:164
msgid "lpadmin: Expected printer name after \"-d\" option."
msgstr "lpadmin: s'esperava un nom d'impressora després de la opció «-d»."
-#: systemv/lpadmin.c:525
msgid "lpadmin: Expected printer or class after \"-x\" option."
msgstr "lpadmin: s'esperava un impressora o classe després de la opció «-x»."
-#: systemv/lpadmin.c:975
msgid "lpadmin: No member names were seen."
msgstr "lpadmin: no s'ha trobat cap nom de membre."
-#: systemv/lpadmin.c:762
#, c-format
msgid "lpadmin: Printer %s is already a member of class %s."
msgstr "lpadmin: la impressora %s ja és membre de la classe %s."
-#: systemv/lpadmin.c:989
#, c-format
msgid "lpadmin: Printer %s is not a member of class %s."
msgstr "lpadmin: la impressora %s no és membre de la classe %s."
-#: systemv/lpadmin.c:175 systemv/lpadmin.c:324 systemv/lpadmin.c:536
msgid "lpadmin: Printer name can only contain printable characters."
msgstr ""
"lpadmin: el nom de la impressora només pot contenir caràcters imprimibles."
-#: systemv/lpadmin.c:105
msgid ""
"lpadmin: Unable to add a printer to the class:\n"
" You must specify a printer name first."
@@ -6283,18 +4846,13 @@ msgstr ""
"lpadmin: no s'ha pogut afegir una impressora a la classe:\n"
" Heu d'especificar primer un nom d'impressora."
-#: systemv/lpadmin.c:96 systemv/lpadmin.c:149 systemv/lpadmin.c:253
-#: systemv/lpadmin.c:339 systemv/lpadmin.c:393 systemv/lpadmin.c:510
-#: systemv/lpadmin.c:647
#, c-format
msgid "lpadmin: Unable to connect to server: %s"
msgstr "lpadmin: no s'ha pogut connectar al servidor: %s"
-#: systemv/lpadmin.c:1329
msgid "lpadmin: Unable to create temporary file"
msgstr "lpadmin: no s'ha pogut crear el fitxer temporal"
-#: systemv/lpadmin.c:402
msgid ""
"lpadmin: Unable to delete option:\n"
" You must specify a printer name first."
@@ -6302,12 +4860,10 @@ msgstr ""
"lpadmin: no s'ha pogut esborrar la opció:\n"
" Heu d'especificar primer un nom d'impressora."
-#: systemv/lpadmin.c:1339
#, c-format
msgid "lpadmin: Unable to open PPD file \"%s\" - %s"
msgstr "lpadmin: no s'ha pogut obrir el fitxer PPD «%s» - %s"
-#: systemv/lpadmin.c:348
msgid ""
"lpadmin: Unable to remove a printer from the class:\n"
" You must specify a printer name first."
@@ -6315,7 +4871,6 @@ msgstr ""
"lpadmin: no es pot esborrar una impressora de la classe:\n"
" Heu d'especificar primer un nom d'impressora."
-#: systemv/lpadmin.c:656
msgid ""
"lpadmin: Unable to set the printer options:\n"
" You must specify a printer name first."
@@ -6323,174 +4878,138 @@ msgstr ""
"lpadmin: no es pot establir les opcions de la impressora:\n"
" Heu d'especificar primer un nom d'impressora."
-#: systemv/lpadmin.c:474
#, c-format
msgid "lpadmin: Unknown allow/deny option \"%s\"."
msgstr "lpadmin: l'opció allow/deny «%s» és desconeguda."
-#: systemv/lpadmin.c:629
#, c-format
msgid "lpadmin: Unknown argument \"%s\"."
msgstr "lpadmin: l'argument «%s» és desconegut."
-#: systemv/lpadmin.c:624
#, c-format
msgid "lpadmin: Unknown option \"%c\"."
msgstr "lpadmin: l'opció «%c» és desconeguda."
-#: systemv/lpadmin.c:580
msgid "lpadmin: Warning - content type list ignored."
msgstr "lpadmin: avís - s'ignora el contingut de la llista de tipus."
-#: berkeley/lpc.c:76 berkeley/lpc.c:104 berkeley/lpc.c:140
msgid "lpc> "
msgstr "lpc> "
-#: systemv/lpinfo.c:137
msgid "lpinfo: Expected 1284 device ID string after \"--device-id\"."
msgstr ""
"lpinfo: s'esperava una cadena d'ID de dispositiu 1284 després de «--device-"
"id»."
-#: systemv/lpinfo.c:190
msgid "lpinfo: Expected language after \"--language\"."
msgstr "lpinfo: s'esperava un idioma després de «--language»."
-#: systemv/lpinfo.c:207
msgid "lpinfo: Expected make and model after \"--make-and-model\"."
msgstr "lpinfo: s'esperava una marca i model després de «--make-and-model»."
-#: systemv/lpinfo.c:224
msgid "lpinfo: Expected product string after \"--product\"."
msgstr "lpinfo: s'esperava una cadena de producte després de «--product!»."
-#: systemv/lpinfo.c:155
msgid "lpinfo: Expected scheme list after \"--exclude-schemes\"."
msgstr ""
"lpinfo: s'esperava una llista d'esquemes després de la opció «--exclude-"
"schemes»."
-#: systemv/lpinfo.c:173
msgid "lpinfo: Expected scheme list after \"--include-schemes\"."
msgstr ""
"lpinfo: s'esperava una llista d'esquemes després de la opció «--include-"
"schemes»."
-#: systemv/lpinfo.c:241
msgid "lpinfo: Expected timeout after \"--timeout\"."
msgstr "lpinfo: s'esperava un temps d'espera després de «--timeout»."
-#: systemv/lpinfo.c:265
#, c-format
msgid "lpinfo: Unknown argument \"%s\"."
msgstr "lpinfo: l'argument «%s» és desconegut."
-#: systemv/lpinfo.c:259
#, c-format
msgid "lpinfo: Unknown option \"%c\"."
msgstr "lpinfo: l'opció «%c» és desconeguda."
-#: systemv/lpinfo.c:252
#, c-format
msgid "lpinfo: Unknown option \"%s\"."
msgstr "lpinfo: l'opció «%s» és desconeguda."
-#: systemv/lpmove.c:133
#, c-format
msgid "lpmove: Unable to connect to server: %s"
msgstr "lpmove: no s'ha pogut connectar al servidor: %s"
-#: systemv/lpmove.c:119
#, c-format
msgid "lpmove: Unknown argument \"%s\"."
msgstr "lpmove: l'argument «%s» és desconegut."
-#: systemv/lpmove.c:97
#, c-format
msgid "lpmove: Unknown option \"%c\"."
msgstr "lpmove: l'opció «%c» és desconeguda."
-#: systemv/lpoptions.c:150 systemv/lpoptions.c:168 systemv/lpoptions.c:244
msgid "lpoptions: No printers."
msgstr "lpoptions: no hi ha cap impressora."
-#: systemv/lpoptions.c:219
#, c-format
msgid "lpoptions: Unable to add printer or instance: %s"
msgstr "lpoptions: no s'ha pogut afegir la impressora o la instància: %s"
-#: systemv/lpoptions.c:521
#, c-format
msgid "lpoptions: Unable to get PPD file for %s: %s"
msgstr "lpoptions: no s'ha pogut obtenir el fitxer PPD de %s: %s"
-#: systemv/lpoptions.c:529
#, c-format
msgid "lpoptions: Unable to open PPD file for %s."
msgstr "lpoptions: no s'ha pogut obrir el fitxer PPD per %s."
-#: systemv/lpoptions.c:99
msgid "lpoptions: Unknown printer or class."
msgstr "lpoptions: la impressora o la classe són desconegudes."
-#: systemv/lppasswd.c:173
msgid "lppasswd: Only root can add or delete passwords."
msgstr ""
"lppasswd: només l'usuari primari (root) pot afegir o esborrar contrasenyes."
-#: systemv/lppasswd.c:302
msgid "lppasswd: Password file busy."
msgstr "lppaswd: el fitxer de contrasenyes està ocupat."
-#: systemv/lppasswd.c:431
msgid "lppasswd: Password file not updated."
msgstr "lppaswd: el fitxer de contrasenyes no està actualitzat."
-#: systemv/lppasswd.c:398
msgid "lppasswd: Sorry, password doesn't match."
msgstr "lppaswwd: la contrasenya no coincideix."
-#: systemv/lppasswd.c:253
msgid "lppasswd: Sorry, password rejected."
msgstr "lppaswwd: s'ha refusat la contrasenya."
-#: systemv/lppasswd.c:230
msgid "lppasswd: Sorry, passwords don't match."
msgstr "lppaswwd: les contrasenyes no coincideixen."
-#: systemv/lppasswd.c:199 systemv/lppasswd.c:218
#, c-format
msgid "lppasswd: Unable to copy password string: %s"
msgstr "lppasswd: no s'ha pogut copiar la cadena de contrasenya: %s"
-#: systemv/lppasswd.c:304 systemv/lppasswd.c:312 systemv/lppasswd.c:329
#, c-format
msgid "lppasswd: Unable to open password file: %s"
msgstr "lppasswd: no s'ha pogut obrir el fitxer de contrasenyes: %s"
-#: systemv/lppasswd.c:364 systemv/lppasswd.c:377 systemv/lppasswd.c:408
#, c-format
msgid "lppasswd: Unable to write to password file: %s"
msgstr "lppasswd: no s'ha pogut escriure al fitxer de contrasenyes: %s"
-#: systemv/lppasswd.c:446
#, c-format
msgid "lppasswd: failed to backup old password file: %s"
msgstr ""
"lppasswd: no s'ha pogut fer la còpia de seguretat del fitxer de contrasenyes "
"antic: %s"
-#: systemv/lppasswd.c:458
#, c-format
msgid "lppasswd: failed to rename password file: %s"
msgstr "lppasswd: no s'ha pogut canviar el nom del fitxer de contrasenyes: %s"
-#: systemv/lppasswd.c:389
#, c-format
msgid "lppasswd: user \"%s\" and group \"%s\" do not exist."
msgstr "lppaswd: l'usuari «%s» i el grup «%s» no existeixen."
-#: systemv/lpstat.c:1039
#, c-format
msgid ""
"lpstat: error - %s environment variable names non-existent destination \"%s"
@@ -6499,139 +5018,112 @@ msgstr ""
"lpstat: error - la variable d'entorn %s esmenta el destí «%s» que no "
"existeix."
-#: systemv/lpstat.c:970
#, c-format
msgid "members of class %s:"
msgstr "membres de la classe %s:"
-#: berkeley/lpq.c:582
msgid "no entries"
msgstr "no hi ha cap entrada"
-#: systemv/lpstat.c:1043
msgid "no system default destination"
msgstr "no hi ha cap destí per defecte"
-#: scheduler/ipp.c:5702
msgid "notify-events not specified."
msgstr "no s'ha especificat cap notify-events."
-#: scheduler/ipp.c:2034 scheduler/ipp.c:5607
#, c-format
msgid "notify-recipient-uri URI \"%s\" is already used."
msgstr "L'URI de notify-recipient-uri «%s» ja s'ha fet servir."
-#: scheduler/ipp.c:2024 scheduler/ipp.c:5597
#, c-format
msgid "notify-recipient-uri URI \"%s\" uses unknown scheme."
msgstr "L'URI de notify-recipient-uri «%s» fa servir un esquema desconegut."
-#: cups/notify.c:87
msgid "pending"
msgstr "pendent"
-#: ppdc/ppdc.cxx:113 ppdc/ppdpo.cxx:93
#, c-format
msgid "ppdc: Adding include directory \"%s\"."
msgstr "ppdc: s'afegeix el directori inclòs «%s»."
-#: ppdc/ppdpo.cxx:134
#, c-format
msgid "ppdc: Adding/updating UI text from %s."
msgstr "ppdc: s'afegeix/actualitza el text de l'UI des de %s."
-#: ppdc/ppdc-source.cxx:410
#, c-format
msgid "ppdc: Bad boolean value (%s) on line %d of %s."
msgstr "ppdc: valor booleà incorrecte (%s) a la línia %d de %s."
-#: ppdc/ppdc-import.cxx:264
#, c-format
msgid "ppdc: Bad font attribute: %s"
msgstr "ppdc: l'atribut del tipus de lletra és incorrecte: %s"
-#: ppdc/ppdc-source.cxx:1796
#, c-format
msgid "ppdc: Bad resolution name \"%s\" on line %d of %s."
msgstr "ppdc: el nom de resolució «%s» de la línia %d de %s és incorrecte."
-#: ppdc/ppdc-source.cxx:1113
#, c-format
msgid "ppdc: Bad status keyword %s on line %d of %s."
msgstr "ppdc: la paraula clau d'estat %s de la línia %d de %s és incorrecta."
-#: ppdc/ppdc-source.cxx:2033
#, c-format
msgid "ppdc: Bad variable substitution ($%c) on line %d of %s."
msgstr ""
"ppdc: la variable de substitució ($%c) de la línia %d de %s és incorrecta."
-#: ppdc/ppdc-source.cxx:2719
#, c-format
msgid "ppdc: Choice found on line %d of %s with no Option."
msgstr "ppdc: s'ha trobat una elecció a la línia %d de %s sense cap opció."
-#: ppdc/ppdc-source.cxx:1698
#, c-format
msgid "ppdc: Duplicate #po for locale %s on line %d of %s."
msgstr "ppdc: #po duplicat per l'idioma %s a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:932
#, c-format
msgid "ppdc: Expected a filter definition on line %d of %s."
msgstr "ppdc: s'esperava una definició de filtre a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:955
#, c-format
msgid "ppdc: Expected a program name on line %d of %s."
msgstr "ppdc: s'esperava un nom de programa a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:394
#, c-format
msgid "ppdc: Expected boolean value on line %d of %s."
msgstr "ppdc: s'esperava un valor booleà a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:1093
#, c-format
msgid "ppdc: Expected charset after Font on line %d of %s."
msgstr ""
"ppdc: s'esperava un joc de caràcters després de Font a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:447
#, c-format
msgid "ppdc: Expected choice code on line %d of %s."
msgstr "ppdc: s'esperava un codi d'elecció a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:435
#, c-format
msgid "ppdc: Expected choice name/text on line %d of %s."
msgstr "ppdc: s'esperava un nom/text d'elecció a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:503
#, c-format
msgid "ppdc: Expected color order for ColorModel on line %d of %s."
msgstr ""
"ppdc: s'esperava un ordre de colors per ColorModel a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:492
#, c-format
msgid "ppdc: Expected colorspace for ColorModel on line %d of %s."
msgstr ""
"ppdc: s'esperava un espai de colors per ColorModel a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:514
#, c-format
msgid "ppdc: Expected compression for ColorModel on line %d of %s."
msgstr "ppdc: s'esperava una compressió per ColorModel a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:695
#, c-format
msgid "ppdc: Expected constraints string for UIConstraints on line %d of %s."
msgstr ""
"ppdc: s'esperava una cadena de restriccions per UIConstraints a la línia %d "
"de %s."
-#: ppdc/ppdc-source.cxx:2905
#, c-format
msgid ""
"ppdc: Expected driver type keyword following DriverType on line %d of %s."
@@ -6639,135 +5131,110 @@ msgstr ""
"ppdc: s'esperava una paraula clau de tipus de controlador després de "
"DriverType a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:826
#, c-format
msgid "ppdc: Expected duplex type after Duplex on line %d of %s."
msgstr ""
"ppdc: s'esperava un tipus de dúplex després de Duplex a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:1077
#, c-format
msgid "ppdc: Expected encoding after Font on line %d of %s."
msgstr "ppdc: s'esperava una codificació després de Font a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:1689
#, c-format
msgid "ppdc: Expected filename after #po %s on line %d of %s."
msgstr ""
"ppdc: s'esperava un nom de fitxer després de #po %s a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:1205
#, c-format
msgid "ppdc: Expected group name/text on line %d of %s."
msgstr "ppdc: s'esperava un nom/text de grup a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:2619
#, c-format
msgid "ppdc: Expected include filename on line %d of %s."
msgstr "ppdc: s'esperava un nom de fitxer d'inclusió a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:1502
#, c-format
msgid "ppdc: Expected integer on line %d of %s."
msgstr "ppdc: s'esperava un enter a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:1681
#, c-format
msgid "ppdc: Expected locale after #po on line %d of %s."
msgstr "ppdc: s'esperava un idioma després de #po a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:353
#, c-format
msgid "ppdc: Expected name after %s on line %d of %s."
msgstr "ppdc: s'esperava un nom després de %s a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:3277
#, c-format
msgid "ppdc: Expected name after FileName on line %d of %s."
msgstr "ppdc: s'esperava un nom després de FileName a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:1058
#, c-format
msgid "ppdc: Expected name after Font on line %d of %s."
msgstr "ppdc: s'esperava un nom després de Font a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:3108
#, c-format
msgid "ppdc: Expected name after Manufacturer on line %d of %s."
msgstr "ppdc: s'esperava un nom després de Manufacturer a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:3141
#, c-format
msgid "ppdc: Expected name after MediaSize on line %d of %s."
msgstr "ppdc: s'esperava un nom després de MediaSize a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:3231
#, c-format
msgid "ppdc: Expected name after ModelName on line %d of %s."
msgstr "ppdc: s'esperava un nom després de ModelName a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:3294
#, c-format
msgid "ppdc: Expected name after PCFileName on line %d of %s."
msgstr "ppdc: s'esperava un nom després de PCFileName a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:1156
#, c-format
msgid "ppdc: Expected name/text after %s on line %d of %s."
msgstr "ppdc: s'esperava un nom/text després de %s a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:1245
#, c-format
msgid "ppdc: Expected name/text after Installable on line %d of %s."
msgstr ""
"ppdc: s'esperava un nom/text després d'Installable a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:1782
#, c-format
msgid "ppdc: Expected name/text after Resolution on line %d of %s."
msgstr ""
"ppdc: s'esperava un nom/text després de Resolution a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:479
#, c-format
msgid "ppdc: Expected name/text combination for ColorModel on line %d of %s."
msgstr ""
"ppdc: s'esperava una combinació de nom/text per ColorModel a la línia %d de "
"%s."
-#: ppdc/ppdc-source.cxx:1574
#, c-format
msgid "ppdc: Expected option name/text on line %d of %s."
msgstr "ppdc: s'esperava un nom/text d'opció a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:1608
#, c-format
msgid "ppdc: Expected option section on line %d of %s."
msgstr "ppdc: s'esperava una secció d'opció a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:1586
#, c-format
msgid "ppdc: Expected option type on line %d of %s."
msgstr "ppdc: s'esperava un tipus d'opció a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:1765
#, c-format
msgid "ppdc: Expected override field after Resolution on line %d of %s."
msgstr ""
"ppdc: s'esperava un camp de substitució després de Resolution a la línia %d "
"de %s."
-#: ppdc/ppdc-catalog.cxx:341 ppdc/ppdc-catalog.cxx:353
#, c-format
msgid "ppdc: Expected quoted string on line %d of %s."
msgstr "ppdc: s'esperava una cadena entre cometes a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:1004
#, c-format
msgid "ppdc: Expected real number on line %d of %s."
msgstr "ppdc: s'esperava un número real a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:572
#, c-format
msgid ""
"ppdc: Expected resolution/mediatype following ColorProfile on line %d of %s."
@@ -6775,7 +5242,6 @@ msgstr ""
"ppdc: s'esperava una resolució/tipus de mitjà després de ColorProfile a la "
"línia %d de %s."
-#: ppdc/ppdc-source.cxx:1863
#, c-format
msgid ""
"ppdc: Expected resolution/mediatype following SimpleColorProfile on line %d "
@@ -6784,99 +5250,79 @@ msgstr ""
"ppdc: s'esperava una resolució/tipus de mitjà després de SimpleColorProfile "
"a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:361
#, c-format
msgid "ppdc: Expected selector after %s on line %d of %s."
msgstr "ppdc: s'esperava un selector després de %s a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:1101
#, c-format
msgid "ppdc: Expected status after Font on line %d of %s."
msgstr "ppdc: s'esperava un estat després de Font a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:2794
#, c-format
msgid "ppdc: Expected string after Copyright on line %d of %s."
msgstr "ppdc: s'esperava una cadena després de Copyright a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:3397
#, c-format
msgid "ppdc: Expected string after Version on line %d of %s."
msgstr "ppdc: s'esperava una cadena després de Version a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:728
#, c-format
msgid "ppdc: Expected two option names on line %d of %s."
msgstr "ppdc: s'esperava dos noms d'opció a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:372
#, c-format
msgid "ppdc: Expected value after %s on line %d of %s."
msgstr "ppdc: s'esperava un valor després de %s a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:1085
#, c-format
msgid "ppdc: Expected version after Font on line %d of %s."
msgstr "ppdc: s'esperava una versió després de Font a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:227
#, c-format
msgid "ppdc: Invalid #include/#po filename \"%s\"."
msgstr "ppdc: el nom de fitxer #include/#po «%s» no és vàlid."
-#: ppdc/ppdc-source.cxx:972
#, c-format
msgid "ppdc: Invalid cost for filter on line %d of %s."
msgstr "ppdc: el cost del filtre no és vàlid a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:964
#, c-format
msgid "ppdc: Invalid empty MIME type for filter on line %d of %s."
msgstr "ppdc: el tipus MIME buit no és vàlid pel filtre a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:980
#, c-format
msgid "ppdc: Invalid empty program name for filter on line %d of %s."
msgstr ""
"ppdc: el nom de programa buit no és vàlid pel filtre a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:1628
#, c-format
msgid "ppdc: Invalid option section \"%s\" on line %d of %s."
msgstr "ppdc: la secció d'opció «%s» no és vàlida a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:1600
#, c-format
msgid "ppdc: Invalid option type \"%s\" on line %d of %s."
msgstr "ppdc: el tipus d'opció «%s» no és vàlid a la línia %d de %s."
-#: ppdc/ppdc.cxx:251 ppdc/ppdpo.cxx:123
#, c-format
msgid "ppdc: Loading driver information file \"%s\"."
msgstr "ppdc: s'està carregant el fitxer d'informació del controlador «%s»."
-#: ppdc/ppdc.cxx:187
#, c-format
msgid "ppdc: Loading messages for locale \"%s\"."
msgstr "ppdc: s'està carregant l'idioma «%s»."
-#: ppdc/ppdc.cxx:126
#, c-format
msgid "ppdc: Loading messages from \"%s\"."
msgstr "ppdc: s'està carregant els missatges des de «%s»."
-#: ppdc/ppdc-source.cxx:2412 ppdc/ppdc-source.cxx:2644
#, c-format
msgid "ppdc: Missing #endif at end of \"%s\"."
msgstr "ppdc: falta un #endif al final de «%s»."
-#: ppdc/ppdc-source.cxx:2513 ppdc/ppdc-source.cxx:2548
-#: ppdc/ppdc-source.cxx:2578
#, c-format
msgid "ppdc: Missing #if on line %d of %s."
msgstr "ppdc: falta un #if a la línia %d de %s."
-#: ppdc/ppdc-catalog.cxx:418
#, c-format
msgid ""
"ppdc: Need a msgid line before any translation strings on line %d of %s."
@@ -6884,117 +5330,93 @@ msgstr ""
"oodc: es necessita un msgid abans de la cadena per traduir a la línia %d de "
"%s."
-#: ppdc/ppdc-driver.cxx:730
#, c-format
msgid "ppdc: No message catalog provided for locale %s."
msgstr "ppdc: no s'ha donat el catàleg de missatges per l'idioma %s."
-#: ppdc/ppdc-source.cxx:1651 ppdc/ppdc-source.cxx:2882
-#: ppdc/ppdc-source.cxx:2968 ppdc/ppdc-source.cxx:3061
-#: ppdc/ppdc-source.cxx:3194 ppdc/ppdc-source.cxx:3327
#, c-format
msgid "ppdc: Option %s defined in two different groups on line %d of %s."
msgstr ""
"ppdc: la opció %s està definida a dos grups diferents a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:1644
#, c-format
msgid "ppdc: Option %s redefined with a different type on line %d of %s."
msgstr ""
"ppdc: la opció %s està redefinida amb un tipus diferent a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:705
#, c-format
msgid "ppdc: Option constraint must *name on line %d of %s."
msgstr "ppdc: la opció de restricció ha d'incloure *nom a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:2495
#, c-format
msgid "ppdc: Too many nested #if's on line %d of %s."
msgstr "ppdc: hi ha massa #if imbricats a la línia %d de %s."
-#: ppdc/ppdc.cxx:374
#, c-format
msgid "ppdc: Unable to create PPD file \"%s\" - %s."
msgstr "ppdc: no s'ha pogut crear el fitxer PPD «%s» - %s."
-#: ppdc/ppdc.cxx:266
#, c-format
msgid "ppdc: Unable to create output directory %s: %s"
msgstr "ppdc: no s'ha pogut crear el directori de sortida %s: %s"
-#: ppdc/ppdc.cxx:287
#, c-format
msgid "ppdc: Unable to create output pipes: %s"
msgstr "ppdc: no s'ha pogut crear els conductes de sortida: %s"
-#: ppdc/ppdc.cxx:303 ppdc/ppdc.cxx:309
#, c-format
msgid "ppdc: Unable to execute cupstestppd: %s"
msgstr "ppdc: no s'ha pogut executar cupstestppd: %s"
-#: ppdc/ppdc-source.cxx:1730
#, c-format
msgid "ppdc: Unable to find #po file %s on line %d of %s."
msgstr "ppdc: no s'ha pogut trobar el fitxer #po %s a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:2651
#, c-format
msgid "ppdc: Unable to find include file \"%s\" on line %d of %s."
msgstr ""
"ppdc: no s'ha pogut trobar el fitxer d'inclusió «%s» a la línia %d de %s."
-#: ppdc/ppdc.cxx:198
#, c-format
msgid "ppdc: Unable to find localization for \"%s\" - %s"
msgstr "ppdc: no s'ha pogut trobar la localització de «%s» - %s"
-#: ppdc/ppdc.cxx:135
#, c-format
msgid "ppdc: Unable to load localization file \"%s\" - %s"
msgstr "ppdc: no s'ha pogut carregar el fitxer de localització «%s» - %s"
-#: ppdc/ppdc-file.cxx:50
#, c-format
msgid "ppdc: Unable to open %s: %s"
msgstr "ppdc: no s'ha pogut obrir %s: %s"
-#: ppdc/ppdc-source.cxx:2054
#, c-format
msgid "ppdc: Undefined variable (%s) on line %d of %s."
msgstr "ppdc: la variable (%s) de la línia %d de %s no està definida."
-#: ppdc/ppdc-catalog.cxx:435
#, c-format
msgid "ppdc: Unexpected text on line %d of %s."
msgstr "ppdc: hi ha un text inesperat a la línia %d de %s."
-#: ppdc/ppdc-source.cxx:2924
#, c-format
msgid "ppdc: Unknown driver type %s on line %d of %s."
msgstr "ppdc: el tipus de controlador %s de la línia %d de %s no és conegut."
-#: ppdc/ppdc-source.cxx:906
#, c-format
msgid "ppdc: Unknown duplex type \"%s\" on line %d of %s."
msgstr "ppdc: el tipus de dúplex «%s» de la línia %d de %s no és conegut."
-#: ppdc/ppdc-source.cxx:3154
#, c-format
msgid "ppdc: Unknown media size \"%s\" on line %d of %s."
msgstr "ppdc: la mida del mitjà «%s» de la línia %d de %s no és coneguda."
-#: ppdc/ppdc-catalog.cxx:463
#, c-format
msgid "ppdc: Unknown message catalog format for \"%s\"."
msgstr "ppdc: el format del catàleg de missatges de «%s» no és conegut."
-#: ppdc/ppdc-source.cxx:3408
#, c-format
msgid "ppdc: Unknown token \"%s\" seen on line %d of %s."
msgstr "ppdc: el testimoni «%s» de la línia %d de %s no és conegut."
-#: ppdc/ppdc-source.cxx:1014
#, c-format
msgid ""
"ppdc: Unknown trailing characters in real number \"%s\" on line %d of %s."
@@ -7002,125 +5424,99 @@ msgstr ""
"ppdc: els caràcters finals del número real «%s» de la línia %d de %s no són "
"coneguts."
-#: ppdc/ppdc-source.cxx:2164
#, c-format
msgid "ppdc: Unterminated string starting with %c on line %d of %s."
msgstr ""
"ppdc: la cadena que comença per %c de la línia %d de %s no està acabada."
-#: ppdc/ppdc.cxx:365
#, c-format
msgid "ppdc: Warning - overlapping filename \"%s\"."
msgstr "ppdc: avís - es superposa el nom del fitxer «%s»."
-#: ppdc/ppdc.cxx:380
#, c-format
msgid "ppdc: Writing %s."
msgstr "ppdc: s'escriu %s."
-#: ppdc/ppdc.cxx:148
#, c-format
msgid "ppdc: Writing PPD files to directory \"%s\"."
msgstr "ppdc: s'escriuen els fitxers PPD a la carpeta «%s»."
-#: ppdc/ppdmerge.cxx:136
#, c-format
msgid "ppdmerge: Bad LanguageVersion \"%s\" in %s."
msgstr "ppdmerge: LanguageVersion «%s» incorrecte a %s."
-#: ppdc/ppdmerge.cxx:176
#, c-format
msgid "ppdmerge: Ignoring PPD file %s."
msgstr "ppdmerge: el fitxer PPD %s s'ignora."
-#: ppdc/ppdmerge.cxx:160
#, c-format
msgid "ppdmerge: Unable to backup %s to %s - %s"
msgstr "ppdmerge: no s'ha pogut fer la còpia de seguretat %s a %s- %s"
-#: systemv/lpstat.c:1784
#, c-format
msgid "printer %s disabled since %s -"
msgstr "la impressora %s està deshabilitada des de %s -"
-#: systemv/lpstat.c:1773
#, c-format
msgid "printer %s is idle. enabled since %s"
msgstr "la impressora %s està inactiva. Està activada des de %s"
-#: systemv/lpstat.c:1778
#, c-format
msgid "printer %s now printing %s-%d. enabled since %s"
msgstr "la impressora %s està imprimint %s-%d. Està habilitada des de %s"
-#: systemv/lpstat.c:1909
#, c-format
msgid "printer %s/%s disabled since %s -"
msgstr "la impressora %s/%s està deshabilitada des de %s -"
-#: systemv/lpstat.c:1895
#, c-format
msgid "printer %s/%s is idle. enabled since %s"
msgstr "la impressora %s/%s està inactiva. Està activada des de %s"
-#: systemv/lpstat.c:1902
#, c-format
msgid "printer %s/%s now printing %s-%d. enabled since %s"
msgstr "la impressora %s/%s està imprimint %s-%d. Està activada des de %s"
-#: cups/notify.c:93 cups/notify.c:134
msgid "processing"
msgstr "s'està processant"
-#: systemv/lp.c:644
#, c-format
msgid "request id is %s-%d (%d file(s))"
msgstr "l'identificador de la petició és %s-%d (%d fitxer(s))"
-#: cups/snmp.c:1020
msgid "request-id uses indefinite length"
msgstr "la request-id fa servir una longitud indefinida"
-#: systemv/lpstat.c:2048
msgid "scheduler is not running"
msgstr "el programador de tasques no s'està executant"
-#: systemv/lpstat.c:2044
msgid "scheduler is running"
msgstr "el programador de tasques s'està executant"
-#: cups/adminutil.c:2159
#, c-format
msgid "stat of %s failed: %s"
msgstr "stat de %s ha fallat: %s"
-#: berkeley/lpc.c:211
msgid "status\t\tShow status of daemon and queue."
msgstr "status\t\tmostra l'estat del dimoni i la cua."
-#: cups/notify.c:96 cups/notify.c:137
msgid "stopped"
msgstr "aturat"
-#: systemv/lpstat.c:1017
#, c-format
msgid "system default destination: %s"
msgstr "destí per defecte del sistema: %s"
-#: systemv/lpstat.c:1014
#, c-format
msgid "system default destination: %s/%s"
msgstr "destí per defecte del sistema: %s/%s"
-#: cups/notify.c:108 cups/notify.c:140
msgid "unknown"
msgstr "desconegut"
-#: cups/notify.c:117
msgid "untitled"
msgstr "sense títol"
-#: cups/snmp.c:1045
msgid "variable-bindings uses indefinite length"
msgstr "La variable-bindings fa servir una longitud indefinida"
@@ -7200,6 +5596,9 @@ msgstr "La variable-bindings fa servir una longitud indefinida"
#~ msgstr ""
#~ " -v Mostra tots els atributs enviats i rebuts."
+#~ msgid "%s: Error - expected destination after \"-b\" option."
+#~ msgstr "%s: error - s'esperava un destí després de l'opció «-b»."
+
#~ msgid "3.5\" Disk - 2 1/8 x 2 3/4\""
#~ msgstr "Disc de 3.5 - 2 1/8 x 2 3/4\""
@@ -7221,6 +5620,16 @@ 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 "Print file accepted - job ID %d."
+#~ msgstr "S'ha acceptat el fitxer d'impressió - ID de la tasca %d."
+
+#~ msgid "Print file accepted - job ID unknown."
+#~ msgstr ""
+#~ "S'ha acceptat el fitxer d'impressió - l'ID de la tasca és desconegut."
+
+#~ msgid "Print file was not accepted."
+#~ msgstr "No s'ha acceptat el fitxer d'impressió."
+
#~ msgid "Printer busy, will retry in 10 seconds."
#~ msgstr ""
#~ "La impressora està ocupada. Es tornarà a intentar d'aquí a 10 segons."
@@ -7249,6 +5658,12 @@ msgstr "La variable-bindings fa servir una longitud indefinida"
#~ msgid "Shipping Address - 2 5/16 x 4\""
#~ msgstr "Adreça de lliurament - 2 5/16 x 4\""
+#~ msgid "The printer URI is incorrect or no longer exists."
+#~ msgstr "L'URI de la impressora no és correcte o ja no existeix."
+
+#~ msgid "The printer does not support IPP/%d.%d, trying IPP/%s."
+#~ msgstr "La impressora no admet el IPP/%d.%d, s'està intentant el IPP/%s."
+
#~ msgid "The printer is low on toner."
#~ msgstr "S'està acabant el tòner de la impressora."
diff --git a/locale/cups_es.po b/locale/cups_es.po
index 1fe5bb9fd..148877235 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: 2012-05-23 16:24-0700\n"
+"POT-Creation-Date: 2012-10-22 11:09-0400\n"
"PO-Revision-Date: 2012-07-01 20:21+0100\n"
"Last-Translator: Juan Pablo González Riopedre <riopedre13@yahoo.es>\n"
"Language-Team: Spanish\n"
@@ -25,189 +25,122 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: systemv/lpstat.c:1876
-#: systemv/lpstat.c:2001
msgid "\t\t(all)"
msgstr "\t\t(todos)"
-#: systemv/lpstat.c:1879
-#: systemv/lpstat.c:1882
-#: systemv/lpstat.c:2004
-#: systemv/lpstat.c:2007
msgid "\t\t(none)"
msgstr "\t\t(ninguno)"
-#: berkeley/lpc.c:434
#, c-format
msgid "\t%d entries"
msgstr "\t%d entradas"
-#: systemv/lpstat.c:756
-#: systemv/lpstat.c:772
#, c-format
msgid "\t%s"
msgstr "\t%s"
-#: systemv/lpstat.c:1857
-#: systemv/lpstat.c:1982
msgid "\tAfter fault: continue"
msgstr "\tTras fallo: continuar"
-#: systemv/lpstat.c:1481
-#: systemv/lpstat.c:1826
-#: systemv/lpstat.c:1952
#, c-format
msgid "\tAlerts: %s"
msgstr "\tAlertas: %s"
-#: systemv/lpstat.c:1880
-#: systemv/lpstat.c:2005
msgid "\tBanner required"
msgstr "\tSe necesita un rótulo"
-#: systemv/lpstat.c:1881
-#: systemv/lpstat.c:2006
msgid "\tCharset sets:"
msgstr "\tAjustes del juego de caracteres:"
-#: systemv/lpstat.c:1845
-#: systemv/lpstat.c:1970
msgid "\tConnection: direct"
msgstr "\tConexión: directa"
-#: systemv/lpstat.c:1836
-#: systemv/lpstat.c:1962
msgid "\tConnection: remote"
msgstr "\tConexión: remota"
-#: systemv/lpstat.c:1800
-#: systemv/lpstat.c:1926
msgid "\tContent types: any"
msgstr "\tTipos de contenido: cualesquiera"
-#: systemv/lpstat.c:1884
-#: systemv/lpstat.c:2009
msgid "\tDefault page size:"
msgstr "\tTamaño de página predeterminado:"
-#: systemv/lpstat.c:1883
-#: systemv/lpstat.c:2008
msgid "\tDefault pitch:"
msgstr "\tPaso predeterminado:"
-#: systemv/lpstat.c:1885
-#: systemv/lpstat.c:2010
msgid "\tDefault port settings:"
msgstr "\tAjustes del puerto predeterminados:"
-#: systemv/lpstat.c:1806
-#: systemv/lpstat.c:1932
#, c-format
msgid "\tDescription: %s"
msgstr "\tDescripción: %s"
-#: systemv/lpstat.c:1799
-#: systemv/lpstat.c:1925
msgid "\tForm mounted:"
msgstr "\tFormulario montado:"
-#: systemv/lpstat.c:1878
-#: systemv/lpstat.c:2003
msgid "\tForms allowed:"
msgstr "\tFormularios permitidos:"
-#: systemv/lpstat.c:1840
-#: systemv/lpstat.c:1966
#, c-format
msgid "\tInterface: %s.ppd"
msgstr "\tInterfaz: %s.ppd"
-#: systemv/lpstat.c:1849
-#: systemv/lpstat.c:1974
#, c-format
msgid "\tInterface: %s/interfaces/%s"
msgstr "\tInterfaz: %s/interfaces/%s"
-#: systemv/lpstat.c:1853
-#: systemv/lpstat.c:1978
#, c-format
msgid "\tInterface: %s/ppd/%s.ppd"
msgstr "\tInterfaz: %s/ppd/%s.ppd"
-#: systemv/lpstat.c:1831
-#: systemv/lpstat.c:1957
#, c-format
msgid "\tLocation: %s"
msgstr "\tUbicación: %s"
-#: systemv/lpstat.c:1856
-#: systemv/lpstat.c:1981
msgid "\tOn fault: no alert"
msgstr "\tEn fallo: no alertar"
-#: systemv/lpstat.c:1801
-#: systemv/lpstat.c:1927
msgid "\tPrinter types: unknown"
msgstr "\tTipos de impresora: desconocidos"
-#: systemv/lpstat.c:1462
#, c-format
msgid "\tStatus: %s"
msgstr "\tEstado: %s"
-#: systemv/lpstat.c:1861
-#: systemv/lpstat.c:1875
-#: systemv/lpstat.c:1986
-#: systemv/lpstat.c:2000
msgid "\tUsers allowed:"
msgstr "\tUsuarios permitidos:"
-#: systemv/lpstat.c:1868
-#: systemv/lpstat.c:1993
msgid "\tUsers denied:"
msgstr "\tUsuarios denegados:"
-#: berkeley/lpc.c:436
msgid "\tdaemon present"
msgstr "\tdemonio presente"
-#: berkeley/lpc.c:432
msgid "\tno entries"
msgstr "\tno hay entradas"
-#: berkeley/lpc.c:404
-#: berkeley/lpc.c:416
#, c-format
msgid "\tprinter is on device '%s' speed -1"
msgstr "\tla impresora está conectada a '%s' velocidad -1"
-#: berkeley/lpc.c:429
msgid "\tprinting is disabled"
msgstr "\tla impresión está desactivada"
-#: berkeley/lpc.c:427
msgid "\tprinting is enabled"
msgstr "\tla impresión está activada"
-#: systemv/lpstat.c:1484
#, c-format
msgid "\tqueued for %s"
msgstr "\ten cola para %s"
-#: berkeley/lpc.c:424
msgid "\tqueuing is disabled"
msgstr "\tla cola está desactivada"
-#: berkeley/lpc.c:422
msgid "\tqueuing is enabled"
msgstr "\tla cola está activada"
-#: systemv/lpstat.c:1792
-#: systemv/lpstat.c:1918
msgid "\treason unknown"
msgstr "\trazón desconocida"
-#: systemv/cupstestppd.c:454
msgid ""
"\n"
" DETAILED CONFORMANCE TEST RESULTS"
@@ -215,135 +148,103 @@ msgstr ""
"\n"
" RESULTADOS DETALLADOS DE LA PRUEBA DE CONFORMIDAD"
-#: systemv/cupstestppd.c:3800
msgid " Ignore specific warnings."
msgstr " Ignorar advertencias (warnings) específicas."
-#: systemv/cupstestppd.c:3804
msgid " Issue warnings instead of errors."
-msgstr " Emitor advertencias (warnings) en vez de errores."
+msgstr ""
+" Emitor advertencias (warnings) en vez de errores."
-#: systemv/cupstestppd.c:410
-#: systemv/cupstestppd.c:415
msgid " REF: Page 15, section 3.1."
msgstr " REF: Página 15, sección 3.1."
-#: systemv/cupstestppd.c:405
msgid " REF: Page 15, section 3.2."
msgstr " REF: Página 15, sección 3.2."
-#: systemv/cupstestppd.c:425
msgid " REF: Page 19, section 3.3."
msgstr " REF: Página 19, sección 3.3."
-#: systemv/cupstestppd.c:378
msgid " REF: Page 20, section 3.4."
msgstr " REF: Página 20, sección 3.4."
-#: systemv/cupstestppd.c:430
msgid " REF: Page 27, section 3.5."
msgstr " REF: Página 27, sección 3.5."
-#: systemv/cupstestppd.c:373
msgid " REF: Page 42, section 5.2."
msgstr " REF: Página 42, sección 5.2."
-#: systemv/cupstestppd.c:420
msgid " REF: Pages 16-17, section 3.2."
msgstr " REF: Páginas 16-17, sección 3.2."
-#: systemv/cupstestppd.c:390
msgid " REF: Pages 42-45, section 5.2."
msgstr " REF: Páginas 42-45, sección 5.2."
-#: systemv/cupstestppd.c:384
msgid " REF: Pages 45-46, section 5.2."
msgstr " REF: Páginas 45-46, sección 5.2."
-#: systemv/cupstestppd.c:395
msgid " REF: Pages 48-49, section 5.2."
msgstr " REF: Páginas 48-49, sección 5.2."
-#: systemv/cupstestppd.c:400
msgid " REF: Pages 52-54, section 5.2."
msgstr " REF: Páginas 52-54, sección 5.2."
-#: berkeley/lpq.c:554
#, c-format
msgid " %-39.39s %.0f bytes"
msgstr " %-39.39s %.0f bytes"
-#: systemv/cupstestppd.c:589
#, c-format
msgid " PASS Default%s"
msgstr " PASA Default%s"
-#: systemv/cupstestppd.c:524
msgid " PASS DefaultImageableArea"
msgstr " PASA DefaultImageableArea"
-#: systemv/cupstestppd.c:558
msgid " PASS DefaultPaperDimension"
msgstr " PASA DefaultPaperDimension"
-#: systemv/cupstestppd.c:631
msgid " PASS FileVersion"
msgstr " PASA FileVersion"
-#: systemv/cupstestppd.c:675
msgid " PASS FormatVersion"
msgstr " PASA FormatVersion"
-#: systemv/cupstestppd.c:695
msgid " PASS LanguageEncoding"
msgstr " PASA LanguageEncoding"
-#: systemv/cupstestppd.c:715
msgid " PASS LanguageVersion"
msgstr " PASA LanguageVersion"
-#: systemv/cupstestppd.c:769
msgid " PASS Manufacturer"
msgstr " PASA Manufacturer"
-#: systemv/cupstestppd.c:809
msgid " PASS ModelName"
msgstr " PASA ModelName"
-#: systemv/cupstestppd.c:829
msgid " PASS NickName"
msgstr " PASA NickName"
-#: systemv/cupstestppd.c:889
msgid " PASS PCFileName"
msgstr " PASA PCFileName"
-#: systemv/cupstestppd.c:964
msgid " PASS PSVersion"
msgstr " PASA PSVersion"
-#: systemv/cupstestppd.c:869
msgid " PASS PageRegion"
msgstr " PASA PageRegion"
-#: systemv/cupstestppd.c:849
msgid " PASS PageSize"
msgstr " PASA PageSize"
-#: systemv/cupstestppd.c:924
msgid " PASS Product"
msgstr " PASA Product"
-#: systemv/cupstestppd.c:999
msgid " PASS ShortNickName"
msgstr " PASA ShortNickName"
-#: systemv/cupstestppd.c:1374
#, c-format
msgid " WARN %s has no corresponding options."
msgstr " ADVERTENCIA %s tiene opciones que no corresponden."
-#: systemv/cupstestppd.c:1486
#, c-format
msgid ""
" WARN %s shares a common prefix with %s\n"
@@ -352,45 +253,48 @@ msgstr ""
" ADVERTENCIA %s comparte un prefijo común con %s\n"
" REF: Página 15, sección 3.2."
-#: systemv/cupstestppd.c:1345
#, c-format
msgid ""
-" WARN Duplex option keyword %s may not work as expected and should be named Duplex.\n"
+" WARN Duplex option keyword %s may not work as expected and should "
+"be named Duplex.\n"
" REF: Page 122, section 5.17"
msgstr ""
-" ADVERTENCIA La clave de opción Duplex %s puede que no funcione como se espera y debería llamarse Duplex.\n"
+" ADVERTENCIA La clave de opción Duplex %s puede que no funcione "
+"como se espera y debería llamarse Duplex.\n"
" REF: Página 122, sección 5.17"
-#: systemv/cupstestppd.c:1744
msgid " WARN File contains a mix of CR, LF, and CR LF line endings."
-msgstr " ADVERTENCIA El archivo contiene una mezcla de líneas acabadas en CR, LF y CR LF."
+msgstr ""
+" ADVERTENCIA El archivo contiene una mezcla de líneas acabadas en "
+"CR, LF y CR LF."
-#: systemv/cupstestppd.c:1390
msgid ""
" WARN LanguageEncoding required by PPD 4.3 spec.\n"
" REF: Pages 56-57, section 5.3."
msgstr ""
-" ADVERTENCIA Se necesita LanguageEncoding por especificación de PPD 4.3.\n"
+" ADVERTENCIA Se necesita LanguageEncoding por especificación de "
+"PPD 4.3.\n"
" REF: Páginas 56-57, sección 5.3."
-#: systemv/cupstestppd.c:1726
#, c-format
msgid " WARN Line %d only contains whitespace."
msgstr " ADVERTENCIA La línea %d solo contiene espacios en blanco."
-#: systemv/cupstestppd.c:1398
msgid ""
" WARN Manufacturer required by PPD 4.3 spec.\n"
" REF: Pages 58-59, section 5.3."
msgstr ""
-" ADVERTENCIA Se necesita Manufacturer por especificación de PPD 4.3.\n"
+" ADVERTENCIA Se necesita Manufacturer por especificación de PPD "
+"4.3.\n"
" REF: Páginas 58-59, sección 5.3."
-#: systemv/cupstestppd.c:1749
-msgid " WARN Non-Windows PPD files should use lines ending with only LF, not CR LF."
-msgstr " ADVERTENCIA Los archivos PPD que no sean de Windows deben tener líneas que acaben sólo en LF, no en CR LF."
+msgid ""
+" WARN Non-Windows PPD files should use lines ending with only LF, "
+"not CR LF."
+msgstr ""
+" ADVERTENCIA Los archivos PPD que no sean de Windows deben tener "
+"líneas que acaben sólo en LF, no en CR LF."
-#: systemv/cupstestppd.c:1382
#, c-format
msgid ""
" WARN Obsolete PPD version %.1f.\n"
@@ -399,15 +303,14 @@ msgstr ""
" ADVERTENCIA Versión de PPD %.1f anticuada.\n"
" REF: Página 42, sección 5.2."
-#: systemv/cupstestppd.c:1413
msgid ""
" WARN PCFileName longer than 8.3 in violation of PPD spec.\n"
" REF: Pages 61-62, section 5.3."
msgstr ""
-" ADVERTENCIA PCFileName es mas largo que 8.3 violando la especificación PPD.\n"
+" ADVERTENCIA PCFileName es mas largo que 8.3 violando la "
+"especificación PPD.\n"
" REF: Páginas 61-62, sección 5.3."
-#: systemv/cupstestppd.c:1421
msgid ""
" WARN PCFileName should contain a unique filename.\n"
" REF: Pages 61-62, section 5.3."
@@ -415,43 +318,39 @@ msgstr ""
" ADVERTENCIA PCFileName debe contener un único nombre de archivo.\n"
" REF: Páginas 61-62, sección 5.3."
-#: systemv/cupstestppd.c:1456
msgid ""
" WARN Protocols contains PJL but JCL attributes are not set.\n"
" REF: Pages 78-79, section 5.7."
msgstr ""
-" ADVERTENCIA Los protocolos contienen PJL pero no se especifican los atributos JCL.\n"
+" ADVERTENCIA Los protocolos contienen PJL pero no se especifican "
+"los atributos JCL.\n"
" REF: Páginas 78-79, sección 5.7."
-#: systemv/cupstestppd.c:1447
msgid ""
" WARN Protocols contains both PJL and BCP; expected TBCP.\n"
" REF: Pages 78-79, section 5.7."
msgstr ""
-" ADVERTENCIA Los protocolos contienen a ambos, PJL y BCP; se esperaba TBCP.\n"
+" ADVERTENCIA Los protocolos contienen a ambos, PJL y BCP; se "
+"esperaba TBCP.\n"
" REF: Páginas 78-79, sección 5.7."
-#: systemv/cupstestppd.c:1430
msgid ""
" WARN ShortNickName required by PPD 4.3 spec.\n"
" REF: Pages 64-65, section 5.3."
msgstr ""
-" ADVERTENCIA Se necesita ShortNickName por especificación de PPD 4.3.\n"
+" ADVERTENCIA Se necesita ShortNickName por especificación de PPD "
+"4.3.\n"
" REF: Páginas 64-65, sección 5.3."
-#: systemv/cupsaddsmb.c:282
msgid " cupsaddsmb [options] -a"
msgstr " cupsaddsmb [opciones] -a"
-#: systemv/cupstestdsc.c:427
msgid " cupstestdsc [options] -"
msgstr " cupstestdsc [opciones] -"
-#: systemv/cupstestppd.c:3795
msgid " program | cupstestppd [options] -"
msgstr " programa | cupstestppd [opciones] -"
-#: systemv/cupstestppd.c:3727
#, c-format
msgid ""
" %s \"%s %s\" conflicts with \"%s %s\"\n"
@@ -460,17 +359,14 @@ msgstr ""
" %s \"%s %s\" está en conflictocon \"%s %s\"\n"
" (restricción=\"%s %s %s %s\")."
-#: systemv/cupstestppd.c:2248
#, c-format
msgid " %s %s %s does not exist."
msgstr " %s %s %s no existe."
-#: systemv/cupstestppd.c:3884
#, c-format
msgid " %s %s file \"%s\" has the wrong capitalization."
msgstr " %s archivo %s \"%s\" tiene las mayúsculas equivocadas"
-#: systemv/cupstestppd.c:2318
#, c-format
msgid ""
" %s Bad %s choice %s.\n"
@@ -479,113 +375,73 @@ msgstr ""
" %s Preferencia %s incorrecta %s.\n"
" REF: Página 122, sección 5.17"
-#: systemv/cupstestppd.c:3487
-#: systemv/cupstestppd.c:3536
-#: systemv/cupstestppd.c:3575
#, c-format
msgid " %s Bad UTF-8 \"%s\" translation string for option %s, choice %s."
-msgstr " %s Cadena de traducción UTF-8 \"%s\" incorrecta para opción %s, preferencia %s."
+msgstr ""
+" %s Cadena de traducción UTF-8 \"%s\" incorrecta para opción %s, "
+"preferencia %s."
-#: systemv/cupstestppd.c:3441
#, c-format
msgid " %s Bad UTF-8 \"%s\" translation string for option %s."
msgstr " %s Cadena de traducción UTF-8 \"%s\" incorrecta para opción %s."
-#: systemv/cupstestppd.c:2389
#, c-format
msgid " %s Bad cupsFilter value \"%s\"."
msgstr " %s Valor cupsFilter \"%s\" incorrecto."
-#: systemv/cupstestppd.c:2475
#, c-format
msgid " %s Bad cupsFilter2 value \"%s\"."
msgstr " %s Valor cupsFilter2 incorrecto \"%s\"."
-#: systemv/cupstestppd.c:2964
#, c-format
msgid " %s Bad cupsICCProfile %s."
msgstr " %s cupsICCProfile %s incorrecto."
-#: systemv/cupstestppd.c:2571
#, c-format
msgid " %s Bad cupsPreFilter value \"%s\"."
msgstr " %s Valor cupsPreFilter \"%s\" incorrecto."
-#: systemv/cupstestppd.c:1822
#, c-format
msgid " %s Bad cupsUIConstraints %s: \"%s\""
msgstr " %s cupsUIConstraints %s: \"%s\" incorrecto"
-#: systemv/cupstestppd.c:3391
#, c-format
msgid " %s Bad language \"%s\"."
msgstr " %s Idioma incorrecto \"%s\"."
-#: systemv/cupstestppd.c:2433
-#: systemv/cupstestppd.c:2529
-#: systemv/cupstestppd.c:2615
-#: systemv/cupstestppd.c:2673
-#: systemv/cupstestppd.c:2728
-#: systemv/cupstestppd.c:2783
-#: systemv/cupstestppd.c:2838
-#: systemv/cupstestppd.c:2891
-#: systemv/cupstestppd.c:3013
#, c-format
msgid " %s Bad permissions on %s file \"%s\"."
msgstr " %s Permisos incorrectos en el archivo %s \"%s\"."
-#: systemv/cupstestppd.c:2373
-#: systemv/cupstestppd.c:2459
-#: systemv/cupstestppd.c:2555
-#: systemv/cupstestppd.c:2642
-#: systemv/cupstestppd.c:2697
-#: systemv/cupstestppd.c:2752
-#: systemv/cupstestppd.c:2807
-#: systemv/cupstestppd.c:2862
#, c-format
msgid " %s Bad spelling of %s - should be %s."
msgstr " %s %s mal escrito - debería ser %s."
-#: systemv/cupstestppd.c:2907
#, c-format
msgid " %s Cannot provide both APScanAppPath and APScanAppBundleID."
msgstr " %s No puede proporcionar APScanAppPath y APScanAppBundleID."
-#: systemv/cupstestppd.c:2205
#, c-format
msgid " %s Default choices conflicting."
msgstr " %s Las preferencias predeterminadas están en conflicto."
-#: systemv/cupstestppd.c:1803
#, c-format
msgid " %s Empty cupsUIConstraints %s"
msgstr " %s cupsUIConstraints %s vacío."
-#: systemv/cupstestppd.c:3519
-#: systemv/cupstestppd.c:3559
#, c-format
msgid " %s Missing \"%s\" translation string for option %s, choice %s."
-msgstr " %s Falta cadena de traducción \"%s\" para opción %s, preferencia %s."
+msgstr ""
+" %s Falta cadena de traducción \"%s\" para opción %s, preferencia %s."
-#: systemv/cupstestppd.c:3427
#, c-format
msgid " %s Missing \"%s\" translation string for option %s."
msgstr " %s Falta cadena de traducción \"%s\" para opción %s."
-#: systemv/cupstestppd.c:2418
-#: systemv/cupstestppd.c:2514
-#: systemv/cupstestppd.c:2600
-#: systemv/cupstestppd.c:2658
-#: systemv/cupstestppd.c:2713
-#: systemv/cupstestppd.c:2768
-#: systemv/cupstestppd.c:2823
-#: systemv/cupstestppd.c:2875
-#: systemv/cupstestppd.c:2998
#, c-format
msgid " %s Missing %s file \"%s\"."
msgstr " %s Falta archivo %s \"%s\"."
-#: systemv/cupstestppd.c:3121
#, c-format
msgid ""
" %s Missing REQUIRED PageRegion option.\n"
@@ -594,7 +450,6 @@ msgstr ""
" %s Falta la opción NECESARIA PageRegion.\n"
" REF: Página 100, sección 5.14."
-#: systemv/cupstestppd.c:3106
#, c-format
msgid ""
" %s Missing REQUIRED PageSize option.\n"
@@ -603,39 +458,31 @@ msgstr ""
" %s Falta la opción NECESARIA PageSize.\n"
" REF: Página 99, sección 5.14."
-#: systemv/cupstestppd.c:2013
-#: systemv/cupstestppd.c:2054
#, c-format
msgid " %s Missing choice *%s %s in UIConstraints \"*%s %s *%s %s\"."
-msgstr " %s Falta la preferencia *%s %s en UIConstraint \"*%s %s *%s %s\"."
+msgstr ""
+" %s Falta la preferencia *%s %s en UIConstraint \"*%s %s *%s %s\"."
-#: systemv/cupstestppd.c:1908
#, c-format
msgid " %s Missing choice *%s %s in cupsUIConstraints %s: \"%s\""
msgstr " %s Falta la preferencia *%s %s en cupsUIConstraints %s: \"%s\""
-#: systemv/cupstestppd.c:1840
#, c-format
msgid " %s Missing cupsUIResolver %s"
msgstr " %s Falta cupsUIResolver %s"
-#: systemv/cupstestppd.c:1999
-#: systemv/cupstestppd.c:2040
#, c-format
msgid " %s Missing option %s in UIConstraints \"*%s %s *%s %s\"."
msgstr " %s Falta la opción %s en UIConstraints \"*%s %s *%s %s\"."
-#: systemv/cupstestppd.c:1892
#, c-format
msgid " %s Missing option %s in cupsUIConstraints %s: \"%s\""
msgstr " %s Falta la opción %s en cupsUIConstraints %s: \"%s\""
-#: systemv/cupstestppd.c:3613
#, c-format
msgid " %s No base translation \"%s\" is included in file."
msgstr " %s No hay traducción base \"%s\" incluida en el archivo."
-#: systemv/cupstestppd.c:2294
#, c-format
msgid ""
" %s REQUIRED %s does not define choice None.\n"
@@ -644,43 +491,36 @@ msgstr ""
" %s NECESARIA %s no define la opción None.\n"
" REF: Página 122, sección 5.17"
-#: systemv/cupstestppd.c:3180
-#: systemv/cupstestppd.c:3194
#, c-format
msgid " %s Size \"%s\" defined for %s but not for %s."
msgstr " %s Tamaño \"%s\" definido para %s pero no para %s."
-#: systemv/cupstestppd.c:3160
#, c-format
msgid " %s Size \"%s\" has unexpected dimensions (%gx%g)."
msgstr " %s El tamaño \"%s\" tiene dimensiones inesperadas (%gx%g)."
-#: systemv/cupstestppd.c:3332
#, c-format
msgid " %s Size \"%s\" should be \"%s\"."
msgstr " %s Tamaño \"%s\" debería ser \"%s\"."
-#: systemv/cupstestppd.c:3292
#, c-format
msgid " %s Size \"%s\" should be the Adobe standard name \"%s\"."
-msgstr " %s Tamaño \"%s\" debería ser el nombre estandar de Adobe \"%s\"."
+msgstr ""
+" %s Tamaño \"%s\" debería ser el nombre estandar de Adobe \"%s\"."
-#: systemv/cupstestppd.c:3041
#, c-format
msgid " %s cupsICCProfile %s hash value collides with %s."
msgstr " %s valor hash de cupsICCProfile %s colisiona con %s."
-#: systemv/cupstestppd.c:1963
#, c-format
msgid " %s cupsUIResolver %s causes a loop."
msgstr " %s cupsUIResolver %s genera un bucle."
-#: systemv/cupstestppd.c:1945
#, c-format
-msgid " %s cupsUIResolver %s does not list at least two different options."
+msgid ""
+" %s cupsUIResolver %s does not list at least two different options."
msgstr " %s cupsUIResolver %s no lista al menos dos opciones diferentes."
-#: systemv/cupstestppd.c:1168
#, c-format
msgid ""
" **FAIL** %s must be 1284DeviceID\n"
@@ -689,7 +529,6 @@ msgstr ""
" **FALLO** %s debe ser 1284DeviceID\n"
" REF: Página 72, sección 5.5"
-#: systemv/cupstestppd.c:580
#, c-format
msgid ""
" **FAIL** Bad Default%s %s\n"
@@ -698,7 +537,6 @@ msgstr ""
" **FALLO** Default%s %s incorrecto\n"
" REF: Página 40, sección 4.5."
-#: systemv/cupstestppd.c:514
#, c-format
msgid ""
" **FAIL** Bad DefaultImageableArea %s\n"
@@ -707,7 +545,6 @@ msgstr ""
" **FALLO** DefaultImageableArea %s incorrecto\n"
" REF: Página 102, sección 5.15."
-#: systemv/cupstestppd.c:550
#, c-format
msgid ""
" **FAIL** Bad DefaultPaperDimension %s\n"
@@ -716,7 +553,6 @@ msgstr ""
" **FALLO** DefaultPaperDimension %s incorrecto\n"
" REF: Página 103, sección 5.15."
-#: systemv/cupstestppd.c:623
#, c-format
msgid ""
" **FAIL** Bad FileVersion \"%s\"\n"
@@ -725,7 +561,6 @@ msgstr ""
" **FALLO** FileVersion \"%s\" incorrecto\n"
" REF: Página 56, sección 5.3."
-#: systemv/cupstestppd.c:667
#, c-format
msgid ""
" **FAIL** Bad FormatVersion \"%s\"\n"
@@ -734,7 +569,6 @@ msgstr ""
" **FALLO** FormatVersion \"%s\" incorrecto\n"
" REF: Página 56, sección 5.3."
-#: systemv/cupstestppd.c:1025
msgid ""
" **FAIL** Bad JobPatchFile attribute in file\n"
" REF: Page 24, section 3.4."
@@ -742,18 +576,16 @@ msgstr ""
" **FALLO** Atributo JobPatchFile en archivo, incorrecto\n"
" REF: Página 24, sección 3.4."
-#: systemv/cupstestppd.c:1213
#, c-format
msgid " **FAIL** Bad LanguageEncoding %s - must be ISOLatin1."
-msgstr " **FALLO** LanguageEncoding %s incorrecto: debería ser ISOLatin1."
+msgstr ""
+" **FALLO** LanguageEncoding %s incorrecto: debería ser ISOLatin1."
-#: systemv/cupstestppd.c:1227
#, c-format
msgid " **FAIL** Bad LanguageVersion %s - must be English."
-msgstr " **FALLO** LanguageVersion %s incorrecto: debería ser English (Inglés)."
+msgstr ""
+" **FALLO** LanguageVersion %s incorrecto: debería ser English (Inglés)."
-#: systemv/cupstestppd.c:743
-#: systemv/cupstestppd.c:760
#, c-format
msgid ""
" **FAIL** Bad Manufacturer (should be \"%s\")\n"
@@ -762,7 +594,6 @@ msgstr ""
" **FALLO** Fabricante incorrecto (debería ser \"%s\")\n"
" REF: Página 211, tabla D.1."
-#: systemv/cupstestppd.c:800
#, c-format
msgid ""
" **FAIL** Bad ModelName - \"%c\" not allowed in string.\n"
@@ -771,7 +602,6 @@ msgstr ""
" **FALLO** ModelName incorrecto - \"%c\" no permitido en la cadena.\n"
" REF: Páginas 59-60, sección 5.3."
-#: systemv/cupstestppd.c:956
msgid ""
" **FAIL** Bad PSVersion - not \"(string) int\".\n"
" REF: Pages 62-64, section 5.3."
@@ -779,7 +609,6 @@ msgstr ""
" **FALLO** PSVersion incorrecto - no es \"(string) int\".\n"
" REF: Páginas 62-64, sección 5.3."
-#: systemv/cupstestppd.c:917
msgid ""
" **FAIL** Bad Product - not \"(string)\".\n"
" REF: Page 62, section 5.3."
@@ -787,7 +616,6 @@ msgstr ""
" **FALLO** Product incorrecto - no es \"(string)\".\n"
" REF: Página 62, sección 5.3."
-#: systemv/cupstestppd.c:991
msgid ""
" **FAIL** Bad ShortNickName - longer than 31 chars.\n"
" REF: Pages 64-65, section 5.3."
@@ -795,7 +623,6 @@ msgstr ""
" **FALLO** ShortNickName incorrecto - mayor de 31 caracteres.\n"
" REF: Páginas 64-65, sección 5.3."
-#: systemv/cupstestppd.c:1149
#, c-format
msgid ""
" **FAIL** Bad option %s choice %s\n"
@@ -804,43 +631,51 @@ msgstr ""
" **FALLO** Opción %s, preferencia %s incorrecta\n"
" REF: Página 84, sección 5.9"
-#: systemv/cupstestppd.c:3754
-#: systemv/cupstestppd.c:3776
#, c-format
msgid " **FAIL** Default option code cannot be interpreted: %s"
-msgstr " **FALLO** El código de opción predeterminado no puede ser interpretado: %s"
+msgstr ""
+" **FALLO** El código de opción predeterminado no puede ser "
+"interpretado: %s"
-#: systemv/cupstestppd.c:1286
#, c-format
-msgid " **FAIL** Default translation string for option %s choice %s contains 8-bit characters."
-msgstr " **FALLO** Cadena de traducción predeterminada para opción %s preferencia %s contiene caracteres de 8-bits."
+msgid ""
+" **FAIL** Default translation string for option %s choice %s contains "
+"8-bit characters."
+msgstr ""
+" **FALLO** Cadena de traducción predeterminada para opción %s "
+"preferencia %s contiene caracteres de 8-bits."
-#: systemv/cupstestppd.c:1259
#, c-format
-msgid " **FAIL** Default translation string for option %s contains 8-bit characters."
-msgstr " **FALLO** Cadena de traducción predeterminada para opción %s contiene caracteres de 8-bits."
+msgid ""
+" **FAIL** Default translation string for option %s contains 8-bit "
+"characters."
+msgstr ""
+" **FALLO** Cadena de traducción predeterminada para opción %s contiene "
+"caracteres de 8-bits."
-#: systemv/cupstestppd.c:2101
#, c-format
msgid " **FAIL** Group names %s and %s differ only by case."
-msgstr " **FALLO** Nombres de grupo %s y %s se diferencian sólo en la capitalización."
+msgstr ""
+" **FALLO** Nombres de grupo %s y %s se diferencian sólo en la "
+"capitalización."
-#: systemv/cupstestppd.c:2146
#, c-format
msgid " **FAIL** Multiple occurrences of option %s choice name %s."
-msgstr " **FALLO** Múltiples apariciones de opción %s nombre de preferencia %s."
+msgstr ""
+" **FALLO** Múltiples apariciones de opción %s nombre de preferencia %s."
-#: systemv/cupstestppd.c:2163
#, c-format
msgid " **FAIL** Option %s choice names %s and %s differ only by case."
-msgstr " **FALLO** Opción %s nombres de preferencia %s y %s se diferencian sólo en la capitalización."
+msgstr ""
+" **FALLO** Opción %s nombres de preferencia %s y %s se diferencian "
+"sólo en la capitalización."
-#: systemv/cupstestppd.c:2123
#, c-format
msgid " **FAIL** Option names %s and %s differ only by case."
-msgstr " **FALLO** Nombres de opción %s y %s se diferencian sólo en la capitalización."
+msgstr ""
+" **FALLO** Nombres de opción %s y %s se diferencian sólo en la "
+"capitalización."
-#: systemv/cupstestppd.c:600
#, c-format
msgid ""
" **FAIL** REQUIRED Default%s\n"
@@ -849,7 +684,6 @@ msgstr ""
" **FALLO** SE NECESITA Default%s\n"
" REF: Página 40, sección 4.5."
-#: systemv/cupstestppd.c:499
msgid ""
" **FAIL** REQUIRED DefaultImageableArea\n"
" REF: Page 102, section 5.15."
@@ -857,7 +691,6 @@ msgstr ""
" **FALLO** SE NECESITA DefaultImageableArea\n"
" REF: Página 102, sección 5.15."
-#: systemv/cupstestppd.c:535
msgid ""
" **FAIL** REQUIRED DefaultPaperDimension\n"
" REF: Page 103, section 5.15."
@@ -865,7 +698,6 @@ msgstr ""
" **FALLO** SE NECESITA DefaultPaperDimension\n"
" REF: Página 103, sección 5.15."
-#: systemv/cupstestppd.c:641
msgid ""
" **FAIL** REQUIRED FileVersion\n"
" REF: Page 56, section 5.3."
@@ -873,7 +705,6 @@ msgstr ""
" **FALLO** SE NECESITA FileVersion\n"
" REF: Página 56, sección 5.3."
-#: systemv/cupstestppd.c:685
msgid ""
" **FAIL** REQUIRED FormatVersion\n"
" REF: Page 56, section 5.3."
@@ -881,7 +712,6 @@ msgstr ""
" **FALLO** SE NECESITA FormatVersion\n"
" REF: Página 56, sección 5.3."
-#: systemv/cupstestppd.c:1076
#, c-format
msgid ""
" **FAIL** REQUIRED ImageableArea for PageSize %s\n"
@@ -892,7 +722,6 @@ msgstr ""
" REF: Página 41, sección 5.\n"
" REF: Página 102, sección 5.15."
-#: systemv/cupstestppd.c:705
msgid ""
" **FAIL** REQUIRED LanguageEncoding\n"
" REF: Pages 56-57, section 5.3."
@@ -900,7 +729,6 @@ msgstr ""
" **FALLO** SE NECESITA LanguageEncoding\n"
" REF: Páginas 56-57, sección 5.3."
-#: systemv/cupstestppd.c:725
msgid ""
" **FAIL** REQUIRED LanguageVersion\n"
" REF: Pages 57-58, section 5.3."
@@ -908,7 +736,6 @@ msgstr ""
" **FALLO** SE NECESITA LanguageVersion\n"
" REF: Páginas 57-58, sección 5.3."
-#: systemv/cupstestppd.c:779
msgid ""
" **FAIL** REQUIRED Manufacturer\n"
" REF: Pages 58-59, section 5.3."
@@ -916,7 +743,6 @@ msgstr ""
" **FALLO** SE NECESITA Manufacturer\n"
" REF: Páginas 58-59, sección 5.3."
-#: systemv/cupstestppd.c:819
msgid ""
" **FAIL** REQUIRED ModelName\n"
" REF: Pages 59-60, section 5.3."
@@ -924,7 +750,6 @@ msgstr ""
" **FALLO** SE NECESITA ModelName\n"
" REF: Páginas 59-60, sección 5.3."
-#: systemv/cupstestppd.c:839
msgid ""
" **FAIL** REQUIRED NickName\n"
" REF: Page 60, section 5.3."
@@ -932,7 +757,6 @@ msgstr ""
" **FALLO** SE NECESITA NickName\n"
" REF: Página 60, sección 5.3."
-#: systemv/cupstestppd.c:899
msgid ""
" **FAIL** REQUIRED PCFileName\n"
" REF: Pages 61-62, section 5.3."
@@ -940,7 +764,6 @@ msgstr ""
" **FALLO** SE NECESITA PCFileName\n"
" REF: Páginas 61-62, sección 5.3."
-#: systemv/cupstestppd.c:974
msgid ""
" **FAIL** REQUIRED PSVersion\n"
" REF: Pages 62-64, section 5.3."
@@ -948,7 +771,6 @@ msgstr ""
" **FALLO** SE NECESITA PSVersion\n"
" REF: Páginas 62-64, sección 5.3."
-#: systemv/cupstestppd.c:879
msgid ""
" **FAIL** REQUIRED PageRegion\n"
" REF: Page 100, section 5.14."
@@ -956,7 +778,6 @@ msgstr ""
" **FALLO** SE NECESITA PageRegion\n"
" REF: Página 100, sección 5.14."
-#: systemv/cupstestppd.c:1045
msgid ""
" **FAIL** REQUIRED PageSize\n"
" REF: Page 41, section 5.\n"
@@ -966,7 +787,6 @@ msgstr ""
" REF: Página 41, sección 5.\n"
" REF: Página 99, sección 5.14."
-#: systemv/cupstestppd.c:859
msgid ""
" **FAIL** REQUIRED PageSize\n"
" REF: Pages 99-100, section 5.14."
@@ -974,7 +794,6 @@ msgstr ""
" **FALLO** SE NECESITA PageSize\n"
" REF: Páginas 99-100, sección 5.14."
-#: systemv/cupstestppd.c:1098
#, c-format
msgid ""
" **FAIL** REQUIRED PaperDimension for PageSize %s\n"
@@ -985,7 +804,6 @@ msgstr ""
" REF: Página 41, sección 5.\n"
" REF: Página 103, sección 5.15."
-#: systemv/cupstestppd.c:934
msgid ""
" **FAIL** REQUIRED Product\n"
" REF: Page 62, section 5.3."
@@ -993,7 +811,6 @@ msgstr ""
" **FALLO** SE NECESITA Product\n"
" REF: Página 62, sección 5.3."
-#: systemv/cupstestppd.c:1009
msgid ""
" **FAIL** REQUIRED ShortNickName\n"
" REF: Page 64-65, section 5.3."
@@ -1001,24 +818,18 @@ msgstr ""
" **FALLO** SE NECESITA ShortNickName\n"
" REF: Página 64-65, sección 5.3."
-#: systemv/cupstestppd.c:334
-#: systemv/cupstestppd.c:353
-#: systemv/cupstestppd.c:365
#, c-format
msgid " **FAIL** Unable to open PPD file - %s on line %d."
-msgstr " **FALLO** No se ha podido abrir el archivo PPD - %s en la línea %d."
+msgstr ""
+" **FALLO** No se ha podido abrir el archivo PPD - %s en la línea %d."
-#: systemv/cupstestppd.c:1498
#, c-format
msgid " %d ERRORS FOUND"
msgstr " %d ERRORES ENCONTRADOS"
-#: systemv/cupstestdsc.c:431
msgid " -h Show program usage"
msgstr " -h Mostrar el uso del programa"
-#: systemv/cupstestdsc.c:234
-#: systemv/cupstestdsc.c:276
#, c-format
msgid ""
" Bad %%%%BoundingBox: on line %d.\n"
@@ -1027,7 +838,6 @@ msgstr ""
" %%%%BoundingBox: incorrecto en línea %d.\n"
" REF: Página 39, %%%%BoundingBox:"
-#: systemv/cupstestdsc.c:305
#, c-format
msgid ""
" Bad %%%%Page: on line %d.\n"
@@ -1036,8 +846,6 @@ msgstr ""
" %%%%Page: incorrecto en línea %d.\n"
" REF: Página 53, %%%%Page:"
-#: systemv/cupstestdsc.c:218
-#: systemv/cupstestdsc.c:258
#, c-format
msgid ""
" Bad %%%%Pages: on line %d.\n"
@@ -1046,7 +854,6 @@ msgstr ""
" %%%%Pages: incorrecto en línea %d.\n"
" REF: Página 43, %%%%Pages:"
-#: systemv/cupstestdsc.c:176
#, c-format
msgid ""
" Line %d is longer than 255 characters (%d).\n"
@@ -1055,7 +862,6 @@ msgstr ""
" La línea %d es más larga de 255 caracteres (%d).\n"
" REF: Página 25, Longitud de Línea"
-#: systemv/cupstestdsc.c:192
msgid ""
" Missing %!PS-Adobe-3.0 on first line.\n"
" REF: Page 17, 3.1 Conforming Documents"
@@ -1063,12 +869,11 @@ msgstr ""
" Falta %!PS-Adobe-3.0 en la primera línea.\n"
" REF: Página 17, 3.1 Conformidad de documentos"
-#: systemv/cupstestdsc.c:362
#, c-format
msgid " Missing %%EndComments comment. REF: Page 41, %%EndComments"
-msgstr " Falta comentario %%EndComments. REF: Página 41, %%EndComments"
+msgstr ""
+" Falta comentario %%EndComments. REF: Página 41, %%EndComments"
-#: systemv/cupstestdsc.c:342
#, c-format
msgid ""
" Missing or bad %%BoundingBox: comment.\n"
@@ -1077,7 +882,6 @@ msgstr ""
" Falta comentario %%BoundingBox: o incorrecto.\n"
" REF: Página 39, %%BoundingBox:"
-#: systemv/cupstestdsc.c:372
#, c-format
msgid ""
" Missing or bad %%Page: comments.\n"
@@ -1086,7 +890,6 @@ msgstr ""
" Falta comentario %%Page: o incorrecto.\n"
" REF: Página 53, %%Page:"
-#: systemv/cupstestdsc.c:352
#, c-format
msgid ""
" Missing or bad %%Pages: comment.\n"
@@ -1095,2177 +898,1540 @@ msgstr ""
" Falta comentario %%Pages: o incorrecto.\n"
" REF: Página 43, %%Pages:"
-#: systemv/cupstestppd.c:1500
msgid " NO ERRORS FOUND"
msgstr " NO SE HAN ENCONTRADO ERRORES"
-#: systemv/cupstestdsc.c:395
#, c-format
msgid " Saw %d lines that exceeded 255 characters."
msgstr " Se han visto %d líneas que exceden de 255 caracteres."
-#: systemv/cupstestdsc.c:390
#, c-format
msgid " Too many %%BeginDocument comments."
msgstr " Demasiados comentarios %%BeginDocument."
-#: systemv/cupstestdsc.c:382
#, c-format
msgid " Too many %%EndDocument comments."
msgstr " Demasiados comentarios %%EndDocument."
-#: systemv/cupstestdsc.c:402
msgid " Warning: file contains binary data."
msgstr " Advertencia: el archivo contiene datos binarios."
-#: systemv/cupstestdsc.c:410
#, c-format
msgid " Warning: no %%EndComments comment in file."
msgstr " Advertencia: no hay comentario %%EndComments en el archivo."
-#: systemv/cupstestdsc.c:406
#, c-format
msgid " Warning: obsolete DSC version %.1f in file."
msgstr " Advertencia: versión DSC %.1f obsoleta en el archivo."
-#: systemv/cupsctl.c:210
msgid " --[no-]debug-logging Turn debug logging on/off."
msgstr " --[no-]debug-logging Activar/desactivar registro de depuración."
-#: systemv/cupsctl.c:212
msgid " --[no-]remote-admin Turn remote administration on/off."
msgstr " --[no-]remote-admin Activar/desactivar administración remota."
-#: systemv/cupsctl.c:214
msgid " --[no-]remote-any Allow/prevent access from the Internet."
msgstr " --[no-]remote-any Permitir/evitar acceso desde Internet."
-#: systemv/cupsctl.c:216
msgid " --[no-]share-printers Turn printer sharing on/off."
-msgstr " --[no-]share-printers Activar/desactivar compartición de impresoras."
+msgstr ""
+" --[no-]share-printers Activar/desactivar compartición de impresoras."
-#: systemv/cupsctl.c:218
msgid " --[no-]user-cancel-any Allow/prevent users to cancel any job."
-msgstr " --[no-]user-cancel-any Permitir/evitar a usuarios que cancelen cualquier trabajo."
+msgstr ""
+" --[no-]user-cancel-any Permitir/evitar a usuarios que cancelen cualquier "
+"trabajo."
-#: ppdc/ppdc.cxx:455
msgid " --cr End lines with CR (Mac OS 9)."
msgstr " --cr Finalizar líneas con CR (Mac OS 9)."
-#: ppdc/ppdc.cxx:457
msgid " --crlf End lines with CR + LF (Windows)."
msgstr " --crlf Finalizar líneas con CR + LF (Windows)."
-#: ppdc/ppdc.cxx:459
msgid " --lf End lines with LF (UNIX/Linux/OS X)."
msgstr " --lf Finalizar líneas con LF (UNIX/Linux/OS X)."
-#: test/ipptool.c:4404
msgid " -4 Connect using IPv4."
msgstr " -4 Conectar usando IPv4."
-#: test/ipptool.c:4405
msgid " -6 Connect using IPv6."
msgstr " -6 Conectar usando IPv6."
-#: test/ipptool.c:4406
msgid " -C Send requests using chunking (default)."
-msgstr " -C Enviar peticiones usando fragmentación (predeterminado)."
+msgstr ""
+" -C Enviar peticiones usando fragmentación "
+"(predeterminado)."
-#: scheduler/cupsfilter.c:1431
msgid " -D Remove the input file when finished."
msgstr " -D Eliminar el archivo de entrada al terminar."
-#: ppdc/ppdc.cxx:438
-#: ppdc/ppdhtml.cxx:175
-#: ppdc/ppdpo.cxx:255
msgid " -D name=value Set named variable to value."
msgstr " -D nombre=valor Establece la variable nombre al valor."
-#: systemv/cupsaddsmb.c:285
-#: systemv/cupsctl.c:205
msgid " -E Encrypt the connection."
msgstr " -E Cifra la conexión."
-#: test/ipptool.c:4408
msgid " -E Test with HTTP Upgrade to TLS."
msgstr " -E Prueba con actualización HTTP a TLS."
-#: scheduler/main.c:2021
-msgid " -F Run in the foreground but detach from console."
-msgstr " -F Ejecuta en primer plano pero separado de la consola."
+msgid ""
+" -F Run in the foreground but detach from console."
+msgstr ""
+" -F Ejecuta en primer plano pero separado de la "
+"consola."
-#: systemv/cupsaddsmb.c:286
msgid " -H samba-server Use the named SAMBA server."
msgstr " -H servidor-samba Usa el servidor SAMBA nombrado."
-#: test/ipptool.c:4410
msgid " -I Ignore errors."
msgstr " -I Ignora errores."
-#: ppdc/ppdc.cxx:440
-#: ppdc/ppdhtml.cxx:177
-#: ppdc/ppdi.cxx:131
-#: ppdc/ppdpo.cxx:257
msgid " -I include-dir Add include directory to search path."
-msgstr " -I include-dir Añade directorio include a la ruta de búsqueda."
+msgstr ""
+" -I include-dir Añade directorio include a la ruta de búsqueda."
-#: systemv/cupstestppd.c:3799
msgid " -I {filename,filters,none,profiles}"
msgstr " -I {filename,filters,none,profiles}"
-#: test/ipptool.c:4411
msgid " -L Send requests using content-length."
msgstr " -L Envía peticiones usando content-length."
-#: scheduler/cupsfilter.c:1433
msgid " -P filename.ppd Set PPD file."
msgstr " -P nombre_archivo.ppd Establece archivo PPD."
-#: systemv/cupstestppd.c:3801
msgid " -R root-directory Set alternate root."
msgstr " -R directorio-raíz Establece directorio raíz alternativo."
-#: test/ipptool.c:4413
msgid " -S Test with SSL encryption."
msgstr " -S Prueba con cifrado SSL."
-#: test/ipptool.c:4415
msgid " -T seconds Set the receive/send timeout in seconds."
-msgstr " -T segundos Establece el tiempo de espera de recepción/envío en segundos."
+msgstr ""
+" -T segundos Establece el tiempo de espera de recepción/envío "
+"en segundos."
-#: scheduler/cupsfilter.c:1434
-#: systemv/cupsaddsmb.c:288
-#: systemv/cupsctl.c:206
msgid " -U username Specify username."
msgstr " -U nombre_usuario Especifica el nombre de usuario."
-#: test/ipptool.c:4417
msgid " -V version Set default IPP version."
msgstr " -V versión Establece la versión IPP predeterminada."
-#: systemv/cupstestppd.c:3802
-msgid " -W {all,none,constraints,defaults,duplex,filters,profiles,sizes,translations}"
-msgstr " -W {all,none,constraints,defaults,duplex,filters,profiles,sizes,translations}"
+msgid ""
+" -W {all,none,constraints,defaults,duplex,filters,profiles,sizes,"
+"translations}"
+msgstr ""
+" -W {all,none,constraints,defaults,duplex,filters,profiles,sizes,"
+"translations}"
-#: test/ipptool.c:4419
msgid " -X Produce XML plist instead of plain text."
-msgstr " -X Produce XML plist en vez de texto sin formato."
+msgstr ""
+" -X Produce XML plist en vez de texto sin formato."
-#: systemv/cupsaddsmb.c:289
msgid " -a Export all printers."
msgstr " -a Exporta todas las impresoras."
-#: ppdc/ppdc.cxx:442
msgid " -c catalog.po Load the specified message catalog."
msgstr " -c catálogo.po Carga el catálogo de mensajes especificado."
-#: scheduler/cupsfilter.c:1435
-#: scheduler/main.c:2019
msgid " -c cupsd.conf Set cupsd.conf file to use."
msgstr " -c cupsd.conf Establece el archivo cupsd.conf a usar."
-#: test/ipptool.c:4421
msgid " -d name=value Set named variable to value."
msgstr " -d nombre=valor Establece la variable al valor."
-#: ppdc/ppdc.cxx:444
msgid " -d output-dir Specify the output directory."
msgstr " -d dir-salida Especifica el directorio de salida."
-#: scheduler/cupsfilter.c:1437
msgid " -d printer Use the named printer."
msgstr " -d impresora Usa la impresora especificada."
-#: scheduler/cupsfilter.c:1439
msgid " -e Use every filter from the PPD file."
msgstr " -e Usa cada filtro desde el archivo PPD."
-#: scheduler/main.c:2020
msgid " -f Run in the foreground."
msgstr " -f Ejecuta en primer plano."
-#: test/ipptool.c:4423
msgid " -f filename Set default request filename."
-msgstr " -f nombre_archivo Establece nombre de archivo predeterminado."
+msgstr ""
+" -f nombre_archivo Establece nombre de archivo predeterminado."
-#: scheduler/main.c:2023
msgid " -h Show this usage message."
msgstr " -h Muestra este mensaje de uso."
-#: systemv/cupsaddsmb.c:290
-#: systemv/cupsctl.c:207
msgid " -h server[:port] Specify server address."
msgstr " -h servidor[:puerto] Especifica la dirección del servidor."
-#: scheduler/cupsfilter.c:1441
msgid " -i mime/type Set input MIME type (otherwise auto-typed)."
-msgstr " -i tipo/mime Establece el tipo MIME de entrada (si no, auto-typed)."
+msgstr ""
+" -i tipo/mime Establece el tipo MIME de entrada (si no, auto-"
+"typed)."
-#: test/ipptool.c:4425
-msgid " -i seconds Repeat the last file with the given time interval."
-msgstr " -i segundos Repite el último archivo con el intervalo de tiempo dado."
+msgid ""
+" -i seconds Repeat the last file with the given time interval."
+msgstr ""
+" -i segundos Repite el último archivo con el intervalo de "
+"tiempo dado."
-#: scheduler/cupsfilter.c:1443
-msgid " -j job-id[,N] Filter file N from the specified job (default is file 1)."
-msgstr " -j id-trabajo[,N] Filtra el archivo N desde el trabajo especificado (predeterminado archivo 1)."
+msgid ""
+" -j job-id[,N] Filter file N from the specified job (default is "
+"file 1)."
+msgstr ""
+" -j id-trabajo[,N] Filtra el archivo N desde el trabajo "
+"especificado (predeterminado archivo 1)."
-#: scheduler/main.c:2024
msgid " -l Run cupsd from launchd(8)."
msgstr " -l Ejecuta cupsd desde launchd(8)."
-#: ppdc/ppdc.cxx:446
msgid " -l lang[,lang,...] Specify the output language(s) (locale)."
-msgstr " -l idioma[,idioma,...] Especifica los idiomas de salida (código regional)."
+msgstr ""
+" -l idioma[,idioma,...] Especifica los idiomas de salida (código "
+"regional)."
-#: ppdc/ppdc.cxx:448
msgid " -m Use the ModelName value as the filename."
-msgstr " -m Usa el valor ModelName como nombre de archivo."
+msgstr ""
+" -m Usa el valor ModelName como nombre de archivo."
-#: scheduler/cupsfilter.c:1445
-msgid " -m mime/type Set output MIME type (otherwise application/pdf)."
-msgstr " -m tipo/mime Establece el tipo MIME de salida (si no, application/pdf)."
+msgid ""
+" -m mime/type Set output MIME type (otherwise application/pdf)."
+msgstr ""
+" -m tipo/mime Establece el tipo MIME de salida (si no, "
+"application/pdf)."
-#: scheduler/cupsfilter.c:1447
msgid " -n copies Set number of copies."
msgstr " -n copias Establece el número de copias."
-#: test/ipptool.c:4427
-msgid " -n count Repeat the last file the given number of times."
-msgstr " -n contador Repite el último archivo el número de veces especificado."
+msgid ""
+" -n count Repeat the last file the given number of times."
+msgstr ""
+" -n contador Repite el último archivo el número de veces "
+"especificado."
-#: ppdc/ppdi.cxx:133
-msgid " -o filename.drv Set driver information file (otherwise ppdi.drv)."
-msgstr " -o nombre_archivo.drv Establece el archivo de información del controlador (si no, ppdi.drv)."
+msgid ""
+" -o filename.drv Set driver information file (otherwise ppdi.drv)."
+msgstr ""
+" -o nombre_archivo.drv Establece el archivo de información del "
+"controlador (si no, ppdi.drv)."
-#: ppdc/ppdmerge.cxx:370
msgid " -o filename.ppd[.gz] Set output file (otherwise stdout)."
-msgstr " -o nombre_archivo.ppd[.gz] Establece el archivo de salida (si no, stdout)."
+msgstr ""
+" -o nombre_archivo.ppd[.gz] Establece el archivo de salida (si no, "
+"stdout)."
-#: scheduler/cupsfilter.c:1448
msgid " -o name=value Set option(s)."
msgstr " -o nombre=valor Establece opciones."
-#: scheduler/cupsfilter.c:1449
msgid " -p filename.ppd Set PPD file."
msgstr " -p nombre_archivo.ppd Establece archivo PPD."
-#: systemv/cupstestppd.c:3806
-#: test/ipptool.c:4429
msgid " -q Run silently."
msgstr " -q Ejecución silenciosa."
-#: systemv/cupstestppd.c:3807
msgid " -r Use 'relaxed' open mode."
msgstr " -r Usa modo abierto 'relajado'."
-#: test/ipptool.c:4430
msgid " -t Produce a test report."
msgstr " -t Produce un informe de la prueba."
-#: ppdc/ppdc.cxx:450
msgid " -t Test PPDs instead of generating them."
msgstr " -t Prueba los PPDs en vez de generarlos."
-#: scheduler/main.c:2025
msgid " -t Test the configuration file."
msgstr " -t Prueba el archivo de configuración."
-#: scheduler/cupsfilter.c:1450
msgid " -t title Set title."
msgstr " -t título Establece título."
-#: scheduler/cupsfilter.c:1451
msgid " -u Remove the PPD file when finished."
msgstr " -u Borra el archivo PPD tras terminar."
-#: systemv/cupsaddsmb.c:291
-#: systemv/cupstestppd.c:3808
-#: test/ipptool.c:4431
-#: ppdc/ppdc.cxx:452
-#: ppdc/ppdpo.cxx:259
msgid " -v Be verbose."
msgstr " -v Ser detallado."
-#: systemv/cupstestppd.c:3809
msgid " -vv Be very verbose."
msgstr " -vv Ser muy detallado."
-#: ppdc/ppdc.cxx:453
msgid " -z Compress PPD files using GNU zip."
msgstr " -z Comprimir archivos PPD usando GNU zip."
-#: systemv/cupstestppd.c:332
-#: systemv/cupstestppd.c:351
-#: systemv/cupstestppd.c:363
-#: systemv/cupstestppd.c:496
-#: systemv/cupstestppd.c:511
-#: systemv/cupstestppd.c:532
-#: systemv/cupstestppd.c:547
-#: systemv/cupstestppd.c:577
-#: systemv/cupstestppd.c:597
-#: systemv/cupstestppd.c:620
-#: systemv/cupstestppd.c:638
-#: systemv/cupstestppd.c:664
-#: systemv/cupstestppd.c:682
-#: systemv/cupstestppd.c:702
-#: systemv/cupstestppd.c:722
-#: systemv/cupstestppd.c:740
-#: systemv/cupstestppd.c:757
-#: systemv/cupstestppd.c:776
-#: systemv/cupstestppd.c:797
-#: systemv/cupstestppd.c:816
-#: systemv/cupstestppd.c:836
-#: systemv/cupstestppd.c:856
-#: systemv/cupstestppd.c:876
-#: systemv/cupstestppd.c:896
-#: systemv/cupstestppd.c:914
-#: systemv/cupstestppd.c:931
-#: systemv/cupstestppd.c:953
-#: systemv/cupstestppd.c:971
-#: systemv/cupstestppd.c:988
-#: systemv/cupstestppd.c:1006
-#: systemv/cupstestppd.c:1022
-#: systemv/cupstestppd.c:1042
-#: systemv/cupstestppd.c:1073
-#: systemv/cupstestppd.c:1095
-#: systemv/cupstestppd.c:1146
-#: systemv/cupstestppd.c:1165
-#: systemv/cupstestppd.c:1209
-#: systemv/cupstestppd.c:1223
-#: systemv/cupstestppd.c:1255
-#: systemv/cupstestppd.c:1282
-#: systemv/cupstestppd.c:1800
-#: systemv/cupstestppd.c:1819
-#: systemv/cupstestppd.c:1837
-#: systemv/cupstestppd.c:1889
-#: systemv/cupstestppd.c:1905
-#: systemv/cupstestppd.c:1942
-#: systemv/cupstestppd.c:1960
-#: systemv/cupstestppd.c:1996
-#: systemv/cupstestppd.c:2010
-#: systemv/cupstestppd.c:2037
-#: systemv/cupstestppd.c:2051
-#: systemv/cupstestppd.c:2097
-#: systemv/cupstestppd.c:2119
-#: systemv/cupstestppd.c:2142
-#: systemv/cupstestppd.c:2159
-#: systemv/cupstestppd.c:2201
-#: systemv/cupstestppd.c:2244
-#: systemv/cupstestppd.c:2291
-#: systemv/cupstestppd.c:2315
-#: systemv/cupstestppd.c:2369
-#: systemv/cupstestppd.c:2385
-#: systemv/cupstestppd.c:2415
-#: systemv/cupstestppd.c:2429
-#: systemv/cupstestppd.c:2455
-#: systemv/cupstestppd.c:2471
-#: systemv/cupstestppd.c:2511
-#: systemv/cupstestppd.c:2525
-#: systemv/cupstestppd.c:2551
-#: systemv/cupstestppd.c:2567
-#: systemv/cupstestppd.c:2597
-#: systemv/cupstestppd.c:2611
-#: systemv/cupstestppd.c:2638
-#: systemv/cupstestppd.c:2655
-#: systemv/cupstestppd.c:2669
-#: systemv/cupstestppd.c:2693
-#: systemv/cupstestppd.c:2710
-#: systemv/cupstestppd.c:2724
-#: systemv/cupstestppd.c:2748
-#: systemv/cupstestppd.c:2765
-#: systemv/cupstestppd.c:2779
-#: systemv/cupstestppd.c:2803
-#: systemv/cupstestppd.c:2820
-#: systemv/cupstestppd.c:2834
-#: systemv/cupstestppd.c:2858
-#: systemv/cupstestppd.c:2872
-#: systemv/cupstestppd.c:2887
-#: systemv/cupstestppd.c:2904
-#: systemv/cupstestppd.c:2960
-#: systemv/cupstestppd.c:2995
-#: systemv/cupstestppd.c:3009
-#: systemv/cupstestppd.c:3037
-#: systemv/cupstestppd.c:3102
-#: systemv/cupstestppd.c:3117
-#: systemv/cupstestppd.c:3156
-#: systemv/cupstestppd.c:3176
-#: systemv/cupstestppd.c:3190
-#: systemv/cupstestppd.c:3387
-#: systemv/cupstestppd.c:3423
-#: systemv/cupstestppd.c:3437
-#: systemv/cupstestppd.c:3483
-#: systemv/cupstestppd.c:3515
-#: systemv/cupstestppd.c:3532
-#: systemv/cupstestppd.c:3555
-#: systemv/cupstestppd.c:3571
-#: systemv/cupstestppd.c:3609
-#: systemv/cupstestppd.c:3750
-#: systemv/cupstestppd.c:3772
-#: systemv/cupstestppd.c:3880
msgid " FAIL"
msgstr " FALLO"
-#: systemv/cupstestppd.c:1306
msgid " PASS"
msgstr " PASA"
-#: berkeley/lpq.c:560
#, c-format
msgid "%-6s %-10.10s %-4d %-10d %-27.27s %.0f bytes"
msgstr "%-6s %-10.10s %-4d %-10d %-27.27s %.0f bytes"
-#: berkeley/lpq.c:565
#, c-format
msgid "%-7s %-7.7s %-7d %-31.31s %.0f bytes"
msgstr "%-7s %-7.7s %-7d %-31.31s %.0f bytes"
-#: systemv/lpstat.c:750
#, c-format
msgid "%s accepting requests since %s"
msgstr "%s aceptando peticiones desde %s"
-#: scheduler/ipp.c:10045
#, c-format
msgid "%s cannot be changed."
msgstr "%s no puede ser cambiado."
-#: berkeley/lpc.c:189
#, c-format
msgid "%s is not implemented by the CUPS version of lpc."
msgstr "%s no está implementado en la versión de CUPS de lpc."
-#: berkeley/lpq.c:651
#, c-format
msgid "%s is not ready"
msgstr "%s no está preparada"
-#: berkeley/lpq.c:644
#, c-format
msgid "%s is ready"
msgstr "%s está preparada"
-#: berkeley/lpq.c:647
#, c-format
msgid "%s is ready and printing"
msgstr "%s está preparada e imprimiendo"
-#: filter/rastertoepson.c:985
-#: filter/rastertohp.c:711
-#: filter/rastertolabel.c:1134
#, c-format
msgid "%s job-id user title copies options [file]"
msgstr "%s job-id usuario título copias opciones [archivo]"
-#: systemv/lpstat.c:754
#, c-format
msgid "%s not accepting requests since %s -"
msgstr "%s no acepta peticiones desde %s -"
-#: scheduler/ipp.c:691
#, c-format
msgid "%s not supported."
msgstr "No se admite el uso de %s."
-#: systemv/lpstat.c:765
#, c-format
msgid "%s/%s accepting requests since %s"
msgstr "%s/%s aceptando peticiones desde %s"
-#: systemv/lpstat.c:770
#, c-format
msgid "%s/%s not accepting requests since %s -"
msgstr "%s/%s no acepta peticiones desde %s -"
-#: berkeley/lpq.c:552
#, c-format
msgid "%s: %-33.33s [job %d localhost]"
msgstr "%s: %-33.33s [trabajo %d localhost]"
#. TRANSLATORS: Message is "subject: error"
-#: cups/langprintf.c:86
-#: scheduler/cupsfilter.c:714
-#: systemv/lpadmin.c:805
-#: systemv/lpadmin.c:856
-#: systemv/lpadmin.c:906
-#: systemv/lpadmin.c:962
-#: systemv/lpadmin.c:1060
-#: systemv/lpadmin.c:1112
-#: systemv/lpadmin.c:1168
-#: systemv/lpadmin.c:1478
#, c-format
msgid "%s: %s"
msgstr "%s: %s"
-#: systemv/cancel.c:294
-#: systemv/cancel.c:357
#, c-format
msgid "%s: %s failed: %s"
msgstr "%s: %s ha fallado: %s"
-#: systemv/cupsaccept.c:68
#, c-format
msgid "%s: Don't know what to do."
msgstr "%s: No sé que hay que hacer."
-#: berkeley/lpq.c:236
-#: berkeley/lpr.c:344
-#: systemv/lp.c:584
#, c-format
-msgid "%s: Error - %s environment variable names non-existent destination \"%s\"."
-msgstr "%s: Error - %s nombres de variables de entorno no existen en destino \"%s\"."
+msgid ""
+"%s: Error - %s environment variable names non-existent destination \"%s\"."
+msgstr ""
+"%s: Error - %s nombres de variables de entorno no existen en destino \"%s\"."
-#: systemv/lp.c:231
#, c-format
msgid "%s: Error - bad job ID."
msgstr "%s: Error - ID de trabajo incorrecta."
-#: systemv/lp.c:219
#, c-format
msgid "%s: Error - cannot print files and alter jobs simultaneously."
-msgstr "%s: Error - no se pueden imprimir archivos y alterar trabajos al mismo tiempo."
+msgstr ""
+"%s: Error - no se pueden imprimir archivos y alterar trabajos al mismo "
+"tiempo."
-#: systemv/lp.c:505
#, c-format
msgid "%s: Error - cannot print from stdin if files or a job ID are provided."
-msgstr "%s: Error - no se puede imprimir desde stdin si se proporcionan archivos o una ID de trabajo."
+msgstr ""
+"%s: Error - no se puede imprimir desde stdin si se proporcionan archivos o "
+"una ID de trabajo."
-#: systemv/lp.c:461
#, c-format
msgid "%s: Error - expected character set after \"-S\" option."
msgstr "%s: Error - se esperaba un juego de caracteres tras la opción \"-S\"."
-#: systemv/lp.c:480
#, c-format
msgid "%s: Error - expected content type after \"-T\" option."
msgstr "%s: Error - se esperaba un tipo de contenido tras la opción \"-T\"."
-#: berkeley/lpr.c:240
#, c-format
msgid "%s: Error - expected copies after \"-#\" option."
msgstr "%s: Error - se esperaba número de copias tras la opción \"-#\"."
-#: systemv/lp.c:264
#, c-format
msgid "%s: Error - expected copies after \"-n\" option."
msgstr "%s: Error - se esperaba número de copias tras la opción \"-n\"."
-#: berkeley/lpr.c:209
#, c-format
msgid "%s: Error - expected destination after \"-P\" option."
msgstr "%s: Error - se esperaba un destino tras la opción \"-P\"."
-#: systemv/lpstat.c:231
-#, c-format
-msgid "%s: Error - expected destination after \"-b\" option."
-msgstr "%s: Error - se esperaba un destino tras la opción \"-b\"."
-
-#: systemv/lp.c:138
#, c-format
msgid "%s: Error - expected destination after \"-d\" option."
msgstr "%s: Error - se esperaba un destino tras la opción \"-d\"."
-#: systemv/lp.c:168
#, c-format
msgid "%s: Error - expected form after \"-f\" option."
msgstr "%s: Error - se esperaba un formulario tras la opción \"-f\"."
-#: systemv/lp.c:391
#, c-format
msgid "%s: Error - expected hold name after \"-H\" option."
msgstr "%s: Error - se esperaba un nombre de retención tras la opción \"-H\"."
-#: berkeley/lpr.c:103
#, c-format
msgid "%s: Error - expected hostname after \"-H\" option."
msgstr "%s: Error - se esperaba un nombre de ordenador tras la opción \"-H\"."
-#: berkeley/lpq.c:180
-#: berkeley/lprm.c:123
-#: systemv/cancel.c:124
-#: systemv/cupsaccept.c:123
-#: systemv/lp.c:189
-#: systemv/lpstat.c:291
#, c-format
msgid "%s: Error - expected hostname after \"-h\" option."
msgstr "%s: Error - se esperaba un nombre de ordenador tras la opción \"-h\"."
-#: systemv/lp.c:371
#, c-format
msgid "%s: Error - expected mode list after \"-y\" option."
msgstr "%s: Error - se esperaba una lista de modos tras la opción \"-y\"."
-#: berkeley/lpr.c:263
#, c-format
msgid "%s: Error - expected name after \"-%c\" option."
msgstr "%s: Error - se esperaba un nombre tras la opción \"%c\"."
-#: berkeley/lpr.c:153
-#: systemv/lp.c:288
#, c-format
msgid "%s: Error - expected option=value after \"-o\" option."
msgstr "%s: Error - se esperaba opción=valor tras la opción \"-o\"."
-#: systemv/lp.c:441
#, c-format
msgid "%s: Error - expected page list after \"-P\" option."
msgstr "%s: Error - se esperaba una lista de páginas tras la opción \"-P\"."
-#: systemv/lp.c:308
#, c-format
msgid "%s: Error - expected priority after \"-%c\" option."
msgstr "%s: Error - se esperaba un valor de prioridad tras la opción \"-%c\"."
-#: systemv/cupsaccept.c:141
#, c-format
msgid "%s: Error - expected reason text after \"-r\" option."
msgstr "%s: Error - se esperaba un texto con una razón tras la opción \"-r\"."
-#: systemv/lp.c:354
#, c-format
msgid "%s: Error - expected title after \"-t\" option."
msgstr "%s: Error - se esperaba un título tras la opción \"-t\"."
-#: berkeley/lpq.c:111
-#: berkeley/lpr.c:84
-#: berkeley/lprm.c:104
-#: systemv/cancel.c:94
-#: systemv/cupsaccept.c:101
-#: systemv/lp.c:116
-#: systemv/lpadmin.c:438
-#: systemv/lpstat.c:137
#, c-format
msgid "%s: Error - expected username after \"-U\" option."
msgstr "%s: Error - se esperaba un nombre de usuario tras la opción \"-U\"."
-#: systemv/cancel.c:145
#, c-format
msgid "%s: Error - expected username after \"-u\" option."
msgstr "%s: Error - se esperaba un nombre de usuario tras la opción \"-u\"."
-#: berkeley/lpr.c:125
#, c-format
msgid "%s: Error - expected value after \"-%c\" option."
msgstr "%s: Error - se esperaba un valor tras la opción \"%c\"."
-#: systemv/lpstat.c:157
-#: systemv/lpstat.c:171
#, c-format
-msgid "%s: Error - need \"completed\", \"not-completed\", or \"all\" after \"-W\" option."
-msgstr "%s: Error - se necesita \"completed\", \"not completed\", o \"all\" tras la opción \"-W\"."
+msgid ""
+"%s: Error - need \"completed\", \"not-completed\", or \"all\" after \"-W\" "
+"option."
+msgstr ""
+"%s: Error - se necesita \"completed\", \"not completed\", o \"all\" tras la "
+"opción \"-W\"."
-#: berkeley/lpq.c:241
-#: berkeley/lpr.c:349
-#: systemv/lp.c:589
#, c-format
msgid "%s: Error - no default destination available."
msgstr "%s: Error - destino predeterminado no disponible."
-#: systemv/lp.c:330
#, c-format
msgid "%s: Error - priority must be between 1 and 100."
msgstr "%s: Error - la prioridad debe estar entre 1 y 100."
-#: berkeley/lpr.c:352
-#: systemv/lp.c:592
#, c-format
msgid "%s: Error - scheduler not responding."
msgstr "%s: Error - el programa planificador de tareas no responde."
-#: berkeley/lpr.c:305
-#: systemv/lp.c:537
#, c-format
msgid "%s: Error - too many files - \"%s\"."
msgstr "%s: Error - demasiados archivos - \"%s\"."
-#: berkeley/lpr.c:287
-#: systemv/lp.c:520
#, c-format
msgid "%s: Error - unable to access \"%s\" - %s"
msgstr "%s: Error - no se ha podido acceder a \"%s\" - %s"
-#: berkeley/lpr.c:395
-#: systemv/lp.c:623
#, c-format
msgid "%s: Error - unable to queue from stdin - %s."
msgstr "%s: Error - no se ha podido poner en cola desde stdin - %s."
-#: berkeley/lprm.c:87
-#: berkeley/lprm.c:172
-#: systemv/cancel.c:214
#, c-format
msgid "%s: Error - unknown destination \"%s\"."
msgstr "%s: Error - destino \"%s\" desconocido."
-#: berkeley/lpq.c:150
#, c-format
msgid "%s: Error - unknown destination \"%s/%s\"."
msgstr "%s: Error - destino \"%s/%s\" desconocido."
-#: berkeley/lpr.c:274
-#: berkeley/lprm.c:139
-#: systemv/cancel.c:156
-#: systemv/cupsaccept.c:164
-#: systemv/lp.c:496
-#: systemv/lpstat.c:452
#, c-format
msgid "%s: Error - unknown option \"%c\"."
msgstr "%s: Error - opción \"%c\" desconocida."
-#: systemv/cupsaccept.c:157
#, c-format
msgid "%s: Error - unknown option \"%s\"."
msgstr "%s: Error: opción \"%s\" desconocida."
-#: systemv/lp.c:208
#, c-format
msgid "%s: Expected job ID after \"-i\" option."
msgstr "%s : Se esperaba una ID de trabajo tras la opción \"-i\"."
-#: systemv/lpstat.c:504
-#: systemv/lpstat.c:543
#, c-format
msgid "%s: Invalid destination name in list \"%s\"."
msgstr "%s: Nombre de destino no válido en la lista \"%s\"."
-#: scheduler/cupsfilter.c:567
#, c-format
msgid "%s: Invalid filter string \"%s\"."
msgstr "%s: Cadena de filtro \"%s\" no válida."
-#: systemv/lp.c:418
#, c-format
msgid "%s: Need job ID (\"-i jobid\") before \"-H restart\"."
-msgstr "%s: Se necesita un ID de trabajo (\"-i id_trabajo\") antes de \"-H restart\"."
+msgstr ""
+"%s: Se necesita un ID de trabajo (\"-i id_trabajo\") antes de \"-H restart\"."
-#: scheduler/cupsfilter.c:458
#, c-format
msgid "%s: No filter to convert from %s/%s to %s/%s."
msgstr "%s: No hay ningún filtro para convertir de %s/%s a %s/%s."
-#: systemv/cupsaccept.c:198
#, c-format
msgid "%s: Operation failed: %s"
msgstr "%s: La operación ha fallado: %s"
-#: berkeley/lpq.c:97
-#: berkeley/lpr.c:70
-#: berkeley/lprm.c:67
-#: systemv/cancel.c:81
-#: systemv/cupsaccept.c:88
-#: systemv/cupsaddsmb.c:86
-#: systemv/lp.c:102
-#: systemv/lpadmin.c:239
-#: systemv/lpinfo.c:88
-#: systemv/lpmove.c:73
-#: systemv/lpstat.c:102
-#: test/ipptool.c:304
-#: test/ipptool.c:321
#, c-format
msgid "%s: Sorry, no encryption support."
msgstr "%s: Lo siento, no está compilado con la opción de cifrado."
-#: berkeley/lpq.c:295
-#: scheduler/cupsfilter.c:1221
-#: systemv/cancel.c:237
-#: systemv/cupsaddsmb.c:144
-#: systemv/cupsaddsmb.c:171
#, c-format
msgid "%s: Unable to connect to server."
msgstr "%s: No se ha podido conectar al servidor."
-#: systemv/cancel.c:317
#, c-format
msgid "%s: Unable to contact server."
msgstr "%s: No se ha podido contactar con el servidor."
-#: scheduler/cupsfilter.c:424
#, c-format
msgid "%s: Unable to determine MIME type of \"%s\"."
msgstr "%s: No se ha podido determinar el tipo MIME de \"%s\"."
-#: ppdc/ppdmerge.cxx:96
#, c-format
msgid "%s: Unable to open %s: %s"
msgstr "%s: No se pudo abrir %s: %s"
-#: scheduler/cupsfilter.c:662
-#: ppdc/ppdmerge.cxx:112
#, c-format
msgid "%s: Unable to open PPD file: %s on line %d."
msgstr "%s: No se ha podido abrir el archivo PPD: %s en la línea %d."
-#: scheduler/cupsfilter.c:392
#, c-format
msgid "%s: Unable to read MIME database from \"%s\" or \"%s\"."
msgstr "%s: No se pudo leer base de datos MIME desde \"%s\" o \"%s\"."
-#: berkeley/lpq.c:153
-#: systemv/lpstat.c:558
#, c-format
msgid "%s: Unknown destination \"%s\"."
msgstr "%s: Destino \"%s\" desconocido."
-#: scheduler/cupsfilter.c:435
#, c-format
msgid "%s: Unknown destination MIME type %s/%s."
msgstr "%s: Tipo MIME de destino %s/%s desconocido."
-#: scheduler/cupsfilter.c:1426
#, c-format
msgid "%s: Unknown option \"%c\"."
msgstr "%s: Opción \"%c\" desconocida."
-#: scheduler/cupsfilter.c:416
#, c-format
msgid "%s: Unknown source MIME type %s/%s."
msgstr "%s: Tipo MIME de origen %s/%s desconocido."
-#: berkeley/lpr.c:139
#, c-format
-msgid "%s: Warning - \"%c\" format modifier not supported - output may not be correct."
-msgstr "%s: Advertencia - no se admite el uso del modificador de formato \"%c\" - la salida puede no ser correcta."
+msgid ""
+"%s: Warning - \"%c\" format modifier not supported - output may not be "
+"correct."
+msgstr ""
+"%s: Advertencia - no se admite el uso del modificador de formato \"%c\" - la "
+"salida puede no ser correcta."
-#: systemv/lp.c:468
#, c-format
msgid "%s: Warning - character set option ignored."
msgstr "%s: Advertencia - opción de juego de caracteres no tenida en cuenta."
-#: systemv/lp.c:487
#, c-format
msgid "%s: Warning - content type option ignored."
msgstr "%s: Advertencia - opción de tipo de contenido no tenida en cuenta."
-#: systemv/lp.c:175
#, c-format
msgid "%s: Warning - form option ignored."
msgstr "%s: Advertencia - opción de formulario no tenida en cuenta."
-#: systemv/lp.c:378
#, c-format
msgid "%s: Warning - mode option ignored."
msgstr "%s: Advertencia - opción de modo no tenida en cuenta."
-#: ppdc/sample.c:310
msgid "-1"
msgstr "-1"
-#: ppdc/sample.c:301
msgid "-10"
msgstr "-10"
-#: ppdc/sample.c:393
msgid "-100"
msgstr "-100"
-#: ppdc/sample.c:392
msgid "-105"
msgstr "-105"
-#: ppdc/sample.c:300
msgid "-11"
msgstr "-11"
-#: ppdc/sample.c:391
msgid "-110"
msgstr "-110"
-#: ppdc/sample.c:390
msgid "-115"
msgstr "-115"
-#: ppdc/sample.c:299
msgid "-12"
msgstr "-12"
-#: ppdc/sample.c:389
msgid "-120"
msgstr "-120"
-#: ppdc/sample.c:298
msgid "-13"
msgstr "-13"
-#: ppdc/sample.c:297
msgid "-14"
msgstr "-14"
-#: ppdc/sample.c:296
msgid "-15"
msgstr "-15"
-#: ppdc/sample.c:309
msgid "-2"
msgstr "-2"
-#: ppdc/sample.c:409
msgid "-20"
msgstr "-20"
-#: ppdc/sample.c:408
msgid "-25"
msgstr "-25"
-#: ppdc/sample.c:308
msgid "-3"
msgstr "-3"
-#: ppdc/sample.c:407
msgid "-30"
msgstr "-30"
-#: ppdc/sample.c:406
msgid "-35"
msgstr "-35"
-#: ppdc/sample.c:307
msgid "-4"
msgstr "-4"
-#: ppdc/sample.c:405
msgid "-40"
msgstr "-40"
-#: ppdc/sample.c:404
msgid "-45"
msgstr "-45"
-#: ppdc/sample.c:306
msgid "-5"
msgstr "-5"
-#: ppdc/sample.c:403
msgid "-50"
msgstr "-50"
-#: ppdc/sample.c:402
msgid "-55"
msgstr "-55"
-#: ppdc/sample.c:305
msgid "-6"
msgstr "-6"
-#: ppdc/sample.c:401
msgid "-60"
msgstr "-60"
-#: ppdc/sample.c:400
msgid "-65"
msgstr "-65"
-#: ppdc/sample.c:304
msgid "-7"
msgstr "-7"
-#: ppdc/sample.c:399
msgid "-70"
msgstr "-70"
-#: ppdc/sample.c:398
msgid "-75"
msgstr "-75"
-#: ppdc/sample.c:303
msgid "-8"
msgstr "-8"
-#: ppdc/sample.c:397
msgid "-80"
msgstr "-80"
-#: ppdc/sample.c:396
msgid "-85"
msgstr "-85"
-#: ppdc/sample.c:302
msgid "-9"
msgstr "-9"
-#: ppdc/sample.c:395
msgid "-90"
msgstr "-90"
-#: ppdc/sample.c:394
msgid "-95"
msgstr "-95"
-#: ppdc/sample.c:311
msgid "0"
msgstr "0"
-#: ppdc/sample.c:312
msgid "1"
msgstr "1"
-#: ppdc/sample.c:384
msgid "1 inch/sec."
msgstr "1 pulg./seg"
-#: ppdc/sample.c:172
msgid "1.25x0.25\""
msgstr "1.25x0.25 pulg."
-#: ppdc/sample.c:173
msgid "1.25x2.25\""
msgstr "1.25x2.25 pulg."
-#: ppdc/sample.c:432
msgid "1.5 inch/sec."
msgstr "1.5 pulg./seg"
-#: ppdc/sample.c:174
msgid "1.50x0.25\""
msgstr "1.50x0.25 pulg."
-#: ppdc/sample.c:175
msgid "1.50x0.50\""
msgstr "1.50x0.50 pulg."
-#: ppdc/sample.c:176
msgid "1.50x1.00\""
msgstr "1.50x1.00 pulg."
-#: ppdc/sample.c:177
msgid "1.50x2.00\""
msgstr "1.50x2.00 pulg."
-#: ppdc/sample.c:321
msgid "10"
msgstr "10"
-#: ppdc/sample.c:443
msgid "10 inches/sec."
msgstr "10 pulg./seg"
-#: ppdc/sample.c:6
msgid "10 x 11"
msgstr "10 x 11"
-#: ppdc/sample.c:7
msgid "10 x 13"
msgstr "10 x 13"
-#: ppdc/sample.c:8
msgid "10 x 14"
msgstr "10 x 14"
-#: ppdc/sample.c:423
msgid "100"
msgstr "100"
-#: ppdc/sample.c:334
msgid "100 mm/sec."
msgstr "100 mm/seg"
-#: ppdc/sample.c:424
msgid "105"
msgstr "105"
-#: ppdc/sample.c:322
msgid "11"
msgstr "11"
-#: ppdc/sample.c:444
msgid "11 inches/sec."
msgstr "11 pulg./seg"
-#: ppdc/sample.c:425
msgid "110"
msgstr "110"
-#: ppdc/sample.c:426
msgid "115"
msgstr "115"
-#: ppdc/sample.c:323
msgid "12"
msgstr "12"
-#: ppdc/sample.c:445
msgid "12 inches/sec."
msgstr "12 pulg./seg"
-#: ppdc/sample.c:9
msgid "12 x 11"
msgstr "12 x 11"
-#: ppdc/sample.c:427
msgid "120"
msgstr "120"
-#: ppdc/sample.c:335
msgid "120 mm/sec."
msgstr "120 mm/seg"
-#: ppdc/sample.c:243
msgid "120x60dpi"
msgstr "120x60ppp"
-#: ppdc/sample.c:249
msgid "120x72dpi"
msgstr "120x72ppp"
-#: ppdc/sample.c:324
msgid "13"
msgstr "13"
-#: ppdc/sample.c:232
msgid "136dpi"
msgstr "136ppp"
-#: ppdc/sample.c:325
msgid "14"
msgstr "14"
-#: ppdc/sample.c:326
msgid "15"
msgstr "15"
-#: ppdc/sample.c:328
msgid "15 mm/sec."
msgstr "15 mm/seg"
-#: ppdc/sample.c:10
msgid "15 x 11"
msgstr "15 x 11"
-#: ppdc/sample.c:336
msgid "150 mm/sec."
msgstr "150 mm/seg"
-#: ppdc/sample.c:283
msgid "150dpi"
msgstr "150ppp"
-#: ppdc/sample.c:368
msgid "16"
msgstr "16"
-#: ppdc/sample.c:369
msgid "17"
msgstr "17"
-#: ppdc/sample.c:370
msgid "18"
msgstr "18"
-#: ppdc/sample.c:244
msgid "180dpi"
msgstr "180ppp"
-#: ppdc/sample.c:371
msgid "19"
msgstr "19"
-#: ppdc/sample.c:313
msgid "2"
msgstr "2"
-#: ppdc/sample.c:385
msgid "2 inches/sec."
msgstr "2 pulg./seg"
-#: ppdc/sample.c:270
msgid "2-Sided Printing"
msgstr "Dúplex"
-#: ppdc/sample.c:178
msgid "2.00x0.37\""
msgstr "2.00x0.37 pulg."
-#: ppdc/sample.c:179
msgid "2.00x0.50\""
msgstr "2.00x0.50 pulg."
-#: ppdc/sample.c:180
msgid "2.00x1.00\""
msgstr "2.00x1.00 pulg."
-#: ppdc/sample.c:181
msgid "2.00x1.25\""
msgstr "2.00x1.25 pulg."
-#: ppdc/sample.c:182
msgid "2.00x2.00\""
msgstr "2.00x2.00 pulg."
-#: ppdc/sample.c:183
msgid "2.00x3.00\""
msgstr "2.00x3.00 pulg."
-#: ppdc/sample.c:184
msgid "2.00x4.00\""
msgstr "2.00x4.00 pulg."
-#: ppdc/sample.c:185
msgid "2.00x5.50\""
msgstr "2.00x5.50 pulg."
-#: ppdc/sample.c:186
msgid "2.25x0.50\""
msgstr "2.25x0.50 pulg."
-#: ppdc/sample.c:187
msgid "2.25x1.25\""
msgstr "2.25x1.25 pulg."
-#: ppdc/sample.c:188
msgid "2.25x4.00\""
msgstr "2.25x4.00 pulg."
-#: ppdc/sample.c:189
msgid "2.25x5.50\""
msgstr "2.25x5.50 pulg."
-#: ppdc/sample.c:190
msgid "2.38x5.50\""
msgstr "2.38x5.50 pulg."
-#: ppdc/sample.c:433
msgid "2.5 inches/sec."
msgstr "2.5 pulg./seg"
-#: ppdc/sample.c:191
msgid "2.50x1.00\""
msgstr "2.50x1.00 pulg."
-#: ppdc/sample.c:192
msgid "2.50x2.00\""
msgstr "2.50x2.00 pulg."
-#: ppdc/sample.c:193
msgid "2.75x1.25\""
msgstr "2.75x1.25 pulg."
-#: ppdc/sample.c:194
msgid "2.9 x 1\""
msgstr "2.9 x 1 pulg."
-#: ppdc/sample.c:372
msgid "20"
msgstr "20"
-#: ppdc/sample.c:329
msgid "20 mm/sec."
msgstr "20 mm/seg"
-#: ppdc/sample.c:337
msgid "200 mm/sec."
msgstr "200 mm/seg"
-#: ppdc/sample.c:233
msgid "203dpi"
msgstr "203ppp"
-#: ppdc/sample.c:373
msgid "21"
msgstr "21"
-#: ppdc/sample.c:374
msgid "22"
msgstr "22"
-#: ppdc/sample.c:375
msgid "23"
msgstr "23"
-#: ppdc/sample.c:376
msgid "24"
msgstr "24"
-#: ppdc/sample.c:241
msgid "24-Pin Series"
msgstr "24-Pin Series"
-#: ppdc/sample.c:250
msgid "240x72dpi"
msgstr "240x72ppp"
-#: ppdc/sample.c:377
msgid "25"
msgstr "25"
-#: ppdc/sample.c:338
msgid "250 mm/sec."
msgstr "250 mm/seg"
-#: ppdc/sample.c:378
msgid "26"
msgstr "26"
-#: ppdc/sample.c:379
msgid "27"
msgstr "27"
-#: ppdc/sample.c:380
msgid "28"
msgstr "28"
-#: ppdc/sample.c:381
msgid "29"
msgstr "29"
-#: ppdc/sample.c:314
msgid "3"
msgstr "3"
-#: ppdc/sample.c:386
msgid "3 inches/sec."
msgstr "3 pulg./seg"
-#: ppdc/sample.c:3
msgid "3 x 5"
msgstr "3 x 5"
-#: ppdc/sample.c:195
msgid "3.00x1.00\""
msgstr "3.00x1.00 pulg."
-#: ppdc/sample.c:196
msgid "3.00x1.25\""
msgstr "3.00x1.25 pulg."
-#: ppdc/sample.c:197
msgid "3.00x2.00\""
msgstr "3.00x2.00 pulg."
-#: ppdc/sample.c:198
msgid "3.00x3.00\""
msgstr "3.00x3.00 pulg."
-#: ppdc/sample.c:199
msgid "3.00x5.00\""
msgstr "3.00x5.00 pulg."
-#: ppdc/sample.c:200
msgid "3.25x2.00\""
msgstr "3.25x2.00 pulg."
-#: ppdc/sample.c:201
msgid "3.25x5.00\""
msgstr "3.25x5.00 pulg."
-#: ppdc/sample.c:202
msgid "3.25x5.50\""
msgstr "3.25x5.50 pulg."
-#: ppdc/sample.c:203
msgid "3.25x5.83\""
msgstr "3.25x5.83 pulg."
-#: ppdc/sample.c:204
msgid "3.25x7.83\""
msgstr "3.25x7.83 pulg."
-#: ppdc/sample.c:4
msgid "3.5 x 5"
msgstr "3.5 x 5"
-#: ppdc/sample.c:171
msgid "3.5\" Disk"
msgstr "Disco de 3.5 pulg."
-#: ppdc/sample.c:205
msgid "3.50x1.00\""
msgstr "3.50x1.00 pulg."
-#: ppdc/sample.c:382
msgid "30"
msgstr "30"
-#: ppdc/sample.c:330
msgid "30 mm/sec."
msgstr "30 mm/seg"
-#: ppdc/sample.c:339
msgid "300 mm/sec."
msgstr "300 mm/seg"
-#: ppdc/sample.c:234
msgid "300dpi"
msgstr "300ppp"
-#: ppdc/sample.c:410
msgid "35"
msgstr "35"
-#: ppdc/sample.c:246
msgid "360dpi"
msgstr "360ppp"
-#: ppdc/sample.c:245
msgid "360x180dpi"
msgstr "360x180ppp"
-#: ppdc/sample.c:315
msgid "4"
msgstr "4"
-#: ppdc/sample.c:387
msgid "4 inches/sec."
msgstr "4 pulg./seg"
-#: ppdc/sample.c:206
msgid "4.00x1.00\""
msgstr "4.00x1.00 pulg."
-#: ppdc/sample.c:214
msgid "4.00x13.00\""
msgstr "4.00x13.00 pulg."
-#: ppdc/sample.c:207
msgid "4.00x2.00\""
msgstr "4.00x2.00 pulg."
-#: ppdc/sample.c:208
msgid "4.00x2.50\""
msgstr "4.00x2.50 pulg."
-#: ppdc/sample.c:209
msgid "4.00x3.00\""
msgstr "4.00x3.00 pulg."
-#: ppdc/sample.c:210
msgid "4.00x4.00\""
msgstr "4.00x4.00 pulg."
-#: ppdc/sample.c:211
msgid "4.00x5.00\""
msgstr "4.00x5.00 pulg."
-#: ppdc/sample.c:212
msgid "4.00x6.00\""
msgstr "4.00x6.00 pulg."
-#: ppdc/sample.c:213
msgid "4.00x6.50\""
msgstr "4.00x6.50 pulg."
-#: ppdc/sample.c:411
msgid "40"
msgstr "40"
-#: ppdc/sample.c:331
msgid "40 mm/sec."
msgstr "40 mm/seg"
-#: ppdc/sample.c:412
msgid "45"
msgstr "45"
-#: ppdc/sample.c:316
msgid "5"
msgstr "5"
-#: ppdc/sample.c:437
msgid "5 inches/sec."
msgstr "5 pulg./seg"
-#: ppdc/sample.c:5
msgid "5 x 7"
msgstr "5 x 7"
-#: ppdc/sample.c:413
msgid "50"
msgstr "50"
-#: ppdc/sample.c:414
msgid "55"
msgstr "55"
-#: ppdc/sample.c:317
msgid "6"
msgstr "6"
-#: ppdc/sample.c:438
msgid "6 inches/sec."
msgstr "6 pulg./seg"
-#: ppdc/sample.c:215
msgid "6.00x1.00\""
msgstr "6.00x1.00 pulg."
-#: ppdc/sample.c:216
msgid "6.00x2.00\""
msgstr "6.00x2.00 pulg."
-#: ppdc/sample.c:217
msgid "6.00x3.00\""
msgstr "6.00x3.00 pulg."
-#: ppdc/sample.c:218
msgid "6.00x4.00\""
msgstr "6.00x4.00 pulg."
-#: ppdc/sample.c:219
msgid "6.00x5.00\""
msgstr "6.00x5.00 pulg."
-#: ppdc/sample.c:220
msgid "6.00x6.00\""
msgstr "6.00x6.00 pulg."
-#: ppdc/sample.c:221
msgid "6.00x6.50\""
msgstr "6.00x6.50 pulg."
-#: ppdc/sample.c:415
msgid "60"
msgstr "60"
-#: ppdc/sample.c:332
msgid "60 mm/sec."
msgstr "60 mm/seg"
-#: ppdc/sample.c:261
msgid "600dpi"
msgstr "600ppp"
-#: ppdc/sample.c:242
msgid "60dpi"
msgstr "60ppp"
-#: ppdc/sample.c:248
msgid "60x72dpi"
msgstr "60x72ppp"
-#: ppdc/sample.c:416
msgid "65"
msgstr "65"
-#: ppdc/sample.c:318
msgid "7"
msgstr "7"
-#: ppdc/sample.c:440
msgid "7 inches/sec."
msgstr "7 pulg./seg"
-#: ppdc/sample.c:11
msgid "7 x 9"
msgstr "7 x 9"
-#: ppdc/sample.c:417
msgid "70"
msgstr "70"
-#: ppdc/sample.c:252
msgid "720dpi"
msgstr "720ppp"
-#: ppdc/sample.c:418
msgid "75"
msgstr "75"
-#: ppdc/sample.c:319
msgid "8"
msgstr "8"
-#: ppdc/sample.c:441
msgid "8 inches/sec."
msgstr "8 pulg./seg"
-#: ppdc/sample.c:12
msgid "8 x 10"
msgstr "8 x 10"
-#: ppdc/sample.c:222
msgid "8.00x1.00\""
msgstr "8.00x1.00 pulg."
-#: ppdc/sample.c:223
msgid "8.00x2.00\""
msgstr "8.00x2.00 pulg."
-#: ppdc/sample.c:224
msgid "8.00x3.00\""
msgstr "8.00x3.00 pulg."
-#: ppdc/sample.c:225
msgid "8.00x4.00\""
msgstr "8.00x4.00 pulg."
-#: ppdc/sample.c:226
msgid "8.00x5.00\""
msgstr "8.00x5.00 pulg."
-#: ppdc/sample.c:227
msgid "8.00x6.00\""
msgstr "8.00x6.00 pulg."
-#: ppdc/sample.c:228
msgid "8.00x6.50\""
msgstr "8.00x6.50 pulg."
-#: ppdc/sample.c:419
msgid "80"
msgstr "80"
-#: ppdc/sample.c:333
msgid "80 mm/sec."
msgstr "80 mm/seg"
-#: ppdc/sample.c:420
msgid "85"
msgstr "85"
-#: ppdc/sample.c:320
msgid "9"
msgstr "9"
-#: ppdc/sample.c:442
msgid "9 inches/sec."
msgstr "9 pulg./seg"
-#: ppdc/sample.c:13
msgid "9 x 11"
msgstr "9 x 11"
-#: ppdc/sample.c:14
msgid "9 x 12"
msgstr "9 x 12"
-#: ppdc/sample.c:247
msgid "9-Pin Series"
msgstr "9-Pin Series"
-#: ppdc/sample.c:421
msgid "90"
msgstr "90"
-#: ppdc/sample.c:422
msgid "95"
msgstr "95"
-#: berkeley/lpc.c:213
msgid "?Invalid help command unknown."
msgstr "?Comando de ayuda no válido desconocido."
-#: cgi-bin/admin.c:2368
msgid "A Samba password is required to export printer drivers"
-msgstr "Se requiere una contraseña Samba para exportar los controladores de impresora"
+msgstr ""
+"Se requiere una contraseña Samba para exportar los controladores de impresora"
-#: cgi-bin/admin.c:2364
msgid "A Samba username is required to export printer drivers"
-msgstr "Se requiere un nombre de usuario Samba para exportar los controladores de impresora"
+msgstr ""
+"Se requiere un nombre de usuario Samba para exportar los controladores de "
+"impresora"
-#: scheduler/ipp.c:2283
#, c-format
msgid "A class named \"%s\" already exists."
msgstr "Ya existe una clase llamada \"%s\"."
-#: scheduler/ipp.c:1004
#, c-format
msgid "A printer named \"%s\" already exists."
msgstr "Ya existe una impresora llamada \"%s\"."
-#: ppdc/sample.c:15
msgid "A0"
msgstr "A0"
-#: ppdc/sample.c:16
msgid "A0 Long Edge"
msgstr "A0 lado largo"
-#: ppdc/sample.c:17
msgid "A1"
msgstr "A1"
-#: ppdc/sample.c:18
msgid "A1 Long Edge"
msgstr "A1 lado largo"
-#: ppdc/sample.c:37
msgid "A10"
msgstr "A10"
-#: ppdc/sample.c:19
msgid "A2"
msgstr "A2"
-#: ppdc/sample.c:20
msgid "A2 Long Edge"
msgstr "A2 lado largo"
-#: ppdc/sample.c:21
msgid "A3"
msgstr "A3"
-#: ppdc/sample.c:22
msgid "A3 Long Edge"
msgstr "A3 lado largo"
-#: ppdc/sample.c:23
msgid "A3 Oversize"
msgstr "A3 Extragrande"
-#: ppdc/sample.c:24
msgid "A3 Oversize Long Edge"
msgstr "A3 Extragrande lado largo"
-#: ppdc/sample.c:25
msgid "A4"
msgstr "A4"
-#: ppdc/sample.c:27
msgid "A4 Long Edge"
msgstr "A4 lado largo"
-#: ppdc/sample.c:26
msgid "A4 Oversize"
msgstr "A4 Extragrande"
-#: ppdc/sample.c:28
msgid "A4 Small"
msgstr "A4 Pequeño"
-#: ppdc/sample.c:29
msgid "A5"
msgstr "A5"
-#: ppdc/sample.c:31
msgid "A5 Long Edge"
msgstr "A5 lado largo"
-#: ppdc/sample.c:30
msgid "A5 Oversize"
msgstr "A5 Extragrande"
-#: ppdc/sample.c:32
msgid "A6"
msgstr "A6"
-#: ppdc/sample.c:33
msgid "A6 Long Edge"
msgstr "A6 lado largo"
-#: ppdc/sample.c:34
msgid "A7"
msgstr "A7"
-#: ppdc/sample.c:35
msgid "A8"
msgstr "A8"
-#: ppdc/sample.c:36
msgid "A9"
msgstr "A9"
-#: ppdc/sample.c:38
msgid "ANSI A"
msgstr "ANSI A"
-#: ppdc/sample.c:39
msgid "ANSI B"
msgstr "ANSI B"
-#: ppdc/sample.c:40
msgid "ANSI C"
msgstr "ANSI C"
-#: ppdc/sample.c:41
msgid "ANSI D"
msgstr "ANSI D"
-#: ppdc/sample.c:42
msgid "ANSI E"
msgstr "ANSI E"
-#: ppdc/sample.c:47
msgid "ARCH C"
msgstr "ARCH C"
-#: ppdc/sample.c:48
msgid "ARCH C Long Edge"
msgstr "ARCH C lado largo"
-#: ppdc/sample.c:49
msgid "ARCH D"
msgstr "ARCH D"
-#: ppdc/sample.c:50
msgid "ARCH D Long Edge"
msgstr "ARCH D lado largo"
-#: ppdc/sample.c:51
msgid "ARCH E"
msgstr "ARCH E"
-#: ppdc/sample.c:52
msgid "ARCH E Long Edge"
msgstr "ARCH E lado largo"
-#: cgi-bin/classes.c:169
-#: cgi-bin/printers.c:172
msgid "Accept Jobs"
msgstr "Aceptar trabajos"
-#: cups/http-support.c:1284
msgid "Accepted"
msgstr "Aceptado"
-#: cgi-bin/admin.c:570
msgid "Add Class"
msgstr "Añadir clase"
-#: cgi-bin/admin.c:882
msgid "Add Printer"
msgstr "Añadir impresora"
-#: cgi-bin/admin.c:444
-#: cgi-bin/admin.c:477
-#: cgi-bin/admin.c:525
-#: cgi-bin/admin.c:535
msgid "Add RSS Subscription"
msgstr "Añadir subscripción RSS"
-#: ppdc/sample.c:163
msgid "Address"
msgstr "Dirección"
-#: cgi-bin/admin.c:210
-#: cgi-bin/admin.c:284
-#: cgi-bin/admin.c:2745
msgid "Administration"
msgstr "Administración"
-#: ppdc/sample.c:429
msgid "Always"
msgstr "Siempre"
-#: backend/socket.c:129
msgid "AppSocket/HP JetDirect"
msgstr "AppSocket/HP JetDirect"
-#: ppdc/sample.c:450
msgid "Applicator"
msgstr "Aplicador"
-#: scheduler/ipp.c:1079
#, c-format
msgid "Attempt to set %s printer-state to bad value %d."
-msgstr "Se ha intentado cambiar el valor printer-state de %s a un valor incorrecto %d."
+msgstr ""
+"Se ha intentado cambiar el valor printer-state de %s a un valor incorrecto "
+"%d."
-#: scheduler/ipp.c:325
#, c-format
msgid "Attribute groups are out of order (%x < %x)."
msgstr "Los grupos de atributos están desordenados (%x < %x)."
-#: ppdc/sample.c:126
msgid "B0"
msgstr "B0"
-#: ppdc/sample.c:127
msgid "B1"
msgstr "B1"
-#: ppdc/sample.c:137
msgid "B10"
msgstr "B10"
-#: ppdc/sample.c:128
msgid "B2"
msgstr "B2"
-#: ppdc/sample.c:129
msgid "B3"
msgstr "B3"
-#: ppdc/sample.c:130
msgid "B4"
msgstr "B4"
-#: ppdc/sample.c:131
msgid "B5"
msgstr "B5"
-#: ppdc/sample.c:132
msgid "B5 Oversize"
msgstr "A5 Extragrande"
-#: ppdc/sample.c:133
msgid "B6"
msgstr "B6"
-#: ppdc/sample.c:134
msgid "B7"
msgstr "B7"
-#: ppdc/sample.c:135
msgid "B8"
msgstr "B8"
-#: ppdc/sample.c:136
msgid "B9"
msgstr "B9"
-#: cups/dest.c:1680
+#, c-format
+msgid "Bad 'document-format' value \"%s\"."
+msgstr ""
+
msgid "Bad NULL dests pointer"
msgstr "Puntero destino NULLincorrecto"
-#: cups/ppd.c:345
msgid "Bad OpenGroup"
msgstr "OpenGroup incorrecto"
-#: cups/ppd.c:347
msgid "Bad OpenUI/JCLOpenUI"
msgstr "OpenUI/JCLOpenUI incorrecto"
-#: cups/ppd.c:349
msgid "Bad OrderDependency"
msgstr "OrderDependency incorrecto"
-#: cups/ppd-cache.c:148
-#: cups/ppd-cache.c:195
-#: cups/ppd-cache.c:233
-#: cups/ppd-cache.c:239
-#: cups/ppd-cache.c:255
-#: cups/ppd-cache.c:271
-#: cups/ppd-cache.c:280
-#: cups/ppd-cache.c:288
-#: cups/ppd-cache.c:305
-#: cups/ppd-cache.c:313
-#: cups/ppd-cache.c:328
-#: cups/ppd-cache.c:336
-#: cups/ppd-cache.c:354
-#: cups/ppd-cache.c:366
-#: cups/ppd-cache.c:381
-#: cups/ppd-cache.c:393
-#: cups/ppd-cache.c:415
-#: cups/ppd-cache.c:423
-#: cups/ppd-cache.c:441
-#: cups/ppd-cache.c:449
-#: cups/ppd-cache.c:464
-#: cups/ppd-cache.c:472
-#: cups/ppd-cache.c:490
-#: cups/ppd-cache.c:498
-#: cups/ppd-cache.c:525
-#: cups/ppd-cache.c:571
-#: cups/ppd-cache.c:579
-#: cups/ppd-cache.c:587
msgid "Bad PPD cache file."
msgstr "Archivo de caché PPD incorrecto."
-#: cups/http-support.c:1299
msgid "Bad Request"
msgstr "Petición incorrecta"
-#: cups/snmp.c:1002
msgid "Bad SNMP version number"
msgstr "Número de versión SNMP incorrecto"
-#: cups/ppd.c:350
msgid "Bad UIConstraints"
msgstr "UIConstraints incorrecto"
-#: scheduler/ipp.c:1380
#, c-format
msgid "Bad copies value %d."
msgstr "Valor de copias %d incorrecto."
-#: cups/ppd.c:358
msgid "Bad custom parameter"
msgstr "Parámetro a medida incorrecto"
-#: cups/http-support.c:1451
-#: scheduler/ipp.c:2350
#, c-format
msgid "Bad device-uri \"%s\"."
msgstr "device-uri \"%s\" incorrecto."
-#: scheduler/ipp.c:2391
#, c-format
msgid "Bad device-uri scheme \"%s\"."
msgstr "Esquema device-uri \"%s\" incorrecto."
-#: scheduler/ipp.c:8224
-#: scheduler/ipp.c:8240
-#: scheduler/ipp.c:9454
-#: scheduler/ipp.c:10968
#, c-format
msgid "Bad document-format \"%s\"."
msgstr "document-format \"%s\" incorrecto."
-#: scheduler/ipp.c:9470
#, c-format
msgid "Bad document-format-default \"%s\"."
msgstr "document-format-default \"%s\" incorrecto."
-#: cups/util.c:929
msgid "Bad filename buffer"
msgstr "Nombre de archivo del búfer incorrecto"
-#: scheduler/ipp.c:10060
msgid "Bad job-priority value."
msgstr "Valor job-priority incorrecto."
-#: scheduler/ipp.c:1410
#, c-format
msgid "Bad job-sheets value \"%s\"."
msgstr "Valor de job-sheets \"%s\" incorrecto."
-#: scheduler/ipp.c:1394
msgid "Bad job-sheets value type."
msgstr "Tipo de valor de job-sheets incorrecto."
-#: scheduler/ipp.c:10090
msgid "Bad job-state value."
msgstr "Valor job-state incorrecto."
-#: scheduler/ipp.c:2974
-#: scheduler/ipp.c:3426
-#: scheduler/ipp.c:6078
-#: scheduler/ipp.c:6225
-#: scheduler/ipp.c:7658
-#: scheduler/ipp.c:7927
-#: scheduler/ipp.c:8775
-#: scheduler/ipp.c:9001
-#: scheduler/ipp.c:9350
-#: scheduler/ipp.c:9953
#, c-format
msgid "Bad job-uri \"%s\"."
msgstr "job-uri \"%s\" incorrecto."
-#: scheduler/ipp.c:2049
-#: scheduler/ipp.c:5622
#, c-format
msgid "Bad notify-pull-method \"%s\"."
msgstr "notify-pull-method \"%s\" incorrecto."
-#: scheduler/ipp.c:2013
-#: scheduler/ipp.c:5586
#, c-format
msgid "Bad notify-recipient-uri \"%s\"."
msgstr "notify-recipient-uri \"%s\" incorrecto."
-#: scheduler/ipp.c:1426
#, c-format
msgid "Bad number-up value %d."
msgstr "Valor number-up (páginas por hoja) %d incorrecto."
-#: cups/adminutil.c:292
#, c-format
msgid "Bad option + choice on line %d."
msgstr "Opción + preferencia incorrectas en línea %d."
-#: scheduler/ipp.c:1443
#, c-format
msgid "Bad page-ranges values %d-%d."
msgstr "Valores de page-ranges %d-%d incorrectos."
-#: scheduler/ipp.c:2434
#, c-format
msgid "Bad port-monitor \"%s\"."
msgstr "port-monitor \"%s\" incorrecto."
-#: cups/dest.c:676
-#: cups/dest.c:1333
msgid "Bad printer URI."
msgstr "URI de impresora incorrecto."
-#: scheduler/ipp.c:2495
#, c-format
msgid "Bad printer-state value %d."
msgstr "Valor printer-state %d incorrecto."
-#: scheduler/ipp.c:293
#, c-format
msgid "Bad request ID %d."
msgstr "Petición incorrecta de ID %d."
-#: scheduler/ipp.c:278
#, c-format
msgid "Bad request version number %d.%d."
msgstr "Petición incorrecta de número de versión %d.%d."
-#: cgi-bin/admin.c:1484
msgid "Bad subscription ID"
msgstr "ID de subscripción incorrecto"
-#: cups/ppd.c:360
msgid "Bad value string"
msgstr "Cadena de valores incorrecta"
-#: cgi-bin/admin.c:3290
-#: cgi-bin/admin.c:3536
msgid "Banners"
msgstr "Rótulos"
-#: ppdc/sample.c:287
msgid "Bond Paper"
msgstr "Papel de cartas"
-#: backend/usb-darwin.c:1846
#, c-format
msgid "Boolean expected for waiteof option \"%s\"."
msgstr "Se esperaba un valor lógico para la opción waiteof \"%s\"."
-#: filter/pstops.c:2057
msgid "Buffer overflow detected, aborting."
msgstr "Se ha detectado un desbordamiento de buffer, cancelando."
-#: ppdc/sample.c:254
msgid "CMYK"
msgstr "CMYK"
-#: ppdc/sample.c:363
msgid "CPCL Label Printer"
msgstr "Impresora de etiquetas CPCL"
-#: cgi-bin/admin.c:1485
-#: cgi-bin/admin.c:1524
-#: cgi-bin/admin.c:1534
msgid "Cancel RSS Subscription"
msgstr "Cancelar subscripción RSS"
-#: backend/ipp.c:1921
msgid "Canceling print job."
msgstr "Cancelando trabajo de impresión."
-#: scheduler/ipp.c:2475
msgid "Cannot share a remote Kerberized printer."
msgstr "No se puede compartir una impresora remota Kerberizada."
-#: ppdc/sample.c:279
msgid "Cassette"
msgstr "Casete"
-#: cgi-bin/admin.c:1655
-#: cgi-bin/admin.c:1797
-#: cgi-bin/admin.c:1810
-#: cgi-bin/admin.c:1821
msgid "Change Settings"
msgstr "Cambiar configuración"
-#: scheduler/ipp.c:2061
-#: scheduler/ipp.c:5634
#, c-format
msgid "Character set \"%s\" not supported."
msgstr "No se admite el juego de caracteres \"%s\"."
-#: cgi-bin/classes.c:195
-#: cgi-bin/classes.c:322
msgid "Classes"
msgstr "Clases"
-#: cgi-bin/printers.c:182
msgid "Clean Print Heads"
msgstr "Limpiar cabezales de impresión"
-#: scheduler/ipp.c:3878
msgid "Close-Job doesn't support the job-uri attribute."
msgstr "Close-Job no admite el atributo job-uri."
-#: ppdc/sample.c:282
msgid "Color"
msgstr "Color"
-#: ppdc/sample.c:253
msgid "Color Mode"
msgstr "Modo de color"
-#: berkeley/lpc.c:204
msgid ""
"Commands may be abbreviated. Commands are:\n"
"\n"
@@ -3275,101 +2441,67 @@ msgstr ""
"\n"
"exit help quit status ?"
-#: cups/snmp.c:1006
msgid "Community name uses indefinite length"
msgstr "Nombre de comunidad usa una longitud indefinida"
-#: backend/ipp.c:786
-#: backend/lpd.c:871
-#: backend/socket.c:395
msgid "Connected to printer."
msgstr "Conectado a la impresora."
-#: backend/ipp.c:691
-#: backend/lpd.c:694
-#: backend/socket.c:314
msgid "Connecting to printer."
msgstr "Conectando a la impresora."
-#: cups/http-support.c:1272
msgid "Continue"
msgstr "Continuar"
-#: ppdc/sample.c:365
msgid "Continuous"
msgstr "Continuo"
-#: backend/lpd.c:1020
-#: backend/lpd.c:1152
msgid "Control file sent successfully."
msgstr "Archivo de control enviado correctamente."
-#: backend/ipp.c:1233
-#: backend/lpd.c:464
msgid "Copying print data."
msgstr "Copiando datos de impresión."
-#: cups/http-support.c:1281
msgid "Created"
msgstr "Creado"
-#: cups/ppd.c:1113
-#: cups/ppd.c:1153
-#: cups/ppd.c:1398
-#: cups/ppd.c:1501
msgid "Custom"
msgstr "A medida"
-#: ppdc/sample.c:359
msgid "CustominCutInterval"
msgstr "CustominCutInterval"
-#: ppdc/sample.c:357
msgid "CustominTearInterval"
msgstr "CustominTearInterval"
-#: ppdc/sample.c:343
msgid "Cut"
msgstr "Cortar"
-#: ppdc/sample.c:451
msgid "Cutter"
msgstr "Cortadora"
-#: ppdc/sample.c:239
msgid "Dark"
msgstr "Oscuro"
-#: ppdc/sample.c:235
msgid "Darkness"
msgstr "Oscuridad"
-#: backend/lpd.c:1105
msgid "Data file sent successfully."
msgstr "Archivo de datos enviado correctamente."
-#: cgi-bin/admin.c:2094
-#: cgi-bin/admin.c:2105
-#: cgi-bin/admin.c:2150
msgid "Delete Class"
msgstr "Borrar clase"
-#: cgi-bin/admin.c:2179
-#: cgi-bin/admin.c:2190
-#: cgi-bin/admin.c:2235
msgid "Delete Printer"
msgstr "Borrar impresora"
-#: ppdc/sample.c:281
msgid "DeskJet Series"
msgstr "DeskJet Series"
-#: scheduler/ipp.c:1346
#, c-format
msgid "Destination \"%s\" is not accepting jobs."
msgstr "El destino %s no acepta trabajos."
-#: systemv/lpinfo.c:300
#, c-format
msgid ""
"Device: uri = %s\n"
@@ -3386,988 +2518,724 @@ msgstr ""
" id dispositivo= %s\n"
" ubicación = %s"
-#: ppdc/sample.c:436
msgid "Direct Thermal Media"
msgstr "Soporte térmico directo"
-#: cups/file.c:296
#, c-format
msgid "Directory \"%s\" contains a relative path."
msgstr "El directorio \"%s\" contiene una ruta relativa."
-#: cups/file.c:268
#, c-format
msgid "Directory \"%s\" has insecure permissions (0%o/uid=%d/gid=%d)."
msgstr "El directorio \"%s\" tiene permisos no seguros (0%o/uid=%d/gid=%d)."
-#: cups/file.c:285
#, c-format
msgid "Directory \"%s\" is a file."
msgstr "El directorio \"%s\" es un archivo."
-#: cups/file.c:256
#, c-format
msgid "Directory \"%s\" not available: %s"
msgstr "Directorio \"%s\" no disponible: %s"
-#: cups/file.c:241
#, c-format
msgid "Directory \"%s\" permissions OK (0%o/uid=%d/gid=%d)."
msgstr "Permisos del directorio \"%s\" OK (0%o/uid=%d/gid=%d)."
-#: ppdc/sample.c:345
msgid "Disabled"
msgstr "Deshabilitado"
-#: scheduler/ipp.c:6127
#, c-format
msgid "Document #%d does not exist in job #%d."
msgstr "El documento #%d no existe en el trabajo #%d."
-#: ppdc/sample.c:275
msgid "Duplexer"
msgstr "Unidad de impresión dúplex"
-#: ppdc/sample.c:229
msgid "Dymo"
msgstr "Dymo"
-#: ppdc/sample.c:431
msgid "EPL1 Label Printer"
msgstr "Impresora de etiquetas EPL1"
-#: ppdc/sample.c:434
msgid "EPL2 Label Printer"
msgstr "Impresora de etiquetas EPL2"
-#: cgi-bin/admin.c:1849
-#: cgi-bin/admin.c:1861
-#: cgi-bin/admin.c:1915
-#: cgi-bin/admin.c:1922
-#: cgi-bin/admin.c:1957
-#: cgi-bin/admin.c:1970
-#: cgi-bin/admin.c:1994
-#: cgi-bin/admin.c:2067
msgid "Edit Configuration File"
msgstr "Editar archivo de configuración"
-#: cups/adminutil.c:337
msgid "Empty PPD file."
msgstr "Archivo PPD vacío."
#. TRANSLATORS: Banner/cover sheet after the print job.
-#: cgi-bin/admin.c:3561
msgid "Ending Banner"
msgstr "Rótulo final"
-#: ppdc/sample.c:2
msgid "English"
msgstr "Spanish"
-#: systemv/lppasswd.c:193
msgid "Enter old password:"
msgstr "Introduzca la contraseña antigua:"
-#: systemv/lppasswd.c:224
msgid "Enter password again:"
msgstr "Introduzca nuevamente la contraseña:"
-#: systemv/lppasswd.c:212
msgid "Enter password:"
msgstr "Introduzca la contraseña:"
-#: scheduler/client.c:2427
-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 "Introduzca su nombre de usuario y contraseña o el nombre de usuario y contraseña de root para poder acceder a esta página. Si está usando autentificación Kerberos, asegúrese de que tiene un ticket Kerberos válido."
+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 ""
+"Introduzca su nombre de usuario y contraseña o el nombre de usuario y "
+"contraseña de root para poder acceder a esta página. Si está usando "
+"autentificación Kerberos, asegúrese de que tiene un ticket Kerberos válido."
-#: ppdc/sample.c:73
msgid "Envelope #10 "
msgstr "Sobre #10"
-#: ppdc/sample.c:74
msgid "Envelope #11"
msgstr "Sobre #11"
-#: ppdc/sample.c:75
msgid "Envelope #12"
msgstr "Sobre #12"
-#: ppdc/sample.c:76
msgid "Envelope #14"
msgstr "Sobre #14"
-#: ppdc/sample.c:77
msgid "Envelope #9"
msgstr "Sobre #9"
-#: ppdc/sample.c:89
msgid "Envelope B4"
msgstr "Sobre B4"
-#: ppdc/sample.c:90
msgid "Envelope B5"
msgstr "Sobre B5"
-#: ppdc/sample.c:91
msgid "Envelope B6"
msgstr "Sobre B6"
-#: ppdc/sample.c:78
msgid "Envelope C0"
msgstr "Sobre C0"
-#: ppdc/sample.c:79
msgid "Envelope C1"
msgstr "Sobre C1"
-#: ppdc/sample.c:80
msgid "Envelope C2"
msgstr "Sobre C2"
-#: ppdc/sample.c:81
msgid "Envelope C3"
msgstr "Sobre C3"
-#: ppdc/sample.c:67
msgid "Envelope C4"
msgstr "Sobre C4"
-#: ppdc/sample.c:68
msgid "Envelope C5"
msgstr "Sobre C5"
-#: ppdc/sample.c:69
msgid "Envelope C6"
msgstr "Sobre C6"
-#: ppdc/sample.c:82
msgid "Envelope C65"
msgstr "Sobre C65"
-#: ppdc/sample.c:83
msgid "Envelope C7"
msgstr "Sobre C7"
-#: ppdc/sample.c:84
msgid "Envelope Choukei 3"
msgstr "Sobre Choukei 3"
-#: ppdc/sample.c:85
msgid "Envelope Choukei 3 Long Edge"
msgstr "Sobre Choukei 3 lado largo"
-#: ppdc/sample.c:86
msgid "Envelope Choukei 4"
msgstr "Sobre Choukei 4"
-#: ppdc/sample.c:87
msgid "Envelope Choukei 4 Long Edge"
msgstr "Sobre Choukei 4 lado largo"
-#: ppdc/sample.c:70
msgid "Envelope DL"
msgstr "Sobre DL"
-#: ppdc/sample.c:269
msgid "Envelope Feed"
msgstr "Alimentador de sobre"
-#: ppdc/sample.c:88
msgid "Envelope Invite"
msgstr "Sobre Invitación"
-#: ppdc/sample.c:92
msgid "Envelope Italian"
msgstr "Sobre Italiano"
-#: ppdc/sample.c:93
msgid "Envelope Kaku2"
msgstr "Sobre Kaku2"
-#: ppdc/sample.c:94
msgid "Envelope Kaku2 Long Edge"
msgstr "Sobre Kaku2 lado largo"
-#: ppdc/sample.c:95
msgid "Envelope Kaku3"
msgstr "Sobre Kaku3"
-#: ppdc/sample.c:96
msgid "Envelope Kaku3 Long Edge"
msgstr "Sobre Kaku3 lado largo"
-#: ppdc/sample.c:97
msgid "Envelope Monarch"
msgstr "Sobre Monarch"
-#: ppdc/sample.c:99
msgid "Envelope PRC1 "
msgstr "Sobre PRC1"
-#: ppdc/sample.c:100
msgid "Envelope PRC1 Long Edge"
msgstr "Sobre PRC1 lado largo"
-#: ppdc/sample.c:117
msgid "Envelope PRC10"
msgstr "Sobre PRC10"
-#: ppdc/sample.c:118
msgid "Envelope PRC10 Long Edge"
msgstr "Sobre PRC10 lado largo"
-#: ppdc/sample.c:101
msgid "Envelope PRC2"
msgstr "Sobre PRC2"
-#: ppdc/sample.c:102
msgid "Envelope PRC2 Long Edge"
msgstr "Sobre PRC2 lado largo"
-#: ppdc/sample.c:103
msgid "Envelope PRC3"
msgstr "Sobre PRC3"
-#: ppdc/sample.c:104
msgid "Envelope PRC3 Long Edge"
msgstr "Sobre PRC3 lado largo"
-#: ppdc/sample.c:105
msgid "Envelope PRC4"
msgstr "Sobre PRC4"
-#: ppdc/sample.c:106
msgid "Envelope PRC4 Long Edge"
msgstr "Sobre PRC4 lado largo"
-#: ppdc/sample.c:108
msgid "Envelope PRC5 Long Edge"
msgstr "Sobre PRC5 lado largo"
-#: ppdc/sample.c:107
msgid "Envelope PRC5PRC5"
msgstr "Sobre PRC5PRC5"
-#: ppdc/sample.c:109
msgid "Envelope PRC6"
msgstr "Sobre PRC6"
-#: ppdc/sample.c:110
msgid "Envelope PRC6 Long Edge"
msgstr "Sobre PRC6 lado largo"
-#: ppdc/sample.c:111
msgid "Envelope PRC7"
msgstr "Sobre PRC7"
-#: ppdc/sample.c:112
msgid "Envelope PRC7 Long Edge"
msgstr "Sobre PRC7 lado largo"
-#: ppdc/sample.c:113
msgid "Envelope PRC8"
msgstr "Sobre PRC8"
-#: ppdc/sample.c:114
msgid "Envelope PRC8 Long Edge"
msgstr "Sobre PRC8 lado largo"
-#: ppdc/sample.c:115
msgid "Envelope PRC9"
msgstr "Sobre PRC9"
-#: ppdc/sample.c:116
msgid "Envelope PRC9 Long Edge"
msgstr "Sobre PRC9 lado largo"
-#: ppdc/sample.c:98
msgid "Envelope Personal"
msgstr "Sobre Personal"
-#: ppdc/sample.c:119
msgid "Envelope You4"
msgstr "Sobre You4"
-#: ppdc/sample.c:120
msgid "Envelope You4 Long Edge"
msgstr "Sobre You4 lado largo"
-#: ppdc/sample.c:240
msgid "Epson"
msgstr "Epson"
-#: cgi-bin/admin.c:3604
msgid "Error Policy"
msgstr "Directiva de error"
-#: filter/rastertopwg.c:403
-#: filter/rastertopwg.c:418
-#: filter/rastertopwg.c:429
-#: filter/rastertopwg.c:440
msgid "Error sending raster data."
msgstr "Error enviando trama de datos (raster)."
-#: systemv/lpinfo.c:103
-#: systemv/lpmove.c:88
msgid "Error: need hostname after \"-h\" option."
msgstr "Error: se necesita un nombre de ordenador tras la opción \"-h\"."
-#: ppdc/sample.c:355
msgid "Every 10 Labels"
msgstr "Cada 10 etiquetas"
-#: ppdc/sample.c:347
msgid "Every 2 Labels"
msgstr "Cada 2 etiquetas"
-#: ppdc/sample.c:348
msgid "Every 3 Labels"
msgstr "Cada 3 etiquetas"
-#: ppdc/sample.c:349
msgid "Every 4 Labels"
msgstr "Cada 4 etiquetas"
-#: ppdc/sample.c:350
msgid "Every 5 Labels"
msgstr "Cada 5 etiquetas"
-#: ppdc/sample.c:351
msgid "Every 6 Labels"
msgstr "Cada 6 etiquetas"
-#: ppdc/sample.c:352
msgid "Every 7 Labels"
msgstr "Cada 7 etiquetas"
-#: ppdc/sample.c:353
msgid "Every 8 Labels"
msgstr "Cada 8 etiquetas"
-#: ppdc/sample.c:354
msgid "Every 9 Labels"
msgstr "Cada 9 etiquetas"
-#: ppdc/sample.c:346
msgid "Every Label"
msgstr "Cada etiqueta"
-#: ppdc/sample.c:121
msgid "Executive"
msgstr "Ejecutivo"
-#: cups/http-support.c:1327
msgid "Expectation Failed"
msgstr "Lo que se esperaba, falló."
-#: cgi-bin/admin.c:2356
-#: cgi-bin/admin.c:2375
msgid "Export Printers to Samba"
msgstr "Exportar impresoras a Samba"
-#: systemv/cupstestdsc.c:172
-#: systemv/cupstestdsc.c:189
-#: systemv/cupstestdsc.c:214
-#: systemv/cupstestdsc.c:231
-#: systemv/cupstestdsc.c:255
-#: systemv/cupstestdsc.c:273
-#: systemv/cupstestdsc.c:302
-#: systemv/cupstestdsc.c:339
-#: systemv/cupstestdsc.c:349
-#: systemv/cupstestdsc.c:359
-#: systemv/cupstestdsc.c:369
-#: systemv/cupstestdsc.c:379
-#: systemv/cupstestdsc.c:387
msgid "FAIL"
msgstr "FALLO"
-#: ppdc/sample.c:122
msgid "FanFold German"
msgstr "FanFold alemán"
-#: ppdc/sample.c:123
msgid "FanFold Legal German"
msgstr "FanFold Legal alemán"
-#: ppdc/sample.c:124
msgid "Fanfold US"
msgstr "FanFold de EE.UU"
-#: cups/file.c:300
#, c-format
msgid "File \"%s\" contains a relative path."
msgstr "El archivo \"%s\" contiene una ruta relativa."
-#: cups/file.c:275
#, c-format
msgid "File \"%s\" has insecure permissions (0%o/uid=%d/gid=%d)."
msgstr "El archivo \"%s\" tiene permisos no seguros (0%o/uid=%d/gid=%d)."
-#: cups/file.c:289
#, c-format
msgid "File \"%s\" is a directory."
msgstr "El archivo \"%s\" es un directorio."
-#: cups/file.c:261
#, c-format
msgid "File \"%s\" not available: %s"
msgstr "Archivo \"%s\" no disponible: %s"
-#: cups/file.c:247
#, c-format
msgid "File \"%s\" permissions OK (0%o/uid=%d/gid=%d)."
msgstr "Permisos del archivo \"%s\" OK (0%o/uid=%d/gid=%d)."
-#: ppdc/sample.c:169
msgid "File Folder "
msgstr "Carpeta de archivo"
-#: scheduler/ipp.c:2370
#, c-format
-msgid "File device URIs have been disabled. To enable, see the FileDevice directive in \"%s/cupsd.conf\"."
-msgstr "Los URIs del dispositivo de archivo han sido deshabilitados. Para habilitarlos, vea la directiva FileDevice en \"%s/cupsd.conf\"."
+msgid ""
+"File device URIs have been disabled. To enable, see the FileDevice directive "
+"in \"%s/cupsd.conf\"."
+msgstr ""
+"Los URIs del dispositivo de archivo han sido deshabilitados. Para "
+"habilitarlos, vea la directiva FileDevice en \"%s/cupsd.conf\"."
-#: filter/rastertoepson.c:1117
-#: filter/rastertohp.c:845
-#: filter/rastertolabel.c:1273
#, c-format
msgid "Finished page %d."
msgstr "Acabada la página %d."
-#: ppdc/sample.c:125
msgid "Folio"
msgstr "Folio"
-#: cups/http-support.c:1306
msgid "Forbidden"
msgstr "Prohibido"
-#: cups/ppd.c:742
-#: cups/ppd.c:1302
msgid "General"
msgstr "General"
-#: ppdc/sample.c:259
msgid "Generic"
msgstr "Genérico"
-#: cups/snmp.c:1016
msgid "Get-Response-PDU uses indefinite length"
msgstr "Get-Response-PDU usa una longitud indefinida"
-#: ppdc/sample.c:290
msgid "Glossy Paper"
msgstr "Papel satinado"
-#: scheduler/ipp.c:2952
-#: scheduler/ipp.c:3352
-#: scheduler/ipp.c:3890
-#: scheduler/ipp.c:6056
-#: scheduler/ipp.c:6203
-#: scheduler/ipp.c:7635
-#: scheduler/ipp.c:8753
-#: scheduler/ipp.c:8979
-#: scheduler/ipp.c:9328
-#: scheduler/ipp.c:9931
msgid "Got a printer-uri attribute but no job-id."
msgstr "Se ha obtenido el atributo printer-uri pero no el job-id."
-#: ppdc/sample.c:255
msgid "Grayscale"
msgstr "Escale de grises"
-#: ppdc/sample.c:280
msgid "HP"
msgstr "HP"
-#: ppdc/sample.c:170
msgid "Hanging Folder"
msgstr "Carpeta colgante"
-#: cgi-bin/help.c:143
msgid "Help file not in index."
msgstr "El archivo de ayuda no está en el índice"
-#: cups/ipp.c:2687
-#: cups/ipp.c:2714
-#: cups/ipp.c:2737
msgid "IPP 1setOf attribute with incompatible value tags."
msgstr "IPP atributo 1setOf con etiquetas de valor incompatibles"
-#: cups/ipp.c:2650
msgid "IPP attribute has no name."
msgstr "IPP atributo sin nombre"
-#: cups/ipp.c:5487
msgid "IPP attribute is not a member of the message."
msgstr "El atributo IPP no es un miembro del mensaje."
-#: cups/ipp.c:3083
msgid "IPP begCollection value not 0 bytes."
msgstr "IPP el valor begCollection no es de 0 bytes."
-#: cups/ipp.c:2873
msgid "IPP boolean value not 1 byte."
msgstr "IPP el valor lógico no es de 1 byte."
-#: cups/ipp.c:2934
msgid "IPP date value not 11 bytes."
msgstr "IPP el valor de fecha no es de 11 bytes."
-#: cups/ipp.c:3104
msgid "IPP endCollection value not 0 bytes."
msgstr "IPP el valor endCollection no es de 0 bytes."
-#: cups/ipp.c:2848
msgid "IPP enum value not 4 bytes."
msgstr "IPP el valor enum no es de 4 bytes."
-#: cups/ipp.c:2579
msgid "IPP extension tag larger than 0x7FFFFFFF."
msgstr "IPP etiqueta de extensión mayor de 0x7FFFFFFF."
-#: cups/ipp.c:2845
msgid "IPP integer value not 4 bytes."
msgstr "IPP el valor entero no es de 4 bytes."
-#: cups/ipp.c:3045
msgid "IPP language length overflows value."
msgstr "IPP la longitud del idioma sobrepasa el valor."
-#: cups/ipp.c:2764
+msgid "IPP language length too large."
+msgstr ""
+
msgid "IPP member name is not empty."
msgstr "IPP el nombre del miembro no está vacío."
-#: cups/ipp.c:3122
msgid "IPP memberName value is empty."
msgstr "IPP el valor memberName está vacío."
-#: cups/ipp.c:2633
+msgid "IPP memberName with no attribute."
+msgstr ""
+
msgid "IPP name larger than 32767 bytes."
msgstr "IPP nombre mayor de 32767 bytes."
-#: cups/ipp.c:3011
msgid "IPP nameWithLanguage value less than minimum 4 bytes."
msgstr "IPP el valor nameWithLanguage menor del mínimo de 4 bytes."
-#: cups/ipp.c:2979
+msgid "IPP nameWithLanguage value more than maximum 1090 bytes."
+msgstr ""
+
+msgid "IPP octetString length too large."
+msgstr ""
+
msgid "IPP rangeOfInteger value not 8 bytes."
msgstr "IPP el valor rangeOfInteger no es de 8 bytes."
-#: cups/ipp.c:2952
msgid "IPP resolution value not 9 bytes."
msgstr "IPP el valor de la resolución no es de 9 bytes."
-#: cups/ipp.c:3063
msgid "IPP string length overflows value."
msgstr "IPP la longitud de la cadena sobrepasa el valor."
-#: cups/ipp.c:3007
+msgid "IPP string value too large."
+msgstr ""
+
+msgid "IPP text length too large."
+msgstr ""
+
msgid "IPP textWithLanguage value less than minimum 4 bytes."
msgstr "IPP el valor textWithLanguage menor del mínimo de 4 bytes."
-#: cups/ipp.c:2831
+msgid "IPP textWithLanguage value more than maximum 1090 bytes."
+msgstr ""
+
msgid "IPP value larger than 32767 bytes."
msgstr "IPP valor mayor de 32767 bytes."
-#: ppdc/sample.c:1
msgid "ISOLatin1"
msgstr "UTF-8"
-#: cups/ppd.c:353
msgid "Illegal control character"
msgstr "Carácter de control ilegal"
-#: cups/ppd.c:354
msgid "Illegal main keyword string"
msgstr "Cadena de clave principal ilegal"
-#: cups/ppd.c:355
msgid "Illegal option keyword string"
msgstr "Cadena de clave de opción ilegal"
-#: cups/ppd.c:356
msgid "Illegal translation string"
msgstr "Cadena de traducción ilegal"
-#: cups/ppd.c:357
msgid "Illegal whitespace character"
msgstr "Carácter de espacio en blanco ilegal"
-#: ppdc/sample.c:274
msgid "Installable Options"
msgstr "Opciones instalables"
-#: ppdc/sample.c:277
msgid "Installed"
msgstr "Instalada"
-#: ppdc/sample.c:293
msgid "IntelliBar Label Printer"
msgstr "Impresora de etiquetas IntelliBar"
-#: ppdc/sample.c:292
msgid "Intellitech"
msgstr "Intellitech"
-#: cups/http-support.c:1333
msgid "Internal Server Error"
msgstr "Error interno del servidor"
-#: cups/ppd.c:344
msgid "Internal error"
msgstr "Error interno"
-#: ppdc/sample.c:167
msgid "Internet Postage 2-Part"
msgstr "Correo por Internet Parte-2"
-#: ppdc/sample.c:168
msgid "Internet Postage 3-Part"
msgstr "Correo por Internet Parte-3"
-#: backend/ipp.c:307
msgid "Internet Printing Protocol"
msgstr "Protocolo de Impresión de Internet IPP"
-#: cups/dest-options.c:839
msgid "Invalid media size."
msgstr "Tamaño del papel no válido"
-#: filter/commandtops.c:125
#, c-format
msgid "Invalid printer command \"%s\"."
msgstr "Comando de impresora \"%s\" no válido."
-#: cups/ppd.c:1420
msgid "JCL"
msgstr "JCL"
-#: ppdc/sample.c:53
msgid "JIS B0"
msgstr "JIS B0"
-#: ppdc/sample.c:55
msgid "JIS B1"
msgstr "JIS B1"
-#: ppdc/sample.c:54
msgid "JIS B10"
msgstr "JIS B10"
-#: ppdc/sample.c:56
msgid "JIS B2"
msgstr "JIS B2"
-#: ppdc/sample.c:57
msgid "JIS B3"
msgstr "JIS B3"
-#: ppdc/sample.c:58
msgid "JIS B4"
msgstr "JIS B4"
-#: ppdc/sample.c:59
msgid "JIS B4 Long Edge"
msgstr "JIS B4 lado largo"
-#: ppdc/sample.c:60
msgid "JIS B5"
msgstr "JIS B5"
-#: ppdc/sample.c:61
msgid "JIS B5 Long Edge"
msgstr "JIS B5 lado largo"
-#: ppdc/sample.c:62
msgid "JIS B6"
msgstr "JIS B6"
-#: ppdc/sample.c:63
msgid "JIS B6 Long Edge"
msgstr "JIS B6 lado largo"
-#: ppdc/sample.c:64
msgid "JIS B7"
msgstr "JIS B7"
-#: ppdc/sample.c:65
msgid "JIS B8"
msgstr "JIS B8"
-#: ppdc/sample.c:66
msgid "JIS B9"
msgstr "JIS B9"
-#: scheduler/ipp.c:9051
#, c-format
msgid "Job #%d cannot be restarted - no files."
msgstr "El trabajo #%d no puede ser reiniciado - no hay archivos."
-#: scheduler/ipp.c:2992
-#: scheduler/ipp.c:3222
-#: scheduler/ipp.c:3277
-#: scheduler/ipp.c:3454
-#: scheduler/ipp.c:3900
-#: scheduler/ipp.c:5720
-#: scheduler/ipp.c:6096
-#: scheduler/ipp.c:6243
-#: scheduler/ipp.c:6543
-#: scheduler/ipp.c:7482
-#: scheduler/ipp.c:7504
-#: scheduler/ipp.c:7676
-#: scheduler/ipp.c:7901
-#: scheduler/ipp.c:7944
-#: scheduler/ipp.c:8793
-#: scheduler/ipp.c:9019
-#: scheduler/ipp.c:9368
-#: scheduler/ipp.c:9971
#, c-format
msgid "Job #%d does not exist."
msgstr "El trabajo #%d no existe."
-#: scheduler/ipp.c:3486
#, c-format
msgid "Job #%d is already aborted - can't cancel."
msgstr "El trabajo #%d ya está anulado - no se puede cancelar."
-#: scheduler/ipp.c:3480
#, c-format
msgid "Job #%d is already canceled - can't cancel."
msgstr "El trabajo #%d ya está cancelado - no se puede cancelar."
-#: scheduler/ipp.c:3492
#, c-format
msgid "Job #%d is already completed - can't cancel."
msgstr "El trabajo #%d ya ha sido completado - no se puede cancelar."
-#: scheduler/ipp.c:7702
-#: scheduler/ipp.c:7986
-#: scheduler/ipp.c:9986
#, c-format
msgid "Job #%d is finished and cannot be altered."
msgstr "El trabajo #%d ha terminado y no puede ser modificado."
-#: scheduler/ipp.c:9033
#, c-format
msgid "Job #%d is not complete."
msgstr "El trabajo #%d no ha sido completado."
-#: scheduler/ipp.c:3007
#, c-format
msgid "Job #%d is not held for authentication."
msgstr "El trabajo #%d no está retenido para autentificación."
-#: scheduler/ipp.c:8807
#, c-format
msgid "Job #%d is not held."
msgstr "El trabajo #%d no está retenido."
-#: cgi-bin/ipp-var.c:1055
msgid "Job Completed"
msgstr "Trabajo completado"
-#: cgi-bin/ipp-var.c:1053
msgid "Job Created"
msgstr "Trabajo creado"
-#: cgi-bin/ipp-var.c:1059
msgid "Job Options Changed"
msgstr "Opciones de trabajo cambiadas"
-#: cgi-bin/ipp-var.c:1057
msgid "Job Stopped"
msgstr "Trabajo detenido"
-#: scheduler/ipp.c:10068
msgid "Job is completed and cannot be changed."
msgstr "El trabajo está terminado y no puede ser cambiado."
-#: cgi-bin/jobs.c:198
msgid "Job operation failed"
msgstr "La operación del trabajo ha fallado"
-#: scheduler/ipp.c:10104
-#: scheduler/ipp.c:10123
-#: scheduler/ipp.c:10134
msgid "Job state cannot be changed."
msgstr "No se puede cambiar el estado del trabajo."
-#: scheduler/ipp.c:8899
msgid "Job subscriptions cannot be renewed."
msgstr "Las suscripciones de trabajos no han podido ser renovadas."
-#: cgi-bin/jobs.c:103
-#: cgi-bin/jobs.c:114
-#: cgi-bin/jobs.c:195
msgid "Jobs"
msgstr "Trabajos"
-#: backend/lpd.c:185
msgid "LPD/LPR Host or Printer"
msgstr "Equipo o impresora LPD/LPR"
-#: ppdc/sample.c:230
msgid "Label Printer"
msgstr "Impresora de etiquetas"
-#: ppdc/sample.c:446
msgid "Label Top"
msgstr "Parte superior de la etiqueta"
-#: scheduler/ipp.c:2070
-#: scheduler/ipp.c:5643
#, c-format
msgid "Language \"%s\" not supported."
msgstr "No se admite el uso del idioma \"%s\"."
-#: ppdc/sample.c:164
msgid "Large Address"
msgstr "Dirección grande"
-#: ppdc/sample.c:291
msgid "LaserJet Series PCL 4/5"
msgstr "LaserJet Series PCL 4/5"
-#: ppdc/sample.c:43
msgid "Letter Oversize"
msgstr "Carta Extragrande"
-#: ppdc/sample.c:44
msgid "Letter Oversize Long Edge"
msgstr "Carta Extragrande lado largo"
-#: ppdc/sample.c:236
msgid "Light"
msgstr "Ligero"
-#: cups/ppd.c:352
msgid "Line longer than the maximum allowed (255 characters)"
msgstr "Línea más larga que el máximo permitido (255 caracteres)"
-#: cgi-bin/admin.c:2393
msgid "List Available Printers"
msgstr "Listar impresoras disponibles"
-#: ppdc/sample.c:272
msgid "Long-Edge (Portrait)"
msgstr "Lado largo (retrato)"
-#: cups/http-support.c:1558
msgid "Looking for printer."
msgstr "Buscando impresora."
-#: ppdc/sample.c:268
msgid "Manual Feed"
msgstr "Alimentación manual"
-#: cups/ppd.c:789
-#: cups/ppd.c:1357
msgid "Media Size"
msgstr "Tamaño de papel"
-#: cups/ppd.c:793
-#: cups/ppd.c:1361
-#: ppdc/sample.c:262
msgid "Media Source"
msgstr "Fuente del papel"
-#: ppdc/sample.c:364
msgid "Media Tracking"
msgstr "Seguimiento del medio"
-#: cups/ppd.c:791
-#: cups/ppd.c:1359
-#: ppdc/sample.c:285
msgid "Media Type"
msgstr "Tipo de papel"
-#: ppdc/sample.c:237
msgid "Medium"
msgstr "Media"
-#: cups/ppd.c:341
msgid "Memory allocation error"
msgstr "Error de reserva de memoria"
-#: cups/ppd.c:361
msgid "Missing CloseGroup"
msgstr "Falta CloseGroup"
-#: cups/ppd.c:342
msgid "Missing PPD-Adobe-4.x header"
msgstr "Falta cabecera PPD-Adobe-4.x"
-#: cups/ppd.c:351
msgid "Missing asterisk in column 1"
msgstr "Falta un asterisco en la columna 1"
-#: scheduler/ipp.c:6119
msgid "Missing document-number attribute."
msgstr "Falta el atributo document-number."
-#: cups/adminutil.c:273
#, c-format
msgid "Missing double quote on line %d."
msgstr "Faltan dobles comillas en línea %d."
-#: cgi-bin/admin.c:736
-#: cgi-bin/admin.c:2106
-#: cgi-bin/admin.c:2191
-#: cgi-bin/admin.c:2785
-#: cgi-bin/admin.c:3039
-#: cgi-bin/admin.c:3150
-#: cgi-bin/admin.c:3860
msgid "Missing form variable"
msgstr "Falta una variable de formulario"
-#: scheduler/ipp.c:9422
msgid "Missing last-document attribute in request."
msgstr "Falta el atributo last-document en la petición."
-#: cups/pwg-media.c:535
msgid "Missing media or media-col."
msgstr "Falta media o media-col."
-#: cups/pwg-media.c:454
msgid "Missing media-size in media-col."
msgstr "Falta media-size en media-col."
-#: scheduler/ipp.c:6673
msgid "Missing notify-subscription-ids attribute."
msgstr "Falta el atributo notify-subscription-ids."
-#: cups/ppd.c:359
msgid "Missing option keyword"
msgstr "Falta cadena de clave de opción"
-#: scheduler/ipp.c:3133
-#: scheduler/ipp.c:3158
msgid "Missing requesting-user-name attribute."
msgstr "Falta el atributo requesting-user-name."
-#: scheduler/ipp.c:461
msgid "Missing required attributes."
msgstr "Faltan atributos necesarios."
-#: cups/adminutil.c:254
#, c-format
msgid "Missing value on line %d."
msgstr "Falta un valor en la línea %d."
-#: cups/ppd.c:343
msgid "Missing value string"
msgstr "Falta cadena de valores"
-#: cups/pwg-media.c:442
msgid "Missing x-dimension in media-size."
msgstr "Falta x-dimension en media-size."
-#: cups/pwg-media.c:448
msgid "Missing y-dimension in media-size."
msgstr "Falta y-dimension en media-size."
-#: systemv/lpinfo.c:470
#, c-format
msgid ""
"Model: name = %s\n"
@@ -4380,1660 +3248,1229 @@ msgstr ""
" make-and-model = %s\n"
" device-id = %s"
-#: cgi-bin/admin.c:570
msgid "Modify Class"
msgstr "Modificar clase"
-#: cgi-bin/admin.c:882
msgid "Modify Printer"
msgstr "Modificar impresora"
-#: cgi-bin/ipp-var.c:425
-#: cgi-bin/ipp-var.c:516
msgid "Move All Jobs"
msgstr "Mover todos los trabajos"
-#: cgi-bin/ipp-var.c:364
-#: cgi-bin/ipp-var.c:423
-#: cgi-bin/ipp-var.c:514
msgid "Move Job"
msgstr "Mover trabajo"
-#: cups/http-support.c:1290
msgid "Moved Permanently"
msgstr "Movido permanentemente"
-#: cups/ppd.c:340
msgid "NULL PPD file pointer"
msgstr "Puntero de archivo PPD NULO"
-#: cups/snmp.c:1053
msgid "Name OID uses indefinite length"
msgstr "Nombre OID usa una longitud indefinida"
-#: scheduler/ipp.c:1142
msgid "Nested classes are not allowed."
msgstr "No se permiten clases anidadas."
-#: ppdc/sample.c:430
msgid "Never"
msgstr "Nunca"
-#: ppdc/sample.c:256
msgid "New Stylus Color Series"
msgstr "Nueva Stylus Color Series"
-#: ppdc/sample.c:258
msgid "New Stylus Photo Series"
msgstr "Nueva Stylus Photo Series"
-#: cups/ppd.c:1949
msgid "No"
msgstr "No"
-#: cups/http-support.c:1287
msgid "No Content"
msgstr "No hay contenido"
-#: cups/util.c:1298
msgid "No PPD name"
msgstr "No hay nombre de PPD"
-#: cups/snmp.c:1047
msgid "No VarBind SEQUENCE"
msgstr "No hay Varbind SEQUENCE"
-#: cups/adminutil.c:788
msgid "No Windows printer drivers are installed."
msgstr "No está instalado ningún controlador de impresora de Windows."
-#: cups/request.c:566
-#: cups/request.c:908
msgid "No active connection"
msgstr "No hay conexión activa"
-#: scheduler/ipp.c:3403
#, c-format
msgid "No active jobs on %s."
msgstr "No hay trabajos activos en %s."
-#: scheduler/ipp.c:302
msgid "No attributes in request."
msgstr "No hay atributos en la solicitud."
-#: scheduler/ipp.c:3034
msgid "No authentication information provided."
msgstr "No se ha proporcionado información de autentificación."
-#: cups/snmp.c:1004
msgid "No community name"
msgstr "No hay nombre de comunidad"
-#: scheduler/ipp.c:5919
msgid "No default printer."
msgstr "No hay impresora predeterminada."
-#: cgi-bin/ipp-var.c:436
-#: scheduler/ipp.c:7248
msgid "No destinations added."
msgstr "No se han añadido destinos."
-#: backend/usb.c:200
msgid "No device URI found in argv[0] or in DEVICE_URI environment variable."
-msgstr "No se ha encontrado el URI del dispositivo en argv[0] o en la variable de entorno DEVICE_URI."
+msgstr ""
+"No se ha encontrado el URI del dispositivo en argv[0] o en la variable de "
+"entorno DEVICE_URI."
-#: cups/snmp.c:1034
msgid "No error-index"
msgstr "No hay error-index"
-#: cups/snmp.c:1026
msgid "No error-status"
msgstr "No hay error-status"
-#: scheduler/ipp.c:8190
-#: scheduler/ipp.c:9436
msgid "No file in print request."
msgstr "No hay ningún archivo en la petición de impresión."
-#: cups/util.c:923
msgid "No modification time"
msgstr "No hay tiempo de modificación"
-#: cups/snmp.c:1051
msgid "No name OID"
msgstr "No hay nombre OID"
-#: filter/rastertoepson.c:1147
-#: filter/rastertohp.c:876
-#: filter/rastertolabel.c:1302
msgid "No pages were found."
msgstr "No se han encontrado páginas."
-#: cups/util.c:917
msgid "No printer name"
msgstr "No hay nombre de impresora"
-#: cups/util.c:1801
msgid "No printer-uri found"
msgstr "No se encontró printer-uri"
-#: cups/util.c:1786
msgid "No printer-uri found for class"
msgstr "No se encontró printer-uri para la clase"
-#: scheduler/ipp.c:6322
msgid "No printer-uri in request."
msgstr "No hay printer-uri en la petición."
-#: cups/snmp.c:1018
msgid "No request-id"
msgstr "No hay request-id"
-#: scheduler/ipp.c:5528
msgid "No subscription attributes in request."
msgstr "No hay atributos de subscripción en la solicitud."
-#: scheduler/ipp.c:7575
msgid "No subscriptions found."
msgstr "No se han encontrado subscripciones."
-#: cups/snmp.c:1042
msgid "No variable-bindings SEQUENCE"
msgstr "No hay variable-bindings SEQUENCE"
-#: cups/snmp.c:997
msgid "No version number"
msgstr "No hay número de versión"
-#: ppdc/sample.c:367
msgid "Non-continuous (Mark sensing)"
msgstr "No continuo (sensible a señal)"
-#: ppdc/sample.c:366
msgid "Non-continuous (Web sensing)"
msgstr "No continuo (sensible a web)"
-#: ppdc/sample.c:238
msgid "Normal"
msgstr "Normal"
-#: cups/http-support.c:1309
msgid "Not Found"
msgstr "No encontrado"
-#: cups/http-support.c:1321
msgid "Not Implemented"
msgstr "No implementado"
-#: ppdc/sample.c:276
msgid "Not Installed"
msgstr "No instalado"
-#: cups/http-support.c:1296
msgid "Not Modified"
msgstr "No modificado"
-#: cups/http-support.c:1324
msgid "Not Supported"
msgstr "No permitido"
-#: scheduler/ipp.c:1518
-#: scheduler/ipp.c:10666
msgid "Not allowed to print."
msgstr "No se permite imprimir."
-#: ppdc/sample.c:146
msgid "Note"
msgstr "Nota"
-#: systemv/cupstestdsc.c:433
-msgid "Note: this program only validates the DSC comments, not the PostScript itself."
-msgstr "Nota: este programa sólo valida los comentarios DSC, no los PostScript."
+msgid ""
+"Note: this program only validates the DSC comments, not the PostScript "
+"itself."
+msgstr ""
+"Nota: este programa sólo valida los comentarios DSC, no los PostScript."
-#: cups/http-support.c:1278
-#: cups/ppd.c:338
msgid "OK"
msgstr "OK"
-#: ppdc/sample.c:271
msgid "Off (1-Sided)"
msgstr "Desactivado (1 cara)"
-#: ppdc/sample.c:361
msgid "Oki"
msgstr "Oki"
-#: cgi-bin/help.c:91
-#: cgi-bin/help.c:132
-#: cgi-bin/help.c:142
-#: cgi-bin/help.c:172
msgid "Online Help"
msgstr "Ayuda en línea"
-#: cups/adminutil.c:955
#, c-format
msgid "Open of %s failed: %s"
msgstr "La apertura de %s ha fallado: %s"
-#: cups/ppd.c:346
msgid "OpenGroup without a CloseGroup first"
msgstr "OpenGroup sin un CloseGroup previo"
-#: cups/ppd.c:348
msgid "OpenUI/JCLOpenUI without a CloseUI/JCLCloseUI first"
msgstr "OpenUI/JCLOpenUI sin un CloseUI/JCLCloseUI previo"
-#: cgi-bin/admin.c:3631
msgid "Operation Policy"
msgstr "Directiva de operación"
-#: filter/pstops.c:2205
#, c-format
msgid "Option \"%s\" cannot be included via %%%%IncludeFeature."
msgstr "La opción \"%s\" no puede incluirse via %%%%IncludeFeature."
-#: cgi-bin/admin.c:3281
-#: cgi-bin/admin.c:3365
msgid "Options Installed"
msgstr "Opciones instaladas"
-#: scheduler/cupsfilter.c:1430
-#: scheduler/main.c:2018
-#: systemv/cupsaddsmb.c:284
-#: systemv/cupsctl.c:203
-#: systemv/cupstestdsc.c:429
-#: systemv/cupstestppd.c:3797
-#: test/ipptool.c:4403
-#: ppdc/ppdc.cxx:437
-#: ppdc/ppdhtml.cxx:174
-#: ppdc/ppdi.cxx:130
-#: ppdc/ppdmerge.cxx:369
-#: ppdc/ppdpo.cxx:254
msgid "Options:"
msgstr "Opciones: "
-#: cups/ppd-cache.c:156
msgid "Out of date PPD cache file."
msgstr "Archivo de caché PPD obsoleto."
-#: cups/ppd-cache.c:1381
msgid "Out of memory."
msgstr "Sin memoria."
-#: cups/ppd.c:795
-#: cups/ppd.c:1363
msgid "Output Mode"
msgstr "Modo de salida"
-#: systemv/lpstat.c:1191
-#: systemv/lpstat.c:1195
#, c-format
msgid "Output for printer %s is sent to %s"
msgstr "La salida de la impresora %s se ha enviado a %s"
-#: systemv/lpstat.c:1185
#, c-format
msgid "Output for printer %s is sent to remote printer %s on %s"
-msgstr "La salida de la impresora %s se ha enviado a la impresora remota %s en %s"
+msgstr ""
+"La salida de la impresora %s se ha enviado a la impresora remota %s en %s"
-#: systemv/lpstat.c:1209
-#: systemv/lpstat.c:1213
#, c-format
msgid "Output for printer %s/%s is sent to %s"
msgstr "La salida de la impresora %s/%s se ha enviado a %s"
-#: systemv/lpstat.c:1203
#, c-format
msgid "Output for printer %s/%s is sent to remote printer %s on %s"
-msgstr "La salida de la impresora %s/%s se ha enviado a la impresora remota %s en %s"
+msgstr ""
+"La salida de la impresora %s/%s se ha enviado a la impresora remota %s en %s"
-#: systemv/cupstestdsc.c:399
msgid "PASS"
msgstr "PASA"
-#: ppdc/sample.c:260
msgid "PCL Laser Printer"
msgstr "Impresora Laser PCL"
-#: ppdc/sample.c:149
msgid "PRC16K"
msgstr "PRC16K"
-#: ppdc/sample.c:150
msgid "PRC16K Long Edge"
msgstr "PRC16K lado largo"
-#: ppdc/sample.c:151
msgid "PRC32K"
msgstr "PRC32K"
-#: ppdc/sample.c:154
msgid "PRC32K Long Edge"
msgstr "PRC32K lado largo"
-#: ppdc/sample.c:152
msgid "PRC32K Oversize"
msgstr "PRC32K Extragrande"
-#: ppdc/sample.c:153
msgid "PRC32K Oversize Long Edge"
msgstr "PRC32K Extragrande lado largo"
-#: cups/snmp.c:1014
msgid "Packet does not contain a Get-Response-PDU"
msgstr "El paquete no contiene un Get-Response-PDU"
-#: cups/snmp.c:993
msgid "Packet does not start with SEQUENCE"
msgstr "El paquete no empieza por SEQUENCE"
-#: ppdc/sample.c:360
msgid "ParamCustominCutInterval"
msgstr "ParamCustominCutInterval"
-#: ppdc/sample.c:358
msgid "ParamCustominTearInterval"
msgstr "ParamCustominTearInterval"
-#: cups/auth.c:199
-#: cups/auth.c:367
#, c-format
msgid "Password for %s on %s? "
msgstr "¿Contraseña de %s en %s? "
-#: systemv/cupsaddsmb.c:252
#, c-format
msgid "Password for %s required to access %s via SAMBA: "
msgstr "Se requiere la contraseña de %s para acceder a %s vía SAMBA: "
-#: cgi-bin/classes.c:167
msgid "Pause Class"
msgstr "Pausar clase"
-#: cgi-bin/printers.c:170
msgid "Pause Printer"
msgstr "Pausar impresora"
-#: ppdc/sample.c:448
msgid "Peel-Off"
msgstr "Despegar"
-#: ppdc/sample.c:160
msgid "Photo"
msgstr "Foto"
-#: ppdc/sample.c:161
msgid "Photo Labels"
msgstr "Foto pequeña"
-#: ppdc/sample.c:286
msgid "Plain Paper"
msgstr "Papel normal"
-#: cgi-bin/admin.c:3299
-#: cgi-bin/admin.c:3580
msgid "Policies"
msgstr "Reglas"
-#: cgi-bin/admin.c:3306
-#: cgi-bin/admin.c:3649
-#: cgi-bin/admin.c:3662
msgid "Port Monitor"
msgstr "Monitor de puerto"
-#: ppdc/sample.c:278
msgid "PostScript Printer"
msgstr "Impresora PostScript"
-#: ppdc/sample.c:147
msgid "Postcard"
msgstr "Postal"
-#: ppdc/sample.c:71
msgid "Postcard Double "
msgstr "Postal doble"
-#: ppdc/sample.c:72
msgid "Postcard Double Long Edge"
msgstr "Postal doble lado largo"
-#: ppdc/sample.c:148
msgid "Postcard Long Edge"
msgstr "Postal lado largo"
-#: ppdc/sample.c:295
+msgid "Preparing to print."
+msgstr ""
+
msgid "Print Density"
msgstr "Densidad de impresión"
-#: cups/notify.c:82
msgid "Print Job:"
msgstr "Imprimir trabajo:"
-#: ppdc/sample.c:340
msgid "Print Mode"
msgstr "Modo de impresión"
-#: ppdc/sample.c:383
msgid "Print Rate"
msgstr "Tasa de impresión"
-#: cgi-bin/printers.c:179
msgid "Print Self-Test Page"
msgstr "Imprimir página de auto-prueba"
-#: ppdc/sample.c:327
msgid "Print Speed"
msgstr "Velocidad de impresión"
-#: cgi-bin/ipp-var.c:792
msgid "Print Test Page"
msgstr "Imprimir página de prueba"
-#: ppdc/sample.c:356
msgid "Print and Cut"
msgstr "Imprimir y cortar"
-#: ppdc/sample.c:344
msgid "Print and Tear"
msgstr "Imprimir y romper"
-#: backend/ipp.c:1537
-#, c-format
-msgid "Print file accepted - job ID %d."
-msgstr "Archivo de impresión aceptado: ID de trabajo %d."
-
-#: backend/ipp.c:1527
-msgid "Print file accepted - job ID unknown."
-msgstr "Archivo de impresión aceptado: ID de trabajo desconocido."
-
-#: backend/socket.c:424
-#: backend/usb-unix.c:191
msgid "Print file sent."
msgstr "Archivo de impresión enviado."
-#: backend/ipp.c:1488
-msgid "Print file was not accepted."
-msgstr "No se ha aceptado el archivo de impresión."
-
-#: backend/ipp.c:1895
msgid "Print job canceled at printer."
msgstr "Trabajo de impresión cancelado en la impresora."
-#: backend/ipp.c:1890
msgid "Print job too large."
msgstr "Trabajo de impresión demasiado grande."
-#: cgi-bin/ipp-var.c:1047
+msgid "Print job was not accepted."
+msgstr ""
+
msgid "Printer Added"
msgstr "Impresora añadida"
-#: ppdc/sample.c:263
msgid "Printer Default"
msgstr "Predeterminado de la impresora"
-#: cgi-bin/ipp-var.c:1051
msgid "Printer Deleted"
msgstr "Impresora borrada"
-#: cgi-bin/ipp-var.c:1049
msgid "Printer Modified"
msgstr "Impresora modificada"
-#: cgi-bin/ipp-var.c:1045
msgid "Printer Paused"
msgstr "Impresora en pausa"
-#: ppdc/sample.c:294
msgid "Printer Settings"
msgstr "Configuración de la impresora"
-#: backend/ipp.c:1893
msgid "Printer cannot print supplied content."
msgstr "La impresora no puede imprimir el contenido suministrado."
-#: cups/notify.c:126
msgid "Printer:"
msgstr "Impresora:"
-#: cgi-bin/printers.c:204
-#: cgi-bin/printers.c:332
msgid "Printers"
msgstr "Impresoras"
-#: filter/rastertoepson.c:1093
-#: filter/rastertohp.c:817
-#: filter/rastertolabel.c:1249
#, c-format
msgid "Printing page %d, %d%% complete."
msgstr "Imprimiendo página %d, %d%% completado."
-#: cgi-bin/classes.c:173
-#: cgi-bin/printers.c:176
msgid "Purge Jobs"
msgstr "Purgar trabajos"
-#: ppdc/sample.c:155
msgid "Quarto"
msgstr "Quarto"
-#: scheduler/ipp.c:1513
-#: scheduler/ipp.c:10661
msgid "Quota limit reached."
msgstr "Se ha alcanzado el límite de cuota."
-#: berkeley/lpq.c:515
msgid "Rank Owner Job File(s) Total Size"
msgstr "Rango Propiet. Trabajo Archivo(s) Tamaño total"
#. TRANSLATORS: Pri is job priority.
-#: berkeley/lpq.c:511
-msgid "Rank Owner Pri Job Files Total Size"
-msgstr "Rango Propiet. Pri Trabajo Archivos Tamaño total"
+msgid ""
+"Rank Owner Pri Job Files Total Size"
+msgstr ""
+"Rango Propiet. Pri Trabajo Archivos Tamaño total"
-#: cgi-bin/classes.c:171
-#: cgi-bin/printers.c:174
msgid "Reject Jobs"
msgstr "Rechazar trabajos"
-#: backend/lpd.c:1016
-#: backend/lpd.c:1148
#, c-format
msgid "Remote host did not accept control file (%d)."
msgstr "El ordenador remoto no ha aceptado el archivo de control (%d)."
-#: backend/lpd.c:1101
#, c-format
msgid "Remote host did not accept data file (%d)."
msgstr "El ordenador remoto no ha aceptado el archivo de datos (%d)."
-#: ppdc/sample.c:428
msgid "Reprint After Error"
msgstr "Volver a imprimir tras un error"
-#: cups/http-support.c:1312
msgid "Request Entity Too Large"
msgstr "La entidad requerida es demasiado larga"
-#: cups/ppd.c:797
-#: cups/ppd.c:1365
-#: ppdc/sample.c:231
msgid "Resolution"
msgstr "Resolución"
-#: cgi-bin/classes.c:165
msgid "Resume Class"
msgstr "Reanudar clase"
-#: cgi-bin/printers.c:167
msgid "Resume Printer"
msgstr "Reanudar impresora"
-#: ppdc/sample.c:165
msgid "Return Address"
msgstr "Remite"
-#: ppdc/sample.c:449
msgid "Rewind"
msgstr "Rebobinar"
-#: cups/adminutil.c:2052
#, c-format
msgid "Running command: %s %s -N -A %s -c '%s'"
msgstr "Ejecutando comando: %s %s -N -A %s -c '%s'"
-#: cups/snmp.c:995
msgid "SEQUENCE uses indefinite length"
msgstr "SEQUENCE usa una longitud indefinida"
-#: cups/http-support.c:1336
msgid "SSL/TLS Negotiation Error"
msgstr "Error en negociación SSL/TLS"
-#: cups/http-support.c:1293
msgid "See Other"
msgstr "Ver otros"
-#: backend/usb-darwin.c:543
-#: backend/usb-libusb.c:273
msgid "Sending data to printer."
msgstr "Enviando datos a la impresora."
-#: cgi-bin/ipp-var.c:1061
msgid "Server Restarted"
msgstr "Servidor reiniciado"
-#: cgi-bin/ipp-var.c:1067
msgid "Server Security Auditing"
msgstr "Auditoría de seguridad del servidor"
-#: cgi-bin/ipp-var.c:1063
msgid "Server Started"
msgstr "Servidor iniciado"
-#: cgi-bin/ipp-var.c:1065
msgid "Server Stopped"
msgstr "Servidor parado"
-#: cups/http-support.c:1330
msgid "Service Unavailable"
msgstr "Servicio no disponible"
-#: cgi-bin/admin.c:2786
-#: cgi-bin/admin.c:2832
-#: cgi-bin/admin.c:2989
-#: cgi-bin/admin.c:3008
msgid "Set Allowed Users"
msgstr "Establecer usuarios permitidos"
-#: cgi-bin/admin.c:3035
msgid "Set As Server Default"
msgstr "Establecer como predeterminada del servidor"
-#: cgi-bin/admin.c:3135
msgid "Set Class Options"
msgstr "Cambiar opciones clase"
-#: cgi-bin/admin.c:3135
-#: cgi-bin/admin.c:3309
-#: cgi-bin/admin.c:3691
msgid "Set Printer Options"
msgstr "Cambiar opciones impresora"
-#: cgi-bin/admin.c:3861
-#: cgi-bin/admin.c:3905
-#: cgi-bin/admin.c:3923
msgid "Set Publishing"
msgstr "Hacer pública"
-#: ppdc/sample.c:166
msgid "Shipping Address"
msgstr "Dirección de envío"
-#: ppdc/sample.c:273
msgid "Short-Edge (Landscape)"
msgstr "Lado corto (apaisado)"
-#: ppdc/sample.c:288
msgid "Special Paper"
msgstr "Papel especial"
-#: backend/lpd.c:1057
#, c-format
msgid "Spooling job, %.0f%% complete."
msgstr "Guardando trabajo en cola, %.0f%% completado."
-#: ppdc/sample.c:341
msgid "Standard"
msgstr "Estándar"
#. TRANSLATORS: Banner/cover sheet before the print job.
-#: cgi-bin/admin.c:3552
msgid "Starting Banner"
msgstr "Rótulo inicial"
-#: filter/rastertoepson.c:1069
-#: filter/rastertohp.c:793
-#: filter/rastertolabel.c:1225
#, c-format
msgid "Starting page %d."
msgstr "Iniciando página %d."
-#: ppdc/sample.c:156
msgid "Statement"
msgstr "Declaración"
-#: ppdc/sample.c:251
msgid "Stylus Color Series"
msgstr "Stylus Color Series"
-#: ppdc/sample.c:257
msgid "Stylus Photo Series"
msgstr "Stylus Photo Series"
-#: scheduler/ipp.c:3549
-#: scheduler/ipp.c:6689
-#: scheduler/ipp.c:7388
-#: scheduler/ipp.c:8887
#, c-format
msgid "Subscription #%d does not exist."
msgstr "Subscripción #%d no existe."
-#: ppdc/sample.c:157
msgid "Super A"
msgstr "Super A"
-#: ppdc/sample.c:158
msgid "Super B"
msgstr "Super B (13 x 19 pulg.)"
-#: ppdc/sample.c:162
msgid "Super B/A3"
msgstr "Super B/A3"
-#: cups/http-support.c:1275
msgid "Switching Protocols"
msgstr "Protocolos de conexión"
-#: ppdc/sample.c:159
msgid "Tabloid"
msgstr "Tabloide"
-#: ppdc/sample.c:45
msgid "Tabloid Oversize"
msgstr "Tabloide Extragrande"
-#: ppdc/sample.c:46
msgid "Tabloid Oversize Long Edge"
msgstr "Tabloide Extragrande lado largo"
-#: ppdc/sample.c:342
msgid "Tear"
msgstr "Pestaña"
-#: ppdc/sample.c:447
msgid "Tear-Off"
msgstr "Pestaña desprendible"
-#: ppdc/sample.c:388
msgid "Tear-Off Adjust Position"
msgstr "Ajuste de posición de la pestaña desprendible"
-#: scheduler/ipp.c:6393
-#: scheduler/ipp.c:6471
-#: scheduler/ipp.c:6487
-#: scheduler/ipp.c:6505
+#, c-format
+msgid "The \"%s\" attribute is required for print jobs."
+msgstr ""
+
#, c-format
msgid "The %s attribute cannot be provided with job-ids."
msgstr "El atributo %s no puede ser usado con jobs-ids."
-#: scheduler/ipp.c:5118
#, c-format
-msgid "The '%s' operation attribute cannot be supplied in a Create-Job request."
-msgstr "El atributo de operación '%s' no puede ser suministrado en una petición Create-Job."
+msgid ""
+"The '%s' Job Description attribute cannot be supplied in a job creation "
+"request."
+msgstr ""
+
+#, c-format
+msgid ""
+"The '%s' operation attribute cannot be supplied in a Create-Job request."
+msgstr ""
+"El atributo de operación '%s' no puede ser suministrado en una petición "
+"Create-Job."
-#: scheduler/ipp.c:6919
#, c-format
msgid "The PPD file \"%s\" could not be found."
msgstr "No se ha podido encontrar el archivo PPD \"%s\"."
-#: scheduler/ipp.c:6906
#, c-format
msgid "The PPD file \"%s\" could not be opened: %s"
msgstr "No se ha podido abrir el archivo PPD \"%s\": %s"
-#: filter/rastertoepson.c:1038
-#: filter/rastertohp.c:764
-#: filter/rastertolabel.c:1189
msgid "The PPD file could not be opened."
msgstr "No se ha podido abrir el archivo PPD."
-#: cgi-bin/admin.c:749
-msgid "The class name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
-msgstr "El nombre de la clase sólo puede contener hasta 127 caracteres imprimibles y no puede contener espacios, barras (/), o la almohadilla (#)."
+msgid ""
+"The class name may only contain up to 127 printable characters and may not "
+"contain spaces, slashes (/), or the pound sign (#)."
+msgstr ""
+"El nombre de la clase sólo puede contener hasta 127 caracteres imprimibles y "
+"no puede contener espacios, barras (/), o la almohadilla (#)."
-#: cups/localize.c:353
msgid "The developer unit needs to be replaced."
msgstr "La unidad de revelado debe ser reemplazada"
-#: cups/localize.c:351
msgid "The developer unit will need to be replaced soon."
msgstr "La unidad de revelado necesitará ser cambiada pronto."
-#: cups/localize.c:343
msgid "The fuser's temperature is high."
msgstr "Temperatura del fusor alta"
-#: cups/localize.c:345
msgid "The fuser's temperature is low."
msgstr "Temperatura del fusor baja"
-#: scheduler/ipp.c:2097
-msgid "The notify-lease-duration attribute cannot be used with job subscriptions."
-msgstr "El atributo notify-lease-duration no puede ser usado con subscripciones de trabajos."
+msgid ""
+"The notify-lease-duration attribute cannot be used with job subscriptions."
+msgstr ""
+"El atributo notify-lease-duration no puede ser usado con subscripciones de "
+"trabajos."
-#: scheduler/ipp.c:2080
-#: scheduler/ipp.c:5653
#, c-format
msgid "The notify-user-data value is too large (%d > 63 octets)."
msgstr "El valor notify-user-data es demasiado grande (%d > 63 octetos)."
-#: cups/localize.c:349
msgid "The optical photoconductor needs to be replaced."
msgstr "El fotoconductor óptico necesita ser cambiado."
-#: cups/localize.c:347
msgid "The optical photoconductor will need to be replaced soon."
msgstr "El fotoconductor óptico necesitará ser cambiado pronto."
-#: cups/localize.c:331
msgid "The output bin is almost full."
msgstr "Recipiente de salida casi lleno"
-#: cups/localize.c:333
msgid "The output bin is full."
msgstr "Bandeja de salida llena."
-#: cups/localize.c:329
msgid "The output bin is missing."
msgstr "Falta la bandeja de salida."
-#: cups/localize.c:325
msgid "The paper tray is almost empty."
msgstr "Bandeja de papel casi vacía."
-#: cups/localize.c:327
msgid "The paper tray is empty."
msgstr "Bandeja de papel vacía."
-#: cups/localize.c:323
msgid "The paper tray is missing."
msgstr "Falta la bandeja de papel."
-#: cups/localize.c:306
msgid "The paper tray needs to be filled."
msgstr "Hay que poner papel en la bandeja."
-#: backend/ipp.c:909
-msgid "The printer URI is incorrect or no longer exists."
-msgstr "El URI de la impresora es incorrecto o ya no existe."
+msgid "The printer configuration is incorrect or the printer no longer exists."
+msgstr ""
-#: backend/lpd.c:619
-#: backend/lpd.c:1009
-#: backend/lpd.c:1091
-#: backend/lpd.c:1141
msgid "The printer did not respond."
msgstr "La impresora no respondió."
-#: backend/ipp.c:892
-#: backend/ipp.c:899
-#, c-format
-msgid "The printer does not support IPP/%d.%d, trying IPP/%s."
-msgstr "La impresora no es compatible con IPP/%d.%d, probando IPP/%s."
-
-#: backend/ipp.c:757
-#: backend/ipp.c:874
-#: backend/ipp.c:980
-#: backend/ipp.c:1313
-#: backend/ipp.c:1464
-#: backend/lpd.c:828
-#: backend/socket.c:374
-#: backend/usb-unix.c:131
-#: backend/usb-unix.c:424
-#: backend/usb-unix.c:507
msgid "The printer is in use."
msgstr "La impresora está en uso."
-#: backend/runloop.c:254
-#: backend/runloop.c:374
-#: cups/localize.c:311
msgid "The printer is not connected."
msgstr "La impresora no está conectada."
-#: backend/ipp.c:735
-#: backend/ipp.c:768
-#: backend/ipp.c:870
-#: backend/lpd.c:807
-#: backend/lpd.c:848
-#: backend/socket.c:353
-#: backend/socket.c:386
msgid "The printer is not responding."
msgstr "La impresora no responde."
-#: backend/runloop.c:396
msgid "The printer is now connected."
msgstr "La impresora está ahora conectada."
-#: backend/usb-darwin.c:1286
msgid "The printer is now online."
msgstr "La impresora está ahora en línea."
-#: backend/usb-darwin.c:1307
msgid "The printer is offline."
msgstr "La impresora está fuera de línea."
-#: cups/localize.c:335
msgid "The printer is running low on ink."
msgstr "La impresora está funcionando con poca tinta."
-#: cups/localize.c:313
msgid "The printer is running low on toner."
msgstr "La impresora está funcionando con poco toner."
-#: backend/ipp.c:750
-#: backend/lpd.c:821
-#: backend/socket.c:367
msgid "The printer is unreachable at this time."
msgstr "La impresora es inalcanzable en este momento."
-#: cups/localize.c:337
msgid "The printer may be out of ink."
msgstr "La impresora puede que no tenga tinta."
-#: cups/localize.c:315
msgid "The printer may be out of toner."
msgstr "La impresora puede que esté sin toner."
-#: backend/ipp.c:744
-#: backend/lpd.c:815
-#: backend/socket.c:361
msgid "The printer may not exist or is unavailable at this time."
msgstr "La impresora puede no existir o no estar disponible en este momento."
-#: cgi-bin/admin.c:931
-msgid "The printer name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
-msgstr "El nombre de la impresora sólo puede contener hasta 127 caracteres imprimibles y no puede contener espacios, barras (/), o la almohadilla (#)."
-
-#: scheduler/ipp.c:876
-#: scheduler/ipp.c:1136
-#: scheduler/ipp.c:3198
-#: scheduler/ipp.c:3369
-#: scheduler/ipp.c:5101
-#: scheduler/ipp.c:5487
-#: scheduler/ipp.c:5801
-#: scheduler/ipp.c:6359
-#: scheduler/ipp.c:7124
-#: scheduler/ipp.c:7180
-#: scheduler/ipp.c:7494
-#: scheduler/ipp.c:7760
-#: scheduler/ipp.c:7849
-#: scheduler/ipp.c:7882
-#: scheduler/ipp.c:8205
-#: scheduler/ipp.c:8598
-#: scheduler/ipp.c:8679
-#: scheduler/ipp.c:9840
-#: scheduler/ipp.c:10294
-#: scheduler/ipp.c:10624
-#: scheduler/ipp.c:10706
-#: scheduler/ipp.c:10998
+msgid ""
+"The printer name may only contain up to 127 printable characters and may not "
+"contain spaces, slashes (/), or the pound sign (#)."
+msgstr ""
+"El nombre de la impresora sólo puede contener hasta 127 caracteres "
+"imprimibles y no puede contener espacios, barras (/), o la almohadilla (#)."
+
msgid "The printer or class does not exist."
msgstr "La impresora o clase no existe."
-#: scheduler/ipp.c:1304
msgid "The printer or class is not shared."
msgstr "La impresora o clase no está compartida."
-#: cups/localize.c:317
msgid "The printer's cover is open."
msgstr "La tapa de la impresora está abierta."
-#: cups/localize.c:321
msgid "The printer's door is open."
msgstr "La puerta de la impresora está abierta."
-#: cups/localize.c:319
msgid "The printer's interlock is open."
msgstr "El dispositivo de seguridad de la impresora está abierto."
-#: cups/localize.c:339
msgid "The printer's waste bin is almost full."
msgstr "Recipiente de residuos de la impresora está casi lleno."
-#: cups/localize.c:341
msgid "The printer's waste bin is full."
msgstr "Recipiente de residuos de la impresora está lleno."
-#: scheduler/ipp.c:982
-#: scheduler/ipp.c:2261
#, c-format
msgid "The printer-uri \"%s\" contains invalid characters."
msgstr "El printer-uri \"%s\" contiene caracteres no válidos."
-#: scheduler/ipp.c:3175
msgid "The printer-uri attribute is required."
msgstr "Se necesita el atributo printer-uri."
-#: scheduler/ipp.c:966
-msgid "The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
-msgstr "El printer-uri debe ser de la forma \"ipp://NOMBRE_ORDENADOR/classes/NOMBRE_CLASE\"."
+msgid ""
+"The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
+msgstr ""
+"El printer-uri debe ser de la forma \"ipp://NOMBRE_ORDENADOR/classes/"
+"NOMBRE_CLASE\"."
-#: scheduler/ipp.c:2245
-msgid "The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
-msgstr "El printer-uri debe ser de la forma \"ipp://NOMBRE_ORDENADOR/printers/NOMBRE_IMPRESORA\"."
+msgid ""
+"The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
+msgstr ""
+"El printer-uri debe ser de la forma \"ipp://NOMBRE_ORDENADOR/printers/"
+"NOMBRE_IMPRESORA\"."
-#: cgi-bin/admin.c:474
-msgid "The subscription name may not contain spaces, slashes (/), question marks (?), or the pound sign (#)."
-msgstr "El nombre de la subscripción no puede contener espacios, barras (/), signos de interrogación (?), o la almohadilla (#)."
+msgid ""
+"The subscription name may not contain spaces, slashes (/), question marks "
+"(?), or the pound sign (#)."
+msgstr ""
+"El nombre de la subscripción no puede contener espacios, barras (/), signos "
+"de interrogación (?), o la almohadilla (#)."
-#: scheduler/client.c:2450
-msgid "The web interface is currently disabled. Run \"cupsctl WebInterface=yes\" to enable it."
-msgstr "La interfaz web está desactivada en este momento. Ejecute \"cupsctl WebInterface=yes\" para activarla."
+msgid ""
+"The web interface is currently disabled. Run \"cupsctl WebInterface=yes\" to "
+"enable it."
+msgstr ""
+"La interfaz web está desactivada en este momento. Ejecute \"cupsctl "
+"WebInterface=yes\" para activarla."
-#: scheduler/ipp.c:6454
#, c-format
msgid "The which-jobs value \"%s\" is not supported."
msgstr "No se admite el uso del valor which-jobs \"%s\"."
-#: scheduler/ipp.c:5731
msgid "There are too many subscriptions."
msgstr "Hay demasiadas subscripciones."
-#: cups/localize.c:308
msgid "There is a paper jam."
msgstr "Hay un atasco de papel."
-#: backend/usb-darwin.c:379
-#: backend/usb-darwin.c:438
-#: backend/usb-darwin.c:505
-#: backend/usb-darwin.c:526
-#: backend/usb-libusb.c:235
-#: backend/usb-libusb.c:256
msgid "There was an unrecoverable USB error."
msgstr "Ha habido un error USB irrecuperable."
-#: ppdc/sample.c:435
msgid "Thermal Transfer Media"
msgstr "Soporte de transferencia térmica"
-#: scheduler/ipp.c:1507
msgid "Too many active jobs."
msgstr "Demasiados trabajos activos."
-#: scheduler/ipp.c:1401
#, c-format
msgid "Too many job-sheets values (%d > 2)."
msgstr "Demasiados valores de job-sheets (%d > 2)."
-#: scheduler/ipp.c:2529
#, c-format
msgid "Too many printer-state-reasons values (%d > %d)."
msgstr "Demasiados valores printer-state-reasons (%d > %d)."
-#: ppdc/sample.c:289
msgid "Transparency"
msgstr "Transparencia"
-#: ppdc/sample.c:284
msgid "Tray"
msgstr "Bandeja"
-#: ppdc/sample.c:264
msgid "Tray 1"
msgstr "Bandeja 1"
-#: ppdc/sample.c:265
msgid "Tray 2"
msgstr "Bandeja 2"
-#: ppdc/sample.c:266
msgid "Tray 3"
msgstr "Bandeja 3"
-#: ppdc/sample.c:267
msgid "Tray 4"
msgstr "Bandeja 4"
-#: cups/http-support.c:1315
msgid "URI Too Long"
msgstr "URI demasiado largo"
-#: ppdc/sample.c:138
msgid "US Ledger"
msgstr "Libro Mayor, 17 x 11 pulg."
-#: ppdc/sample.c:139
msgid "US Legal"
msgstr "Legal EE.UU."
-#: ppdc/sample.c:140
msgid "US Legal Oversize"
msgstr "Legal EE.UU. Extragrande"
-#: ppdc/sample.c:141
msgid "US Letter"
msgstr "Carta EE.UU."
-#: ppdc/sample.c:142
msgid "US Letter Long Edge"
msgstr "Carta EE.UU. lado largo"
-#: ppdc/sample.c:143
msgid "US Letter Oversize"
msgstr "Carta EE.UU. Extragrande"
-#: ppdc/sample.c:144
msgid "US Letter Oversize Long Edge"
msgstr "Carta EE.UU. Extragrande lado largo"
-#: ppdc/sample.c:145
msgid "US Letter Small"
msgstr "Carta EE.UU. Pequeña"
-#: cgi-bin/admin.c:1959
-#: cgi-bin/admin.c:1972
-#: cgi-bin/admin.c:1996
msgid "Unable to access cupsd.conf file"
msgstr "No se ha podido acceder al archivo cupsd.conf"
-#: cgi-bin/help.c:133
msgid "Unable to access help file."
msgstr "No se ha podido acceder al archivo de ayuda."
-#: cgi-bin/admin.c:526
msgid "Unable to add RSS subscription"
msgstr "No se ha podido añadir la subscripción RSS"
-#: cgi-bin/admin.c:814
msgid "Unable to add class"
msgstr "No se ha podido añadir la clase"
-#: backend/ipp.c:1635
msgid "Unable to add document to print job."
msgstr "No se ha podido añadir el documento al trabajo de impresión."
-#: scheduler/ipp.c:1548
#, c-format
msgid "Unable to add job for destination \"%s\"."
msgstr "No se ha podido añadir el trabajo para el destino \"%s\"."
-#: cgi-bin/admin.c:1059
-#: cgi-bin/admin.c:1419
msgid "Unable to add printer"
msgstr "No se ha podido añadir la impresora"
-#: scheduler/ipp.c:1246
msgid "Unable to allocate memory for file types."
msgstr "No se ha podido reservar memoria para tipos de archivo."
-#: filter/pstops.c:451
msgid "Unable to allocate memory for page info"
msgstr "No se ha podido reservar memoria para la información de página."
-#: filter/pstops.c:445
msgid "Unable to allocate memory for pages array"
msgstr "No se ha podido reservar memoria para la secuencia de páginas"
-#: cgi-bin/admin.c:1525
msgid "Unable to cancel RSS subscription"
msgstr "No se ha podido cancelar la subscripción RSS"
-#: backend/ipp.c:1942
msgid "Unable to cancel print job."
msgstr "No se ha podido cancelar el trabajo de impresión."
-#: cgi-bin/admin.c:2990
msgid "Unable to change printer"
msgstr "No se ha podido cambiar la impresora"
-#: cgi-bin/admin.c:3906
msgid "Unable to change printer-is-shared attribute"
msgstr "No se ha podido cambiar el atributo printer-is-shared"
-#: cgi-bin/admin.c:1657
-#: cgi-bin/admin.c:1799
msgid "Unable to change server settings"
msgstr "No se ha podido cambiar la configuración del servidor"
-#: filter/commandtops.c:420
msgid "Unable to configure printer options."
msgstr "No se han podido configurar las opciones de impresión."
-#: cups/adminutil.c:911
-#: cups/request.c:1016
msgid "Unable to connect to host."
msgstr "No se ha podido conectar al servidor."
-#: backend/ipp.c:713
-#: backend/ipp.c:1138
-#: backend/lpd.c:787
-#: backend/socket.c:333
-#: backend/usb-unix.c:117
msgid "Unable to contact printer, queuing on next printer in class."
-msgstr "No se ha podido contactar con la impresora; poniendo en cola en la siguiente impresora de la clase."
+msgstr ""
+"No se ha podido contactar con la impresora; poniendo en cola en la siguiente "
+"impresora de la clase."
-#: cups/adminutil.c:726
#, c-format
msgid "Unable to copy 64-bit CUPS printer driver files (%d)."
-msgstr "No se han podido copiar los archivos del controlador de impresora de 64-bit de CUPS (%d)."
+msgstr ""
+"No se han podido copiar los archivos del controlador de impresora de 64-bit "
+"de CUPS (%d)."
-#: cups/adminutil.c:691
#, c-format
msgid "Unable to copy 64-bit Windows printer driver files (%d)."
-msgstr "No se han podido copiar los archivos del controlador de impresora de 64-bit de Windows (%d)."
+msgstr ""
+"No se han podido copiar los archivos del controlador de impresora de 64-bit "
+"de Windows (%d)."
-#: cups/adminutil.c:522
#, c-format
msgid "Unable to copy CUPS printer driver files (%d)."
-msgstr "No se han podido copiar los archivos del controlador de impresora de CUPS (%d)."
+msgstr ""
+"No se han podido copiar los archivos del controlador de impresora de CUPS "
+"(%d)."
-#: scheduler/ipp.c:2649
#, c-format
msgid "Unable to copy PPD file - %s"
msgstr "No se ha podido copiar el archivo PPD - %s"
-#: scheduler/ipp.c:2704
msgid "Unable to copy PPD file."
msgstr "No se ha podido copiar el archivo PPD."
-#: cups/adminutil.c:487
#, c-format
msgid "Unable to copy Windows 2000 printer driver files (%d)."
-msgstr "No se han podido copiar los archivos del controlador de impresora de Windows 2000 (%d)."
+msgstr ""
+"No se han podido copiar los archivos del controlador de impresora de Windows "
+"2000 (%d)."
-#: cups/adminutil.c:610
#, c-format
msgid "Unable to copy Windows 9x printer driver files (%d)."
-msgstr "No se han podido copiar los archivos del controlador de impresora de Windows 9x (%d)."
+msgstr ""
+"No se han podido copiar los archivos del controlador de impresora de Windows "
+"9x (%d)."
-#: scheduler/ipp.c:2626
#, c-format
msgid "Unable to copy interface script - %s"
msgstr "No se ha podido copiar el script de interfaz - %s"
-#: backend/ipp.c:2034
msgid "Unable to create compressed print file"
msgstr "No se ha podido crear el archivo de impresión comprimido"
-#: cups/util.c:602
-#: cups/util.c:1656
msgid "Unable to create printer-uri"
msgstr "No se ha podido crear printer-uri"
-#: cgi-bin/admin.c:1850
-#: cgi-bin/admin.c:1862
-#: scheduler/cupsfilter.c:1236
msgid "Unable to create temporary file"
msgstr "No se ha podido crear el archivo temporal"
-#: cgi-bin/admin.c:2153
msgid "Unable to delete class"
msgstr "No se ha podido borrar la clase"
-#: cgi-bin/admin.c:2238
msgid "Unable to delete printer"
msgstr "No se ha podido borrar la impresora"
-#: cgi-bin/classes.c:260
-#: cgi-bin/printers.c:269
msgid "Unable to do maintenance command"
msgstr "No se ha podido realizar el comando de mantenimiento"
-#: cgi-bin/admin.c:1974
msgid "Unable to edit cupsd.conf files larger than 1MB"
msgstr "No se pueden editar archivos cupsd.conf mayores de 1MB"
-#: cups/http.c:4272
-msgid "Unable to establish a secure connection to host (certificate chain invalid)."
-msgstr "No se ha podido establecer una conexión segura con el servidor (cadena certificado incorrecta)."
+msgid ""
+"Unable to establish a secure connection to host (certificate chain invalid)."
+msgstr ""
+"No se ha podido establecer una conexión segura con el servidor (cadena "
+"certificado incorrecta)."
-#: cups/http.c:4262
-msgid "Unable to establish a secure connection to host (certificate not yet valid)."
-msgstr "No se ha podido establecer una conexión segura con el servidor (el certificado aún no es válido)."
+msgid ""
+"Unable to establish a secure connection to host (certificate not yet valid)."
+msgstr ""
+"No se ha podido establecer una conexión segura con el servidor (el "
+"certificado aún no es válido)."
-#: cups/http.c:4257
msgid "Unable to establish a secure connection to host (expired certificate)."
-msgstr "No se ha podido establecer una conexión segura con el servidor (certificado caducado)."
+msgstr ""
+"No se ha podido establecer una conexión segura con el servidor (certificado "
+"caducado)."
-#: cups/http.c:4267
msgid "Unable to establish a secure connection to host (host name mismatch)."
-msgstr "No se ha podido establecer una conexión segura con el servidor (el nombre de ordenador no coincide)."
+msgstr ""
+"No se ha podido establecer una conexión segura con el servidor (el nombre de "
+"ordenador no coincide)."
-#: cups/http.c:4277
-msgid "Unable to establish a secure connection to host (peer dropped connection before responding)."
-msgstr "No se ha podido establecer una conexión segura con el servidor (el par cortó la conexión antes de responder)."
+msgid ""
+"Unable to establish a secure connection to host (peer dropped connection "
+"before responding)."
+msgstr ""
+"No se ha podido establecer una conexión segura con el servidor (el par cortó "
+"la conexión antes de responder)."
-#: cups/http.c:4252
-msgid "Unable to establish a secure connection to host (self-signed certificate)."
-msgstr "No se ha podido establecer una conexión segura con el servidor (certificado auto-firmado)."
+msgid ""
+"Unable to establish a secure connection to host (self-signed certificate)."
+msgstr ""
+"No se ha podido establecer una conexión segura con el servidor (certificado "
+"auto-firmado)."
-#: cups/http.c:4247
-msgid "Unable to establish a secure connection to host (untrusted certificate)."
-msgstr "No se ha podido establecer una conexión segura con el servidor (certificado no seguro)."
+msgid ""
+"Unable to establish a secure connection to host (untrusted certificate)."
+msgstr ""
+"No se ha podido establecer una conexión segura con el servidor (certificado "
+"no seguro)."
-#: cups/http.c:4008
-#: cups/http.c:4304
-#: cups/http.c:4337
-#: cups/http.c:4354
msgid "Unable to establish a secure connection to host."
msgstr "No se ha podido establecer una conexión segura al servidor."
-#: cgi-bin/ipp-var.c:365
msgid "Unable to find destination for job"
msgstr "No se ha podido encontrar destino para el trabajo"
-#: cups/http-support.c:1748
msgid "Unable to find printer."
msgstr "No se ha podido encontrar la impresora."
-#: backend/ipp.c:2056
msgid "Unable to generate compressed print file"
msgstr "No se ha podido crear el archivo de impresión comprimido"
-#: backend/ipp.c:3009
msgid "Unable to get backend exit status."
msgstr "No se ha podido obtener el estado de salida del programa backend"
-#: cgi-bin/classes.c:450
msgid "Unable to get class list"
msgstr "No se ha podido obtener la lista de clases"
-#: cgi-bin/classes.c:549
msgid "Unable to get class status"
msgstr "No se ha podido obtener el estado de la clase"
-#: cgi-bin/admin.c:1320
msgid "Unable to get list of printer drivers"
msgstr "No se ha podido obtener la lista de controladores de impresora"
-#: cgi-bin/admin.c:2840
msgid "Unable to get printer attributes"
msgstr "No se han podido obtener los atributos de la impresora"
-#: cgi-bin/printers.c:467
msgid "Unable to get printer list"
msgstr "No se ha podido obtener la lista de impresoras"
-#: cgi-bin/printers.c:569
msgid "Unable to get printer status"
msgstr "No se ha podido obtener el estado de la impresora"
-#: backend/ipp.c:933
msgid "Unable to get printer status."
msgstr "No se ha podido obtener el estado de la impresora."
-#: cups/adminutil.c:565
-#: cups/adminutil.c:769
#, c-format
msgid "Unable to install Windows 2000 printer driver files (%d)."
-msgstr "No se han podido instalar los archivos del controlador de impresora de Windows 2000 (%d)."
+msgstr ""
+"No se han podido instalar los archivos del controlador de impresora de "
+"Windows 2000 (%d)."
-#: cups/adminutil.c:639
#, c-format
msgid "Unable to install Windows 9x printer driver files (%d)."
-msgstr "No se han podido instalar los archivos del controlador de impresora de Windows 9x (%d)."
+msgstr ""
+"No se han podido instalar los archivos del controlador de impresora de "
+"Windows 9x (%d)."
-#: cgi-bin/help.c:92
msgid "Unable to load help index."
msgstr "No se ha podido cargar el índice de ayuda."
-#: backend/ipp.c:642
-#: backend/lpd.c:421
-#: backend/socket.c:275
#, c-format
msgid "Unable to locate printer \"%s\"."
msgstr "No se ha podido localizar la impresora \"%s\"."
-#: backend/dnssd.c:781
-#: backend/ipp.c:324
-#: backend/lpd.c:204
-#: backend/socket.c:171
msgid "Unable to locate printer."
msgstr "No se ha podido localizar la impresora."
-#: cgi-bin/admin.c:813
msgid "Unable to modify class"
msgstr "No se ha podido modificar la clase"
-#: cgi-bin/admin.c:1058
-#: cgi-bin/admin.c:1418
msgid "Unable to modify printer"
msgstr "No se ha podido modificar la impresora"
-#: cgi-bin/ipp-var.c:432
-#: cgi-bin/ipp-var.c:521
msgid "Unable to move job"
msgstr "No se ha podido mover el trabajo"
-#: cgi-bin/ipp-var.c:434
-#: cgi-bin/ipp-var.c:523
msgid "Unable to move jobs"
msgstr "No se han podido mover los trabajos"
-#: cgi-bin/admin.c:3186
-#: cups/ppd.c:339
msgid "Unable to open PPD file"
msgstr "No se ha podido abrir el archivo PPD"
-#: backend/ipp.c:2040
msgid "Unable to open compressed print file"
msgstr "No se ha podido abrir el archivo de impresión comprimido"
-#: cgi-bin/admin.c:2608
msgid "Unable to open cupsd.conf file:"
msgstr "No se ha podido abrir el archivo cupsd.conf:"
-#: backend/usb-unix.c:141
msgid "Unable to open device file"
msgstr "No se ha podido abrir el archivo de dispositivo"
-#: scheduler/ipp.c:6140
#, c-format
msgid "Unable to open document #%d in job #%d."
msgstr "No se ha podido abrir el documento #%d del trabajo #%d."
-#: cgi-bin/help.c:364
msgid "Unable to open help file."
msgstr "No se ha podido abrir el archivo de ayuda."
-#: backend/ipp.c:365
-#: backend/ipp.c:1398
-#: backend/ipp.c:1594
-#: backend/ipp.c:2046
-#: backend/lpd.c:488
-#: backend/socket.c:158
-#: backend/usb.c:237
-#: filter/gziptoany.c:71
-#: filter/pstops.c:300
msgid "Unable to open print file"
msgstr "No se ha podido abrir el archivo de impresión"
-#: filter/rastertoepson.c:998
-#: filter/rastertohp.c:724
-#: filter/rastertolabel.c:1147
msgid "Unable to open raster file"
msgstr "No se ha podido abrir el archivo de trama de datos (raster)"
-#: cgi-bin/ipp-var.c:795
msgid "Unable to print test page"
msgstr "No se ha podido imprimir la página de prueba"
-#: backend/runloop.c:96
-#: backend/runloop.c:325
-#: backend/usb-darwin.c:613
-#: backend/usb-darwin.c:657
-#: backend/usb-libusb.c:343
-#: backend/usb-libusb.c:378
msgid "Unable to read print data."
msgstr "No se han podido leer los datos de impresión."
-#: cups/dest.c:3402
msgid "Unable to resolve printer URI."
msgstr "No se ha podido resolver el URI de la impresora."
-#: cups/adminutil.c:2088
#, c-format
msgid "Unable to run \"%s\": %s"
msgstr "No se ha podido ejecutar \"%s\": %s"
-#: filter/pstops.c:563
msgid "Unable to see in file"
msgstr "No se ha podido mirar en el archivo"
-#: cgi-bin/ipp-var.c:598
-#: cgi-bin/ipp-var.c:618
msgid "Unable to send command to printer driver"
msgstr "No se ha podido enviar un comando al controlador de la impresora"
-#: backend/usb-darwin.c:735
-#: backend/usb-libusb.c:454
msgid "Unable to send data to printer."
msgstr "No se han podido enviar datos a la impresora."
-#: cups/adminutil.c:821
#, c-format
msgid "Unable to set Windows printer driver (%d)."
-msgstr "No se ha podido configurar el controlador de impresora de Windows (%d)."
+msgstr ""
+"No se ha podido configurar el controlador de impresora de Windows (%d)."
-#: cgi-bin/admin.c:3807
msgid "Unable to set options"
msgstr "No se han podido cambiar las opciones"
-#: cgi-bin/admin.c:3077
msgid "Unable to set server default"
msgstr "No se ha podido establecer el servidor predeterminado"
-#: backend/ipp.c:2868
-#: backend/ipp.c:2945
-#: backend/ipp.c:2953
msgid "Unable to start backend process."
msgstr "No se ha podido iniciar el proceso backend."
-#: cgi-bin/admin.c:1912
msgid "Unable to upload cupsd.conf file"
msgstr "No se ha podido enviar el archivo cupsd.conf"
-#: backend/usb-darwin.c:1985
-#: backend/usb-darwin.c:2009
msgid "Unable to use legacy USB class driver."
-msgstr "No se ha podido usar el controlador de dispositivo de clase USB obsoleto."
+msgstr ""
+"No se ha podido usar el controlador de dispositivo de clase USB obsoleto."
-#: backend/runloop.c:125
-#: backend/runloop.c:380
msgid "Unable to write print data"
msgstr "No se han podido escribir los datos de impresión"
-#: filter/gziptoany.c:90
#, c-format
msgid "Unable to write uncompressed print data: %s"
msgstr "No se han podido escribir los datos de impresión sin comprimir: %s"
-#: cups/http-support.c:1303
msgid "Unauthorized"
msgstr "No autorizado"
-#: cgi-bin/admin.c:3503
msgid "Units"
msgstr "Unidades"
-#: cups/http-support.c:1343
-#: cups/ppd.c:366
msgid "Unknown"
msgstr "Desconocido"
-#: filter/pstops.c:2213
#, c-format
msgid "Unknown choice \"%s\" for option \"%s\"."
msgstr "Preferencia \"%s\" desconocida para la opción \"%s\"."
-#: backend/ipp.c:507
#, c-format
msgid "Unknown encryption option value: \"%s\"."
msgstr "Valor de opción de cifrado \"%s\" desconocida."
-#: backend/lpd.c:350
#, c-format
msgid "Unknown file order: \"%s\"."
msgstr "Orden de archivos \"%s\" desconocido."
-#: backend/lpd.c:321
#, c-format
msgid "Unknown format character: \"%c\"."
msgstr "Carácter de formato \"%c\" desconocido."
-#: cups/dest-options.c:770
msgid "Unknown media size name."
msgstr "Nombre de tamaño de papel desconocido."
-#: backend/ipp.c:554
#, c-format
msgid "Unknown option \"%s\" with value \"%s\"."
msgstr "Opción \"%s\" con valor \"%s\" desconocida."
-#: filter/pstops.c:2196
#, c-format
msgid "Unknown option \"%s\"."
msgstr "Opción \"%s\" desconocida"
-#: backend/lpd.c:336
#, c-format
msgid "Unknown print mode: \"%s\"."
msgstr "Modo de impresión \"%s\" desconocido."
-#: scheduler/ipp.c:10496
#, c-format
msgid "Unknown printer-error-policy \"%s\"."
msgstr "printer-error-policy \"%s\" incorrecto."
-#: scheduler/ipp.c:10479
#, c-format
msgid "Unknown printer-op-policy \"%s\"."
msgstr "printer-op-policy \"%s\" incorrecto."
-#: cups/http-addrlist.c:710
msgid "Unknown service name."
msgstr "Nombre de servicio desconocido."
-#: backend/ipp.c:526
#, c-format
msgid "Unknown version option value: \"%s\"."
msgstr "Valor de opción de versión \"%s\" desconocida."
-#: scheduler/ipp.c:402
+#, c-format
+msgid "Unsupported 'compression' value \"%s\"."
+msgstr ""
+
+#, c-format
+msgid "Unsupported 'document-format' value \"%s\"."
+msgstr ""
+
+msgid "Unsupported 'job-name' value."
+msgstr ""
+
#, c-format
msgid "Unsupported character set \"%s\"."
msgstr "Juego de caracteres \"%s\" no permitido."
-#: scheduler/ipp.c:8171
-#: scheduler/ipp.c:9401
-#: scheduler/ipp.c:10950
#, c-format
msgid "Unsupported compression \"%s\"."
msgstr "Compresión \"%s\" no permitida."
-#: scheduler/ipp.c:8305
-#: scheduler/ipp.c:9551
-#: scheduler/ipp.c:10979
#, c-format
msgid "Unsupported document-format \"%s\"."
msgstr "document-format \"%s\" no permitido."
-#: scheduler/ipp.c:9534
#, c-format
msgid "Unsupported document-format \"%s/%s\"."
msgstr "document-format \"%s/%s\" no permitido."
-#: scheduler/ipp.c:1367
#, c-format
msgid "Unsupported format \"%s\"."
msgstr "Formato \"%s\" no permitido."
-#: scheduler/ipp.c:1465
msgid "Unsupported margins."
msgstr "Márgenes no permitidos."
-#: cups/pwg-media.c:529
msgid "Unsupported media value."
msgstr "Valor del medio no permitido."
-#: filter/pstops.c:2478
#, c-format
msgid "Unsupported number-up value %d, using number-up=1."
-msgstr "Valor de number-up (páginas por hoja) %d no permitido; usando number-up=1."
+msgstr ""
+"Valor de number-up (páginas por hoja) %d no permitido; usando number-up=1."
-#: filter/pstops.c:2512
#, c-format
msgid "Unsupported number-up-layout value %s, using number-up-layout=lrtb."
-msgstr "Valor de number-up-layout (disposición de páginas por hoja) %s no permitido; usando number-up-layout=lrtb."
+msgstr ""
+"Valor de number-up-layout (disposición de páginas por hoja) %s no permitido; "
+"usando number-up-layout=lrtb."
-#: filter/pstops.c:2563
#, c-format
msgid "Unsupported page-border value %s, using page-border=none."
-msgstr "Valor de page-border (borde de página) %s no permitido; usando page-border=none (ninguno)."
+msgstr ""
+"Valor de page-border (borde de página) %s no permitido; usando page-"
+"border=none (ninguno)."
-#: filter/rastertopwg.c:147
-#: filter/rastertopwg.c:155
-#: filter/rastertopwg.c:164
msgid "Unsupported raster data."
msgstr "Trama de datos no permitidos."
-#: cups/snmp.c:1112
msgid "Unsupported value type"
msgstr "Tipo de valor no permitido"
-#: cups/http-support.c:1318
msgid "Upgrade Required"
msgstr "Se requiere actualización"
-#: systemv/lpadmin.c:668
msgid ""
"Usage:\n"
"\n"
@@ -6053,53 +4490,37 @@ msgstr ""
" [-P archivo_ppd] [-o nombre=valor]\n"
" [-u allow:usuario,usuario] [-u deny:usuario,usuario]"
-#: backend/dnssd.c:241
-#: backend/ipp.c:313
-#: backend/lpd.c:191
-#: backend/socket.c:135
-#: backend/usb.c:183
-#: filter/commandtops.c:74
-#: filter/gziptoany.c:50
-#: filter/pstops.c:264
-#: monitor/bcp.c:62
-#: monitor/tbcp.c:61
#, c-format
msgid "Usage: %s job-id user title copies options [file]"
msgstr "Uso: %s job-id usuario título copias opciones [archivo]"
-#: systemv/cupsaddsmb.c:281
msgid "Usage: cupsaddsmb [options] printer1 ... printerN"
msgstr "Uso: cupsaddsmb [opciones] impresora1 ... impresoraN"
-#: systemv/cupsctl.c:200
msgid "Usage: cupsctl [options] [param=value ... paramN=valueN]"
msgstr "Uso: cupsctl [opciones] [param=valor ... paramN=valorN]"
-#: scheduler/main.c:2017
msgid "Usage: cupsd [options]"
msgstr "Uso: cupsd [opciones)"
-#: scheduler/cupsfilter.c:1429
msgid "Usage: cupsfilter [ options ] filename"
msgstr "Uso: cupsfilter ( opciones ) archivo"
-#: systemv/cupstestdsc.c:425
msgid "Usage: cupstestdsc [options] filename.ps [... filename.ps]"
msgstr "Uso: cupstestdsc [opciones] nombre_archivo.ps [... nombre_archivo.ps]"
-#: systemv/cupstestppd.c:3793
-msgid "Usage: cupstestppd [options] filename1.ppd[.gz] [... filenameN.ppd[.gz]]"
-msgstr "Uso: cupstestppd [opciones] nombre_archivo1.ppd[.gz] [... nombre_archivoN.ppd[.gz]]"
+msgid ""
+"Usage: cupstestppd [options] filename1.ppd[.gz] [... filenameN.ppd[.gz]]"
+msgstr ""
+"Uso: cupstestppd [opciones] nombre_archivo1.ppd[.gz] [... nombre_archivoN.ppd"
+"[.gz]]"
-#: test/ipptool.c:4401
msgid "Usage: ipptool [options] URI filename [ ... filenameN ]"
msgstr "Uso: ipptool [opciones] URI nombre_archivo [ ... nombre_archivoN ]"
-#: systemv/lpmove.c:125
msgid "Usage: lpmove job/src dest"
msgstr "Uso: lpmove trabajo/fuente destino"
-#: systemv/lpoptions.c:553
msgid ""
"Usage: lpoptions [-h server] [-E] -d printer\n"
" lpoptions [-h server] [-E] [-p printer] -l\n"
@@ -6111,11 +4532,9 @@ msgstr ""
" lpoptions [-h servidor] [-E] -p impresora -o opción[=valor] ...\n"
" lpoptions [-h servidor] [-E] -x impresora"
-#: systemv/lppasswd.c:476
msgid "Usage: lppasswd [-g groupname]"
msgstr "Uso: lppasswd [-g nombre_grupo]"
-#: systemv/lppasswd.c:479
msgid ""
"Usage: lppasswd [-g groupname] [username]\n"
" lppasswd [-g groupname] -a [username]\n"
@@ -6125,368 +4544,296 @@ msgstr ""
" lppasswd [-g nombre_grupo] -a [nombre_usuario]\n"
" lppasswd [-g nombre_grupo] -x [nombre_usuario]"
-#: berkeley/lpq.c:670
-msgid "Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]"
-msgstr "Uso: lpq (-P dest) (-U nombre_usuario) (-h nombre_ordenador(:puerto)) (-l) (+intervalo)"
+msgid ""
+"Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]"
+msgstr ""
+"Uso: lpq (-P dest) (-U nombre_usuario) (-h nombre_ordenador(:puerto)) (-l) "
+"(+intervalo)"
-#: ppdc/ppdc.cxx:435
msgid "Usage: ppdc [options] filename.drv [ ... filenameN.drv ]"
msgstr "Uso: ppdc [opciones] nombre_archivo.drv [ ... nombre_archivoN.drv ]"
-#: ppdc/ppdhtml.cxx:172
msgid "Usage: ppdhtml [options] filename.drv >filename.html"
msgstr "Uso: ppdhtml [opciones] nombre_archivo.drv >nombre_archivo.html"
-#: ppdc/ppdi.cxx:128
msgid "Usage: ppdi [options] filename.ppd [ ... filenameN.ppd ]"
msgstr "Uso: ppdi [opciones] nombre_archivo.ppd [ ... nombre_archivoN.ppd ]"
-#: ppdc/ppdmerge.cxx:367
msgid "Usage: ppdmerge [options] filename.ppd [ ... filenameN.ppd ]"
-msgstr "Uso: ppdmerge [opciones] nombre_archivo.ppd [ ... nombre_archivoN.ppd ]"
+msgstr ""
+"Uso: ppdmerge [opciones] nombre_archivo.ppd [ ... nombre_archivoN.ppd ]"
-#: ppdc/ppdpo.cxx:252
-msgid "Usage: ppdpo [options] -o filename.po filename.drv [ ... filenameN.drv ]"
-msgstr "Uso: ppdpo [opciones] -o nombre_archivo.po nombre_archivo.drv [ ... nombre_archivoN.drv ]"
+msgid ""
+"Usage: ppdpo [options] -o filename.po filename.drv [ ... filenameN.drv ]"
+msgstr ""
+"Uso: ppdpo [opciones] -o nombre_archivo.po nombre_archivo.drv [ ... "
+"nombre_archivoN.drv ]"
-#: backend/snmp.c:218
msgid "Usage: snmp [host-or-ip-address]"
msgstr "Uso: snmp [ordenador-o-dirección-ip]"
-#: cups/snmp.c:1064
msgid "Value uses indefinite length"
msgstr "Valor usa una longitud indefinida"
-#: cups/snmp.c:1049
msgid "VarBind uses indefinite length"
msgstr "VarBind usa una longitud indefinida"
-#: cups/snmp.c:999
msgid "Version uses indefinite length"
msgstr "Versión usa una longitud indefinida"
-#: backend/ipp.c:1675
msgid "Waiting for job to complete."
msgstr "Esperando a que finalice el trabajo."
-#: backend/usb-darwin.c:457
-#: backend/usb-libusb.c:193
msgid "Waiting for printer to become available."
msgstr "Esperando a que la impresora esté disponible."
-#: backend/socket.c:444
msgid "Waiting for printer to finish."
msgstr "Esperando a que finalice la impresora."
-#: cups/adminutil.c:793
msgid "Warning, no Windows 2000 printer drivers are installed."
-msgstr "Advertencia, no está instalado ningún controlador de impresora de Windows 2000."
+msgstr ""
+"Advertencia, no está instalado ningún controlador de impresora de Windows "
+"2000."
-#: cups/http-support.c:1339
msgid "Web Interface is Disabled"
msgstr "La interfaz web está desactivada."
-#: cups/ppd.c:1947
msgid "Yes"
msgstr "Si"
-#: scheduler/client.c:2437
#, c-format
-msgid "You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
-msgstr "Debe acceder a esta página usando el URL <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
+msgid ""
+"You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://"
+"%s:%d%s</A>."
+msgstr ""
+"Debe acceder a esta página usando el URL <A HREF=\"https://%s:%d%s\">https://"
+"%s:%d%s</A>."
-#: systemv/lppasswd.c:254
-msgid "Your password must be at least 6 characters long, cannot contain your username, and must contain at least one letter and number."
-msgstr "Su contraseña debe tener al menos 6 caracteres, no puede contener su nombre de usuario, y debe tener al menos una letra y un número."
+msgid ""
+"Your password must be at least 6 characters long, cannot contain your "
+"username, and must contain at least one letter and number."
+msgstr ""
+"Su contraseña debe tener al menos 6 caracteres, no puede contener su nombre "
+"de usuario, y debe tener al menos una letra y un número."
-#: ppdc/sample.c:439
msgid "ZPL Label Printer"
msgstr "Impresora de etiquetas ZPL"
-#: ppdc/sample.c:362
msgid "Zebra"
msgstr "Zebra"
-#: cups/notify.c:102
msgid "aborted"
msgstr "cancelado"
-#: cups/notify.c:99
msgid "canceled"
msgstr "cancelado"
-#: cups/notify.c:105
msgid "completed"
msgstr "completado"
-#: scheduler/ipp.c:6012
msgid "cups-deviced failed to execute."
msgstr "Ha fallado al ejecutarse cups-deviced."
-#: scheduler/ipp.c:6842
-#: scheduler/ipp.c:7091
msgid "cups-driverd failed to execute."
msgstr "Ha fallado al ejecutarse cups-driverd."
-#: systemv/cupsaddsmb.c:233
#, c-format
msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s"
msgstr "cupsaddsmb: No hay archivo PPD para la impresora \"%s\" - %s"
-#: systemv/cupsctl.c:141
msgid "cupsctl: Cannot set Listen or Port directly."
msgstr "cupsctl: No se puede establecer Listen o Port directamente."
-#: systemv/cupsctl.c:152
#, c-format
msgid "cupsctl: Unable to connect to server: %s"
msgstr "cupsctl: No se ha podido conectar al servidor: %s"
-#: systemv/cupsctl.c:195
#, c-format
msgid "cupsctl: Unknown option \"%s\""
msgstr "cupsctl: Opción \"%s\" desconocida"
-#: systemv/cupsctl.c:197
#, c-format
msgid "cupsctl: Unknown option \"-%c\""
msgstr "cupsctl: Opción \"-%c\" desconocida"
-#: scheduler/main.c:189
msgid "cupsd: Expected config filename after \"-c\" option."
-msgstr "cupsd: Se esperaba un nombre de archivo de configuración tras la opción \"-c\"."
+msgstr ""
+"cupsd: Se esperaba un nombre de archivo de configuración tras la opción \"-c"
+"\"."
-#: scheduler/main.c:221
-#: scheduler/main.c:228
msgid "cupsd: Unable to get current directory."
msgstr "cupsd: No se ha podido obtener el directorio actual."
-#: scheduler/main.c:295
#, c-format
msgid "cupsd: Unknown argument \"%s\" - aborting."
msgstr "cupsd: Argumento \"%s\" desconocido - cancelando."
-#: scheduler/main.c:288
#, c-format
msgid "cupsd: Unknown option \"%c\" - aborting."
msgstr "cupsd: Opción \"%c\" desconocida - cancelando."
-#: scheduler/main.c:255
msgid "cupsd: launchd(8) support not compiled in, running in normal mode."
-msgstr "cupsd: el uso de launchd(8) no ha sido compilado, ejecutándose en modo normal."
+msgstr ""
+"cupsd: el uso de launchd(8) no ha sido compilado, ejecutándose en modo "
+"normal."
-#: scheduler/cupsfilter.c:1209
#, c-format
msgid "cupsfilter: Invalid document number %d."
msgstr "cupsfilter: Número de documento %d no válido."
-#: scheduler/cupsfilter.c:1203
#, c-format
msgid "cupsfilter: Invalid job ID %d."
msgstr "cupsfilter: ID de trabajo %d no válida."
-#: scheduler/cupsfilter.c:358
msgid "cupsfilter: Only one filename can be specified."
msgstr "cupsfilter: Solo se puede especificar un nombre de archivo."
-#: scheduler/cupsfilter.c:1251
#, c-format
msgid "cupsfilter: Unable to get job file - %s"
msgstr "cupsfilter: No se ha podido obtener el archivo del trabajo - %s"
-#: systemv/cupstestppd.c:261
msgid "cupstestppd: The -q option is incompatible with the -v option."
msgstr "cupstestppd: La opción -q es incompatible con la opción -v."
-#: systemv/cupstestppd.c:277
msgid "cupstestppd: The -v option is incompatible with the -q option."
msgstr "cupstestppd: La opción -v es incompatible con la opción -q."
-#: systemv/lpstat.c:1231
-#: systemv/lpstat.c:1234
-#: systemv/lpstat.c:1237
#, c-format
msgid "device for %s/%s: %s"
msgstr "dispositivo para %s/%s: %s"
-#: systemv/lpstat.c:1218
-#: systemv/lpstat.c:1221
-#: systemv/lpstat.c:1224
#, c-format
msgid "device for %s: %s"
msgstr "dispositivo para %s: %s"
-#: cups/snmp.c:1036
msgid "error-index uses indefinite length"
msgstr "error-index usa una longitud indefinida"
-#: cups/snmp.c:1028
msgid "error-status uses indefinite length"
msgstr "error-status usa una longitud indefinida"
-#: cups/notify.c:90
msgid "held"
msgstr "retenido"
-#: berkeley/lpc.c:209
msgid "help\t\tGet help on commands."
msgstr "help\t\tProporciona ayuda sobre los comandos."
-#: cups/notify.c:131
msgid "idle"
msgstr "inactiva"
-#: test/ipptool.c:373
-#: test/ipptool.c:515
-#: test/ipptool.c:539
msgid "ipptool: \"-i\" and \"-n\" are incompatible with -X\"."
msgstr "ipptool: \"-i\" y \"-n\" son incompatibles with -X\"."
-#: test/ipptool.c:597
#, c-format
msgid "ipptool: Bad URI - %s."
msgstr "ipptool: URI - %s incorrecto."
-#: test/ipptool.c:362
#, c-format
msgid "ipptool: Bad version %s for \"-V\"."
msgstr "ipptool: Versión %s para \"-V\" incorrecta."
-#: test/ipptool.c:508
msgid "ipptool: Invalid seconds for \"-i\"."
msgstr "ipptool: Número de segundos no válido para \"-i\"."
-#: test/ipptool.c:578
msgid "ipptool: May only specify a single URI."
msgstr "ipptool: Sólo se puede especificar un URI."
-#: test/ipptool.c:531
msgid "ipptool: Missing count for \"-n\"."
msgstr "ipptool: Falta el contador para \"-n\"."
-#: test/ipptool.c:408
msgid "ipptool: Missing filename for \"-f\"."
msgstr "ipptool: Falta el nombre del archivo para \"-f\"."
-#: test/ipptool.c:389
msgid "ipptool: Missing name=value for \"-d\"."
msgstr "ipptool: Falta un nombre=valor para \"-d\"."
-#: test/ipptool.c:498
msgid "ipptool: Missing seconds for \"-i\"."
msgstr "ipptool: Falta el número de segundos para \"-i\"."
-#: test/ipptool.c:332
msgid "ipptool: Missing timeout for \"-T\"."
msgstr "ipptool: Falta un tiempo de espera para \"-T\"."
-#: test/ipptool.c:345
msgid "ipptool: Missing version for \"-V\"."
msgstr "ipptool: Falta la versión para \"-V\"."
-#: test/ipptool.c:624
msgid "ipptool: URI required before test file."
msgstr "ipptool: Se requiere un URI antes del archivo de prueba."
-#: test/ipptool.c:558
#, c-format
msgid "ipptool: Unknown option \"-%c\"."
msgstr "ipptool: Opción \"-%c\" desconocida."
-#: scheduler/ipp.c:7838
msgid "job-printer-uri attribute missing."
msgstr "Falta el atributo job-printer-uri."
-#: systemv/lpadmin.c:131
-#: systemv/lpadmin.c:375
msgid "lpadmin: Class name can only contain printable characters."
-msgstr "lpadmin: El nombre de la clase sólo puede contener caracteres imprimibles."
+msgstr ""
+"lpadmin: El nombre de la clase sólo puede contener caracteres imprimibles."
-#: systemv/lpadmin.c:614
msgid "lpadmin: Expected PPD after \"-P\" option."
msgstr "lpadmin: Se esperaba un PPD tras la opción \"-P\"."
-#: systemv/lpadmin.c:457
msgid "lpadmin: Expected allow/deny:userlist after \"-u\" option."
msgstr "lpadmin: Se esperaba allow/deny:lista_usuarios tras la opción \"-u\"."
-#: systemv/lpadmin.c:364
msgid "lpadmin: Expected class after \"-r\" option."
msgstr "lpadmin: Se esperaba una clase tras la opción \"-r\"."
-#: systemv/lpadmin.c:120
msgid "lpadmin: Expected class name after \"-c\" option."
msgstr "lpadmin: Se esperaba un nombre de clase tras la opción \"-c\"."
-#: systemv/lpadmin.c:558
msgid "lpadmin: Expected description after \"-D\" option."
msgstr "lpadmin: Se esperaba una descripción tras la opción \"-D\"."
-#: systemv/lpadmin.c:491
msgid "lpadmin: Expected device URI after \"-v\" option."
msgstr "lpadmin: Se esperaba un URI de dispositivo tras la opción \"-v\"."
-#: systemv/lpadmin.c:574
msgid "lpadmin: Expected file type(s) after \"-I\" option."
msgstr "lpadmin: Se esperaba(n) tipo(s) de archivo(s) tras la opción \"-l\"."
-#: systemv/lpadmin.c:202
msgid "lpadmin: Expected hostname after \"-h\" option."
msgstr "lpadmin: Se esperaba un nombre de ordenador tras la opción \"-h\"."
-#: systemv/lpadmin.c:221
msgid "lpadmin: Expected interface after \"-i\" option."
msgstr "lpadmin: Se esperaba una interfaz tras la opción \"-i\"."
-#: systemv/lpadmin.c:594
msgid "lpadmin: Expected location after \"-L\" option."
msgstr "lpadmin: Se esperaba una ubicación tras la opción \"-L\"."
-#: systemv/lpadmin.c:274
msgid "lpadmin: Expected model after \"-m\" option."
msgstr "lpadmin: Se esperaba un modelo tras la opción \"-m\"."
-#: systemv/lpadmin.c:417
msgid "lpadmin: Expected name after \"-R\" option."
msgstr "lpadmin: Se esperaba un nombre tras la opción \"-R\"."
-#: systemv/lpadmin.c:294
msgid "lpadmin: Expected name=value after \"-o\" option."
msgstr "lpadmin: Se esperaba un nombre=valor tras la opción \"-o\"."
-#: systemv/lpadmin.c:313
msgid "lpadmin: Expected printer after \"-p\" option."
msgstr "lpadmin: Se esperaba una impresora tras la opción \"-p\"."
-#: systemv/lpadmin.c:164
msgid "lpadmin: Expected printer name after \"-d\" option."
msgstr "lpadmin: Se esperaba un nombre de impresora tras la opción \"-d\"."
-#: systemv/lpadmin.c:525
msgid "lpadmin: Expected printer or class after \"-x\" option."
msgstr "lpadmin: Se esperaba una impresora o clase tras la opción \"-x\"."
-#: systemv/lpadmin.c:975
msgid "lpadmin: No member names were seen."
msgstr "lpadmin: No se han visto nombres de miembros"
-#: systemv/lpadmin.c:762
#, c-format
msgid "lpadmin: Printer %s is already a member of class %s."
msgstr "lpadmin: La impresora %s ya es miembro de la clase %s."
-#: systemv/lpadmin.c:989
#, c-format
msgid "lpadmin: Printer %s is not a member of class %s."
msgstr "lpadmin: La impresora %s no es miembro de la clase %s."
-#: systemv/lpadmin.c:175
-#: systemv/lpadmin.c:324
-#: systemv/lpadmin.c:536
msgid "lpadmin: Printer name can only contain printable characters."
-msgstr "lpadmin: El nombre de la impresora sólo puede contener caracteres imprimibles."
+msgstr ""
+"lpadmin: El nombre de la impresora sólo puede contener caracteres "
+"imprimibles."
-#: systemv/lpadmin.c:105
msgid ""
"lpadmin: Unable to add a printer to the class:\n"
" You must specify a printer name first."
@@ -6494,22 +4841,13 @@ msgstr ""
"lpadmin: No se ha podido añadir una impresora a la clase:\n"
" Debe especificar un nombre de impresora primero."
-#: systemv/lpadmin.c:96
-#: systemv/lpadmin.c:149
-#: systemv/lpadmin.c:253
-#: systemv/lpadmin.c:339
-#: systemv/lpadmin.c:393
-#: systemv/lpadmin.c:510
-#: systemv/lpadmin.c:647
#, c-format
msgid "lpadmin: Unable to connect to server: %s"
msgstr "lpadmin: No se ha podido conectar al servidor: %s"
-#: systemv/lpadmin.c:1329
msgid "lpadmin: Unable to create temporary file"
msgstr "lpadmin: No se ha podido crear el archivo temporal"
-#: systemv/lpadmin.c:402
msgid ""
"lpadmin: Unable to delete option:\n"
" You must specify a printer name first."
@@ -6517,12 +4855,10 @@ msgstr ""
"lpadmin: No se ha podido borrar la opción:\n"
" Primero debe especificar un nombre de impresora."
-#: systemv/lpadmin.c:1339
#, c-format
msgid "lpadmin: Unable to open PPD file \"%s\" - %s"
msgstr "lpadmin: No se ha podido abrir el archivo PPD \"%s\" - %s"
-#: systemv/lpadmin.c:348
msgid ""
"lpadmin: Unable to remove a printer from the class:\n"
" You must specify a printer name first."
@@ -6530,7 +4866,6 @@ msgstr ""
"lpadmin: No se ha podido quitar una impresora de la clase:\n"
" Primero debe especificar un nombre de impresora."
-#: systemv/lpadmin.c:656
msgid ""
"lpadmin: Unable to set the printer options:\n"
" You must specify a printer name first."
@@ -6538,779 +4873,653 @@ msgstr ""
"lpadmin: No se han podido establecer las opciones de impresora:\n"
" Primero debe especificar un nombre de impresora."
-#: systemv/lpadmin.c:474
#, c-format
msgid "lpadmin: Unknown allow/deny option \"%s\"."
msgstr "lpadmin: Opción allow/deny desconocida \"%s\"."
-#: systemv/lpadmin.c:629
#, c-format
msgid "lpadmin: Unknown argument \"%s\"."
msgstr "lpadmin: Argumento \"%s\" desconocido."
-#: systemv/lpadmin.c:624
#, c-format
msgid "lpadmin: Unknown option \"%c\"."
msgstr "lpadmin: Opción \"%c\" desconocida."
-#: systemv/lpadmin.c:580
msgid "lpadmin: Warning - content type list ignored."
msgstr "lpadmin: Advertencia - lista de tipo de contenido no tenida en cuenta."
-#: berkeley/lpc.c:76
-#: berkeley/lpc.c:104
-#: berkeley/lpc.c:140
msgid "lpc> "
msgstr "lpc> "
-#: systemv/lpinfo.c:137
msgid "lpinfo: Expected 1284 device ID string after \"--device-id\"."
-msgstr "lpinfo: Se esperaba una cadena ID de dispositivo 1284 tras \"--device-id\"."
+msgstr ""
+"lpinfo: Se esperaba una cadena ID de dispositivo 1284 tras \"--device-id\"."
-#: systemv/lpinfo.c:190
msgid "lpinfo: Expected language after \"--language\"."
msgstr "lpinfo: Se esperaba un idioma tras \"--language\"."
-#: systemv/lpinfo.c:207
msgid "lpinfo: Expected make and model after \"--make-and-model\"."
msgstr "lpinfo: Se esperaba marca y modelo tras \"--make-and-model\"."
-#: systemv/lpinfo.c:224
msgid "lpinfo: Expected product string after \"--product\"."
msgstr "lpinfo: Se esperaba una cadena de producto tras \"--product\"."
-#: systemv/lpinfo.c:155
msgid "lpinfo: Expected scheme list after \"--exclude-schemes\"."
msgstr "lpinfo: Se esperaba una lista de esquemas tras \"--exclude-schemes\"."
-#: systemv/lpinfo.c:173
msgid "lpinfo: Expected scheme list after \"--include-schemes\"."
msgstr "lpinfo: Se esperaba una lista de esquemas tras \"--include-schemes\"."
-#: systemv/lpinfo.c:241
msgid "lpinfo: Expected timeout after \"--timeout\"."
msgstr "lpinfo: Se esperaba un tiempo de espera tras \"--timeout\"."
-#: systemv/lpinfo.c:265
#, c-format
msgid "lpinfo: Unknown argument \"%s\"."
msgstr "lpinfo: Argumento \"%s\" desconocido."
-#: systemv/lpinfo.c:259
#, c-format
msgid "lpinfo: Unknown option \"%c\"."
msgstr "lpinfo: Opción \"%c\" desconocida."
-#: systemv/lpinfo.c:252
#, c-format
msgid "lpinfo: Unknown option \"%s\"."
msgstr "lpinfo: Opción \"%s\" desconocida."
-#: systemv/lpmove.c:133
#, c-format
msgid "lpmove: Unable to connect to server: %s"
msgstr "lpmove: No se ha podido conectar al servidor: %s"
-#: systemv/lpmove.c:119
#, c-format
msgid "lpmove: Unknown argument \"%s\"."
msgstr "lpmove: Argumento \"%s\" desconocido."
-#: systemv/lpmove.c:97
#, c-format
msgid "lpmove: Unknown option \"%c\"."
msgstr "lpmove: Opción \"%c\" desconocida."
-#: systemv/lpoptions.c:150
-#: systemv/lpoptions.c:168
-#: systemv/lpoptions.c:244
msgid "lpoptions: No printers."
msgstr "lpoptions: No hay impresoras."
-#: systemv/lpoptions.c:219
#, c-format
msgid "lpoptions: Unable to add printer or instance: %s"
msgstr "lpoptions: No se ha podido añadir la impresora o la instancia: %s"
-#: systemv/lpoptions.c:521
#, c-format
msgid "lpoptions: Unable to get PPD file for %s: %s"
msgstr "lpoptions: No se ha podido obtener el archivo PPD para %s: %s"
-#: systemv/lpoptions.c:529
#, c-format
msgid "lpoptions: Unable to open PPD file for %s."
msgstr "lpoptions: No se ha podido abrir el archivo PPD para %s."
-#: systemv/lpoptions.c:99
msgid "lpoptions: Unknown printer or class."
msgstr "lpoptions: Impresora o clase desconocida."
-#: systemv/lppasswd.c:173
msgid "lppasswd: Only root can add or delete passwords."
msgstr "lppasswd: Solo el usuario root puede añadir o borrar contraseñas."
-#: systemv/lppasswd.c:302
msgid "lppasswd: Password file busy."
msgstr "lppasswd: Archivo de contraseñas ocupado."
-#: systemv/lppasswd.c:431
msgid "lppasswd: Password file not updated."
msgstr "lppasswd: Archivo de contraseñas no actualizado."
-#: systemv/lppasswd.c:398
msgid "lppasswd: Sorry, password doesn't match."
msgstr "lppasswd: Lo siento, la contraseña no coincide."
-#: systemv/lppasswd.c:253
msgid "lppasswd: Sorry, password rejected."
msgstr "lppasswd: Lo siento, la contraseña ha sido rechazada."
-#: systemv/lppasswd.c:230
msgid "lppasswd: Sorry, passwords don't match."
msgstr "lppasswd: Lo siento, las contraseñas no coinciden."
-#: systemv/lppasswd.c:199
-#: systemv/lppasswd.c:218
#, c-format
msgid "lppasswd: Unable to copy password string: %s"
msgstr "lppasswd: No se ha podido copiar la cadena de contraseña: %s"
-#: systemv/lppasswd.c:304
-#: systemv/lppasswd.c:312
-#: systemv/lppasswd.c:329
#, c-format
msgid "lppasswd: Unable to open password file: %s"
msgstr "lppasswd: No se ha podido abrir el archivo de contraseñas: %s"
-#: systemv/lppasswd.c:364
-#: systemv/lppasswd.c:377
-#: systemv/lppasswd.c:408
#, c-format
msgid "lppasswd: Unable to write to password file: %s"
msgstr "lppasswd: No se ha podido escribir en el archivo de contraseñas: %s"
-#: systemv/lppasswd.c:446
#, c-format
msgid "lppasswd: failed to backup old password file: %s"
-msgstr "lppasswd: falló al hacer una copia de seguridad del antiguo archivo de contraseñas: %s"
+msgstr ""
+"lppasswd: falló al hacer una copia de seguridad del antiguo archivo de "
+"contraseñas: %s"
-#: systemv/lppasswd.c:458
#, c-format
msgid "lppasswd: failed to rename password file: %s"
msgstr "lppasswd: falló al cambiar de nombre al archivo de contraseñas: %s"
-#: systemv/lppasswd.c:389
#, c-format
msgid "lppasswd: user \"%s\" and group \"%s\" do not exist."
msgstr "lppasswd: el usuario \"%s\" y el grupo \"%s\" no existen."
-#: systemv/lpstat.c:1039
#, c-format
-msgid "lpstat: error - %s environment variable names non-existent destination \"%s\"."
-msgstr "lpstat: error - Los nombre de variable de entorno %s no existen en el destino \"%s\"."
+msgid ""
+"lpstat: error - %s environment variable names non-existent destination \"%s"
+"\"."
+msgstr ""
+"lpstat: error - Los nombre de variable de entorno %s no existen en el "
+"destino \"%s\"."
-#: systemv/lpstat.c:970
#, c-format
msgid "members of class %s:"
msgstr "miembros de la clase %s:"
-#: berkeley/lpq.c:582
msgid "no entries"
msgstr "no hay entradas"
-#: systemv/lpstat.c:1043
msgid "no system default destination"
msgstr "no hay un destino predeterminado del sistema"
-#: scheduler/ipp.c:5702
msgid "notify-events not specified."
msgstr "notify-events no especificado."
-#: scheduler/ipp.c:2034
-#: scheduler/ipp.c:5607
#, c-format
msgid "notify-recipient-uri URI \"%s\" is already used."
msgstr "El URI notify-recipient-uri \"%s\" ya está usado."
-#: scheduler/ipp.c:2024
-#: scheduler/ipp.c:5597
#, c-format
msgid "notify-recipient-uri URI \"%s\" uses unknown scheme."
msgstr "El URI notify-recipient-uri \"%s\" usa un esquema desconocido."
-#: cups/notify.c:87
msgid "pending"
msgstr "pendiente"
-#: ppdc/ppdc.cxx:113
-#: ppdc/ppdpo.cxx:93
#, c-format
msgid "ppdc: Adding include directory \"%s\"."
msgstr "ppdc: Añadiendo directorio include \"%s\"."
-#: ppdc/ppdpo.cxx:134
#, c-format
msgid "ppdc: Adding/updating UI text from %s."
msgstr "ppdc: Añadiendo/actualizando texto UI desde %s."
-#: ppdc/ppdc-source.cxx:410
#, c-format
msgid "ppdc: Bad boolean value (%s) on line %d of %s."
msgstr "ppdc: Valor lógico (%s) incorrecto en línea %d de %s."
-#: ppdc/ppdc-import.cxx:264
#, c-format
msgid "ppdc: Bad font attribute: %s"
msgstr "ppdc: Atributo de fuente: %s incorrecto"
-#: ppdc/ppdc-source.cxx:1796
#, c-format
msgid "ppdc: Bad resolution name \"%s\" on line %d of %s."
msgstr "ppdc: Resolución de nombre \"%s\" incorrecta en línea %d de %s."
-#: ppdc/ppdc-source.cxx:1113
#, c-format
msgid "ppdc: Bad status keyword %s on line %d of %s."
msgstr "ppdc: Clave de estado %s incorrecta en línea %d de %s."
-#: ppdc/ppdc-source.cxx:2033
#, c-format
msgid "ppdc: Bad variable substitution ($%c) on line %d of %s."
msgstr "ppdc: Sustitución de variable ($%c) errónea en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:2719
#, c-format
msgid "ppdc: Choice found on line %d of %s with no Option."
msgstr "ppdc: Selección encontrada en línea %d de %s sin opciones."
-#: ppdc/ppdc-source.cxx:1698
#, c-format
msgid "ppdc: Duplicate #po for locale %s on line %d of %s."
msgstr "ppdc: #po duplicado para código regional %s en línea %d de %s."
-#: ppdc/ppdc-source.cxx:932
#, c-format
msgid "ppdc: Expected a filter definition on line %d of %s."
msgstr "ppdc: Se esperaba una definición de filtro en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:955
#, c-format
msgid "ppdc: Expected a program name on line %d of %s."
msgstr "ppdc: Se esperaba un nombre de programa en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:394
#, c-format
msgid "ppdc: Expected boolean value on line %d of %s."
msgstr "ppdc: Se esperaba un valor lógico en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:1093
#, c-format
msgid "ppdc: Expected charset after Font on line %d of %s."
-msgstr "ppdc: Se esperaba un juego de caracteres tras Font en la línea %d de %s."
+msgstr ""
+"ppdc: Se esperaba un juego de caracteres tras Font en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:447
#, c-format
msgid "ppdc: Expected choice code on line %d of %s."
msgstr "ppdc: Se esperaba un código apropiado en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:435
#, c-format
msgid "ppdc: Expected choice name/text on line %d of %s."
msgstr "ppdc: Se esperaba un nombre/texto apropiado en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:503
#, c-format
msgid "ppdc: Expected color order for ColorModel on line %d of %s."
-msgstr "ppdc: Se esperaba un orden de color para ColorModel en la línea %d de %s."
+msgstr ""
+"ppdc: Se esperaba un orden de color para ColorModel en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:492
#, c-format
msgid "ppdc: Expected colorspace for ColorModel on line %d of %s."
msgstr "ppdc: Se esperaba colorspace para ColorModel en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:514
#, c-format
msgid "ppdc: Expected compression for ColorModel on line %d of %s."
msgstr "ppdc: Se esperaba compresión para ColorModel en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:695
#, c-format
msgid "ppdc: Expected constraints string for UIConstraints on line %d of %s."
-msgstr "ppdc: Se esperaba una cadena de restricciones para UIConstraints en la línea %d de %s."
+msgstr ""
+"ppdc: Se esperaba una cadena de restricciones para UIConstraints en la línea "
+"%d de %s."
-#: ppdc/ppdc-source.cxx:2905
#, c-format
-msgid "ppdc: Expected driver type keyword following DriverType on line %d of %s."
-msgstr "ppdc: Se esperaba una clave de tipo de controlador tras DriverType en la línea %d de %s."
+msgid ""
+"ppdc: Expected driver type keyword following DriverType on line %d of %s."
+msgstr ""
+"ppdc: Se esperaba una clave de tipo de controlador tras DriverType en la "
+"línea %d de %s."
-#: ppdc/ppdc-source.cxx:826
#, c-format
msgid "ppdc: Expected duplex type after Duplex on line %d of %s."
msgstr "ppdc: Se esperaba un tipo dúplex tras Duplex en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:1077
#, c-format
msgid "ppdc: Expected encoding after Font on line %d of %s."
msgstr "ppdc: Se esperaba una codificación tras Font en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:1689
#, c-format
msgid "ppdc: Expected filename after #po %s on line %d of %s."
-msgstr "ppdc: Se esperaba un nombre de archivo tras #po %s en la línea %d de %s."
+msgstr ""
+"ppdc: Se esperaba un nombre de archivo tras #po %s en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:1205
#, c-format
msgid "ppdc: Expected group name/text on line %d of %s."
msgstr "ppdc: Se esperaba un nombre/texto de grupo en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:2619
#, c-format
msgid "ppdc: Expected include filename on line %d of %s."
msgstr "ppdc: Se esperaba un nombre de archivo include en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:1502
#, c-format
msgid "ppdc: Expected integer on line %d of %s."
msgstr "ppdc: Se esperaba un número entero en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:1681
#, c-format
msgid "ppdc: Expected locale after #po on line %d of %s."
msgstr "ppdc: Se esperaba un código regional tras #po en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:353
#, c-format
msgid "ppdc: Expected name after %s on line %d of %s."
msgstr "ppdc: Se esperaba un nombre tras %s en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:3277
#, c-format
msgid "ppdc: Expected name after FileName on line %d of %s."
msgstr "ppdc: Se esperaba un nombre tras FileName en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:1058
#, c-format
msgid "ppdc: Expected name after Font on line %d of %s."
msgstr "ppdc: Se esperaba un nombre tras Font en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:3108
#, c-format
msgid "ppdc: Expected name after Manufacturer on line %d of %s."
msgstr "ppdc: Se esperaba un nombre tras Manufacturer en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:3141
#, c-format
msgid "ppdc: Expected name after MediaSize on line %d of %s."
msgstr "ppdc: Se esperaba un nombre tras MediaSize en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:3231
#, c-format
msgid "ppdc: Expected name after ModelName on line %d of %s."
msgstr "ppdc: Se esperaba un nombre tras ModelName en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:3294
#, c-format
msgid "ppdc: Expected name after PCFileName on line %d of %s."
msgstr "ppdc: Se esperaba un nombre tras PCFileName en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:1156
#, c-format
msgid "ppdc: Expected name/text after %s on line %d of %s."
msgstr "ppdc: Se esperaba un nombre/texto tras %s en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:1245
#, c-format
msgid "ppdc: Expected name/text after Installable on line %d of %s."
-msgstr "ppdc: Se esperaba un nombre/texto tras Installable en la línea %d de %s."
+msgstr ""
+"ppdc: Se esperaba un nombre/texto tras Installable en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:1782
#, c-format
msgid "ppdc: Expected name/text after Resolution on line %d of %s."
-msgstr "ppdc: Se esperaba un nombre/texto tras Resolution en la línea %d de %s."
+msgstr ""
+"ppdc: Se esperaba un nombre/texto tras Resolution en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:479
#, c-format
msgid "ppdc: Expected name/text combination for ColorModel on line %d of %s."
-msgstr "ppdc: Se esperaba una combinación nombre/texto para ColorModel en la línea %d de %s."
+msgstr ""
+"ppdc: Se esperaba una combinación nombre/texto para ColorModel en la línea "
+"%d de %s."
-#: ppdc/ppdc-source.cxx:1574
#, c-format
msgid "ppdc: Expected option name/text on line %d of %s."
msgstr "ppdc: Se esperaba una opción de nombre/texto en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:1608
#, c-format
msgid "ppdc: Expected option section on line %d of %s."
msgstr "ppdc: Se esperaba una sección de opciones en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:1586
#, c-format
msgid "ppdc: Expected option type on line %d of %s."
msgstr "ppdc: Se esperaba un tipo de opción en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:1765
#, c-format
msgid "ppdc: Expected override field after Resolution on line %d of %s."
-msgstr "ppdc: Se esperaba un campo de anulación tras Resolution en la línea %d de %s."
+msgstr ""
+"ppdc: Se esperaba un campo de anulación tras Resolution en la línea %d de %s."
-#: ppdc/ppdc-catalog.cxx:341
-#: ppdc/ppdc-catalog.cxx:353
#, c-format
msgid "ppdc: Expected quoted string on line %d of %s."
msgstr "ppdc: Se esperaba una cadena entrecomillada en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:1004
#, c-format
msgid "ppdc: Expected real number on line %d of %s."
msgstr "ppdc: Se esperaba un número real en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:572
#, c-format
-msgid "ppdc: Expected resolution/mediatype following ColorProfile on line %d of %s."
-msgstr "ppdc: Se esperaba resolución/tipo de soporte tras ColorProfile en la línea %d de %s."
+msgid ""
+"ppdc: Expected resolution/mediatype following ColorProfile on line %d of %s."
+msgstr ""
+"ppdc: Se esperaba resolución/tipo de soporte tras ColorProfile en la línea "
+"%d de %s."
-#: ppdc/ppdc-source.cxx:1863
#, c-format
-msgid "ppdc: Expected resolution/mediatype following SimpleColorProfile on line %d of %s."
-msgstr "ppdc: Se esperaba resolución/tipo de soporte tras SimpleColorProfile en la línea %d de %s."
+msgid ""
+"ppdc: Expected resolution/mediatype following SimpleColorProfile on line %d "
+"of %s."
+msgstr ""
+"ppdc: Se esperaba resolución/tipo de soporte tras SimpleColorProfile en la "
+"línea %d de %s."
-#: ppdc/ppdc-source.cxx:361
#, c-format
msgid "ppdc: Expected selector after %s on line %d of %s."
msgstr "ppdc: Se esperaba un selector tras %s en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:1101
#, c-format
msgid "ppdc: Expected status after Font on line %d of %s."
msgstr "ppdc: Se esperaba un estado tras Font en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:2794
#, c-format
msgid "ppdc: Expected string after Copyright on line %d of %s."
msgstr "ppdc: Se esperaba una cadena tras Copyright en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:3397
#, c-format
msgid "ppdc: Expected string after Version on line %d of %s."
msgstr "ppdc: Se esperaba una cadena tras Version en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:728
#, c-format
msgid "ppdc: Expected two option names on line %d of %s."
msgstr "ppdc: Se esperaban dos nombres de opciones en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:372
#, c-format
msgid "ppdc: Expected value after %s on line %d of %s."
msgstr "ppdc: Se esperaba un valor tras %s en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:1085
#, c-format
msgid "ppdc: Expected version after Font on line %d of %s."
msgstr "ppdc: Se esperaba una versión tras Font en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:227
#, c-format
msgid "ppdc: Invalid #include/#po filename \"%s\"."
msgstr "ppdc: Nombre de archivo #include/#po incorrecto \"%s\"."
-#: ppdc/ppdc-source.cxx:972
#, c-format
msgid "ppdc: Invalid cost for filter on line %d of %s."
msgstr "ppdc: Coste incorrecto para el filtro en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:964
#, c-format
msgid "ppdc: Invalid empty MIME type for filter on line %d of %s."
msgstr "ppdc: Tipo MIME vacío incorrecto para el filtro en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:980
#, c-format
msgid "ppdc: Invalid empty program name for filter on line %d of %s."
-msgstr "ppdc: Nombre de programa vacío incorrecto para el filtro en la línea %d de %s."
+msgstr ""
+"ppdc: Nombre de programa vacío incorrecto para el filtro en la línea %d de "
+"%s."
-#: ppdc/ppdc-source.cxx:1628
#, c-format
msgid "ppdc: Invalid option section \"%s\" on line %d of %s."
msgstr "ppdc: Sección de opción incorrecta \"%s\" en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:1600
#, c-format
msgid "ppdc: Invalid option type \"%s\" on line %d of %s."
msgstr "ppdc: Tipo de opción incorrecta \"%s\" en la línea %d de %s."
-#: ppdc/ppdc.cxx:251
-#: ppdc/ppdpo.cxx:123
#, c-format
msgid "ppdc: Loading driver information file \"%s\"."
msgstr "ppdc: Cargando archivo de información de controlador \"%s\"."
-#: ppdc/ppdc.cxx:187
#, c-format
msgid "ppdc: Loading messages for locale \"%s\"."
msgstr "ppdc: Cargando mensajes del idioma \"%s\"."
-#: ppdc/ppdc.cxx:126
#, c-format
msgid "ppdc: Loading messages from \"%s\"."
msgstr "ppdc: Cargando mensajes desde \"%s\"."
-#: ppdc/ppdc-source.cxx:2412
-#: ppdc/ppdc-source.cxx:2644
#, c-format
msgid "ppdc: Missing #endif at end of \"%s\"."
msgstr "ppdc: Falta un #endif al final de \"%s\"."
-#: ppdc/ppdc-source.cxx:2513
-#: ppdc/ppdc-source.cxx:2548
-#: ppdc/ppdc-source.cxx:2578
#, c-format
msgid "ppdc: Missing #if on line %d of %s."
msgstr "ppdc: Falta un #if en la línea %d de %s."
-#: ppdc/ppdc-catalog.cxx:418
#, c-format
-msgid "ppdc: Need a msgid line before any translation strings on line %d of %s."
-msgstr "ppdc: Se necesita una línea msgid antes de cualquier cadena de traducción en línea %d de %s."
+msgid ""
+"ppdc: Need a msgid line before any translation strings on line %d of %s."
+msgstr ""
+"ppdc: Se necesita una línea msgid antes de cualquier cadena de traducción en "
+"línea %d de %s."
-#: ppdc/ppdc-driver.cxx:730
#, c-format
msgid "ppdc: No message catalog provided for locale %s."
msgstr "ppdc: No se ha proporcionado catálogo de mensajes para el idioma %s."
-#: ppdc/ppdc-source.cxx:1651
-#: ppdc/ppdc-source.cxx:2882
-#: ppdc/ppdc-source.cxx:2968
-#: ppdc/ppdc-source.cxx:3061
-#: ppdc/ppdc-source.cxx:3194
-#: ppdc/ppdc-source.cxx:3327
#, c-format
msgid "ppdc: Option %s defined in two different groups on line %d of %s."
-msgstr "ppdc: Opción %s definida en dos diferentes grupos en la línea %d de %s."
+msgstr ""
+"ppdc: Opción %s definida en dos diferentes grupos en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:1644
#, c-format
msgid "ppdc: Option %s redefined with a different type on line %d of %s."
msgstr "ppdc: Opción %s redefinida con un tipo diferente en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:705
#, c-format
msgid "ppdc: Option constraint must *name on line %d of %s."
msgstr "ppdc: Opción de restricción debe *name en línea %d de %s."
-#: ppdc/ppdc-source.cxx:2495
#, c-format
msgid "ppdc: Too many nested #if's on line %d of %s."
msgstr "ppdc: Demasiados #if anidados en la línea %d de %s."
-#: ppdc/ppdc.cxx:374
#, c-format
msgid "ppdc: Unable to create PPD file \"%s\" - %s."
msgstr "ppdc: No se ha podido crear el archivo PPD \"%s\" - %s."
-#: ppdc/ppdc.cxx:266
#, c-format
msgid "ppdc: Unable to create output directory %s: %s"
msgstr "ppdc: No se ha podido crear el directorio de salida %s: %s"
-#: ppdc/ppdc.cxx:287
#, c-format
msgid "ppdc: Unable to create output pipes: %s"
msgstr "ppdc: No se han podido crear canales (pipes) de salida: %s"
-#: ppdc/ppdc.cxx:303
-#: ppdc/ppdc.cxx:309
#, c-format
msgid "ppdc: Unable to execute cupstestppd: %s"
msgstr "ppdc: No se ha podido ejecutar cupstestppd: %s"
-#: ppdc/ppdc-source.cxx:1730
#, c-format
msgid "ppdc: Unable to find #po file %s on line %d of %s."
-msgstr "ppdc: No se ha podido encontrar el archivo #po %s en la línea %d de %s."
+msgstr ""
+"ppdc: No se ha podido encontrar el archivo #po %s en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:2651
#, c-format
msgid "ppdc: Unable to find include file \"%s\" on line %d of %s."
-msgstr "ppdc: No se ha podido encontrar el archivo include \"%s\" en la línea %d de %s."
+msgstr ""
+"ppdc: No se ha podido encontrar el archivo include \"%s\" en la línea %d de "
+"%s."
-#: ppdc/ppdc.cxx:198
#, c-format
msgid "ppdc: Unable to find localization for \"%s\" - %s"
msgstr "ppdc: No se ha podido encontrar localización para \"%s\" - %s"
-#: ppdc/ppdc.cxx:135
#, c-format
msgid "ppdc: Unable to load localization file \"%s\" - %s"
msgstr "ppdc: No se ha podido cargar el archivo de localización \"%s\" - %s"
-#: ppdc/ppdc-file.cxx:50
#, c-format
msgid "ppdc: Unable to open %s: %s"
msgstr "ppdc: No se pudo abrir %s: %s"
-#: ppdc/ppdc-source.cxx:2054
#, c-format
msgid "ppdc: Undefined variable (%s) on line %d of %s."
msgstr "ppdc: Variable no definida (%s) en la línea %d de %s."
-#: ppdc/ppdc-catalog.cxx:435
#, c-format
msgid "ppdc: Unexpected text on line %d of %s."
msgstr "ppdc: Texto inesperado en la línea %d del %s."
-#: ppdc/ppdc-source.cxx:2924
#, c-format
msgid "ppdc: Unknown driver type %s on line %d of %s."
msgstr "ppdc: Tipo de controlador desconocido %s en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:906
#, c-format
msgid "ppdc: Unknown duplex type \"%s\" on line %d of %s."
msgstr "ppdc: Tipo dúplex desconocido \"%s\" en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:3154
#, c-format
msgid "ppdc: Unknown media size \"%s\" on line %d of %s."
msgstr "ppdc: Tamaño de papel desconocido \"%s\" en la línea %d de %s."
-#: ppdc/ppdc-catalog.cxx:463
#, c-format
msgid "ppdc: Unknown message catalog format for \"%s\"."
msgstr "ppdc: Formato del catálogo de mensajes para \"%s\" desconocido."
-#: ppdc/ppdc-source.cxx:3408
#, c-format
msgid "ppdc: Unknown token \"%s\" seen on line %d of %s."
msgstr "ppdc: Elemento desconocido \"%s\" visto en la línea %d de %s."
-#: ppdc/ppdc-source.cxx:1014
#, c-format
-msgid "ppdc: Unknown trailing characters in real number \"%s\" on line %d of %s."
-msgstr "ppdc: Caracteres finales desconocidos en el número real \"%s\" en la línea %d de %s."
+msgid ""
+"ppdc: Unknown trailing characters in real number \"%s\" on line %d of %s."
+msgstr ""
+"ppdc: Caracteres finales desconocidos en el número real \"%s\" en la línea "
+"%d de %s."
-#: ppdc/ppdc-source.cxx:2164
#, c-format
msgid "ppdc: Unterminated string starting with %c on line %d of %s."
msgstr "ppdc: Cadena que comienza por %c sin terminar en la línea %d de %s."
-#: ppdc/ppdc.cxx:365
#, c-format
msgid "ppdc: Warning - overlapping filename \"%s\"."
msgstr "ppdc: Advertencia - nombre de archivo superpuesto \"%s\"."
-#: ppdc/ppdc.cxx:380
#, c-format
msgid "ppdc: Writing %s."
msgstr "ppdc: Escribiendo %s."
-#: ppdc/ppdc.cxx:148
#, c-format
msgid "ppdc: Writing PPD files to directory \"%s\"."
msgstr "ppdc: Escribiendo archivos PPD al directorio \"%s\"."
-#: ppdc/ppdmerge.cxx:136
#, c-format
msgid "ppdmerge: Bad LanguageVersion \"%s\" in %s."
msgstr "ppdmerge: LanguageVersion \"%s\" incorrecto en %s."
-#: ppdc/ppdmerge.cxx:176
#, c-format
msgid "ppdmerge: Ignoring PPD file %s."
msgstr "ppdmerge: Ignorando archivo PPD %s."
-#: ppdc/ppdmerge.cxx:160
#, c-format
msgid "ppdmerge: Unable to backup %s to %s - %s"
msgstr "ppdmerge: No se ha podido hacer copia de seguridad de %s a %s- %s"
-#: systemv/lpstat.c:1784
#, c-format
msgid "printer %s disabled since %s -"
msgstr "la impresora %s está deshabilitada desde %s -"
-#: systemv/lpstat.c:1773
#, c-format
msgid "printer %s is idle. enabled since %s"
msgstr "la impresora %s está inactiva. activada desde %s"
-#: systemv/lpstat.c:1778
#, c-format
msgid "printer %s now printing %s-%d. enabled since %s"
msgstr "la impresora %s está imprimiendo %s-%d. activada desde %s"
-#: systemv/lpstat.c:1909
#, c-format
msgid "printer %s/%s disabled since %s -"
msgstr "la impresora %s/%s está desactivada desde %s -"
-#: systemv/lpstat.c:1895
#, c-format
msgid "printer %s/%s is idle. enabled since %s"
msgstr "la impresora %s/%s está inactiva. activada desde %s"
-#: systemv/lpstat.c:1902
#, c-format
msgid "printer %s/%s now printing %s-%d. enabled since %s"
msgstr "la impresora %s/%s está imprimiendo %s-%d. activada desde %s"
-#: cups/notify.c:93
-#: cups/notify.c:134
msgid "processing"
msgstr "en proceso"
-#: systemv/lp.c:644
#, c-format
msgid "request id is %s-%d (%d file(s))"
msgstr "la id solicitada es %s-%d (%d archivo(s))"
-#: cups/snmp.c:1020
msgid "request-id uses indefinite length"
msgstr "request-id usa una longitud indefinida"
-#: systemv/lpstat.c:2048
msgid "scheduler is not running"
msgstr "el planificador de tareas no se está ejecutando"
-#: systemv/lpstat.c:2044
msgid "scheduler is running"
msgstr "el planificador de tareas se está ejecutando"
-#: cups/adminutil.c:2159
#, c-format
msgid "stat of %s failed: %s"
msgstr "estado de %s ha fallado: %s"
-#: berkeley/lpc.c:211
msgid "status\t\tShow status of daemon and queue."
msgstr "status\t\tMuestra el estado del demonio (daemon) y la cola."
-#: cups/notify.c:96
-#: cups/notify.c:137
msgid "stopped"
msgstr "parada"
-#: systemv/lpstat.c:1017
#, c-format
msgid "system default destination: %s"
msgstr "destino predeterminado del sistema: %s"
-#: systemv/lpstat.c:1014
#, c-format
msgid "system default destination: %s/%s"
msgstr "destino predeterminado del sistema: %s/%s"
-#: cups/notify.c:108
-#: cups/notify.c:140
msgid "unknown"
msgstr "desconocido"
-#: cups/notify.c:117
msgid "untitled"
msgstr "sin título"
-#: cups/snmp.c:1045
msgid "variable-bindings uses indefinite length"
msgstr "variable-bindings usa una longitud indefinida"
+#~ msgid "%s: Error - expected destination after \"-b\" option."
+#~ msgstr "%s: Error - se esperaba un destino tras la opción \"-b\"."
+
+#~ msgid "Print file accepted - job ID %d."
+#~ msgstr "Archivo de impresión aceptado: ID de trabajo %d."
+
+#~ msgid "Print file accepted - job ID unknown."
+#~ msgstr "Archivo de impresión aceptado: ID de trabajo desconocido."
+
+#~ msgid "Print file was not accepted."
+#~ msgstr "No se ha aceptado el archivo de impresión."
+
+#~ msgid "The printer URI is incorrect or no longer exists."
+#~ msgstr "El URI de la impresora es incorrecto o ya no existe."
+
+#~ msgid "The printer does not support IPP/%d.%d, trying IPP/%s."
+#~ msgstr "La impresora no es compatible con IPP/%d.%d, probando IPP/%s."
diff --git a/locale/cups_ja.po b/locale/cups_ja.po
index 4982be5f9..7a49ad5c8 100644
--- a/locale/cups_ja.po
+++ b/locale/cups_ja.po
@@ -12,7 +12,6 @@
# 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/".
#
-
#
# Notes for Translators:
#
@@ -29,7 +28,7 @@ msgid ""
msgstr ""
"Project-Id-Version: CUPS 1.6\n"
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2012-05-23 16:24-0700\n"
+"POT-Creation-Date: 2012-10-22 11:09-0400\n"
"PO-Revision-Date: 2012-06-13 01:20+0900\n"
"Last-Translator: OPFC TRANSCUPS <opfc-transcups@sourceforge.jp>\n"
"Language-Team: OPFC TRANSCUPS <opfc-transcups@sourceforge.jp>\n"
@@ -38,293 +37,225 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: systemv/lpstat.c:1876 systemv/lpstat.c:2001
msgid "\t\t(all)"
msgstr "\t\t(すべて)"
-#: systemv/lpstat.c:1879 systemv/lpstat.c:1882 systemv/lpstat.c:2004
-#: systemv/lpstat.c:2007
msgid "\t\t(none)"
msgstr "\t\t(なし)"
-#: berkeley/lpc.c:434
#, c-format
msgid "\t%d entries"
msgstr "\t%d エントリー"
-#: systemv/lpstat.c:756 systemv/lpstat.c:772
#, c-format
msgid "\t%s"
msgstr "\t%s"
-#: systemv/lpstat.c:1857 systemv/lpstat.c:1982
msgid "\tAfter fault: continue"
msgstr "\t失敗後: 継続"
-#: systemv/lpstat.c:1481 systemv/lpstat.c:1826 systemv/lpstat.c:1952
#, c-format
msgid "\tAlerts: %s"
msgstr "\t警告: %s"
-#: systemv/lpstat.c:1880 systemv/lpstat.c:2005
msgid "\tBanner required"
msgstr "\tバナーが必要"
-#: systemv/lpstat.c:1881 systemv/lpstat.c:2006
msgid "\tCharset sets:"
msgstr "\t文字セット:"
-#: systemv/lpstat.c:1845 systemv/lpstat.c:1970
msgid "\tConnection: direct"
msgstr "\t接続: 直結"
-#: systemv/lpstat.c:1836 systemv/lpstat.c:1962
msgid "\tConnection: remote"
msgstr "\t接続: リモート"
-#: systemv/lpstat.c:1800 systemv/lpstat.c:1926
msgid "\tContent types: any"
msgstr "\tコンテンツの種類: すべて"
-#: systemv/lpstat.c:1884 systemv/lpstat.c:2009
msgid "\tDefault page size:"
msgstr "\tデフォルト用紙サイズ:"
-#: systemv/lpstat.c:1883 systemv/lpstat.c:2008
msgid "\tDefault pitch:"
msgstr "\tデフォルトピッチ:"
-#: systemv/lpstat.c:1885 systemv/lpstat.c:2010
msgid "\tDefault port settings:"
msgstr "\tデフォルトポート設定:"
-#: systemv/lpstat.c:1806 systemv/lpstat.c:1932
#, c-format
msgid "\tDescription: %s"
msgstr "\t説明: %s"
-#: systemv/lpstat.c:1799 systemv/lpstat.c:1925
msgid "\tForm mounted:"
msgstr "\t設定されたフォーム:"
-#: systemv/lpstat.c:1878 systemv/lpstat.c:2003
msgid "\tForms allowed:"
msgstr "\t許可されているフォーム:"
-#: systemv/lpstat.c:1840 systemv/lpstat.c:1966
#, c-format
msgid "\tInterface: %s.ppd"
msgstr "\tインターフェイス: %s.ppd"
-#: systemv/lpstat.c:1849 systemv/lpstat.c:1974
#, c-format
msgid "\tInterface: %s/interfaces/%s"
msgstr "\tインターフェイス: %s/interfaces/%s"
-#: systemv/lpstat.c:1853 systemv/lpstat.c:1978
#, c-format
msgid "\tInterface: %s/ppd/%s.ppd"
msgstr "\tインターフェイス: %s/ppd/%s.ppd"
-#: systemv/lpstat.c:1831 systemv/lpstat.c:1957
#, c-format
msgid "\tLocation: %s"
msgstr "\t場所: %s"
-#: systemv/lpstat.c:1856 systemv/lpstat.c:1981
msgid "\tOn fault: no alert"
msgstr "\t失敗時: 警告なし"
-#: systemv/lpstat.c:1801 systemv/lpstat.c:1927
msgid "\tPrinter types: unknown"
msgstr "\tプリンターの種類: 不明"
-#: systemv/lpstat.c:1462
#, c-format
msgid "\tStatus: %s"
msgstr "\tステータス: %s"
-#: systemv/lpstat.c:1861 systemv/lpstat.c:1875 systemv/lpstat.c:1986
-#: systemv/lpstat.c:2000
msgid "\tUsers allowed:"
msgstr "\t許可されているユーザー:"
-#: systemv/lpstat.c:1868 systemv/lpstat.c:1993
msgid "\tUsers denied:"
msgstr "\t禁止されているユーザー:"
-#: berkeley/lpc.c:436
msgid "\tdaemon present"
msgstr "\tデーモンは提供されています"
-#: berkeley/lpc.c:432
msgid "\tno entries"
msgstr "\tエントリーがありません"
-#: berkeley/lpc.c:404 berkeley/lpc.c:416
#, c-format
msgid "\tprinter is on device '%s' speed -1"
msgstr "\tデバイス '%s' 上のプリンター 速度 -1"
-#: berkeley/lpc.c:429
msgid "\tprinting is disabled"
msgstr "\t印刷は無効です"
-#: berkeley/lpc.c:427
msgid "\tprinting is enabled"
msgstr "\t印刷は有効です"
-#: systemv/lpstat.c:1484
#, c-format
msgid "\tqueued for %s"
msgstr "\t%s にキューしました"
-#: berkeley/lpc.c:424
msgid "\tqueuing is disabled"
msgstr "\tキューは無効です"
-#: berkeley/lpc.c:422
msgid "\tqueuing is enabled"
msgstr "\tキューは有効です"
-#: systemv/lpstat.c:1792 systemv/lpstat.c:1918
msgid "\treason unknown"
msgstr "\t未知の理由"
-#: systemv/cupstestppd.c:454
msgid ""
"\n"
" DETAILED CONFORMANCE TEST RESULTS"
-msgstr "\n 適合テスト結果詳細"
+msgstr ""
+"\n"
+" 適合テスト結果詳細"
-#: systemv/cupstestppd.c:3800
msgid " Ignore specific warnings."
msgstr " 指定された警告を無視する。"
-#: systemv/cupstestppd.c:3804
msgid " Issue warnings instead of errors."
msgstr " エラーを警告として扱う。"
-#: systemv/cupstestppd.c:410 systemv/cupstestppd.c:415
msgid " REF: Page 15, section 3.1."
msgstr " 参照: 15 ページ、セクション 3.1。"
-#: systemv/cupstestppd.c:405
msgid " REF: Page 15, section 3.2."
msgstr " 参照: 15 ページ、セクション 3.2。"
-#: systemv/cupstestppd.c:425
msgid " REF: Page 19, section 3.3."
msgstr " 参照: 19 ページ、セクション 3.3。"
-#: systemv/cupstestppd.c:378
msgid " REF: Page 20, section 3.4."
msgstr " 参照: 20 ページ、セクション 3.4。"
-#: systemv/cupstestppd.c:430
msgid " REF: Page 27, section 3.5."
msgstr " 参照: 27 ページ、セクション 3.5。"
-#: systemv/cupstestppd.c:373
msgid " REF: Page 42, section 5.2."
msgstr " 参照: 42 ページ、セクション 5.2。"
-#: systemv/cupstestppd.c:420
msgid " REF: Pages 16-17, section 3.2."
msgstr " 参照: 16-17 ページ、セクション 3.2。"
-#: systemv/cupstestppd.c:390
msgid " REF: Pages 42-45, section 5.2."
msgstr " 参照: 42-45 ページ、セクション 5.2。"
-#: systemv/cupstestppd.c:384
msgid " REF: Pages 45-46, section 5.2."
msgstr " 参照: 45-46 ページ、セクション 5.2。"
-#: systemv/cupstestppd.c:395
msgid " REF: Pages 48-49, section 5.2."
msgstr " 参照: 48-49 ページ、セクション 5.2。"
-#: systemv/cupstestppd.c:400
msgid " REF: Pages 52-54, section 5.2."
msgstr " 参照: 52-54 ページ、セクション 5.2。"
-#: berkeley/lpq.c:554
#, c-format
msgid " %-39.39s %.0f bytes"
msgstr " %-39.39s %.0f バイト"
-#: systemv/cupstestppd.c:589
#, c-format
msgid " PASS Default%s"
msgstr " 合格 Default%s"
-#: systemv/cupstestppd.c:524
msgid " PASS DefaultImageableArea"
msgstr " 合格 DefaultImageableArea"
-#: systemv/cupstestppd.c:558
msgid " PASS DefaultPaperDimension"
msgstr " 合格 DefaultPaperDimension"
-#: systemv/cupstestppd.c:631
msgid " PASS FileVersion"
msgstr " 合格 FileVersion"
-#: systemv/cupstestppd.c:675
msgid " PASS FormatVersion"
msgstr " 合格 FormatVersion"
-#: systemv/cupstestppd.c:695
msgid " PASS LanguageEncoding"
msgstr " 合格 LanguageEncoding"
-#: systemv/cupstestppd.c:715
msgid " PASS LanguageVersion"
msgstr " 合格 LanguageVersion"
-#: systemv/cupstestppd.c:769
msgid " PASS Manufacturer"
msgstr " 合格 Manufacturer"
-#: systemv/cupstestppd.c:809
msgid " PASS ModelName"
msgstr " 合格 ModelName"
-#: systemv/cupstestppd.c:829
msgid " PASS NickName"
msgstr " 合格 NickName"
-#: systemv/cupstestppd.c:889
msgid " PASS PCFileName"
msgstr " 合格 PCFileName"
-#: systemv/cupstestppd.c:964
msgid " PASS PSVersion"
msgstr " 合格 PSVersion"
-#: systemv/cupstestppd.c:869
msgid " PASS PageRegion"
msgstr " 合格 PageRegion"
-#: systemv/cupstestppd.c:849
msgid " PASS PageSize"
msgstr " 合格 PageSize"
-#: systemv/cupstestppd.c:924
msgid " PASS Product"
msgstr " 合格 Product"
-#: systemv/cupstestppd.c:999
msgid " PASS ShortNickName"
msgstr " 合格 ShortNickName"
-#: systemv/cupstestppd.c:1374
#, c-format
msgid " WARN %s has no corresponding options."
msgstr " 警告 %s は相当するオプションがありません。"
-#: systemv/cupstestppd.c:1486
#, c-format
msgid ""
" WARN %s shares a common prefix with %s\n"
@@ -333,21 +264,20 @@ msgstr ""
" 警告 %s は %s と一般プレフィックスを共有します。\n"
" 参照: 15 ページ、セクション 3.2。"
-#: systemv/cupstestppd.c:1345
#, c-format
msgid ""
" WARN Duplex option keyword %s may not work as expected and should "
"be named Duplex.\n"
" REF: Page 122, section 5.17"
msgstr ""
-" 警告 Duplex オプションキーワード %s は期待通りに動作しないかもしれません。また、Duplex という名前であるべきです。"
-" 参照: 122 ページ、セクション 5.17"
+" 警告 Duplex オプションキーワード %s は期待通りに動作しないかもしれ"
+"ません。また、Duplex という名前であるべきです。 参照: 122 ペー"
+"ジ、セクション 5.17"
-#: systemv/cupstestppd.c:1744
msgid " WARN File contains a mix of CR, LF, and CR LF line endings."
-msgstr " 警告 ファイルが CR、LF、CR LF の行末を混在して含んでいます。"
+msgstr ""
+" 警告 ファイルが CR、LF、CR LF の行末を混在して含んでいます。"
-#: systemv/cupstestppd.c:1390
msgid ""
" WARN LanguageEncoding required by PPD 4.3 spec.\n"
" REF: Pages 56-57, section 5.3."
@@ -355,12 +285,10 @@ msgstr ""
" 警告 LanguageEncoding は PPD 4.3 仕様で必須です。\n"
" 参照: 56-57 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:1726
#, c-format
msgid " WARN Line %d only contains whitespace."
msgstr " 警告 %d 行が空白だけです。"
-#: systemv/cupstestppd.c:1398
msgid ""
" WARN Manufacturer required by PPD 4.3 spec.\n"
" REF: Pages 58-59, section 5.3."
@@ -368,13 +296,13 @@ msgstr ""
" 警告 Manufacturer は PPD 4.3 仕様で必須です。\n"
" 参照: 58-59 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:1749
msgid ""
" WARN Non-Windows PPD files should use lines ending with only LF, "
"not CR LF."
-msgstr " 警告 非 Windows PPD ファイルは、CR LF でなく LF のみを行末に使うべきです。"
+msgstr ""
+" 警告 非 Windows PPD ファイルは、CR LF でなく LF のみを行末に使うべ"
+"きです。"
-#: systemv/cupstestppd.c:1382
#, c-format
msgid ""
" WARN Obsolete PPD version %.1f.\n"
@@ -383,7 +311,6 @@ msgstr ""
" 警告 PPD バージョン %.1f は現在使われていません。\n"
" 参照: 42 ページ、セクション 5.2。"
-#: systemv/cupstestppd.c:1413
msgid ""
" WARN PCFileName longer than 8.3 in violation of PPD spec.\n"
" REF: Pages 61-62, section 5.3."
@@ -391,7 +318,6 @@ msgstr ""
" 警告 8.3 文字より長い PCFileName は PPD 仕様違反です。\n"
" 参照: 61-62 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:1421
msgid ""
" WARN PCFileName should contain a unique filename.\n"
" REF: Pages 61-62, section 5.3."
@@ -399,23 +325,22 @@ msgstr ""
" 警告 PCFileName はユニークなファイル名でなければなりません。\n"
" 参照: 61-62 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:1456
msgid ""
" WARN Protocols contains PJL but JCL attributes are not set.\n"
" REF: Pages 78-79, section 5.7."
msgstr ""
-" 警告 プロトコルが PJL を含んでいますが JCL 属性が設定されていません。\n"
+" 警告 プロトコルが PJL を含んでいますが JCL 属性が設定されていませ"
+"ん。\n"
" 参照: 78-79 ページ、セクション 5.7。"
-#: systemv/cupstestppd.c:1447
msgid ""
" WARN Protocols contains both PJL and BCP; expected TBCP.\n"
" REF: Pages 78-79, section 5.7."
msgstr ""
-" 警告 プロトコルが PJL と BCP の両方を含んでいます; TBCP を想定します。\n"
+" 警告 プロトコルが PJL と BCP の両方を含んでいます; TBCP を想定しま"
+"す。\n"
" 参照: 78-79 ページ、セクション 5.7。"
-#: systemv/cupstestppd.c:1430
msgid ""
" WARN ShortNickName required by PPD 4.3 spec.\n"
" REF: Pages 64-65, section 5.3."
@@ -423,19 +348,15 @@ msgstr ""
" 警告 ShortNickName は PPD 4.3 仕様で必須です。\n"
" 参照: 64-65 ページ、セクション 5.3。"
-#: systemv/cupsaddsmb.c:282
msgid " cupsaddsmb [options] -a"
msgstr " cupsaddsmb [オプション] -a"
-#: systemv/cupstestdsc.c:427
msgid " cupstestdsc [options] -"
msgstr " cupstestdsc [オプション] -"
-#: systemv/cupstestppd.c:3795
msgid " program | cupstestppd [options] -"
msgstr " program | cupstestppd [オプション] -"
-#: systemv/cupstestppd.c:3727
#, c-format
msgid ""
" %s \"%s %s\" conflicts with \"%s %s\"\n"
@@ -444,17 +365,15 @@ msgstr ""
" %s \"%s %s\" は \"%s %s\" と競合します\n"
" (禁則=\"%s %s %s %s\")。"
-#: systemv/cupstestppd.c:2248
#, c-format
msgid " %s %s %s does not exist."
msgstr " %s %s %s が存在しません。"
-#: systemv/cupstestppd.c:3884
#, c-format
msgid " %s %s file \"%s\" has the wrong capitalization."
-msgstr " %s %s ファイル \"%s\" は不正な大文字で始まるワードを含んでいます。"
+msgstr ""
+" %s %s ファイル \"%s\" は不正な大文字で始まるワードを含んでいます。"
-#: systemv/cupstestppd.c:2318
#, c-format
msgid ""
" %s Bad %s choice %s.\n"
@@ -463,99 +382,72 @@ msgstr ""
" %s 不正な %s が %s を選んでいます。\n"
" 参照: 122 ページ、セクション 5.17"
-#: systemv/cupstestppd.c:3487 systemv/cupstestppd.c:3536
-#: systemv/cupstestppd.c:3575
#, c-format
msgid " %s Bad UTF-8 \"%s\" translation string for option %s, choice %s."
-msgstr " %s 不正な UTF-8 \"%s\" 翻訳文字列 (オプション %s 、選択 %s) です。"
+msgstr ""
+" %s 不正な UTF-8 \"%s\" 翻訳文字列 (オプション %s 、選択 %s) です。"
-#: systemv/cupstestppd.c:3441
#, c-format
msgid " %s Bad UTF-8 \"%s\" translation string for option %s."
msgstr " %s 不正な UTF-8 \"%s\" 翻訳文字列 (オプション %s 用) です。"
-#: systemv/cupstestppd.c:2389
#, c-format
msgid " %s Bad cupsFilter value \"%s\"."
msgstr " %s 不正な値が cupsFilter に設定されています。 \"%s\""
-#: systemv/cupstestppd.c:2475
#, c-format
msgid " %s Bad cupsFilter2 value \"%s\"."
msgstr " %s 不正な値が cupsFilter2 に設定されています。 \"%s\""
-#: systemv/cupstestppd.c:2964
#, c-format
msgid " %s Bad cupsICCProfile %s."
msgstr " %s 不正な cupsICCProfile %sです。"
-#: systemv/cupstestppd.c:2571
#, c-format
msgid " %s Bad cupsPreFilter value \"%s\"."
msgstr " %s 不正な値が cupsPreFilter に設定されています。 \"%s\""
-#: systemv/cupstestppd.c:1822
#, c-format
msgid " %s Bad cupsUIConstraints %s: \"%s\""
msgstr " %s 不正な cupsUIConstraints %s: \"%s\"です。"
-#: systemv/cupstestppd.c:3391
#, c-format
msgid " %s Bad language \"%s\"."
msgstr " %s 無効な言語 \"%s\"です。"
-#: systemv/cupstestppd.c:2433 systemv/cupstestppd.c:2529
-#: systemv/cupstestppd.c:2615 systemv/cupstestppd.c:2673
-#: systemv/cupstestppd.c:2728 systemv/cupstestppd.c:2783
-#: systemv/cupstestppd.c:2838 systemv/cupstestppd.c:2891
-#: systemv/cupstestppd.c:3013
#, c-format
msgid " %s Bad permissions on %s file \"%s\"."
msgstr " %s 不正なパーミッション %s です (ファイル \"%s\")。"
-#: systemv/cupstestppd.c:2373 systemv/cupstestppd.c:2459
-#: systemv/cupstestppd.c:2555 systemv/cupstestppd.c:2642
-#: systemv/cupstestppd.c:2697 systemv/cupstestppd.c:2752
-#: systemv/cupstestppd.c:2807 systemv/cupstestppd.c:2862
#, c-format
msgid " %s Bad spelling of %s - should be %s."
msgstr " %s %s の不正な綴りです - %s であるべきです。"
-#: systemv/cupstestppd.c:2907
#, c-format
msgid " %s Cannot provide both APScanAppPath and APScanAppBundleID."
msgstr " %s APScanAppPath と APScanAppBundleID は同時に指定できません。"
-#: systemv/cupstestppd.c:2205
#, c-format
msgid " %s Default choices conflicting."
msgstr " %s デフォルトの選択肢が競合しています。"
-#: systemv/cupstestppd.c:1803
#, c-format
msgid " %s Empty cupsUIConstraints %s"
msgstr " %s 空の cupsUIConstraints %sです。"
-#: systemv/cupstestppd.c:3519 systemv/cupstestppd.c:3559
#, c-format
msgid " %s Missing \"%s\" translation string for option %s, choice %s."
-msgstr " %s \"%s\" 翻訳文字列 (オプション %s 、選択 %s) が見つかりません。"
+msgstr ""
+" %s \"%s\" 翻訳文字列 (オプション %s 、選択 %s) が見つかりません。"
-#: systemv/cupstestppd.c:3427
#, c-format
msgid " %s Missing \"%s\" translation string for option %s."
msgstr " %s \"%s\" 翻訳文字列 (オプション %s 用) が見つかりません。"
-#: systemv/cupstestppd.c:2418 systemv/cupstestppd.c:2514
-#: systemv/cupstestppd.c:2600 systemv/cupstestppd.c:2658
-#: systemv/cupstestppd.c:2713 systemv/cupstestppd.c:2768
-#: systemv/cupstestppd.c:2823 systemv/cupstestppd.c:2875
-#: systemv/cupstestppd.c:2998
#, c-format
msgid " %s Missing %s file \"%s\"."
msgstr " %s %s が見つかりません (ファイル \"%s\")。"
-#: systemv/cupstestppd.c:3121
#, c-format
msgid ""
" %s Missing REQUIRED PageRegion option.\n"
@@ -564,7 +456,6 @@ msgstr ""
" %s 必須の PageRegion オプションが見つかりません。\n"
" 参照: 100 ページ、セクション 5.14。"
-#: systemv/cupstestppd.c:3106
#, c-format
msgid ""
" %s Missing REQUIRED PageSize option.\n"
@@ -573,37 +464,35 @@ msgstr ""
" %s 必須の PageSize オプションが見つかりません。\n"
" 参照: 99 ページ、セクション 5.14。"
-#: systemv/cupstestppd.c:2013 systemv/cupstestppd.c:2054
#, c-format
msgid " %s Missing choice *%s %s in UIConstraints \"*%s %s *%s %s\"."
-msgstr " %s  選択 *%s %s が UIConstraints \"*%s %s *%s %s\" 内に見つかりません。"
+msgstr ""
+" %s  選択 *%s %s が UIConstraints \"*%s %s *%s %s\" 内に見つかりませ"
+"ん。"
-#: systemv/cupstestppd.c:1908
#, c-format
msgid " %s Missing choice *%s %s in cupsUIConstraints %s: \"%s\""
-msgstr " %s 選択 *%s %s が cupsUIConstraints %s: \"%s\" 内に見つかりません。"
+msgstr ""
+" %s 選択 *%s %s が cupsUIConstraints %s: \"%s\" 内に見つかりません。"
-#: systemv/cupstestppd.c:1840
#, c-format
msgid " %s Missing cupsUIResolver %s"
msgstr " %s cupsUIResolver ファイル %s が見つかりません。"
-#: systemv/cupstestppd.c:1999 systemv/cupstestppd.c:2040
#, c-format
msgid " %s Missing option %s in UIConstraints \"*%s %s *%s %s\"."
-msgstr " %s オプション %s がUIConstraints \"*%s %s *%s %s\" に見つかりません。"
+msgstr ""
+" %s オプション %s がUIConstraints \"*%s %s *%s %s\" に見つかりません。"
-#: systemv/cupstestppd.c:1892
#, c-format
msgid " %s Missing option %s in cupsUIConstraints %s: \"%s\""
-msgstr " %s オプション %s がcupsUIConstraints %s に見つかりません: \"%s\""
+msgstr ""
+" %s オプション %s がcupsUIConstraints %s に見つかりません: \"%s\""
-#: systemv/cupstestppd.c:3613
#, c-format
msgid " %s No base translation \"%s\" is included in file."
msgstr " %s ファイルにベース翻訳文字列 \"%s\" がありません。"
-#: systemv/cupstestppd.c:2294
#, c-format
msgid ""
" %s REQUIRED %s does not define choice None.\n"
@@ -612,43 +501,38 @@ msgstr ""
" %s 必須の %s が選択肢 None を定義していません。\n"
" 参照: 122 ページ、セクション 5.17。"
-#: systemv/cupstestppd.c:3180 systemv/cupstestppd.c:3194
#, c-format
msgid " %s Size \"%s\" defined for %s but not for %s."
-msgstr " %s サイズ \"%s\" は %s 向けに定義されていますが、%s にはありません。"
+msgstr ""
+" %s サイズ \"%s\" は %s 向けに定義されていますが、%s にはありません。"
-#: systemv/cupstestppd.c:3160
#, c-format
msgid " %s Size \"%s\" has unexpected dimensions (%gx%g)."
msgstr " %s サイズ \"%s\" は規定外の寸法 (%gx%g) を持っています。"
-#: systemv/cupstestppd.c:3332
#, c-format
msgid " %s Size \"%s\" should be \"%s\"."
msgstr " %s サイズ \"%s\" は \"%s\" であるべきです。"
-#: systemv/cupstestppd.c:3292
#, c-format
msgid " %s Size \"%s\" should be the Adobe standard name \"%s\"."
msgstr " %s サイズ \"%s\" は Adobe 標準名称 \"%s\" であるべきです。"
-#: systemv/cupstestppd.c:3041
#, c-format
msgid " %s cupsICCProfile %s hash value collides with %s."
msgstr " %s cupsICCProfileのハッシュ値 %s が %s と一致しません。"
-#: systemv/cupstestppd.c:1963
#, c-format
msgid " %s cupsUIResolver %s causes a loop."
msgstr " %s cupsUIResolverの %s がループしています。"
-#: systemv/cupstestppd.c:1945
#, c-format
msgid ""
" %s cupsUIResolver %s does not list at least two different options."
-msgstr " %s cupsUIResolver %s は最低でも 2 つの異なったオプションを持っていなければなりません。"
+msgstr ""
+" %s cupsUIResolver %s は最低でも 2 つの異なったオプションを持っていなけ"
+"ればなりません。"
-#: systemv/cupstestppd.c:1168
#, c-format
msgid ""
" **FAIL** %s must be 1284DeviceID\n"
@@ -657,7 +541,6 @@ msgstr ""
" **失敗** %s は 1284DeviceID でなければなりません。\n"
" 参照: 72 ページ、セクション 5.5"
-#: systemv/cupstestppd.c:580
#, c-format
msgid ""
" **FAIL** Bad Default%s %s\n"
@@ -666,7 +549,6 @@ msgstr ""
" **失敗** 不正な Default%s %s\n"
" 参照: 40 ページ、セクション 4.5。"
-#: systemv/cupstestppd.c:514
#, c-format
msgid ""
" **FAIL** Bad DefaultImageableArea %s\n"
@@ -675,7 +557,6 @@ msgstr ""
" **失敗** %s は不正な DefaultImageableArea です。\n"
" 参照: 102 ページ、セクション 5.15。"
-#: systemv/cupstestppd.c:550
#, c-format
msgid ""
" **FAIL** Bad DefaultPaperDimension %s\n"
@@ -684,7 +565,6 @@ msgstr ""
" **失敗** %s は不正な DefaultPaperDimension です。\n"
" 参照: 103 ページ、セクション 5.15。"
-#: systemv/cupstestppd.c:623
#, c-format
msgid ""
" **FAIL** Bad FileVersion \"%s\"\n"
@@ -693,7 +573,6 @@ msgstr ""
" **失敗** 不正なFileVersion \"%s\"\n"
" 参照: 56 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:667
#, c-format
msgid ""
" **FAIL** Bad FormatVersion \"%s\"\n"
@@ -702,7 +581,6 @@ msgstr ""
" **失敗** FormatVersion が違います \"%s\"\n"
" 参照: 56 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:1025
msgid ""
" **FAIL** Bad JobPatchFile attribute in file\n"
" REF: Page 24, section 3.4."
@@ -710,17 +588,16 @@ msgstr ""
" **失敗** ファイルに不正な JobPatchFile 属性があります\n"
" 参照: 24 ページ、セクション 3.4。"
-#: systemv/cupstestppd.c:1213
#, c-format
msgid " **FAIL** Bad LanguageEncoding %s - must be ISOLatin1."
-msgstr " **失敗** 無効な LanguageEncoding %s - ISOLatin1 でなければなりません。"
+msgstr ""
+" **失敗** 無効な LanguageEncoding %s - ISOLatin1 でなければなりません。"
-#: systemv/cupstestppd.c:1227
#, c-format
msgid " **FAIL** Bad LanguageVersion %s - must be English."
-msgstr " **失敗** 無効な LanguageVersion %s - English でなければなりません。"
+msgstr ""
+" **失敗** 無効な LanguageVersion %s - English でなければなりません。"
-#: systemv/cupstestppd.c:743 systemv/cupstestppd.c:760
#, c-format
msgid ""
" **FAIL** Bad Manufacturer (should be \"%s\")\n"
@@ -729,7 +606,6 @@ msgstr ""
" **失敗** 不正な Manufacturer (\"%s\" でなければなりません)\n"
" 参照: 211 ページ、表 D.1。"
-#: systemv/cupstestppd.c:800
#, c-format
msgid ""
" **FAIL** Bad ModelName - \"%c\" not allowed in string.\n"
@@ -738,7 +614,6 @@ msgstr ""
" **失敗** 不正な ModelName - 文字列に \"%c\" は許可されていません。\n"
" 参照: 59-60 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:956
msgid ""
" **FAIL** Bad PSVersion - not \"(string) int\".\n"
" REF: Pages 62-64, section 5.3."
@@ -746,7 +621,6 @@ msgstr ""
" **失敗** 不正な PSVersion - \"(文字列) 整数\" ではありません。\n"
" 参照: 62-64 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:917
msgid ""
" **FAIL** Bad Product - not \"(string)\".\n"
" REF: Page 62, section 5.3."
@@ -754,7 +628,6 @@ msgstr ""
" **失敗** 不正な Product - \"(文字列)\" ではありません。\n"
" 参照: 62 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:991
msgid ""
" **FAIL** Bad ShortNickName - longer than 31 chars.\n"
" REF: Pages 64-65, section 5.3."
@@ -762,7 +635,6 @@ msgstr ""
" **失敗** 不正な ShortNickName - 31 文字を超えています。\n"
" 参照: 64-65 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:1149
#, c-format
msgid ""
" **FAIL** Bad option %s choice %s\n"
@@ -771,46 +643,43 @@ msgstr ""
" **失敗** 不正な %s が %s を選んでいます。\n"
" 参照: 84 ページ、セクション 5.9"
-#: systemv/cupstestppd.c:3754 systemv/cupstestppd.c:3776
#, c-format
msgid " **FAIL** Default option code cannot be interpreted: %s"
msgstr " **失敗** デフォルトのオプションコードが解釈できません: %s"
-#: systemv/cupstestppd.c:1286
#, c-format
msgid ""
" **FAIL** Default translation string for option %s choice %s contains "
"8-bit characters."
-msgstr " **失敗** オプション %s、選択肢 %s のデフォルトの翻訳文字列が 8 ビット文字を含んでいます。"
+msgstr ""
+" **失敗** オプション %s、選択肢 %s のデフォルトの翻訳文字列が 8 ビット"
+"文字を含んでいます。"
-#: systemv/cupstestppd.c:1259
#, c-format
msgid ""
" **FAIL** Default translation string for option %s contains 8-bit "
"characters."
-msgstr " **失敗** オプション %s のデフォルトの翻訳文字列が 8 ビット文字を含んでいます。"
+msgstr ""
+" **失敗** オプション %s のデフォルトの翻訳文字列が 8 ビット文字を含んで"
+"います。"
-#: systemv/cupstestppd.c:2101
#, c-format
msgid " **FAIL** Group names %s and %s differ only by case."
msgstr " **失敗** グループ名 %s と %s は大文字/小文字が違うだけです。"
-#: systemv/cupstestppd.c:2146
#, c-format
msgid " **FAIL** Multiple occurrences of option %s choice name %s."
msgstr " **失敗** %s で複数のオプション %s が選択されています。"
-#: systemv/cupstestppd.c:2163
#, c-format
msgid " **FAIL** Option %s choice names %s and %s differ only by case."
-msgstr " **失敗** %s が選択した %s と %s は大文字/小文字のみが違うだけです。"
+msgstr ""
+" **失敗** %s が選択した %s と %s は大文字/小文字のみが違うだけです。"
-#: systemv/cupstestppd.c:2123
#, c-format
msgid " **FAIL** Option names %s and %s differ only by case."
msgstr " **失敗** オプション名 %s と %s は大文字/小文字が違うだけです。"
-#: systemv/cupstestppd.c:600
#, c-format
msgid ""
" **FAIL** REQUIRED Default%s\n"
@@ -819,7 +688,6 @@ msgstr ""
" **失敗** Default%s は必須\n"
" 参照: 40 ページ、セクション 4.5。"
-#: systemv/cupstestppd.c:499
msgid ""
" **FAIL** REQUIRED DefaultImageableArea\n"
" REF: Page 102, section 5.15."
@@ -827,7 +695,6 @@ msgstr ""
" **失敗** DefaultImageableArea は必須\n"
" 参照: 102 ページ、セクション 5.15。"
-#: systemv/cupstestppd.c:535
msgid ""
" **FAIL** REQUIRED DefaultPaperDimension\n"
" REF: Page 103, section 5.15."
@@ -835,7 +702,6 @@ msgstr ""
" **失敗** DefaultPaperDimension は必須\n"
" 参照: 103 ページ、セクション 5.15。"
-#: systemv/cupstestppd.c:641
msgid ""
" **FAIL** REQUIRED FileVersion\n"
" REF: Page 56, section 5.3."
@@ -843,7 +709,6 @@ msgstr ""
" **失敗** FileVersion は必須\n"
" 参照: 56 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:685
msgid ""
" **FAIL** REQUIRED FormatVersion\n"
" REF: Page 56, section 5.3."
@@ -851,7 +716,6 @@ msgstr ""
" **失敗** FormatVersion は必須\n"
" 参照: 56 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:1076
#, c-format
msgid ""
" **FAIL** REQUIRED ImageableArea for PageSize %s\n"
@@ -862,7 +726,6 @@ msgstr ""
" 参照: 41 ページ、セクション 5。\n"
" 参照: 102 ページ、セクション 5.15。"
-#: systemv/cupstestppd.c:705
msgid ""
" **FAIL** REQUIRED LanguageEncoding\n"
" REF: Pages 56-57, section 5.3."
@@ -870,7 +733,6 @@ msgstr ""
" **失敗** LanguageEncoding は必須\n"
" 参照: 56-57 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:725
msgid ""
" **FAIL** REQUIRED LanguageVersion\n"
" REF: Pages 57-58, section 5.3."
@@ -878,7 +740,6 @@ msgstr ""
" **失敗** LanguageVersion は必須\n"
" 参照: 57-58 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:779
msgid ""
" **FAIL** REQUIRED Manufacturer\n"
" REF: Pages 58-59, section 5.3."
@@ -886,7 +747,6 @@ msgstr ""
" **失敗** Manufacturer は必須\n"
" 参照: 58-59 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:819
msgid ""
" **FAIL** REQUIRED ModelName\n"
" REF: Pages 59-60, section 5.3."
@@ -894,7 +754,6 @@ msgstr ""
" **失敗** ModelName は必須\n"
" 参照: 59-60 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:839
msgid ""
" **FAIL** REQUIRED NickName\n"
" REF: Page 60, section 5.3."
@@ -902,7 +761,6 @@ msgstr ""
" **失敗** NickName は必須\n"
" 参照: 60 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:899
msgid ""
" **FAIL** REQUIRED PCFileName\n"
" REF: Pages 61-62, section 5.3."
@@ -910,7 +768,6 @@ msgstr ""
" **失敗** PCFileName は必須\n"
" 参照: 61-62 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:974
msgid ""
" **FAIL** REQUIRED PSVersion\n"
" REF: Pages 62-64, section 5.3."
@@ -918,7 +775,6 @@ msgstr ""
" **失敗** PSVersion は必須\n"
" 参照: 62-64 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:879
msgid ""
" **FAIL** REQUIRED PageRegion\n"
" REF: Page 100, section 5.14."
@@ -926,7 +782,6 @@ msgstr ""
" **失敗** PageRegion は必須\n"
" 参照: 100 ページ、セクション 5.14。"
-#: systemv/cupstestppd.c:1045
msgid ""
" **FAIL** REQUIRED PageSize\n"
" REF: Page 41, section 5.\n"
@@ -936,7 +791,6 @@ msgstr ""
" 参照: 41 ページ、セクション 5。\n"
" 参照: 99 ページ、セクション 5.14。"
-#: systemv/cupstestppd.c:859
msgid ""
" **FAIL** REQUIRED PageSize\n"
" REF: Pages 99-100, section 5.14."
@@ -944,7 +798,6 @@ msgstr ""
" **失敗** PageSize は必須\n"
" 参照: 99-100 ページ、セクション 5.14。"
-#: systemv/cupstestppd.c:1098
#, c-format
msgid ""
" **FAIL** REQUIRED PaperDimension for PageSize %s\n"
@@ -955,7 +808,6 @@ msgstr ""
" 参照: 41 ページ、セクション 5。\n"
" 参照: 103 ページ、セクション 5.15。"
-#: systemv/cupstestppd.c:934
msgid ""
" **FAIL** REQUIRED Product\n"
" REF: Page 62, section 5.3."
@@ -963,7 +815,6 @@ msgstr ""
" **失敗** Product は必須\n"
" 参照: 62 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:1009
msgid ""
" **FAIL** REQUIRED ShortNickName\n"
" REF: Page 64-65, section 5.3."
@@ -971,24 +822,19 @@ msgstr ""
" **失敗** ShortNickName は必須\n"
" 参照: 64-65 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:334 systemv/cupstestppd.c:353
-#: systemv/cupstestppd.c:365
#, c-format
msgid " **FAIL** Unable to open PPD file - %s on line %d."
msgstr ""
" 失敗\n"
" **失敗** PPD ファイルを開けません - %s (%d 行)。"
-#: systemv/cupstestppd.c:1498
#, c-format
msgid " %d ERRORS FOUND"
msgstr " %d 個のエラーが見つかりました"
-#: systemv/cupstestdsc.c:431
msgid " -h Show program usage"
msgstr " -h このプログラムの利用法を表示する"
-#: systemv/cupstestdsc.c:234 systemv/cupstestdsc.c:276
#, c-format
msgid ""
" Bad %%%%BoundingBox: on line %d.\n"
@@ -997,7 +843,6 @@ msgstr ""
" 不正な %%%%BoundingBox: (%d 行)。\n"
" 参照: 39 ページ、%%%%BoundingBox:"
-#: systemv/cupstestdsc.c:305
#, c-format
msgid ""
" Bad %%%%Page: on line %d.\n"
@@ -1006,7 +851,6 @@ msgstr ""
" 不正な %%%%Page: (%d 行)。\n"
" 参照: 53 ページ、%%%%Page:"
-#: systemv/cupstestdsc.c:218 systemv/cupstestdsc.c:258
#, c-format
msgid ""
" Bad %%%%Pages: on line %d.\n"
@@ -1015,7 +859,6 @@ msgstr ""
" 不正な %%%%Pages: (%d 行)。\n"
" REF: Page 43, %%%%Pages:"
-#: systemv/cupstestdsc.c:176
#, c-format
msgid ""
" Line %d is longer than 255 characters (%d).\n"
@@ -1024,7 +867,6 @@ msgstr ""
" %d 行が 255文字より長くなっています (%d)。\n"
" 参照: 25 ページ、Line Length"
-#: systemv/cupstestdsc.c:192
msgid ""
" Missing %!PS-Adobe-3.0 on first line.\n"
" REF: Page 17, 3.1 Conforming Documents"
@@ -1032,14 +874,12 @@ msgstr ""
" 先頭行に %!PS-Adobe-3.0 がありません。\n"
" 参照: 17 ページ、3.1 Conforming Documents"
-#: systemv/cupstestdsc.c:362
#, c-format
msgid " Missing %%EndComments comment. REF: Page 41, %%EndComments"
msgstr ""
" %%EndComments コメントが見つかりません。\n"
" 参照: 41 ページ、%%EndComments"
-#: systemv/cupstestdsc.c:342
#, c-format
msgid ""
" Missing or bad %%BoundingBox: comment.\n"
@@ -1048,7 +888,6 @@ msgstr ""
" %%BoundingBox: コメントが見つからないか不正です。\n"
" 参照: 39 ページ、%%BoundingBox:"
-#: systemv/cupstestdsc.c:372
#, c-format
msgid ""
" Missing or bad %%Page: comments.\n"
@@ -1057,7 +896,6 @@ msgstr ""
" %%Page: コメントが見つからないか不正です。\n"
" 参照: 53 ページ、%%Page:"
-#: systemv/cupstestdsc.c:352
#, c-format
msgid ""
" Missing or bad %%Pages: comment.\n"
@@ -1066,2033 +904,1526 @@ msgstr ""
" %%Pages: コメントが見つからないか不正です。\n"
" 参照: 43 ページ、%%Pages:"
-#: systemv/cupstestppd.c:1500
msgid " NO ERRORS FOUND"
msgstr " エラーは見つかりませんでした"
-#: systemv/cupstestdsc.c:395
#, c-format
msgid " Saw %d lines that exceeded 255 characters."
msgstr " 255文字を超える %d 行が見つかりました。"
-#: systemv/cupstestdsc.c:390
#, c-format
msgid " Too many %%BeginDocument comments."
msgstr " %%BeginDocument コメントが多すぎます。"
-#: systemv/cupstestdsc.c:382
#, c-format
msgid " Too many %%EndDocument comments."
msgstr " %%EndDocument コメントが多すぎます。"
-#: systemv/cupstestdsc.c:402
msgid " Warning: file contains binary data."
msgstr " 警告: ファイルにバイナリデータが含まれています。"
-#: systemv/cupstestdsc.c:410
#, c-format
msgid " Warning: no %%EndComments comment in file."
msgstr " 警告: ファイルに %%EndComments コメントがありません。"
-#: systemv/cupstestdsc.c:406
#, c-format
msgid " Warning: obsolete DSC version %.1f in file."
msgstr " 警告: ファイルは時代遅れの DSC バージョン %.1f です。"
-#: systemv/cupsctl.c:210
msgid " --[no-]debug-logging Turn debug logging on/off."
msgstr " --[no-]debug-logging デバッグログの有効/無効を切り替える。"
-#: systemv/cupsctl.c:212
msgid " --[no-]remote-admin Turn remote administration on/off."
msgstr " --[no-]remote-admin リモート管理の有効/無効を切り替える。"
-#: systemv/cupsctl.c:214
msgid " --[no-]remote-any Allow/prevent access from the Internet."
-msgstr " --[no-]remote-any インターネットからのアクセスを許可/禁止する。"
+msgstr ""
+" --[no-]remote-any インターネットからのアクセスを許可/禁止する。"
-#: systemv/cupsctl.c:216
msgid " --[no-]share-printers Turn printer sharing on/off."
msgstr " --[no-]share-printers プリンター共有の有効/無効を切り替える。"
-#: systemv/cupsctl.c:218
msgid " --[no-]user-cancel-any Allow/prevent users to cancel any job."
-msgstr " --[no-]user-cancel-any あらゆるジョブのキャンセルをユーザーに許可/禁止する"
+msgstr ""
+" --[no-]user-cancel-any あらゆるジョブのキャンセルをユーザーに許可/禁止する"
-#: ppdc/ppdc.cxx:455
msgid " --cr End lines with CR (Mac OS 9)."
msgstr " --cr 行末を CR とする (Mac OS 9)。"
-#: ppdc/ppdc.cxx:457
msgid " --crlf End lines with CR + LF (Windows)."
msgstr " --crlf 行末を CR + LF とする (Windows)。"
-#: ppdc/ppdc.cxx:459
msgid " --lf End lines with LF (UNIX/Linux/OS X)."
msgstr " --lf 行末を LF とする (UNIX/Linux/OS X)。"
-#: test/ipptool.c:4404
msgid " -4 Connect using IPv4."
msgstr " -4 IPv4 で接続する。"
-#: test/ipptool.c:4405
msgid " -6 Connect using IPv6."
msgstr " -6 IPv6 で接続する。"
-#: test/ipptool.c:4406
msgid " -C Send requests using chunking (default)."
-msgstr " -C chunking を用いてリクエストを送る (デフォルト)。"
+msgstr ""
+" -C chunking を用いてリクエストを送る (デフォルト)。"
-#: scheduler/cupsfilter.c:1431
msgid " -D Remove the input file when finished."
msgstr " -D 終了したときに入力ファイルを削除する。"
-#: ppdc/ppdc.cxx:438 ppdc/ppdhtml.cxx:175 ppdc/ppdpo.cxx:255
msgid " -D name=value Set named variable to value."
-msgstr " -D name=value name で指定された変数に値 value をセットする。"
+msgstr ""
+" -D name=value name で指定された変数に値 value をセットする。"
-#: systemv/cupsaddsmb.c:285 systemv/cupsctl.c:205
msgid " -E Encrypt the connection."
msgstr " -E 接続を暗号化する。"
-#: test/ipptool.c:4408
msgid " -E Test with HTTP Upgrade to TLS."
-msgstr " -E HTTP から TLS へのアップグレードでテストする。"
+msgstr ""
+" -E HTTP から TLS へのアップグレードでテストする。"
-#: scheduler/main.c:2021
msgid ""
" -F Run in the foreground but detach from console."
-msgstr " -F フォアグラウンドで実行するがコンソールからはデタッチする。"
+msgstr ""
+" -F フォアグラウンドで実行するがコンソールからはデタッ"
+"チする。"
-#: systemv/cupsaddsmb.c:286
msgid " -H samba-server Use the named SAMBA server."
msgstr " -H sambaサーバー 指定の SAMBA サーバーを使う。"
-#: test/ipptool.c:4410
msgid " -I Ignore errors."
msgstr " -I エラーを無視する。"
-#: ppdc/ppdc.cxx:440 ppdc/ppdhtml.cxx:177 ppdc/ppdi.cxx:131 ppdc/ppdpo.cxx:257
msgid " -I include-dir Add include directory to search path."
-msgstr " -I include-dir インクルードディレクトリーを検索パスに含める。"
+msgstr ""
+" -I include-dir インクルードディレクトリーを検索パスに含める。"
-#: systemv/cupstestppd.c:3799
msgid " -I {filename,filters,none,profiles}"
msgstr " -I {filename,filters,none,profiles}"
-#: test/ipptool.c:4411
msgid " -L Send requests using content-length."
msgstr " -L content-length を用いてリクエストを送る。"
-#: scheduler/cupsfilter.c:1433
msgid " -P filename.ppd Set PPD file."
msgstr " -P filename.ppd PPD ファイルを指定する。"
-#: systemv/cupstestppd.c:3801
msgid " -R root-directory Set alternate root."
msgstr " -R root-directory 別のルートディレクトリーを指定する。"
-#: test/ipptool.c:4413
msgid " -S Test with SSL encryption."
msgstr " -S SSL 暗号化でテストする。"
-#: test/ipptool.c:4415
msgid " -T seconds Set the receive/send timeout in seconds."
msgstr " -T seconds 受信/送信タイムアウトを秒で指定する。"
-#: scheduler/cupsfilter.c:1434 systemv/cupsaddsmb.c:288 systemv/cupsctl.c:206
msgid " -U username Specify username."
msgstr " -U username ユーザー名を指定する。"
-#: test/ipptool.c:4417
msgid " -V version Set default IPP version."
msgstr " -V version デフォルトの IPP バージョンを指定する。"
-#: systemv/cupstestppd.c:3802
msgid ""
" -W {all,none,constraints,defaults,duplex,filters,profiles,sizes,"
"translations}"
-msgstr " -W {all,none,constraints,defaults,duplex,filters,profiles,sizes,translations}"
+msgstr ""
+" -W {all,none,constraints,defaults,duplex,filters,profiles,sizes,"
+"translations}"
-#: test/ipptool.c:4419
msgid " -X Produce XML plist instead of plain text."
msgstr " -X プレーンテキストの代わりに XML を用いる。"
-#: systemv/cupsaddsmb.c:289
msgid " -a Export all printers."
msgstr " -a すべてのプリンターをエクスポートする。"
-#: ppdc/ppdc.cxx:442
msgid " -c catalog.po Load the specified message catalog."
msgstr " -c catalog.po 指定したメッセージカタログをロードする。"
-#: scheduler/cupsfilter.c:1435 scheduler/main.c:2019
msgid " -c cupsd.conf Set cupsd.conf file to use."
msgstr " -c cupsd.conf 使用する cupsd.conf ファイルを指定する。"
-#: test/ipptool.c:4421
msgid " -d name=value Set named variable to value."
-msgstr " -d name=value name で指定された変数に値 value をセットする。"
+msgstr ""
+" -d name=value name で指定された変数に値 value をセットする。"
-#: ppdc/ppdc.cxx:444
msgid " -d output-dir Specify the output directory."
msgstr " -d output-dir 出力先ディレクトリーを指定する。"
-#: scheduler/cupsfilter.c:1437
msgid " -d printer Use the named printer."
msgstr " -d printer 指定されたプリンターを利用する。"
-#: scheduler/cupsfilter.c:1439
msgid " -e Use every filter from the PPD file."
-msgstr " -e PPD ファイルからすべてのフィルターを使用する。"
+msgstr ""
+" -e PPD ファイルからすべてのフィルターを使用する。"
-#: scheduler/main.c:2020
msgid " -f Run in the foreground."
msgstr " -f フォアグラウンドで実行する。"
-#: test/ipptool.c:4423
msgid " -f filename Set default request filename."
msgstr " -f filename デフォルトのリクエストファイル名を指定する。"
-#: scheduler/main.c:2023
msgid " -h Show this usage message."
msgstr " -h このヘルプメッセージを表示する。"
-#: systemv/cupsaddsmb.c:290 systemv/cupsctl.c:207
msgid " -h server[:port] Specify server address."
msgstr " -h server[:port] サーバーアドレスを指定する。"
-#: scheduler/cupsfilter.c:1441
msgid " -i mime/type Set input MIME type (otherwise auto-typed)."
-msgstr " -i mime/type 入力の MIME タイプを指定する (指定がなければ自動タイプ)。"
+msgstr ""
+" -i mime/type 入力の MIME タイプを指定する (指定がなければ自動タ"
+"イプ)。"
-#: test/ipptool.c:4425
msgid ""
" -i seconds Repeat the last file with the given time interval."
-msgstr " -i seconds 最後のファイルを与えられた時間間隔で繰り返す。"
+msgstr ""
+" -i seconds 最後のファイルを与えられた時間間隔で繰り返す。"
-#: scheduler/cupsfilter.c:1443
msgid ""
" -j job-id[,N] Filter file N from the specified job (default is "
"file 1)."
-msgstr " -j job-id[,N] フィルターファイル N を指定されたジョブから使用する (デフォルトは ファイル 1)。"
+msgstr ""
+" -j job-id[,N] フィルターファイル N を指定されたジョブから使用す"
+"る (デフォルトは ファイル 1)。"
-#: scheduler/main.c:2024
msgid " -l Run cupsd from launchd(8)."
msgstr " -l launchd(8) から cupsd を実行する。"
-#: ppdc/ppdc.cxx:446
msgid " -l lang[,lang,...] Specify the output language(s) (locale)."
msgstr " -l lang[,lang,...] 出力言語を指定する。(複数可能)"
-#: ppdc/ppdc.cxx:448
msgid " -m Use the ModelName value as the filename."
msgstr " -m ModelName の値をファイル名として使用する。"
-#: scheduler/cupsfilter.c:1445
msgid ""
" -m mime/type Set output MIME type (otherwise application/pdf)."
-msgstr " -m mime/type 出力の MIME タイプを指定する (指定がなければ application/pdf)。"
+msgstr ""
+" -m mime/type 出力の MIME タイプを指定する (指定がなければ "
+"application/pdf)。"
-#: scheduler/cupsfilter.c:1447
msgid " -n copies Set number of copies."
msgstr " -n copies 部数を指定する。"
-#: test/ipptool.c:4427
msgid ""
" -n count Repeat the last file the given number of times."
msgstr " -n count 最後のファイルを与えられた回数だけ繰り返す。"
-#: ppdc/ppdi.cxx:133
msgid ""
" -o filename.drv Set driver information file (otherwise ppdi.drv)."
-msgstr " -o filename.drv ドライバー情報ファイルを指定する (指定がなければ ppdi.drv)。"
+msgstr ""
+" -o filename.drv ドライバー情報ファイルを指定する (指定がなければ "
+"ppdi.drv)。"
-#: ppdc/ppdmerge.cxx:370
msgid " -o filename.ppd[.gz] Set output file (otherwise stdout)."
-msgstr " -o filename.ppd[.gz] 出力ファイルを指定する (指定がなければ標準出力)。"
+msgstr ""
+" -o filename.ppd[.gz] 出力ファイルを指定する (指定がなければ標準出力)。"
-#: scheduler/cupsfilter.c:1448
msgid " -o name=value Set option(s)."
msgstr " -o name=value オプションを指定する。"
-#: scheduler/cupsfilter.c:1449
msgid " -p filename.ppd Set PPD file."
msgstr " -p filename.ppd PPD ファイルを指定する。"
-#: systemv/cupstestppd.c:3806 test/ipptool.c:4429
msgid " -q Run silently."
msgstr " -q 詳細は表示しない。"
-#: systemv/cupstestppd.c:3807
msgid " -r Use 'relaxed' open mode."
msgstr " -r 寛容モードを用いる。"
-#: test/ipptool.c:4430
msgid " -t Produce a test report."
msgstr " -t テストリポートを出力する。"
-#: ppdc/ppdc.cxx:450
msgid " -t Test PPDs instead of generating them."
msgstr " -t PPD を出力しないでテストする。"
-#: scheduler/main.c:2025
msgid " -t Test the configuration file."
msgstr " -t 設定ファイルをテストする。"
-#: scheduler/cupsfilter.c:1450
msgid " -t title Set title."
msgstr " -t title タイトルを指定する。"
-#: scheduler/cupsfilter.c:1451
msgid " -u Remove the PPD file when finished."
msgstr " -u 終了したときに PPD ファイルを削除する。"
-#: systemv/cupsaddsmb.c:291 systemv/cupstestppd.c:3808 test/ipptool.c:4431
-#: ppdc/ppdc.cxx:452 ppdc/ppdpo.cxx:259
msgid " -v Be verbose."
msgstr " -v 冗長出力を行う。"
-#: systemv/cupstestppd.c:3809
msgid " -vv Be very verbose."
msgstr " -vv より冗長な出力を行う。"
-#: ppdc/ppdc.cxx:453
msgid " -z Compress PPD files using GNU zip."
msgstr " -z PPD ファイルを GNU zip を使って圧縮する。"
-#: systemv/cupstestppd.c:332 systemv/cupstestppd.c:351
-#: systemv/cupstestppd.c:363 systemv/cupstestppd.c:496
-#: systemv/cupstestppd.c:511 systemv/cupstestppd.c:532
-#: systemv/cupstestppd.c:547 systemv/cupstestppd.c:577
-#: systemv/cupstestppd.c:597 systemv/cupstestppd.c:620
-#: systemv/cupstestppd.c:638 systemv/cupstestppd.c:664
-#: systemv/cupstestppd.c:682 systemv/cupstestppd.c:702
-#: systemv/cupstestppd.c:722 systemv/cupstestppd.c:740
-#: systemv/cupstestppd.c:757 systemv/cupstestppd.c:776
-#: systemv/cupstestppd.c:797 systemv/cupstestppd.c:816
-#: systemv/cupstestppd.c:836 systemv/cupstestppd.c:856
-#: systemv/cupstestppd.c:876 systemv/cupstestppd.c:896
-#: systemv/cupstestppd.c:914 systemv/cupstestppd.c:931
-#: systemv/cupstestppd.c:953 systemv/cupstestppd.c:971
-#: systemv/cupstestppd.c:988 systemv/cupstestppd.c:1006
-#: systemv/cupstestppd.c:1022 systemv/cupstestppd.c:1042
-#: systemv/cupstestppd.c:1073 systemv/cupstestppd.c:1095
-#: systemv/cupstestppd.c:1146 systemv/cupstestppd.c:1165
-#: systemv/cupstestppd.c:1209 systemv/cupstestppd.c:1223
-#: systemv/cupstestppd.c:1255 systemv/cupstestppd.c:1282
-#: systemv/cupstestppd.c:1800 systemv/cupstestppd.c:1819
-#: systemv/cupstestppd.c:1837 systemv/cupstestppd.c:1889
-#: systemv/cupstestppd.c:1905 systemv/cupstestppd.c:1942
-#: systemv/cupstestppd.c:1960 systemv/cupstestppd.c:1996
-#: systemv/cupstestppd.c:2010 systemv/cupstestppd.c:2037
-#: systemv/cupstestppd.c:2051 systemv/cupstestppd.c:2097
-#: systemv/cupstestppd.c:2119 systemv/cupstestppd.c:2142
-#: systemv/cupstestppd.c:2159 systemv/cupstestppd.c:2201
-#: systemv/cupstestppd.c:2244 systemv/cupstestppd.c:2291
-#: systemv/cupstestppd.c:2315 systemv/cupstestppd.c:2369
-#: systemv/cupstestppd.c:2385 systemv/cupstestppd.c:2415
-#: systemv/cupstestppd.c:2429 systemv/cupstestppd.c:2455
-#: systemv/cupstestppd.c:2471 systemv/cupstestppd.c:2511
-#: systemv/cupstestppd.c:2525 systemv/cupstestppd.c:2551
-#: systemv/cupstestppd.c:2567 systemv/cupstestppd.c:2597
-#: systemv/cupstestppd.c:2611 systemv/cupstestppd.c:2638
-#: systemv/cupstestppd.c:2655 systemv/cupstestppd.c:2669
-#: systemv/cupstestppd.c:2693 systemv/cupstestppd.c:2710
-#: systemv/cupstestppd.c:2724 systemv/cupstestppd.c:2748
-#: systemv/cupstestppd.c:2765 systemv/cupstestppd.c:2779
-#: systemv/cupstestppd.c:2803 systemv/cupstestppd.c:2820
-#: systemv/cupstestppd.c:2834 systemv/cupstestppd.c:2858
-#: systemv/cupstestppd.c:2872 systemv/cupstestppd.c:2887
-#: systemv/cupstestppd.c:2904 systemv/cupstestppd.c:2960
-#: systemv/cupstestppd.c:2995 systemv/cupstestppd.c:3009
-#: systemv/cupstestppd.c:3037 systemv/cupstestppd.c:3102
-#: systemv/cupstestppd.c:3117 systemv/cupstestppd.c:3156
-#: systemv/cupstestppd.c:3176 systemv/cupstestppd.c:3190
-#: systemv/cupstestppd.c:3387 systemv/cupstestppd.c:3423
-#: systemv/cupstestppd.c:3437 systemv/cupstestppd.c:3483
-#: systemv/cupstestppd.c:3515 systemv/cupstestppd.c:3532
-#: systemv/cupstestppd.c:3555 systemv/cupstestppd.c:3571
-#: systemv/cupstestppd.c:3609 systemv/cupstestppd.c:3750
-#: systemv/cupstestppd.c:3772 systemv/cupstestppd.c:3880
msgid " FAIL"
msgstr " 失敗"
-#: systemv/cupstestppd.c:1306
msgid " PASS"
msgstr " 合格"
-#: berkeley/lpq.c:560
#, c-format
msgid "%-6s %-10.10s %-4d %-10d %-27.27s %.0f bytes"
msgstr "%-6s %-10.10s %-4d %-10d %-27.27s %.0f バイト"
-#: berkeley/lpq.c:565
#, c-format
msgid "%-7s %-7.7s %-7d %-31.31s %.0f bytes"
msgstr "%-7s %-7.7s %-7d %-31.31s %.0f バイト"
-#: systemv/lpstat.c:750
#, c-format
msgid "%s accepting requests since %s"
msgstr "%s は %s からリクエストを受け付けています"
-#: scheduler/ipp.c:10045
#, c-format
msgid "%s cannot be changed."
msgstr "%s は変更できません。"
-#: berkeley/lpc.c:189
#, c-format
msgid "%s is not implemented by the CUPS version of lpc."
msgstr "%s は lpc の CUPS バージョンでは実装されていません。"
-#: berkeley/lpq.c:651
#, c-format
msgid "%s is not ready"
msgstr "%s は準備ができていません"
-#: berkeley/lpq.c:644
#, c-format
msgid "%s is ready"
msgstr "%s は準備ができています"
-#: berkeley/lpq.c:647
#, c-format
msgid "%s is ready and printing"
msgstr "%s は準備ができており印刷しています"
-#: filter/rastertoepson.c:985 filter/rastertohp.c:711
-#: filter/rastertolabel.c:1134
#, c-format
msgid "%s job-id user title copies options [file]"
msgstr "%s ジョブID ユーザー タイトル コピー数 オプション [ファイル]"
-#: systemv/lpstat.c:754
#, c-format
msgid "%s not accepting requests since %s -"
msgstr "%s は %s からリクエストを受け付けていません -"
-#: scheduler/ipp.c:691
#, c-format
msgid "%s not supported."
msgstr "%s はサポートされていません。"
-#: systemv/lpstat.c:765
#, c-format
msgid "%s/%s accepting requests since %s"
msgstr "%s/%s は %s からリクエストを受け付けています"
-#: systemv/lpstat.c:770
#, c-format
msgid "%s/%s not accepting requests since %s -"
msgstr "%s/%s は %s からリクエストを受け付けていません - "
-#: berkeley/lpq.c:552
#, c-format
msgid "%s: %-33.33s [job %d localhost]"
msgstr "%s:%-33.33s [ジョブ %d localhost]"
#. TRANSLATORS: Message is "subject: error"
-#: cups/langprintf.c:86 scheduler/cupsfilter.c:714 systemv/lpadmin.c:805
-#: systemv/lpadmin.c:856 systemv/lpadmin.c:906 systemv/lpadmin.c:962
-#: systemv/lpadmin.c:1060 systemv/lpadmin.c:1112 systemv/lpadmin.c:1168
-#: systemv/lpadmin.c:1478
#, c-format
msgid "%s: %s"
msgstr "%s: %s"
-#: systemv/cancel.c:294 systemv/cancel.c:357
#, c-format
msgid "%s: %s failed: %s"
msgstr "%s: %s に失敗しました: %s"
-#: systemv/cupsaccept.c:68
#, c-format
msgid "%s: Don't know what to do."
msgstr "%s: 何が起きているか不明です。"
-#: berkeley/lpq.c:236 berkeley/lpr.c:344 systemv/lp.c:584
#, c-format
msgid ""
"%s: Error - %s environment variable names non-existent destination \"%s\"."
msgstr "%s: エラー - 環境変数 %s が存在しない宛先 \"%s\" を指しています。"
-#: systemv/lp.c:231
#, c-format
msgid "%s: Error - bad job ID."
msgstr "%s: エラー - 不正なジョブ ID です。"
-#: systemv/lp.c:219
#, c-format
msgid "%s: Error - cannot print files and alter jobs simultaneously."
-msgstr "%s: エラー - ファイルを印刷できず、ジョブを同時に変えることができません。"
+msgstr ""
+"%s: エラー - ファイルを印刷できず、ジョブを同時に変えることができません。"
-#: systemv/lp.c:505
#, c-format
msgid "%s: Error - cannot print from stdin if files or a job ID are provided."
-msgstr "%s: エラー - ファイルまたはジョブ ID が提供されている場合、標準入力から印刷できません。 "
+msgstr ""
+"%s: エラー - ファイルまたはジョブ ID が提供されている場合、標準入力から印刷で"
+"きません。 "
-#: systemv/lp.c:461
#, c-format
msgid "%s: Error - expected character set after \"-S\" option."
msgstr "%s: エラー - \"-S\" オプションのあとには文字セットが必要です。"
-#: systemv/lp.c:480
#, c-format
msgid "%s: Error - expected content type after \"-T\" option."
msgstr "%s: エラー - \"-T\" オプションのあとにはコンテンツタイプが必要です。"
-#: berkeley/lpr.c:240
#, c-format
msgid "%s: Error - expected copies after \"-#\" option."
msgstr "%s: エラー - \"-#\" オプションのあとにはコピー数が必要です。"
-#: systemv/lp.c:264
#, c-format
msgid "%s: Error - expected copies after \"-n\" option."
msgstr "%s: エラー - \"-n\" オプションのあとにはコピー数が必要です。"
-#: berkeley/lpr.c:209
#, c-format
msgid "%s: Error - expected destination after \"-P\" option."
msgstr "%s: エラー - \"-P\" オプションのあとには宛先が必要です。"
-#: systemv/lpstat.c:231
-#, c-format
-msgid "%s: Error - expected destination after \"-b\" option."
-msgstr "%s: エラー - \"-b\" オプションのあとに宛先が必要です。"
-
-#: systemv/lp.c:138
#, c-format
msgid "%s: Error - expected destination after \"-d\" option."
msgstr "%s: エラー - \"-d\" オプションのあとにはプリンター名が必要です。"
-#: systemv/lp.c:168
#, c-format
msgid "%s: Error - expected form after \"-f\" option."
msgstr "%s: エラー - \"-f\" オプションのあとには用紙名が必要です。"
-#: systemv/lp.c:391
#, c-format
msgid "%s: Error - expected hold name after \"-H\" option."
msgstr "%s: エラー - \"-H\" オプションのあとにはホールド名が必要です。"
-#: berkeley/lpr.c:103
#, c-format
msgid "%s: Error - expected hostname after \"-H\" option."
msgstr "%s: エラー - \"-H\" オプションのあとにはホスト名が必要です。"
-#: berkeley/lpq.c:180 berkeley/lprm.c:123 systemv/cancel.c:124
-#: systemv/cupsaccept.c:123 systemv/lp.c:189 systemv/lpstat.c:291
#, c-format
msgid "%s: Error - expected hostname after \"-h\" option."
msgstr "%s: エラー - \"-h\" オプションのあとにはホスト名が必要です。"
-#: systemv/lp.c:371
#, c-format
msgid "%s: Error - expected mode list after \"-y\" option."
msgstr "%s: エラー - \"-y\" オプションのあとにはモードリストが必要です。"
-#: berkeley/lpr.c:263
#, c-format
msgid "%s: Error - expected name after \"-%c\" option."
msgstr "%s: エラー - \"-%c\" オプションのあとには名前が必要です。"
-#: berkeley/lpr.c:153 systemv/lp.c:288
#, c-format
msgid "%s: Error - expected option=value after \"-o\" option."
msgstr "%s: エラー - \"-o\" オプションのあとには オプション=値 が必要です。"
-#: systemv/lp.c:441
#, c-format
msgid "%s: Error - expected page list after \"-P\" option."
msgstr "%s: エラー - \"-P\" オプションのあとにはページリストが必要です。"
-#: systemv/lp.c:308
#, c-format
msgid "%s: Error - expected priority after \"-%c\" option."
msgstr "%s: エラー - \"-%c\" オプションのあとには優先度が必要です。"
-#: systemv/cupsaccept.c:141
#, c-format
msgid "%s: Error - expected reason text after \"-r\" option."
msgstr "%s: エラー - \"-r\" のあとには理由のテキストが必要です。"
-#: systemv/lp.c:354
#, c-format
msgid "%s: Error - expected title after \"-t\" option."
msgstr "%s: エラー - \"-t\" オプションのあとにはタイトルが必要です。"
-#: berkeley/lpq.c:111 berkeley/lpr.c:84 berkeley/lprm.c:104
-#: systemv/cancel.c:94 systemv/cupsaccept.c:101 systemv/lp.c:116
-#: systemv/lpadmin.c:438 systemv/lpstat.c:137
#, c-format
msgid "%s: Error - expected username after \"-U\" option."
msgstr "%s: エラー - \"-U\" オプションのあとにはユーザー名が必要です。"
-#: systemv/cancel.c:145
#, c-format
msgid "%s: Error - expected username after \"-u\" option."
msgstr "%s: エラー - \"-u\" オプションのあとにはユーザー名が必要です。"
-#: berkeley/lpr.c:125
#, c-format
msgid "%s: Error - expected value after \"-%c\" option."
msgstr "%s: エラー - \"-%c\" オプションのあとには値が必要です。"
-#: systemv/lpstat.c:157 systemv/lpstat.c:171
#, c-format
msgid ""
"%s: Error - need \"completed\", \"not-completed\", or \"all\" after \"-W\" "
"option."
-msgstr "%s: エラー - \"-W\" オプションのあとには、\"completed\"、\"not-completed\"、\"all\" のいずれかが必要です。"
+msgstr ""
+"%s: エラー - \"-W\" オプションのあとには、\"completed\"、\"not-completed"
+"\"、\"all\" のいずれかが必要です。"
-#: berkeley/lpq.c:241 berkeley/lpr.c:349 systemv/lp.c:589
#, c-format
msgid "%s: Error - no default destination available."
msgstr "%s: エラー - 利用可能なデフォルトの宛先がありません。"
-#: systemv/lp.c:330
#, c-format
msgid "%s: Error - priority must be between 1 and 100."
msgstr "%s: エラー - 優先度は 1 から 100 の間である必要があります。"
-#: berkeley/lpr.c:352 systemv/lp.c:592
#, c-format
msgid "%s: Error - scheduler not responding."
msgstr "%s: エラー - スケジューラーが応答していません。"
-#: berkeley/lpr.c:305 systemv/lp.c:537
#, c-format
msgid "%s: Error - too many files - \"%s\"."
msgstr "%s: エラー - ファイルが多すぎます - \"%s\""
-#: berkeley/lpr.c:287 systemv/lp.c:520
#, c-format
msgid "%s: Error - unable to access \"%s\" - %s"
msgstr "%s: エラー - \"%s\" にアクセスできません - %s"
-#: berkeley/lpr.c:395 systemv/lp.c:623
#, c-format
msgid "%s: Error - unable to queue from stdin - %s."
msgstr "%s: エラー - 標準入力からキューにデータを入力できません。 - %s"
-#: berkeley/lprm.c:87 berkeley/lprm.c:172 systemv/cancel.c:214
#, c-format
msgid "%s: Error - unknown destination \"%s\"."
msgstr "%s: エラー - \"%s\" は未知の宛先です。"
-#: berkeley/lpq.c:150
#, c-format
msgid "%s: Error - unknown destination \"%s/%s\"."
msgstr "%s: エラー - \"%s/%s\" は未知の宛先です。"
-#: berkeley/lpr.c:274 berkeley/lprm.c:139 systemv/cancel.c:156
-#: systemv/cupsaccept.c:164 systemv/lp.c:496 systemv/lpstat.c:452
#, c-format
msgid "%s: Error - unknown option \"%c\"."
msgstr "%s: エラー - '%c' は未知のオプションです。"
-#: systemv/cupsaccept.c:157
#, c-format
msgid "%s: Error - unknown option \"%s\"."
msgstr "%s: エラー - '%s' は未知のオプションです。"
-#: systemv/lp.c:208
#, c-format
msgid "%s: Expected job ID after \"-i\" option."
msgstr "%s: '-i' オプションのあとにはジョブ ID が必要です。"
-#: systemv/lpstat.c:504 systemv/lpstat.c:543
#, c-format
msgid "%s: Invalid destination name in list \"%s\"."
msgstr "%s: リスト \"%s\" に無効な宛先名があります。"
-#: scheduler/cupsfilter.c:567
#, c-format
msgid "%s: Invalid filter string \"%s\"."
msgstr "%s: 無効なフィルター文字列です \"%s\""
-#: systemv/lp.c:418
#, c-format
msgid "%s: Need job ID (\"-i jobid\") before \"-H restart\"."
msgstr "%s: '-H restart' の前にはジョブ ID ('-i ジョブID') が必要です。"
-#: scheduler/cupsfilter.c:458
#, c-format
msgid "%s: No filter to convert from %s/%s to %s/%s."
msgstr "%s: %s/%s から %s/%s に変換するフィルターがありません。"
-#: systemv/cupsaccept.c:198
#, c-format
msgid "%s: Operation failed: %s"
msgstr "%s: 操作に失敗しました: %s"
-#: berkeley/lpq.c:97 berkeley/lpr.c:70 berkeley/lprm.c:67 systemv/cancel.c:81
-#: systemv/cupsaccept.c:88 systemv/cupsaddsmb.c:86 systemv/lp.c:102
-#: systemv/lpadmin.c:239 systemv/lpinfo.c:88 systemv/lpmove.c:73
-#: systemv/lpstat.c:102 test/ipptool.c:304 test/ipptool.c:321
#, c-format
msgid "%s: Sorry, no encryption support."
msgstr "%s: 残念ながら、暗号化サポートはコンパイル時に組み込まれていません。"
-#: berkeley/lpq.c:295 scheduler/cupsfilter.c:1221 systemv/cancel.c:237
-#: systemv/cupsaddsmb.c:144 systemv/cupsaddsmb.c:171
#, c-format
msgid "%s: Unable to connect to server."
msgstr "%s: サーバーに接続できません"
-#: systemv/cancel.c:317
#, c-format
msgid "%s: Unable to contact server."
msgstr "%s: サーバーに連絡できません。"
-#: scheduler/cupsfilter.c:424
#, c-format
msgid "%s: Unable to determine MIME type of \"%s\"."
msgstr "%s: \"%s\" の MIME タイプを判別できません。"
-#: ppdc/ppdmerge.cxx:96
#, c-format
msgid "%s: Unable to open %s: %s"
msgstr "%s: %s を開けません: %s"
-#: scheduler/cupsfilter.c:662 ppdc/ppdmerge.cxx:112
#, c-format
msgid "%s: Unable to open PPD file: %s on line %d."
msgstr "%s: PPD ファイルを開けません: %s の %d 行目"
-#: scheduler/cupsfilter.c:392
#, c-format
msgid "%s: Unable to read MIME database from \"%s\" or \"%s\"."
-msgstr "%s: \"%s\" または \"%s\" から MIME データベースを読み取ることができません。"
+msgstr ""
+"%s: \"%s\" または \"%s\" から MIME データベースを読み取ることができません。"
-#: berkeley/lpq.c:153 systemv/lpstat.c:558
#, c-format
msgid "%s: Unknown destination \"%s\"."
msgstr "%s: \"%s\" は未知の宛先です。"
-#: scheduler/cupsfilter.c:435
#, c-format
msgid "%s: Unknown destination MIME type %s/%s."
msgstr "%s: %s/%s は未知の宛先 MIME タイプです。"
-#: scheduler/cupsfilter.c:1426
#, c-format
msgid "%s: Unknown option \"%c\"."
msgstr "%s: '%c' は未知のオプションです。"
-#: scheduler/cupsfilter.c:416
#, c-format
msgid "%s: Unknown source MIME type %s/%s."
msgstr "%s: %s/%s は未知のソース MIME タイプです。"
-#: berkeley/lpr.c:139
#, c-format
msgid ""
"%s: Warning - \"%c\" format modifier not supported - output may not be "
"correct."
-msgstr "%s: 警告 - '%c' 形式修飾子はサポートされていません - 出力は正しくないものになるかもしれません。"
+msgstr ""
+"%s: 警告 - '%c' 形式修飾子はサポートされていません - 出力は正しくないものにな"
+"るかもしれません。"
-#: systemv/lp.c:468
#, c-format
msgid "%s: Warning - character set option ignored."
msgstr "%s: 警告 - 文字セットオプションは無視されます。"
-#: systemv/lp.c:487
#, c-format
msgid "%s: Warning - content type option ignored."
msgstr "%s: 警告 - コンテンツタイプオプションは無視されます。"
-#: systemv/lp.c:175
#, c-format
msgid "%s: Warning - form option ignored."
msgstr "%s: 警告 - 用紙オプションは無視されます。"
-#: systemv/lp.c:378
#, c-format
msgid "%s: Warning - mode option ignored."
msgstr "%s: 警告 - モードオプションは無視されます。"
-#: ppdc/sample.c:310
msgid "-1"
msgstr "-1"
-#: ppdc/sample.c:301
msgid "-10"
msgstr "-10"
-#: ppdc/sample.c:393
msgid "-100"
msgstr "-100"
-#: ppdc/sample.c:392
msgid "-105"
msgstr "-105"
-#: ppdc/sample.c:300
msgid "-11"
msgstr "-11"
-#: ppdc/sample.c:391
msgid "-110"
msgstr "-110"
-#: ppdc/sample.c:390
msgid "-115"
msgstr "-115"
-#: ppdc/sample.c:299
msgid "-12"
msgstr "-12"
-#: ppdc/sample.c:389
msgid "-120"
msgstr "-120"
-#: ppdc/sample.c:298
msgid "-13"
msgstr "-13"
-#: ppdc/sample.c:297
msgid "-14"
msgstr "-14"
-#: ppdc/sample.c:296
msgid "-15"
msgstr "-15"
-#: ppdc/sample.c:309
msgid "-2"
msgstr "-2"
-#: ppdc/sample.c:409
msgid "-20"
msgstr "-20"
-#: ppdc/sample.c:408
msgid "-25"
msgstr "-25"
-#: ppdc/sample.c:308
msgid "-3"
msgstr "-3"
-#: ppdc/sample.c:407
msgid "-30"
msgstr "-30"
-#: ppdc/sample.c:406
msgid "-35"
msgstr "-35"
-#: ppdc/sample.c:307
msgid "-4"
msgstr "-4"
-#: ppdc/sample.c:405
msgid "-40"
msgstr "-40"
-#: ppdc/sample.c:404
msgid "-45"
msgstr "-45"
-#: ppdc/sample.c:306
msgid "-5"
msgstr "-5"
-#: ppdc/sample.c:403
msgid "-50"
msgstr "-50"
-#: ppdc/sample.c:402
msgid "-55"
msgstr "-55"
-#: ppdc/sample.c:305
msgid "-6"
msgstr "-6"
-#: ppdc/sample.c:401
msgid "-60"
msgstr "-60"
-#: ppdc/sample.c:400
msgid "-65"
msgstr "-65"
-#: ppdc/sample.c:304
msgid "-7"
msgstr "-7"
-#: ppdc/sample.c:399
msgid "-70"
msgstr "-70"
-#: ppdc/sample.c:398
msgid "-75"
msgstr "-75"
-#: ppdc/sample.c:303
msgid "-8"
msgstr "-8"
-#: ppdc/sample.c:397
msgid "-80"
msgstr "-80"
-#: ppdc/sample.c:396
msgid "-85"
msgstr "-85"
-#: ppdc/sample.c:302
msgid "-9"
msgstr "-9"
-#: ppdc/sample.c:395
msgid "-90"
msgstr "-90"
-#: ppdc/sample.c:394
msgid "-95"
msgstr "-95"
-#: ppdc/sample.c:311
msgid "0"
msgstr "0"
-#: ppdc/sample.c:312
msgid "1"
msgstr "1"
-#: ppdc/sample.c:384
msgid "1 inch/sec."
msgstr "1 インチ/秒"
-#: ppdc/sample.c:172
msgid "1.25x0.25\""
msgstr "1.25x0.25 インチ"
-#: ppdc/sample.c:173
msgid "1.25x2.25\""
msgstr "1.25x2.25 インチ"
-#: ppdc/sample.c:432
msgid "1.5 inch/sec."
msgstr "1.5 インチ/秒"
-#: ppdc/sample.c:174
msgid "1.50x0.25\""
msgstr "1.50x0.25 インチ"
-#: ppdc/sample.c:175
msgid "1.50x0.50\""
msgstr "1.50x0.50 インチ"
-#: ppdc/sample.c:176
msgid "1.50x1.00\""
msgstr "1.50x1.00 インチ"
-#: ppdc/sample.c:177
msgid "1.50x2.00\""
msgstr "1.50x2.00 インチ"
-#: ppdc/sample.c:321
msgid "10"
msgstr "10"
-#: ppdc/sample.c:443
msgid "10 inches/sec."
msgstr "10 インチ/秒"
-#: ppdc/sample.c:6
msgid "10 x 11"
msgstr "10 x 11 インチ"
-#: ppdc/sample.c:7
msgid "10 x 13"
msgstr "10 x 13 インチ"
-#: ppdc/sample.c:8
msgid "10 x 14"
msgstr "10 x 14 インチ"
-#: ppdc/sample.c:423
msgid "100"
msgstr "100"
-#: ppdc/sample.c:334
msgid "100 mm/sec."
msgstr "100 ミリメートル/秒"
-#: ppdc/sample.c:424
msgid "105"
msgstr "105"
-#: ppdc/sample.c:322
msgid "11"
msgstr "11"
-#: ppdc/sample.c:444
msgid "11 inches/sec."
msgstr "11 インチ/秒"
-#: ppdc/sample.c:425
msgid "110"
msgstr "110"
-#: ppdc/sample.c:426
msgid "115"
msgstr "115"
-#: ppdc/sample.c:323
msgid "12"
msgstr "12"
-#: ppdc/sample.c:445
msgid "12 inches/sec."
msgstr "12 インチ/秒"
-#: ppdc/sample.c:9
msgid "12 x 11"
msgstr "12 x 11 インチ"
-#: ppdc/sample.c:427
msgid "120"
msgstr "120"
-#: ppdc/sample.c:335
msgid "120 mm/sec."
msgstr "120 ミリメートル/秒"
-#: ppdc/sample.c:243
msgid "120x60dpi"
msgstr "120x60dpi"
-#: ppdc/sample.c:249
msgid "120x72dpi"
msgstr "120x72dpi"
-#: ppdc/sample.c:324
msgid "13"
msgstr "13"
-#: ppdc/sample.c:232
msgid "136dpi"
msgstr "136dpi"
-#: ppdc/sample.c:325
msgid "14"
msgstr "14"
-#: ppdc/sample.c:326
msgid "15"
msgstr "15"
-#: ppdc/sample.c:328
msgid "15 mm/sec."
msgstr "15 ミリメートル/秒"
-#: ppdc/sample.c:10
msgid "15 x 11"
msgstr "15 x 11 インチ"
-#: ppdc/sample.c:336
msgid "150 mm/sec."
msgstr "150 ミリメートル/秒"
-#: ppdc/sample.c:283
msgid "150dpi"
msgstr "150dpi"
-#: ppdc/sample.c:368
msgid "16"
msgstr "16"
-#: ppdc/sample.c:369
msgid "17"
msgstr "17"
-#: ppdc/sample.c:370
msgid "18"
msgstr "18"
-#: ppdc/sample.c:244
msgid "180dpi"
msgstr "180dpi"
-#: ppdc/sample.c:371
msgid "19"
msgstr "19"
-#: ppdc/sample.c:313
msgid "2"
msgstr "2"
-#: ppdc/sample.c:385
msgid "2 inches/sec."
msgstr "2 インチ/秒"
-#: ppdc/sample.c:270
msgid "2-Sided Printing"
msgstr "両面印刷"
-#: ppdc/sample.c:178
msgid "2.00x0.37\""
msgstr "2.00x0.37 インチ"
-#: ppdc/sample.c:179
msgid "2.00x0.50\""
msgstr "2.00x0.50 インチ"
-#: ppdc/sample.c:180
msgid "2.00x1.00\""
msgstr "2.00x1.00 インチ"
-#: ppdc/sample.c:181
msgid "2.00x1.25\""
msgstr "2.00x1.25 インチ"
-#: ppdc/sample.c:182
msgid "2.00x2.00\""
msgstr "2.00x2.00 インチ"
-#: ppdc/sample.c:183
msgid "2.00x3.00\""
msgstr "2.00x3.00 インチ"
-#: ppdc/sample.c:184
msgid "2.00x4.00\""
msgstr "2.00x4.00 インチ"
-#: ppdc/sample.c:185
msgid "2.00x5.50\""
msgstr "2.00x5.50 インチ"
-#: ppdc/sample.c:186
msgid "2.25x0.50\""
msgstr "2.25x0.50 インチ"
-#: ppdc/sample.c:187
msgid "2.25x1.25\""
msgstr "2.25x1.25 インチ"
-#: ppdc/sample.c:188
msgid "2.25x4.00\""
msgstr "2.25x4.00 インチ"
-#: ppdc/sample.c:189
msgid "2.25x5.50\""
msgstr "2.25x5.50 インチ"
-#: ppdc/sample.c:190
msgid "2.38x5.50\""
msgstr "2.38x5.50 インチ"
-#: ppdc/sample.c:433
msgid "2.5 inches/sec."
msgstr "2.5 インチ/秒"
-#: ppdc/sample.c:191
msgid "2.50x1.00\""
msgstr "2.50x1.00 インチ"
-#: ppdc/sample.c:192
msgid "2.50x2.00\""
msgstr "2.50x2.00 インチ"
-#: ppdc/sample.c:193
msgid "2.75x1.25\""
msgstr "2.75x1.25 インチ"
-#: ppdc/sample.c:194
msgid "2.9 x 1\""
msgstr "2.9 x 1 インチ"
-#: ppdc/sample.c:372
msgid "20"
msgstr "20"
-#: ppdc/sample.c:329
msgid "20 mm/sec."
msgstr "20 ミリメートル/秒"
-#: ppdc/sample.c:337
msgid "200 mm/sec."
msgstr "200 ミリメートル/秒"
-#: ppdc/sample.c:233
msgid "203dpi"
msgstr "203dpi"
-#: ppdc/sample.c:373
msgid "21"
msgstr "21"
-#: ppdc/sample.c:374
msgid "22"
msgstr "22"
-#: ppdc/sample.c:375
msgid "23"
msgstr "23"
-#: ppdc/sample.c:376
msgid "24"
msgstr "24"
-#: ppdc/sample.c:241
msgid "24-Pin Series"
msgstr "24 ピンシリーズ"
-#: ppdc/sample.c:250
msgid "240x72dpi"
msgstr "240x72dpi"
-#: ppdc/sample.c:377
msgid "25"
msgstr "25"
-#: ppdc/sample.c:338
msgid "250 mm/sec."
msgstr "250 ミリメートル/秒"
-#: ppdc/sample.c:378
msgid "26"
msgstr "26"
-#: ppdc/sample.c:379
msgid "27"
msgstr "27"
-#: ppdc/sample.c:380
msgid "28"
msgstr "28"
-#: ppdc/sample.c:381
msgid "29"
msgstr "29"
-#: ppdc/sample.c:314
msgid "3"
msgstr "3"
-#: ppdc/sample.c:386
msgid "3 inches/sec."
msgstr "3 インチ/秒"
-#: ppdc/sample.c:3
msgid "3 x 5"
msgstr "3 x 5"
-#: ppdc/sample.c:195
msgid "3.00x1.00\""
msgstr "3.00x1.00 インチ"
-#: ppdc/sample.c:196
msgid "3.00x1.25\""
msgstr "3.00x1.25 インチ"
-#: ppdc/sample.c:197
msgid "3.00x2.00\""
msgstr "3.00x2.00 インチ"
-#: ppdc/sample.c:198
msgid "3.00x3.00\""
msgstr "3.00x3.00インチ"
-#: ppdc/sample.c:199
msgid "3.00x5.00\""
msgstr "3.00x5.00 インチ"
-#: ppdc/sample.c:200
msgid "3.25x2.00\""
msgstr "3.25x2.00 インチ"
-#: ppdc/sample.c:201
msgid "3.25x5.00\""
msgstr "3.25x5.00 インチ"
-#: ppdc/sample.c:202
msgid "3.25x5.50\""
msgstr "3.25x5.50 インチ"
-#: ppdc/sample.c:203
msgid "3.25x5.83\""
msgstr "3.25x5.83 インチ"
-#: ppdc/sample.c:204
msgid "3.25x7.83\""
msgstr "3.25x7.83 インチ"
-#: ppdc/sample.c:4
msgid "3.5 x 5"
msgstr "3.5 x 5"
-#: ppdc/sample.c:171
msgid "3.5\" Disk"
msgstr "3.5 インチディスク"
-#: ppdc/sample.c:205
msgid "3.50x1.00\""
msgstr "3.50x1.00 インチ"
-#: ppdc/sample.c:382
msgid "30"
msgstr "30"
-#: ppdc/sample.c:330
msgid "30 mm/sec."
msgstr "30 ミリメートル/秒"
-#: ppdc/sample.c:339
msgid "300 mm/sec."
msgstr "300 ミリメートル/秒"
-#: ppdc/sample.c:234
msgid "300dpi"
msgstr "300dpi"
-#: ppdc/sample.c:410
msgid "35"
msgstr "35"
-#: ppdc/sample.c:246
msgid "360dpi"
msgstr "360dpi"
-#: ppdc/sample.c:245
msgid "360x180dpi"
msgstr "360x180dpi"
-#: ppdc/sample.c:315
msgid "4"
msgstr "4"
-#: ppdc/sample.c:387
msgid "4 inches/sec."
msgstr "4 インチ/秒"
-#: ppdc/sample.c:206
msgid "4.00x1.00\""
msgstr "4.00x1.00 インチ"
-#: ppdc/sample.c:214
msgid "4.00x13.00\""
msgstr "4.00x13.00 インチ"
-#: ppdc/sample.c:207
msgid "4.00x2.00\""
msgstr "4.00x2.00 インチ"
-#: ppdc/sample.c:208
msgid "4.00x2.50\""
msgstr "4.00x2.50 インチ"
-#: ppdc/sample.c:209
msgid "4.00x3.00\""
msgstr "4.00x3.00 インチ"
-#: ppdc/sample.c:210
msgid "4.00x4.00\""
msgstr "4.00x4.00 インチ"
-#: ppdc/sample.c:211
msgid "4.00x5.00\""
msgstr "4.00x5.00 インチ"
-#: ppdc/sample.c:212
msgid "4.00x6.00\""
msgstr "4.00x6.00 インチ"
-#: ppdc/sample.c:213
msgid "4.00x6.50\""
msgstr "4.00x6.50 インチ"
-#: ppdc/sample.c:411
msgid "40"
msgstr "40"
-#: ppdc/sample.c:331
msgid "40 mm/sec."
msgstr "40 ミリメートル/秒"
-#: ppdc/sample.c:412
msgid "45"
msgstr "45"
-#: ppdc/sample.c:316
msgid "5"
msgstr "5"
-#: ppdc/sample.c:437
msgid "5 inches/sec."
msgstr "5 インチ/秒"
-#: ppdc/sample.c:5
msgid "5 x 7"
msgstr "5 x 7 インチ"
-#: ppdc/sample.c:413
msgid "50"
msgstr "50"
-#: ppdc/sample.c:414
msgid "55"
msgstr "55"
-#: ppdc/sample.c:317
msgid "6"
msgstr "6"
-#: ppdc/sample.c:438
msgid "6 inches/sec."
msgstr "6 インチ/秒"
-#: ppdc/sample.c:215
msgid "6.00x1.00\""
msgstr "6.00x1.00 インチ"
-#: ppdc/sample.c:216
msgid "6.00x2.00\""
msgstr "6.00x2.00 インチ"
-#: ppdc/sample.c:217
msgid "6.00x3.00\""
msgstr "6.00x3.00 インチ"
-#: ppdc/sample.c:218
msgid "6.00x4.00\""
msgstr "6.00x4.00 インチ"
-#: ppdc/sample.c:219
msgid "6.00x5.00\""
msgstr "6.00x5.00 インチ"
-#: ppdc/sample.c:220
msgid "6.00x6.00\""
msgstr "6.00x6.00 インチ"
-#: ppdc/sample.c:221
msgid "6.00x6.50\""
msgstr "6.00x6.50 インチ"
-#: ppdc/sample.c:415
msgid "60"
msgstr "60"
-#: ppdc/sample.c:332
msgid "60 mm/sec."
msgstr "60 ミリメートル/秒"
-#: ppdc/sample.c:261
msgid "600dpi"
msgstr "600dpi"
-#: ppdc/sample.c:242
msgid "60dpi"
msgstr "60dpi"
-#: ppdc/sample.c:248
msgid "60x72dpi"
msgstr "60x72dpi"
-#: ppdc/sample.c:416
msgid "65"
msgstr "65"
-#: ppdc/sample.c:318
msgid "7"
msgstr "7"
-#: ppdc/sample.c:440
msgid "7 inches/sec."
msgstr "7 インチ/秒"
-#: ppdc/sample.c:11
msgid "7 x 9"
msgstr "7 x 9 インチ"
-#: ppdc/sample.c:417
msgid "70"
msgstr "70"
-#: ppdc/sample.c:252
msgid "720dpi"
msgstr "720dpi"
-#: ppdc/sample.c:418
msgid "75"
msgstr "75"
-#: ppdc/sample.c:319
msgid "8"
msgstr "8"
-#: ppdc/sample.c:441
msgid "8 inches/sec."
msgstr "8 インチ/秒"
-#: ppdc/sample.c:12
msgid "8 x 10"
msgstr "8 x 10 インチ"
-#: ppdc/sample.c:222
msgid "8.00x1.00\""
msgstr "8.00x1.00 インチ"
-#: ppdc/sample.c:223
msgid "8.00x2.00\""
msgstr "8.00x2.00 インチ"
-#: ppdc/sample.c:224
msgid "8.00x3.00\""
msgstr "8.00x3.00 インチ"
-#: ppdc/sample.c:225
msgid "8.00x4.00\""
msgstr "8.00x4.00 インチ"
-#: ppdc/sample.c:226
msgid "8.00x5.00\""
msgstr "8.00x5.00 インチ"
-#: ppdc/sample.c:227
msgid "8.00x6.00\""
msgstr "8.00x6.00 インチ"
-#: ppdc/sample.c:228
msgid "8.00x6.50\""
msgstr "8.00x6.50 インチ"
-#: ppdc/sample.c:419
msgid "80"
msgstr "80"
-#: ppdc/sample.c:333
msgid "80 mm/sec."
msgstr "80 ミリメートル/秒"
-#: ppdc/sample.c:420
msgid "85"
msgstr "85"
-#: ppdc/sample.c:320
msgid "9"
msgstr "9"
-#: ppdc/sample.c:442
msgid "9 inches/sec."
msgstr "9 インチ/秒"
-#: ppdc/sample.c:13
msgid "9 x 11"
msgstr "9 x 11 インチ"
-#: ppdc/sample.c:14
msgid "9 x 12"
msgstr "9 x 12 インチ"
-#: ppdc/sample.c:247
msgid "9-Pin Series"
msgstr "9 ピンシリーズ"
-#: ppdc/sample.c:421
msgid "90"
msgstr "90"
-#: ppdc/sample.c:422
msgid "95"
msgstr "95"
-#: berkeley/lpc.c:213
msgid "?Invalid help command unknown."
msgstr "?無効なヘルプコマンドです"
-#: cgi-bin/admin.c:2368
msgid "A Samba password is required to export printer drivers"
-msgstr "プリンタードライバーをエクスポートするには Samba のパスワードが必要です。"
+msgstr ""
+"プリンタードライバーをエクスポートするには Samba のパスワードが必要です。"
-#: cgi-bin/admin.c:2364
msgid "A Samba username is required to export printer drivers"
-msgstr "プリンタードライバーをエクスポートするには、Samba のユーザー名が必要です。"
+msgstr ""
+"プリンタードライバーをエクスポートするには、Samba のユーザー名が必要です。"
-#: scheduler/ipp.c:2283
#, c-format
msgid "A class named \"%s\" already exists."
msgstr "\"%s\" という名前のクラスはすでに存在します。"
-#: scheduler/ipp.c:1004
#, c-format
msgid "A printer named \"%s\" already exists."
msgstr "\"%s\" という名前のプリンターはすでに存在します。"
-#: ppdc/sample.c:15
msgid "A0"
msgstr "A0"
-#: ppdc/sample.c:16
msgid "A0 Long Edge"
msgstr "A0 長辺送り"
-#: ppdc/sample.c:17
msgid "A1"
msgstr "A1"
-#: ppdc/sample.c:18
msgid "A1 Long Edge"
msgstr "A1 長辺送り"
-#: ppdc/sample.c:37
msgid "A10"
msgstr "A10"
-#: ppdc/sample.c:19
msgid "A2"
msgstr "A2"
-#: ppdc/sample.c:20
msgid "A2 Long Edge"
msgstr "A2 長辺送り"
-#: ppdc/sample.c:21
msgid "A3"
msgstr "A3"
-#: ppdc/sample.c:22
msgid "A3 Long Edge"
msgstr "A3 長辺送り"
-#: ppdc/sample.c:23
msgid "A3 Oversize"
msgstr "A3 (特大)"
-#: ppdc/sample.c:24
msgid "A3 Oversize Long Edge"
msgstr "A3 (特大) 長辺送り"
-#: ppdc/sample.c:25
msgid "A4"
msgstr "A4"
-#: ppdc/sample.c:27
msgid "A4 Long Edge"
msgstr "A4 長辺送り"
-#: ppdc/sample.c:26
msgid "A4 Oversize"
msgstr "A4 (特大)"
-#: ppdc/sample.c:28
msgid "A4 Small"
msgstr "A4 (小)"
-#: ppdc/sample.c:29
msgid "A5"
msgstr "A5"
-#: ppdc/sample.c:31
msgid "A5 Long Edge"
msgstr "A5 長辺送り"
-#: ppdc/sample.c:30
msgid "A5 Oversize"
msgstr "A5 (特大)"
-#: ppdc/sample.c:32
msgid "A6"
msgstr "A6"
-#: ppdc/sample.c:33
msgid "A6 Long Edge"
msgstr "A6 長辺送り"
-#: ppdc/sample.c:34
msgid "A7"
msgstr "A7"
-#: ppdc/sample.c:35
msgid "A8"
msgstr "A8"
-#: ppdc/sample.c:36
msgid "A9"
msgstr "A9"
-#: ppdc/sample.c:38
msgid "ANSI A"
msgstr "ANSI A"
-#: ppdc/sample.c:39
msgid "ANSI B"
msgstr "ANSI B"
-#: ppdc/sample.c:40
msgid "ANSI C"
msgstr "ANSI C"
-#: ppdc/sample.c:41
msgid "ANSI D"
msgstr "ANSI D"
-#: ppdc/sample.c:42
msgid "ANSI E"
msgstr "ANSI E"
-#: ppdc/sample.c:47
msgid "ARCH C"
msgstr "ARCH C"
-#: ppdc/sample.c:48
msgid "ARCH C Long Edge"
msgstr "ARCH C 長辺送り"
-#: ppdc/sample.c:49
msgid "ARCH D"
msgstr "ARCH D"
-#: ppdc/sample.c:50
msgid "ARCH D Long Edge"
msgstr "ARCH D 長辺送り"
-#: ppdc/sample.c:51
msgid "ARCH E"
msgstr "ARCH E"
-#: ppdc/sample.c:52
msgid "ARCH E Long Edge"
msgstr "ARCH E 長辺送り"
-#: cgi-bin/classes.c:169 cgi-bin/printers.c:172
msgid "Accept Jobs"
msgstr "ジョブの受け付け"
-#: cups/http-support.c:1284
msgid "Accepted"
msgstr "受け付けました"
-#: cgi-bin/admin.c:570
msgid "Add Class"
msgstr "クラスの追加"
-#: cgi-bin/admin.c:882
msgid "Add Printer"
msgstr "プリンターの追加"
-#: cgi-bin/admin.c:444 cgi-bin/admin.c:477 cgi-bin/admin.c:525
-#: cgi-bin/admin.c:535
msgid "Add RSS Subscription"
msgstr "RSS 購読を追加"
-#: ppdc/sample.c:163
msgid "Address"
msgstr "アドレス"
-#: cgi-bin/admin.c:210 cgi-bin/admin.c:284 cgi-bin/admin.c:2745
msgid "Administration"
msgstr "管理"
-#: ppdc/sample.c:429
msgid "Always"
msgstr "常に有効"
-#: backend/socket.c:129
msgid "AppSocket/HP JetDirect"
msgstr "AppSocket/HP JetDirect"
-#: ppdc/sample.c:450
msgid "Applicator"
msgstr "アプリケーター"
-#: scheduler/ipp.c:1079
#, c-format
msgid "Attempt to set %s printer-state to bad value %d."
msgstr "%s printer-state に 不正な値 %d を設定しようとしています。"
-#: scheduler/ipp.c:325
#, c-format
msgid "Attribute groups are out of order (%x < %x)."
msgstr "属性グループは範囲外です (%x < %x)。"
-#: ppdc/sample.c:126
msgid "B0"
msgstr "B0"
-#: ppdc/sample.c:127
msgid "B1"
msgstr "B1"
-#: ppdc/sample.c:137
msgid "B10"
msgstr "B10"
-#: ppdc/sample.c:128
msgid "B2"
msgstr "B2"
-#: ppdc/sample.c:129
msgid "B3"
msgstr "B3"
-#: ppdc/sample.c:130
msgid "B4"
msgstr "B4"
-#: ppdc/sample.c:131
msgid "B5"
msgstr "B5"
-#: ppdc/sample.c:132
msgid "B5 Oversize"
msgstr "B5 (特大)"
-#: ppdc/sample.c:133
msgid "B6"
msgstr "B6"
-#: ppdc/sample.c:134
msgid "B7"
msgstr "B7"
-#: ppdc/sample.c:135
msgid "B8"
msgstr "B8"
-#: ppdc/sample.c:136
msgid "B9"
msgstr "B9"
-#: cups/dest.c:1680
+#, c-format
+msgid "Bad 'document-format' value \"%s\"."
+msgstr ""
+
msgid "Bad NULL dests pointer"
msgstr "不正な NULL 送信先ポインター"
-#: cups/ppd.c:345
msgid "Bad OpenGroup"
msgstr "不正な OpenGroup"
-#: cups/ppd.c:347
msgid "Bad OpenUI/JCLOpenUI"
msgstr "不正な OpenUI/JCLOpenUI"
-#: cups/ppd.c:349
msgid "Bad OrderDependency"
msgstr "不正な OrderDependency"
-#: cups/ppd-cache.c:148 cups/ppd-cache.c:195 cups/ppd-cache.c:233
-#: cups/ppd-cache.c:239 cups/ppd-cache.c:255 cups/ppd-cache.c:271
-#: cups/ppd-cache.c:280 cups/ppd-cache.c:288 cups/ppd-cache.c:305
-#: cups/ppd-cache.c:313 cups/ppd-cache.c:328 cups/ppd-cache.c:336
-#: cups/ppd-cache.c:354 cups/ppd-cache.c:366 cups/ppd-cache.c:381
-#: cups/ppd-cache.c:393 cups/ppd-cache.c:415 cups/ppd-cache.c:423
-#: cups/ppd-cache.c:441 cups/ppd-cache.c:449 cups/ppd-cache.c:464
-#: cups/ppd-cache.c:472 cups/ppd-cache.c:490 cups/ppd-cache.c:498
-#: cups/ppd-cache.c:525 cups/ppd-cache.c:571 cups/ppd-cache.c:579
-#: cups/ppd-cache.c:587
msgid "Bad PPD cache file."
msgstr "不正な PPD キャッシュファイルです。"
-#: cups/http-support.c:1299
msgid "Bad Request"
msgstr "不正なリクエスト"
-#: cups/snmp.c:1002
msgid "Bad SNMP version number"
msgstr "不正な SNMP バージョン番号"
-#: cups/ppd.c:350
msgid "Bad UIConstraints"
msgstr "不正な UIConstraints"
-#: scheduler/ipp.c:1380
#, c-format
msgid "Bad copies value %d."
msgstr "%d は不正なコピー値です。"
-#: cups/ppd.c:358
msgid "Bad custom parameter"
msgstr "不正なカスタムパラメーター"
-#: cups/http-support.c:1451 scheduler/ipp.c:2350
#, c-format
msgid "Bad device-uri \"%s\"."
msgstr "\"%s\" は無効な device-uri です。"
-#: scheduler/ipp.c:2391
#, c-format
msgid "Bad device-uri scheme \"%s\"."
msgstr "\"%s\" は無効な device-uri スキーマです。"
-#: scheduler/ipp.c:8224 scheduler/ipp.c:8240 scheduler/ipp.c:9454
-#: scheduler/ipp.c:10968
#, c-format
msgid "Bad document-format \"%s\"."
msgstr "\"%s\" は不正な document-format です。"
-#: scheduler/ipp.c:9470
#, c-format
msgid "Bad document-format-default \"%s\"."
msgstr "\"%s\" は不正な document-format-default です。"
-#: cups/util.c:929
msgid "Bad filename buffer"
msgstr "不正なファイル名バッファーです。"
-#: scheduler/ipp.c:10060
msgid "Bad job-priority value."
msgstr "不正な job-priority 値です。"
-#: scheduler/ipp.c:1410
#, c-format
msgid "Bad job-sheets value \"%s\"."
msgstr "\"%s\" は不正な job-sheets 値です。"
-#: scheduler/ipp.c:1394
msgid "Bad job-sheets value type."
msgstr "不正な job-sheets 値タイプ です。"
-#: scheduler/ipp.c:10090
msgid "Bad job-state value."
msgstr "不正な job-state 値です。"
-#: scheduler/ipp.c:2974 scheduler/ipp.c:3426 scheduler/ipp.c:6078
-#: scheduler/ipp.c:6225 scheduler/ipp.c:7658 scheduler/ipp.c:7927
-#: scheduler/ipp.c:8775 scheduler/ipp.c:9001 scheduler/ipp.c:9350
-#: scheduler/ipp.c:9953
#, c-format
msgid "Bad job-uri \"%s\"."
msgstr "\"%s\" は無効な job-uri 属性です。"
-#: scheduler/ipp.c:2049 scheduler/ipp.c:5622
#, c-format
msgid "Bad notify-pull-method \"%s\"."
msgstr "\"%s\" は無効な notify-pull-method です。"
-#: scheduler/ipp.c:2013 scheduler/ipp.c:5586
#, c-format
msgid "Bad notify-recipient-uri \"%s\"."
msgstr "URI \"%s\" は不正な notify-recipient-uri です。"
-#: scheduler/ipp.c:1426
#, c-format
msgid "Bad number-up value %d."
msgstr "%d は不正な number-up 値です。"
-#: cups/adminutil.c:292
#, c-format
msgid "Bad option + choice on line %d."
msgstr "%d 行に不正なオプションと選択があります。"
-#: scheduler/ipp.c:1443
#, c-format
msgid "Bad page-ranges values %d-%d."
msgstr "%d-%d は不正な page-ranges 値です。"
-#: scheduler/ipp.c:2434
#, c-format
msgid "Bad port-monitor \"%s\"."
msgstr "\"%s\" は無効な port-monitor です。"
-#: cups/dest.c:676 cups/dest.c:1333
msgid "Bad printer URI."
msgstr "不正なプリンター URI です。"
-#: scheduler/ipp.c:2495
#, c-format
msgid "Bad printer-state value %d."
msgstr "%d は無効な printer-state 値です。"
-#: scheduler/ipp.c:293
#, c-format
msgid "Bad request ID %d."
msgstr "%d は無効なリクエストIDです。"
-#: scheduler/ipp.c:278
#, c-format
msgid "Bad request version number %d.%d."
msgstr "バージョン番号 %d.%d は無効なリクエストです。"
-#: cgi-bin/admin.c:1484
msgid "Bad subscription ID"
msgstr "不正なサブスクリプション ID です。"
-#: cups/ppd.c:360
msgid "Bad value string"
msgstr "値文字列がありません"
-#: cgi-bin/admin.c:3290 cgi-bin/admin.c:3536
msgid "Banners"
msgstr "バナー"
-#: ppdc/sample.c:287
msgid "Bond Paper"
msgstr "ボンド紙"
-#: backend/usb-darwin.c:1846
#, c-format
msgid "Boolean expected for waiteof option \"%s\"."
msgstr "論理値は、waiteof オプション \"%s\" であるべきです"
-#: filter/pstops.c:2057
msgid "Buffer overflow detected, aborting."
msgstr "オーバーフローが検出され、中断しました。"
-#: ppdc/sample.c:254
msgid "CMYK"
msgstr "CMYK"
-#: ppdc/sample.c:363
msgid "CPCL Label Printer"
msgstr "CPCL ラベルプリンター"
-#: cgi-bin/admin.c:1485 cgi-bin/admin.c:1524 cgi-bin/admin.c:1534
msgid "Cancel RSS Subscription"
msgstr "RSS 購読をキャンセル"
-#: backend/ipp.c:1921
msgid "Canceling print job."
msgstr "プリントジョブをキャンセルしています。"
-#: scheduler/ipp.c:2475
msgid "Cannot share a remote Kerberized printer."
msgstr "リモートの Kerberos 認証のプリンターを共有できません。"
-#: ppdc/sample.c:279
msgid "Cassette"
msgstr "カセット"
-#: cgi-bin/admin.c:1655 cgi-bin/admin.c:1797 cgi-bin/admin.c:1810
-#: cgi-bin/admin.c:1821
msgid "Change Settings"
msgstr "設定の変更"
-#: scheduler/ipp.c:2061 scheduler/ipp.c:5634
#, c-format
msgid "Character set \"%s\" not supported."
msgstr "文字セット \"%s\" はサポートされていません。"
-#: cgi-bin/classes.c:195 cgi-bin/classes.c:322
msgid "Classes"
msgstr "クラス"
-#: cgi-bin/printers.c:182
msgid "Clean Print Heads"
msgstr "プリントヘッドクリーニング"
-#: scheduler/ipp.c:3878
msgid "Close-Job doesn't support the job-uri attribute."
msgstr "Close-Job は job-uri 属性をサポートしていません。"
-#: ppdc/sample.c:282
msgid "Color"
msgstr "カラー"
-#: ppdc/sample.c:253
msgid "Color Mode"
msgstr "カラーモード"
-#: berkeley/lpc.c:204
msgid ""
"Commands may be abbreviated. Commands are:\n"
"\n"
@@ -3102,88 +2433,67 @@ msgstr ""
"\n"
"exit help quit status ?"
-#: cups/snmp.c:1006
msgid "Community name uses indefinite length"
msgstr "コミュニティ名の長さが不定"
-#: backend/ipp.c:786 backend/lpd.c:871 backend/socket.c:395
msgid "Connected to printer."
msgstr "プリンターに接続しました。"
-#: backend/ipp.c:691 backend/lpd.c:694 backend/socket.c:314
msgid "Connecting to printer."
msgstr "プリンターに接続中。"
-#: cups/http-support.c:1272
msgid "Continue"
msgstr "継続"
-#: ppdc/sample.c:365
msgid "Continuous"
msgstr "連続"
-#: backend/lpd.c:1020 backend/lpd.c:1152
msgid "Control file sent successfully."
msgstr "コントロールファイルが正常に送信されました。"
-#: backend/ipp.c:1233 backend/lpd.c:464
msgid "Copying print data."
msgstr "印刷データをコピーしています。"
-#: cups/http-support.c:1281
msgid "Created"
msgstr "ジョブ作成"
-#: cups/ppd.c:1113 cups/ppd.c:1153 cups/ppd.c:1398 cups/ppd.c:1501
msgid "Custom"
msgstr "カスタム"
-#: ppdc/sample.c:359
msgid "CustominCutInterval"
msgstr "CustominCutInterval"
-#: ppdc/sample.c:357
msgid "CustominTearInterval"
msgstr "CustominTearInterval"
-#: ppdc/sample.c:343
msgid "Cut"
msgstr "カット"
-#: ppdc/sample.c:451
msgid "Cutter"
msgstr "カッター"
-#: ppdc/sample.c:239
msgid "Dark"
msgstr "濃い"
-#: ppdc/sample.c:235
msgid "Darkness"
msgstr "濃さ"
-#: backend/lpd.c:1105
msgid "Data file sent successfully."
msgstr "データファイルが正常に送信されました"
-#: cgi-bin/admin.c:2094 cgi-bin/admin.c:2105 cgi-bin/admin.c:2150
msgid "Delete Class"
msgstr "クラスの削除"
-#: cgi-bin/admin.c:2179 cgi-bin/admin.c:2190 cgi-bin/admin.c:2235
msgid "Delete Printer"
msgstr "プリンターの削除"
-#: ppdc/sample.c:281
msgid "DeskJet Series"
msgstr "DeskJet シリーズ"
-#: scheduler/ipp.c:1346
#, c-format
msgid "Destination \"%s\" is not accepting jobs."
msgstr "宛先 \"%s\" はジョブを受け付けていません。"
-#: systemv/lpinfo.c:300
#, c-format
msgid ""
"Device: uri = %s\n"
@@ -3200,92 +2510,73 @@ msgstr ""
" device-id = %s\n"
" location = %s"
-#: ppdc/sample.c:436
msgid "Direct Thermal Media"
msgstr "感熱紙"
-#: cups/file.c:296
#, c-format
msgid "Directory \"%s\" contains a relative path."
msgstr "ディレクトリー \"%s\" は相対パスを含んでいます。"
-#: cups/file.c:268
#, c-format
msgid "Directory \"%s\" has insecure permissions (0%o/uid=%d/gid=%d)."
-msgstr "ディレクトリー \"%s\" は安全でないパーミッションが与えられています (0%o/uid=%d/gid=%d)。"
+msgstr ""
+"ディレクトリー \"%s\" は安全でないパーミッションが与えられています (0%o/uid="
+"%d/gid=%d)。"
-#: cups/file.c:285
#, c-format
msgid "Directory \"%s\" is a file."
msgstr "ディレクトリー \"%s\" はファイルです。"
-#: cups/file.c:256
#, c-format
msgid "Directory \"%s\" not available: %s"
msgstr "ディレクトリー \"%s\" は利用できません: %s"
-#: cups/file.c:241
#, c-format
msgid "Directory \"%s\" permissions OK (0%o/uid=%d/gid=%d)."
-msgstr "ディレクトリー \"%s\" のパーミッションは問題ありません (0%o/uid=%d/gid=%d)。"
+msgstr ""
+"ディレクトリー \"%s\" のパーミッションは問題ありません (0%o/uid=%d/gid=%d)。"
-#: ppdc/sample.c:345
msgid "Disabled"
msgstr "無効"
-#: scheduler/ipp.c:6127
#, c-format
msgid "Document #%d does not exist in job #%d."
msgstr "ドキュメント #%d がジョブ #%d に見つかりません。"
-#: ppdc/sample.c:275
msgid "Duplexer"
msgstr "両面オプション"
-#: ppdc/sample.c:229
msgid "Dymo"
msgstr "Dymo"
-#: ppdc/sample.c:431
msgid "EPL1 Label Printer"
msgstr "EPL1 ラベルプリンター"
-#: ppdc/sample.c:434
msgid "EPL2 Label Printer"
msgstr "EPL2 ラベルプリンター"
-#: cgi-bin/admin.c:1849 cgi-bin/admin.c:1861 cgi-bin/admin.c:1915
-#: cgi-bin/admin.c:1922 cgi-bin/admin.c:1957 cgi-bin/admin.c:1970
-#: cgi-bin/admin.c:1994 cgi-bin/admin.c:2067
msgid "Edit Configuration File"
msgstr "設定ファイルの編集"
-#: cups/adminutil.c:337
msgid "Empty PPD file."
msgstr "PPD ファイルが空です。"
#. TRANSLATORS: Banner/cover sheet after the print job.
-#: cgi-bin/admin.c:3561
msgid "Ending Banner"
msgstr "終了バナー"
-#: ppdc/sample.c:2
msgid "English"
msgstr "English"
-#: systemv/lppasswd.c:193
msgid "Enter old password:"
msgstr "古いパスワードを入力:"
-#: systemv/lppasswd.c:224
msgid "Enter password again:"
msgstr "パスワードを再度入力:"
-#: systemv/lppasswd.c:212
msgid "Enter password:"
msgstr "パスワードを入力:"
-#: scheduler/client.c:2427
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 "
@@ -3295,847 +2586,653 @@ msgstr ""
"root のユーザー名とパスワードを入力してください。Kerberos 認証を使用している"
"場合、有効な Kerberos チケットがあることを確認してください。"
-#: ppdc/sample.c:73
msgid "Envelope #10 "
msgstr "封筒 #10"
-#: ppdc/sample.c:74
msgid "Envelope #11"
msgstr "封筒 #11"
-#: ppdc/sample.c:75
msgid "Envelope #12"
msgstr "封筒 #12"
-#: ppdc/sample.c:76
msgid "Envelope #14"
msgstr "封筒 #14"
-#: ppdc/sample.c:77
msgid "Envelope #9"
msgstr "封筒 #9"
-#: ppdc/sample.c:89
msgid "Envelope B4"
msgstr "封筒 B4"
-#: ppdc/sample.c:90
msgid "Envelope B5"
msgstr "封筒 B5"
-#: ppdc/sample.c:91
msgid "Envelope B6"
msgstr "封筒 B6"
-#: ppdc/sample.c:78
msgid "Envelope C0"
msgstr "封筒 C0"
-#: ppdc/sample.c:79
msgid "Envelope C1"
msgstr "封筒 C1"
-#: ppdc/sample.c:80
msgid "Envelope C2"
msgstr "封筒 C2"
-#: ppdc/sample.c:81
msgid "Envelope C3"
msgstr "封筒 C3"
-#: ppdc/sample.c:67
msgid "Envelope C4"
msgstr "封筒 C4"
-#: ppdc/sample.c:68
msgid "Envelope C5"
msgstr "封筒 C5"
-#: ppdc/sample.c:69
msgid "Envelope C6"
msgstr "封筒 C6"
-#: ppdc/sample.c:82
msgid "Envelope C65"
msgstr "封筒 C65"
-#: ppdc/sample.c:83
msgid "Envelope C7"
msgstr "封筒 C7"
-#: ppdc/sample.c:84
msgid "Envelope Choukei 3"
msgstr "封筒 長形3号"
-#: ppdc/sample.c:85
msgid "Envelope Choukei 3 Long Edge"
msgstr "封筒 長形3号 長辺送り"
-#: ppdc/sample.c:86
msgid "Envelope Choukei 4"
msgstr "封筒 長形4号"
-#: ppdc/sample.c:87
msgid "Envelope Choukei 4 Long Edge"
msgstr "封筒 長形4号 長辺送り"
-#: ppdc/sample.c:70
msgid "Envelope DL"
msgstr "封筒 DL"
-#: ppdc/sample.c:269
msgid "Envelope Feed"
msgstr "封筒フィード"
-#: ppdc/sample.c:88
msgid "Envelope Invite"
msgstr "招待状封筒"
-#: ppdc/sample.c:92
msgid "Envelope Italian"
msgstr "イタリア封筒"
-#: ppdc/sample.c:93
msgid "Envelope Kaku2"
msgstr "封筒 角2"
-#: ppdc/sample.c:94
msgid "Envelope Kaku2 Long Edge"
msgstr "封筒 角2 長辺送り"
-#: ppdc/sample.c:95
msgid "Envelope Kaku3"
msgstr "封筒 角3"
-#: ppdc/sample.c:96
msgid "Envelope Kaku3 Long Edge"
msgstr "封筒 角3 長辺送り"
-#: ppdc/sample.c:97
msgid "Envelope Monarch"
msgstr "封筒 Monarch"
-#: ppdc/sample.c:99
msgid "Envelope PRC1 "
msgstr "封筒 PRC1"
-#: ppdc/sample.c:100
msgid "Envelope PRC1 Long Edge"
msgstr "封筒 PRC1 長辺送り"
-#: ppdc/sample.c:117
msgid "Envelope PRC10"
msgstr "封筒 PRC10"
-#: ppdc/sample.c:118
msgid "Envelope PRC10 Long Edge"
msgstr "封筒 PRC10 長辺送り"
-#: ppdc/sample.c:101
msgid "Envelope PRC2"
msgstr "封筒 PRC2"
-#: ppdc/sample.c:102
msgid "Envelope PRC2 Long Edge"
msgstr "封筒 PRC2 長辺送り"
-#: ppdc/sample.c:103
msgid "Envelope PRC3"
msgstr "封筒 PRC3"
-#: ppdc/sample.c:104
msgid "Envelope PRC3 Long Edge"
msgstr "封筒 PRC3 長辺送り"
-#: ppdc/sample.c:105
msgid "Envelope PRC4"
msgstr "封筒 PRC4"
-#: ppdc/sample.c:106
msgid "Envelope PRC4 Long Edge"
msgstr "封筒 PRC4 長辺送り"
-#: ppdc/sample.c:108
msgid "Envelope PRC5 Long Edge"
msgstr "封筒 PRC5 長辺送り"
-#: ppdc/sample.c:107
msgid "Envelope PRC5PRC5"
msgstr "封筒 PRC5"
-#: ppdc/sample.c:109
msgid "Envelope PRC6"
msgstr "封筒 PRC6"
-#: ppdc/sample.c:110
msgid "Envelope PRC6 Long Edge"
msgstr "封筒 PRC6 長辺送り"
-#: ppdc/sample.c:111
msgid "Envelope PRC7"
msgstr "封筒 PRC7"
-#: ppdc/sample.c:112
msgid "Envelope PRC7 Long Edge"
msgstr "封筒 PRC7 長辺送り"
-#: ppdc/sample.c:113
msgid "Envelope PRC8"
msgstr "封筒 PRC8"
-#: ppdc/sample.c:114
msgid "Envelope PRC8 Long Edge"
msgstr "封筒 PRC8 長辺送り"
-#: ppdc/sample.c:115
msgid "Envelope PRC9"
msgstr "封筒 PRC9"
-#: ppdc/sample.c:116
msgid "Envelope PRC9 Long Edge"
msgstr "封筒 PRC9 長辺送り"
-#: ppdc/sample.c:98
msgid "Envelope Personal"
msgstr "パーソナル封筒"
-#: ppdc/sample.c:119
msgid "Envelope You4"
msgstr "封筒 洋形4号"
-#: ppdc/sample.c:120
msgid "Envelope You4 Long Edge"
msgstr "封筒 洋形4号 長辺送り"
-#: ppdc/sample.c:240
msgid "Epson"
msgstr "Epson"
-#: cgi-bin/admin.c:3604
msgid "Error Policy"
msgstr "エラーポリシー"
-#: filter/rastertopwg.c:403 filter/rastertopwg.c:418 filter/rastertopwg.c:429
-#: filter/rastertopwg.c:440
msgid "Error sending raster data."
msgstr "ラスターデータの送信でエラーが起きました。"
-#: systemv/lpinfo.c:103 systemv/lpmove.c:88
msgid "Error: need hostname after \"-h\" option."
msgstr "Error: '-h' オプションのあとにはホスト名が必要です。"
-#: ppdc/sample.c:355
msgid "Every 10 Labels"
msgstr "10 ラベルごと"
-#: ppdc/sample.c:347
msgid "Every 2 Labels"
msgstr "2 ラベルごと"
-#: ppdc/sample.c:348
msgid "Every 3 Labels"
msgstr "3 ラベルごと"
-#: ppdc/sample.c:349
msgid "Every 4 Labels"
msgstr "4 ラベルごと"
-#: ppdc/sample.c:350
msgid "Every 5 Labels"
msgstr "5 ラベルごと"
-#: ppdc/sample.c:351
msgid "Every 6 Labels"
msgstr "6 ラベルごと"
-#: ppdc/sample.c:352
msgid "Every 7 Labels"
msgstr "7 ラベルごと"
-#: ppdc/sample.c:353
msgid "Every 8 Labels"
msgstr "8 ラベルごと"
-#: ppdc/sample.c:354
msgid "Every 9 Labels"
msgstr "9 ラベルごと"
-#: ppdc/sample.c:346
msgid "Every Label"
msgstr "すべてのラベル"
-#: ppdc/sample.c:121
msgid "Executive"
msgstr "エグゼクティブ"
-#: cups/http-support.c:1327
msgid "Expectation Failed"
msgstr "予測に失敗しました"
-#: cgi-bin/admin.c:2356 cgi-bin/admin.c:2375
msgid "Export Printers to Samba"
msgstr "Samba へプリンターをエクスポート"
-#: systemv/cupstestdsc.c:172 systemv/cupstestdsc.c:189
-#: systemv/cupstestdsc.c:214 systemv/cupstestdsc.c:231
-#: systemv/cupstestdsc.c:255 systemv/cupstestdsc.c:273
-#: systemv/cupstestdsc.c:302 systemv/cupstestdsc.c:339
-#: systemv/cupstestdsc.c:349 systemv/cupstestdsc.c:359
-#: systemv/cupstestdsc.c:369 systemv/cupstestdsc.c:379
-#: systemv/cupstestdsc.c:387
msgid "FAIL"
msgstr "失敗"
-#: ppdc/sample.c:122
msgid "FanFold German"
msgstr "FanFold German"
-#: ppdc/sample.c:123
msgid "FanFold Legal German"
msgstr "FanFold Legal German"
-#: ppdc/sample.c:124
msgid "Fanfold US"
msgstr "Fanfold US"
-#: cups/file.c:300
#, c-format
msgid "File \"%s\" contains a relative path."
msgstr "ファイル \"%s\" は相対パスを含んでいます。"
-#: cups/file.c:275
#, c-format
msgid "File \"%s\" has insecure permissions (0%o/uid=%d/gid=%d)."
-msgstr "ファイル \"%s\" は安全でないパーミッションが与えられています (0%o/uid=%d/gid=%d)。"
+msgstr ""
+"ファイル \"%s\" は安全でないパーミッションが与えられています (0%o/uid=%d/gid="
+"%d)。"
-#: cups/file.c:289
#, c-format
msgid "File \"%s\" is a directory."
msgstr "ファイル \"%s\" はディレクトリーです。"
-#: cups/file.c:261
#, c-format
msgid "File \"%s\" not available: %s"
msgstr "ファイル \"%s\" は利用できません: %s"
-#: cups/file.c:247
#, c-format
msgid "File \"%s\" permissions OK (0%o/uid=%d/gid=%d)."
msgstr "ファイル \"%s\" のパーミッションは問題ありません (0%o/uid=%d/gid=%d)。"
-#: ppdc/sample.c:169
msgid "File Folder "
msgstr "ファイルフォルダー"
-#: scheduler/ipp.c:2370
#, c-format
msgid ""
"File device URIs have been disabled. To enable, see the FileDevice directive "
"in \"%s/cupsd.conf\"."
-msgstr "ファイルデバイス URI は無効になっています。有効にするには、\"%s/cupsd.conf\" の FileDevice ディレクティブを参照してください。"
+msgstr ""
+"ファイルデバイス URI は無効になっています。有効にするには、\"%s/cupsd.conf\" "
+"の FileDevice ディレクティブを参照してください。"
-#: filter/rastertoepson.c:1117 filter/rastertohp.c:845
-#: filter/rastertolabel.c:1273
#, c-format
msgid "Finished page %d."
msgstr "ページ %d を終了。"
-#: ppdc/sample.c:125
msgid "Folio"
msgstr "フォリオ"
-#: cups/http-support.c:1306
msgid "Forbidden"
msgstr "Forbidden"
-#: cups/ppd.c:742 cups/ppd.c:1302
msgid "General"
msgstr "一般"
-#: ppdc/sample.c:259
msgid "Generic"
msgstr "汎用"
-#: cups/snmp.c:1016
msgid "Get-Response-PDU uses indefinite length"
msgstr "Get-Response-PDU は不確定の長さを使用しています"
-#: ppdc/sample.c:290
msgid "Glossy Paper"
msgstr "光沢紙"
-#: scheduler/ipp.c:2952 scheduler/ipp.c:3352 scheduler/ipp.c:3890
-#: scheduler/ipp.c:6056 scheduler/ipp.c:6203 scheduler/ipp.c:7635
-#: scheduler/ipp.c:8753 scheduler/ipp.c:8979 scheduler/ipp.c:9328
-#: scheduler/ipp.c:9931
msgid "Got a printer-uri attribute but no job-id."
msgstr "printer-uri 属性を取得しましたが、job-id を取得できませんでした。"
-#: ppdc/sample.c:255
msgid "Grayscale"
msgstr "グレースケール"
-#: ppdc/sample.c:280
msgid "HP"
msgstr "HP"
-#: ppdc/sample.c:170
msgid "Hanging Folder"
msgstr "Hanging Folder"
-#: cgi-bin/help.c:143
msgid "Help file not in index."
msgstr "ヘルプファイルが索引に含まれていません。"
-#: cups/ipp.c:2687 cups/ipp.c:2714 cups/ipp.c:2737
msgid "IPP 1setOf attribute with incompatible value tags."
msgstr "IPP の 1setOf 属性が value タグと互換性がありません。"
-#: cups/ipp.c:2650
msgid "IPP attribute has no name."
msgstr "IPP の属性に名前がありません。"
-#: cups/ipp.c:5487
msgid "IPP attribute is not a member of the message."
msgstr "IPP の属性がメッセージのメンバーではありません。"
-#: cups/ipp.c:3083
msgid "IPP begCollection value not 0 bytes."
msgstr "IPP の begCollection は想定された 0 バイトになっていません。"
-#: cups/ipp.c:2873
msgid "IPP boolean value not 1 byte."
msgstr "IPP の真偽値が想定された 1 バイトになっていません。"
-#: cups/ipp.c:2934
msgid "IPP date value not 11 bytes."
msgstr "IPP の date 値は想定された 11 バイトになっていません。"
-#: cups/ipp.c:3104
msgid "IPP endCollection value not 0 bytes."
msgstr "IPP の endCollection は想定された 0 バイトになっていません。"
-#: cups/ipp.c:2848
msgid "IPP enum value not 4 bytes."
msgstr "IPP の enum 値は想定された 4 バイトになっていません。"
-#: cups/ipp.c:2579
msgid "IPP extension tag larger than 0x7FFFFFFF."
msgstr "IPP の拡張タグが 0x7FFFFFFF より大きいです。"
-#: cups/ipp.c:2845
msgid "IPP integer value not 4 bytes."
msgstr "IPP の整数値は想定された 4 バイトになっていません。"
-#: cups/ipp.c:3045
msgid "IPP language length overflows value."
msgstr "IPP の language length の値がオーバーフローしています。"
-#: cups/ipp.c:2764
+msgid "IPP language length too large."
+msgstr ""
+
msgid "IPP member name is not empty."
msgstr "IPP のメンバー名が空ではありません。"
-#: cups/ipp.c:3122
msgid "IPP memberName value is empty."
msgstr "IPP の memberName の値が空です。"
-#: cups/ipp.c:2633
+msgid "IPP memberName with no attribute."
+msgstr ""
+
msgid "IPP name larger than 32767 bytes."
msgstr "IPP 名が 32767 バイトより大きいです。"
-#: cups/ipp.c:3011
msgid "IPP nameWithLanguage value less than minimum 4 bytes."
msgstr "IPP の nameWithLanguage が最小値 4 バイト未満です。"
-#: cups/ipp.c:2979
+msgid "IPP nameWithLanguage value more than maximum 1090 bytes."
+msgstr ""
+
+msgid "IPP octetString length too large."
+msgstr ""
+
msgid "IPP rangeOfInteger value not 8 bytes."
msgstr "IPP の rangeOfInteger は想定された 8 バイトになっていません。"
-#: cups/ipp.c:2952
msgid "IPP resolution value not 9 bytes."
msgstr "IPP の resolution は想定された 9 バイトになっていません。"
-#: cups/ipp.c:3063
msgid "IPP string length overflows value."
msgstr "IPP の文字列長の値がオーバーフローしています。"
-#: cups/ipp.c:3007
+msgid "IPP string value too large."
+msgstr ""
+
+msgid "IPP text length too large."
+msgstr ""
+
msgid "IPP textWithLanguage value less than minimum 4 bytes."
msgstr "IPP の textWithLanguage の値が最小値 4 バイト未満です。"
-#: cups/ipp.c:2831
+msgid "IPP textWithLanguage value more than maximum 1090 bytes."
+msgstr ""
+
msgid "IPP value larger than 32767 bytes."
msgstr "IPP の値が 32767 バイト以上です。"
-#: ppdc/sample.c:1
msgid "ISOLatin1"
msgstr "ISOLatin1"
-#: cups/ppd.c:353
msgid "Illegal control character"
msgstr "不正な制御文字"
-#: cups/ppd.c:354
msgid "Illegal main keyword string"
msgstr "不正なメインキーワード文字列"
-#: cups/ppd.c:355
msgid "Illegal option keyword string"
msgstr "不正なオプションキーワード文字列"
-#: cups/ppd.c:356
msgid "Illegal translation string"
msgstr "不正な翻訳文字列"
-#: cups/ppd.c:357
msgid "Illegal whitespace character"
msgstr "不正な空白文字"
-#: ppdc/sample.c:274
msgid "Installable Options"
msgstr "インストール可能オプション"
-#: ppdc/sample.c:277
msgid "Installed"
msgstr "インストールされています"
-#: ppdc/sample.c:293
msgid "IntelliBar Label Printer"
msgstr "IntelliBar ラベルプリンター"
-#: ppdc/sample.c:292
msgid "Intellitech"
msgstr "Intellitech"
-#: cups/http-support.c:1333
msgid "Internal Server Error"
msgstr "サーバー内部エラー"
-#: cups/ppd.c:344
msgid "Internal error"
msgstr "内部エラー"
-#: ppdc/sample.c:167
msgid "Internet Postage 2-Part"
msgstr "Internet Postage 2-Part"
-#: ppdc/sample.c:168
msgid "Internet Postage 3-Part"
msgstr "Internet Postage 3-Part"
-#: backend/ipp.c:307
msgid "Internet Printing Protocol"
msgstr "インターネット印刷プロトコル"
-#: cups/dest-options.c:839
msgid "Invalid media size."
msgstr "無効なメディアサイズです。"
-#: filter/commandtops.c:125
#, c-format
msgid "Invalid printer command \"%s\"."
msgstr "無効なプリンターコマンドです。 \"%s\""
-#: cups/ppd.c:1420
msgid "JCL"
msgstr "JCL"
-#: ppdc/sample.c:53
msgid "JIS B0"
msgstr "JIS B0"
-#: ppdc/sample.c:55
msgid "JIS B1"
msgstr "JIS B1"
-#: ppdc/sample.c:54
msgid "JIS B10"
msgstr "JIS B10"
-#: ppdc/sample.c:56
msgid "JIS B2"
msgstr "JIS B2"
-#: ppdc/sample.c:57
msgid "JIS B3"
msgstr "JIS B3"
-#: ppdc/sample.c:58
msgid "JIS B4"
msgstr "JIS B4"
-#: ppdc/sample.c:59
msgid "JIS B4 Long Edge"
msgstr "JIS B4 長辺送り"
-#: ppdc/sample.c:60
msgid "JIS B5"
msgstr "JIS B5"
-#: ppdc/sample.c:61
msgid "JIS B5 Long Edge"
msgstr "JIS B5 長辺送り"
-#: ppdc/sample.c:62
msgid "JIS B6"
msgstr "JIS B6"
-#: ppdc/sample.c:63
msgid "JIS B6 Long Edge"
msgstr "JIS B6 長辺送り"
-#: ppdc/sample.c:64
msgid "JIS B7"
msgstr "JIS B7"
-#: ppdc/sample.c:65
msgid "JIS B8"
msgstr "JIS B8"
-#: ppdc/sample.c:66
msgid "JIS B9"
msgstr "JIS B9"
-#: scheduler/ipp.c:9051
#, c-format
msgid "Job #%d cannot be restarted - no files."
msgstr "ジョブ番号 %d を再開できません - ファイルが見つかりません。"
-#: scheduler/ipp.c:2992 scheduler/ipp.c:3222 scheduler/ipp.c:3277
-#: scheduler/ipp.c:3454 scheduler/ipp.c:3900 scheduler/ipp.c:5720
-#: scheduler/ipp.c:6096 scheduler/ipp.c:6243 scheduler/ipp.c:6543
-#: scheduler/ipp.c:7482 scheduler/ipp.c:7504 scheduler/ipp.c:7676
-#: scheduler/ipp.c:7901 scheduler/ipp.c:7944 scheduler/ipp.c:8793
-#: scheduler/ipp.c:9019 scheduler/ipp.c:9368 scheduler/ipp.c:9971
#, c-format
msgid "Job #%d does not exist."
msgstr "ジョブ番号 %d は存在しません。"
-#: scheduler/ipp.c:3486
#, c-format
msgid "Job #%d is already aborted - can't cancel."
msgstr "ジョブ番号 %d はすでに中断されています - キャンセルできません。"
-#: scheduler/ipp.c:3480
#, c-format
msgid "Job #%d is already canceled - can't cancel."
msgstr "ジョブ番号 %d はすでにキャンセルされています - キャンセルできません。"
-#: scheduler/ipp.c:3492
#, c-format
msgid "Job #%d is already completed - can't cancel."
msgstr "ジョブ番号 %d はすでに完了しています - キャンセルできません。"
-#: scheduler/ipp.c:7702 scheduler/ipp.c:7986 scheduler/ipp.c:9986
#, c-format
msgid "Job #%d is finished and cannot be altered."
msgstr "ジョブ番号 %d はすでに終了し、変更できません。"
-#: scheduler/ipp.c:9033
#, c-format
msgid "Job #%d is not complete."
msgstr "ジョブ番号 %d は完了していません。"
-#: scheduler/ipp.c:3007
#, c-format
msgid "Job #%d is not held for authentication."
msgstr "ジョブ番号 %d は認証のために保留されていません。"
-#: scheduler/ipp.c:8807
#, c-format
msgid "Job #%d is not held."
msgstr "ジョブ番号 %d は保留されていません。"
-#: cgi-bin/ipp-var.c:1055
msgid "Job Completed"
msgstr "ジョブ完了"
-#: cgi-bin/ipp-var.c:1053
msgid "Job Created"
msgstr "ジョブ作成"
-#: cgi-bin/ipp-var.c:1059
msgid "Job Options Changed"
msgstr "ジョブオプション変更"
-#: cgi-bin/ipp-var.c:1057
msgid "Job Stopped"
msgstr "ジョブ中止"
-#: scheduler/ipp.c:10068
msgid "Job is completed and cannot be changed."
msgstr "ジョブは完了し変更できません。"
-#: cgi-bin/jobs.c:198
msgid "Job operation failed"
msgstr "ジョブ操作失敗"
-#: scheduler/ipp.c:10104 scheduler/ipp.c:10123 scheduler/ipp.c:10134
msgid "Job state cannot be changed."
msgstr "ジョブの状態を変更できません。"
-#: scheduler/ipp.c:8899
msgid "Job subscriptions cannot be renewed."
msgstr "ジョブサブスクリプションを更新できません。"
-#: cgi-bin/jobs.c:103 cgi-bin/jobs.c:114 cgi-bin/jobs.c:195
msgid "Jobs"
msgstr "ジョブ"
-#: backend/lpd.c:185
msgid "LPD/LPR Host or Printer"
msgstr "LPD/LPR ホストまたはプリンター"
-#: ppdc/sample.c:230
msgid "Label Printer"
msgstr "ラベルプリンター"
-#: ppdc/sample.c:446
msgid "Label Top"
msgstr "ラベルトップ"
-#: scheduler/ipp.c:2070 scheduler/ipp.c:5643
#, c-format
msgid "Language \"%s\" not supported."
msgstr "言語 \"%s\" はサポートされていません。"
-#: ppdc/sample.c:164
msgid "Large Address"
msgstr "ラージアドレス"
-#: ppdc/sample.c:291
msgid "LaserJet Series PCL 4/5"
msgstr "LaserJet Series PCL 4/5"
-#: ppdc/sample.c:43
msgid "Letter Oversize"
msgstr "US レター (特大)"
-#: ppdc/sample.c:44
msgid "Letter Oversize Long Edge"
msgstr "US レター (特大) 長辺送り"
-#: ppdc/sample.c:236
msgid "Light"
msgstr "薄い"
-#: cups/ppd.c:352
msgid "Line longer than the maximum allowed (255 characters)"
msgstr "1 行が最大値 (255 文字) を超えています"
-#: cgi-bin/admin.c:2393
msgid "List Available Printers"
msgstr "使用可能なプリンターをリスト化"
-#: ppdc/sample.c:272
msgid "Long-Edge (Portrait)"
msgstr "長辺給紙 (縦向き)"
-#: cups/http-support.c:1558
msgid "Looking for printer."
msgstr "プリンターを探しています。"
-#: ppdc/sample.c:268
msgid "Manual Feed"
msgstr "手差し"
-#: cups/ppd.c:789 cups/ppd.c:1357
msgid "Media Size"
msgstr "用紙サイズ"
-#: cups/ppd.c:793 cups/ppd.c:1361 ppdc/sample.c:262
msgid "Media Source"
msgstr "給紙"
-#: ppdc/sample.c:364
msgid "Media Tracking"
msgstr "用紙の経路"
-#: cups/ppd.c:791 cups/ppd.c:1359 ppdc/sample.c:285
msgid "Media Type"
msgstr "用紙種類"
-#: ppdc/sample.c:237
msgid "Medium"
msgstr "紙質"
-#: cups/ppd.c:341
msgid "Memory allocation error"
msgstr "メモリー割り当てエラー"
-#: cups/ppd.c:361
msgid "Missing CloseGroup"
msgstr "CloseGroup がありません"
-#: cups/ppd.c:342
msgid "Missing PPD-Adobe-4.x header"
msgstr "PPD-Adobe-4.x ヘッダーがありません"
-#: cups/ppd.c:351
msgid "Missing asterisk in column 1"
msgstr "1 列目にアスタリスクがありません"
-#: scheduler/ipp.c:6119
msgid "Missing document-number attribute."
msgstr "document-number 属性がありません。"
-#: cups/adminutil.c:273
#, c-format
msgid "Missing double quote on line %d."
msgstr "%d 行に二重引用符がありません。"
-#: cgi-bin/admin.c:736 cgi-bin/admin.c:2106 cgi-bin/admin.c:2191
-#: cgi-bin/admin.c:2785 cgi-bin/admin.c:3039 cgi-bin/admin.c:3150
-#: cgi-bin/admin.c:3860
msgid "Missing form variable"
msgstr "form 変数がありません。"
-#: scheduler/ipp.c:9422
msgid "Missing last-document attribute in request."
msgstr "リクエストに last-document 属性がありません。"
-#: cups/pwg-media.c:535
msgid "Missing media or media-col."
msgstr "media または media-col がありません。"
-#: cups/pwg-media.c:454
msgid "Missing media-size in media-col."
msgstr "media-col に media-size がありません。"
-#: scheduler/ipp.c:6673
msgid "Missing notify-subscription-ids attribute."
msgstr "notify-subscription-ids 属性がありません。"
-#: cups/ppd.c:359
msgid "Missing option keyword"
msgstr "オプションキーワードがありません"
-#: scheduler/ipp.c:3133 scheduler/ipp.c:3158
msgid "Missing requesting-user-name attribute."
msgstr "requesting-user-name 属性が設定されていません。"
-#: scheduler/ipp.c:461
msgid "Missing required attributes."
msgstr "必須の属性が設定されていません。"
-#: cups/adminutil.c:254
#, c-format
msgid "Missing value on line %d."
msgstr "%d 行に値がありません。"
-#: cups/ppd.c:343
msgid "Missing value string"
msgstr "値文字列がありません"
-#: cups/pwg-media.c:442
msgid "Missing x-dimension in media-size."
msgstr "media-size に x-dimension がありません。"
-#: cups/pwg-media.c:448
msgid "Missing y-dimension in media-size."
msgstr "media-size に y-dimension がありません。"
-#: systemv/lpinfo.c:470
#, c-format
msgid ""
"Model: name = %s\n"
@@ -4148,882 +3245,669 @@ msgstr ""
" プリンタードライバー = %s\n"
" デバイス ID = %s"
-#: cgi-bin/admin.c:570
msgid "Modify Class"
msgstr "クラスの変更"
-#: cgi-bin/admin.c:882
msgid "Modify Printer"
msgstr "プリンターの変更"
-#: cgi-bin/ipp-var.c:425 cgi-bin/ipp-var.c:516
msgid "Move All Jobs"
msgstr "すべてのジョブの移動"
-#: cgi-bin/ipp-var.c:364 cgi-bin/ipp-var.c:423 cgi-bin/ipp-var.c:514
msgid "Move Job"
msgstr "ジョブの移動"
-#: cups/http-support.c:1290
msgid "Moved Permanently"
msgstr "別の場所へ移動しました"
-#: cups/ppd.c:340
msgid "NULL PPD file pointer"
msgstr "PPD ファイルポインターが NULL です"
-#: cups/snmp.c:1053
msgid "Name OID uses indefinite length"
msgstr "OID 名は限定的な長さを使用します"
-#: scheduler/ipp.c:1142
msgid "Nested classes are not allowed."
msgstr "入れ子になったクラスは許可されていません。"
-#: ppdc/sample.c:430
msgid "Never"
msgstr "Never"
-#: ppdc/sample.c:256
msgid "New Stylus Color Series"
msgstr "New Stylus Color シリーズ"
-#: ppdc/sample.c:258
msgid "New Stylus Photo Series"
msgstr "New Stylus Photo シリーズ"
-#: cups/ppd.c:1949
msgid "No"
msgstr "いいえ"
-#: cups/http-support.c:1287
msgid "No Content"
msgstr "中身がありません"
-#: cups/util.c:1298
msgid "No PPD name"
msgstr "PPD の名前がありません"
-#: cups/snmp.c:1047
msgid "No VarBind SEQUENCE"
msgstr "VarBind SEQUENCE がありません"
-#: cups/adminutil.c:788
msgid "No Windows printer drivers are installed."
msgstr "Windows プリンタードライバーがインストールされていません。"
-#: cups/request.c:566 cups/request.c:908
msgid "No active connection"
msgstr "アクティブな接続はありません"
-#: scheduler/ipp.c:3403
#, c-format
msgid "No active jobs on %s."
msgstr "%s にはアクティブなジョブはありません。"
-#: scheduler/ipp.c:302
msgid "No attributes in request."
msgstr "リクエストに属性がありません。"
-#: scheduler/ipp.c:3034
msgid "No authentication information provided."
msgstr "認証情報が提供されていません。"
-#: cups/snmp.c:1004
msgid "No community name"
msgstr "コミュニティ名がありません"
-#: scheduler/ipp.c:5919
msgid "No default printer."
msgstr "デフォルトのプリンターはありません"
-#: cgi-bin/ipp-var.c:436 scheduler/ipp.c:7248
msgid "No destinations added."
msgstr "追加された宛先はありません"
-#: backend/usb.c:200
msgid "No device URI found in argv[0] or in DEVICE_URI environment variable."
-msgstr "ERROR: argv[0] または 環境変数 DEVICE_URI にデバイス URI が見つかりません。"
+msgstr ""
+"ERROR: argv[0] または 環境変数 DEVICE_URI にデバイス URI が見つかりません。"
-#: cups/snmp.c:1034
msgid "No error-index"
msgstr "エラーインデックスがありません"
-#: cups/snmp.c:1026
msgid "No error-status"
msgstr "エラーステータスがありません"
-#: scheduler/ipp.c:8190 scheduler/ipp.c:9436
msgid "No file in print request."
msgstr "印刷リクエストにファイルがありません。"
-#: cups/util.c:923
msgid "No modification time"
msgstr "変更時刻がありません。"
-#: cups/snmp.c:1051
msgid "No name OID"
msgstr "OID 名がありません"
-#: filter/rastertoepson.c:1147 filter/rastertohp.c:876
-#: filter/rastertolabel.c:1302
msgid "No pages were found."
msgstr "ERROR: ページが見つかりません。"
-#: cups/util.c:917
msgid "No printer name"
msgstr "プリンター名がありません。"
-#: cups/util.c:1801
msgid "No printer-uri found"
msgstr "プリンター URI が見つかりません。"
-#: cups/util.c:1786
msgid "No printer-uri found for class"
msgstr "クラスのプリンター URI が見つかりません。"
-#: scheduler/ipp.c:6322
msgid "No printer-uri in request."
msgstr "プリンター URI のリクエストがありません。"
-#: cups/snmp.c:1018
msgid "No request-id"
msgstr "リクエストID がありません"
-#: scheduler/ipp.c:5528
msgid "No subscription attributes in request."
msgstr "リクエストにサブスクリプション属性がありません。"
-#: scheduler/ipp.c:7575
msgid "No subscriptions found."
msgstr "サブスクリプションが見つかりません。"
-#: cups/snmp.c:1042
msgid "No variable-bindings SEQUENCE"
msgstr "variable-bindings SEQUENCE がありません"
-#: cups/snmp.c:997
msgid "No version number"
msgstr "バージョン名がありません"
-#: ppdc/sample.c:367
msgid "Non-continuous (Mark sensing)"
msgstr "非連続です (Mark sensing)"
-#: ppdc/sample.c:366
msgid "Non-continuous (Web sensing)"
msgstr "非連続です (Web sensing)"
-#: ppdc/sample.c:238
msgid "Normal"
msgstr "標準"
-#: cups/http-support.c:1309
msgid "Not Found"
msgstr "見つかりません"
-#: cups/http-support.c:1321
msgid "Not Implemented"
msgstr "実装されていません"
-#: ppdc/sample.c:276
msgid "Not Installed"
msgstr "インストールされていません"
-#: cups/http-support.c:1296
msgid "Not Modified"
msgstr "変更されていません"
-#: cups/http-support.c:1324
msgid "Not Supported"
msgstr "サポートされていません"
-#: scheduler/ipp.c:1518 scheduler/ipp.c:10666
msgid "Not allowed to print."
msgstr "印刷が許可されていません。"
-#: ppdc/sample.c:146
msgid "Note"
msgstr "注意"
-#: systemv/cupstestdsc.c:433
msgid ""
"Note: this program only validates the DSC comments, not the PostScript "
"itself."
-msgstr "注意: このプログラムは DSC コメントを検証するだけで、PostScript 自身を検証するものではありません。"
+msgstr ""
+"注意: このプログラムは DSC コメントを検証するだけで、PostScript 自身を検証す"
+"るものではありません。"
-#: cups/http-support.c:1278 cups/ppd.c:338
msgid "OK"
msgstr "OK"
-#: ppdc/sample.c:271
msgid "Off (1-Sided)"
msgstr "Off (片面)"
-#: ppdc/sample.c:361
msgid "Oki"
msgstr "Oki"
-#: cgi-bin/help.c:91 cgi-bin/help.c:132 cgi-bin/help.c:142 cgi-bin/help.c:172
msgid "Online Help"
msgstr "オンラインヘルプ"
-#: cups/adminutil.c:955
#, c-format
msgid "Open of %s failed: %s"
msgstr "%s のオープンに失敗しました: %s"
-#: cups/ppd.c:346
msgid "OpenGroup without a CloseGroup first"
msgstr "OpenGroup の前にまず CloseGroup が必要です"
-#: cups/ppd.c:348
msgid "OpenUI/JCLOpenUI without a CloseUI/JCLCloseUI first"
msgstr "OpenUI/JCLOpenUI の前にまず CloseUI/JCLCloseUI が必要です"
-#: cgi-bin/admin.c:3631
msgid "Operation Policy"
msgstr "操作ポリシー"
-#: filter/pstops.c:2205
#, c-format
msgid "Option \"%s\" cannot be included via %%%%IncludeFeature."
msgstr "オプション \"%s\" は %%%%IncludeFeature 経由で含めることはできません。"
-#: cgi-bin/admin.c:3281 cgi-bin/admin.c:3365
msgid "Options Installed"
msgstr "インストールされたオプション"
-#: scheduler/cupsfilter.c:1430 scheduler/main.c:2018 systemv/cupsaddsmb.c:284
-#: systemv/cupsctl.c:203 systemv/cupstestdsc.c:429 systemv/cupstestppd.c:3797
-#: test/ipptool.c:4403 ppdc/ppdc.cxx:437 ppdc/ppdhtml.cxx:174
-#: ppdc/ppdi.cxx:130 ppdc/ppdmerge.cxx:369 ppdc/ppdpo.cxx:254
msgid "Options:"
msgstr "オプション:"
-#: cups/ppd-cache.c:156
msgid "Out of date PPD cache file."
msgstr "PPD キャッシュファイルが古すぎます。"
-#: cups/ppd-cache.c:1381
msgid "Out of memory."
msgstr "メモリーが足りません。"
-#: cups/ppd.c:795 cups/ppd.c:1363
msgid "Output Mode"
msgstr "出力モード"
-#: systemv/lpstat.c:1191 systemv/lpstat.c:1195
#, c-format
msgid "Output for printer %s is sent to %s"
msgstr "プリンター %s の出力は %s に送られます"
-#: systemv/lpstat.c:1185
#, c-format
msgid "Output for printer %s is sent to remote printer %s on %s"
msgstr "プリンター %s の出力は、リモートプリンター %s (%s 上) に送られます"
-#: systemv/lpstat.c:1209 systemv/lpstat.c:1213
#, c-format
msgid "Output for printer %s/%s is sent to %s"
msgstr "プリンター %s/%s の出力は %s に送られます"
-#: systemv/lpstat.c:1203
#, c-format
msgid "Output for printer %s/%s is sent to remote printer %s on %s"
msgstr "プリンター %s/%s の出力は、リモートプリンター %s (%s 上) に送られます"
-#: systemv/cupstestdsc.c:399
msgid "PASS"
msgstr "合格"
-#: ppdc/sample.c:260
msgid "PCL Laser Printer"
msgstr "PCL レーザープリンター"
-#: ppdc/sample.c:149
msgid "PRC16K"
msgstr "PRC16K"
-#: ppdc/sample.c:150
msgid "PRC16K Long Edge"
msgstr "PRC16K 長辺送り"
-#: ppdc/sample.c:151
msgid "PRC32K"
msgstr "PRC32K"
-#: ppdc/sample.c:154
msgid "PRC32K Long Edge"
msgstr "PRC32K 長辺送り"
-#: ppdc/sample.c:152
msgid "PRC32K Oversize"
msgstr "PRC32K (特大)"
-#: ppdc/sample.c:153
msgid "PRC32K Oversize Long Edge"
msgstr "PRC32K (特大) 長辺送り"
-#: cups/snmp.c:1014
msgid "Packet does not contain a Get-Response-PDU"
msgstr "パケットが Get-Response-PDU を含んでいません"
-#: cups/snmp.c:993
msgid "Packet does not start with SEQUENCE"
msgstr "パケットが SEQUENCE から始まりません"
-#: ppdc/sample.c:360
msgid "ParamCustominCutInterval"
msgstr "ParamCustominCutInterval"
-#: ppdc/sample.c:358
msgid "ParamCustominTearInterval"
msgstr "ParamCustominTearInterval"
-#: cups/auth.c:199 cups/auth.c:367
#, c-format
msgid "Password for %s on %s? "
msgstr "%s のパスワード (%s 上)? "
-#: systemv/cupsaddsmb.c:252
#, c-format
msgid "Password for %s required to access %s via SAMBA: "
msgstr "%s のパスワード (SAMBA 経由で %s にアクセスするのに必要):"
-#: cgi-bin/classes.c:167
msgid "Pause Class"
msgstr "クラスの休止"
-#: cgi-bin/printers.c:170
msgid "Pause Printer"
msgstr "プリンターの休止"
-#: ppdc/sample.c:448
msgid "Peel-Off"
msgstr "Peel-Off"
-#: ppdc/sample.c:160
msgid "Photo"
msgstr "写真"
-#: ppdc/sample.c:161
msgid "Photo Labels"
msgstr "写真ラベル"
-#: ppdc/sample.c:286
msgid "Plain Paper"
msgstr "普通紙"
-#: cgi-bin/admin.c:3299 cgi-bin/admin.c:3580
msgid "Policies"
msgstr "ポリシー"
-#: cgi-bin/admin.c:3306 cgi-bin/admin.c:3649 cgi-bin/admin.c:3662
msgid "Port Monitor"
msgstr "ポートモニター"
-#: ppdc/sample.c:278
msgid "PostScript Printer"
msgstr "PostScript プリンター"
-#: ppdc/sample.c:147
msgid "Postcard"
msgstr "ハガキ"
-#: ppdc/sample.c:71
msgid "Postcard Double "
msgstr "往復ハガキ"
-#: ppdc/sample.c:72
msgid "Postcard Double Long Edge"
msgstr "往復ハガキ 長辺送り"
-#: ppdc/sample.c:148
msgid "Postcard Long Edge"
msgstr "ハガキ 長辺送り"
-#: ppdc/sample.c:295
+msgid "Preparing to print."
+msgstr ""
+
msgid "Print Density"
msgstr "印刷密度"
-#: cups/notify.c:82
msgid "Print Job:"
msgstr "ジョブの印刷:"
-#: ppdc/sample.c:340
msgid "Print Mode"
msgstr "印刷モード"
-#: ppdc/sample.c:383
msgid "Print Rate"
msgstr "印刷レート"
-#: cgi-bin/printers.c:179
msgid "Print Self-Test Page"
msgstr "自己テストページの印刷"
-#: ppdc/sample.c:327
msgid "Print Speed"
msgstr "印刷速度"
-#: cgi-bin/ipp-var.c:792
msgid "Print Test Page"
msgstr "テストページの印刷"
-#: ppdc/sample.c:356
msgid "Print and Cut"
msgstr "プリントしてカット"
-#: ppdc/sample.c:344
msgid "Print and Tear"
msgstr "プリントして切り取る"
-#: backend/ipp.c:1537
-#, c-format
-msgid "Print file accepted - job ID %d."
-msgstr "プリントファイルを受け付けました - ジョブ ID %d。"
-
-#: backend/ipp.c:1527
-msgid "Print file accepted - job ID unknown."
-msgstr "NOTICE: プリントファイルを受け付けました - ジョブ ID 不明。"
-
-#: backend/socket.c:424 backend/usb-unix.c:191
msgid "Print file sent."
msgstr "プリントファイルが送られました。"
-#: backend/ipp.c:1488
-msgid "Print file was not accepted."
-msgstr "プリントファイルが受け付けられませんでした。"
-
-#: backend/ipp.c:1895
msgid "Print job canceled at printer."
msgstr "印刷ジョブはプリンターでキャンセルされました。"
-#: backend/ipp.c:1890
msgid "Print job too large."
msgstr "印刷ジョブが大きすぎます。"
-#: cgi-bin/ipp-var.c:1047
+msgid "Print job was not accepted."
+msgstr ""
+
msgid "Printer Added"
msgstr "追加されたプリンター"
-#: ppdc/sample.c:263
msgid "Printer Default"
msgstr "デフォルトのプリンター"
-#: cgi-bin/ipp-var.c:1051
msgid "Printer Deleted"
msgstr "削除されたプリンター"
-#: cgi-bin/ipp-var.c:1049
msgid "Printer Modified"
msgstr "変更されたプリンター"
-#: cgi-bin/ipp-var.c:1045
msgid "Printer Paused"
msgstr "プリンターの休止"
-#: ppdc/sample.c:294
msgid "Printer Settings"
msgstr "プリンター設定"
-#: backend/ipp.c:1893
msgid "Printer cannot print supplied content."
msgstr "プリンターは受信した内容を印刷できませんでした。"
-#: cups/notify.c:126
msgid "Printer:"
msgstr "プリンター:"
-#: cgi-bin/printers.c:204 cgi-bin/printers.c:332
msgid "Printers"
msgstr "プリンター"
-#: filter/rastertoepson.c:1093 filter/rastertohp.c:817
-#: filter/rastertolabel.c:1249
#, c-format
msgid "Printing page %d, %d%% complete."
msgstr "ページ %d を印刷中、%d%% 完了しました。"
-#: cgi-bin/classes.c:173 cgi-bin/printers.c:176
msgid "Purge Jobs"
msgstr "ジョブの削除"
-#: ppdc/sample.c:155
msgid "Quarto"
msgstr "Quarto"
-#: scheduler/ipp.c:1513 scheduler/ipp.c:10661
msgid "Quota limit reached."
msgstr "クォータの制限に達しました。"
-#: berkeley/lpq.c:515
msgid "Rank Owner Job File(s) Total Size"
msgstr "ランク 所有者 ジョブ ファイル 合計サイズ"
#. TRANSLATORS: Pri is job priority.
-#: berkeley/lpq.c:511
msgid ""
"Rank Owner Pri Job Files Total Size"
-msgstr "ランク 所有者 優先 ジョブ ファイル 合計サイズ"
+msgstr ""
+"ランク 所有者 優先 ジョブ ファイル 合計サイズ"
-#: cgi-bin/classes.c:171 cgi-bin/printers.c:174
msgid "Reject Jobs"
msgstr "ジョブの拒否"
-#: backend/lpd.c:1016 backend/lpd.c:1148
#, c-format
msgid "Remote host did not accept control file (%d)."
msgstr "リモートホストがコントロールファイルを受け付けませんでした (%d)。"
-#: backend/lpd.c:1101
#, c-format
msgid "Remote host did not accept data file (%d)."
msgstr "リモートホストがデータファイルを受け付けませんでした (%d)。"
-#: ppdc/sample.c:428
msgid "Reprint After Error"
msgstr "エラー後の再印刷"
-#: cups/http-support.c:1312
msgid "Request Entity Too Large"
msgstr "要求するエンティティが大きすぎます"
-#: cups/ppd.c:797 cups/ppd.c:1365 ppdc/sample.c:231
msgid "Resolution"
msgstr "解像度"
-#: cgi-bin/classes.c:165
msgid "Resume Class"
msgstr "クラスを再開する"
-#: cgi-bin/printers.c:167
msgid "Resume Printer"
msgstr "プリンターを再開する"
-#: ppdc/sample.c:165
msgid "Return Address"
msgstr "返信用ラベル"
-#: ppdc/sample.c:449
msgid "Rewind"
msgstr "巻き取り"
-#: cups/adminutil.c:2052
#, c-format
msgid "Running command: %s %s -N -A %s -c '%s'"
msgstr "コマンドを実行中: %s %s -N -A %s -c '%s'"
-#: cups/snmp.c:995
msgid "SEQUENCE uses indefinite length"
msgstr "SEQUENCE は不定長を使用しています"
-#: cups/http-support.c:1336
msgid "SSL/TLS Negotiation Error"
msgstr "SSL/TLS のネゴシエーションエラー"
-#: cups/http-support.c:1293
msgid "See Other"
msgstr "残りを見てください"
-#: backend/usb-darwin.c:543 backend/usb-libusb.c:273
msgid "Sending data to printer."
msgstr "データをプリンターに送信しています。"
-#: cgi-bin/ipp-var.c:1061
msgid "Server Restarted"
msgstr "再起動されたサーバー"
-#: cgi-bin/ipp-var.c:1067
msgid "Server Security Auditing"
msgstr "サーバーのセキュリティー監査"
-#: cgi-bin/ipp-var.c:1063
msgid "Server Started"
msgstr "開始されたサーバー"
-#: cgi-bin/ipp-var.c:1065
msgid "Server Stopped"
msgstr "停止されたサーバー"
-#: cups/http-support.c:1330
msgid "Service Unavailable"
msgstr "利用できないサービス"
-#: cgi-bin/admin.c:2786 cgi-bin/admin.c:2832 cgi-bin/admin.c:2989
-#: cgi-bin/admin.c:3008
msgid "Set Allowed Users"
msgstr "許可するユーザーの設定"
-#: cgi-bin/admin.c:3035
msgid "Set As Server Default"
msgstr "サーバーのデフォルトに設定"
-#: cgi-bin/admin.c:3135
msgid "Set Class Options"
msgstr "クラスオプションの設定"
-#: cgi-bin/admin.c:3135 cgi-bin/admin.c:3309 cgi-bin/admin.c:3691
msgid "Set Printer Options"
msgstr "プリンターオプションの設定"
-#: cgi-bin/admin.c:3861 cgi-bin/admin.c:3905 cgi-bin/admin.c:3923
msgid "Set Publishing"
msgstr "公開の設定"
-#: ppdc/sample.c:166
msgid "Shipping Address"
msgstr "発送先ラベル"
-#: ppdc/sample.c:273
msgid "Short-Edge (Landscape)"
msgstr "短辺 (横原稿)"
-#: ppdc/sample.c:288
msgid "Special Paper"
msgstr "特殊紙"
-#: backend/lpd.c:1057
#, c-format
msgid "Spooling job, %.0f%% complete."
msgstr "ジョブをスプール中、%.0f%% 完了しました。"
-#: ppdc/sample.c:341
msgid "Standard"
msgstr "標準"
#. TRANSLATORS: Banner/cover sheet before the print job.
-#: cgi-bin/admin.c:3552
msgid "Starting Banner"
msgstr "開始バナー"
-#: filter/rastertoepson.c:1069 filter/rastertohp.c:793
-#: filter/rastertolabel.c:1225
#, c-format
msgid "Starting page %d."
msgstr "ページ %d を開始しています。"
-#: ppdc/sample.c:156
msgid "Statement"
msgstr "記述"
-#: ppdc/sample.c:251
msgid "Stylus Color Series"
msgstr "Stylus Color シリーズ"
-#: ppdc/sample.c:257
msgid "Stylus Photo Series"
msgstr "Stylus Photo シリーズ"
-#: scheduler/ipp.c:3549 scheduler/ipp.c:6689 scheduler/ipp.c:7388
-#: scheduler/ipp.c:8887
#, c-format
msgid "Subscription #%d does not exist."
msgstr "サブスクリプション番号 %d は存在しません。"
-#: ppdc/sample.c:157
msgid "Super A"
msgstr "スーパー A"
-#: ppdc/sample.c:158
msgid "Super B"
msgstr "スーパー B"
-#: ppdc/sample.c:162
msgid "Super B/A3"
msgstr "スーパー B/A3"
-#: cups/http-support.c:1275
msgid "Switching Protocols"
msgstr "プロトコルの変更"
-#: ppdc/sample.c:159
msgid "Tabloid"
msgstr "タブロイド"
-#: ppdc/sample.c:45
msgid "Tabloid Oversize"
msgstr "タブロイド (特大)"
-#: ppdc/sample.c:46
msgid "Tabloid Oversize Long Edge"
msgstr "タブロイド (特大) 長辺送り"
-#: ppdc/sample.c:342
msgid "Tear"
msgstr "Tear"
-#: ppdc/sample.c:447
msgid "Tear-Off"
msgstr "Tear-Off"
-#: ppdc/sample.c:388
msgid "Tear-Off Adjust Position"
msgstr "Tear-Off 位置調節"
-#: scheduler/ipp.c:6393 scheduler/ipp.c:6471 scheduler/ipp.c:6487
-#: scheduler/ipp.c:6505
+#, c-format
+msgid "The \"%s\" attribute is required for print jobs."
+msgstr ""
+
#, c-format
msgid "The %s attribute cannot be provided with job-ids."
msgstr "%s 属性は、ジョブ ID と一緒に使うことはできません。"
-#: scheduler/ipp.c:5118
+#, c-format
+msgid ""
+"The '%s' Job Description attribute cannot be supplied in a job creation "
+"request."
+msgstr ""
+
#, c-format
msgid ""
"The '%s' operation attribute cannot be supplied in a Create-Job request."
msgstr "%s 操作属性は、Create-Job リクエストの中で使うことはできません。"
-#: scheduler/ipp.c:6919
#, c-format
msgid "The PPD file \"%s\" could not be found."
msgstr "PPD ファイル \"%s\" が見つかりません。"
-#: scheduler/ipp.c:6906
#, c-format
msgid "The PPD file \"%s\" could not be opened: %s"
msgstr "PPD ファイル \"%s\" を開けませんでした: %s"
-#: filter/rastertoepson.c:1038 filter/rastertohp.c:764
-#: filter/rastertolabel.c:1189
msgid "The PPD file could not be opened."
msgstr "PPD ファイルを開けませんでした。"
-#: cgi-bin/admin.c:749
msgid ""
"The class name may only contain up to 127 printable characters and may not "
"contain spaces, slashes (/), or the pound sign (#)."
-msgstr "クラス名は 127 文字以内の表示可能文字からなり、空白、スラッシュ (/)、シャープ (#) を含んではなりません。"
+msgstr ""
+"クラス名は 127 文字以内の表示可能文字からなり、空白、スラッシュ (/)、シャー"
+"プ (#) を含んではなりません。"
-#: cups/localize.c:353
msgid "The developer unit needs to be replaced."
msgstr "現像ユニットの交換が必要です。"
-#: cups/localize.c:351
msgid "The developer unit will need to be replaced soon."
msgstr "もうすぐ現像ユニットの交換時期です。"
-#: cups/localize.c:343
msgid "The fuser's temperature is high."
msgstr "定着器の温度が高すぎます。"
-#: cups/localize.c:345
msgid "The fuser's temperature is low."
msgstr "定着器の温度が低すぎます。"
-#: scheduler/ipp.c:2097
msgid ""
"The notify-lease-duration attribute cannot be used with job subscriptions."
msgstr ""
"notify-lease-duration 属性は、ジョブサブスクリプションと一緒に使うことはでき"
"ません。"
-#: scheduler/ipp.c:2080 scheduler/ipp.c:5653
#, c-format
msgid "The notify-user-data value is too large (%d > 63 octets)."
msgstr "notify-user-data 値が大きすぎます (%d > 63 オクテット)。"
-#: cups/localize.c:349
msgid "The optical photoconductor needs to be replaced."
msgstr "感光体の交換が必要です。"
-#: cups/localize.c:347
msgid "The optical photoconductor will need to be replaced soon."
msgstr "もうすぐ感光体の交換時期です。"
-#: cups/localize.c:331
msgid "The output bin is almost full."
msgstr "排紙トレイがほとんど一杯です。"
-#: cups/localize.c:333
msgid "The output bin is full."
msgstr "排紙トレイが一杯です。"
-#: cups/localize.c:329
msgid "The output bin is missing."
msgstr "排紙トレイが見つかりません。"
-#: cups/localize.c:325
msgid "The paper tray is almost empty."
msgstr "用紙トレイが空になりかけています。"
-#: cups/localize.c:327
msgid "The paper tray is empty."
msgstr "用紙トレイが空です。"
-#: cups/localize.c:323
msgid "The paper tray is missing."
msgstr "用紙トレイが見つかりません。"
-#: cups/localize.c:306
msgid "The paper tray needs to be filled."
msgstr "用紙トレイに補充が必要です。"
-#: backend/ipp.c:909
-msgid "The printer URI is incorrect or no longer exists."
-msgstr "プリンター URI が誤っているか、もう存在しません。"
+msgid "The printer configuration is incorrect or the printer no longer exists."
+msgstr ""
-#: backend/lpd.c:619 backend/lpd.c:1009 backend/lpd.c:1091 backend/lpd.c:1141
msgid "The printer did not respond."
msgstr "プリンターが応答しません。"
-#: backend/ipp.c:892 backend/ipp.c:899
-#, c-format
-msgid "The printer does not support IPP/%d.%d, trying IPP/%s."
-msgstr "プリンターが IPP/%d.%d をサポートしていません。IPP/%s を試します。"
-
-#: backend/ipp.c:757 backend/ipp.c:874 backend/ipp.c:980 backend/ipp.c:1313
-#: backend/ipp.c:1464 backend/lpd.c:828 backend/socket.c:374
-#: backend/usb-unix.c:131 backend/usb-unix.c:424 backend/usb-unix.c:507
msgid "The printer is in use."
msgstr "プリンターは使用中です。"
-#: backend/runloop.c:254 backend/runloop.c:374 cups/localize.c:311
msgid "The printer is not connected."
msgstr "プリンターは接続されていません。"
-#: backend/ipp.c:735 backend/ipp.c:768 backend/ipp.c:870 backend/lpd.c:807
-#: backend/lpd.c:848 backend/socket.c:353 backend/socket.c:386
msgid "The printer is not responding."
msgstr "プリンターが応答していません。"
-#: backend/runloop.c:396
msgid "The printer is now connected."
msgstr "プリンターが接続されました。"
-#: backend/usb-darwin.c:1286
msgid "The printer is now online."
msgstr "プリンターは現在オンラインです。"
-#: backend/usb-darwin.c:1307
msgid "The printer is offline."
msgstr "プリンターはオフラインです。"
-#: cups/localize.c:335
msgid "The printer is running low on ink."
msgstr "プリンターのインクがもうすぐなくなります。"
-#: cups/localize.c:313
msgid "The printer is running low on toner."
msgstr "プリンターのトナーがもうすぐなくなります。"
-#: backend/ipp.c:750 backend/lpd.c:821 backend/socket.c:367
msgid "The printer is unreachable at this time."
msgstr "プリンターには現在到達できません。"
-#: cups/localize.c:337
msgid "The printer may be out of ink."
msgstr "プリンターのインクがなくなっているようです。"
-#: cups/localize.c:315
msgid "The printer may be out of toner."
msgstr "プリンターのトナーがなくなっているようです。"
-#: backend/ipp.c:744 backend/lpd.c:815 backend/socket.c:361
msgid "The printer may not exist or is unavailable at this time."
msgstr "プリンターは現在存在しないか、使用できないようです。"
-#: cgi-bin/admin.c:931
msgid ""
"The printer name may only contain up to 127 printable characters and may not "
"contain spaces, slashes (/), or the pound sign (#)."
@@ -5031,65 +3915,46 @@ msgstr ""
"プリンター名は 127 文字以内の表示可能文字から成り、空白、スラッシュ (/)、ポン"
"ド記号 (#) を含んではなりません。"
-#: scheduler/ipp.c:876 scheduler/ipp.c:1136 scheduler/ipp.c:3198
-#: scheduler/ipp.c:3369 scheduler/ipp.c:5101 scheduler/ipp.c:5487
-#: scheduler/ipp.c:5801 scheduler/ipp.c:6359 scheduler/ipp.c:7124
-#: scheduler/ipp.c:7180 scheduler/ipp.c:7494 scheduler/ipp.c:7760
-#: scheduler/ipp.c:7849 scheduler/ipp.c:7882 scheduler/ipp.c:8205
-#: scheduler/ipp.c:8598 scheduler/ipp.c:8679 scheduler/ipp.c:9840
-#: scheduler/ipp.c:10294 scheduler/ipp.c:10624 scheduler/ipp.c:10706
-#: scheduler/ipp.c:10998
msgid "The printer or class does not exist."
msgstr "プリンターまたはクラスは存在しません。"
-#: scheduler/ipp.c:1304
msgid "The printer or class is not shared."
msgstr "プリンターまたはクラスは共有できません。"
-#: cups/localize.c:317
msgid "The printer's cover is open."
msgstr "プリンターのカバーが開いています。"
-#: cups/localize.c:321
msgid "The printer's door is open."
msgstr "プリンターのドアが開いています。"
-#: cups/localize.c:319
msgid "The printer's interlock is open."
msgstr "プリンターのインターロックが開いています。"
-#: cups/localize.c:339
msgid "The printer's waste bin is almost full."
msgstr "プリンターの廃インクまたは廃トナー容器がほとんど一杯です。"
-#: cups/localize.c:341
msgid "The printer's waste bin is full."
msgstr "プリンターの廃インクまたは廃トナー容器が一杯です。"
-#: scheduler/ipp.c:982 scheduler/ipp.c:2261
#, c-format
msgid "The printer-uri \"%s\" contains invalid characters."
msgstr "printer-uri \"%s\" には、無効な文字が含まれています。"
-#: scheduler/ipp.c:3175
msgid "The printer-uri attribute is required."
msgstr "printer-uri 属性は必須です。"
-#: scheduler/ipp.c:966
msgid ""
"The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
msgstr ""
"printer-uri は、\"ipp://ホスト名/classes/クラス名\" 形式でなければなりませ"
"ん。"
-#: scheduler/ipp.c:2245
msgid ""
"The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
msgstr ""
"printer-uri は \"ipp://ホスト名/printers/プリンター名\" 形式でなければなりま"
"せん。"
-#: cgi-bin/admin.c:474
msgid ""
"The subscription name may not contain spaces, slashes (/), question marks "
"(?), or the pound sign (#)."
@@ -5097,604 +3962,480 @@ msgstr ""
"サブスクリプション名には、スペース、スラッシュ (/)、疑問府 (?)、ポンド記号 "
"(#) を使用しないでください。"
-#: scheduler/client.c:2450
msgid ""
"The web interface is currently disabled. Run \"cupsctl WebInterface=yes\" to "
"enable it."
-msgstr "Web インターフェイスが現在無効になっています。有効にするには \"cupsctl WebInterface=yes\" を実行してください。"
+msgstr ""
+"Web インターフェイスが現在無効になっています。有効にするには \"cupsctl "
+"WebInterface=yes\" を実行してください。"
-#: scheduler/ipp.c:6454
#, c-format
msgid "The which-jobs value \"%s\" is not supported."
msgstr "which-jobs の値 \"%s\" はサポートされていません。"
-#: scheduler/ipp.c:5731
msgid "There are too many subscriptions."
msgstr "サブスクリプションが多すぎます。"
-#: cups/localize.c:308
msgid "There is a paper jam."
msgstr "用紙づまりが発生しています。"
-#: backend/usb-darwin.c:379 backend/usb-darwin.c:438 backend/usb-darwin.c:505
-#: backend/usb-darwin.c:526 backend/usb-libusb.c:235 backend/usb-libusb.c:256
msgid "There was an unrecoverable USB error."
msgstr "回復不可能な USB のエラーが発生しています。"
-#: ppdc/sample.c:435
msgid "Thermal Transfer Media"
msgstr "熱転写メディア"
-#: scheduler/ipp.c:1507
msgid "Too many active jobs."
msgstr "アクティブなジョブが多すぎます。"
-#: scheduler/ipp.c:1401
#, c-format
msgid "Too many job-sheets values (%d > 2)."
msgstr "job-sheets 値が多すぎます (%d > 2)。"
-#: scheduler/ipp.c:2529
#, c-format
msgid "Too many printer-state-reasons values (%d > %d)."
msgstr "printer-state-reasons 値が多すぎます (%d > %d)。"
-#: ppdc/sample.c:289
msgid "Transparency"
msgstr "OHP シート"
-#: ppdc/sample.c:284
msgid "Tray"
msgstr "トレイ"
-#: ppdc/sample.c:264
msgid "Tray 1"
msgstr "トレイ 1"
-#: ppdc/sample.c:265
msgid "Tray 2"
msgstr "トレイ 2"
-#: ppdc/sample.c:266
msgid "Tray 3"
msgstr "トレイ 3"
-#: ppdc/sample.c:267
msgid "Tray 4"
msgstr "トレイ 4"
-#: cups/http-support.c:1315
msgid "URI Too Long"
msgstr "URI が長すぎます"
-#: ppdc/sample.c:138
msgid "US Ledger"
msgstr "US レジャー"
-#: ppdc/sample.c:139
msgid "US Legal"
msgstr "US リーガル"
-#: ppdc/sample.c:140
msgid "US Legal Oversize"
msgstr "US リーガル (特大)"
-#: ppdc/sample.c:141
msgid "US Letter"
msgstr "US レター"
-#: ppdc/sample.c:142
msgid "US Letter Long Edge"
msgstr "US レター 長辺送り"
-#: ppdc/sample.c:143
msgid "US Letter Oversize"
msgstr "US レター (特大)"
-#: ppdc/sample.c:144
msgid "US Letter Oversize Long Edge"
msgstr "US レター (特大) 長辺送り"
-#: ppdc/sample.c:145
msgid "US Letter Small"
msgstr "US レター (小)"
-#: cgi-bin/admin.c:1959 cgi-bin/admin.c:1972 cgi-bin/admin.c:1996
msgid "Unable to access cupsd.conf file"
msgstr "cupsd.conf ファイルにアクセスできません"
-#: cgi-bin/help.c:133
msgid "Unable to access help file."
msgstr "ヘルプファイルにアクセスできません。"
-#: cgi-bin/admin.c:526
msgid "Unable to add RSS subscription"
msgstr " RSS 購読を追加できません"
-#: cgi-bin/admin.c:814
msgid "Unable to add class"
msgstr "クラスを追加できません"
-#: backend/ipp.c:1635
msgid "Unable to add document to print job."
msgstr "ドキュメントを印刷ジョブに追加できません。"
-#: scheduler/ipp.c:1548
#, c-format
msgid "Unable to add job for destination \"%s\"."
msgstr "宛先 \"%s\"にジョブを追加できません。"
-#: cgi-bin/admin.c:1059 cgi-bin/admin.c:1419
msgid "Unable to add printer"
msgstr "プリンターを追加できません"
-#: scheduler/ipp.c:1246
msgid "Unable to allocate memory for file types."
msgstr "ファイルタイプ用にメモリーを割り当てられません。"
-#: filter/pstops.c:451
msgid "Unable to allocate memory for page info"
msgstr "ページ情報のメモリー割り当てができません"
-#: filter/pstops.c:445
msgid "Unable to allocate memory for pages array"
msgstr "ページアレイのメモリー割り当てができません"
-#: cgi-bin/admin.c:1525
msgid "Unable to cancel RSS subscription"
msgstr "RSS 購読をキャンセルできません"
-#: backend/ipp.c:1942
msgid "Unable to cancel print job."
msgstr "プリンターを変更できません。"
-#: cgi-bin/admin.c:2990
msgid "Unable to change printer"
msgstr "プリンターを変更できません"
-#: cgi-bin/admin.c:3906
msgid "Unable to change printer-is-shared attribute"
msgstr "printer-is-shared 属性を変更することができません"
-#: cgi-bin/admin.c:1657 cgi-bin/admin.c:1799
msgid "Unable to change server settings"
msgstr "サーバーの設定を変更できません"
-#: filter/commandtops.c:420
msgid "Unable to configure printer options."
msgstr "プリンターオプションを設定できません。"
-#: cups/adminutil.c:911 cups/request.c:1016
msgid "Unable to connect to host."
msgstr "ホストに接続できません。"
-#: backend/ipp.c:713 backend/ipp.c:1138 backend/lpd.c:787 backend/socket.c:333
-#: backend/usb-unix.c:117
msgid "Unable to contact printer, queuing on next printer in class."
msgstr "プリンターと交信できません。クラス内の次のプリンターにキューします。"
-#: cups/adminutil.c:726
#, c-format
msgid "Unable to copy 64-bit CUPS printer driver files (%d)."
msgstr "64-bit 版の CUPS プリンタードライバーファイルをコピーできません (%d)。"
-#: cups/adminutil.c:691
#, c-format
msgid "Unable to copy 64-bit Windows printer driver files (%d)."
msgstr "64-bit 版の Windows プリンタードライバーをコピーできません (%d)。"
-#: cups/adminutil.c:522
#, c-format
msgid "Unable to copy CUPS printer driver files (%d)."
msgstr "複数の CUPS プリンタードライバーファイルをコピーできません (%d)。"
-#: scheduler/ipp.c:2649
#, c-format
msgid "Unable to copy PPD file - %s"
msgstr "PPD ファイルをコピーできません - %s"
-#: scheduler/ipp.c:2704
msgid "Unable to copy PPD file."
msgstr "PPD ファイルをコピーできません。"
-#: cups/adminutil.c:487
#, c-format
msgid "Unable to copy Windows 2000 printer driver files (%d)."
msgstr ""
"複数の Windows 2000 プリンタードライバーファイルをコピーできません (%d)。"
-#: cups/adminutil.c:610
#, c-format
msgid "Unable to copy Windows 9x printer driver files (%d)."
-msgstr "複数の Windows 9x プリンタードライバーファイルをコピーできません (%d)。"
+msgstr ""
+"複数の Windows 9x プリンタードライバーファイルをコピーできません (%d)。"
-#: scheduler/ipp.c:2626
#, c-format
msgid "Unable to copy interface script - %s"
msgstr "インターフェイススクリプトをコピーできません - %s"
-#: backend/ipp.c:2034
msgid "Unable to create compressed print file"
msgstr "圧縮プリントファイルを作成できません"
-#: cups/util.c:602 cups/util.c:1656
msgid "Unable to create printer-uri"
msgstr "printer-uri を作成できません。"
-#: cgi-bin/admin.c:1850 cgi-bin/admin.c:1862 scheduler/cupsfilter.c:1236
msgid "Unable to create temporary file"
msgstr "テンポラリーファイルを作成できません"
-#: cgi-bin/admin.c:2153
msgid "Unable to delete class"
msgstr "クラスを削除できません"
-#: cgi-bin/admin.c:2238
msgid "Unable to delete printer"
msgstr "プリンターを削除できません"
-#: cgi-bin/classes.c:260 cgi-bin/printers.c:269
msgid "Unable to do maintenance command"
msgstr "メンテナンスコマンドを実行できません"
-#: cgi-bin/admin.c:1974
msgid "Unable to edit cupsd.conf files larger than 1MB"
msgstr "1MB 以上の cupsd.conf ファイルは編集できません。"
-#: cups/http.c:4272
msgid ""
"Unable to establish a secure connection to host (certificate chain invalid)."
msgstr "ホストへの安全な接続が確立できません (認証パスが無効です)。"
-#: cups/http.c:4262
msgid ""
"Unable to establish a secure connection to host (certificate not yet valid)."
msgstr "ホストへの安全な接続が確立できません (認証がまだ有効ではありません)。"
-#: cups/http.c:4257
msgid "Unable to establish a secure connection to host (expired certificate)."
msgstr "ホストへの安全な接続が確立できません (認証が期限切れです)。"
-#: cups/http.c:4267
msgid "Unable to establish a secure connection to host (host name mismatch)."
msgstr "ホストへの安全な接続が確立できません (ホスト名が一致しません)。"
-#: cups/http.c:4277
msgid ""
"Unable to establish a secure connection to host (peer dropped connection "
"before responding)."
-msgstr "ホストへの安全な接続が確立できません (応答がある前に接続が切断されました)。"
+msgstr ""
+"ホストへの安全な接続が確立できません (応答がある前に接続が切断されました)。"
-#: cups/http.c:4252
msgid ""
"Unable to establish a secure connection to host (self-signed certificate)."
msgstr "ホストへの安全な接続が確立できません (自己署名証明書です)。"
-#: cups/http.c:4247
msgid ""
"Unable to establish a secure connection to host (untrusted certificate)."
msgstr "ホストへの安全な接続が確立できません (信用できない証明書です)。"
-#: cups/http.c:4008 cups/http.c:4304 cups/http.c:4337 cups/http.c:4354
msgid "Unable to establish a secure connection to host."
msgstr "ホストへの安全な接続を確立できません。"
-#: cgi-bin/ipp-var.c:365
msgid "Unable to find destination for job"
msgstr "ジョブの宛先が見つかりません"
-#: cups/http-support.c:1748
msgid "Unable to find printer."
msgstr "プリンターが見つかりません。"
-#: backend/ipp.c:2056
msgid "Unable to generate compressed print file"
msgstr "圧縮プリントファイルを生成できません"
-#: backend/ipp.c:3009
msgid "Unable to get backend exit status."
msgstr "バックエンドの終了ステータスを取得できません。"
-#: cgi-bin/classes.c:450
msgid "Unable to get class list"
msgstr "クラスリストを取得できません"
-#: cgi-bin/classes.c:549
msgid "Unable to get class status"
msgstr "クラスの状態を取得できません。"
-#: cgi-bin/admin.c:1320
msgid "Unable to get list of printer drivers"
msgstr "プリンタードライバーのリストを取得できません"
-#: cgi-bin/admin.c:2840
msgid "Unable to get printer attributes"
msgstr "プリンター属性を取得できません"
-#: cgi-bin/printers.c:467
msgid "Unable to get printer list"
msgstr "プリンターリストを取得できません"
-#: cgi-bin/printers.c:569
msgid "Unable to get printer status"
msgstr "プリンターの状態を取得できません"
-#: backend/ipp.c:933
msgid "Unable to get printer status."
msgstr "プリンターの状態を取得できません。"
-#: cups/adminutil.c:565 cups/adminutil.c:769
#, c-format
msgid "Unable to install Windows 2000 printer driver files (%d)."
-msgstr "複数の Windows 2000 プリンタードライバーファイルをインストールできません (%d)。"
+msgstr ""
+"複数の Windows 2000 プリンタードライバーファイルをインストールできません "
+"(%d)。"
-#: cups/adminutil.c:639
#, c-format
msgid "Unable to install Windows 9x printer driver files (%d)."
msgstr ""
"複数の Windows 9x プリンタードライバーファイルをインストールできません (%d)。"
-#: cgi-bin/help.c:92
msgid "Unable to load help index."
msgstr "ヘルプの索引を読み込めません。"
-#: backend/ipp.c:642 backend/lpd.c:421 backend/socket.c:275
#, c-format
msgid "Unable to locate printer \"%s\"."
msgstr "プリンター \"%s\" が見つかりません。"
-#: backend/dnssd.c:781 backend/ipp.c:324 backend/lpd.c:204
-#: backend/socket.c:171
msgid "Unable to locate printer."
msgstr "プリンターが見つかりません。"
-#: cgi-bin/admin.c:813
msgid "Unable to modify class"
msgstr "クラスを変更できません"
-#: cgi-bin/admin.c:1058 cgi-bin/admin.c:1418
msgid "Unable to modify printer"
msgstr "プリンターを変更できません"
-#: cgi-bin/ipp-var.c:432 cgi-bin/ipp-var.c:521
msgid "Unable to move job"
msgstr "ジョブを移動できません"
-#: cgi-bin/ipp-var.c:434 cgi-bin/ipp-var.c:523
msgid "Unable to move jobs"
msgstr "複数のジョブを移動できません"
-#: cgi-bin/admin.c:3186 cups/ppd.c:339
msgid "Unable to open PPD file"
msgstr "PPD ファイルを読み込むことができません"
-#: backend/ipp.c:2040
msgid "Unable to open compressed print file"
msgstr "圧縮プリントファイルを開けません"
-#: cgi-bin/admin.c:2608
msgid "Unable to open cupsd.conf file:"
msgstr "cupsd.conf ファイルを開けません:"
-#: backend/usb-unix.c:141
msgid "Unable to open device file"
msgstr "デバイスファイルを開けません"
-#: scheduler/ipp.c:6140
#, c-format
msgid "Unable to open document #%d in job #%d."
msgstr "ドキュメント %d (ジョブ %d) を開けません。"
-#: cgi-bin/help.c:364
msgid "Unable to open help file."
msgstr "ヘルプファイルを読み込むことができません。"
-#: backend/ipp.c:365 backend/ipp.c:1398 backend/ipp.c:1594 backend/ipp.c:2046
-#: backend/lpd.c:488 backend/socket.c:158 backend/usb.c:237
-#: filter/gziptoany.c:71 filter/pstops.c:300
msgid "Unable to open print file"
msgstr "印刷ファイルを開けません"
-#: filter/rastertoepson.c:998 filter/rastertohp.c:724
-#: filter/rastertolabel.c:1147
msgid "Unable to open raster file"
msgstr "ラスターファイルを開けません"
-#: cgi-bin/ipp-var.c:795
msgid "Unable to print test page"
msgstr "テストページを印刷できません"
-#: backend/runloop.c:96 backend/runloop.c:325 backend/usb-darwin.c:613
-#: backend/usb-darwin.c:657 backend/usb-libusb.c:343 backend/usb-libusb.c:378
msgid "Unable to read print data."
msgstr "プリントデータを読み込めません。"
-#: cups/dest.c:3402
msgid "Unable to resolve printer URI."
msgstr "プリンター URI を解決できません。"
-#: cups/adminutil.c:2088
#, c-format
msgid "Unable to run \"%s\": %s"
msgstr "\"%s\" を実行できません: %s"
-#: filter/pstops.c:563
msgid "Unable to see in file"
msgstr "ファイルを読み込むことができません"
-#: cgi-bin/ipp-var.c:598 cgi-bin/ipp-var.c:618
msgid "Unable to send command to printer driver"
msgstr "プリンタードライバーにコマンドを送信できません"
-#: backend/usb-darwin.c:735 backend/usb-libusb.c:454
msgid "Unable to send data to printer."
msgstr "プリンターにデータを送信することができません。"
-#: cups/adminutil.c:821
#, c-format
msgid "Unable to set Windows printer driver (%d)."
msgstr "Windows プリンタードライバーを設定できません (%d)。"
-#: cgi-bin/admin.c:3807
msgid "Unable to set options"
msgstr "オプションを設定できません"
-#: cgi-bin/admin.c:3077
msgid "Unable to set server default"
msgstr "サーバーをデフォルトに設定できません"
-#: backend/ipp.c:2868 backend/ipp.c:2945 backend/ipp.c:2953
msgid "Unable to start backend process."
msgstr "バックエンドのプロセスを起動できません。"
-#: cgi-bin/admin.c:1912
msgid "Unable to upload cupsd.conf file"
msgstr "cupsd.conf ファイルをアップロードできません"
-#: backend/usb-darwin.c:1985 backend/usb-darwin.c:2009
msgid "Unable to use legacy USB class driver."
msgstr "古いタイプの USB クラスドライバーは使用できません。"
-#: backend/runloop.c:125 backend/runloop.c:380
msgid "Unable to write print data"
msgstr "プリントデータを書き込めません"
-#: filter/gziptoany.c:90
#, c-format
msgid "Unable to write uncompressed print data: %s"
msgstr "非圧縮のプリントデータを書き込めません: %s"
-#: cups/http-support.c:1303
msgid "Unauthorized"
msgstr "未許可"
-#: cgi-bin/admin.c:3503
msgid "Units"
msgstr "ユニット"
-#: cups/http-support.c:1343 cups/ppd.c:366
msgid "Unknown"
msgstr "未知"
-#: filter/pstops.c:2213
#, c-format
msgid "Unknown choice \"%s\" for option \"%s\"."
msgstr "\"%s\" (オプション \"%s\" 用) は未知の設定です。"
-#: backend/ipp.c:507
#, c-format
msgid "Unknown encryption option value: \"%s\"."
msgstr "\"%s\" は未知の暗号オプション値です。"
-#: backend/lpd.c:350
#, c-format
msgid "Unknown file order: \"%s\"."
msgstr "\"%s\" は未知のファイルオーダーです。"
-#: backend/lpd.c:321
#, c-format
msgid "Unknown format character: \"%c\"."
msgstr "\"%c\" は未知の書式文字です。"
-#: cups/dest-options.c:770
msgid "Unknown media size name."
msgstr "未知のメディアサイズ名称です。"
-#: backend/ipp.c:554
#, c-format
msgid "Unknown option \"%s\" with value \"%s\"."
msgstr "\"%s\" (値 \"%s\") は未知のオプションです。"
-#: filter/pstops.c:2196
#, c-format
msgid "Unknown option \"%s\"."
msgstr "\"%s\" は未知のオプションです。"
-#: backend/lpd.c:336
#, c-format
msgid "Unknown print mode: \"%s\"."
msgstr "\"%s\" は未知のプリントモードです。"
-#: scheduler/ipp.c:10496
#, c-format
msgid "Unknown printer-error-policy \"%s\"."
msgstr "\"%s\" は未知の printer-error-policy です。"
-#: scheduler/ipp.c:10479
#, c-format
msgid "Unknown printer-op-policy \"%s\"."
msgstr "\"%s\" は未知の printer-op-policy です。"
-#: cups/http-addrlist.c:710
msgid "Unknown service name."
msgstr "未知のサービス名です。"
-#: backend/ipp.c:526
#, c-format
msgid "Unknown version option value: \"%s\"."
msgstr "\"%s\" は未知のバージョンオプション値です。"
-#: scheduler/ipp.c:402
+#, c-format
+msgid "Unsupported 'compression' value \"%s\"."
+msgstr ""
+
+#, c-format
+msgid "Unsupported 'document-format' value \"%s\"."
+msgstr ""
+
+msgid "Unsupported 'job-name' value."
+msgstr ""
+
#, c-format
msgid "Unsupported character set \"%s\"."
msgstr "\"%s\" はサポートされていない文字セットです。"
-#: scheduler/ipp.c:8171 scheduler/ipp.c:9401 scheduler/ipp.c:10950
#, c-format
msgid "Unsupported compression \"%s\"."
msgstr "\"%s\" はサポートされていない圧縮形式です。"
-#: scheduler/ipp.c:8305 scheduler/ipp.c:9551 scheduler/ipp.c:10979
#, c-format
msgid "Unsupported document-format \"%s\"."
msgstr "\"%s\" はサポートされていない文書形式です。"
-#: scheduler/ipp.c:9534
#, c-format
msgid "Unsupported document-format \"%s/%s\"."
msgstr "\"%s/%s\" はサポートされていない文書形式です。"
-#: scheduler/ipp.c:1367
#, c-format
msgid "Unsupported format \"%s\"."
msgstr "\"%s\" はサポートされていない形式です。"
-#: scheduler/ipp.c:1465
msgid "Unsupported margins."
msgstr "サポートされていないマージンです。"
-#: cups/pwg-media.c:529
msgid "Unsupported media value."
msgstr "サポートされていないメディアの値です。"
-#: filter/pstops.c:2478
#, c-format
msgid "Unsupported number-up value %d, using number-up=1."
msgstr "%d はサポートされていない number-up 値です。number-up=1 を使用します。"
-#: filter/pstops.c:2512
#, c-format
msgid "Unsupported number-up-layout value %s, using number-up-layout=lrtb."
-msgstr "%s はサポートされていない number-up-layout 値です。number-up-layout=lrtb を使用します。"
+msgstr ""
+"%s はサポートされていない number-up-layout 値です。number-up-layout=lrtb を使"
+"用します。"
-#: filter/pstops.c:2563
#, c-format
msgid "Unsupported page-border value %s, using page-border=none."
-msgstr "%s はサポートされていない page-border 値です。page-border=none を使用します。"
+msgstr ""
+"%s はサポートされていない page-border 値です。page-border=none を使用します。"
-#: filter/rastertopwg.c:147 filter/rastertopwg.c:155 filter/rastertopwg.c:164
msgid "Unsupported raster data."
msgstr "サポートされていないラスターデータです。"
-#: cups/snmp.c:1112
msgid "Unsupported value type"
msgstr "サポートされていない型の値です"
-#: cups/http-support.c:1318
msgid "Upgrade Required"
msgstr "アップグレードが必要です"
-#: systemv/lpadmin.c:668
msgid ""
"Usage:\n"
"\n"
@@ -5709,53 +4450,44 @@ msgstr ""
"\n"
" lpadmin [-h サーバー] -d 宛先\n"
" lpadmin [-h サーバー] -x 宛先\n"
-" lpadmin [-h サーバー] -p プリンター [-c 追加クラス] [-i インターフェイス]\n"
+" lpadmin [-h サーバー] -p プリンター [-c 追加クラス] [-i インターフェイ"
+"ス]\n"
" [-m モデル] [-r 削除クラス] [-v デバイス]\n"
" [-D 宛先] [-P PPD ファイル] [-o 名前=値]\n"
-" [-u allow:ユーザー,ユーザー] [-u deny:ユーザー,ユーザー]"
+" [-u allow:ユーザー,ユーザー] [-u deny:ユーザー,ユー"
+"ザー]"
-#: backend/dnssd.c:241 backend/ipp.c:313 backend/lpd.c:191
-#: backend/socket.c:135 backend/usb.c:183 filter/commandtops.c:74
-#: filter/gziptoany.c:50 filter/pstops.c:264 monitor/bcp.c:62
-#: monitor/tbcp.c:61
#, c-format
msgid "Usage: %s job-id user title copies options [file]"
msgstr "使い方: %s ジョブID ユーザー タイトル コピー数 オプション [ファイル]"
-#: systemv/cupsaddsmb.c:281
msgid "Usage: cupsaddsmb [options] printer1 ... printerN"
msgstr "Usage: cupsaddsmb [オプション] プリンター1 ... プリンターN"
-#: systemv/cupsctl.c:200
msgid "Usage: cupsctl [options] [param=value ... paramN=valueN]"
msgstr "Usage: cupsctl [オプション] [パラメータ=値 ... パラメータN=値N]"
-#: scheduler/main.c:2017
msgid "Usage: cupsd [options]"
msgstr "使い方: cupsd [オプション]"
-#: scheduler/cupsfilter.c:1429
msgid "Usage: cupsfilter [ options ] filename"
msgstr "使い方: cupsfilter [オプション] ファイル名"
-#: systemv/cupstestdsc.c:425
msgid "Usage: cupstestdsc [options] filename.ps [... filename.ps]"
msgstr "使い方: cupstestdsc [オプション] filename.ps [... filename.ps]"
-#: systemv/cupstestppd.c:3793
msgid ""
"Usage: cupstestppd [options] filename1.ppd[.gz] [... filenameN.ppd[.gz]]"
-msgstr "使い方: cupstestppd [オプション] ファイル名1.ppd[.gz] [... ファイル名N.ppd[.gz]]"
+msgstr ""
+"使い方: cupstestppd [オプション] ファイル名1.ppd[.gz] [... ファイル名N.ppd[."
+"gz]]"
-#: test/ipptool.c:4401
msgid "Usage: ipptool [options] URI filename [ ... filenameN ]"
msgstr "使い方: ipptool [オプション] URI ファイル名 [ ... ファイル名N ]"
-#: systemv/lpmove.c:125
msgid "Usage: lpmove job/src dest"
msgstr "使い方: lpmove ジョブ/ソース 宛先"
-#: systemv/lpoptions.c:553
msgid ""
"Usage: lpoptions [-h server] [-E] -d printer\n"
" lpoptions [-h server] [-E] [-p printer] -l\n"
@@ -5767,11 +4499,9 @@ msgstr ""
" lpoptions [-h サーバー] [-E] -p プリンター -o オプション[=値] ...\n"
" lpoptions [-h サーバー] [-E] -x プリンター"
-#: systemv/lppasswd.c:476
msgid "Usage: lppasswd [-g groupname]"
msgstr "使い方: lppasswd [-g グループ名]"
-#: systemv/lppasswd.c:479
msgid ""
"Usage: lppasswd [-g groupname] [username]\n"
" lppasswd [-g groupname] -a [username]\n"
@@ -5781,73 +4511,59 @@ msgstr ""
" lppasswd [-g グループ名] -a [ユーザー名]\n"
" lppasswd [-g グループ名] -x [ユーザー名]"
-#: berkeley/lpq.c:670
msgid ""
"Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]"
-msgstr "使い方: lpq [-P 宛先] [-U ユーザー名] [-h ホスト名[:ポート]] [-l] [+間隔]"
+msgstr ""
+"使い方: lpq [-P 宛先] [-U ユーザー名] [-h ホスト名[:ポート]] [-l] [+間隔]"
-#: ppdc/ppdc.cxx:435
msgid "Usage: ppdc [options] filename.drv [ ... filenameN.drv ]"
msgstr "使い方: ppdc [オプション] ファイル名.drv [ ... ファイル名N.drv ]"
-#: ppdc/ppdhtml.cxx:172
msgid "Usage: ppdhtml [options] filename.drv >filename.html"
msgstr "使い方: ppdhtml [オプション] ファイル名.drv >ファイル名.html"
-#: ppdc/ppdi.cxx:128
msgid "Usage: ppdi [options] filename.ppd [ ... filenameN.ppd ]"
msgstr "使い方: ppdi [オプション] ファイル名.ppd [ ... ファイル名N.ppd ]"
-#: ppdc/ppdmerge.cxx:367
msgid "Usage: ppdmerge [options] filename.ppd [ ... filenameN.ppd ]"
msgstr "使い方: ppdmerge [オプション] ファイル名.ppd [ ... ファイル名N.ppd ]"
-#: ppdc/ppdpo.cxx:252
msgid ""
"Usage: ppdpo [options] -o filename.po filename.drv [ ... filenameN.drv ]"
-msgstr "使い方: ppdpo [オプション] -o ファイル名.po ファイル名.drv [ ... ファイル名N.drv ]"
+msgstr ""
+"使い方: ppdpo [オプション] -o ファイル名.po ファイル名.drv [ ... ファイル名N."
+"drv ]"
-#: backend/snmp.c:218
msgid "Usage: snmp [host-or-ip-address]"
msgstr "使い方: snmp [ホストまたはIPアドレス]"
-#: cups/snmp.c:1064
msgid "Value uses indefinite length"
msgstr "値は不定長です"
-#: cups/snmp.c:1049
msgid "VarBind uses indefinite length"
msgstr "VarBind は不定長です"
-#: cups/snmp.c:999
msgid "Version uses indefinite length"
msgstr "Version は不定長です"
-#: backend/ipp.c:1675
msgid "Waiting for job to complete."
msgstr "ジョブが完了するのを待っています。"
-#: backend/usb-darwin.c:457 backend/usb-libusb.c:193
msgid "Waiting for printer to become available."
msgstr "プリンターが使用可能になるのを待っています。"
-#: backend/socket.c:444
msgid "Waiting for printer to finish."
msgstr "プリンターが終了するのを待っています。"
-#: cups/adminutil.c:793
msgid "Warning, no Windows 2000 printer drivers are installed."
msgstr "警告、Windows 2000 プリンタードライバーがインストールされていません。"
-#: cups/http-support.c:1339
msgid "Web Interface is Disabled"
msgstr "Web インターフェイスが無効になっています"
-#: cups/ppd.c:1947
msgid "Yes"
msgstr "はい"
-#: scheduler/client.c:2437
#, c-format
msgid ""
"You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://"
@@ -5856,289 +4572,228 @@ msgstr ""
"このページには URL <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A> を使ってア"
"クセスする必要があります。"
-#: systemv/lppasswd.c:254
msgid ""
"Your password must be at least 6 characters long, cannot contain your "
"username, and must contain at least one letter and number."
-msgstr "パスワードは少なくとも 6 文字以上で、あなたのユーザー名を含んではならず、少なくとも 1 つの英字および数値を含んでなければなりません。"
+msgstr ""
+"パスワードは少なくとも 6 文字以上で、あなたのユーザー名を含んではならず、少な"
+"くとも 1 つの英字および数値を含んでなければなりません。"
-#: ppdc/sample.c:439
msgid "ZPL Label Printer"
msgstr "ZPL ラベルプリンター"
-#: ppdc/sample.c:362
msgid "Zebra"
msgstr "ゼブラ"
-#: cups/notify.c:102
msgid "aborted"
msgstr "停止"
-#: cups/notify.c:99
msgid "canceled"
msgstr "キャンセル"
-#: cups/notify.c:105
msgid "completed"
msgstr "完了"
-#: scheduler/ipp.c:6012
msgid "cups-deviced failed to execute."
msgstr "cups-deviced の実行に失敗しました。"
-#: scheduler/ipp.c:6842 scheduler/ipp.c:7091
msgid "cups-driverd failed to execute."
msgstr "cups-driverd の実行に失敗しました。"
-#: systemv/cupsaddsmb.c:233
#, c-format
msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s"
msgstr "cupsaddsmb: プリンター \"%s\" の PPD ファイルがありません - %s"
-#: systemv/cupsctl.c:141
msgid "cupsctl: Cannot set Listen or Port directly."
msgstr "cupsctl: Listen あるいは Port を直接設定できません。"
-#: systemv/cupsctl.c:152
#, c-format
msgid "cupsctl: Unable to connect to server: %s"
msgstr "cupsctl: サーバーに接続できません: %s"
-#: systemv/cupsctl.c:195
#, c-format
msgid "cupsctl: Unknown option \"%s\""
msgstr "cupsctl: \"%s\" は未知のオプションです。"
-#: systemv/cupsctl.c:197
#, c-format
msgid "cupsctl: Unknown option \"-%c\""
msgstr "cupsctl: \"-%c\"は未知のオプションです。"
-#: scheduler/main.c:189
msgid "cupsd: Expected config filename after \"-c\" option."
msgstr "cupsd: \"-c\" オプションのあとには設定ファイル名が必要です。"
-#: scheduler/main.c:221 scheduler/main.c:228
msgid "cupsd: Unable to get current directory."
msgstr "cupsd: カレントディレクトリーを取得できません。"
-#: scheduler/main.c:295
#, c-format
msgid "cupsd: Unknown argument \"%s\" - aborting."
msgstr "cupsd: \"%s\" は未知の引数です - 停止します。"
-#: scheduler/main.c:288
#, c-format
msgid "cupsd: Unknown option \"%c\" - aborting."
msgstr "cupsd: \"%c\" は未知のオプションです - 停止します。"
-#: scheduler/main.c:255
msgid "cupsd: launchd(8) support not compiled in, running in normal mode."
-msgstr "cupsd: launchd(8) サポートがコンパイルされていないので、通常モードで動作します。"
+msgstr ""
+"cupsd: launchd(8) サポートがコンパイルされていないので、通常モードで動作しま"
+"す。"
-#: scheduler/cupsfilter.c:1209
#, c-format
msgid "cupsfilter: Invalid document number %d."
msgstr "cupsfilter: 不正な文書番号 %d です。"
-#: scheduler/cupsfilter.c:1203
#, c-format
msgid "cupsfilter: Invalid job ID %d."
msgstr "cupsfilter: 不正なジョブID %d です。"
-#: scheduler/cupsfilter.c:358
msgid "cupsfilter: Only one filename can be specified."
msgstr "cupsfilter: 1 つのファイル名のみを指定できます。"
-#: scheduler/cupsfilter.c:1251
#, c-format
msgid "cupsfilter: Unable to get job file - %s"
msgstr "cupsfilter: ジョブ・ファイルを取得できません - %s"
-#: systemv/cupstestppd.c:261
msgid "cupstestppd: The -q option is incompatible with the -v option."
msgstr "cupstestppd: -q オプションは -v オプションと両立できません。"
-#: systemv/cupstestppd.c:277
msgid "cupstestppd: The -v option is incompatible with the -q option."
msgstr "cupstestppd: -v オプションは -q オプションと両立できません。"
-#: systemv/lpstat.c:1231 systemv/lpstat.c:1234 systemv/lpstat.c:1237
#, c-format
msgid "device for %s/%s: %s"
msgstr "%s/%s のデバイス: %s"
-#: systemv/lpstat.c:1218 systemv/lpstat.c:1221 systemv/lpstat.c:1224
#, c-format
msgid "device for %s: %s"
msgstr "%s のデバイス: %s"
-#: cups/snmp.c:1036
msgid "error-index uses indefinite length"
msgstr "error-index は不定長です"
-#: cups/snmp.c:1028
msgid "error-status uses indefinite length"
msgstr "error-status は不定長です"
-#: cups/notify.c:90
msgid "held"
msgstr "保留"
-#: berkeley/lpc.c:209
msgid "help\t\tGet help on commands."
msgstr "help\t\tコマンドのヘルプを取得。"
-#: cups/notify.c:131
msgid "idle"
msgstr "待機中"
-#: test/ipptool.c:373 test/ipptool.c:515 test/ipptool.c:539
msgid "ipptool: \"-i\" and \"-n\" are incompatible with -X\"."
msgstr "ipptool: \"-i\" と \"-n\" は \"-X\" と組み合わせられません。"
-#: test/ipptool.c:597
#, c-format
msgid "ipptool: Bad URI - %s."
msgstr "ipptool: 不正な URI です - %s。"
-#: test/ipptool.c:362
#, c-format
msgid "ipptool: Bad version %s for \"-V\"."
msgstr "ipptool: \"-V\" オプションに不正なバージョン %s が指定されました。"
-#: test/ipptool.c:508
msgid "ipptool: Invalid seconds for \"-i\"."
msgstr "ipptool: \"-i\" に不正な秒数が指定されました。"
-#: test/ipptool.c:578
msgid "ipptool: May only specify a single URI."
msgstr "ipptool: URI は 1 つだけ指定できます。"
-#: test/ipptool.c:531
msgid "ipptool: Missing count for \"-n\"."
msgstr "ipptool: \"-n\" に回数の指定がありません。"
-#: test/ipptool.c:408
msgid "ipptool: Missing filename for \"-f\"."
msgstr "ipptool: \"-f\" にファイル名の指定がありません。"
-#: test/ipptool.c:389
msgid "ipptool: Missing name=value for \"-d\"."
msgstr "ipptool: \"-d\" に 名前=値 の指定がありません。"
-#: test/ipptool.c:498
msgid "ipptool: Missing seconds for \"-i\"."
msgstr "ipptool: \"-i\" に秒数の指定がありません。"
-#: test/ipptool.c:332
msgid "ipptool: Missing timeout for \"-T\"."
msgstr "ipptool: \"-T\" にタイムアウトの指定がありません。"
-#: test/ipptool.c:345
msgid "ipptool: Missing version for \"-V\"."
msgstr "ipptool: \"-V\" にバージョンの指定がありません。"
-#: test/ipptool.c:624
msgid "ipptool: URI required before test file."
msgstr "ipptool: テストファイルの前に URI の指定が必要です。"
-#: test/ipptool.c:558
#, c-format
msgid "ipptool: Unknown option \"-%c\"."
msgstr "ipptool: \"-%c\"は未知のオプションです。"
-#: scheduler/ipp.c:7838
msgid "job-printer-uri attribute missing."
msgstr "job-printer-uri 属性がありません。"
-#: systemv/lpadmin.c:131 systemv/lpadmin.c:375
msgid "lpadmin: Class name can only contain printable characters."
msgstr "lpadmin: クラス名は表示可能文字のみで構成されなければなりません。"
-#: systemv/lpadmin.c:614
msgid "lpadmin: Expected PPD after \"-P\" option."
msgstr "lpadmin: \"-P\" オプションのあとには PPD が必要です。"
-#: systemv/lpadmin.c:457
msgid "lpadmin: Expected allow/deny:userlist after \"-u\" option."
-msgstr "lpadmin: \"-u\" オプションのあとには allow/deny:ユーザーリスト が必要です。"
+msgstr ""
+"lpadmin: \"-u\" オプションのあとには allow/deny:ユーザーリスト が必要です。"
-#: systemv/lpadmin.c:364
msgid "lpadmin: Expected class after \"-r\" option."
msgstr "lpadmin: \"-r\" オプションのあとにはクラス名が必要です。"
-#: systemv/lpadmin.c:120
msgid "lpadmin: Expected class name after \"-c\" option."
msgstr "lpadmin: \"-c\" オプションのあとにはクラス名が必要です。"
-#: systemv/lpadmin.c:558
msgid "lpadmin: Expected description after \"-D\" option."
msgstr "lpadmin: \"-D\" オプションのあとには説明が必要です。"
-#: systemv/lpadmin.c:491
msgid "lpadmin: Expected device URI after \"-v\" option."
msgstr "lpadmin: \"-v\" オプションのあとにはデバイス URI が必要です。"
-#: systemv/lpadmin.c:574
msgid "lpadmin: Expected file type(s) after \"-I\" option."
msgstr "lpadmin: \"-I\" オプションのあとにはファイル形式が必要です。"
-#: systemv/lpadmin.c:202
msgid "lpadmin: Expected hostname after \"-h\" option."
msgstr "lpadmin: \"-h\" オプションのあとにはホスト名が必要です。"
-#: systemv/lpadmin.c:221
msgid "lpadmin: Expected interface after \"-i\" option."
msgstr "lpadmin: \"-i\" オプションのあとにはインターフェイス名が必要です。"
-#: systemv/lpadmin.c:594
msgid "lpadmin: Expected location after \"-L\" option."
msgstr "lpadmin: \"-L\" オプションのあとには場所が必要です。"
-#: systemv/lpadmin.c:274
msgid "lpadmin: Expected model after \"-m\" option."
msgstr "lpadmin: \"-m\" オプションのあとにはモデル名が必要です。"
-#: systemv/lpadmin.c:417
msgid "lpadmin: Expected name after \"-R\" option."
msgstr "lpadmin: \"-R\" オプションのあとには名前が必要です。"
-#: systemv/lpadmin.c:294
msgid "lpadmin: Expected name=value after \"-o\" option."
msgstr "lpadmin: \"-o\" オプションのあとには 変数名=値 が必要です。"
-#: systemv/lpadmin.c:313
msgid "lpadmin: Expected printer after \"-p\" option."
msgstr "lpadmin: \"-p\" オプションのあとにはプリンター名が必要です。"
-#: systemv/lpadmin.c:164
msgid "lpadmin: Expected printer name after \"-d\" option."
msgstr "lpadmin: \"-d\" オプションのあとにはプリンター名が必要です。"
-#: systemv/lpadmin.c:525
msgid "lpadmin: Expected printer or class after \"-x\" option."
-msgstr "lpadmin: \"-x\" オプションのあとにはプリンター名またはクラス名が必要です。"
+msgstr ""
+"lpadmin: \"-x\" オプションのあとにはプリンター名またはクラス名が必要です。"
-#: systemv/lpadmin.c:975
msgid "lpadmin: No member names were seen."
msgstr "lpadmin: メンバー名が見当たりません。"
-#: systemv/lpadmin.c:762
#, c-format
msgid "lpadmin: Printer %s is already a member of class %s."
msgstr "lpadmin: プリンター %s はすでにクラス %s のメンバーです。"
-#: systemv/lpadmin.c:989
#, c-format
msgid "lpadmin: Printer %s is not a member of class %s."
msgstr "lpadmin: プリンター %s はクラス %s のメンバーではありません。"
-#: systemv/lpadmin.c:175 systemv/lpadmin.c:324 systemv/lpadmin.c:536
msgid "lpadmin: Printer name can only contain printable characters."
msgstr "lpadmin: プリンター名には表示可能文字だけが使用できます。"
-#: systemv/lpadmin.c:105
msgid ""
"lpadmin: Unable to add a printer to the class:\n"
" You must specify a printer name first."
@@ -6146,18 +4801,13 @@ msgstr ""
"lpadmin: クラスにプリンターを追加できません:\n"
" 先にプリンター名を指定する必要があります。"
-#: systemv/lpadmin.c:96 systemv/lpadmin.c:149 systemv/lpadmin.c:253
-#: systemv/lpadmin.c:339 systemv/lpadmin.c:393 systemv/lpadmin.c:510
-#: systemv/lpadmin.c:647
#, c-format
msgid "lpadmin: Unable to connect to server: %s"
msgstr "lpadmin: サーバーに接続できません: %s"
-#: systemv/lpadmin.c:1329
msgid "lpadmin: Unable to create temporary file"
msgstr "lpadmin: テンポラリーファイルを作成できません"
-#: systemv/lpadmin.c:402
msgid ""
"lpadmin: Unable to delete option:\n"
" You must specify a printer name first."
@@ -6165,12 +4815,10 @@ msgstr ""
"lpadmin: プリンター・オプションを削除できません:\n"
" 先にプリンター名を指定する必要があります。"
-#: systemv/lpadmin.c:1339
#, c-format
msgid "lpadmin: Unable to open PPD file \"%s\" - %s"
msgstr "lpadmin: PPD ファイル \"%s\" を開けません - %s"
-#: systemv/lpadmin.c:348
msgid ""
"lpadmin: Unable to remove a printer from the class:\n"
" You must specify a printer name first."
@@ -6178,7 +4826,6 @@ msgstr ""
"lpadmin: クラスからプリンターを削除できません:\n"
" 先にプリンター名を指定する必要があります。"
-#: systemv/lpadmin.c:656
msgid ""
"lpadmin: Unable to set the printer options:\n"
" You must specify a printer name first."
@@ -6186,437 +4833,377 @@ msgstr ""
"lpadmin: プリンター・オプションを設定できません:\n"
" 先にプリンター名を指定する必要があります。"
-#: systemv/lpadmin.c:474
#, c-format
msgid "lpadmin: Unknown allow/deny option \"%s\"."
msgstr "lpadmin:\"%s\" は未知の allow/deny オプションです。"
-#: systemv/lpadmin.c:629
#, c-format
msgid "lpadmin: Unknown argument \"%s\"."
msgstr "lpadmin: \"%s\" は未知の引数です。"
-#: systemv/lpadmin.c:624
#, c-format
msgid "lpadmin: Unknown option \"%c\"."
msgstr "lpadmin: \"%c\" は未知のオプションです。"
-#: systemv/lpadmin.c:580
msgid "lpadmin: Warning - content type list ignored."
msgstr "lpadmin: 警告 - コンテンツタイプリストは無視されます。"
-#: berkeley/lpc.c:76 berkeley/lpc.c:104 berkeley/lpc.c:140
msgid "lpc> "
msgstr "lpc> "
-#: systemv/lpinfo.c:137
msgid "lpinfo: Expected 1284 device ID string after \"--device-id\"."
-msgstr "lpinfo: \"--device-id\" のあとには、1284 デバイス ID を指定する必要があります。"
+msgstr ""
+"lpinfo: \"--device-id\" のあとには、1284 デバイス ID を指定する必要がありま"
+"す。"
-#: systemv/lpinfo.c:190
msgid "lpinfo: Expected language after \"--language\"."
msgstr "lpinfo: \"--language\" のあとには、言語を指定する必要があります。"
-#: systemv/lpinfo.c:207
msgid "lpinfo: Expected make and model after \"--make-and-model\"."
-msgstr "lpinfo: \"--make-and-model\" の後には、メーカーとモデルを指定する必要があります。"
+msgstr ""
+"lpinfo: \"--make-and-model\" の後には、メーカーとモデルを指定する必要がありま"
+"す。"
-#: systemv/lpinfo.c:224
msgid "lpinfo: Expected product string after \"--product\"."
msgstr "lpinfo: \"--product\" のあとには、製品名を指定する必要があります。"
-#: systemv/lpinfo.c:155
msgid "lpinfo: Expected scheme list after \"--exclude-schemes\"."
-msgstr "lpinfo: \"--exclude-schemes\" のあとには、スキーマ・リストを指定する必要があります。"
+msgstr ""
+"lpinfo: \"--exclude-schemes\" のあとには、スキーマ・リストを指定する必要があ"
+"ります。"
-#: systemv/lpinfo.c:173
msgid "lpinfo: Expected scheme list after \"--include-schemes\"."
-msgstr "lpinfo: \"--include-schemes\" のあとには、スキーマ・リストを指定する必要があります。"
+msgstr ""
+"lpinfo: \"--include-schemes\" のあとには、スキーマ・リストを指定する必要があ"
+"ります。"
-#: systemv/lpinfo.c:241
msgid "lpinfo: Expected timeout after \"--timeout\"."
-msgstr "lpinfo: \"--timeout\" のあとには、タイムアウト値を指定する必要があります。"
+msgstr ""
+"lpinfo: \"--timeout\" のあとには、タイムアウト値を指定する必要があります。"
-#: systemv/lpinfo.c:265
#, c-format
msgid "lpinfo: Unknown argument \"%s\"."
msgstr "lpinfo: 未知の引数 \"%s\"。"
-#: systemv/lpinfo.c:259
#, c-format
msgid "lpinfo: Unknown option \"%c\"."
msgstr "lpinfo: 未知のオプション \"%c\"。"
-#: systemv/lpinfo.c:252
#, c-format
msgid "lpinfo: Unknown option \"%s\"."
msgstr "lpinfo: 未知のオプション \"%s\"。"
-#: systemv/lpmove.c:133
#, c-format
msgid "lpmove: Unable to connect to server: %s"
msgstr "lpmove: サーバーに接続できません: %s"
-#: systemv/lpmove.c:119
#, c-format
msgid "lpmove: Unknown argument \"%s\"."
msgstr "lpmove: 未知の引数 \"%s\"。"
-#: systemv/lpmove.c:97
#, c-format
msgid "lpmove: Unknown option \"%c\"."
msgstr "lpmove: 未知のオプション \"%c\"。"
-#: systemv/lpoptions.c:150 systemv/lpoptions.c:168 systemv/lpoptions.c:244
msgid "lpoptions: No printers."
msgstr "lpoptions: プリンターがありません。"
-#: systemv/lpoptions.c:219
#, c-format
msgid "lpoptions: Unable to add printer or instance: %s"
msgstr "lpoptions: プリンターまたはインスタンスを追加できません: %s。"
-#: systemv/lpoptions.c:521
#, c-format
msgid "lpoptions: Unable to get PPD file for %s: %s"
msgstr "lpoptions: %s の PPD ファイルを取得できません: %s"
-#: systemv/lpoptions.c:529
#, c-format
msgid "lpoptions: Unable to open PPD file for %s."
msgstr "lpoptions: %s の PPD ファイルを開けません。"
-#: systemv/lpoptions.c:99
msgid "lpoptions: Unknown printer or class."
msgstr "lpoptions: 未知のプリンターまたはクラスです。"
-#: systemv/lppasswd.c:173
msgid "lppasswd: Only root can add or delete passwords."
msgstr "lppasswd: root だけがパスワードの追加と削除を行えます。"
-#: systemv/lppasswd.c:302
msgid "lppasswd: Password file busy."
msgstr "lppasswd: パスワードファイルがビジー状態です。"
-#: systemv/lppasswd.c:431
msgid "lppasswd: Password file not updated."
msgstr "lppasswd: パスワードファイルは更新されません。"
-#: systemv/lppasswd.c:398
msgid "lppasswd: Sorry, password doesn't match."
msgstr "lppasswd: 残念ながら、パスワードがマッチしません。"
-#: systemv/lppasswd.c:253
msgid "lppasswd: Sorry, password rejected."
msgstr "lppasswd: 残念ながら、パスワードは拒否されました。"
-#: systemv/lppasswd.c:230
msgid "lppasswd: Sorry, passwords don't match."
msgstr "lppasswd: 残念ながら、パスワードがマッチしません。"
-#: systemv/lppasswd.c:199 systemv/lppasswd.c:218
#, c-format
msgid "lppasswd: Unable to copy password string: %s"
msgstr "lppasswd: パスワード文字列をコピーできません: %s"
-#: systemv/lppasswd.c:304 systemv/lppasswd.c:312 systemv/lppasswd.c:329
#, c-format
msgid "lppasswd: Unable to open password file: %s"
msgstr "lppasswd: パスワードファイルを開けません: %s"
-#: systemv/lppasswd.c:364 systemv/lppasswd.c:377 systemv/lppasswd.c:408
#, c-format
msgid "lppasswd: Unable to write to password file: %s"
msgstr "lppasswd: パスワードファイルに書き込めません: %s"
-#: systemv/lppasswd.c:446
#, c-format
msgid "lppasswd: failed to backup old password file: %s"
msgstr "lppasswd: 古いパスワードファイルのバックアップに失敗しました: %s"
-#: systemv/lppasswd.c:458
#, c-format
msgid "lppasswd: failed to rename password file: %s"
msgstr "lppasswd: パスワードファイルの名前の変更に失敗しました: %s"
-#: systemv/lppasswd.c:389
#, c-format
msgid "lppasswd: user \"%s\" and group \"%s\" do not exist."
msgstr "lppasswd: ユーザー \"%s\" およびグループ \"%s\" は存在しません。"
-#: systemv/lpstat.c:1039
#, c-format
msgid ""
"lpstat: error - %s environment variable names non-existent destination \"%s"
"\"."
-msgstr "lpstat: エラー - 環境変数 %s が、存在しない宛先 \"%s\" を指しています。"
+msgstr ""
+"lpstat: エラー - 環境変数 %s が、存在しない宛先 \"%s\" を指しています。"
-#: systemv/lpstat.c:970
#, c-format
msgid "members of class %s:"
msgstr "クラス %s のメンバー:"
-#: berkeley/lpq.c:582
msgid "no entries"
msgstr "エントリーがありません"
-#: systemv/lpstat.c:1043
msgid "no system default destination"
msgstr "システムのデフォルトの宛先がありません"
-#: scheduler/ipp.c:5702
msgid "notify-events not specified."
msgstr "notify-events が指定されていません。"
-#: scheduler/ipp.c:2034 scheduler/ipp.c:5607
#, c-format
msgid "notify-recipient-uri URI \"%s\" is already used."
msgstr "notify-recipient-uri URI \"%s\" はすでに使われています。"
-#: scheduler/ipp.c:2024 scheduler/ipp.c:5597
#, c-format
msgid "notify-recipient-uri URI \"%s\" uses unknown scheme."
msgstr "notify-recipient-uri URI \"%s\" には未知のスキームが使われています。"
-#: cups/notify.c:87
msgid "pending"
msgstr "保留"
-#: ppdc/ppdc.cxx:113 ppdc/ppdpo.cxx:93
#, c-format
msgid "ppdc: Adding include directory \"%s\"."
msgstr "ppdc: ディレクトリー \"%s\" を追加しています。"
-#: ppdc/ppdpo.cxx:134
#, c-format
msgid "ppdc: Adding/updating UI text from %s."
msgstr "ppdc: %s から UI テキストを追加または更新しています。"
-#: ppdc/ppdc-source.cxx:410
#, c-format
msgid "ppdc: Bad boolean value (%s) on line %d of %s."
msgstr "ppdc: 不正な boolean 値 (%s) があります。%d 行目、ファイル名 %s。"
-#: ppdc/ppdc-import.cxx:264
#, c-format
msgid "ppdc: Bad font attribute: %s"
msgstr "不正なフォント属性: %s"
-#: ppdc/ppdc-source.cxx:1796
#, c-format
msgid "ppdc: Bad resolution name \"%s\" on line %d of %s."
msgstr ""
"ppdc: 不正な resolution 名 \"%s\" があります。%d 行目、ファイル名 %s 。"
-#: ppdc/ppdc-source.cxx:1113
#, c-format
msgid "ppdc: Bad status keyword %s on line %d of %s."
msgstr ""
"ppdc: 不正な status キーワード %s があります。%d 行目、ファイル名 %s 。"
-#: ppdc/ppdc-source.cxx:2033
#, c-format
msgid "ppdc: Bad variable substitution ($%c) on line %d of %s."
msgstr "ppdc: 不正な数値置換 ($%c) があります。%d 行目、ファイル名 %s。"
-#: ppdc/ppdc-source.cxx:2719
#, c-format
msgid "ppdc: Choice found on line %d of %s with no Option."
msgstr ""
"ppdc: %d 行目、ファイル名 %s で、Option がないのに Choice が見つかりました。"
-#: ppdc/ppdc-source.cxx:1698
#, c-format
msgid "ppdc: Duplicate #po for locale %s on line %d of %s."
-msgstr "ppdc: locale %s に対して #po が二重に定義されています。%d 行目、ファイル名 %s 。"
+msgstr ""
+"ppdc: locale %s に対して #po が二重に定義されています。%d 行目、ファイル名 "
+"%s 。"
-#: ppdc/ppdc-source.cxx:932
#, c-format
msgid "ppdc: Expected a filter definition on line %d of %s."
msgstr "ppdc: %d 行目、ファイル名 %s においてフィルター定義が必要です。"
-#: ppdc/ppdc-source.cxx:955
#, c-format
msgid "ppdc: Expected a program name on line %d of %s."
msgstr "ppdc: %d 行目、ファイル名 %s においてプログラム名が必要です。"
-#: ppdc/ppdc-source.cxx:394
#, c-format
msgid "ppdc: Expected boolean value on line %d of %s."
msgstr "ppdc: %d 行目、ファイル名 %s において boolean 値が必要です。"
-#: ppdc/ppdc-source.cxx:1093
#, c-format
msgid "ppdc: Expected charset after Font on line %d of %s."
-msgstr "ppdc: %d 行目、ファイル名 %s において Font のあとに charset が必要です。"
+msgstr ""
+"ppdc: %d 行目、ファイル名 %s において Font のあとに charset が必要です。"
-#: ppdc/ppdc-source.cxx:447
#, c-format
msgid "ppdc: Expected choice code on line %d of %s."
msgstr "ppdc: %d 行目、ファイル名 %s において choice code が必要です。"
-#: ppdc/ppdc-source.cxx:435
#, c-format
msgid "ppdc: Expected choice name/text on line %d of %s."
msgstr "ppdc: %d 行目、ファイル名 %s において choice name/text が必要です。"
-#: ppdc/ppdc-source.cxx:503
#, c-format
msgid "ppdc: Expected color order for ColorModel on line %d of %s."
msgstr ""
"ppdc: %d 行目、ファイル名 %s において ColorModel に対する color order が必要"
"です。"
-#: ppdc/ppdc-source.cxx:492
#, c-format
msgid "ppdc: Expected colorspace for ColorModel on line %d of %s."
msgstr ""
"ppdc: %d 行目、ファイル名 %s において ColorModel に対する colorspace が必要で"
"す。"
-#: ppdc/ppdc-source.cxx:514
#, c-format
msgid "ppdc: Expected compression for ColorModel on line %d of %s."
msgstr ""
"ppdc: %d 行目、ファイル名 %s において ColorModel に対する compression が必要"
"です。"
-#: ppdc/ppdc-source.cxx:695
#, c-format
msgid "ppdc: Expected constraints string for UIConstraints on line %d of %s."
msgstr ""
"ppdc: %d 行目、ファイル名 %s において UIConstraints に対する constraint が必"
"要です。"
-#: ppdc/ppdc-source.cxx:2905
#, c-format
msgid ""
"ppdc: Expected driver type keyword following DriverType on line %d of %s."
-msgstr "ppdc: %d 行目、ファイル名 %s において DriverType のあとに driver type keyword が必要です。"
+msgstr ""
+"ppdc: %d 行目、ファイル名 %s において DriverType のあとに driver type "
+"keyword が必要です。"
-#: ppdc/ppdc-source.cxx:826
#, c-format
msgid "ppdc: Expected duplex type after Duplex on line %d of %s."
-msgstr "ppdc: %d 行目、ファイル名 %s において Duplex のあとに type が必要です。"
+msgstr ""
+"ppdc: %d 行目、ファイル名 %s において Duplex のあとに type が必要です。"
-#: ppdc/ppdc-source.cxx:1077
#, c-format
msgid "ppdc: Expected encoding after Font on line %d of %s."
-msgstr "ppdc: %d 行目、ファイル名 %s において Font のあとに encoding が必要です。"
+msgstr ""
+"ppdc: %d 行目、ファイル名 %s において Font のあとに encoding が必要です。"
-#: ppdc/ppdc-source.cxx:1689
#, c-format
msgid "ppdc: Expected filename after #po %s on line %d of %s."
msgstr "ppdc: #po %s のあとにファイル名が必要です (%d 行目, ファイル %s)。"
-#: ppdc/ppdc-source.cxx:1205
#, c-format
msgid "ppdc: Expected group name/text on line %d of %s."
msgstr "ppdc: %d 行目、ファイル名 %s において group name/text が必要です。"
-#: ppdc/ppdc-source.cxx:2619
#, c-format
msgid "ppdc: Expected include filename on line %d of %s."
msgstr "ppdc: %d 行目、ファイル名 %s において include ファイル名が必要です。"
-#: ppdc/ppdc-source.cxx:1502
#, c-format
msgid "ppdc: Expected integer on line %d of %s."
msgstr "ppdc: %d 行目、ファイル名 %s において整数指定が必要です。"
-#: ppdc/ppdc-source.cxx:1681
#, c-format
msgid "ppdc: Expected locale after #po on line %d of %s."
msgstr "ppdc: %d 行目、ファイル名 %s において #po のあとに locale が必要です。"
-#: ppdc/ppdc-source.cxx:353
#, c-format
msgid "ppdc: Expected name after %s on line %d of %s."
msgstr "ppdc: %s のあとに name が必要です。%d 行目、ファイル名 %s。"
-#: ppdc/ppdc-source.cxx:3277
#, c-format
msgid "ppdc: Expected name after FileName on line %d of %s."
-msgstr "ppdc: %d 行目、ファイル名 %s において FileName のあとに name が必要です。"
+msgstr ""
+"ppdc: %d 行目、ファイル名 %s において FileName のあとに name が必要です。"
-#: ppdc/ppdc-source.cxx:1058
#, c-format
msgid "ppdc: Expected name after Font on line %d of %s."
msgstr "ppdc: %d 行目、ファイル名 %s において Font のあとに name が必要です。"
-#: ppdc/ppdc-source.cxx:3108
#, c-format
msgid "ppdc: Expected name after Manufacturer on line %d of %s."
-msgstr "ppdc: %d 行目、ファイル名 %s において Manufacturer のあとに name が必要です。"
+msgstr ""
+"ppdc: %d 行目、ファイル名 %s において Manufacturer のあとに name が必要です。"
-#: ppdc/ppdc-source.cxx:3141
#, c-format
msgid "ppdc: Expected name after MediaSize on line %d of %s."
-msgstr "ppdc: %d 行目、ファイル名 %s において MediaSize のあとに name が必要です。"
+msgstr ""
+"ppdc: %d 行目、ファイル名 %s において MediaSize のあとに name が必要です。"
-#: ppdc/ppdc-source.cxx:3231
#, c-format
msgid "ppdc: Expected name after ModelName on line %d of %s."
-msgstr "ppdc: %d 行目、ファイル名 %s において ModelName のあとに name が必要です。"
+msgstr ""
+"ppdc: %d 行目、ファイル名 %s において ModelName のあとに name が必要です。"
-#: ppdc/ppdc-source.cxx:3294
#, c-format
msgid "ppdc: Expected name after PCFileName on line %d of %s."
-msgstr "ppdc: %d 行目、ファイル名 %s において PCFileName のあとに name が必要です。"
+msgstr ""
+"ppdc: %d 行目、ファイル名 %s において PCFileName のあとに name が必要です。"
-#: ppdc/ppdc-source.cxx:1156
#, c-format
msgid "ppdc: Expected name/text after %s on line %d of %s."
msgstr "ppdc: %s のあとに name/text が必要です。%d 行目、ファイル名 %s。"
-#: ppdc/ppdc-source.cxx:1245
#, c-format
msgid "ppdc: Expected name/text after Installable on line %d of %s."
-msgstr "ppdc: %d 行目、ファイル名 %s において Installable のあとに name/text が必要です。"
+msgstr ""
+"ppdc: %d 行目、ファイル名 %s において Installable のあとに name/text が必要で"
+"す。"
-#: ppdc/ppdc-source.cxx:1782
#, c-format
msgid "ppdc: Expected name/text after Resolution on line %d of %s."
-msgstr "ppdc: %d 行目、ファイル名 %s において Resolution のあとに name/text が必要です。"
+msgstr ""
+"ppdc: %d 行目、ファイル名 %s において Resolution のあとに name/text が必要で"
+"す。"
-#: ppdc/ppdc-source.cxx:479
#, c-format
msgid "ppdc: Expected name/text combination for ColorModel on line %d of %s."
msgstr ""
"ppdc: %d 行目、ファイル名 %s において ColorModel に対する name/text が必要で"
"す。"
-#: ppdc/ppdc-source.cxx:1574
#, c-format
msgid "ppdc: Expected option name/text on line %d of %s."
msgstr "ppdc: %d 行目、ファイル名 %s において option name/text が必要です。"
-#: ppdc/ppdc-source.cxx:1608
#, c-format
msgid "ppdc: Expected option section on line %d of %s."
msgstr "ppdc: %d 行目、ファイル名 %s において option section が必要です。"
-#: ppdc/ppdc-source.cxx:1586
#, c-format
msgid "ppdc: Expected option type on line %d of %s."
msgstr "ppdc: %d 行目、ファイル名 %s において option type が必要です。"
-#: ppdc/ppdc-source.cxx:1765
#, c-format
msgid "ppdc: Expected override field after Resolution on line %d of %s."
-msgstr "ppdc: %d 行目、ファイル名 %s において Resolution のあとに override field が必要です。"
+msgstr ""
+"ppdc: %d 行目、ファイル名 %s において Resolution のあとに override field が必"
+"要です。"
-#: ppdc/ppdc-catalog.cxx:341 ppdc/ppdc-catalog.cxx:353
#, c-format
msgid "ppdc: Expected quoted string on line %d of %s."
msgstr "%d 行: %s には引用符で囲まれた文字列が必要です。"
-#: ppdc/ppdc-source.cxx:1004
#, c-format
msgid "ppdc: Expected real number on line %d of %s."
msgstr "ppdc: %d 行目、ファイル名 %s において実数が必要です。"
-#: ppdc/ppdc-source.cxx:572
#, c-format
msgid ""
"ppdc: Expected resolution/mediatype following ColorProfile on line %d of %s."
@@ -6624,7 +5211,6 @@ msgstr ""
"ppdc: %d 行目、ファイル名 %s において ColorProfile に続いて resolution/"
"mediatype が必要です。"
-#: ppdc/ppdc-source.cxx:1863
#, c-format
msgid ""
"ppdc: Expected resolution/mediatype following SimpleColorProfile on line %d "
@@ -6633,341 +5219,299 @@ msgstr ""
"ppdc: %d 行目、ファイル名 %s において SimpleColorProfile に続いて resolution/"
"mediatype が必要です。"
-#: ppdc/ppdc-source.cxx:361
#, c-format
msgid "ppdc: Expected selector after %s on line %d of %s."
msgstr "ppdc: %s のあとに selector が必要です。%d 行目、ファイル名 %s。"
-#: ppdc/ppdc-source.cxx:1101
#, c-format
msgid "ppdc: Expected status after Font on line %d of %s."
-msgstr "ppdc: %d 行目、ファイル名 %s において Font のあとに status が必要です。"
+msgstr ""
+"ppdc: %d 行目、ファイル名 %s において Font のあとに status が必要です。"
-#: ppdc/ppdc-source.cxx:2794
#, c-format
msgid "ppdc: Expected string after Copyright on line %d of %s."
-msgstr "ppdc: %d 行目、ファイル名 %s において Copyright のあとに文字列が必要です。"
+msgstr ""
+"ppdc: %d 行目、ファイル名 %s において Copyright のあとに文字列が必要です。"
-#: ppdc/ppdc-source.cxx:3397
#, c-format
msgid "ppdc: Expected string after Version on line %d of %s."
-msgstr "ppdc: %d 行目、ファイル名 %s において Version のあとに文字列が必要です。"
+msgstr ""
+"ppdc: %d 行目、ファイル名 %s において Version のあとに文字列が必要です。"
-#: ppdc/ppdc-source.cxx:728
#, c-format
msgid "ppdc: Expected two option names on line %d of %s."
msgstr "ppdc: %d 行目、ファイル名 %s において 2 つのオプション名が必要です。"
-#: ppdc/ppdc-source.cxx:372
#, c-format
msgid "ppdc: Expected value after %s on line %d of %s."
msgstr "ppdc: %s のあとに value が必要です。%d 行目、ファイル名 %s。"
-#: ppdc/ppdc-source.cxx:1085
#, c-format
msgid "ppdc: Expected version after Font on line %d of %s."
-msgstr "ppdc: %d 行目、ファイル名 %s において Font のあとに version が必要です。"
+msgstr ""
+"ppdc: %d 行目、ファイル名 %s において Font のあとに version が必要です。"
-#: ppdc/ppdc-source.cxx:227
#, c-format
msgid "ppdc: Invalid #include/#po filename \"%s\"."
msgstr "ppdc: 無効な #include/#po ファイル名です \"%s\"。"
-#: ppdc/ppdc-source.cxx:972
#, c-format
msgid "ppdc: Invalid cost for filter on line %d of %s."
msgstr ""
"ppdc: %d 行目、ファイル名 %s においてフィルターに対する無効な cost がありま"
"す。"
-#: ppdc/ppdc-source.cxx:964
#, c-format
msgid "ppdc: Invalid empty MIME type for filter on line %d of %s."
-msgstr "ppdc: %d 行目、ファイル名 %s においてフィルターに対する無効な空の MIME タイプがあります。"
+msgstr ""
+"ppdc: %d 行目、ファイル名 %s においてフィルターに対する無効な空の MIME タイプ"
+"があります。"
-#: ppdc/ppdc-source.cxx:980
#, c-format
msgid "ppdc: Invalid empty program name for filter on line %d of %s."
-msgstr "ppdc: %d 行目、ファイル名 %s においてフィルターに対するプログラム名が空であり無効です。"
+msgstr ""
+"ppdc: %d 行目、ファイル名 %s においてフィルターに対するプログラム名が空であり"
+"無効です。"
-#: ppdc/ppdc-source.cxx:1628
#, c-format
msgid "ppdc: Invalid option section \"%s\" on line %d of %s."
msgstr ""
"ppdc: 無効な option section があります \"%s\"。%d 行目、ファイル名 %s。"
-#: ppdc/ppdc-source.cxx:1600
#, c-format
msgid "ppdc: Invalid option type \"%s\" on line %d of %s."
msgstr "ppdc: 無効な option type があります \"%s\"。%d 行目、ファイル名 %s。"
-#: ppdc/ppdc.cxx:251 ppdc/ppdpo.cxx:123
#, c-format
msgid "ppdc: Loading driver information file \"%s\"."
msgstr "ppdc: ドライバー情報ファイル \"%s\" を読み込んでいます。"
-#: ppdc/ppdc.cxx:187
#, c-format
msgid "ppdc: Loading messages for locale \"%s\"."
msgstr "ppdc: ロケール \"%s\" のメッセージを読み込んでいます。"
-#: ppdc/ppdc.cxx:126
#, c-format
msgid "ppdc: Loading messages from \"%s\"."
msgstr "ppdc: \"%s\" からメッセージを読み込んでいます。"
-#: ppdc/ppdc-source.cxx:2412 ppdc/ppdc-source.cxx:2644
#, c-format
msgid "ppdc: Missing #endif at end of \"%s\"."
msgstr "ppdc: \"%s\" の最後に #endif が見つかりません。"
-#: ppdc/ppdc-source.cxx:2513 ppdc/ppdc-source.cxx:2548
-#: ppdc/ppdc-source.cxx:2578
#, c-format
msgid "ppdc: Missing #if on line %d of %s."
msgstr "ppdc: %d 行目、ファイル名 %s において #if が見つかりません。"
-#: ppdc/ppdc-catalog.cxx:418
#, c-format
msgid ""
"ppdc: Need a msgid line before any translation strings on line %d of %s."
msgstr "%d 行: %s の翻訳文字列の前に msgid 行が必要です。"
-#: ppdc/ppdc-driver.cxx:730
#, c-format
msgid "ppdc: No message catalog provided for locale %s."
msgstr "ppdc: ロケール %s に対するメッセージカタログが見つかりません。"
-#: ppdc/ppdc-source.cxx:1651 ppdc/ppdc-source.cxx:2882
-#: ppdc/ppdc-source.cxx:2968 ppdc/ppdc-source.cxx:3061
-#: ppdc/ppdc-source.cxx:3194 ppdc/ppdc-source.cxx:3327
#, c-format
msgid "ppdc: Option %s defined in two different groups on line %d of %s."
msgstr ""
"ppdc: オプション %s が行 %d、ファイル %s の 2 つの異なるグループで定義されて"
"います。"
-#: ppdc/ppdc-source.cxx:1644
#, c-format
msgid "ppdc: Option %s redefined with a different type on line %d of %s."
msgstr ""
"ppdc: オプション %s は異なる型で再定義されています。%d 行目、ファイル名 %s。"
-#: ppdc/ppdc-source.cxx:705
#, c-format
msgid "ppdc: Option constraint must *name on line %d of %s."
-msgstr "ppdc: %d 行目、ファイル名 %s において Option constraint は *name で指定しなければなりません。"
+msgstr ""
+"ppdc: %d 行目、ファイル名 %s において Option constraint は *name で指定しなけ"
+"ればなりません。"
-#: ppdc/ppdc-source.cxx:2495
#, c-format
msgid "ppdc: Too many nested #if's on line %d of %s."
msgstr "ppdc: %d 行目、ファイル名 %s において #if のネストが多すぎます。"
-#: ppdc/ppdc.cxx:374
#, c-format
msgid "ppdc: Unable to create PPD file \"%s\" - %s."
msgstr "ppdc: PPD ファイル \"%s\" を作成できません - %s。"
-#: ppdc/ppdc.cxx:266
#, c-format
msgid "ppdc: Unable to create output directory %s: %s"
msgstr "ppdc: 出力ディレクトリー \"%s\" を作成できません - %s"
-#: ppdc/ppdc.cxx:287
#, c-format
msgid "ppdc: Unable to create output pipes: %s"
msgstr "ppdc: 出力パイプを作成できません: %s"
-#: ppdc/ppdc.cxx:303 ppdc/ppdc.cxx:309
#, c-format
msgid "ppdc: Unable to execute cupstestppd: %s"
msgstr "ppdc: cupstestppd を実行できません: %s"
-#: ppdc/ppdc-source.cxx:1730
#, c-format
msgid "ppdc: Unable to find #po file %s on line %d of %s."
msgstr "ppdc: #po ファイル %s が見つかりません。%d 行目、ファイル名 %s。"
-#: ppdc/ppdc-source.cxx:2651
#, c-format
msgid "ppdc: Unable to find include file \"%s\" on line %d of %s."
msgstr ""
"ppdc: インクルードファイル %s が見つかりません。%d 行目、ファイル名 %s。"
-#: ppdc/ppdc.cxx:198
#, c-format
msgid "ppdc: Unable to find localization for \"%s\" - %s"
msgstr "ppdc: \"%s\" に対する地域化情報が見つかりません - %s"
-#: ppdc/ppdc.cxx:135
#, c-format
msgid "ppdc: Unable to load localization file \"%s\" - %s"
msgstr "ppdc: \"%s\" に対するローカライズファイルを読み込めません - %s"
-#: ppdc/ppdc-file.cxx:50
#, c-format
msgid "ppdc: Unable to open %s: %s"
msgstr "ppdc: %s を開けません: %s"
-#: ppdc/ppdc-source.cxx:2054
#, c-format
msgid "ppdc: Undefined variable (%s) on line %d of %s."
msgstr "ppdc: 変数 (%s) は未定義です。%d 行目、ファイル名 %s。"
-#: ppdc/ppdc-catalog.cxx:435
#, c-format
msgid "ppdc: Unexpected text on line %d of %s."
msgstr "%d 行: %s は予期せぬテキストです。"
-#: ppdc/ppdc-source.cxx:2924
#, c-format
msgid "ppdc: Unknown driver type %s on line %d of %s."
msgstr "ppdc: %s は未知のドライバータイプです。%d 行目、ファイル名 %s。"
-#: ppdc/ppdc-source.cxx:906
#, c-format
msgid "ppdc: Unknown duplex type \"%s\" on line %d of %s."
msgstr "ppdc: \"%s\" は未知の両面タイプです。%d 行目、ファイル名 %s。"
-#: ppdc/ppdc-source.cxx:3154
#, c-format
msgid "ppdc: Unknown media size \"%s\" on line %d of %s."
msgstr "ppdc: \"%s\" は未知の用紙サイズです。%d 行目、ファイル名 %s。"
-#: ppdc/ppdc-catalog.cxx:463
#, c-format
msgid "ppdc: Unknown message catalog format for \"%s\"."
msgstr "\"%s\" は未知のメッセージカタログの書式です。"
-#: ppdc/ppdc-source.cxx:3408
#, c-format
msgid "ppdc: Unknown token \"%s\" seen on line %d of %s."
msgstr "ppdc: 未知のトークン \"%s\" があります。%d 行目、ファイル名 %s。"
-#: ppdc/ppdc-source.cxx:1014
#, c-format
msgid ""
"ppdc: Unknown trailing characters in real number \"%s\" on line %d of %s."
msgstr "ppdc: 実数 \"%s\" に未知の終了文字があります。%d 行目、ファイル名 %s。"
-#: ppdc/ppdc-source.cxx:2164
#, c-format
msgid "ppdc: Unterminated string starting with %c on line %d of %s."
msgstr ""
"ppdc: %c で始まる文字に対して終端文字がありません。%d 行目、ファイル名 %s。"
-#: ppdc/ppdc.cxx:365
#, c-format
msgid "ppdc: Warning - overlapping filename \"%s\"."
msgstr "ppdc: 警告 - ファイル名 \"%s\" が重複しています。"
-#: ppdc/ppdc.cxx:380
#, c-format
msgid "ppdc: Writing %s."
msgstr "ppdc: %s を書き込んでいます。"
-#: ppdc/ppdc.cxx:148
#, c-format
msgid "ppdc: Writing PPD files to directory \"%s\"."
msgstr "ppdc: ディレクトリー \"%s\" に PPD ファイルを書き込んでいます。"
-#: ppdc/ppdmerge.cxx:136
#, c-format
msgid "ppdmerge: Bad LanguageVersion \"%s\" in %s."
msgstr "ppdmerge: 不正な LanguageVersion \"%s\" が %s にあります。"
-#: ppdc/ppdmerge.cxx:176
#, c-format
msgid "ppdmerge: Ignoring PPD file %s."
msgstr "ppdmerge: PPD ファイル %s を無視します。"
-#: ppdc/ppdmerge.cxx:160
#, c-format
msgid "ppdmerge: Unable to backup %s to %s - %s"
msgstr "ppdmerge: %s を %s にバックアップできません - %s"
-#: systemv/lpstat.c:1784
#, c-format
msgid "printer %s disabled since %s -"
msgstr "プリンター %s は %s から無効です -"
-#: systemv/lpstat.c:1773
#, c-format
msgid "printer %s is idle. enabled since %s"
msgstr "プリンター %s は待機中です。%s 以来有効です"
-#: systemv/lpstat.c:1778
#, c-format
msgid "printer %s now printing %s-%d. enabled since %s"
msgstr "プリンター %s は %s-%d を印刷しています。%s 以来有効です"
-#: systemv/lpstat.c:1909
#, c-format
msgid "printer %s/%s disabled since %s -"
msgstr "プリンター %s/%s は %s から無効です -"
-#: systemv/lpstat.c:1895
#, c-format
msgid "printer %s/%s is idle. enabled since %s"
msgstr "プリンター %s/%s は待機中です。%s 以来有効です"
-#: systemv/lpstat.c:1902
#, c-format
msgid "printer %s/%s now printing %s-%d. enabled since %s"
msgstr "プリンター %s/%s は現在 %s-%d を印刷中です。%s 以来有効です"
-#: cups/notify.c:93 cups/notify.c:134
msgid "processing"
msgstr "処理中"
-#: systemv/lp.c:644
#, c-format
msgid "request id is %s-%d (%d file(s))"
msgstr "リクエスト ID は %s-%d です (%d 個のファイル)"
-#: cups/snmp.c:1020
msgid "request-id uses indefinite length"
msgstr "リクエスト ID の長さが不定"
-#: systemv/lpstat.c:2048
msgid "scheduler is not running"
msgstr "スケジューラーは動作していません"
-#: systemv/lpstat.c:2044
msgid "scheduler is running"
msgstr "スケジューラーは動作中です"
-#: cups/adminutil.c:2159
#, c-format
msgid "stat of %s failed: %s"
msgstr "%s の状態取得に失敗しました: %s"
-#: berkeley/lpc.c:211
msgid "status\t\tShow status of daemon and queue."
msgstr "status\t\tデーモンとキューの状態を表示"
-#: cups/notify.c:96 cups/notify.c:137
msgid "stopped"
msgstr "停止"
-#: systemv/lpstat.c:1017
#, c-format
msgid "system default destination: %s"
msgstr "システムのデフォルトの宛先: %s"
-#: systemv/lpstat.c:1014
#, c-format
msgid "system default destination: %s/%s"
msgstr "システムのデフォルトの宛先: %s/%s"
-#: cups/notify.c:108 cups/notify.c:140
msgid "unknown"
msgstr "未知"
-#: cups/notify.c:117
msgid "untitled"
msgstr "タイトルなし"
-#: cups/snmp.c:1045
msgid "variable-bindings uses indefinite length"
msgstr "variable-bindings の長さが不定"
+
+#~ msgid "%s: Error - expected destination after \"-b\" option."
+#~ msgstr "%s: エラー - \"-b\" オプションのあとに宛先が必要です。"
+
+#~ msgid "Print file accepted - job ID %d."
+#~ msgstr "プリントファイルを受け付けました - ジョブ ID %d。"
+
+#~ msgid "Print file accepted - job ID unknown."
+#~ msgstr "NOTICE: プリントファイルを受け付けました - ジョブ ID 不明。"
+
+#~ msgid "Print file was not accepted."
+#~ msgstr "プリントファイルが受け付けられませんでした。"
+
+#~ msgid "The printer URI is incorrect or no longer exists."
+#~ msgstr "プリンター URI が誤っているか、もう存在しません。"
+
+#~ msgid "The printer does not support IPP/%d.%d, trying IPP/%s."
+#~ msgstr "プリンターが IPP/%d.%d をサポートしていません。IPP/%s を試します。"
diff --git a/monitor/tbcp.c b/monitor/tbcp.c
index 4170d493b..e369975bc 100644
--- a/monitor/tbcp.c
+++ b/monitor/tbcp.c
@@ -3,7 +3,7 @@
*
* TBCP port monitor for CUPS.
*
- * Copyright 2007-2010 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1993-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
@@ -93,11 +93,8 @@ main(int argc, /* I - Number of command-line args */
*/
linelen = sizeof(line);
- if (psgets(line, &linelen, fp) == NULL)
- {
- fputs("ERROR: Empty print file!\n", stderr);
- return (1);
- }
+ if (!psgets(line, &linelen, fp))
+ break;
/*
* Handle leading PJL fun...
diff --git a/scheduler/client.c b/scheduler/client.c
index d4d6ac8b4..e3c35658a 100644
--- a/scheduler/client.c
+++ b/scheduler/client.c
@@ -60,20 +60,23 @@
static const char * const http_states[] =
{ /* HTTP state strings */
- "HTTP_WAITING",
- "HTTP_OPTIONS",
- "HTTP_GET",
- "HTTP_GET_SEND",
- "HTTP_HEAD",
- "HTTP_POST",
- "HTTP_POST_RECV",
- "HTTP_POST_SEND",
- "HTTP_PUT",
- "HTTP_PUT_RECV",
- "HTTP_DELETE",
- "HTTP_TRACE",
- "HTTP_CLOSE",
- "HTTP_STATUS"
+ "HTTP_STATE_ERROR",
+ "HTTP_STATE_WAITING",
+ "HTTP_STATE_OPTIONS",
+ "HTTP_STATE_GET",
+ "HTTP_STATE_GET_SEND",
+ "HTTP_STATE_HEAD",
+ "HTTP_STATE_POST",
+ "HTTP_STATE_POST_RECV",
+ "HTTP_STATE_POST_SEND",
+ "HTTP_STATE_PUT",
+ "HTTP_STATE_PUT_RECV",
+ "HTTP_STATE_DELETE",
+ "HTTP_STATE_TRACE",
+ "HTTP_STATE_CONNECT",
+ "HTTP_STATE_STATUS",
+ "HTTP_STATE_UNKNOWN_METHOD",
+ "HTTP_STATE_UNKNOWN_VERSION"
};
static const char * const ipp_states[] =
{ /* IPP state strings */
@@ -202,7 +205,7 @@ cupsdAcceptClient(cupsd_listener_t *lis)/* I - Listener socket */
* Save the connected port number...
*/
- _httpAddrSetPort(con->http.hostaddr, _httpAddrPort(&(lis->address)));
+ _httpAddrSetPort(con->http.hostaddr, httpAddrPort(&(lis->address)));
#ifdef AF_INET6
/*
@@ -379,7 +382,7 @@ cupsdAcceptClient(cupsd_listener_t *lis)/* I - Listener socket */
#endif /* AF_LOCAL */
cupsdLogMessage(CUPSD_LOG_DEBUG, "[Client %d] Accepted from %s:%d (IPv%d)",
con->http.fd, con->http.hostname,
- _httpAddrPort(con->http.hostaddr),
+ httpAddrPort(con->http.hostaddr),
_httpAddrFamily(con->http.hostaddr) == AF_INET ? 4 : 6);
/*
@@ -411,7 +414,7 @@ cupsdAcceptClient(cupsd_listener_t *lis)/* I - Listener socket */
else
httpAddrString(&temp, con->servername, sizeof(con->servername));
- con->serverport = _httpAddrPort(&(lis->address));
+ con->serverport = httpAddrPort(&(lis->address));
}
/*
@@ -687,12 +690,12 @@ cupsdReadClient(cupsd_client_t *con) /* I - Client to read from */
"error=%d, "
"used=%d, "
"state=%s, "
- "data_encoding=HTTP_ENCODE_%s, "
+ "data_encoding=HTTP_ENCODING_%s, "
"data_remaining=" CUPS_LLFMT ", "
"request=%p(%s), "
"file=%d",
con->http.fd, con->http.error, con->http.used,
- http_states[con->http.state],
+ http_states[con->http.state + 1],
con->http.data_encoding == HTTP_ENCODE_CHUNKED ?
"CHUNKED" : "LENGTH",
CUPS_LLCAST con->http.data_remaining,
@@ -1124,7 +1127,7 @@ cupsdReadClient(cupsd_client_t *con) /* I - Client to read from */
}
httpPrintf(HTTP(con), "Connection: Upgrade\r\n");
- httpPrintf(HTTP(con), "Upgrade: TLS/1.0,HTTP/1.1\r\n");
+ httpPrintf(HTTP(con), "Upgrade: TLS/1.2,TLS/1.1,TLS/1.0\r\n");
httpPrintf(HTTP(con), "Content-Length: 0\r\n");
httpPrintf(HTTP(con), "\r\n");
@@ -1198,7 +1201,7 @@ cupsdReadClient(cupsd_client_t *con) /* I - Client to read from */
}
httpPrintf(HTTP(con), "Connection: Upgrade\r\n");
- httpPrintf(HTTP(con), "Upgrade: TLS/1.0,HTTP/1.1\r\n");
+ httpPrintf(HTTP(con), "Upgrade: TLS/1.2,TLS/1.1,TLS/1.0\r\n");
httpPrintf(HTTP(con), "Content-Length: 0\r\n");
httpPrintf(HTTP(con), "\r\n");
@@ -1824,7 +1827,9 @@ cupsdReadClient(cupsd_client_t *con) /* I - Client to read from */
return;
}
- con->http.state = HTTP_WAITING;
+ con->http.state = HTTP_STATE_WAITING;
+ DEBUG_puts("cupsdReadClient: Set state to HTTP_STATE_WAITING "
+ "after HEAD.");
break;
}
@@ -1953,7 +1958,9 @@ cupsdReadClient(cupsd_client_t *con) /* I - Client to read from */
return;
}
- con->http.state = HTTP_WAITING;
+ con->http.state = HTTP_STATE_WAITING;
+ DEBUG_puts("cupsdReadClient: Set state to HTTP_STATE_WAITING "
+ "after HEAD.");
break;
default :
@@ -2175,7 +2182,7 @@ cupsdReadClient(cupsd_client_t *con) /* I - Client to read from */
{
cupsdLogMessage(CUPSD_LOG_DEBUG,
"[Client %d] Closing on unexpected state %s.",
- con->http.fd, http_states[con->http.state]);
+ con->http.fd, http_states[con->http.state + 1]);
cupsdCloseClient(con);
return;
}
@@ -2397,7 +2404,7 @@ cupsdSendError(cupsd_client_t *con, /* I - Connection */
if (httpPrintf(HTTP(con), "Connection: Upgrade\r\n") < 0)
return (0);
- if (httpPrintf(HTTP(con), "Upgrade: TLS/1.0,HTTP/1.1\r\n") < 0)
+ if (httpPrintf(HTTP(con), "Upgrade: TLS/1.2,TLS/1.1,TLS/1.0\r\n") < 0)
return (0);
#endif /* HAVE_SSL */
@@ -2487,7 +2494,9 @@ cupsdSendError(cupsd_client_t *con, /* I - Connection */
if (cupsdFlushHeader(con) < 0)
return (0);
- con->http.state = HTTP_WAITING;
+ con->http.state = HTTP_STATE_WAITING;
+
+ DEBUG_puts("cupsdSendError: Set state to HTTP_STATE_WAITING.");
return (1);
}
@@ -2725,7 +2734,7 @@ cupsdWriteClient(cupsd_client_t *con) /* I - Client connection */
"pipe_pid=%d, "
"file=%d",
con->http.fd, con->http.error, con->http.used,
- http_states[con->http.state],
+ http_states[con->http.state + 1],
con->http.data_encoding == HTTP_ENCODE_CHUNKED ?
"CHUNKED" : "LENGTH",
CUPS_LLCAST con->http.data_remaining,
@@ -2743,7 +2752,7 @@ cupsdWriteClient(cupsd_client_t *con) /* I - Client connection */
cupsdLogMessage(CUPSD_LOG_DEBUG,
"[Client %d] Closing on unexpected HTTP state %s.",
- con->http.fd, http_states[con->http.state]);
+ con->http.fd, http_states[con->http.state + 1]);
cupsdCloseClient(con);
return;
}
diff --git a/scheduler/conf.c b/scheduler/conf.c
index 9b48da503..3c9fcaf33 100644
--- a/scheduler/conf.c
+++ b/scheduler/conf.c
@@ -2680,7 +2680,7 @@ read_configuration(cups_file_t *fp) /* I - File to read from */
lis;
lis = (cupsd_listener_t *)cupsArrayNext(Listeners))
if (httpAddrEqual(&(addr->addr), &(lis->address)) &&
- _httpAddrPort(&(addr->addr)) == _httpAddrPort(&(lis->address)))
+ httpAddrPort(&(addr->addr)) == httpAddrPort(&(lis->address)))
break;
if (lis)
@@ -2736,11 +2736,11 @@ read_configuration(cups_file_t *fp) /* I - File to read from */
else
#endif /* AF_LOCAL */
cupsdLogMessage(CUPSD_LOG_INFO, "Listening to %s:%d (IPv%d)", temp,
- _httpAddrPort(&(lis->address)),
+ httpAddrPort(&(lis->address)),
_httpAddrFamily(&(lis->address)) == AF_INET ? 4 : 6);
if (!httpAddrLocalhost(&(lis->address)))
- RemotePort = _httpAddrPort(&(lis->address));
+ RemotePort = httpAddrPort(&(lis->address));
}
/*
diff --git a/scheduler/conf.h b/scheduler/conf.h
index 434300774..51783eecb 100644
--- a/scheduler/conf.h
+++ b/scheduler/conf.h
@@ -20,9 +20,10 @@
typedef enum
{
- CUPSD_LOG_PPD = -4, /* Used internally for PPD keywords */
+ CUPSD_LOG_PPD = -5, /* Used internally for PPD keywords */
CUPSD_LOG_ATTR, /* Used internally for attributes */
- CUPSD_LOG_STATE, /* Used internally for state-reasons */
+ CUPSD_LOG_STATE, /* Used internally for printer-state-reasons */
+ CUPSD_LOG_JOBSTATE, /* Used internally for job-state-reasons */
CUPSD_LOG_PAGE, /* Used internally for page logging */
CUPSD_LOG_NONE,
CUPSD_LOG_EMERG, /* Emergency issues */
diff --git a/scheduler/dirsvc.c b/scheduler/dirsvc.c
index 6dfdb1361..74459f7f6 100644
--- a/scheduler/dirsvc.c
+++ b/scheduler/dirsvc.c
@@ -258,7 +258,7 @@ cupsdStartBrowsing(void)
if (httpAddrLocalhost(&(lis->address)))
continue;
- DNSSDPort = _httpAddrPort(&(lis->address));
+ DNSSDPort = httpAddrPort(&(lis->address));
break;
}
@@ -1333,6 +1333,8 @@ dnssdStop(void)
DNSSDMaster = NULL;
# else /* HAVE_AVAHI */
+ avahi_threaded_poll_stop(DNSSDMaster);
+
avahi_client_free(DNSSDClient);
DNSSDClient = NULL;
diff --git a/scheduler/ipp.c b/scheduler/ipp.c
index e52c28462..c32b0d14f 100644
--- a/scheduler/ipp.c
+++ b/scheduler/ipp.c
@@ -751,7 +751,6 @@ cupsdProcessIPPRequest(
{
struct stat fileinfo; /* File information */
-
if (!fstat(con->file, &fileinfo))
length += fileinfo.st_size;
}
@@ -5315,6 +5314,7 @@ create_requested_array(ipp_t *request) /* I - IPP request */
cupsArrayAdd(ra, "date-time-at-completed");
cupsArrayAdd(ra, "date-time-at-creation");
cupsArrayAdd(ra, "date-time-at-processing");
+ cupsArrayAdd(ra, "job-charge-info");
cupsArrayAdd(ra, "job-detailed-status-message");
cupsArrayAdd(ra, "job-document-access-errors");
cupsArrayAdd(ra, "job-id");
@@ -5384,6 +5384,7 @@ create_requested_array(ipp_t *request) /* I - IPP request */
cupsArrayAdd(ra, "pdl-override-supported");
cupsArrayAdd(ra, "printer-alert");
cupsArrayAdd(ra, "printer-alert-description");
+ cupsArrayAdd(ra, "printer-charge-info-uri");
cupsArrayAdd(ra, "printer-commands");
cupsArrayAdd(ra, "printer-current-time");
cupsArrayAdd(ra, "printer-dns-sd-name");
diff --git a/scheduler/job.c b/scheduler/job.c
index 2f5002fb7..72ef3e869 100644
--- a/scheduler/job.c
+++ b/scheduler/job.c
@@ -2978,7 +2978,8 @@ finalize_job(cupsd_job_t *job, /* I - Job */
* rarely have current information for network devices...
*/
- if (strncmp(job->printer->device_uri, "usb:", 4))
+ if (strncmp(job->printer->device_uri, "usb:", 4) &&
+ strncmp(job->printer->device_uri, "ippusb:", 7))
cupsdSetPrinterReasons(job->printer, "-offline-report");
/*
@@ -2989,10 +2990,11 @@ finalize_job(cupsd_job_t *job, /* I - Job */
job->profile = NULL;
/*
- * Clear the unresponsive job watchdog timer...
+ * Clear the unresponsive job watchdog timers...
*/
- job->kill_time = 0;
+ job->cancel_time = 0;
+ job->kill_time = 0;
/*
* Close pipes and status buffer...
@@ -3084,6 +3086,8 @@ finalize_job(cupsd_job_t *job, /* I - Job */
exit_code == CUPS_BACKEND_HOLD ? "hold job" :
exit_code == CUPS_BACKEND_STOP ? "stop printer" :
exit_code == CUPS_BACKEND_CANCEL ? "cancel job" :
+ exit_code == CUPS_BACKEND_RETRY ? "retry job later" :
+ exit_code == CUPS_BACKEND_RETRY_CURRENT ? "retry job immediately" :
exit_code < 0 ? "crashed" : "unknown");
/*
@@ -3257,8 +3261,9 @@ finalize_job(cupsd_job_t *job, /* I - Job */
job_state = IPP_JOB_HELD;
message = "Job held for authentication.";
- ippSetString(job->attrs, &job->reasons, 0,
- "cups-held-for-authentication");
+ if (strncmp(job->reasons->values[0].string.text, "account-", 8))
+ ippSetString(job->attrs, &job->reasons, 0,
+ "cups-held-for-authentication");
}
break;
@@ -3655,10 +3660,12 @@ get_options(cupsd_job_t *job, /* I - Job */
if (!strncmp(attr->name, "job-", 4) &&
strcmp(attr->name, "job-account-id") &&
strcmp(attr->name, "job-accounting-user-id") &&
+ strcmp(attr->name, "job-authorization-uri") &&
strcmp(attr->name, "job-billing") &&
strcmp(attr->name, "job-impressions") &&
strcmp(attr->name, "job-originating-host-name") &&
strcmp(attr->name, "job-password") &&
+ strcmp(attr->name, "job-password-encryption") &&
strcmp(attr->name, "job-uuid") &&
!(job->printer->type & CUPS_PRINTER_REMOTE))
continue;
@@ -4701,6 +4708,17 @@ update_job(cupsd_job_t *job) /* I - Job to check */
cupsdAddEvent(CUPSD_EVENT_JOB_PROGRESS, job->printer, job,
"Printed %d page(s).", job->sheets->values[0].integer);
}
+ else if (loglevel == CUPSD_LOG_JOBSTATE)
+ {
+ /*
+ * Support "keyword" to set job-state-reasons to the specified keyword.
+ * This is sufficient for the current paid printing stuff.
+ */
+
+ cupsdLogJob(job, CUPSD_LOG_DEBUG, "JOBSTATE: %s", message);
+
+ ippSetString(job->attrs, &job->reasons, 0, message);
+ }
else if (loglevel == CUPSD_LOG_STATE)
{
cupsdLogJob(job, CUPSD_LOG_DEBUG, "STATE: %s", message);
diff --git a/scheduler/listen.c b/scheduler/listen.c
index 16528b9dd..208cbbbae 100644
--- a/scheduler/listen.c
+++ b/scheduler/listen.c
@@ -151,7 +151,7 @@ cupsdStartListening(void)
lis = (cupsd_listener_t *)cupsArrayNext(Listeners))
{
httpAddrString(&(lis->address), s, sizeof(s));
- p = _httpAddrPort(&(lis->address));
+ p = httpAddrPort(&(lis->address));
/*
* If needed, create a socket for listening...
diff --git a/scheduler/main.c b/scheduler/main.c
index 07b0c1534..b0185e1ab 100644
--- a/scheduler/main.c
+++ b/scheduler/main.c
@@ -1424,7 +1424,7 @@ launchd_checkin(void)
lis->fd = fd;
# ifdef HAVE_SSL
- if (_httpAddrPort(&(lis->address)) == 443)
+ if (httpAddrPort(&(lis->address)) == 443)
lis->encryption = HTTP_ENCRYPT_ALWAYS;
# endif /* HAVE_SSL */
}
diff --git a/scheduler/network.c b/scheduler/network.c
index 87e660ce3..bf0dea758 100644
--- a/scheduler/network.c
+++ b/scheduler/network.c
@@ -264,7 +264,7 @@ cupsdNetIFUpdate(void)
if (match)
{
- temp->port = _httpAddrPort(&(lis->address));
+ temp->port = httpAddrPort(&(lis->address));
break;
}
}
diff --git a/scheduler/printers.c b/scheduler/printers.c
index b7b84c13e..ea2f8dda5 100644
--- a/scheduler/printers.c
+++ b/scheduler/printers.c
@@ -3781,6 +3781,10 @@ load_ppd(cupsd_printer_t *p) /* I - Printer */
ippAddBoolean(p->ppd_attrs, IPP_TAG_PRINTER, "color-supported",
ppd->color_device);
+ if (p->pc && p->pc->charge_info_uri)
+ ippAddString(p->ppd_attrs, IPP_TAG_PRINTER, IPP_TAG_URI,
+ "printer-charge-info-uri", NULL, p->pc->charge_info_uri);
+
if (p->pc && p->pc->account_id)
ippAddBoolean(p->ppd_attrs, IPP_TAG_PRINTER, "job-account-id-supported",
1);
diff --git a/scheduler/statbuf.c b/scheduler/statbuf.c
index e719aebdb..7d500d4c1 100644
--- a/scheduler/statbuf.c
+++ b/scheduler/statbuf.c
@@ -3,7 +3,7 @@
*
* Status buffer routines for the CUPS scheduler.
*
- * Copyright 2007-2010 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
@@ -119,7 +119,7 @@ cupsdStatBufNew(int fd, /* I - File descriptor of pipe */
char * /* O - Line from buffer, "", or NULL */
cupsdStatBufUpdate(
cupsd_statbuf_t *sb, /* I - Status buffer */
- int *loglevel, /* O - Log level */
+ int *loglevel, /* O - Log level */
char *line, /* I - Line buffer */
int linelen) /* I - Size of line buffer */
{
@@ -258,6 +258,11 @@ cupsdStatBufUpdate(
*loglevel = CUPSD_LOG_STATE;
message = sb->buffer + 6;
}
+ else if (!strncmp(sb->buffer, "JOBSTATE:", 9))
+ {
+ *loglevel = CUPSD_LOG_JOBSTATE;
+ message = sb->buffer + 9;
+ }
else if (!strncmp(sb->buffer, "ATTR:", 5))
{
*loglevel = CUPSD_LOG_ATTR;
diff --git a/systemv/cupstestppd.c b/systemv/cupstestppd.c
index 491b14640..eb918d879 100644
--- a/systemv/cupstestppd.c
+++ b/systemv/cupstestppd.c
@@ -3217,7 +3217,8 @@ check_sizes(ppd_file_t *ppd, /* I - PPD file */
_PWG_FROMPTS(size->width);
pwg_media = _pwgMediaForSize(width_2540ths, length_2540ths);
- if (pwg_media && pwg_media->ppd && (pwg_media->ppd[0] < 'a' || pwg_media->ppd[0] > 'z'))
+ if (pwg_media && pwg_media->ppd &&
+ (pwg_media->ppd[0] < 'a' || pwg_media->ppd[0] > 'z'))
{
size_t ppdlen = strlen(pwg_media->ppd);
/* Length of standard PPD name */
@@ -3279,8 +3280,8 @@ check_sizes(ppd_file_t *ppd, /* I - PPD file */
* Check for EnvSizeName as well...
*/
- if (strncmp(pwg_media->ppd, "Env", 3) &&
- !strncmp(size->name, "Env", 3))
+ if (strncmp(pwg_media->ppd, "Env", 3) &&
+ !strncmp(size->name, "Env", 3))
snprintf(buf, sizeof(buf), "Env%s", pwg_media->ppd);
if (strcmp(size->name, buf))
diff --git a/test/ippserver.c b/test/ippserver.c
index a6b53cbcf..ae604196e 100644
--- a/test/ippserver.c
+++ b/test/ippserver.c
@@ -73,10 +73,23 @@
*/
/*
+ * Disable private and deprecated stuff so we can verify that the public API
+ * is sufficient to implement a server.
+ */
+
+#define _IPP_PRIVATE_STRUCTURES 0 /* Disable private IPP stuff */
+#define _CUPS_NO_DEPRECATED 1 /* Disable deprecated stuff */
+
+
+/*
* Include necessary headers...
*/
-#include <cups/cups-private.h>
+#include <cups/cups.h> /* Public API */
+#include <config.h> /* CUPS configuration header */
+#include <cups/string-private.h> /* For string functions */
+#include <cups/thread-private.h> /* For multithreading functions */
+
#ifdef HAVE_DNSSD
# include <dns_sd.h>
#endif /* HAVE_DNSSD */
@@ -102,29 +115,29 @@
enum _ipp_preasons_e /* printer-state-reasons bit values */
{
- _IPP_PRINTER_NONE = 0x0000, /* none */
- _IPP_PRINTER_OTHER = 0x0001, /* other */
- _IPP_PRINTER_COVER_OPEN = 0x0002, /* cover-open */
- _IPP_PRINTER_INPUT_TRAY_MISSING = 0x0004,
+ _IPP_PSTATE_NONE = 0x0000, /* none */
+ _IPP_PSTATE_OTHER = 0x0001, /* other */
+ _IPP_PSTATE_COVER_OPEN = 0x0002, /* cover-open */
+ _IPP_PSTATE_INPUT_TRAY_MISSING = 0x0004,
/* input-tray-missing */
- _IPP_PRINTER_MARKER_SUPPLY_EMPTY = 0x0008,
+ _IPP_PSTATE_MARKER_SUPPLY_EMPTY = 0x0008,
/* marker-supply-empty */
- _IPP_PRINTER_MARKER_SUPPLY_LOW = 0x0010,
+ _IPP_PSTATE_MARKER_SUPPLY_LOW = 0x0010,
/* marker-suply-low */
- _IPP_PRINTER_MARKER_WASTE_ALMOST_FULL = 0x0020,
+ _IPP_PSTATE_MARKER_WASTE_ALMOST_FULL = 0x0020,
/* marker-waste-almost-full */
- _IPP_PRINTER_MARKER_WASTE_FULL = 0x0040,
+ _IPP_PSTATE_MARKER_WASTE_FULL = 0x0040,
/* marker-waste-full */
- _IPP_PRINTER_MEDIA_EMPTY = 0x0080, /* media-empty */
- _IPP_PRINTER_MEDIA_JAM = 0x0100, /* media-jam */
- _IPP_PRINTER_MEDIA_LOW = 0x0200, /* media-low */
- _IPP_PRINTER_MEDIA_NEEDED = 0x0400, /* media-needed */
- _IPP_PRINTER_MOVING_TO_PAUSED = 0x0800,
+ _IPP_PSTATE_MEDIA_EMPTY = 0x0080, /* media-empty */
+ _IPP_PSTATE_MEDIA_JAM = 0x0100, /* media-jam */
+ _IPP_PSTATE_MEDIA_LOW = 0x0200, /* media-low */
+ _IPP_PSTATE_MEDIA_NEEDED = 0x0400, /* media-needed */
+ _IPP_PSTATE_MOVING_TO_PAUSED = 0x0800,
/* moving-to-paused */
- _IPP_PRINTER_PAUSED = 0x1000, /* paused */
- _IPP_PRINTER_SPOOL_AREA_FULL = 0x2000,/* spool-area-full */
- _IPP_PRINTER_TONER_EMPTY = 0x4000, /* toner-empty */
- _IPP_PRINTER_TONER_LOW = 0x8000 /* toner-low */
+ _IPP_PSTATE_PAUSED = 0x1000, /* paused */
+ _IPP_PSTATE_SPOOL_AREA_FULL = 0x2000,/* spool-area-full */
+ _IPP_PSTATE_TONER_EMPTY = 0x4000, /* toner-empty */
+ _IPP_PSTATE_TONER_LOW = 0x8000 /* toner-low */
};
typedef unsigned int _ipp_preasons_t; /* Bitfield for printer-state-reasons */
@@ -195,6 +208,9 @@ typedef struct _ipp_printer_s /**** Printer data ****/
#ifdef HAVE_DNSSD
DNSServiceRef common_ref, /* Shared service connection */
ipp_ref, /* Bonjour IPP service */
+# ifdef HAVE_SSL
+ ipps_ref, /* Bonjour IPPS service */
+# endif /* HAVE_SSL */
http_ref, /* Bonjour HTTP service */
printer_ref; /* Bonjour LPD service */
TXTRecordRef ipp_txt; /* Bonjour IPP TXT record */
@@ -219,7 +235,7 @@ typedef struct _ipp_printer_s /**** Printer data ****/
struct _ipp_job_s /**** Job data ****/
{
int id; /* Job ID */
- char *name, /* job-name */
+ const char *name, /* job-name */
*username, /* job-originating-user-name */
*format; /* document-format */
ipp_jstate_t state; /* job-state value */
@@ -234,7 +250,7 @@ struct _ipp_job_s /**** Job data ****/
typedef struct _ipp_client_s /**** Client data ****/
{
- http_t http; /* HTTP connection */
+ http_t *http; /* HTTP connection */
ipp_t *request, /* IPP request */
*response; /* IPP response */
time_t start; /* Request start time */
@@ -242,6 +258,7 @@ typedef struct _ipp_client_s /**** Client data ****/
ipp_op_t operation_id; /* IPP operation-id */
char uri[1024]; /* Request URI */
http_addr_t addr; /* Client address */
+ char hostname[256]; /* Client hostname */
_ipp_printer_t *printer; /* Printer */
_ipp_job_t *job; /* Current job, if any */
} _ipp_client_t;
@@ -271,7 +288,7 @@ static _ipp_printer_t *create_printer(const char *servername,
int ppm_color, int duplex, int port,
int pin,
#ifdef HAVE_DNSSD
- const char *regtype,
+ const char *subtype,
#endif /* HAVE_DNSSD */
const char *directory);
static cups_array_t *create_requested_array(_ipp_client_t *client);
@@ -317,6 +334,7 @@ static int register_printer(_ipp_printer_t *printer,
int duplex, const char *regtype);
#endif /* HAVE_DNSSD */
static int respond_http(_ipp_client_t *client, http_status_t code,
+ const char *content_coding,
const char *type, size_t length);
static void respond_ipp(_ipp_client_t *client, ipp_status_t status,
const char *message, ...)
@@ -356,9 +374,9 @@ main(int argc, /* I - Number of command-line args */
*formats = "application/pdf,image/jpeg";
/* Supported formats */
#ifdef HAVE_DNSSD
- const char *regtype = "_ipp._tcp"; /* Bonjour service type */
+ const char *subtype = "_print"; /* Bonjour service subtype */
#endif /* HAVE_DNSSD */
- int port = 8631, /* Port number (0 = auto) TODO: FIX */
+ int port = 8631, /* Port number (0 = auto) */
duplex = 0, /* Duplex mode */
ppm = 10, /* Pages per minute for mono */
ppm_color = 0, /* Pages per minute for color */
@@ -450,11 +468,11 @@ main(int argc, /* I - Number of command-line args */
break;
#ifdef HAVE_DNSSD
- case 'r' : /* -r regtype */
+ case 'r' : /* -r subtype */
i ++;
if (i >= argc)
usage(1);
- regtype = argv[i];
+ subtype = argv[i];
break;
#endif /* HAVE_DNSSD */
@@ -515,7 +533,7 @@ main(int argc, /* I - Number of command-line args */
if ((printer = create_printer(servername, name, location, make, model, icon,
formats, ppm, ppm_color, duplex, port, pin,
#ifdef HAVE_DNSSD
- regtype,
+ subtype,
#endif /* HAVE_DNSSD */
directory)) == NULL)
return (1);
@@ -596,17 +614,22 @@ copy_attributes(ipp_t *to, /* I - Destination request */
if (!to || !from)
return;
- for (fromattr = from->attrs; fromattr; fromattr = fromattr->next)
+ for (fromattr = ippFirstAttribute(from);
+ fromattr;
+ fromattr = ippNextAttribute(from))
{
/*
* Filter attributes as needed...
*/
- if ((group_tag != IPP_TAG_ZERO && fromattr->group_tag != group_tag &&
- fromattr->group_tag != IPP_TAG_ZERO) || !fromattr->name)
+ ipp_tag_t fromgroup = ippGetGroupTag(fromattr);
+ const char *fromname = ippGetName(fromattr);
+
+ if ((group_tag != IPP_TAG_ZERO && fromgroup != group_tag &&
+ fromgroup != IPP_TAG_ZERO) || !fromname)
continue;
- if (!ra || cupsArrayFind(ra, fromattr->name))
+ if (!ra || cupsArrayFind(ra, (void *)fromname))
ippCopyAttribute(to, fromattr, quickcopy);
}
}
@@ -636,59 +659,59 @@ copy_job_attributes(
{
switch (job->state)
{
- case IPP_JOB_PENDING :
+ case IPP_JSTATE_PENDING :
ippAddString(client->response, IPP_TAG_JOB,
- IPP_TAG_KEYWORD | IPP_TAG_COPY, "job-state-reasons",
+ IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST, "job-state-reasons",
NULL, "none");
break;
- case IPP_JOB_HELD :
+ case IPP_JSTATE_HELD :
if (job->fd >= 0)
ippAddString(client->response, IPP_TAG_JOB,
- IPP_TAG_KEYWORD | IPP_TAG_COPY, "job-state-reasons",
- NULL, "job-incoming");
+ IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST,
+ "job-state-reasons", NULL, "job-incoming");
else if (ippFindAttribute(job->attrs, "job-hold-until", IPP_TAG_ZERO))
ippAddString(client->response, IPP_TAG_JOB,
- IPP_TAG_KEYWORD | IPP_TAG_COPY, "job-state-reasons",
- NULL, "job-hold-until-specified");
+ IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST,
+ "job-state-reasons", NULL, "job-hold-until-specified");
else
ippAddString(client->response, IPP_TAG_JOB,
- IPP_TAG_KEYWORD | IPP_TAG_COPY, "job-state-reasons",
- NULL, "job-data-insufficient");
+ IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST,
+ "job-state-reasons", NULL, "job-data-insufficient");
break;
- case IPP_JOB_PROCESSING :
+ case IPP_JSTATE_PROCESSING :
if (job->cancel)
ippAddString(client->response, IPP_TAG_JOB,
- IPP_TAG_KEYWORD | IPP_TAG_COPY, "job-state-reasons",
- NULL, "processing-to-stop-point");
+ IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST,
+ "job-state-reasons", NULL, "processing-to-stop-point");
else
ippAddString(client->response, IPP_TAG_JOB,
- IPP_TAG_KEYWORD | IPP_TAG_COPY, "job-state-reasons",
- NULL, "job-printing");
+ IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST,
+ "job-state-reasons", NULL, "job-printing");
break;
- case IPP_JOB_STOPPED :
+ case IPP_JSTATE_STOPPED :
ippAddString(client->response, IPP_TAG_JOB,
- IPP_TAG_KEYWORD | IPP_TAG_COPY, "job-state-reasons",
+ IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST, "job-state-reasons",
NULL, "job-stopped");
break;
- case IPP_JOB_CANCELED :
+ case IPP_JSTATE_CANCELED :
ippAddString(client->response, IPP_TAG_JOB,
- IPP_TAG_KEYWORD | IPP_TAG_COPY, "job-state-reasons",
+ IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST, "job-state-reasons",
NULL, "job-canceled-by-user");
break;
- case IPP_JOB_ABORTED :
+ case IPP_JSTATE_ABORTED :
ippAddString(client->response, IPP_TAG_JOB,
- IPP_TAG_KEYWORD | IPP_TAG_COPY, "job-state-reasons",
+ IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST, "job-state-reasons",
NULL, "aborted-by-system");
break;
- case IPP_JOB_COMPLETED :
+ case IPP_JSTATE_COMPLETED :
ippAddString(client->response, IPP_TAG_JOB,
- IPP_TAG_KEYWORD | IPP_TAG_COPY, "job-state-reasons",
+ IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST, "job-state-reasons",
NULL, "job-completed-successfully");
break;
}
@@ -716,8 +739,6 @@ create_client(_ipp_printer_t *printer, /* I - Printer */
int sock) /* I - Listen socket */
{
_ipp_client_t *client; /* Client */
- int val; /* Parameter value */
- socklen_t addrlen; /* Length of address */
if ((client = calloc(1, sizeof(_ipp_client_t))) == NULL)
@@ -726,20 +747,13 @@ create_client(_ipp_printer_t *printer, /* I - Printer */
return (NULL);
}
- client->printer = printer;
- client->http.activity = time(NULL);
- client->http.hostaddr = &(client->addr);
- client->http.blocking = 1;
- client->http.wait_value = 60000;
+ client->printer = printer;
/*
* Accept the client and get the remote address...
*/
- addrlen = sizeof(http_addr_t);
-
- if ((client->http.fd = accept(sock, (struct sockaddr *)&(client->addr),
- &addrlen)) < 0)
+ if ((client->http = httpAcceptConnection(sock, 1)) == NULL)
{
perror("Unable to accept client connection");
@@ -748,23 +762,10 @@ create_client(_ipp_printer_t *printer, /* I - Printer */
return (NULL);
}
- httpAddrString(&(client->addr), client->http.hostname,
- sizeof(client->http.hostname));
+ httpGetHostname(client->http, client->hostname, sizeof(client->hostname));
if (Verbosity)
- fprintf(stderr, "Accepted connection from %s (%s)\n", client->http.hostname,
- client->http.hostaddr->addr.sa_family == AF_INET ? "IPv4" : "IPv6");
-
- /*
- * Using TCP_NODELAY improves responsiveness, especially on systems
- * with a slow loopback interface. Since we write large buffers
- * when sending print files and requests, there shouldn't be any
- * performance penalty for this...
- */
-
- val = 1;
- setsockopt(client->http.fd, IPPROTO_TCP, TCP_NODELAY, (char *)&val,
- sizeof(val));
+ fprintf(stderr, "Accepted connection from %s\n", client->hostname);
return (client);
}
@@ -785,7 +786,7 @@ create_job(_ipp_client_t *client) /* I - Client */
_cupsRWLockWrite(&(client->printer->rwlock));
if (client->printer->active_job &&
- client->printer->active_job->state < IPP_JOB_CANCELED)
+ client->printer->active_job->state < IPP_JSTATE_CANCELED)
{
/*
* Only accept a single job at a time...
@@ -807,7 +808,7 @@ create_job(_ipp_client_t *client) /* I - Client */
job->printer = client->printer;
job->attrs = client->request;
- job->state = IPP_JOB_HELD;
+ job->state = IPP_JSTATE_HELD;
job->fd = -1;
client->request = NULL;
@@ -815,8 +816,12 @@ create_job(_ipp_client_t *client) /* I - Client */
* Set all but the first two attributes to the job attributes group...
*/
- for (attr = job->attrs->attrs->next->next; attr; attr = attr->next)
- attr->group_tag = IPP_TAG_JOB;
+ for (ippFirstAttribute(job->attrs),
+ ippNextAttribute(job->attrs),
+ attr = ippNextAttribute(job->attrs);
+ attr;
+ attr = ippNextAttribute(job->attrs))
+ ippSetGroupTag(job->attrs, &attr, IPP_TAG_JOB);
/*
* Get the requesting-user-name, document format, and priority...
@@ -824,22 +829,20 @@ create_job(_ipp_client_t *client) /* I - Client */
if ((attr = ippFindAttribute(job->attrs, "requesting-user-name",
IPP_TAG_NAME)) != NULL)
- {
- _cupsStrFree(attr->name);
- attr->name = _cupsStrAlloc("job-originating-user-name");
- }
+ ippSetName(job->attrs, &attr, "job-originating-user-name");
else
- attr = ippAddString(job->attrs, IPP_TAG_JOB, IPP_TAG_NAME | IPP_TAG_COPY,
+ attr = ippAddString(job->attrs, IPP_TAG_JOB,
+ IPP_TAG_NAME | IPP_TAG_CUPS_CONST,
"job-originating-user-name", NULL, "anonymous");
if (attr)
- job->username = attr->values[0].string.text;
+ job->username = ippGetString(attr, 0, NULL);
else
job->username = "anonymous";
if ((attr = ippFindAttribute(job->attrs, "document-format",
IPP_TAG_MIMETYPE)) != NULL)
- job->format = attr->values[0].string.text;
+ job->format = ippGetString(attr, 0, NULL);
else
job->format = "application/octet-stream";
@@ -875,57 +878,24 @@ static int /* O - Listener socket or -1 on error */
create_listener(int family, /* I - Address family */
int *port) /* IO - Port number */
{
- int sock, /* Listener socket */
- val; /* Socket value */
- http_addr_t address; /* Listen address */
- socklen_t addrlen; /* Length of listen address */
-
-
- if ((sock = socket(family, SOCK_STREAM, 0)) < 0)
- return (-1);
+ int sock; /* Listener socket */
+ http_addrlist_t *addrlist; /* Listen address */
+ char service[255]; /* Service port */
- val = 1;
- setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &val, sizeof(val));
-
-#ifdef IPV6_V6ONLY
- if (family == AF_INET6)
- setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, &val, sizeof(val));
-#endif /* IPV6_V6ONLY */
if (!*port)
{
- /*
- * Get the auto-assigned port number for the IPv4 socket...
- */
-
- /* TODO: This code does not appear to work - port is always 0... */
- addrlen = sizeof(address);
- if (getsockname(sock, (struct sockaddr *)&address, &addrlen))
- {
- perror("getsockname() failed");
- *port = 8631;
- }
- else
- *port = _httpAddrPort(&address);
-
+ *port = 8000 + (getuid() % 1000);
fprintf(stderr, "Listening on port %d.\n", *port);
}
- memset(&address, 0, sizeof(address));
- address.addr.sa_family = family;
- _httpAddrSetPort(&address, *port);
-
- if (bind(sock, (struct sockaddr *)&address, httpAddrLength(&address)))
- {
- close(sock);
+ snprintf(service, sizeof(service), "%d", *port);
+ if ((addrlist = httpAddrGetList(NULL, family, service)) == NULL)
return (-1);
- }
- if (listen(sock, 5))
- {
- close(sock);
- return (-1);
- }
+ sock = httpAddrListen(&(addrlist->addr), *port);
+
+ httpAddrFreeList(addrlist);
return (sock);
}
@@ -1010,7 +980,7 @@ create_printer(const char *servername, /* I - Server hostname (NULL for default)
int port, /* I - Port for listeners or 0 for auto */
int pin, /* I - Require PIN printing */
#ifdef HAVE_DNSSD
- const char *regtype, /* I - Bonjour service type */
+ const char *subtype, /* I - Bonjour service subtype */
#endif /* HAVE_DNSSD */
const char *directory) /* I - Spool directory */
{
@@ -1034,8 +1004,7 @@ create_printer(const char *servername, /* I - Server hostname (NULL for default)
/* media-size-supported value */
ipp_t *media_col_default;
/* media-col-default value */
- _ipp_value_t *media_col_value;
- /* Current media-col-database value */
+ int media_col_index;/* Current media-col-database value */
int k_supported; /* Maximum file size supported */
#ifdef HAVE_STATVFS
struct statvfs spoolinfo; /* FS info for spool directory */
@@ -1046,10 +1015,10 @@ create_printer(const char *servername, /* I - Server hostname (NULL for default)
#endif /* HAVE_STATVFS */
static const int orients[4] = /* orientation-requested-supported values */
{
- IPP_PORTRAIT,
- IPP_LANDSCAPE,
- IPP_REVERSE_LANDSCAPE,
- IPP_REVERSE_PORTRAIT
+ IPP_ORIENT_PORTRAIT,
+ IPP_ORIENT_LANDSCAPE,
+ IPP_ORIENT_REVERSE_LANDSCAPE,
+ IPP_ORIENT_REVERSE_PORTRAIT
};
static const char * const versions[] =/* ipp-versions-supported values */
{
@@ -1059,22 +1028,30 @@ create_printer(const char *servername, /* I - Server hostname (NULL for default)
};
static const int ops[] = /* operations-supported values */
{
- IPP_PRINT_JOB,
- IPP_PRINT_URI,
- IPP_VALIDATE_JOB,
- IPP_CREATE_JOB,
- IPP_SEND_DOCUMENT,
- IPP_SEND_URI,
- IPP_CANCEL_JOB,
- IPP_GET_JOB_ATTRIBUTES,
- IPP_GET_JOBS,
- IPP_GET_PRINTER_ATTRIBUTES
+ IPP_OP_PRINT_JOB,
+ IPP_OP_PRINT_URI,
+ IPP_OP_VALIDATE_JOB,
+ IPP_OP_CREATE_JOB,
+ IPP_OP_SEND_DOCUMENT,
+ IPP_OP_SEND_URI,
+ IPP_OP_CANCEL_JOB,
+ IPP_OP_GET_JOB_ATTRIBUTES,
+ IPP_OP_GET_JOBS,
+ IPP_OP_GET_PRINTER_ATTRIBUTES
};
static const char * const charsets[] =/* charset-supported values */
{
"us-ascii",
"utf-8"
};
+ static const char * const compressions[] =/* compression-supported values */
+ {
+#ifdef HAVE_LIBZ
+ "deflate",
+ "gzip",
+#endif /* HAVE_LIBZ */
+ "none"
+ };
static const char * const job_creation[] =
{ /* job-creation-attributes-supported values */
"copies",
@@ -1157,25 +1134,28 @@ create_printer(const char *servername, /* I - Server hostname (NULL for default)
printer->ipv4 = -1;
printer->ipv6 = -1;
- printer->name = _cupsStrAlloc(name);
+ printer->name = strdup(name);
#ifdef HAVE_DNSSD
- printer->dnssd_name = _cupsStrRetain(printer->name);
+ printer->dnssd_name = strdup(printer->name);
#endif /* HAVE_DNSSD */
- printer->directory = _cupsStrAlloc(directory);
- printer->hostname = _cupsStrAlloc(servername ? servername :
+ printer->directory = strdup(directory);
+ printer->hostname = strdup(servername ? servername :
httpGetHostname(NULL, hostname,
sizeof(hostname)));
printer->port = port;
- printer->state = IPP_PRINTER_IDLE;
- printer->state_reasons = _IPP_PRINTER_NONE;
+ printer->state = IPP_PSTATE_IDLE;
+ printer->state_reasons = _IPP_PSTATE_NONE;
printer->jobs = cupsArrayNew((cups_array_func_t)compare_jobs, NULL);
printer->next_job_id = 1;
httpAssembleURI(HTTP_URI_CODING_ALL, uri, sizeof(uri), "ipp", NULL,
printer->hostname, printer->port, "/ipp");
- printer->uri = _cupsStrAlloc(uri);
+ printer->uri = strdup(uri);
printer->urilen = strlen(uri);
+ if (icon)
+ printer->icon = strdup(icon);
+
_cupsRWInit(&(printer->rwlock));
/*
@@ -1283,11 +1263,13 @@ create_printer(const char *servername, /* I - Server hostname (NULL for default)
printer->attrs = ippNew();
/* charset-configured */
- ippAddString(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_CHARSET | IPP_TAG_COPY,
+ ippAddString(printer->attrs, IPP_TAG_PRINTER,
+ IPP_TAG_CHARSET | IPP_TAG_CUPS_CONST,
"charset-configured", NULL, "utf-8");
/* charset-supported */
- ippAddStrings(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_CHARSET | IPP_TAG_COPY,
+ ippAddStrings(printer->attrs, IPP_TAG_PRINTER,
+ IPP_TAG_CHARSET | IPP_TAG_CUPS_CONST,
"charset-supported", sizeof(charsets) / sizeof(charsets[0]),
NULL, charsets);
@@ -1296,8 +1278,11 @@ create_printer(const char *servername, /* I - Server hostname (NULL for default)
ppm_color > 0);
/* compression-supported */
- ippAddString(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD | IPP_TAG_COPY,
- "compression-supported", NULL, "none");
+ ippAddStrings(printer->attrs, IPP_TAG_PRINTER,
+ IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST,
+ "compression-supported",
+ (int)(sizeof(compressions) / sizeof(compressions[0])), NULL,
+ compressions);
/* copies-default */
ippAddInteger(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_INTEGER,
@@ -1324,11 +1309,13 @@ create_printer(const char *servername, /* I - Server hostname (NULL for default)
"finishings-supported", IPP_FINISHINGS_NONE);
/* generated-natural-language-supported */
- ippAddString(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_LANGUAGE | IPP_TAG_COPY,
+ ippAddString(printer->attrs, IPP_TAG_PRINTER,
+ IPP_TAG_LANGUAGE | IPP_TAG_CUPS_CONST,
"generated-natural-language-supported", NULL, "en");
/* ipp-versions-supported */
- ippAddStrings(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD | IPP_TAG_COPY,
+ ippAddStrings(printer->attrs, IPP_TAG_PRINTER,
+ IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST,
"ipp-versions-supported",
sizeof(versions) / sizeof(versions[0]), NULL, versions);
@@ -1340,7 +1327,8 @@ create_printer(const char *servername, /* I - Server hostname (NULL for default)
"job-accounting-user-id-supported", 1);
/* job-creation-attributes-supported */
- ippAddStrings(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD | IPP_TAG_COPY,
+ ippAddStrings(printer->attrs, IPP_TAG_PRINTER,
+ IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST,
"job-creation-attributes-supported",
sizeof(job_creation) / sizeof(job_creation[0]),
NULL, job_creation);
@@ -1362,11 +1350,13 @@ create_printer(const char *servername, /* I - Server hostname (NULL for default)
"job-priority-supported", 100);
/* job-sheets-default */
- ippAddString(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_NAME | IPP_TAG_COPY,
+ ippAddString(printer->attrs, IPP_TAG_PRINTER,
+ IPP_TAG_NAME | IPP_TAG_CUPS_CONST,
"job-sheets-default", NULL, "none");
/* job-sheets-supported */
- ippAddString(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_NAME | IPP_TAG_COPY,
+ ippAddString(printer->attrs, IPP_TAG_PRINTER,
+ IPP_TAG_NAME | IPP_TAG_CUPS_CONST,
"job-sheets-supported", NULL, "none");
/* media-bottom-margin-supported */
@@ -1394,7 +1384,7 @@ create_printer(const char *servername, /* I - Server hostname (NULL for default)
media_col_database = ippAddCollections(printer->attrs, IPP_TAG_PRINTER,
"media-col-database", num_database,
NULL);
- for (media_col_value = media_col_database->values, i = 0;
+ for (media_col_index = 0, i = 0;
i < (int)(sizeof(media_col_sizes) / sizeof(media_col_sizes[0]));
i ++)
{
@@ -1412,11 +1402,13 @@ create_printer(const char *servername, /* I - Server hostname (NULL for default)
strncmp(media_type_supported[j], "photographic-", 13))
continue;
- media_col_value->collection =
- create_media_col(media_supported[i], media_type_supported[j],
- media_col_sizes[i][0], media_col_sizes[i][1],
- media_xxx_margin_supported[1]);
- media_col_value ++;
+ ippSetCollection(printer->attrs, &media_col_database, media_col_index,
+ create_media_col(media_supported[i],
+ media_type_supported[j],
+ media_col_sizes[i][0],
+ media_col_sizes[i][1],
+ media_xxx_margin_supported[1]));
+ media_col_index ++;
if (media_col_sizes[i][2] != _IPP_ENV_ONLY &&
(!strcmp(media_type_supported[j], "auto") ||
@@ -1426,11 +1418,13 @@ create_printer(const char *servername, /* I - Server hostname (NULL for default)
* Add borderless version for this combination...
*/
- media_col_value->collection =
- create_media_col(media_supported[i], media_type_supported[j],
- media_col_sizes[i][0], media_col_sizes[i][1],
- media_xxx_margin_supported[0]);
- media_col_value ++;
+ ippSetCollection(printer->attrs, &media_col_database, media_col_index,
+ create_media_col(media_supported[i],
+ media_type_supported[j],
+ media_col_sizes[i][0],
+ media_col_sizes[i][1],
+ media_xxx_margin_supported[0]));
+ media_col_index ++;
}
}
}
@@ -1447,14 +1441,16 @@ create_printer(const char *servername, /* I - Server hostname (NULL for default)
ippDelete(media_col_default);
/* media-col-supported */
- ippAddStrings(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD | IPP_TAG_COPY,
+ ippAddStrings(printer->attrs, IPP_TAG_PRINTER,
+ IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST,
"media-col-supported",
(int)(sizeof(media_col_supported) /
sizeof(media_col_supported[0])), NULL,
media_col_supported);
/* media-default */
- ippAddString(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD | IPP_TAG_COPY,
+ ippAddString(printer->attrs, IPP_TAG_PRINTER,
+ IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST,
"media-default", NULL, media_supported[0]);
/* media-left-margin-supported */
@@ -1472,7 +1468,8 @@ create_printer(const char *servername, /* I - Server hostname (NULL for default)
media_xxx_margin_supported);
/* media-supported */
- ippAddStrings(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD | IPP_TAG_COPY,
+ ippAddStrings(printer->attrs, IPP_TAG_PRINTER,
+ IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST,
"media-supported",
(int)(sizeof(media_supported) / sizeof(media_supported[0])),
NULL, media_supported);
@@ -1486,8 +1483,9 @@ create_printer(const char *servername, /* I - Server hostname (NULL for default)
for (i = 0;
i < (int)(sizeof(media_col_sizes) / sizeof(media_col_sizes[0]));
i ++)
- media_size_supported->values[i].collection =
- create_media_size(media_col_sizes[i][0], media_col_sizes[i][1]);
+ ippSetCollection(printer->attrs, &media_size_supported, i,
+ create_media_size(media_col_sizes[i][0],
+ media_col_sizes[i][1]));
/* media-top-margin-supported */
ippAddIntegers(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_INTEGER,
@@ -1497,14 +1495,16 @@ create_printer(const char *servername, /* I - Server hostname (NULL for default)
media_xxx_margin_supported);
/* media-type-supported */
- ippAddStrings(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD | IPP_TAG_COPY,
+ ippAddStrings(printer->attrs, IPP_TAG_PRINTER,
+ IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST,
"media-type-supported",
(int)(sizeof(media_type_supported) /
sizeof(media_type_supported[0])),
NULL, media_type_supported);
/* multiple-document-handling-supported */
- ippAddStrings(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD | IPP_TAG_COPY,
+ ippAddStrings(printer->attrs, IPP_TAG_PRINTER,
+ IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST,
"multiple-document-handling-supported",
sizeof(multiple_document_handling) /
sizeof(multiple_document_handling[0]), NULL,
@@ -1515,7 +1515,8 @@ create_printer(const char *servername, /* I - Server hostname (NULL for default)
"multiple-document-jobs-supported", 0);
/* natural-language-configured */
- ippAddString(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_LANGUAGE | IPP_TAG_COPY,
+ ippAddString(printer->attrs, IPP_TAG_PRINTER,
+ IPP_TAG_LANGUAGE | IPP_TAG_CUPS_CONST,
"natural-language-configured", NULL, "en");
/* number-up-default */
@@ -1539,11 +1540,13 @@ create_printer(const char *servername, /* I - Server hostname (NULL for default)
"orientation-requested-supported", 4, orients);
/* output-bin-default */
- ippAddString(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD | IPP_TAG_COPY,
+ ippAddString(printer->attrs, IPP_TAG_PRINTER,
+ IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST,
"output-bin-default", NULL, "face-down");
/* output-bin-supported */
- ippAddString(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD | IPP_TAG_COPY,
+ ippAddString(printer->attrs, IPP_TAG_PRINTER,
+ IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST,
"output-bin-supported", NULL, "face-down");
/* pages-per-minute */
@@ -1556,7 +1559,8 @@ create_printer(const char *servername, /* I - Server hostname (NULL for default)
"pages-per-minute-color", ppm_color);
/* pdl-override-supported */
- ippAddString(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD | IPP_TAG_COPY,
+ ippAddString(printer->attrs, IPP_TAG_PRINTER,
+ IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST,
"pdl-override-supported", NULL, "attempted");
/* print-quality-default */
@@ -1630,30 +1634,35 @@ create_printer(const char *servername, /* I - Server hostname (NULL for default)
/* reference-uri-scheme-supported */
ippAddStrings(printer->attrs, IPP_TAG_PRINTER,
- IPP_TAG_URISCHEME | IPP_TAG_COPY,
+ IPP_TAG_URISCHEME | IPP_TAG_CUPS_CONST,
"reference-uri-schemes-supported",
(int)(sizeof(reference_uri_schemes_supported) /
sizeof(reference_uri_schemes_supported[0])),
NULL, reference_uri_schemes_supported);
/* sides-default */
- ippAddString(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD | IPP_TAG_COPY,
+ ippAddString(printer->attrs, IPP_TAG_PRINTER,
+ IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST,
"sides-default", NULL, "one-sided");
/* sides-supported */
- ippAddStrings(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD | IPP_TAG_COPY,
+ ippAddStrings(printer->attrs, IPP_TAG_PRINTER,
+ IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST,
"sides-supported", duplex ? 3 : 1, NULL, sides_supported);
/* uri-authentication-supported */
- ippAddString(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD | IPP_TAG_COPY,
+ ippAddString(printer->attrs, IPP_TAG_PRINTER,
+ IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST,
"uri-authentication-supported", NULL, "none");
/* uri-security-supported */
- ippAddString(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD | IPP_TAG_COPY,
+ ippAddString(printer->attrs, IPP_TAG_PRINTER,
+ IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST,
"uri-security-supported", NULL, "none");
/* which-jobs-supported */
- ippAddStrings(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD | IPP_TAG_COPY,
+ ippAddStrings(printer->attrs, IPP_TAG_PRINTER,
+ IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST,
"which-jobs-supported",
sizeof(which_jobs) / sizeof(which_jobs[0]), NULL, which_jobs);
@@ -1667,7 +1676,7 @@ create_printer(const char *servername, /* I - Server hostname (NULL for default)
*/
if (!register_printer(printer, location, make, model, docformats, adminurl,
- ppm_color > 0, duplex, regtype))
+ ppm_color > 0, duplex, subtype))
goto bad_printer;
#endif /* HAVE_DNSSD */
@@ -1697,10 +1706,11 @@ static cups_array_t * /* O - requested-attributes array */
create_requested_array(
_ipp_client_t *client) /* I - Client */
{
- int i; /* Looping var */
+ int i, /* Looping var */
+ count; /* Number of values */
ipp_attribute_t *requested; /* requested-attributes attribute */
cups_array_t *ra; /* Requested attributes array */
- char *value; /* Current value */
+ const char *value; /* Current value */
/*
@@ -1716,8 +1726,8 @@ create_requested_array(
* If the attribute contains a single "all" keyword, return NULL...
*/
- if (requested->num_values == 1 &&
- !strcmp(requested->values[0].string.text, "all"))
+ count = ippGetCount(requested);
+ if (count == 1 && !strcmp(ippGetString(requested, 0, NULL), "all"))
return (NULL);
/*
@@ -1726,9 +1736,9 @@ create_requested_array(
ra = cupsArrayNew((cups_array_func_t)strcmp, NULL);
- for (i = 0; i < requested->num_values; i ++)
+ for (i = 0; i < count; i ++)
{
- value = requested->values[i].string.text;
+ value = ippGetString(requested, i, NULL);
if (!strcmp(value, "job-template"))
{
@@ -1884,7 +1894,7 @@ create_requested_array(
cupsArrayAdd(ra, "notify-user-data");
}
else
- cupsArrayAdd(ra, value);
+ cupsArrayAdd(ra, (void *)value);
}
return (ra);
@@ -1903,38 +1913,39 @@ debug_attributes(const char *title, /* I - Title */
ipp_tag_t group_tag; /* Current group */
ipp_attribute_t *attr; /* Current attribute */
char buffer[2048]; /* String buffer for value */
+ int major, minor; /* Version */
if (Verbosity <= 1)
return;
fprintf(stderr, "%s:\n", title);
- fprintf(stderr, " version=%d.%d\n", ipp->request.any.version[0],
- ipp->request.any.version[1]);
+ major = ippGetVersion(ipp, &minor);
+ fprintf(stderr, " version=%d.%d\n", major, minor);
if (type == 1)
fprintf(stderr, " operation-id=%s(%04x)\n",
- ippOpString(ipp->request.op.operation_id),
- ipp->request.op.operation_id);
+ ippOpString(ippGetOperation(ipp)), ippGetOperation(ipp));
else if (type == 2)
fprintf(stderr, " status-code=%s(%04x)\n",
- ippErrorString(ipp->request.status.status_code),
- ipp->request.status.status_code);
- fprintf(stderr, " request-id=%d\n\n", ipp->request.any.request_id);
+ ippErrorString(ippGetStatusCode(ipp)), ippGetStatusCode(ipp));
+ fprintf(stderr, " request-id=%d\n\n", ippGetRequestId(ipp));
- for (attr = ipp->attrs, group_tag = IPP_TAG_ZERO; attr; attr = attr->next)
+ for (attr = ippFirstAttribute(ipp), group_tag = IPP_TAG_ZERO;
+ attr;
+ attr = ippNextAttribute(ipp))
{
- if (attr->group_tag != group_tag)
+ if (ippGetGroupTag(attr) != group_tag)
{
- group_tag = attr->group_tag;
+ group_tag = ippGetGroupTag(attr);
fprintf(stderr, " %s\n", ippTagString(group_tag));
}
- if (attr->name)
+ if (ippGetName(attr))
{
ippAttributeString(attr, buffer, sizeof(buffer));
- fprintf(stderr, " %s (%s%s) %s\n", attr->name,
- attr->num_values > 1 ? "1setOf " : "",
- ippTagString(attr->value_tag), buffer);
+ fprintf(stderr, " %s (%s%s) %s\n", ippGetName(attr),
+ ippGetCount(attr) > 1 ? "1setOf " : "",
+ ippTagString(ippGetValueTag(attr)), buffer);
}
}
}
@@ -1949,27 +1960,21 @@ static void
delete_client(_ipp_client_t *client) /* I - Client */
{
if (Verbosity)
- fprintf(stderr, "Closing connection from %s (%s)\n", client->http.hostname,
- client->http.hostaddr->addr.sa_family == AF_INET ? "IPv4" : "IPv6");
+ fprintf(stderr, "Closing connection from %s\n", client->hostname);
/*
* Flush pending writes before closing...
*/
- httpFlushWrite(&(client->http));
-
- if (client->http.fd >= 0)
- close(client->http.fd);
+ httpFlushWrite(client->http);
/*
* Free memory...
*/
- httpClearCookie(&(client->http));
- httpClearFields(&(client->http));
+ httpClose(client->http);
ippDelete(client->request);
-
ippDelete(client->response);
free(client);
@@ -2022,6 +2027,10 @@ delete_printer(_ipp_printer_t *printer) /* I - Printer */
if (printer->ipp_ref)
DNSServiceRefDeallocate(printer->ipp_ref);
+# ifdef HAVE_SSL
+ if (printer->ipps_ref)
+ DNSServiceRefDeallocate(printer->ipps_ref);
+# endif /* HAVE_SSL */
if (printer->http_ref)
DNSServiceRefDeallocate(printer->http_ref);
@@ -2031,19 +2040,19 @@ delete_printer(_ipp_printer_t *printer) /* I - Printer */
TXTRecordDeallocate(&(printer->ipp_txt));
if (printer->dnssd_name)
- _cupsStrFree(printer->dnssd_name);
+ free(printer->dnssd_name);
#endif /* HAVE_DNSSD */
if (printer->name)
- _cupsStrFree(printer->name);
+ free(printer->name);
if (printer->icon)
- _cupsStrFree(printer->icon);
+ free(printer->icon);
if (printer->directory)
- _cupsStrFree(printer->directory);
+ free(printer->directory);
if (printer->hostname)
- _cupsStrFree(printer->hostname);
+ free(printer->hostname);
if (printer->uri)
- _cupsStrFree(printer->uri);
+ free(printer->uri);
ippDelete(printer->attrs);
cupsArrayDelete(printer->jobs);
@@ -2079,8 +2088,8 @@ dnssd_callback(
fprintf(stderr, "Now using DNS-SD service name \"%s\".\n", name);
/* No lock needed since only the main thread accesses/changes this */
- _cupsStrFree(printer->dnssd_name);
- printer->dnssd_name = _cupsStrAlloc(name);
+ free(printer->dnssd_name);
+ printer->dnssd_name = strdup(name);
}
}
#endif /* HAVE_DNSSD */
@@ -2103,14 +2112,15 @@ find_job(_ipp_client_t *client) /* I - Client */
if ((attr = ippFindAttribute(client->request, "job-uri",
IPP_TAG_URI)) != NULL)
{
- if (!strncmp(attr->values[0].string.text, client->printer->uri,
- client->printer->urilen) &&
- attr->values[0].string.text[client->printer->urilen] == '/')
- key.id = atoi(attr->values[0].string.text + client->printer->urilen + 1);
+ const char *uri = ippGetString(attr, 0, NULL);
+
+ if (!strncmp(uri, client->printer->uri, client->printer->urilen) &&
+ uri[client->printer->urilen] == '/')
+ key.id = atoi(uri + client->printer->urilen + 1);
}
else if ((attr = ippFindAttribute(client->request, "job-id",
IPP_TAG_INTEGER)) != NULL)
- key.id = attr->values[0].integer;
+ key.id = ippGetInteger(attr, 0);
_cupsRWLockRead(&(client->printer->rwlock));
job = (_ipp_job_t *)cupsArrayFind(client->printer->jobs, &key);
@@ -2141,12 +2151,12 @@ html_escape(_ipp_client_t *client, /* I - Client */
if (*s == '&' || *s == '<')
{
if (s > start)
- httpWrite2(&(client->http), start, s - start);
+ httpWrite2(client->http, start, s - start);
if (*s == '&')
- httpWrite2(&(client->http), "&amp;", 5);
+ httpWrite2(client->http, "&amp;", 5);
else
- httpWrite2(&(client->http), "&lt;", 4);
+ httpWrite2(client->http, "&lt;", 4);
start = s + 1;
}
@@ -2155,7 +2165,7 @@ html_escape(_ipp_client_t *client, /* I - Client */
}
if (s > start)
- httpWrite2(&(client->http), start, s - start);
+ httpWrite2(client->http, start, s - start);
}
@@ -2192,14 +2202,14 @@ html_printf(_ipp_client_t *client, /* I - Client */
if (*format == '%')
{
if (format > start)
- httpWrite2(&(client->http), start, format - start);
+ httpWrite2(client->http, start, format - start);
tptr = tformat;
*tptr++ = *format++;
if (*format == '%')
{
- httpWrite2(&(client->http), "%", 1);
+ httpWrite2(client->http, "%", 1);
format ++;
continue;
}
@@ -2312,7 +2322,7 @@ html_printf(_ipp_client_t *client, /* I - Client */
sprintf(temp, tformat, va_arg(ap, double));
- httpWrite2(&(client->http), temp, strlen(temp));
+ httpWrite2(client->http, temp, strlen(temp));
break;
case 'B' : /* Integer formats */
@@ -2336,7 +2346,7 @@ html_printf(_ipp_client_t *client, /* I - Client */
else
sprintf(temp, tformat, va_arg(ap, int));
- httpWrite2(&(client->http), temp, strlen(temp));
+ httpWrite2(client->http, temp, strlen(temp));
break;
case 'p' : /* Pointer value */
@@ -2345,7 +2355,7 @@ html_printf(_ipp_client_t *client, /* I - Client */
sprintf(temp, tformat, va_arg(ap, void *));
- httpWrite2(&(client->http), temp, strlen(temp));
+ httpWrite2(client->http, temp, strlen(temp));
break;
case 'c' : /* Character or character array */
@@ -2372,7 +2382,7 @@ html_printf(_ipp_client_t *client, /* I - Client */
}
if (format > start)
- httpWrite2(&(client->http), start, format - start);
+ httpWrite2(client->http, start, format - start);
va_end(ap);
}
@@ -2394,7 +2404,7 @@ ipp_cancel_job(_ipp_client_t *client) /* I - Client */
if ((job = find_job(client)) == NULL)
{
- respond_ipp(client, IPP_NOT_FOUND, "Job does not exist.");
+ respond_ipp(client, IPP_STATUS_ERROR_NOT_FOUND, "Job does not exist.");
return;
}
@@ -2405,18 +2415,18 @@ ipp_cancel_job(_ipp_client_t *client) /* I - Client */
switch (job->state)
{
- case IPP_JOB_CANCELED :
- respond_ipp(client, IPP_NOT_POSSIBLE,
+ case IPP_JSTATE_CANCELED :
+ respond_ipp(client, IPP_STATUS_ERROR_NOT_POSSIBLE,
"Job #%d is already canceled - can\'t cancel.", job->id);
break;
- case IPP_JOB_ABORTED :
- respond_ipp(client, IPP_NOT_POSSIBLE,
+ case IPP_JSTATE_ABORTED :
+ respond_ipp(client, IPP_STATUS_ERROR_NOT_POSSIBLE,
"Job #%d is already aborted - can\'t cancel.", job->id);
break;
- case IPP_JOB_COMPLETED :
- respond_ipp(client, IPP_NOT_POSSIBLE,
+ case IPP_JSTATE_COMPLETED :
+ respond_ipp(client, IPP_STATUS_ERROR_NOT_POSSIBLE,
"Job #%d is already completed - can\'t cancel.", job->id);
break;
@@ -2427,18 +2437,18 @@ ipp_cancel_job(_ipp_client_t *client) /* I - Client */
_cupsRWLockWrite(&(client->printer->rwlock));
- if (job->state == IPP_JOB_PROCESSING ||
- (job->state == IPP_JOB_HELD && job->fd >= 0))
+ if (job->state == IPP_JSTATE_PROCESSING ||
+ (job->state == IPP_JSTATE_HELD && job->fd >= 0))
job->cancel = 1;
else
{
- job->state = IPP_JOB_CANCELED;
+ job->state = IPP_JSTATE_CANCELED;
job->completed = time(NULL);
}
_cupsRWUnlock(&(client->printer->rwlock));
- respond_ipp(client, IPP_OK, NULL);
+ respond_ipp(client, IPP_STATUS_OK, NULL);
break;
}
}
@@ -2461,7 +2471,7 @@ ipp_create_job(_ipp_client_t *client) /* I - Client */
if (!valid_job_attributes(client))
{
- httpFlush(&(client->http));
+ httpFlush(client->http);
return;
}
@@ -2469,9 +2479,9 @@ ipp_create_job(_ipp_client_t *client) /* I - Client */
* Do we have a file to print?
*/
- if (client->http.state == HTTP_POST_RECV)
+ if (httpGetState(client->http) == HTTP_STATE_POST_RECV)
{
- respond_ipp(client, IPP_BAD_REQUEST,
+ respond_ipp(client, IPP_STATUS_ERROR_BAD_REQUEST,
"Unexpected document data following request.");
return;
}
@@ -2482,7 +2492,8 @@ ipp_create_job(_ipp_client_t *client) /* I - Client */
if ((job = create_job(client)) == NULL)
{
- respond_ipp(client, IPP_PRINTER_BUSY, "Currently printing another job.");
+ respond_ipp(client, IPP_STATUS_ERROR_BUSY,
+ "Currently printing another job.");
return;
}
@@ -2490,7 +2501,7 @@ ipp_create_job(_ipp_client_t *client) /* I - Client */
* Return the job info...
*/
- respond_ipp(client, IPP_OK, NULL);
+ respond_ipp(client, IPP_STATUS_OK, NULL);
ra = cupsArrayNew((cups_array_func_t)strcmp, NULL);
cupsArrayAdd(ra, "job-id");
@@ -2517,11 +2528,11 @@ ipp_get_job_attributes(
if ((job = find_job(client)) == NULL)
{
- respond_ipp(client, IPP_NOT_FOUND, "Job not found.");
+ respond_ipp(client, IPP_STATUS_ERROR_NOT_FOUND, "Job not found.");
return;
}
- respond_ipp(client, IPP_OK, NULL);
+ respond_ipp(client, IPP_STATUS_OK, NULL);
ra = create_requested_array(client);
copy_job_attributes(client, job, ra);
@@ -2537,6 +2548,8 @@ static void
ipp_get_jobs(_ipp_client_t *client) /* I - Client */
{
ipp_attribute_t *attr; /* Current attribute */
+ const char *which_jobs = NULL;
+ /* which-jobs values */
int job_comparison; /* Job comparison */
ipp_jstate_t job_state; /* job-state value */
int first_job_id, /* First job ID */
@@ -2553,61 +2566,62 @@ ipp_get_jobs(_ipp_client_t *client) /* I - Client */
if ((attr = ippFindAttribute(client->request, "which-jobs",
IPP_TAG_KEYWORD)) != NULL)
- fprintf(stderr, "%s Get-Jobs which-jobs=%s", client->http.hostname,
- attr->values[0].string.text);
+ {
+ which_jobs = ippGetString(attr, 0, NULL);
+ fprintf(stderr, "%s Get-Jobs which-jobs=%s", client->hostname, which_jobs);
+ }
- if (!attr || !strcmp(attr->values[0].string.text, "not-completed"))
+ if (!which_jobs || !strcmp(which_jobs, "not-completed"))
{
job_comparison = -1;
- job_state = IPP_JOB_STOPPED;
+ job_state = IPP_JSTATE_STOPPED;
}
- else if (!strcmp(attr->values[0].string.text, "completed"))
+ else if (!strcmp(which_jobs, "completed"))
{
job_comparison = 1;
- job_state = IPP_JOB_CANCELED;
+ job_state = IPP_JSTATE_CANCELED;
}
- else if (!strcmp(attr->values[0].string.text, "aborted"))
+ else if (!strcmp(which_jobs, "aborted"))
{
job_comparison = 0;
- job_state = IPP_JOB_ABORTED;
+ job_state = IPP_JSTATE_ABORTED;
}
- else if (!strcmp(attr->values[0].string.text, "all"))
+ else if (!strcmp(which_jobs, "all"))
{
job_comparison = 1;
- job_state = IPP_JOB_PENDING;
+ job_state = IPP_JSTATE_PENDING;
}
- else if (!strcmp(attr->values[0].string.text, "canceled"))
+ else if (!strcmp(which_jobs, "canceled"))
{
job_comparison = 0;
- job_state = IPP_JOB_CANCELED;
+ job_state = IPP_JSTATE_CANCELED;
}
- else if (!strcmp(attr->values[0].string.text, "pending"))
+ else if (!strcmp(which_jobs, "pending"))
{
job_comparison = 0;
- job_state = IPP_JOB_PENDING;
+ job_state = IPP_JSTATE_PENDING;
}
- else if (!strcmp(attr->values[0].string.text, "pending-held"))
+ else if (!strcmp(which_jobs, "pending-held"))
{
job_comparison = 0;
- job_state = IPP_JOB_HELD;
+ job_state = IPP_JSTATE_HELD;
}
- else if (!strcmp(attr->values[0].string.text, "processing"))
+ else if (!strcmp(which_jobs, "processing"))
{
job_comparison = 0;
- job_state = IPP_JOB_PROCESSING;
+ job_state = IPP_JSTATE_PROCESSING;
}
- else if (!strcmp(attr->values[0].string.text, "processing-stopped"))
+ else if (!strcmp(which_jobs, "processing-stopped"))
{
job_comparison = 0;
- job_state = IPP_JOB_STOPPED;
+ job_state = IPP_JSTATE_STOPPED;
}
else
{
- respond_ipp(client, IPP_ATTRIBUTES,
- "The which-jobs value \"%s\" is not supported.",
- attr->values[0].string.text);
+ respond_ipp(client, IPP_STATUS_ERROR_ATTRIBUTES_OR_VALUES,
+ "The which-jobs value \"%s\" is not supported.", which_jobs);
ippAddString(client->response, IPP_TAG_UNSUPPORTED_GROUP, IPP_TAG_KEYWORD,
- "which-jobs", NULL, attr->values[0].string.text);
+ "which-jobs", NULL, which_jobs);
return;
}
@@ -2618,9 +2632,9 @@ ipp_get_jobs(_ipp_client_t *client) /* I - Client */
if ((attr = ippFindAttribute(client->request, "limit",
IPP_TAG_INTEGER)) != NULL)
{
- limit = attr->values[0].integer;
+ limit = ippGetInteger(attr, 0);
- fprintf(stderr, "%s Get-Jobs limit=%d", client->http.hostname, limit);
+ fprintf(stderr, "%s Get-Jobs limit=%d", client->hostname, limit);
}
else
limit = 0;
@@ -2628,9 +2642,9 @@ ipp_get_jobs(_ipp_client_t *client) /* I - Client */
if ((attr = ippFindAttribute(client->request, "first-job-id",
IPP_TAG_INTEGER)) != NULL)
{
- first_job_id = attr->values[0].integer;
+ first_job_id = ippGetInteger(attr, 0);
- fprintf(stderr, "%s Get-Jobs first-job-id=%d", client->http.hostname,
+ fprintf(stderr, "%s Get-Jobs first-job-id=%d", client->hostname,
first_job_id);
}
else
@@ -2645,23 +2659,25 @@ ipp_get_jobs(_ipp_client_t *client) /* I - Client */
if ((attr = ippFindAttribute(client->request, "my-jobs",
IPP_TAG_BOOLEAN)) != NULL)
{
- fprintf(stderr, "%s Get-Jobs my-jobs=%s\n", client->http.hostname,
- attr->values[0].boolean ? "true" : "false");
+ int my_jobs = ippGetBoolean(attr, 0);
+
+ fprintf(stderr, "%s Get-Jobs my-jobs=%s\n", client->hostname,
+ my_jobs ? "true" : "false");
- if (attr->values[0].boolean)
+ if (my_jobs)
{
if ((attr = ippFindAttribute(client->request, "requesting-user-name",
IPP_TAG_NAME)) == NULL)
{
- respond_ipp(client, IPP_BAD_REQUEST,
+ respond_ipp(client, IPP_STATUS_ERROR_BAD_REQUEST,
"Need requesting-user-name with my-jobs.");
return;
}
- username = attr->values[0].string.text;
+ username = ippGetString(attr, 0, NULL);
fprintf(stderr, "%s Get-Jobs requesting-user-name=\"%s\"\n",
- client->http.hostname, username);
+ client->hostname, username);
}
}
@@ -2683,7 +2699,7 @@ ipp_get_jobs(_ipp_client_t *client) /* I - Client */
cupsArrayAdd(ra, "job-uri");
}
- respond_ipp(client, IPP_OK, NULL);
+ respond_ipp(client, IPP_STATUS_OK, NULL);
_cupsRWLockRead(&(client->printer->rwlock));
@@ -2699,7 +2715,8 @@ ipp_get_jobs(_ipp_client_t *client) /* I - Client */
(job_comparison == 0 && job->state != job_state) ||
(job_comparison > 0 && job->state < job_state) ||
job->id < first_job_id ||
- (username && job->username && _cups_strcasecmp(username, job->username)))
+ (username && job->username &&
+ _cups_strcasecmp(username, job->username)))
continue;
if (count > 0)
@@ -2734,12 +2751,12 @@ ipp_get_printer_attributes(
ra = create_requested_array(client);
printer = client->printer;
- respond_ipp(client, IPP_OK, NULL);
+ respond_ipp(client, IPP_STATUS_OK, NULL);
_cupsRWLockRead(&(printer->rwlock));
copy_attributes(client->response, printer->attrs, ra, IPP_TAG_ZERO,
- IPP_TAG_COPY);
+ IPP_TAG_CUPS_CONST);
if (!ra || cupsArrayFind(ra, "printer-state"))
ippAddInteger(client->response, IPP_TAG_PRINTER, IPP_TAG_ENUM,
@@ -2747,51 +2764,51 @@ ipp_get_printer_attributes(
if (!ra || cupsArrayFind(ra, "printer-state-reasons"))
{
- if (printer->state_reasons == _IPP_PRINTER_NONE)
+ if (printer->state_reasons == _IPP_PSTATE_NONE)
ippAddString(client->response, IPP_TAG_PRINTER,
- IPP_TAG_KEYWORD | IPP_TAG_COPY, "printer-state-reasons",
- NULL, "none");
+ IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST,
+ "printer-state-reasons", NULL, "none");
else
{
int num_reasons = 0;/* Number of reasons */
const char *reasons[32]; /* Reason strings */
- if (printer->state_reasons & _IPP_PRINTER_OTHER)
+ if (printer->state_reasons & _IPP_PSTATE_OTHER)
reasons[num_reasons ++] = "other";
- if (printer->state_reasons & _IPP_PRINTER_COVER_OPEN)
+ if (printer->state_reasons & _IPP_PSTATE_COVER_OPEN)
reasons[num_reasons ++] = "cover-open";
- if (printer->state_reasons & _IPP_PRINTER_INPUT_TRAY_MISSING)
+ if (printer->state_reasons & _IPP_PSTATE_INPUT_TRAY_MISSING)
reasons[num_reasons ++] = "input-tray-missing";
- if (printer->state_reasons & _IPP_PRINTER_MARKER_SUPPLY_EMPTY)
+ if (printer->state_reasons & _IPP_PSTATE_MARKER_SUPPLY_EMPTY)
reasons[num_reasons ++] = "marker-supply-empty-warning";
- if (printer->state_reasons & _IPP_PRINTER_MARKER_SUPPLY_LOW)
+ if (printer->state_reasons & _IPP_PSTATE_MARKER_SUPPLY_LOW)
reasons[num_reasons ++] = "marker-supply-low-report";
- if (printer->state_reasons & _IPP_PRINTER_MARKER_WASTE_ALMOST_FULL)
+ if (printer->state_reasons & _IPP_PSTATE_MARKER_WASTE_ALMOST_FULL)
reasons[num_reasons ++] = "marker-waste-almost-full-report";
- if (printer->state_reasons & _IPP_PRINTER_MARKER_WASTE_FULL)
+ if (printer->state_reasons & _IPP_PSTATE_MARKER_WASTE_FULL)
reasons[num_reasons ++] = "marker-waste-full-warning";
- if (printer->state_reasons & _IPP_PRINTER_MEDIA_EMPTY)
+ if (printer->state_reasons & _IPP_PSTATE_MEDIA_EMPTY)
reasons[num_reasons ++] = "media-empty-warning";
- if (printer->state_reasons & _IPP_PRINTER_MEDIA_JAM)
+ if (printer->state_reasons & _IPP_PSTATE_MEDIA_JAM)
reasons[num_reasons ++] = "media-jam-warning";
- if (printer->state_reasons & _IPP_PRINTER_MEDIA_LOW)
+ if (printer->state_reasons & _IPP_PSTATE_MEDIA_LOW)
reasons[num_reasons ++] = "media-low-report";
- if (printer->state_reasons & _IPP_PRINTER_MEDIA_NEEDED)
+ if (printer->state_reasons & _IPP_PSTATE_MEDIA_NEEDED)
reasons[num_reasons ++] = "media-needed-report";
- if (printer->state_reasons & _IPP_PRINTER_MOVING_TO_PAUSED)
+ if (printer->state_reasons & _IPP_PSTATE_MOVING_TO_PAUSED)
reasons[num_reasons ++] = "moving-to-paused";
- if (printer->state_reasons & _IPP_PRINTER_PAUSED)
+ if (printer->state_reasons & _IPP_PSTATE_PAUSED)
reasons[num_reasons ++] = "paused";
- if (printer->state_reasons & _IPP_PRINTER_SPOOL_AREA_FULL)
+ if (printer->state_reasons & _IPP_PSTATE_SPOOL_AREA_FULL)
reasons[num_reasons ++] = "spool-area-full";
- if (printer->state_reasons & _IPP_PRINTER_TONER_EMPTY)
+ if (printer->state_reasons & _IPP_PSTATE_TONER_EMPTY)
reasons[num_reasons ++] = "toner-empty-warning";
- if (printer->state_reasons & _IPP_PRINTER_TONER_LOW)
+ if (printer->state_reasons & _IPP_PSTATE_TONER_LOW)
reasons[num_reasons ++] = "toner-low-report";
ippAddStrings(client->response, IPP_TAG_PRINTER,
- IPP_TAG_KEYWORD | IPP_TAG_COPY, "printer-state-reasons",
- num_reasons, NULL, reasons);
+ IPP_TAG_KEYWORD | IPP_TAG_CUPS_CONST,
+ "printer-state-reasons", num_reasons, NULL, reasons);
}
}
@@ -2803,7 +2820,7 @@ ipp_get_printer_attributes(
ippAddInteger(client->response, IPP_TAG_PRINTER, IPP_TAG_INTEGER,
"queued-job-count",
printer->active_job &&
- printer->active_job->state < IPP_JOB_CANCELED);
+ printer->active_job->state < IPP_JSTATE_CANCELED);
_cupsRWUnlock(&(printer->rwlock));
@@ -2831,7 +2848,7 @@ ipp_print_job(_ipp_client_t *client) /* I - Client */
if (!valid_job_attributes(client))
{
- httpFlush(&(client->http));
+ httpFlush(client->http);
return;
}
@@ -2839,9 +2856,9 @@ ipp_print_job(_ipp_client_t *client) /* I - Client */
* Do we have a file to print?
*/
- if (client->http.state == HTTP_POST_SEND)
+ if (httpGetState(client->http) == HTTP_STATE_POST_SEND)
{
- respond_ipp(client, IPP_BAD_REQUEST, "No file in request.");
+ respond_ipp(client, IPP_STATUS_ERROR_BAD_REQUEST, "No file in request.");
return;
}
@@ -2851,7 +2868,8 @@ ipp_print_job(_ipp_client_t *client) /* I - Client */
if ((job = create_job(client)) == NULL)
{
- respond_ipp(client, IPP_PRINTER_BUSY, "Currently printing another job.");
+ respond_ipp(client, IPP_STATUS_ERROR_BUSY,
+ "Currently printing another job.");
return;
}
@@ -2877,27 +2895,27 @@ ipp_print_job(_ipp_client_t *client) /* I - Client */
if ((job->fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0600)) < 0)
{
- job->state = IPP_JOB_ABORTED;
+ job->state = IPP_JSTATE_ABORTED;
- respond_ipp(client, IPP_INTERNAL_ERROR,
+ respond_ipp(client, IPP_STATUS_ERROR_INTERNAL,
"Unable to create print file: %s", strerror(errno));
return;
}
- while ((bytes = httpRead2(&(client->http), buffer, sizeof(buffer))) > 0)
+ while ((bytes = httpRead2(client->http, buffer, sizeof(buffer))) > 0)
{
if (write(job->fd, buffer, bytes) < bytes)
{
int error = errno; /* Write error */
- job->state = IPP_JOB_ABORTED;
+ job->state = IPP_JSTATE_ABORTED;
close(job->fd);
job->fd = -1;
unlink(filename);
- respond_ipp(client, IPP_INTERNAL_ERROR,
+ respond_ipp(client, IPP_STATUS_ERROR_INTERNAL,
"Unable to write print file: %s", strerror(error));
return;
}
@@ -2909,14 +2927,15 @@ ipp_print_job(_ipp_client_t *client) /* I - Client */
* Got an error while reading the print data, so abort this job.
*/
- job->state = IPP_JOB_ABORTED;
+ job->state = IPP_JSTATE_ABORTED;
close(job->fd);
job->fd = -1;
unlink(filename);
- respond_ipp(client, IPP_INTERNAL_ERROR, "Unable to read print file.");
+ respond_ipp(client, IPP_STATUS_ERROR_INTERNAL,
+ "Unable to read print file.");
return;
}
@@ -2924,19 +2943,19 @@ ipp_print_job(_ipp_client_t *client) /* I - Client */
{
int error = errno; /* Write error */
- job->state = IPP_JOB_ABORTED;
+ job->state = IPP_JSTATE_ABORTED;
job->fd = -1;
unlink(filename);
- respond_ipp(client, IPP_INTERNAL_ERROR, "Unable to write print file: %s",
- strerror(error));
+ respond_ipp(client, IPP_STATUS_ERROR_INTERNAL,
+ "Unable to write print file: %s", strerror(error));
return;
}
job->fd = -1;
job->filename = strdup(filename);
- job->state = IPP_JOB_PENDING;
+ job->state = IPP_JSTATE_PENDING;
/*
* Process the job...
@@ -2945,8 +2964,8 @@ ipp_print_job(_ipp_client_t *client) /* I - Client */
#if 0
if (!_cupsThreadCreate((_cups_thread_func_t)process_job, job))
{
- job->state = IPP_JOB_ABORTED;
- respond_ipp(client, IPP_INTERNAL_ERROR, "Unable to process job.");
+ job->state = IPP_JSTATE_ABORTED;
+ respond_ipp(client, IPP_STATUS_ERROR_INTERNAL, "Unable to process job.");
return;
}
@@ -2958,7 +2977,7 @@ ipp_print_job(_ipp_client_t *client) /* I - Client */
* Return the job info...
*/
- respond_ipp(client, IPP_OK, NULL);
+ respond_ipp(client, IPP_STATUS_OK, NULL);
ra = cupsArrayNew((cups_array_func_t)strcmp, NULL);
cupsArrayAdd(ra, "job-id");
@@ -3013,7 +3032,7 @@ ipp_print_uri(_ipp_client_t *client) /* I - Client */
if (!valid_job_attributes(client))
{
- httpFlush(&(client->http));
+ httpFlush(client->http);
return;
}
@@ -3021,9 +3040,9 @@ ipp_print_uri(_ipp_client_t *client) /* I - Client */
* Do we have a file to print?
*/
- if (client->http.state == HTTP_POST_RECV)
+ if (httpGetState(client->http) == HTTP_STATE_POST_RECV)
{
- respond_ipp(client, IPP_BAD_REQUEST,
+ respond_ipp(client, IPP_STATUS_ERROR_BAD_REQUEST,
"Unexpected document data following request.");
return;
}
@@ -3035,24 +3054,25 @@ ipp_print_uri(_ipp_client_t *client) /* I - Client */
if ((uri = ippFindAttribute(client->request, "document-uri",
IPP_TAG_URI)) == NULL)
{
- respond_ipp(client, IPP_BAD_REQUEST, "Missing document-uri.");
+ respond_ipp(client, IPP_STATUS_ERROR_BAD_REQUEST, "Missing document-uri.");
return;
}
- if (uri->num_values != 1)
+ if (ippGetCount(uri) != 1)
{
- respond_ipp(client, IPP_BAD_REQUEST, "Too many document-uri values.");
+ respond_ipp(client, IPP_STATUS_ERROR_BAD_REQUEST,
+ "Too many document-uri values.");
return;
}
- uri_status = httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text,
+ uri_status = httpSeparateURI(HTTP_URI_CODING_ALL, ippGetString(uri, 0, NULL),
scheme, sizeof(scheme), userpass,
sizeof(userpass), hostname, sizeof(hostname),
&port, resource, sizeof(resource));
- if (uri_status < HTTP_URI_OK)
+ if (uri_status < HTTP_URI_STATUS_OK)
{
- respond_ipp(client, IPP_BAD_REQUEST, "Bad document-uri: %s",
- uri_status_strings[uri_status - HTTP_URI_OVERFLOW]);
+ respond_ipp(client, IPP_STATUS_ERROR_BAD_REQUEST, "Bad document-uri: %s",
+ uri_status_strings[uri_status - HTTP_URI_STATUS_OVERFLOW]);
return;
}
@@ -3062,15 +3082,15 @@ ipp_print_uri(_ipp_client_t *client) /* I - Client */
#endif /* HAVE_SSL */
strcmp(scheme, "http"))
{
- respond_ipp(client, IPP_URI_SCHEME, "URI scheme \"%s\" not supported.",
- scheme);
+ respond_ipp(client, IPP_STATUS_ERROR_URI_SCHEME,
+ "URI scheme \"%s\" not supported.", scheme);
return;
}
if (!strcmp(scheme, "file") && access(resource, R_OK))
{
- respond_ipp(client, IPP_DOCUMENT_ACCESS_ERROR, "Unable to access URI: %s",
- strerror(errno));
+ respond_ipp(client, IPP_STATUS_ERROR_DOCUMENT_ACCESS,
+ "Unable to access URI: %s", strerror(errno));
return;
}
@@ -3080,7 +3100,8 @@ ipp_print_uri(_ipp_client_t *client) /* I - Client */
if ((job = create_job(client)) == NULL)
{
- respond_ipp(client, IPP_PRINTER_BUSY, "Currently printing another job.");
+ respond_ipp(client, IPP_STATUS_ERROR_BUSY,
+ "Currently printing another job.");
return;
}
@@ -3106,9 +3127,9 @@ ipp_print_uri(_ipp_client_t *client) /* I - Client */
if ((job->fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0600)) < 0)
{
- job->state = IPP_JOB_ABORTED;
+ job->state = IPP_JSTATE_ABORTED;
- respond_ipp(client, IPP_INTERNAL_ERROR,
+ respond_ipp(client, IPP_STATUS_ERROR_INTERNAL,
"Unable to create print file: %s", strerror(errno));
return;
}
@@ -3117,8 +3138,8 @@ ipp_print_uri(_ipp_client_t *client) /* I - Client */
{
if ((infile = open(resource, O_RDONLY)) < 0)
{
- respond_ipp(client, IPP_DOCUMENT_ACCESS_ERROR, "Unable to access URI: %s",
- strerror(errno));
+ respond_ipp(client, IPP_STATUS_ERROR_DOCUMENT_ACCESS,
+ "Unable to access URI: %s", strerror(errno));
return;
}
@@ -3131,7 +3152,7 @@ ipp_print_uri(_ipp_client_t *client) /* I - Client */
{
int error = errno; /* Write error */
- job->state = IPP_JOB_ABORTED;
+ job->state = IPP_JSTATE_ABORTED;
close(job->fd);
job->fd = -1;
@@ -3139,7 +3160,7 @@ ipp_print_uri(_ipp_client_t *client) /* I - Client */
unlink(filename);
close(infile);
- respond_ipp(client, IPP_INTERNAL_ERROR,
+ respond_ipp(client, IPP_STATUS_ERROR_INTERNAL,
"Unable to write print file: %s", strerror(error));
return;
}
@@ -3152,17 +3173,18 @@ ipp_print_uri(_ipp_client_t *client) /* I - Client */
{
#ifdef HAVE_SSL
if (port == 443 || !strcmp(scheme, "https"))
- encryption = HTTP_ENCRYPT_ALWAYS;
+ encryption = HTTP_ENCRYPTION_ALWAYS;
else
#endif /* HAVE_SSL */
- encryption = HTTP_ENCRYPT_IF_REQUESTED;
+ encryption = HTTP_ENCRYPTION_IF_REQUESTED;
- if ((http = httpConnectEncrypt(hostname, port, encryption)) == NULL)
+ if ((http = httpConnect2(hostname, port, NULL, AF_UNSPEC, encryption,
+ 1, 30000, NULL)) == NULL)
{
- respond_ipp(client, IPP_DOCUMENT_ACCESS_ERROR,
+ respond_ipp(client, IPP_STATUS_ERROR_DOCUMENT_ACCESS,
"Unable to connect to %s: %s", hostname,
cupsLastErrorString());
- job->state = IPP_JOB_ABORTED;
+ job->state = IPP_JSTATE_ABORTED;
close(job->fd);
job->fd = -1;
@@ -3175,10 +3197,10 @@ ipp_print_uri(_ipp_client_t *client) /* I - Client */
httpSetField(http, HTTP_FIELD_ACCEPT_LANGUAGE, "en");
if (httpGet(http, resource))
{
- respond_ipp(client, IPP_DOCUMENT_ACCESS_ERROR, "Unable to GET URI: %s",
- strerror(errno));
+ respond_ipp(client, IPP_STATUS_ERROR_DOCUMENT_ACCESS,
+ "Unable to GET URI: %s", strerror(errno));
- job->state = IPP_JOB_ABORTED;
+ job->state = IPP_JSTATE_ABORTED;
close(job->fd);
job->fd = -1;
@@ -3188,14 +3210,14 @@ ipp_print_uri(_ipp_client_t *client) /* I - Client */
return;
}
- while ((status = httpUpdate(http)) == HTTP_CONTINUE);
+ while ((status = httpUpdate(http)) == HTTP_STATUS_CONTINUE);
- if (status != HTTP_OK)
+ if (status != HTTP_STATUS_OK)
{
- respond_ipp(client, IPP_DOCUMENT_ACCESS_ERROR, "Unable to GET URI: %s",
- httpStatus(status));
+ respond_ipp(client, IPP_STATUS_ERROR_DOCUMENT_ACCESS,
+ "Unable to GET URI: %s", httpStatus(status));
- job->state = IPP_JOB_ABORTED;
+ job->state = IPP_JSTATE_ABORTED;
close(job->fd);
job->fd = -1;
@@ -3211,7 +3233,7 @@ ipp_print_uri(_ipp_client_t *client) /* I - Client */
{
int error = errno; /* Write error */
- job->state = IPP_JOB_ABORTED;
+ job->state = IPP_JSTATE_ABORTED;
close(job->fd);
job->fd = -1;
@@ -3219,7 +3241,7 @@ ipp_print_uri(_ipp_client_t *client) /* I - Client */
unlink(filename);
httpClose(http);
- respond_ipp(client, IPP_INTERNAL_ERROR,
+ respond_ipp(client, IPP_STATUS_ERROR_INTERNAL,
"Unable to write print file: %s", strerror(error));
return;
}
@@ -3232,19 +3254,19 @@ ipp_print_uri(_ipp_client_t *client) /* I - Client */
{
int error = errno; /* Write error */
- job->state = IPP_JOB_ABORTED;
+ job->state = IPP_JSTATE_ABORTED;
job->fd = -1;
unlink(filename);
- respond_ipp(client, IPP_INTERNAL_ERROR, "Unable to write print file: %s",
- strerror(error));
+ respond_ipp(client, IPP_STATUS_ERROR_INTERNAL,
+ "Unable to write print file: %s", strerror(error));
return;
}
job->fd = -1;
job->filename = strdup(filename);
- job->state = IPP_JOB_PENDING;
+ job->state = IPP_JSTATE_PENDING;
/*
* Process the job...
@@ -3253,8 +3275,8 @@ ipp_print_uri(_ipp_client_t *client) /* I - Client */
#if 0
if (!_cupsThreadCreate((_cups_thread_func_t)process_job, job))
{
- job->state = IPP_JOB_ABORTED;
- respond_ipp(client, IPP_INTERNAL_ERROR, "Unable to process job.");
+ job->state = IPP_JSTATE_ABORTED;
+ respond_ipp(client, IPP_STATUS_ERROR_INTERNAL, "Unable to process job.");
return;
}
@@ -3266,7 +3288,7 @@ ipp_print_uri(_ipp_client_t *client) /* I - Client */
* Return the job info...
*/
- respond_ipp(client, IPP_OK, NULL);
+ respond_ipp(client, IPP_STATUS_OK, NULL);
ra = cupsArrayNew((cups_array_func_t)strcmp, NULL);
cupsArrayAdd(ra, "job-id");
@@ -3301,8 +3323,8 @@ ipp_send_document(_ipp_client_t *client)/* I - Client */
if ((job = find_job(client)) == NULL)
{
- respond_ipp(client, IPP_NOT_FOUND, "Job does not exist.");
- httpFlush(&(client->http));
+ respond_ipp(client, IPP_STATUS_ERROR_NOT_FOUND, "Job does not exist.");
+ httpFlush(client->http);
return;
}
@@ -3311,33 +3333,34 @@ ipp_send_document(_ipp_client_t *client)/* I - Client */
* in a non-pending state...
*/
- if (job->state > IPP_JOB_HELD)
+ if (job->state > IPP_JSTATE_HELD)
{
- respond_ipp(client, IPP_NOT_POSSIBLE, "Job is not in a pending state.");
- httpFlush(&(client->http));
+ respond_ipp(client, IPP_STATUS_ERROR_NOT_POSSIBLE,
+ "Job is not in a pending state.");
+ httpFlush(client->http);
return;
}
else if (job->filename || job->fd >= 0)
{
- respond_ipp(client, IPP_MULTIPLE_JOBS_NOT_SUPPORTED,
+ respond_ipp(client, IPP_STATUS_ERROR_MULTIPLE_JOBS_NOT_SUPPORTED,
"Multiple document jobs are not supported.");
- httpFlush(&(client->http));
+ httpFlush(client->http);
return;
}
if ((attr = ippFindAttribute(client->request, "last-document",
IPP_TAG_ZERO)) == NULL)
{
- respond_ipp(client, IPP_BAD_REQUEST,
+ respond_ipp(client, IPP_STATUS_ERROR_BAD_REQUEST,
"Missing required last-document attribute.");
- httpFlush(&(client->http));
+ httpFlush(client->http);
return;
}
- else if (attr->value_tag != IPP_TAG_BOOLEAN || attr->num_values != 1 ||
- !attr->values[0].boolean)
+ else if (ippGetValueTag(attr) != IPP_TAG_BOOLEAN || ippGetCount(attr) != 1 ||
+ !ippGetBoolean(attr, 0))
{
respond_unsupported(client, attr);
- httpFlush(&(client->http));
+ httpFlush(client->http);
return;
}
@@ -3347,7 +3370,7 @@ ipp_send_document(_ipp_client_t *client)/* I - Client */
if (!valid_doc_attributes(client))
{
- httpFlush(&(client->http));
+ httpFlush(client->http);
return;
}
@@ -3359,7 +3382,7 @@ ipp_send_document(_ipp_client_t *client)/* I - Client */
if ((attr = ippFindAttribute(job->attrs, "document-format",
IPP_TAG_MIMETYPE)) != NULL)
- job->format = attr->values[0].string.text;
+ job->format = ippGetString(attr, 0, NULL);
else
job->format = "application/octet-stream";
@@ -3389,27 +3412,27 @@ ipp_send_document(_ipp_client_t *client)/* I - Client */
if (job->fd < 0)
{
- job->state = IPP_JOB_ABORTED;
+ job->state = IPP_JSTATE_ABORTED;
- respond_ipp(client, IPP_INTERNAL_ERROR,
+ respond_ipp(client, IPP_STATUS_ERROR_INTERNAL,
"Unable to create print file: %s", strerror(errno));
return;
}
- while ((bytes = httpRead2(&(client->http), buffer, sizeof(buffer))) > 0)
+ while ((bytes = httpRead2(client->http, buffer, sizeof(buffer))) > 0)
{
if (write(job->fd, buffer, bytes) < bytes)
{
int error = errno; /* Write error */
- job->state = IPP_JOB_ABORTED;
+ job->state = IPP_JSTATE_ABORTED;
close(job->fd);
job->fd = -1;
unlink(filename);
- respond_ipp(client, IPP_INTERNAL_ERROR,
+ respond_ipp(client, IPP_STATUS_ERROR_INTERNAL,
"Unable to write print file: %s", strerror(error));
return;
}
@@ -3421,14 +3444,15 @@ ipp_send_document(_ipp_client_t *client)/* I - Client */
* Got an error while reading the print data, so abort this job.
*/
- job->state = IPP_JOB_ABORTED;
+ job->state = IPP_JSTATE_ABORTED;
close(job->fd);
job->fd = -1;
unlink(filename);
- respond_ipp(client, IPP_INTERNAL_ERROR, "Unable to read print file.");
+ respond_ipp(client, IPP_STATUS_ERROR_INTERNAL,
+ "Unable to read print file.");
return;
}
@@ -3436,13 +3460,13 @@ ipp_send_document(_ipp_client_t *client)/* I - Client */
{
int error = errno; /* Write error */
- job->state = IPP_JOB_ABORTED;
+ job->state = IPP_JSTATE_ABORTED;
job->fd = -1;
unlink(filename);
- respond_ipp(client, IPP_INTERNAL_ERROR, "Unable to write print file: %s",
- strerror(error));
+ respond_ipp(client, IPP_STATUS_ERROR_INTERNAL,
+ "Unable to write print file: %s", strerror(error));
return;
}
@@ -3450,7 +3474,7 @@ ipp_send_document(_ipp_client_t *client)/* I - Client */
job->fd = -1;
job->filename = strdup(filename);
- job->state = IPP_JOB_PENDING;
+ job->state = IPP_JSTATE_PENDING;
_cupsRWUnlock(&(client->printer->rwlock));
@@ -3461,8 +3485,8 @@ ipp_send_document(_ipp_client_t *client)/* I - Client */
#if 0
if (!_cupsThreadCreate((_cups_thread_func_t)process_job, job))
{
- job->state = IPP_JOB_ABORTED;
- respond_ipp(client, IPP_INTERNAL_ERROR, "Unable to process job.");
+ job->state = IPP_JSTATE_ABORTED;
+ respond_ipp(client, IPP_STATUS_ERROR_INTERNAL, "Unable to process job.");
return;
}
@@ -3474,7 +3498,7 @@ ipp_send_document(_ipp_client_t *client)/* I - Client */
* Return the job info...
*/
- respond_ipp(client, IPP_OK, NULL);
+ respond_ipp(client, IPP_STATUS_OK, NULL);
ra = cupsArrayNew((cups_array_func_t)strcmp, NULL);
cupsArrayAdd(ra, "job-id");
@@ -3531,8 +3555,8 @@ ipp_send_uri(_ipp_client_t *client) /* I - Client */
if ((job = find_job(client)) == NULL)
{
- respond_ipp(client, IPP_NOT_FOUND, "Job does not exist.");
- httpFlush(&(client->http));
+ respond_ipp(client, IPP_STATUS_ERROR_NOT_FOUND, "Job does not exist.");
+ httpFlush(client->http);
return;
}
@@ -3541,33 +3565,34 @@ ipp_send_uri(_ipp_client_t *client) /* I - Client */
* in a non-pending state...
*/
- if (job->state > IPP_JOB_HELD)
+ if (job->state > IPP_JSTATE_HELD)
{
- respond_ipp(client, IPP_NOT_POSSIBLE, "Job is not in a pending state.");
- httpFlush(&(client->http));
+ respond_ipp(client, IPP_STATUS_ERROR_NOT_POSSIBLE,
+ "Job is not in a pending state.");
+ httpFlush(client->http);
return;
}
else if (job->filename || job->fd >= 0)
{
- respond_ipp(client, IPP_MULTIPLE_JOBS_NOT_SUPPORTED,
+ respond_ipp(client, IPP_STATUS_ERROR_MULTIPLE_JOBS_NOT_SUPPORTED,
"Multiple document jobs are not supported.");
- httpFlush(&(client->http));
+ httpFlush(client->http);
return;
}
if ((attr = ippFindAttribute(client->request, "last-document",
IPP_TAG_ZERO)) == NULL)
{
- respond_ipp(client, IPP_BAD_REQUEST,
+ respond_ipp(client, IPP_STATUS_ERROR_BAD_REQUEST,
"Missing required last-document attribute.");
- httpFlush(&(client->http));
+ httpFlush(client->http);
return;
}
- else if (attr->value_tag != IPP_TAG_BOOLEAN || attr->num_values != 1 ||
- !attr->values[0].boolean)
+ else if (ippGetValueTag(attr) != IPP_TAG_BOOLEAN || ippGetCount(attr) != 1 ||
+ !ippGetBoolean(attr, 0))
{
respond_unsupported(client, attr);
- httpFlush(&(client->http));
+ httpFlush(client->http);
return;
}
@@ -3577,7 +3602,7 @@ ipp_send_uri(_ipp_client_t *client) /* I - Client */
if (!valid_doc_attributes(client))
{
- httpFlush(&(client->http));
+ httpFlush(client->http);
return;
}
@@ -3585,9 +3610,9 @@ ipp_send_uri(_ipp_client_t *client) /* I - Client */
* Do we have a file to print?
*/
- if (client->http.state == HTTP_POST_RECV)
+ if (httpGetState(client->http) == HTTP_STATE_POST_RECV)
{
- respond_ipp(client, IPP_BAD_REQUEST,
+ respond_ipp(client, IPP_STATUS_ERROR_BAD_REQUEST,
"Unexpected document data following request.");
return;
}
@@ -3599,24 +3624,25 @@ ipp_send_uri(_ipp_client_t *client) /* I - Client */
if ((uri = ippFindAttribute(client->request, "document-uri",
IPP_TAG_URI)) == NULL)
{
- respond_ipp(client, IPP_BAD_REQUEST, "Missing document-uri.");
+ respond_ipp(client, IPP_STATUS_ERROR_BAD_REQUEST, "Missing document-uri.");
return;
}
- if (uri->num_values != 1)
+ if (ippGetCount(uri) != 1)
{
- respond_ipp(client, IPP_BAD_REQUEST, "Too many document-uri values.");
+ respond_ipp(client, IPP_STATUS_ERROR_BAD_REQUEST,
+ "Too many document-uri values.");
return;
}
- uri_status = httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text,
+ uri_status = httpSeparateURI(HTTP_URI_CODING_ALL, ippGetString(uri, 0, NULL),
scheme, sizeof(scheme), userpass,
sizeof(userpass), hostname, sizeof(hostname),
&port, resource, sizeof(resource));
- if (uri_status < HTTP_URI_OK)
+ if (uri_status < HTTP_URI_STATUS_OK)
{
- respond_ipp(client, IPP_BAD_REQUEST, "Bad document-uri: %s",
- uri_status_strings[uri_status - HTTP_URI_OVERFLOW]);
+ respond_ipp(client, IPP_STATUS_ERROR_BAD_REQUEST, "Bad document-uri: %s",
+ uri_status_strings[uri_status - HTTP_URI_STATUS_OVERFLOW]);
return;
}
@@ -3626,15 +3652,15 @@ ipp_send_uri(_ipp_client_t *client) /* I - Client */
#endif /* HAVE_SSL */
strcmp(scheme, "http"))
{
- respond_ipp(client, IPP_URI_SCHEME, "URI scheme \"%s\" not supported.",
- scheme);
+ respond_ipp(client, IPP_STATUS_ERROR_URI_SCHEME,
+ "URI scheme \"%s\" not supported.", scheme);
return;
}
if (!strcmp(scheme, "file") && access(resource, R_OK))
{
- respond_ipp(client, IPP_DOCUMENT_ACCESS_ERROR, "Unable to access URI: %s",
- strerror(errno));
+ respond_ipp(client, IPP_STATUS_ERROR_DOCUMENT_ACCESS,
+ "Unable to access URI: %s", strerror(errno));
return;
}
@@ -3646,7 +3672,7 @@ ipp_send_uri(_ipp_client_t *client) /* I - Client */
if ((attr = ippFindAttribute(job->attrs, "document-format",
IPP_TAG_MIMETYPE)) != NULL)
- job->format = attr->values[0].string.text;
+ job->format = ippGetString(attr, 0, NULL);
else
job->format = "application/octet-stream";
@@ -3676,9 +3702,9 @@ ipp_send_uri(_ipp_client_t *client) /* I - Client */
if (job->fd < 0)
{
- job->state = IPP_JOB_ABORTED;
+ job->state = IPP_JSTATE_ABORTED;
- respond_ipp(client, IPP_INTERNAL_ERROR,
+ respond_ipp(client, IPP_STATUS_ERROR_INTERNAL,
"Unable to create print file: %s", strerror(errno));
return;
}
@@ -3687,8 +3713,8 @@ ipp_send_uri(_ipp_client_t *client) /* I - Client */
{
if ((infile = open(resource, O_RDONLY)) < 0)
{
- respond_ipp(client, IPP_DOCUMENT_ACCESS_ERROR, "Unable to access URI: %s",
- strerror(errno));
+ respond_ipp(client, IPP_STATUS_ERROR_DOCUMENT_ACCESS,
+ "Unable to access URI: %s", strerror(errno));
return;
}
@@ -3701,7 +3727,7 @@ ipp_send_uri(_ipp_client_t *client) /* I - Client */
{
int error = errno; /* Write error */
- job->state = IPP_JOB_ABORTED;
+ job->state = IPP_JSTATE_ABORTED;
close(job->fd);
job->fd = -1;
@@ -3709,7 +3735,7 @@ ipp_send_uri(_ipp_client_t *client) /* I - Client */
unlink(filename);
close(infile);
- respond_ipp(client, IPP_INTERNAL_ERROR,
+ respond_ipp(client, IPP_STATUS_ERROR_INTERNAL,
"Unable to write print file: %s", strerror(error));
return;
}
@@ -3722,17 +3748,18 @@ ipp_send_uri(_ipp_client_t *client) /* I - Client */
{
#ifdef HAVE_SSL
if (port == 443 || !strcmp(scheme, "https"))
- encryption = HTTP_ENCRYPT_ALWAYS;
+ encryption = HTTP_ENCRYPTION_ALWAYS;
else
#endif /* HAVE_SSL */
- encryption = HTTP_ENCRYPT_IF_REQUESTED;
+ encryption = HTTP_ENCRYPTION_IF_REQUESTED;
- if ((http = httpConnectEncrypt(hostname, port, encryption)) == NULL)
+ if ((http = httpConnect2(hostname, port, NULL, AF_UNSPEC, encryption,
+ 1, 30000, NULL)) == NULL)
{
- respond_ipp(client, IPP_DOCUMENT_ACCESS_ERROR,
+ respond_ipp(client, IPP_STATUS_ERROR_DOCUMENT_ACCESS,
"Unable to connect to %s: %s", hostname,
cupsLastErrorString());
- job->state = IPP_JOB_ABORTED;
+ job->state = IPP_JSTATE_ABORTED;
close(job->fd);
job->fd = -1;
@@ -3745,10 +3772,10 @@ ipp_send_uri(_ipp_client_t *client) /* I - Client */
httpSetField(http, HTTP_FIELD_ACCEPT_LANGUAGE, "en");
if (httpGet(http, resource))
{
- respond_ipp(client, IPP_DOCUMENT_ACCESS_ERROR, "Unable to GET URI: %s",
- strerror(errno));
+ respond_ipp(client, IPP_STATUS_ERROR_DOCUMENT_ACCESS,
+ "Unable to GET URI: %s", strerror(errno));
- job->state = IPP_JOB_ABORTED;
+ job->state = IPP_JSTATE_ABORTED;
close(job->fd);
job->fd = -1;
@@ -3758,14 +3785,14 @@ ipp_send_uri(_ipp_client_t *client) /* I - Client */
return;
}
- while ((status = httpUpdate(http)) == HTTP_CONTINUE);
+ while ((status = httpUpdate(http)) == HTTP_STATUS_CONTINUE);
- if (status != HTTP_OK)
+ if (status != HTTP_STATUS_OK)
{
- respond_ipp(client, IPP_DOCUMENT_ACCESS_ERROR, "Unable to GET URI: %s",
- httpStatus(status));
+ respond_ipp(client, IPP_STATUS_ERROR_DOCUMENT_ACCESS,
+ "Unable to GET URI: %s", httpStatus(status));
- job->state = IPP_JOB_ABORTED;
+ job->state = IPP_JSTATE_ABORTED;
close(job->fd);
job->fd = -1;
@@ -3781,7 +3808,7 @@ ipp_send_uri(_ipp_client_t *client) /* I - Client */
{
int error = errno; /* Write error */
- job->state = IPP_JOB_ABORTED;
+ job->state = IPP_JSTATE_ABORTED;
close(job->fd);
job->fd = -1;
@@ -3789,7 +3816,7 @@ ipp_send_uri(_ipp_client_t *client) /* I - Client */
unlink(filename);
httpClose(http);
- respond_ipp(client, IPP_INTERNAL_ERROR,
+ respond_ipp(client, IPP_STATUS_ERROR_INTERNAL,
"Unable to write print file: %s", strerror(error));
return;
}
@@ -3802,13 +3829,13 @@ ipp_send_uri(_ipp_client_t *client) /* I - Client */
{
int error = errno; /* Write error */
- job->state = IPP_JOB_ABORTED;
+ job->state = IPP_JSTATE_ABORTED;
job->fd = -1;
unlink(filename);
- respond_ipp(client, IPP_INTERNAL_ERROR, "Unable to write print file: %s",
- strerror(error));
+ respond_ipp(client, IPP_STATUS_ERROR_INTERNAL,
+ "Unable to write print file: %s", strerror(error));
return;
}
@@ -3816,7 +3843,7 @@ ipp_send_uri(_ipp_client_t *client) /* I - Client */
job->fd = -1;
job->filename = strdup(filename);
- job->state = IPP_JOB_PENDING;
+ job->state = IPP_JSTATE_PENDING;
_cupsRWUnlock(&(client->printer->rwlock));
@@ -3827,8 +3854,8 @@ ipp_send_uri(_ipp_client_t *client) /* I - Client */
#if 0
if (!_cupsThreadCreate((_cups_thread_func_t)process_job, job))
{
- job->state = IPP_JOB_ABORTED;
- respond_ipp(client, IPP_INTERNAL_ERROR, "Unable to process job.");
+ job->state = IPP_JSTATE_ABORTED;
+ respond_ipp(client, IPP_STATUS_ERROR_INTERNAL, "Unable to process job.");
return;
}
@@ -3840,7 +3867,7 @@ ipp_send_uri(_ipp_client_t *client) /* I - Client */
* Return the job info...
*/
- respond_ipp(client, IPP_OK, NULL);
+ respond_ipp(client, IPP_STATUS_OK, NULL);
ra = cupsArrayNew((cups_array_func_t)strcmp, NULL);
cupsArrayAdd(ra, "job-id");
@@ -3861,7 +3888,7 @@ static void
ipp_validate_job(_ipp_client_t *client) /* I - Client */
{
if (valid_job_attributes(client))
- respond_ipp(client, IPP_OK, NULL);
+ respond_ipp(client, IPP_STATUS_OK, NULL);
}
@@ -3876,7 +3903,7 @@ process_client(_ipp_client_t *client) /* I - Client */
* Loop until we are out of requests or timeout (30 seconds)...
*/
- while (httpWait(&(client->http), 30000))
+ while (httpWait(client->http, 30000))
if (!process_http(client))
break;
@@ -3897,175 +3924,126 @@ process_client(_ipp_client_t *client) /* I - Client */
int /* O - 1 on success, 0 on failure */
process_http(_ipp_client_t *client) /* I - Client connection */
{
- char line[4096], /* Line from client... */
- operation[64], /* Operation code from socket */
- uri[1024], /* URI */
- version[64], /* HTTP version number string */
- *ptr; /* Pointer into strings */
- int major, minor; /* HTTP version numbers */
- http_status_t status; /* Transfer status */
- ipp_state_t state; /* State of IPP transfer */
-
-
- /*
- * Abort if we have an error on the connection...
- */
+ char uri[1024]; /* URI */
+ http_state_t http_state; /* HTTP state */
+ http_status_t http_status; /* HTTP status */
+ ipp_state_t ipp_state; /* State of IPP transfer */
+ char scheme[32], /* Method/scheme */
+ userpass[128], /* Username:password */
+ hostname[HTTP_MAX_HOST];
+ /* Hostname */
+ int port; /* Port number */
+ const char *encoding; /* Content-Encoding value */
+ static const char * const http_states[] =
+ { /* Strings for logging HTTP method */
+ "WAITING",
+ "OPTIONS",
+ "GET",
+ "GET_SEND",
+ "HEAD",
+ "POST",
+ "POST_RECV",
+ "POST_SEND",
+ "PUT",
+ "PUT_RECV",
+ "DELETE",
+ "TRACE",
+ "CONNECT",
+ "STATUS",
+ "UNKNOWN_METHOD",
+ "UNKNOWN_VERSION"
+ };
- if (client->http.error)
- return (0);
/*
* Clear state variables...
*/
- httpClearFields(&(client->http));
ippDelete(client->request);
ippDelete(client->response);
- client->http.activity = time(NULL);
- client->http.version = HTTP_1_1;
- client->http.keep_alive = HTTP_KEEPALIVE_OFF;
- client->http.data_encoding = HTTP_ENCODE_LENGTH;
- client->http.data_remaining = 0;
- client->request = NULL;
- client->response = NULL;
- client->operation = HTTP_WAITING;
+ client->request = NULL;
+ client->response = NULL;
+ client->operation = HTTP_STATE_WAITING;
/*
* Read a request from the connection...
*/
- while ((ptr = httpGets(line, sizeof(line) - 1, &(client->http))) != NULL)
- if (*ptr)
- break;
-
- if (!ptr)
- return (0);
+ while ((http_state = httpReadRequest(client->http, uri,
+ sizeof(uri))) == HTTP_STATE_WAITING)
+ usleep(1);
/*
* Parse the request line...
*/
- fprintf(stderr, "%s %s\n", client->http.hostname, line);
-
- switch (sscanf(line, "%63s%1023s%63s", operation, uri, version))
+ if (http_state == HTTP_STATE_ERROR)
{
- case 1 :
- fprintf(stderr, "%s Bad request line.\n", client->http.hostname);
- respond_http(client, HTTP_BAD_REQUEST, NULL, 0);
- return (0);
-
- case 2 :
- client->http.version = HTTP_0_9;
- break;
-
- case 3 :
- if (sscanf(version, "HTTP/%d.%d", &major, &minor) != 2)
- {
- fprintf(stderr, "%s Bad HTTP version.\n", client->http.hostname);
- respond_http(client, HTTP_BAD_REQUEST, NULL, 0);
- return (0);
- }
+ if (httpError(client->http) == EPIPE)
+ fprintf(stderr, "%s Client closed connection.\n", client->hostname);
+ else
+ fprintf(stderr, "%s Bad request line.\n", client->hostname);
- if (major < 2)
- {
- client->http.version = (http_version_t)(major * 100 + minor);
- if (client->http.version == HTTP_1_1)
- client->http.keep_alive = HTTP_KEEPALIVE_ON;
- else
- client->http.keep_alive = HTTP_KEEPALIVE_OFF;
- }
- else
- {
- respond_http(client, HTTP_NOT_SUPPORTED, NULL, 0);
- return (0);
- }
- break;
+ return (0);
}
-
- /*
- * Handle full URLs in the request line...
- */
-
- if (!strncmp(client->uri, "http:", 5) || !strncmp(client->uri, "ipp:", 4))
+ else if (http_state == HTTP_STATE_UNKNOWN_METHOD)
{
- char scheme[32], /* Method/scheme */
- userpass[128], /* Username:password */
- hostname[HTTP_MAX_HOST];/* Hostname */
- int port; /* Port number */
-
- /*
- * Separate the URI into its components...
- */
-
- if (httpSeparateURI(HTTP_URI_CODING_MOST, uri, scheme, sizeof(scheme),
- userpass, sizeof(userpass),
- hostname, sizeof(hostname), &port,
- client->uri, sizeof(client->uri)) < HTTP_URI_OK)
- {
- fprintf(stderr, "%s Bad URI \"%s\".\n", client->http.hostname, uri);
- respond_http(client, HTTP_BAD_REQUEST, NULL, 0);
- return (0);
- }
+ fprintf(stderr, "%s Bad/unknown operation.\n", client->hostname);
+ respond_http(client, HTTP_STATUS_BAD_REQUEST, NULL, NULL, 0);
+ return (0);
}
- else
+ else if (http_state == HTTP_STATE_UNKNOWN_VERSION)
{
- /*
- * Decode URI
- */
-
- if (!_httpDecodeURI(client->uri, uri, sizeof(client->uri)))
- {
- fprintf(stderr, "%s Bad URI \"%s\".\n", client->http.hostname, uri);
- respond_http(client, HTTP_BAD_REQUEST, NULL, 0);
- return (0);
- }
+ fprintf(stderr, "%s Bad HTTP version.\n", client->hostname);
+ respond_http(client, HTTP_STATUS_BAD_REQUEST, NULL, NULL, 0);
+ return (0);
}
+ fprintf(stderr, "%s %s %s\n", client->hostname, http_states[http_state],
+ uri);
+
/*
- * Process the request...
+ * Separate the URI into its components...
*/
- if (!strcmp(operation, "GET"))
- client->http.state = HTTP_GET;
- else if (!strcmp(operation, "POST"))
- client->http.state = HTTP_POST;
- else if (!strcmp(operation, "OPTIONS"))
- client->http.state = HTTP_OPTIONS;
- else if (!strcmp(operation, "HEAD"))
- client->http.state = HTTP_HEAD;
- else
+ if (httpSeparateURI(HTTP_URI_CODING_MOST, uri, scheme, sizeof(scheme),
+ userpass, sizeof(userpass),
+ hostname, sizeof(hostname), &port,
+ client->uri, sizeof(client->uri)) < HTTP_URI_STATUS_OK)
{
- fprintf(stderr, "%s Bad operation \"%s\".\n", client->http.hostname,
- operation);
- respond_http(client, HTTP_BAD_REQUEST, NULL, 0);
+ fprintf(stderr, "%s Bad URI \"%s\".\n", client->hostname, uri);
+ respond_http(client, HTTP_STATUS_BAD_REQUEST, NULL, NULL, 0);
return (0);
}
- client->start = time(NULL);
- client->operation = client->http.state;
- client->http.status = HTTP_OK;
+ /*
+ * Process the request...
+ */
+
+ client->start = time(NULL);
+ client->operation = httpGetState(client->http);
/*
* Parse incoming parameters until the status changes...
*/
- while ((status = httpUpdate(&(client->http))) == HTTP_CONTINUE);
+ while ((http_status = httpUpdate(client->http)) == HTTP_STATUS_CONTINUE);
- if (status != HTTP_OK)
+ if (http_status != HTTP_STATUS_OK)
{
- respond_http(client, HTTP_BAD_REQUEST, NULL, 0);
+ respond_http(client, HTTP_STATUS_BAD_REQUEST, NULL, NULL, 0);
return (0);
}
- if (!client->http.fields[HTTP_FIELD_HOST][0] &&
- client->http.version >= HTTP_1_1)
+ if (!httpGetField(client->http, HTTP_FIELD_HOST)[0] &&
+ httpGetVersion(client->http) >= HTTP_VERSION_1_1)
{
/*
* HTTP/1.1 and higher require the "Host:" field...
*/
- respond_http(client, HTTP_BAD_REQUEST, NULL, 0);
+ respond_http(client, HTTP_STATUS_BAD_REQUEST, NULL, NULL, 0);
return (0);
}
@@ -4073,9 +4051,10 @@ process_http(_ipp_client_t *client) /* I - Client connection */
* Handle HTTP Upgrade...
*/
- if (!_cups_strcasecmp(client->http.fields[HTTP_FIELD_CONNECTION], "Upgrade"))
+ if (!_cups_strcasecmp(httpGetField(client->http, HTTP_FIELD_CONNECTION),
+ "Upgrade"))
{
- if (!respond_http(client, HTTP_NOT_IMPLEMENTED, NULL, 0))
+ if (!respond_http(client, HTTP_STATUS_NOT_IMPLEMENTED, NULL, NULL, 0))
return (0);
}
@@ -4083,16 +4062,17 @@ process_http(_ipp_client_t *client) /* I - Client connection */
* Handle HTTP Expect...
*/
- if (client->http.expect &&
- (client->operation == HTTP_POST || client->operation == HTTP_PUT))
+ if (httpGetExpect(client->http) &&
+ (client->operation == HTTP_STATE_POST ||
+ client->operation == HTTP_STATE_PUT))
{
- if (client->http.expect == HTTP_CONTINUE)
+ if (httpGetExpect(client->http) == HTTP_STATUS_CONTINUE)
{
/*
* Send 100-continue header...
*/
- if (!respond_http(client, HTTP_CONTINUE, NULL, 0))
+ if (!respond_http(client, HTTP_STATUS_CONTINUE, NULL, NULL, 0))
return (0);
}
else
@@ -4101,13 +4081,8 @@ process_http(_ipp_client_t *client) /* I - Client connection */
* Send 417-expectation-failed header...
*/
- if (!respond_http(client, HTTP_EXPECTATION_FAILED, NULL, 0))
+ if (!respond_http(client, HTTP_STATUS_EXPECTATION_FAILED, NULL, NULL, 0))
return (0);
-
- httpPrintf(&(client->http), "Content-Length: 0\r\n");
- httpPrintf(&(client->http), "\r\n");
- httpFlushWrite(&(client->http));
- client->http.data_encoding = HTTP_ENCODE_LENGTH;
}
}
@@ -4115,25 +4090,27 @@ process_http(_ipp_client_t *client) /* I - Client connection */
* Handle new transfers...
*/
+ encoding = httpGetContentEncoding(client->http);
+
switch (client->operation)
{
- case HTTP_OPTIONS :
+ case HTTP_STATE_OPTIONS :
/*
* Do HEAD/OPTIONS command...
*/
- return (respond_http(client, HTTP_OK, NULL, 0));
+ return (respond_http(client, HTTP_STATUS_OK, NULL, NULL, 0));
- case HTTP_HEAD :
+ case HTTP_STATE_HEAD :
if (!strcmp(client->uri, "/icon.png"))
- return (respond_http(client, HTTP_OK, "image/png", 0));
+ return (respond_http(client, HTTP_STATUS_OK, NULL, "image/png", 0));
else if (!strcmp(client->uri, "/"))
- return (respond_http(client, HTTP_OK, "text/html", 0));
+ return (respond_http(client, HTTP_STATUS_OK, NULL, "text/html", 0));
else
- return (respond_http(client, HTTP_NOT_FOUND, NULL, 0));
+ return (respond_http(client, HTTP_STATUS_NOT_FOUND, NULL, NULL, 0));
break;
- case HTTP_GET :
+ case HTTP_STATE_GET :
if (!strcmp(client->uri, "/icon.png"))
{
/*
@@ -4145,24 +4122,27 @@ process_http(_ipp_client_t *client) /* I - Client connection */
char buffer[4096]; /* Copy buffer */
ssize_t bytes; /* Bytes */
+ fprintf(stderr, "Icon file is \"%s\".\n", client->printer->icon);
+
if (!stat(client->printer->icon, &fileinfo) &&
(fd = open(client->printer->icon, O_RDONLY)) >= 0)
{
- if (!respond_http(client, HTTP_OK, "image/png", fileinfo.st_size))
+ if (!respond_http(client, HTTP_STATUS_OK, NULL, "image/png",
+ fileinfo.st_size))
{
close(fd);
return (0);
}
while ((bytes = read(fd, buffer, sizeof(buffer))) > 0)
- httpWrite2(&(client->http), buffer, bytes);
+ httpWrite2(client->http, buffer, bytes);
- httpFlushWrite(&(client->http));
+ httpFlushWrite(client->http);
close(fd);
}
else
- return (respond_http(client, HTTP_NOT_FOUND, NULL, 0));
+ return (respond_http(client, HTTP_STATUS_NOT_FOUND, NULL, NULL, 0));
}
else if (!strcmp(client->uri, "/"))
{
@@ -4170,7 +4150,7 @@ process_http(_ipp_client_t *client) /* I - Client connection */
* Show web status page...
*/
- if (!respond_http(client, HTTP_OK, "text/html", 0))
+ if (!respond_http(client, HTTP_STATUS_OK, encoding, "text/html", 0))
return (0);
html_printf(client,
@@ -4184,43 +4164,32 @@ process_http(_ipp_client_t *client) /* I - Client connection */
"</head>\n"
"<body>\n"
"</body>\n"
- "<h1>%s</h1>\n"
+ "<h1><img align=\"right\" src=\"/icon.png\">%s</h1>\n"
"<p>%s, %d job(s).</p>\n"
"</body>\n"
"</html>\n",
client->printer->name, client->printer->name,
- client->printer->state == IPP_PRINTER_IDLE ? "Idle" :
- client->printer->state == IPP_PRINTER_PROCESSING ?
+ client->printer->state == IPP_PSTATE_IDLE ? "Idle" :
+ client->printer->state == IPP_PSTATE_PROCESSING ?
"Printing" : "Stopped",
cupsArrayCount(client->printer->jobs));
- httpWrite2(&(client->http), "", 0);
+ httpWrite2(client->http, "", 0);
return (1);
}
else
- return (respond_http(client, HTTP_NOT_FOUND, NULL, 0));
+ return (respond_http(client, HTTP_STATUS_NOT_FOUND, NULL, NULL, 0));
break;
- case HTTP_POST :
- if (client->http.data_remaining < 0 ||
- (!client->http.fields[HTTP_FIELD_CONTENT_LENGTH][0] &&
- client->http.data_encoding == HTTP_ENCODE_LENGTH))
- {
- /*
- * Negative content lengths are invalid...
- */
-
- return (respond_http(client, HTTP_BAD_REQUEST, NULL, 0));
- }
-
- if (strcmp(client->http.fields[HTTP_FIELD_CONTENT_TYPE],
+ case HTTP_STATE_POST :
+ if (strcmp(httpGetField(client->http, HTTP_FIELD_CONTENT_TYPE),
"application/ipp"))
{
/*
* Not an IPP request...
*/
- return (respond_http(client, HTTP_BAD_REQUEST, NULL, 0));
+ return (respond_http(client, HTTP_STATUS_BAD_REQUEST, NULL, NULL, 0));
}
/*
@@ -4229,14 +4198,17 @@ process_http(_ipp_client_t *client) /* I - Client connection */
client->request = ippNew();
- while ((state = ippRead(&(client->http), client->request)) != IPP_DATA)
- if (state == IPP_ERROR)
+ while ((ipp_state = ippRead(client->http,
+ client->request)) != IPP_STATE_DATA)
+ {
+ if (ipp_state == IPP_STATE_ERROR)
{
- fprintf(stderr, "%s IPP read error (%s).\n", client->http.hostname,
+ fprintf(stderr, "%s IPP read error (%s).\n", client->hostname,
cupsLastErrorString());
- respond_http(client, HTTP_BAD_REQUEST, NULL, 0);
+ respond_http(client, HTTP_STATUS_BAD_REQUEST, NULL, NULL, 0);
return (0);
}
+ }
/*
* Now that we have the IPP request, process the request...
@@ -4264,6 +4236,8 @@ process_ipp(_ipp_client_t *client) /* I - Client */
ipp_attribute_t *charset; /* Character set attribute */
ipp_attribute_t *language; /* Language attribute */
ipp_attribute_t *uri; /* Printer URI attribute */
+ int major, minor; /* Version number */
+ const char *name; /* Name of attribute */
debug_attributes("Request", client->request, 1);
@@ -4272,37 +4246,30 @@ process_ipp(_ipp_client_t *client) /* I - Client */
* First build an empty response message for this request...
*/
- client->operation_id = client->request->request.op.operation_id;
- client->response = ippNew();
-
- client->response->request.status.version[0] =
- client->request->request.op.version[0];
- client->response->request.status.version[1] =
- client->request->request.op.version[1];
- client->response->request.status.request_id =
- client->request->request.op.request_id;
+ client->operation_id = ippGetOperation(client->request);
+ client->response = ippNewResponse(client->request);
/*
* Then validate the request header and required attributes...
*/
- if (client->request->request.any.version[0] < 1 ||
- client->request->request.any.version[0] > 2)
+ major = ippGetVersion(client->request, &minor);
+
+ if (major < 1 || major > 2)
{
/*
* Return an error, since we only support IPP 1.x and 2.x.
*/
- respond_ipp(client, IPP_VERSION_NOT_SUPPORTED,
- "Bad request version number %d.%d.",
- client->request->request.any.version[0],
- client->request->request.any.version[1]);
+ respond_ipp(client, IPP_STATUS_ERROR_VERSION_NOT_SUPPORTED,
+ "Bad request version number %d.%d.", major, minor);
}
- else if (client->request->request.any.request_id <= 0)
- respond_ipp(client, IPP_BAD_REQUEST, "Bad request-id %d.",
- client->request->request.any.request_id);
- else if (!client->request->attrs)
- respond_ipp(client, IPP_BAD_REQUEST, "No attributes in request.");
+ else if (ippGetRequestId(client->request) <= 0)
+ respond_ipp(client, IPP_STATUS_ERROR_BAD_REQUEST, "Bad request-id %d.",
+ ippGetRequestId(client->request));
+ else if (!ippFirstAttribute(client->request))
+ respond_ipp(client, IPP_STATUS_ERROR_BAD_REQUEST,
+ "No attributes in request.");
else
{
/*
@@ -4310,22 +4277,25 @@ process_ipp(_ipp_client_t *client) /* I - Client */
* don't repeat groups...
*/
- for (attr = client->request->attrs, group = attr->group_tag;
+ for (attr = ippFirstAttribute(client->request),
+ group = ippGetGroupTag(attr);
attr;
- attr = attr->next)
- if (attr->group_tag < group && attr->group_tag != IPP_TAG_ZERO)
+ attr = ippNextAttribute(client->request))
+ {
+ if (ippGetGroupTag(attr) < group && ippGetGroupTag(attr) != IPP_TAG_ZERO)
{
/*
* Out of order; return an error...
*/
- respond_ipp(client, IPP_BAD_REQUEST,
- "Attribute groups are out of order (%x < %x).",
- attr->group_tag, group);
+ respond_ipp(client, IPP_STATUS_ERROR_BAD_REQUEST,
+ "Attribute groups are out of order (%x < %x).",
+ ippGetGroupTag(attr), group);
break;
}
else
- group = attr->group_tag;
+ group = ippGetGroupTag(attr);
+ }
if (!attr)
{
@@ -4337,20 +4307,19 @@ process_ipp(_ipp_client_t *client) /* I - Client */
* printer-uri/job-uri
*/
- attr = client->request->attrs;
- if (attr && attr->name &&
- !strcmp(attr->name, "attributes-charset") &&
- (attr->value_tag & IPP_TAG_MASK) == IPP_TAG_CHARSET)
+ attr = ippFirstAttribute(client->request);
+ name = ippGetName(attr);
+ if (attr && name && !strcmp(name, "attributes-charset") &&
+ ippGetValueTag(attr) == IPP_TAG_CHARSET)
charset = attr;
else
charset = NULL;
- if (attr)
- attr = attr->next;
+ attr = ippNextAttribute(client->request);
+ name = ippGetName(attr);
- if (attr && attr->name &&
- !strcmp(attr->name, "attributes-natural-language") &&
- (attr->value_tag & IPP_TAG_MASK) == IPP_TAG_LANGUAGE)
+ if (attr && name && !strcmp(name, "attributes-natural-language") &&
+ ippGetValueTag(attr) == IPP_TAG_LANGUAGE)
language = attr;
else
language = NULL;
@@ -4364,25 +4333,17 @@ process_ipp(_ipp_client_t *client) /* I - Client */
else
uri = NULL;
- ippAddString(client->response, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
- "attributes-charset", NULL,
- charset ? charset->values[0].string.text : "utf-8");
-
- ippAddString(client->response, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
- "attributes-natural-language", NULL,
- language ? language->values[0].string.text : "en");
-
if (charset &&
- _cups_strcasecmp(charset->values[0].string.text, "us-ascii") &&
- _cups_strcasecmp(charset->values[0].string.text, "utf-8"))
+ _cups_strcasecmp(ippGetString(charset, 0, NULL), "us-ascii") &&
+ _cups_strcasecmp(ippGetString(charset, 0, NULL), "utf-8"))
{
/*
* Bad character set...
*/
- respond_ipp(client, IPP_BAD_REQUEST,
+ respond_ipp(client, IPP_STATUS_ERROR_BAD_REQUEST,
"Unsupported character set \"%s\".",
- charset->values[0].string.text);
+ ippGetString(charset, 0, NULL));
}
else if (!charset || !language || !uri)
{
@@ -4392,14 +4353,15 @@ process_ipp(_ipp_client_t *client) /* I - Client */
* for all operations.
*/
- respond_ipp(client, IPP_BAD_REQUEST, "Missing required attributes.");
+ respond_ipp(client, IPP_STATUS_ERROR_BAD_REQUEST,
+ "Missing required attributes.");
}
- else if (strcmp(uri->values[0].string.text, client->printer->uri) &&
- strncmp(uri->values[0].string.text, client->printer->uri,
+ else if (strcmp(ippGetString(uri, 0, NULL), client->printer->uri) &&
+ strncmp(ippGetString(uri, 0, NULL), client->printer->uri,
client->printer->urilen))
{
- respond_ipp(client, IPP_NOT_FOUND, "%s %s not found.", uri->name,
- uri->values[0].string.text);
+ respond_ipp(client, IPP_STATUS_ERROR_NOT_FOUND, "%s %s not found.",
+ ippGetName(uri), ippGetString(uri, 0, NULL));
}
else
{
@@ -4407,60 +4369,62 @@ process_ipp(_ipp_client_t *client) /* I - Client */
* Try processing the operation...
*/
- if (client->http.expect == HTTP_CONTINUE)
+#if 0 /* Already doing this in process_http()... */
+ if (httpGetExpect(client->http) == HTTP_STATUS_CONTINUE)
{
/*
* Send 100-continue header...
*/
- if (!respond_http(client, HTTP_CONTINUE, NULL, 0))
+ if (!respond_http(client, HTTP_STATUS_CONTINUE, NULL, NULL, 0))
return (0);
}
+#endif /* 0 */
- switch (client->request->request.op.operation_id)
+ switch (ippGetOperation(client->request))
{
- case IPP_PRINT_JOB :
+ case IPP_OP_PRINT_JOB :
ipp_print_job(client);
break;
- case IPP_PRINT_URI :
+ case IPP_OP_PRINT_URI :
ipp_print_uri(client);
break;
- case IPP_VALIDATE_JOB :
+ case IPP_OP_VALIDATE_JOB :
ipp_validate_job(client);
break;
- case IPP_CREATE_JOB :
+ case IPP_OP_CREATE_JOB :
ipp_create_job(client);
break;
- case IPP_SEND_DOCUMENT :
+ case IPP_OP_SEND_DOCUMENT :
ipp_send_document(client);
break;
- case IPP_SEND_URI :
+ case IPP_OP_SEND_URI :
ipp_send_uri(client);
break;
- case IPP_CANCEL_JOB :
+ case IPP_OP_CANCEL_JOB :
ipp_cancel_job(client);
break;
- case IPP_GET_JOB_ATTRIBUTES :
+ case IPP_OP_GET_JOB_ATTRIBUTES :
ipp_get_job_attributes(client);
break;
- case IPP_GET_JOBS :
+ case IPP_OP_GET_JOBS :
ipp_get_jobs(client);
break;
- case IPP_GET_PRINTER_ATTRIBUTES :
+ case IPP_OP_GET_PRINTER_ATTRIBUTES :
ipp_get_printer_attributes(client);
break;
default :
- respond_ipp(client, IPP_OPERATION_NOT_SUPPORTED,
+ respond_ipp(client, IPP_STATUS_ERROR_OPERATION_NOT_SUPPORTED,
"Operation not supported.");
break;
}
@@ -4472,10 +4436,10 @@ process_ipp(_ipp_client_t *client) /* I - Client */
* Send the HTTP header and return...
*/
- if (client->http.state != HTTP_POST_SEND)
- httpFlush(&(client->http)); /* Flush trailing (junk) data */
+ if (httpGetState(client->http) != HTTP_STATE_POST_SEND)
+ httpFlush(client->http); /* Flush trailing (junk) data */
- return (respond_http(client, HTTP_OK, "application/ipp",
+ return (respond_http(client, HTTP_STATUS_OK, NULL, "application/ipp",
ippLength(client->response)));
}
@@ -4487,18 +4451,18 @@ process_ipp(_ipp_client_t *client) /* I - Client */
static void * /* O - Thread exit status */
process_job(_ipp_job_t *job) /* I - Job */
{
- job->state = IPP_JOB_PROCESSING;
- job->printer->state = IPP_PRINTER_PROCESSING;
+ job->state = IPP_JSTATE_PROCESSING;
+ job->printer->state = IPP_PSTATE_PROCESSING;
sleep(5);
if (job->cancel)
- job->state = IPP_JOB_CANCELED;
+ job->state = IPP_JSTATE_CANCELED;
else
- job->state = IPP_JOB_COMPLETED;
+ job->state = IPP_JSTATE_COMPLETED;
job->completed = time(NULL);
- job->printer->state = IPP_PRINTER_IDLE;
+ job->printer->state = IPP_PSTATE_IDLE;
job->printer->active_job = NULL;
return (NULL);
@@ -4520,11 +4484,12 @@ register_printer(
const char *adminurl, /* I - Web interface URL */
int color, /* I - 1 = color, 0 = monochrome */
int duplex, /* I - 1 = duplex, 0 = simplex */
- const char *regtype) /* I - Service type */
+ const char *subtype) /* I - Service subtype */
{
DNSServiceErrorType error; /* Error from Bonjour */
char make_model[256],/* Make and model together */
- product[256]; /* Product string */
+ product[256], /* Product string */
+ regtype[256]; /* Bonjour service type */
/*
@@ -4535,16 +4500,14 @@ register_printer(
snprintf(product, sizeof(product), "(%s)", model);
TXTRecordCreate(&(printer->ipp_txt), 1024, NULL);
- TXTRecordSetValue(&(printer->ipp_txt), "txtvers", 1, "1");
- TXTRecordSetValue(&(printer->ipp_txt), "qtotal", 1, "1");
TXTRecordSetValue(&(printer->ipp_txt), "rp", 3, "ipp");
TXTRecordSetValue(&(printer->ipp_txt), "ty", (uint8_t)strlen(make_model),
make_model);
TXTRecordSetValue(&(printer->ipp_txt), "adminurl", (uint8_t)strlen(adminurl),
adminurl);
- TXTRecordSetValue(&(printer->ipp_txt), "note", (uint8_t)strlen(location),
- location);
- TXTRecordSetValue(&(printer->ipp_txt), "priority", 1, "0");
+ if (*location)
+ TXTRecordSetValue(&(printer->ipp_txt), "note", (uint8_t)strlen(location),
+ location);
TXTRecordSetValue(&(printer->ipp_txt), "product", (uint8_t)strlen(product),
product);
TXTRecordSetValue(&(printer->ipp_txt), "pdl", (uint8_t)strlen(formats),
@@ -4555,7 +4518,6 @@ register_printer(
make);
TXTRecordSetValue(&(printer->ipp_txt), "usb_MDL", (uint8_t)strlen(model),
model);
- TXTRecordSetValue(&(printer->ipp_txt), "air", 4, "none");
/*
* Create a shared service reference for Bonjour...
@@ -4596,6 +4558,11 @@ register_printer(
printer->ipp_ref = printer->common_ref;
+ if (subtype && *subtype)
+ snprintf(regtype, sizeof(regtype), "_ipp._tcp,%s", subtype);
+ else
+ strlcpy(regtype, "_ipp._tcp", sizeof(regtype));
+
if ((error = DNSServiceRegister(&(printer->ipp_ref),
kDNSServiceFlagsShareConnection,
0 /* interfaceIndex */, printer->dnssd_name,
@@ -4611,6 +4578,35 @@ register_printer(
return (0);
}
+# ifdef HAVE_SSL
+ /*
+ * Then register the _ipps._tcp (IPP) service type with the real port number to
+ * advertise our IPP printer...
+ */
+
+ printer->ipps_ref = printer->common_ref;
+
+ if (subtype && *subtype)
+ snprintf(regtype, sizeof(regtype), "_ipps._tcp,%s", subtype);
+ else
+ strlcpy(regtype, "_ipps._tcp", sizeof(regtype));
+
+ if ((error = DNSServiceRegister(&(printer->ipps_ref),
+ kDNSServiceFlagsShareConnection,
+ 0 /* interfaceIndex */, printer->dnssd_name,
+ regtype, NULL /* domain */,
+ NULL /* host */, htons(printer->port),
+ TXTRecordGetLength(&(printer->ipp_txt)),
+ TXTRecordGetBytesPtr(&(printer->ipp_txt)),
+ (DNSServiceRegisterReply)dnssd_callback,
+ printer)) != kDNSServiceErr_NoError)
+ {
+ fprintf(stderr, "Unable to register \"%s.%s\": %d\n",
+ printer->dnssd_name, regtype, error);
+ return (0);
+ }
+# endif /* HAVE_SSL */
+
/*
* Similarly, register the _http._tcp,_printer (HTTP) service type with the
* real port number to advertise our IPP printer...
@@ -4642,32 +4638,32 @@ register_printer(
*/
int /* O - 1 on success, 0 on failure */
-respond_http(_ipp_client_t *client, /* I - Client */
- http_status_t code, /* I - HTTP status of response */
- const char *type, /* I - MIME type of response */
- size_t length) /* I - Length of response */
+respond_http(
+ _ipp_client_t *client, /* I - Client */
+ http_status_t code, /* I - HTTP status of response */
+ const char *content_encoding, /* I - Content-Encoding of response */
+ const char *type, /* I - MIME media type of response */
+ size_t length) /* I - Length of response */
{
char message[1024]; /* Text message */
- fprintf(stderr, "%s %s\n", client->http.hostname, httpStatus(code));
+ fprintf(stderr, "%s %s\n", client->hostname, httpStatus(code));
- if (code == HTTP_CONTINUE)
+ if (code == HTTP_STATUS_CONTINUE)
{
/*
* 100-continue doesn't send any headers...
*/
- return (httpPrintf(&(client->http), "HTTP/%d.%d 100 Continue\r\n\r\n",
- client->http.version / 100,
- client->http.version % 100) > 0);
+ return (httpWriteResponse(client->http, HTTP_STATUS_CONTINUE) == 0);
}
/*
* Format an error message...
*/
- if (!type && !length && code != HTTP_OK)
+ if (!type && !length && code != HTTP_STATUS_OK)
{
snprintf(message, sizeof(message), "%d - %s\n", code, httpStatus(code));
@@ -4678,60 +4674,30 @@ respond_http(_ipp_client_t *client, /* I - Client */
message[0] = '\0';
/*
- * Send the HTTP status header...
- */
-
- httpFlushWrite(&(client->http));
-
- client->http.data_encoding = HTTP_ENCODE_FIELDS;
-
- if (httpPrintf(&(client->http), "HTTP/%d.%d %d %s\r\n", client->http.version / 100,
- client->http.version % 100, code, httpStatus(code)) < 0)
- return (0);
-
- /*
- * Follow the header with the response fields...
+ * Send the HTTP response header...
*/
- if (httpPrintf(&(client->http), "Date: %s\r\n", httpGetDateString(time(NULL))) < 0)
- return (0);
+ httpClearFields(client->http);
- if (client->http.keep_alive && client->http.version >= HTTP_1_0)
- {
- if (httpPrintf(&(client->http),
- "Connection: Keep-Alive\r\n"
- "Keep-Alive: timeout=10\r\n") < 0)
- return (0);
- }
-
- if (code == HTTP_METHOD_NOT_ALLOWED || client->operation == HTTP_OPTIONS)
- {
- if (httpPrintf(&(client->http), "Allow: GET, HEAD, OPTIONS, POST\r\n") < 0)
- return (0);
- }
+ if (code == HTTP_STATUS_METHOD_NOT_ALLOWED ||
+ client->operation == HTTP_STATE_OPTIONS)
+ httpSetField(client->http, HTTP_FIELD_ALLOW, "GET, HEAD, OPTIONS, POST");
if (type)
{
if (!strcmp(type, "text/html"))
- {
- if (httpPrintf(&(client->http),
- "Content-Type: text/html; charset=utf-8\r\n") < 0)
- return (0);
- }
- else if (httpPrintf(&(client->http), "Content-Type: %s\r\n", type) < 0)
- return (0);
- }
+ httpSetField(client->http, HTTP_FIELD_CONTENT_TYPE,
+ "text/html; charset=utf-8");
+ else
+ httpSetField(client->http, HTTP_FIELD_CONTENT_TYPE, type);
- if (length == 0 && !message[0])
- {
- if (httpPrintf(&(client->http), "Transfer-Encoding: chunked\r\n\r\n") < 0)
- return (0);
+ if (content_encoding)
+ httpSetField(client->http, HTTP_FIELD_CONTENT_ENCODING, content_encoding);
}
- else if (httpPrintf(&(client->http), "Content-Length: " CUPS_LLFMT "\r\n\r\n",
- CUPS_LLCAST length) < 0)
- return (0);
- if (httpFlushWrite(&(client->http)) < 0)
+ httpSetLength(client->http, length);
+
+ if (httpWriteResponse(client->http, code) < 0)
return (0);
/*
@@ -4744,7 +4710,10 @@ respond_http(_ipp_client_t *client, /* I - Client */
* Send a plain text message.
*/
- if (httpPrintf(&(client->http), "%s", message) < 0)
+ if (httpPrintf(client->http, "%s", message) < 0)
+ return (0);
+
+ if (httpWrite2(client->http, "", 0) < 0)
return (0);
}
else if (client->response)
@@ -4755,21 +4724,13 @@ respond_http(_ipp_client_t *client, /* I - Client */
debug_attributes("Response", client->response, 2);
- client->http.data_encoding = HTTP_ENCODE_LENGTH;
- client->http.data_remaining = (off_t)ippLength(client->response);
- client->response->state = IPP_IDLE;
+ ippSetState(client->response, IPP_STATE_IDLE);
- if (ippWrite(&(client->http), client->response) != IPP_DATA)
+ if (ippWrite(client->http, client->response) != IPP_STATE_DATA)
return (0);
}
- else
- client->http.data_encoding = HTTP_ENCODE_CHUNKED;
-
- /*
- * Flush the data and return...
- */
- return (httpFlushWrite(&(client->http)) >= 0);
+ return (1);
}
@@ -4783,36 +4744,35 @@ respond_ipp(_ipp_client_t *client, /* I - Client */
const char *message, /* I - printf-style status-message */
...) /* I - Additional args as needed */
{
- va_list ap; /* Pointer to additional args */
- char formatted[1024]; /* Formatted errror message */
+ const char *formatted = NULL; /* Formatted message */
- client->response->request.status.status_code = status;
-
- if (!client->response->attrs)
- {
- ippAddString(client->response, IPP_TAG_OPERATION,
- IPP_TAG_CHARSET | IPP_TAG_COPY, "attributes-charset", NULL,
- "utf-8");
- ippAddString(client->response, IPP_TAG_OPERATION,
- IPP_TAG_LANGUAGE | IPP_TAG_COPY, "attributes-natural-language",
- NULL, "en-us");
- }
+ ippSetStatusCode(client->response, status);
if (message)
{
+ va_list ap; /* Pointer to additional args */
+ ipp_attribute_t *attr; /* New status-message attribute */
+
va_start(ap, message);
- vsnprintf(formatted, sizeof(formatted), message, ap);
+ if ((attr = ippFindAttribute(client->response, "status-message",
+ IPP_TAG_TEXT)) != NULL)
+ ippSetStringfv(client->response, &attr, 0, message, ap);
+ else
+ attr = ippAddStringfv(client->response, IPP_TAG_OPERATION, IPP_TAG_TEXT,
+ "status-message", NULL, message, ap);
va_end(ap);
- ippAddString(client->response, IPP_TAG_OPERATION, IPP_TAG_TEXT,
- "status-message", NULL, formatted);
+ formatted = ippGetString(attr, 0, NULL);
}
- else
- formatted[0] = '\0';
- fprintf(stderr, "%s %s %s (%s)\n", client->http.hostname,
- ippOpString(client->operation_id), ippErrorString(status), formatted);
+ if (formatted)
+ fprintf(stderr, "%s %s %s (%s)\n", client->hostname,
+ ippOpString(client->operation_id), ippErrorString(status),
+ formatted);
+ else
+ fprintf(stderr, "%s %s %s\n", client->hostname,
+ ippOpString(client->operation_id), ippErrorString(status));
}
@@ -4828,12 +4788,10 @@ respond_unsupported(
ipp_attribute_t *temp; /* Copy of attribute */
- if (!client->response->attrs)
- respond_ipp(client, IPP_ATTRIBUTES, "Unsupported %s %s%s value.",
- attr->name, attr->num_values > 1 ? "1setOf " : "",
- ippTagString(attr->value_tag));
- else
- ippSetStatusCode(client->response, IPP_ATTRIBUTES);
+ respond_ipp(client, IPP_STATUS_ERROR_ATTRIBUTES_OR_VALUES,
+ "Unsupported %s %s%s value.", ippGetName(attr),
+ ippGetCount(attr) > 1 ? "1setOf " : "",
+ ippTagString(ippGetValueTag(attr)));
temp = ippCopyAttribute(client->response, attr, 0);
ippSetGroupTag(client->response, &temp, IPP_TAG_UNSUPPORTED_GROUP);
@@ -4934,7 +4892,8 @@ usage(int status) /* O - Exit status */
{
if (!status)
{
- puts(CUPS_SVERSION " - Copyright 2010 by Apple Inc. All rights reserved.");
+ puts(CUPS_SVERSION " - Copyright 2010-2012 by Apple Inc. All rights "
+ "reserved.");
puts("");
}
@@ -4953,7 +4912,7 @@ usage(int status) /* O - Exit status */
puts("-m model Model name (default=Printer)");
puts("-n hostname Hostname for printer");
puts("-p port Port number (default=auto)");
- puts("-r regtype Bonjour service type (default=_ipp._tcp)");
+ puts("-r subtype Bonjour service subtype (default=_print)");
puts("-s speed[,color-speed] Speed in pages per minute (default=10,0)");
puts("-v[vvv] Be (very) verbose");
@@ -4973,10 +4932,16 @@ static int /* O - 1 if valid, 0 if not */
valid_doc_attributes(
_ipp_client_t *client) /* I - Client */
{
- int i; /* Looping var */
+ int valid = 1; /* Valid attributes? */
+ ipp_op_t op = ippGetOperation(client->request);
+ /* IPP operation */
+ const char *op_name = ippOpString(op);
+ /* IPP operation name */
ipp_attribute_t *attr, /* Current attribute */
- *supported; /* document-format-supported */
- const char *format = NULL; /* document-format value */
+ *supported; /* xxx-supported attribute */
+ const char *compression = NULL,
+ /* compression value */
+ *format = NULL; /* document-format value */
/*
@@ -4987,17 +4952,30 @@ valid_doc_attributes(
IPP_TAG_ZERO)) != NULL)
{
/*
- * If compression is specified, only accept "none"...
+ * If compression is specified, only accept a supported value in a Print-Job
+ * or Send-Document request...
*/
- if (attr->num_values != 1 || attr->value_tag != IPP_TAG_KEYWORD ||
- strcmp(attr->values[0].string.text, "none"))
+ compression = ippGetString(attr, 0, NULL);
+ supported = ippFindAttribute(client->printer->attrs,
+ "compression-supported", IPP_TAG_KEYWORD);
+
+ if (ippGetCount(attr) != 1 || ippGetValueTag(attr) != IPP_TAG_KEYWORD ||
+ ippGetGroupTag(attr) != IPP_TAG_OPERATION ||
+ (op != IPP_OP_PRINT_JOB && op != IPP_OP_SEND_DOCUMENT) ||
+ !ippContainsString(supported, compression))
+ {
respond_unsupported(client, attr);
+ valid = 0;
+ }
else
+ {
fprintf(stderr, "%s %s compression=\"%s\"\n",
- client->http.hostname,
- ippOpString(client->request->request.op.operation_id),
- attr->values[0].string.text);
+ client->hostname, op_name, compression);
+
+ if (strcmp(compression, "none"))
+ httpSetField(client->http, HTTP_FIELD_CONTENT_ENCODING, compression);
+ }
}
/*
@@ -5007,23 +4985,30 @@ valid_doc_attributes(
if ((attr = ippFindAttribute(client->request, "document-format",
IPP_TAG_ZERO)) != NULL)
{
- if (attr->num_values != 1 || attr->value_tag != IPP_TAG_MIMETYPE)
+ if (ippGetCount(attr) != 1 || ippGetValueTag(attr) != IPP_TAG_MIMETYPE ||
+ ippGetGroupTag(attr) != IPP_TAG_OPERATION)
+ {
respond_unsupported(client, attr);
+ valid = 0;
+ }
else
{
- format = attr->values[0].string.text;
+ format = ippGetString(attr, 0, NULL);
fprintf(stderr, "%s %s document-format=\"%s\"\n",
- client->http.hostname,
- ippOpString(client->request->request.op.operation_id), format);
+ client->hostname, op_name, format);
}
}
else
+ {
format = "application/octet-stream";
+ attr = ippAddString(client->request, IPP_TAG_JOB, IPP_TAG_MIMETYPE,
+ "document-format", NULL, format);
+ }
if (!strcmp(format, "application/octet-stream") &&
- (client->request->request.op.operation_id == IPP_PRINT_JOB ||
- client->request->request.op.operation_id == IPP_SEND_DOCUMENT))
+ (ippGetOperation(client->request) == IPP_OP_PRINT_JOB ||
+ ippGetOperation(client->request) == IPP_OP_SEND_DOCUMENT))
{
/*
* Auto-type the file using the first 4 bytes of the file...
@@ -5032,7 +5017,7 @@ valid_doc_attributes(
unsigned char header[4]; /* First 4 bytes of file */
memset(header, 0, sizeof(header));
- _httpPeek(&(client->http), (char *)header, sizeof(header));
+ httpPeek(client->http, (char *)header, sizeof(header));
if (!memcmp(header, "%PDF", 4))
format = "application/pdf";
@@ -5046,35 +5031,26 @@ valid_doc_attributes(
if (format)
fprintf(stderr, "%s %s Auto-typed document-format=\"%s\"\n",
- client->http.hostname,
- ippOpString(client->request->request.op.operation_id), format);
+ client->hostname, op_name, format);
if (!attr)
attr = ippAddString(client->request, IPP_TAG_JOB, IPP_TAG_MIMETYPE,
"document-format", NULL, format);
else
- {
- _cupsStrFree(attr->values[0].string.text);
- attr->values[0].string.text = _cupsStrAlloc(format);
- }
+ ippSetString(client->request, &attr, 0, format);
}
- if (client->request->request.op.operation_id != IPP_CREATE_JOB &&
+ if (op != IPP_OP_CREATE_JOB &&
(supported = ippFindAttribute(client->printer->attrs,
"document-format-supported",
- IPP_TAG_MIMETYPE)) != NULL)
+ IPP_TAG_MIMETYPE)) != NULL &&
+ !ippContainsString(supported, format))
{
- for (i = 0; i < supported->num_values; i ++)
- if (!_cups_strcasecmp(format, supported->values[i].string.text))
- break;
-
- if (i >= supported->num_values && attr)
- respond_unsupported(client, attr);
+ respond_unsupported(client, attr);
+ valid = 0;
}
- return (!client->response->attrs ||
- !client->response->attrs->next ||
- !client->response->attrs->next->next);
+ return (valid);
}
@@ -5089,7 +5065,8 @@ static int /* O - 1 if valid, 0 if not */
valid_job_attributes(
_ipp_client_t *client) /* I - Client */
{
- int i; /* Looping var */
+ int i, /* Looping var */
+ valid = 1; /* Valid attributes? */
ipp_attribute_t *attr, /* Current attribute */
*supported; /* xxx-supported attribute */
@@ -5098,7 +5075,7 @@ valid_job_attributes(
* Check operation attributes...
*/
- valid_doc_attributes(client);
+ valid = valid_doc_attributes(client);
/*
* Check the various job template attributes...
@@ -5107,90 +5084,98 @@ valid_job_attributes(
if ((attr = ippFindAttribute(client->request, "copies",
IPP_TAG_ZERO)) != NULL)
{
- if (attr->num_values != 1 || attr->value_tag != IPP_TAG_INTEGER ||
- attr->values[0].integer < 1 || attr->values[0].integer > 999)
+ if (ippGetCount(attr) != 1 || ippGetValueTag(attr) != IPP_TAG_INTEGER ||
+ ippGetInteger(attr, 0) < 1 || ippGetInteger(attr, 0) > 999)
{
respond_unsupported(client, attr);
+ valid = 0;
}
}
if ((attr = ippFindAttribute(client->request, "ipp-attribute-fidelity",
IPP_TAG_ZERO)) != NULL)
{
- if (attr->num_values != 1 || attr->value_tag != IPP_TAG_BOOLEAN)
+ if (ippGetCount(attr) != 1 || ippGetValueTag(attr) != IPP_TAG_BOOLEAN)
{
respond_unsupported(client, attr);
+ valid = 0;
}
}
if ((attr = ippFindAttribute(client->request, "job-hold-until",
IPP_TAG_ZERO)) != NULL)
{
- if (attr->num_values != 1 ||
- (attr->value_tag != IPP_TAG_NAME &&
- attr->value_tag != IPP_TAG_NAMELANG &&
- attr->value_tag != IPP_TAG_KEYWORD) ||
- strcmp(attr->values[0].string.text, "no-hold"))
+ if (ippGetCount(attr) != 1 ||
+ (ippGetValueTag(attr) != IPP_TAG_NAME &&
+ ippGetValueTag(attr) != IPP_TAG_NAMELANG &&
+ ippGetValueTag(attr) != IPP_TAG_KEYWORD) ||
+ strcmp(ippGetString(attr, 0, NULL), "no-hold"))
{
respond_unsupported(client, attr);
+ valid = 0;
}
}
if ((attr = ippFindAttribute(client->request, "job-name",
IPP_TAG_ZERO)) != NULL)
{
- if (attr->num_values != 1 ||
- (attr->value_tag != IPP_TAG_NAME &&
- attr->value_tag != IPP_TAG_NAMELANG))
+ if (ippGetCount(attr) != 1 ||
+ (ippGetValueTag(attr) != IPP_TAG_NAME &&
+ ippGetValueTag(attr) != IPP_TAG_NAMELANG))
{
respond_unsupported(client, attr);
+ valid = 0;
}
}
if ((attr = ippFindAttribute(client->request, "job-priority",
IPP_TAG_ZERO)) != NULL)
{
- if (attr->num_values != 1 || attr->value_tag != IPP_TAG_INTEGER ||
- attr->values[0].integer < 1 || attr->values[0].integer > 100)
+ if (ippGetCount(attr) != 1 || ippGetValueTag(attr) != IPP_TAG_INTEGER ||
+ ippGetInteger(attr, 0) < 1 || ippGetInteger(attr, 0) > 100)
{
respond_unsupported(client, attr);
+ valid = 0;
}
}
if ((attr = ippFindAttribute(client->request, "job-sheets",
IPP_TAG_ZERO)) != NULL)
{
- if (attr->num_values != 1 ||
- (attr->value_tag != IPP_TAG_NAME &&
- attr->value_tag != IPP_TAG_NAMELANG &&
- attr->value_tag != IPP_TAG_KEYWORD) ||
- strcmp(attr->values[0].string.text, "none"))
+ if (ippGetCount(attr) != 1 ||
+ (ippGetValueTag(attr) != IPP_TAG_NAME &&
+ ippGetValueTag(attr) != IPP_TAG_NAMELANG &&
+ ippGetValueTag(attr) != IPP_TAG_KEYWORD) ||
+ strcmp(ippGetString(attr, 0, NULL), "none"))
{
respond_unsupported(client, attr);
+ valid = 0;
}
}
if ((attr = ippFindAttribute(client->request, "media",
IPP_TAG_ZERO)) != NULL)
{
- if (attr->num_values != 1 ||
- (attr->value_tag != IPP_TAG_NAME &&
- attr->value_tag != IPP_TAG_NAMELANG &&
- attr->value_tag != IPP_TAG_KEYWORD))
+ if (ippGetCount(attr) != 1 ||
+ (ippGetValueTag(attr) != IPP_TAG_NAME &&
+ ippGetValueTag(attr) != IPP_TAG_NAMELANG &&
+ ippGetValueTag(attr) != IPP_TAG_KEYWORD))
{
respond_unsupported(client, attr);
+ valid = 0;
}
else
{
for (i = 0;
i < (int)(sizeof(media_supported) / sizeof(media_supported[0]));
i ++)
- if (!strcmp(attr->values[0].string.text, media_supported[i]))
+ if (!strcmp(ippGetString(attr, 0, NULL), media_supported[i]))
break;
if (i >= (int)(sizeof(media_supported) / sizeof(media_supported[0])))
{
respond_unsupported(client, attr);
+ valid = 0;
}
}
}
@@ -5198,9 +5183,11 @@ valid_job_attributes(
if ((attr = ippFindAttribute(client->request, "media-col",
IPP_TAG_ZERO)) != NULL)
{
- if (attr->num_values != 1 || attr->value_tag != IPP_TAG_BEGIN_COLLECTION)
+ if (ippGetCount(attr) != 1 ||
+ ippGetValueTag(attr) != IPP_TAG_BEGIN_COLLECTION)
{
respond_unsupported(client, attr);
+ valid = 0;
}
/* TODO: check for valid media-col */
}
@@ -5208,24 +5195,26 @@ valid_job_attributes(
if ((attr = ippFindAttribute(client->request, "multiple-document-handling",
IPP_TAG_ZERO)) != NULL)
{
- if (attr->num_values != 1 || attr->value_tag != IPP_TAG_KEYWORD ||
- (strcmp(attr->values[0].string.text,
+ if (ippGetCount(attr) != 1 || ippGetValueTag(attr) != IPP_TAG_KEYWORD ||
+ (strcmp(ippGetString(attr, 0, NULL),
"separate-documents-uncollated-copies") &&
- strcmp(attr->values[0].string.text,
+ strcmp(ippGetString(attr, 0, NULL),
"separate-documents-collated-copies")))
{
respond_unsupported(client, attr);
+ valid = 0;
}
}
if ((attr = ippFindAttribute(client->request, "orientation-requested",
IPP_TAG_ZERO)) != NULL)
{
- if (attr->num_values != 1 || attr->value_tag != IPP_TAG_ENUM ||
- attr->values[0].integer < IPP_PORTRAIT ||
- attr->values[0].integer > IPP_REVERSE_PORTRAIT)
+ if (ippGetCount(attr) != 1 || ippGetValueTag(attr) != IPP_TAG_ENUM ||
+ ippGetInteger(attr, 0) < IPP_ORIENT_PORTRAIT ||
+ ippGetInteger(attr, 0) > IPP_ORIENT_REVERSE_PORTRAIT)
{
respond_unsupported(client, attr);
+ valid = 0;
}
}
@@ -5233,16 +5222,18 @@ valid_job_attributes(
IPP_TAG_ZERO)) != NULL)
{
respond_unsupported(client, attr);
+ valid = 0;
}
if ((attr = ippFindAttribute(client->request, "print-quality",
IPP_TAG_ZERO)) != NULL)
{
- if (attr->num_values != 1 || attr->value_tag != IPP_TAG_ENUM ||
- attr->values[0].integer < IPP_QUALITY_DRAFT ||
- attr->values[0].integer > IPP_QUALITY_HIGH)
+ if (ippGetCount(attr) != 1 || ippGetValueTag(attr) != IPP_TAG_ENUM ||
+ ippGetInteger(attr, 0) < IPP_QUALITY_DRAFT ||
+ ippGetInteger(attr, 0) > IPP_QUALITY_HIGH)
{
respond_unsupported(client, attr);
+ valid = 0;
}
}
@@ -5250,38 +5241,42 @@ valid_job_attributes(
IPP_TAG_ZERO)) != NULL)
{
respond_unsupported(client, attr);
+ valid = 0;
}
if ((attr = ippFindAttribute(client->request, "sides",
IPP_TAG_ZERO)) != NULL)
{
- if (attr->num_values != 1 || attr->value_tag != IPP_TAG_KEYWORD)
+ if (ippGetCount(attr) != 1 || ippGetValueTag(attr) != IPP_TAG_KEYWORD)
{
respond_unsupported(client, attr);
+ valid = 0;
}
if ((supported = ippFindAttribute(client->printer->attrs, "sides",
IPP_TAG_KEYWORD)) != NULL)
{
- for (i = 0; i < supported->num_values; i ++)
- if (!strcmp(attr->values[0].string.text,
- supported->values[i].string.text))
+ int count = ippGetCount(supported);
+ const char *sides = ippGetString(attr, 0, NULL);
+
+ for (i = 0; i < count; i ++)
+ if (!strcmp(sides, ippGetString(supported, i, NULL)))
break;
- if (i >= supported->num_values)
+ if (i >= count)
{
respond_unsupported(client, attr);
+ valid = 0;
}
}
else
{
respond_unsupported(client, attr);
+ valid = 0;
}
}
- return (!client->response->attrs ||
- !client->response->attrs->next ||
- !client->response->attrs->next->next);
+ return (valid);
}
diff --git a/test/ipptool.c b/test/ipptool.c
index a364a93f7..3882ef647 100644
--- a/test/ipptool.c
+++ b/test/ipptool.c
@@ -815,8 +815,8 @@ do_tests(_cups_vars_t *vars, /* I - Variables */
* Connect to the server...
*/
- if ((http = _httpCreate(vars->hostname, vars->port, NULL, vars->encryption,
- vars->family)) == NULL)
+ if ((http = _httpCreate(vars->hostname, vars->port, NULL, vars->family,
+ vars->encryption, 1, _HTTP_MODE_CLIENT)) == NULL)
{
print_fatal_error("Unable to connect to %s on port %d - %s", vars->hostname,
vars->port, cupsLastErrorString());
@@ -1741,9 +1741,14 @@ do_tests(_cups_vars_t *vars, /* I - Variables */
for (ptr = strchr(token, ','); ptr; ptr = strchr(ptr, ','))
{
- *ptr++ = '\0';
- values[num_values] = ptr;
- num_values ++;
+ if (ptr > token && ptr[-1] == '\\')
+ _cups_strcpy(ptr - 1, ptr);
+ else
+ {
+ *ptr++ = '\0';
+ values[num_values] = ptr;
+ num_values ++;
+ }
}
attrptr = ippAddStrings(request, group, value, attr, num_values,
@@ -2142,6 +2147,20 @@ do_tests(_cups_vars_t *vars, /* I - Variables */
* WITH-VALUE is a literal value...
*/
+ char *ptr; /* Pointer into value */
+
+ for (ptr = token; *ptr; ptr ++)
+ {
+ if (*ptr == '\\' && ptr[1])
+ {
+ /*
+ * Remove \ from \foo...
+ */
+
+ _cups_strcpy(ptr, ptr + 1);
+ }
+ }
+
last_expect->with_value = strdup(token);
last_expect->with_flags |= _CUPS_WITH_LITERAL;
}
@@ -3437,6 +3456,9 @@ get_collection(_cups_vars_t *vars, /* I - Variables */
goto col_error;
}
break;
+ case IPP_TAG_STRING :
+ ippAddOctetString(col, IPP_TAG_ZERO, attr, token, strlen(token));
+ break;
default :
if (!strchr(token, ','))
@@ -4570,7 +4592,7 @@ validate_attr(cups_array_t *errors, /* I - Errors array */
case IPP_TAG_STRING :
for (i = 0; i < attr->num_values; i ++)
{
- if (attr->values[i].unknown.length > 1023)
+ if (attr->values[i].unknown.length > IPP_MAX_OCTETSTRING)
{
valid = 0;
@@ -4813,7 +4835,7 @@ validate_attr(cups_array_t *errors, /* I - Errors array */
attr->values[i].string.text);
}
- if ((ptr - attr->values[i].string.text) > 1023)
+ if ((ptr - attr->values[i].string.text) > (IPP_MAX_TEXT - 1))
{
valid = 0;
@@ -4873,7 +4895,7 @@ validate_attr(cups_array_t *errors, /* I - Errors array */
attr->values[i].string.text);
}
- if ((ptr - attr->values[i].string.text) > 1023)
+ if ((ptr - attr->values[i].string.text) > (IPP_MAX_NAME - 1))
{
valid = 0;
@@ -4904,7 +4926,7 @@ validate_attr(cups_array_t *errors, /* I - Errors array */
attr->name, attr->values[i].string.text);
}
- if ((ptr - attr->values[i].string.text) > 255)
+ if ((ptr - attr->values[i].string.text) > (IPP_MAX_KEYWORD - 1))
{
valid = 0;
@@ -4939,7 +4961,7 @@ validate_attr(cups_array_t *errors, /* I - Errors array */
HTTP_URI_OVERFLOW]);
}
- if (strlen(attr->values[i].string.text) > 1023)
+ if (strlen(attr->values[i].string.text) > (IPP_MAX_URI - 1))
{
valid = 0;
@@ -4974,7 +4996,7 @@ validate_attr(cups_array_t *errors, /* I - Errors array */
attr->name, attr->values[i].string.text);
}
- if ((ptr - attr->values[i].string.text) > 63)
+ if ((ptr - attr->values[i].string.text) > (IPP_MAX_URISCHEME - 1))
{
valid = 0;
@@ -5005,7 +5027,7 @@ validate_attr(cups_array_t *errors, /* I - Errors array */
attr->name, attr->values[i].string.text);
}
- if ((ptr - attr->values[i].string.text) > 40)
+ if ((ptr - attr->values[i].string.text) > (IPP_MAX_CHARSET - 1))
{
valid = 0;
@@ -5061,7 +5083,7 @@ validate_attr(cups_array_t *errors, /* I - Errors array */
attr->name, attr->values[i].string.text);
}
- if (strlen(attr->values[i].string.text) > 63)
+ if (strlen(attr->values[i].string.text) > (IPP_MAX_LANGUAGE - 1))
{
valid = 0;
@@ -5114,7 +5136,7 @@ validate_attr(cups_array_t *errors, /* I - Errors array */
attr->name, attr->values[i].string.text);
}
- if (strlen(attr->values[i].string.text) > 255)
+ if (strlen(attr->values[i].string.text) > (IPP_MAX_MIMETYPE - 1))
{
valid = 0;
diff --git a/test/run-stp-tests.sh b/test/run-stp-tests.sh
index 7ab618f04..4a1174e3d 100755
--- a/test/run-stp-tests.sh
+++ b/test/run-stp-tests.sh
@@ -605,7 +605,7 @@ done
#
date=`date "+%Y-%m-%d"`
-strfile=/tmp/cups-$user/cups-str-1.6-$date-$user.html
+strfile=/tmp/cups-$user/cups-str-1.7-$date-$user.html
rm -f $strfile
cat str-header.html >$strfile
diff --git a/xcode/CUPS.xcodeproj/project.pbxproj b/xcode/CUPS.xcodeproj/project.pbxproj
index c1a32a00d..4f8a2419b 100644
--- a/xcode/CUPS.xcodeproj/project.pbxproj
+++ b/xcode/CUPS.xcodeproj/project.pbxproj
@@ -2650,7 +2650,7 @@
72BF96371333042100B1EAD7 /* Project object */ = {
isa = PBXProject;
attributes = {
- LastUpgradeCheck = 0440;
+ LastUpgradeCheck = 0450;
ORGANIZATIONNAME = "Apple Inc.";
};
buildConfigurationList = 72BF963A1333042100B1EAD7 /* Build configuration list for PBXProject "CUPS" */;
diff --git a/xcode/config.h b/xcode/config.h
index 441c4c41f..00c3f3dc8 100644
--- a/xcode/config.h
+++ b/xcode/config.h
@@ -308,14 +308,14 @@
*/
#define HAVE_AUTHORIZATION_H 1
-#define HAVE_SECBASEPRIV_H 1
+/* #undef HAVE_SECBASEPRIV_H */
#define HAVE_SECCERTIFICATE_H 1
-#define HAVE_SECIDENTITYSEARCHPRIV_H 1
+/* #undef HAVE_SECIDENTITYSEARCHPRIV_H */
#define HAVE_SECITEM_H 1
-#define HAVE_SECITEMPRIV_H 1
+/* #undef HAVE_SECITEMPRIV_H */
#define HAVE_SECPOLICY_H 1
-#define HAVE_SECPOLICYPRIV_H 1
-#define HAVE_SECURETRANSPORTPRIV_H 1
+/* #undef HAVE_SECPOLICYPRIV_H */
+/* #undef HAVE_SECURETRANSPORTPRIV_H */
/*
@@ -517,8 +517,8 @@
*/
#define HAVE_COREFOUNDATION_H 1
-#define HAVE_CFPRIV_H 1
-#define HAVE_CFBUNDLEPRIV_H 1
+/* #undef HAVE_CFPRIV_H */
+/* #undef HAVE_CFBUNDLEPRIV_H */
/*
@@ -540,7 +540,7 @@
*/
#define HAVE_MEMBERSHIP_H 1
-#define HAVE_MEMBERSHIPPRIV_H 1
+/* #undef HAVE_MEMBERSHIPPRIV_H */
#define HAVE_MBR_UID_TO_UUID 1
@@ -556,7 +556,7 @@
* Do we have Darwin's IOKit private headers?
*/
-#define HAVE_IOKIT_PWR_MGT_IOPMLIBPRIVATE_H 1
+/* #undef HAVE_IOKIT_PWR_MGT_IOPMLIBPRIVATE_H */
/*
@@ -574,7 +574,7 @@
#define HAVE_GSS_ACQUIRE_CRED_EX_F 1
#define HAVE_GSS_C_NT_HOSTBASED_SERVICE 1
#define HAVE_GSS_GSSAPI_H 1
-#define HAVE_GSS_GSSAPI_SPI_H 1
+/* #undef HAVE_GSS_GSSAPI_SPI_H */
#define HAVE_GSSAPI 1
/* #undef HAVE_GSSAPI_GENERIC_H */
/* #undef HAVE_GSSAPI_GSSAPI_H */
@@ -709,7 +709,7 @@
*/
#define HAVE_XPC 1
-#define HAVE_XPC_PRIVATE_H 1
+/* #undef HAVE_XPC_PRIVATE_H */
/*