- 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)
-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)
* 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.
#endif /* HAVE_GSSAPI && HAVE_XPC */
+/*
+ * 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...
*/
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? */
/* 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",
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);
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 */
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 */
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() */
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"))
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);
}
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);
/*
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
* copies...
*/
+#ifdef HAVE_LIBZ
+ compression_sup = NULL;
+#endif /* HAVE_LIBZ */
copies_sup = NULL;
cups_version = NULL;
format_sup = NULL;
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;
}
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);
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-",
busy = 1;
break;
}
+ }
}
- else
- update_reasons(NULL, "+cups-ipp-conformance-failure-report,"
- "cups-ipp-missing-printer-state-reasons");
if (busy)
{
* 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)
{
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;
*/
options = NULL;
- pc = NULL;
if (send_options)
{
ppd = ppdOpenFile(getenv("PPD"));
pc = _ppdCacheCreateWithPPD(ppd);
- ppdClose(ppd);
+ ppdMarkDefaults(ppd);
+ cupsMarkOptions(ppd, num_options, options);
}
}
else
{
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));
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 */
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...
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...
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);
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
{
*/
_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 */
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;
{
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)
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;
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)
{
/*
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)
cupsFreeOptions(num_options, options);
_ppdCacheDestroy(pc);
+ ppdClose(ppd);
httpClose(http);
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...
*/
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);
}
-#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.
*/
* 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);
delay = _cupsNextDelay(0, &prev_delay);
+ monitor->job_reasons = 0;
+
while (monitor->job_state < IPP_JOB_CANCELED && !job_canceled)
{
/*
}
}
+ 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",
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 */
*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 */
/*
}
#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);
{
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 &&
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") &&
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);
}
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");
}
* 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);
}
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);
}
*/
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,
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...
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 */
fprintf(stderr, "DEBUG: Connected to %s:%d...\n",
httpAddrString(&(addr->addr), addrname, sizeof(addrname)),
- _httpAddrPort(&(addr->addr)));
+ httpAddrPort(&(addr->addr)));
/*
* Print everything...
_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(¤t_time))
- if (wait_bc(device_fd, wait_time - current_time) <= 0)
- break;
-#endif /* __APPLE__ */
-
if (waiteof)
{
/*
#include <CoreFoundation/CoreFoundation.h>
#include <IOKit/usb/IOUSBLib.h>
#include <IOKit/IOCFPlugIn.h>
+#include <libproc.h>
#include <spawn.h>
#include <pthread.h>
#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
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 */
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);
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...
*/
if (!print_fd)
{
- struct sigaction action; /* POSIX signal action */
-
-
memset(&action, 0, sizeof(action));
sigemptyset(&action.sa_mask);
}
+/*
+ * '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.
*/
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))
{
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);
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 == ' ')
{
* 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)
else
end = start + strlen(start);
+ DEBUG_printf(("1_cupsArrayAddStrings: Adding \"%s\", end=\"%s\"", start,
+ end));
+
if (!cupsArrayFind(a, start))
status &= cupsArrayAdd(a, start);
}
free(buffer);
}
+ DEBUG_printf(("1_cupsArrayAddStrings: Returning %d.", status));
+
return (status);
}
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 */
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,
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,
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);
+}
/*
{
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;
*/
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))
* Write it out...
*/
+ _cupsMutexLock(&debug_log_mutex);
write(_cups_debug_fd, buffer, bytes);
+ _cupsMutexUnlock(&debug_log_mutex);
}
{
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;
*/
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);
* Write it out...
*/
+ _cupsMutexLock(&debug_log_mutex);
write(_cups_debug_fd, buffer, bytes);
+ _cupsMutexUnlock(&debug_log_mutex);
}
const char *filter, /* I - Filter string or NULL */
int force) /* I - Force initialization */
{
- _cupsMutexLock(&debug_mutex);
+ _cupsMutexLock(&debug_init_mutex);
if (!debug_init || force)
{
debug_init = 1;
}
- _cupsMutexUnlock(&debug_mutex);
+ _cupsMutexUnlock(&debug_init_mutex);
}
#endif /* DEBUG */
*
* 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.
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);
"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);
/*
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...
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...
/*
- * 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 },
{ 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 },
{ 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 */
{ 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 },
{ 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 },
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...
* 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))
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
{
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"))
value_tag = IPP_TAG_NAME;
}
+ /*
+ * 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...
*/
}
+#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.
*/
*/
+#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
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...
*/
*
* 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.
*/
/*
}
+/*
+ * '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.
*
/*
- * '_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());
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.
*
* 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.
*/
/*
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)
{
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);
{
DEBUG_printf(("1httpAddrConnect2: Connected to %s:%d...",
httpAddrString(&peer, temp, sizeof(temp)),
- _httpAddrPort(&peer)));
+ httpAddrPort(&peer)));
return (addrlist);
}
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)
}
+
+/*
+ * '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.
*
# endif /* HAVE_GETIFADDRS */
# endif /* !WIN32 */
+# ifdef HAVE_LIBZ
+# include <zlib.h>
+# endif /* HAVE_LIBZ */
+
/*
* C++ magic...
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 */
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) */
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 */
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 */
# 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 */
# 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 */
};
*/
#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,
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),
# 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 */
domainref = ref;
if (DNSServiceResolve(&domainref,
kDNSServiceFlagsShareConnection,
- 0, hostname, regtype, domain,
+ interface, hostname, regtype, domain,
http_resolve_cb,
&uribuf) == kDNSServiceErr_NoError)
domainsent = 1;
#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
{
*
* 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.
*/
/*
* 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);
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
"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 */
#endif /* HAVE_SSL && HAVE_LIBSSL */
+/*
+ * '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.
*
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)
{
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;
}
}
/*
* 'httpConnect()' - Connect to a HTTP server.
*
- * This function is deprecated - use @link httpConnectEncrypt@ instead.
+ * This function is deprecated - use @link httpConnect2@ instead.
*
* @deprecated@
*/
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.
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();
* Lookup the host...
*/
- sprintf(service, "%d", port);
+ if (addrlist)
+ {
+ myaddrlist = httpAddrCopyList(addrlist);
+ }
+ else
+ {
+ snprintf(service, sizeof(service), "%d", port);
+
+ myaddrlist = httpAddrGetList(host, family, service);
+ }
- if (!addrlist)
- if ((addrlist = httpAddrGetList(host, family, service)) == NULL)
- return (NULL);
+ if (!myaddrlist)
+ return (NULL);
/*
* Allocate memory for the structure...
* 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;
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()...
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)
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)
{
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);
}
+/*
+ * '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.
*
}
+/*
+ * '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.
*
{
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);
+
+ 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);
+ }
- return (http->field_authorization);
+ default :
+ return (http->fields[field]);
}
- else
- return (http->fields[field]);
}
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);
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);
}
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);
}
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);
}
/*
- * '_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 */
{
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)
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)
* 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);
}
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
{
}
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;
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);
}
#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.
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
{
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);
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...");
}
}
- 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 */
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)
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);
/*
- * 'httpReconnect()' - Reconnect to a HTTP server.
+ * 'httpReadRequest()' - Read a HTTP request from a connection.
+ *
+ * @since CUPS 1.7@
*/
-int /* O - 0 on success, non-zero on failure */
-httpReconnect(http_t *http) /* I - Connection to server */
+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 */
{
- DEBUG_printf(("httpReconnect(http=%p)", http));
-
- return (httpReconnect2(http, 30000, NULL));
-}
-
+ char line[4096], /* HTTP request line */
+ *req_method, /* HTTP request method */
+ *req_uri, /* HTTP request URI */
+ *req_version; /* HTTP request version number string */
-/*
- * 'httpReconnect2()' - Reconnect to a HTTP server with timeout and optional
- * cancel.
- */
-int /* O - 0 on success, non-zero on failure */
-httpReconnect2(http_t *http, /* I - Connection to server */
- int msec, /* I - Timeout in milliseconds */
- int *cancel) /* I - Pointer to "cancel" variable */
-{
- http_addrlist_t *addr; /* Connected address */
-#ifdef DEBUG
- http_addrlist_t *current; /* Current address */
- char temp[256]; /* Temporary address string */
-#endif /* DEBUG */
+ /*
+ * Range check input...
+ */
+ DEBUG_printf(("httpReadRequest(http=%p, uri=%p, urilen=" CUPS_LLFMT ")",
+ http, uri, CUPS_LLCAST urilen));
- DEBUG_printf(("httpReconnect2(http=%p, msec=%d, cancel=%p)", http, msec,
- cancel));
+ if (uri)
+ *uri = '\0';
- if (!http)
+ if (!http || !uri || urilen < 1)
{
- _cupsSetError(IPP_INTERNAL_ERROR, strerror(EINVAL), 0);
- return (-1);
+ DEBUG_puts("1httpReadRequest: Bad arguments, returning HTTP_STATE_ERROR.");
+ return (HTTP_STATE_ERROR);
}
-
-#ifdef HAVE_SSL
- if (http->tls)
+ else if (http->state != HTTP_STATE_WAITING)
{
- DEBUG_puts("2httpReconnect2: Shutting down SSL/TLS...");
- http_shutdown_ssl(http);
+ DEBUG_printf(("1httpReadRequest: Bad state %s, returning HTTP_STATE_ERROR.",
+ http_states[http->state + 1]));
+ return (HTTP_STATE_ERROR);
}
-#endif /* HAVE_SSL */
/*
- * Close any previously open socket...
+ * Reset state...
*/
- if (http->fd >= 0)
- {
- DEBUG_printf(("2httpReconnect2: Closing socket %d...", http->fd));
-
-#ifdef WIN32
- closesocket(http->fd);
-#else
- close(http->fd);
-#endif /* WIN32 */
+ httpClearFields(http);
- http->fd = -1;
- }
+ 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;
/*
- * Reset all state (except fields, which may be reused)...
+ * Read a line from the socket...
*/
- http->state = HTTP_WAITING;
- http->status = HTTP_CONTINUE;
- http->version = HTTP_1_1;
+ 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 */
+httpReconnect(http_t *http) /* I - Connection to server */
+{
+ DEBUG_printf(("httpReconnect(http=%p)", http));
+
+ return (httpReconnect2(http, 30000, NULL));
+}
+
+
+/*
+ * 'httpReconnect2()' - Reconnect to a HTTP server with timeout and optional
+ * cancel.
+ */
+
+int /* O - 0 on success, non-zero on failure */
+httpReconnect2(http_t *http, /* I - Connection to server */
+ int msec, /* I - Timeout in milliseconds */
+ int *cancel) /* I - Pointer to "cancel" variable */
+{
+ http_addrlist_t *addr; /* Connected address */
+#ifdef DEBUG
+ http_addrlist_t *current; /* Current address */
+ char temp[256]; /* Temporary address string */
+#endif /* DEBUG */
+
+
+ DEBUG_printf(("httpReconnect2(http=%p, msec=%d, cancel=%p)", http, msec,
+ cancel));
+
+ if (!http)
+ {
+ _cupsSetError(IPP_INTERNAL_ERROR, strerror(EINVAL), 0);
+ return (-1);
+ }
+
+#ifdef HAVE_SSL
+ if (http->tls)
+ {
+ DEBUG_puts("2httpReconnect2: Shutting down SSL/TLS...");
+ http_shutdown_ssl(http);
+ }
+#endif /* HAVE_SSL */
+
+ /*
+ * Close any previously open socket...
+ */
+
+ if (http->fd >= 0)
+ {
+ DEBUG_printf(("2httpReconnect2: Closing socket %d...", http->fd));
+
+#ifdef WIN32
+ closesocket(http->fd);
+#else
+ close(http->fd);
+#endif /* WIN32 */
+
+ http->fd = -1;
+ }
+
+ /*
+ * Reset all state (except fields, which may be reused)...
+ */
+
+ 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;
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,
DEBUG_printf(("1httpReconnect2: Connected to %s:%d...",
httpAddrString(http->hostaddr, temp, sizeof(temp)),
- _httpAddrPort(http->hostaddr)));
+ httpAddrPort(http->hostaddr)));
return (0);
}
/*
* '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;
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)
{
}
}
}
+#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 */
}
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;
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...
* 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);
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);
}
return (0);
}
+ httpClearFields(http);
+
http->version = (http_version_t)(major * 100 + minor);
*status = http->status = (http_status_t)intstatus;
}
while (_cups_isspace(*value))
value ++;
+ DEBUG_printf(("1_httpUpdate: Header %s: %s", line, value));
+
/*
* Be tolerants of servers that send unknown attribute fields...
*/
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);
}
DEBUG_printf(("httpUpdate(http=%p), state=%s", http,
- http_states[http->state]));
+ http_states[http->state + 1]));
/*
* Flush pending data, if any...
* 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);
/*
* 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...
* 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))
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);
CUPS_LLCAST bytes));
}
- if (http->data_encoding == HTTP_ENCODE_LENGTH)
+ if (http->data_encoding == HTTP_ENCODING_LENGTH)
http->data_remaining -= bytes;
}
else
* 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...
* 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);
}
#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.
#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.
* '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",
NULL,
"DELETE",
"TRACE",
- "CLOSE"
+ "CLOSE",
+ NULL,
+ NULL
};
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...
*/
* 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);
*/
http->state = request;
- http->data_encoding = HTTP_ENCODE_FIELDS;
+ http->data_encoding = HTTP_ENCODING_FIELDS;
if (request == HTTP_POST || request == HTTP_PUT)
http->state ++;
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 */
}
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);
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;
if (httpFlushWrite(http) < 0)
return (-1);
- httpGetLength2(http);
+ http_set_length(http);
httpClearFields(http);
/*
#endif /* HAVE_SSL */
+/*
+ * '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.
*/
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)
{
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 ****/
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;
**** 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 ****/
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
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);
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 *,
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;
_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...
*/
*
* 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
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;
* Prototypes for private functions...
*/
+#ifdef DEBUG
+extern const char *_ippCheckOptions(void);
+#endif /* DEBUG */
extern _ipp_option_t *_ippFindOption(const char *name);
-
/*
* C++ magic...
*/
"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",
},
* const ipp_status_1000s[] = /* CUPS internal */
{
- "cups-authorization-canceled",
+ "cups-authentication-canceled",
"cups-pki-error",
"cups-upgrade-required"
};
"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",
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 &&
!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;
}
* 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...
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));
* 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]);
/*
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]))
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);
}
* 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
* 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
* 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.
* 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.
/*
* '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@),
/*
* '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@),
/*
* '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@),
/*
* '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@),
/*
* '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@),
/*
* '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@),
/*
* '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@),
/*
* '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@),
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)
/*
* '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@),
/*
* '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@),
/*
* '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@),
/*
* '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@),
/*
* '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@),
/*
* '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 */
/*
* '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@),
}
+/*
+ * '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@),
}
+/*
+ * '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.
*
* Return the value...
*/
- return (attr->value_tag);
+ return (attr->value_tag & IPP_TAG_MASK);
}
}
+/*
+ * '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.
*/
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);
/*
* '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.
*
/*
* '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.
*
/*
* '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.
*
/*
* '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.
*
* 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);
/*
* '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.
*
/*
* '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.
*
/*
* '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@
*/
/*
* '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.
*
/*
* '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.
*
/*
* '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.
*
/*
* '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@
*/
/*
* '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.
*
}
+/*
+ * '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.
*
* Range check input...
*/
- if (!ipp || !attr)
+ if (!ipp || !attr || !*attr)
return (0);
/*
/*
* '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.
*
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) */
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 ****/
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 ****/
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 ****/
* 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__)
/* 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 */
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...
}
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"))
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");
cupsArrayDelete(pc->prefilters);
cupsArrayDelete(pc->finishings);
+ _cupsStrFree(pc->charge_info_uri);
_cupsStrFree(pc->password);
cupsArrayDelete(pc->mandatory);
* 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");
* Constants...
*/
-# define _PPD_CACHE_VERSION 4 /* Version number in cache file */
+# define _PPD_CACHE_VERSION 5 /* Version number in cache file */
/*
accounting_user_id; /* cupsJobAccountingUserId value */
char *password; /* cupsJobPassword value */
cups_array_t *mandatory; /* cupsMandatory value */
+ char *charge_info_uri; /* cupsChargeInfoURI value */
};
*
* 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.
*/
/*
_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),
_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),
_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),
_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),
_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),
_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)
};
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);
{
status = httpUpdate(http);
}
- while (status != HTTP_ERROR && http->state == HTTP_POST_RECV);
+ while (status == HTTP_STATUS_CONTINUE);
DEBUG_printf(("2cupsGetResponse: status=%d", status));
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\", "
* 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.");
break;
#ifdef HAVE_SSL
- case HTTP_UPGRADE_REQUIRED :
+ case HTTP_STATUS_UPGRADE_REQUIRED :
/*
* Flush any error message, reconnect, and then upgrade with
* encryption...
break;
#endif /* HAVE_SSL */
- case HTTP_EXPECTATION_FAILED :
+ case HTTP_STATUS_EXPECTATION_FAILED :
/*
* Don't try using the Expect: header the next time around...
*/
*/
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))
{
#include "string-private.h"
#include "debug-private.h"
-#include "array.h"
+#include "array-private.h"
#include "dir.h"
cupsArrayDelete(array);
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...
*/
*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",
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);
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;
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
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);
*/
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));
*/
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
* 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 */
/*
* 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
# 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
# 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
# define _CUPS_API_1_4
# define _CUPS_API_1_5
# define _CUPS_API_1_6
+# define _CUPS_API_1_7
# endif /* __APPLE__ && !_CUPS_SOURCE */
/*
* 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_ */
/*
<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 "any" 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>
<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>
<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
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>
<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>
<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
<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>
<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>
<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>
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>
<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>
<h3 class="function"><span class="info"> CUPS 1.1.20/OS X 10.4 </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>
<a href="#http_t">http_t</a> *http,<br>
const char *resource,<br>
int fd<br>
<h3 class="function"><span class="info"> CUPS 1.1.20/OS X 10.4 </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>
<a href="#http_t">http_t</a> *http,<br>
const char *resource,<br>
const char *filename<br>
<h3 class="function"><span class="info"> CUPS 1.1.20/OS X 10.4 </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>
<a href="#http_t">http_t</a> *http,<br>
const char *resource,<br>
int fd<br>
<h3 class="function"><span class="info"> CUPS 1.1.20/OS X 10.4 </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>
<a href="#http_t">http_t</a> *http,<br>
const char *resource,<br>
const char *filename<br>
<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </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>
<a href="#http_t">http_t</a> *http,<br>
<a href="#ipp_t">ipp_t</a> *request,<br>
const char *resource,<br>
<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </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>
<a href="#http_t">http_t</a> *http,<br>
const char *buffer,<br>
size_t length<br>
after <a href="#cupsStartDocument"><code>cupsStartDocument</code></a> to provide a document file.
</p>
+<h3 class="function"><span class="info"> CUPS 1.7 </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>
+ int fd,<br>
+ 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"> CUPS 1.5/OS X 10.7 </span><a name="httpAddCredential">httpAddCredential</a></h3>
<p class="description">Allocates and adds a single credential to an array.</p>
<p class="code">
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Length in bytes</p>
+<h3 class="function"><span class="info"> CUPS 1.7 </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>
+ <a href="#http_addr_t">http_addr_t</a> *addr,<br>
+ 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"> CUPS 1.2/OS X 10.5 </span><a name="httpAddrLocalhost">httpAddrLocalhost</a></h3>
<p class="description">Check for the local loopback address.</p>
<p class="code">
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Host name</p>
+<h3 class="function"><span class="info"> CUPS 1.7 </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>
+ <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"> CUPS 1.2/OS X 10.5 </span><a name="httpAddrString">httpAddrString</a></h3>
<p class="description">Convert an address to a numeric string.</p>
<p class="code">
<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"> CUPS 1.7 </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>
+ const char *host,<br>
+ int port,<br>
+ <a href="#http_addrlist_t">http_addrlist_t</a> *addrlist,<br>
+ int family,<br>
+ <a href="#http_encryption_t">http_encryption_t</a> encryption,<br>
+ int blocking,<br>
+ int msec,<br>
+ 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 "cancel" variable</dd>
+</dl>
+<h4 class="returnvalue">Return Value</h4>
+<p class="description">New HTTP connection</p>
+<h3 class="function"><span class="info"> DEPRECATED </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>
</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"> CUPS 1.5/OS X 10.7 </span><a name="httpCopyCredentials">httpCopyCredentials</a></h3>
<p class="description">Copy the credentials associated with an encrypted
connection.</p>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">1 if blocking, 0 if non-blocking</p>
+<h3 class="function"><span class="info"> CUPS 1.7 </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>
+ <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"> CUPS 1.1.19/OS X 10.3 </span><a name="httpGetCookie">httpGetCookie</a></h3>
<p class="description">Get any cookie data from the response.</p>
<p class="code">
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">UNIX time</p>
+<h3 class="function"><span class="info"> CUPS 1.7 </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>
+ <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"> CUPS 1.2/OS X 10.5 </span><a name="httpGetFd">httpGetFd</a></h3>
<p class="description">Get the file descriptor associated with a connection.</p>
<p class="code">
<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </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>
<a href="#http_t">http_t</a> *http<br>
);</p>
<h4 class="parameters">Parameters</h4>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Status of call (0 = success)</p>
+<h3 class="function"><span class="info"> CUPS 1.7 </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>
+ <a href="#http_t">http_t</a> *http,<br>
+ char *buffer,<br>
+ 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">
</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"> CUPS 1.7 </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>
+ <a href="#http_t">http_t</a> *http,<br>
+ char *uri,<br>
+ 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"> DEPRECATED </span><a name="httpReconnect">httpReconnect</a></h3>
<p class="description">Reconnect to a HTTP server.</p>
<p class="code">
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>
<p class="code">
void httpSetExpect (<br>
<a href="#http_t">http_t</a> *http,<br>
- <a href="#http_status_t">http_status_t</a> expect<br>
+ 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 "expect" argument.
+<p class="discussion">Currently only <code>HTTP_STATUS_CONTINUE</code> is supported for the "expect"
+argument.
</p>
<h3 class="function"><a name="httpSetField">httpSetField</a></h3>
<p class="description">Return a short string describing a HTTP status code.</p>
<p class="code">
const char *httpStatus (<br>
- <a href="#http_status_t">http_status_t</a> status<br>
+ http_status_t status<br>
);</p>
<h4 class="parameters">Parameters</h4>
<dl>
<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>
<a href="#http_t">http_t</a> *http<br>
);</p>
<h4 class="parameters">Parameters</h4>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Number of bytes written</p>
+<h3 class="function"><span class="info"> CUPS 1.7 </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>
+ <a href="#http_t">http_t</a> *http,<br>
+ 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">
<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>),
<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>),
<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>),
<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>),
<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>),
<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>),
<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>),
<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>),
<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>),
<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>),
<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>),
<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>),
<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>),
<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">
<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>),
<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"> CUPS 1.7 </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>
+ <a href="#ipp_t">ipp_t</a> *ipp,<br>
+ ipp_tag_t group,<br>
+ ipp_tag_t value_tag,<br>
+ const char *name,<br>
+ const char *language,<br>
+ const char *format,<br>
+ ...<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"> CUPS 1.7 </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>
+ <a href="#ipp_t">ipp_t</a> *ipp,<br>
+ ipp_tag_t group,<br>
+ ipp_tag_t value_tag,<br>
+ const char *name,<br>
+ const char *language,<br>
+ const char *format,<br>
+ 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">
<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>),
trailing nul. The buffer pointer can be NULL to get the required length,
just like (v)snprintf.
+</p>
+<h3 class="function"><span class="info"> CUPS 1.7 </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>
+ <a href="#ipp_attribute_t">ipp_attribute_t</a> *attr,<br>
+ 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"> CUPS 1.7 </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>
+ <a href="#ipp_attribute_t">ipp_attribute_t</a> *attr,<br>
+ 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"> CUPS 1.6/OS X 10.8 </span><a name="ippCopyAttribute">ippCopyAttribute</a></h3>
<p class="description">Copy an attribute.</p>
attributes-natural-language attributes added. The
attributes-natural-language value is derived from the current locale.
+</p>
+<h3 class="function"><span class="info"> CUPS 1.7 </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>
+ <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,
+"utf-8" and a value derived from the current locale are substituted,
+respectively.
+
</p>
<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippNextAttribute">ippNextAttribute</a></h3>
<p class="description">Return the next attribute in the message.</p>
<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>
<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>
<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>
<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>
<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>
<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.
<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>
<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>
<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.
<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>
<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"> CUPS 1.6/OS X 10.8 </span><a name="ippSetString">ippSetString</a></h3>
<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>
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"> CUPS 1.7 </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>
+ <a href="#ipp_t">ipp_t</a> *ipp,<br>
+ <a href="#ipp_attribute_t">ipp_attribute_t</a> **attr,<br>
+ int element,<br>
+ const char *format,<br>
+ ...<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"> CUPS 1.7 </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>
+ <a href="#ipp_t">ipp_t</a> *ipp,<br>
+ <a href="#ipp_attribute_t">ipp_attribute_t</a> **attr,<br>
+ int element,<br>
+ const char *format,<br>
+ 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"> CUPS 1.6/OS X 10.8 </span><a name="ippSetValueTag">ippSetValueTag</a></h3>
<p class="description">Set the value tag of an attribute.</p>
<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>
<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.
<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>
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"> CUPS 1.2/OS X 10.5 </span><a name="ipp_iocb_t">ipp_iocb_t</a></h3>
<p class="description">IPP IO Callback Function </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"> CUPS 1.7 </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"> CUPS 1.7 </span></dt>
+<dd class="description">Allow field </dd>
<dt>HTTP_FIELD_AUTHORIZATION </dt>
<dd class="description">Authorization field</dd>
<dt>HTTP_FIELD_CONNECTION </dt>
<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"> CUPS 1.7 </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>
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"> CUPS 1.7 </span></dt>
+<dd class="description">Unknown request method, waiting for blank line </dd>
+<dt>HTTP_STATE_UNKNOWN_VERSION <span class="info"> CUPS 1.7 </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"> CUPS 1.4 </span></dt>
+<dt>CUPS_STATUS_AUTHORIZATION_CANCELED <span class="info"> CUPS 1.4 </span></dt>
<dd class="description">User canceled authorization </dd>
-<dt>HTTP_BAD_GATEWAY </dt>
+<dt>CUPS_STATUS_PKI_ERROR <span class="info"> CUPS 1.5/OS X 10.7 </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"> CUPS 1.7 </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"> CUPS 1.5/OS X 10.7 </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>
<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>
<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>
<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>
<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"> CUPS 1.2/OS X 10.5 </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"> CUPS 1.2/OS X 10.5 </span></dt>
+<dd class="description">Create a job subscription </dd>
+<dt>IPP_OP_CREATE_PRINTER_SUBSCRIPTION <span class="info"> CUPS 1.2/OS X 10.5 </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"> CUPS 1.2/OS X 10.5 </span></dt>
+<dt>IPP_OP_CUPS_AUTHENTICATE_JOB <span class="info"> CUPS 1.2/OS X 10.5 </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"> DEPRECATED </span></dt>
+<dt>IPP_OP_CUPS_GET_CLASSES <span class="info"> DEPRECATED </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"> CUPS 1.4/OS X 10.6 </span></dt>
+<dt>IPP_OP_CUPS_GET_DOCUMENT <span class="info"> CUPS 1.4/OS X 10.6 </span></dt>
<dd class="description">Get a document file </dd>
-<dt>CUPS_GET_PPD <span class="info"> CUPS 1.3/OS X 10.5 </span></dt>
+<dt>IPP_OP_CUPS_GET_PPD <span class="info"> CUPS 1.3/OS X 10.5 </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"> CUPS 1.2/OS X 10.5 </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"> CUPS 1.2/OS X 10.5 </span></dt>
-<dd class="description">Create a job subscription </dd>
-<dt>IPP_CREATE_PRINTER_SUBSCRIPTION <span class="info"> CUPS 1.2/OS X 10.5 </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"> CUPS 1.2/OS X 10.5 </span></dt>
+<dt>IPP_OP_GET_NOTIFICATIONS <span class="info"> CUPS 1.2/OS X 10.5 </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"> CUPS 1.2/OS X 10.5 </span></dt>
+<dt>IPP_OP_GET_SUBSCRIPTIONS <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
<dd class="description">Get list of subscriptions </dd>
-<dt>IPP_GET_SUBSCRIPTION_ATTRIBUTES <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
+<dt>IPP_OP_GET_SUBSCRIPTION_ATTRIBUTES <span class="info"> CUPS 1.2/OS X 10.5 </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"> CUPS 1.2/OS X 10.5 </span></dt>
+<dt>IPP_OP_RENEW_SUBSCRIPTION <span class="info"> CUPS 1.2/OS X 10.5 </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>
<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"> CUPS 1.5/OS X 10.7 </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"> CUPS 1.7 </span></dt>
+<dd class="description">cups-error-account-authorization-failed </dd>
+<dt>IPP_STATUS_ERROR_CUPS_ACCOUNT_CLOSED <span class="info"> CUPS 1.7 </span></dt>
+<dd class="description">cups-error-account-closed </dd>
+<dt>IPP_STATUS_ERROR_CUPS_ACCOUNT_INFO_NEEDED <span class="info"> CUPS 1.7 </span></dt>
+<dd class="description">cups-error-account-info-needed </dd>
+<dt>IPP_STATUS_ERROR_CUPS_ACCOUNT_LIMIT_REACHED <span class="info"> CUPS 1.7 </span></dt>
+<dd class="description">cups-error-account-limit-reached </dd>
+<dt>IPP_STATUS_ERROR_CUPS_AUTHENTICATION_CANCELED <span class="info"> CUPS 1.5/OS X 10.7 </span></dt>
+<dd class="description">cups-authentication-canceled - Authentication canceled by user </dd>
+<dt>IPP_STATUS_ERROR_CUPS_PKI <span class="info"> CUPS 1.5/OS X 10.7 </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"> CUPS 1.5/OS X 10.7 </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>
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"
"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 ""
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 ""
msgid "\tprinting is enabled"
msgstr ""
-#: systemv/lpstat.c:1484
+#: systemv/lpstat.c:1441
#, c-format
msgid "\tqueued for %s"
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 ""
" 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 ""
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 ""
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"
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 ""
" 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 ""
msgid " %s Bad cupsUIConstraints %s: \"%s\""
msgstr ""
-#: systemv/cupstestppd.c:3391
+#: systemv/cupstestppd.c:3392
#, c-format
msgid " %s Bad language \"%s\"."
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 ""
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 ""
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 ""
" 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 ""
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 ""
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 ""
msgid " -H samba-server Use the named SAMBA server."
msgstr ""
-#: test/ipptool.c:4410
+#: test/ipptool.c:4452
msgid " -I Ignore errors."
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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
msgid " -t Test PPDs instead of generating them."
msgstr ""
-#: scheduler/main.c:2025
+#: scheduler/main.c:1992
msgid " -t Test the configuration file."
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 ""
#: 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 ""
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 ""
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 ""
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 ""
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."
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 ""
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 ""
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 ""
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 ""
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 ""
msgid "Accept Jobs"
msgstr ""
-#: cups/http-support.c:1284
+#: cups/http-support.c:1285
msgid "Accepted"
msgstr ""
msgid "Always"
msgstr ""
-#: backend/socket.c:129
+#: backend/socket.c:130
msgid "AppSocket/HP JetDirect"
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 ""
#: 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 ""
msgid "Bad UIConstraints"
msgstr ""
-#: scheduler/ipp.c:1380
+#: scheduler/ipp.c:1438
#, c-format
msgid "Bad copies value %d."
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 ""
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 ""
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 ""
msgid "Bond Paper"
msgstr ""
-#: backend/usb-darwin.c:1846
+#: backend/usb-darwin.c:1875
#, c-format
msgid "Boolean expected for waiteof option \"%s\"."
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 ""
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 ""
msgid "Clean Print Heads"
msgstr ""
-#: scheduler/ipp.c:3878
+#: scheduler/ipp.c:3936
msgid "Close-Job doesn't support the job-uri attribute."
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 ""
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 ""
msgid "Darkness"
msgstr ""
-#: backend/lpd.c:1105
+#: backend/lpd.c:1122
msgid "Data file sent successfully."
msgstr ""
msgid "DeskJet Series"
msgstr ""
-#: scheduler/ipp.c:1346
+#: scheduler/ipp.c:1362
#, c-format
msgid "Destination \"%s\" is not accepting jobs."
msgstr ""
msgid "Disabled"
msgstr ""
-#: scheduler/ipp.c:6127
+#: scheduler/ipp.c:6187
#, c-format
msgid "Document #%d does not exist in job #%d."
msgstr ""
msgid "Executive"
msgstr ""
-#: cups/http-support.c:1327
+#: cups/http-support.c:1328
msgid "Expectation Failed"
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 ""
msgid "Folio"
msgstr ""
-#: cups/http-support.c:1306
+#: cups/http-support.c:1307
msgid "Forbidden"
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 ""
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 ""
msgid "Intellitech"
msgstr ""
-#: cups/http-support.c:1333
+#: cups/http-support.c:1334
msgid "Internal Server Error"
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 ""
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 ""
msgid "Job Stopped"
msgstr ""
-#: scheduler/ipp.c:10068
+#: scheduler/ipp.c:10129
msgid "Job is completed and cannot be changed."
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 ""
msgid "Jobs"
msgstr ""
-#: backend/lpd.c:185
+#: backend/lpd.c:186
msgid "LPD/LPR Host or Printer"
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 ""
msgid "Long-Edge (Portrait)"
msgstr ""
-#: cups/http-support.c:1558
+#: cups/http-support.c:1560
msgid "Looking for printer."
msgstr ""
msgid "Missing asterisk in column 1"
msgstr ""
-#: scheduler/ipp.c:6119
+#: scheduler/ipp.c:6179
msgid "Missing document-number attribute."
msgstr ""
msgid "Missing form variable"
msgstr ""
-#: scheduler/ipp.c:9422
+#: scheduler/ipp.c:9483
msgid "Missing last-document attribute in request."
msgstr ""
msgid "Missing media-size in media-col."
msgstr ""
-#: scheduler/ipp.c:6673
+#: scheduler/ipp.c:6733
msgid "Missing notify-subscription-ids attribute."
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 ""
msgid "Move Job"
msgstr ""
-#: cups/http-support.c:1290
+#: cups/http-support.c:1291
msgid "Moved Permanently"
msgstr ""
msgid "No"
msgstr ""
-#: cups/http-support.c:1287
+#: cups/http-support.c:1288
msgid "No Content"
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 ""
msgid "No attributes in request."
msgstr ""
-#: scheduler/ipp.c:3034
+#: scheduler/ipp.c:3092
msgid "No authentication information provided."
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 ""
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 ""
msgstr ""
#: filter/rastertoepson.c:1147 filter/rastertohp.c:876
-#: filter/rastertolabel.c:1302
+#: filter/rastertolabel.c:1291
msgid "No pages were found."
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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
msgid "Out of date PPD cache file."
msgstr ""
-#: cups/ppd-cache.c:1381
+#: cups/ppd-cache.c:1416
msgid "Out of memory."
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 ""
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 ""
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 ""
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 ""
msgid "Printer Settings"
msgstr ""
-#: backend/ipp.c:1893
+#: backend/ipp.c:1988
msgid "Printer cannot print supplied content."
msgstr ""
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 ""
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 ""
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 ""
msgid "Reprint After Error"
msgstr ""
-#: cups/http-support.c:1312
+#: cups/http-support.c:1313
msgid "Request Entity Too Large"
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 ""
msgid "Server Stopped"
msgstr ""
-#: cups/http-support.c:1330
+#: cups/http-support.c:1331
msgid "Service Unavailable"
msgstr ""
msgid "Special Paper"
msgstr ""
-#: backend/lpd.c:1057
+#: backend/lpd.c:1074
#, c-format
msgid "Spooling job, %.0f%% complete."
msgstr ""
msgstr ""
#: filter/rastertoepson.c:1069 filter/rastertohp.c:793
-#: filter/rastertolabel.c:1225
+#: filter/rastertolabel.c:1214
#, c-format
msgid "Starting page %d."
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 ""
msgid "Super B/A3"
msgstr ""
-#: cups/http-support.c:1275
+#: cups/http-support.c:1276
msgid "Switching Protocols"
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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
msgid "Tray 4"
msgstr ""
-#: cups/http-support.c:1315
+#: cups/http-support.c:1316
msgid "URI Too Long"
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 ""
msgid "Unable to cancel RSS subscription"
msgstr ""
-#: backend/ipp.c:1942
+#: backend/ipp.c:2037
msgid "Unable to cancel print job."
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 ""
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 ""
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 ""
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 ""
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 ""
msgid "Unable to get printer status"
msgstr ""
-#: backend/ipp.c:933
+#: backend/ipp.c:969
msgid "Unable to get printer status."
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 ""
msgid "Unable to open PPD file"
msgstr ""
-#: backend/ipp.c:2040
+#: backend/ipp.c:2135
msgid "Unable to open compressed print file"
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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
msgid "Unable to write uncompressed print data: %s"
msgstr ""
-#: cups/http-support.c:1303
+#: cups/http-support.c:1304
msgid "Unauthorized"
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 ""
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 ""
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 ""
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 ""
msgid "Unsupported value type"
msgstr ""
-#: cups/http-support.c:1318
+#: cups/http-support.c:1319
msgid "Upgrade Required"
msgstr ""
" [-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
msgid "Usage: cupsctl [options] [param=value ... paramN=valueN]"
msgstr ""
-#: scheduler/main.c:2017
+#: scheduler/main.c:1984
msgid "Usage: cupsd [options]"
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 ""
" 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 ""
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 ""
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 ""
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 ""
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 ""
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 ""
msgid "ipptool: Unknown option \"-%c\"."
msgstr ""
-#: scheduler/ipp.c:7838
+#: scheduler/ipp.c:7898
msgid "job-printer-uri attribute missing."
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 ""
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 ""
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 ""
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 ""
"%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.";
"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";
"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";
"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";
"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";
"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";
"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.";
"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\".";
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"
"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"
"\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"
" 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 "
"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."
"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."
" 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."
" 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"
" 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."
"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."
"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."
"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."
"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."
" 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"
" %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"
" %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"
" %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"
" %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"
" %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"
" **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"
" **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"
" **ERROR** DefaultImageableArea incorrecte %s\n"
" REF: pàgina 102, secció 5.15."
-#: systemv/cupstestppd.c:550
#, c-format
msgid ""
" **FAIL** Bad DefaultPaperDimension %s\n"
" **ERROR** DefaultPaperDimension incorrecte %s\n"
" REF: pàgina 103, secció 5.15."
-#: systemv/cupstestppd.c:623
#, c-format
msgid ""
" **FAIL** Bad FileVersion \"%s\"\n"
" **ERROR** FileVersion incorrecte «%s»\n"
" REF: pàgina 56, secció 5.3."
-#: systemv/cupstestppd.c:667
#, c-format
msgid ""
" **FAIL** Bad FormatVersion \"%s\"\n"
" **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."
" **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"
" **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"
" **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."
" **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."
" **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."
" **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"
" **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 "
" **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 "
" **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"
" **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."
" **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."
" **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."
" **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."
" **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"
" 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."
" **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."
" **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."
" **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."
" **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."
" **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."
" **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."
" **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."
" **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"
" 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."
" **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"
" 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."
" **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."
" **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"
" %%%%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"
" %%%%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"
" %%%%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"
" 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"
" 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"
" %%BoundingBox incorrecte o inexistent: comentari.\n"
" REF: pàgina 39, %%BoundingBox:"
-#: systemv/cupstestdsc.c:372
#, c-format
msgid ""
" Missing or bad %%Page: comments.\n"
" %%Page incorrecte o inexistent: comentaris.\n"
" REF: pàgina 53, %%Page:"
-#: systemv/cupstestdsc.c:352
#, c-format
msgid ""
" Missing or bad %%Pages: comment.\n"
" %%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}"
" -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)."
" -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\"."
"%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\" "
"%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 "
"%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"
"\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"
" 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 "
"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 "
"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"
" 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."
"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 (#)."
"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 (#)."
"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 (#)."
"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."
"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)."
"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"
" [-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"
" 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"
" 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://"
"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."
"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."
"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."
"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."
"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."
"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"
"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."
"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."
"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 "
"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."
"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."
"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"
#~ 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\""
#~ 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."
#~ 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."
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"
"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"
"\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"
" 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"
" 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."
" 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"
" %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"
" %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"
" %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"
" %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"
" %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"
" **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"
" **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"
" **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"
" **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"
" **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"
" **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."
" **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"
" **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"
" **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."
" **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."
" **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."
" **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"
" **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"
" **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."
" **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."
" **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."
" **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."
" **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"
" 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."
" **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."
" **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."
" **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."
" **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."
" **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."
" **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."
" **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."
" **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"
" 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."
" **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"
" 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."
" **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."
" **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"
" %%%%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"
" %%%%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"
" %%%%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"
" 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"
" 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"
" Falta comentario %%BoundingBox: o incorrecto.\n"
" REF: Página 39, %%BoundingBox:"
-#: systemv/cupstestdsc.c:372
#, c-format
msgid ""
" Missing or bad %%Page: comments.\n"
" Falta comentario %%Page: o incorrecto.\n"
" REF: Página 53, %%Page:"
-#: systemv/cupstestdsc.c:352
#, c-format
msgid ""
" Missing or bad %%Pages: comment.\n"
" 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"
"\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"
" 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"
" 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"
" [-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"
" 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"
" 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."
"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."
"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."
"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."
"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."
# 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:
#
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"
"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"
" 警告 %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."
" 警告 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."
" 警告 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"
" 警告 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."
" 警告 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."
" 警告 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."
" 警告 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"
" %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"
" %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"
" %s 必須の PageRegion オプションが見つかりません。\n"
" 参照: 100 ページ、セクション 5.14。"
-#: systemv/cupstestppd.c:3106
#, c-format
msgid ""
" %s Missing REQUIRED PageSize option.\n"
" %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"
" %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"
" **失敗** %s は 1284DeviceID でなければなりません。\n"
" 参照: 72 ページ、セクション 5.5"
-#: systemv/cupstestppd.c:580
#, c-format
msgid ""
" **FAIL** Bad Default%s %s\n"
" **失敗** 不正な Default%s %s\n"
" 参照: 40 ページ、セクション 4.5。"
-#: systemv/cupstestppd.c:514
#, c-format
msgid ""
" **FAIL** Bad DefaultImageableArea %s\n"
" **失敗** %s は不正な DefaultImageableArea です。\n"
" 参照: 102 ページ、セクション 5.15。"
-#: systemv/cupstestppd.c:550
#, c-format
msgid ""
" **FAIL** Bad DefaultPaperDimension %s\n"
" **失敗** %s は不正な DefaultPaperDimension です。\n"
" 参照: 103 ページ、セクション 5.15。"
-#: systemv/cupstestppd.c:623
#, c-format
msgid ""
" **FAIL** Bad FileVersion \"%s\"\n"
" **失敗** 不正なFileVersion \"%s\"\n"
" 参照: 56 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:667
#, c-format
msgid ""
" **FAIL** Bad FormatVersion \"%s\"\n"
" **失敗** FormatVersion が違います \"%s\"\n"
" 参照: 56 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:1025
msgid ""
" **FAIL** Bad JobPatchFile attribute in file\n"
" REF: Page 24, section 3.4."
" **失敗** ファイルに不正な 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"
" **失敗** 不正な Manufacturer (\"%s\" でなければなりません)\n"
" 参照: 211 ページ、表 D.1。"
-#: systemv/cupstestppd.c:800
#, c-format
msgid ""
" **FAIL** Bad ModelName - \"%c\" not allowed in string.\n"
" **失敗** 不正な 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."
" **失敗** 不正な PSVersion - \"(文字列) 整数\" ではありません。\n"
" 参照: 62-64 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:917
msgid ""
" **FAIL** Bad Product - not \"(string)\".\n"
" REF: Page 62, section 5.3."
" **失敗** 不正な 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."
" **失敗** 不正な ShortNickName - 31 文字を超えています。\n"
" 参照: 64-65 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:1149
#, c-format
msgid ""
" **FAIL** Bad option %s choice %s\n"
" **失敗** 不正な %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"
" **失敗** Default%s は必須\n"
" 参照: 40 ページ、セクション 4.5。"
-#: systemv/cupstestppd.c:499
msgid ""
" **FAIL** REQUIRED DefaultImageableArea\n"
" REF: Page 102, section 5.15."
" **失敗** DefaultImageableArea は必須\n"
" 参照: 102 ページ、セクション 5.15。"
-#: systemv/cupstestppd.c:535
msgid ""
" **FAIL** REQUIRED DefaultPaperDimension\n"
" REF: Page 103, section 5.15."
" **失敗** DefaultPaperDimension は必須\n"
" 参照: 103 ページ、セクション 5.15。"
-#: systemv/cupstestppd.c:641
msgid ""
" **FAIL** REQUIRED FileVersion\n"
" REF: Page 56, section 5.3."
" **失敗** FileVersion は必須\n"
" 参照: 56 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:685
msgid ""
" **FAIL** REQUIRED FormatVersion\n"
" REF: Page 56, section 5.3."
" **失敗** FormatVersion は必須\n"
" 参照: 56 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:1076
#, c-format
msgid ""
" **FAIL** REQUIRED ImageableArea for PageSize %s\n"
" 参照: 41 ページ、セクション 5。\n"
" 参照: 102 ページ、セクション 5.15。"
-#: systemv/cupstestppd.c:705
msgid ""
" **FAIL** REQUIRED LanguageEncoding\n"
" REF: Pages 56-57, section 5.3."
" **失敗** LanguageEncoding は必須\n"
" 参照: 56-57 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:725
msgid ""
" **FAIL** REQUIRED LanguageVersion\n"
" REF: Pages 57-58, section 5.3."
" **失敗** LanguageVersion は必須\n"
" 参照: 57-58 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:779
msgid ""
" **FAIL** REQUIRED Manufacturer\n"
" REF: Pages 58-59, section 5.3."
" **失敗** Manufacturer は必須\n"
" 参照: 58-59 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:819
msgid ""
" **FAIL** REQUIRED ModelName\n"
" REF: Pages 59-60, section 5.3."
" **失敗** ModelName は必須\n"
" 参照: 59-60 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:839
msgid ""
" **FAIL** REQUIRED NickName\n"
" REF: Page 60, section 5.3."
" **失敗** NickName は必須\n"
" 参照: 60 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:899
msgid ""
" **FAIL** REQUIRED PCFileName\n"
" REF: Pages 61-62, section 5.3."
" **失敗** PCFileName は必須\n"
" 参照: 61-62 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:974
msgid ""
" **FAIL** REQUIRED PSVersion\n"
" REF: Pages 62-64, section 5.3."
" **失敗** PSVersion は必須\n"
" 参照: 62-64 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:879
msgid ""
" **FAIL** REQUIRED PageRegion\n"
" REF: Page 100, section 5.14."
" **失敗** PageRegion は必須\n"
" 参照: 100 ページ、セクション 5.14。"
-#: systemv/cupstestppd.c:1045
msgid ""
" **FAIL** REQUIRED PageSize\n"
" REF: Page 41, section 5.\n"
" 参照: 41 ページ、セクション 5。\n"
" 参照: 99 ページ、セクション 5.14。"
-#: systemv/cupstestppd.c:859
msgid ""
" **FAIL** REQUIRED PageSize\n"
" REF: Pages 99-100, section 5.14."
" **失敗** PageSize は必須\n"
" 参照: 99-100 ページ、セクション 5.14。"
-#: systemv/cupstestppd.c:1098
#, c-format
msgid ""
" **FAIL** REQUIRED PaperDimension for PageSize %s\n"
" 参照: 41 ページ、セクション 5。\n"
" 参照: 103 ページ、セクション 5.15。"
-#: systemv/cupstestppd.c:934
msgid ""
" **FAIL** REQUIRED Product\n"
" REF: Page 62, section 5.3."
" **失敗** Product は必須\n"
" 参照: 62 ページ、セクション 5.3。"
-#: systemv/cupstestppd.c:1009
msgid ""
" **FAIL** REQUIRED ShortNickName\n"
" REF: Page 64-65, section 5.3."
" **失敗** 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"
" 不正な %%%%BoundingBox: (%d 行)。\n"
" 参照: 39 ページ、%%%%BoundingBox:"
-#: systemv/cupstestdsc.c:305
#, c-format
msgid ""
" Bad %%%%Page: on line %d.\n"
" 不正な %%%%Page: (%d 行)。\n"
" 参照: 53 ページ、%%%%Page:"
-#: systemv/cupstestdsc.c:218 systemv/cupstestdsc.c:258
#, c-format
msgid ""
" Bad %%%%Pages: on line %d.\n"
" 不正な %%%%Pages: (%d 行)。\n"
" REF: Page 43, %%%%Pages:"
-#: systemv/cupstestdsc.c:176
#, c-format
msgid ""
" Line %d is longer than 255 characters (%d).\n"
" %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"
" 先頭行に %!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"
" %%BoundingBox: コメントが見つからないか不正です。\n"
" 参照: 39 ページ、%%BoundingBox:"
-#: systemv/cupstestdsc.c:372
#, c-format
msgid ""
" Missing or bad %%Page: comments.\n"
" %%Page: コメントが見つからないか不正です。\n"
" 参照: 53 ページ、%%Page:"
-#: systemv/cupstestdsc.c:352
#, c-format
msgid ""
" Missing or bad %%Pages: comment.\n"
" %%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"
"\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"
" 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 "
"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"
" プリンタードライバー = %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 (#)."
"プリンター名は 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 (#)."
"サブスクリプション名には、スペース、スラッシュ (/)、疑問府 (?)、ポンド記号 "
"(#) を使用しないでください。"
-#: 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"
"\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"
" 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"
" 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://"
"このページには 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."
"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."
"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."
"lpadmin: クラスからプリンターを削除できません:\n"
" 先にプリンター名を指定する必要があります。"
-#: systemv/lpadmin.c:656
msgid ""
"lpadmin: Unable to set the printer options:\n"
" You must specify a printer name first."
"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."
"ppdc: %d 行目、ファイル名 %s において ColorProfile に続いて resolution/"
"mediatype が必要です。"
-#: ppdc/ppdc-source.cxx:1863
#, c-format
msgid ""
"ppdc: Expected resolution/mediatype following SimpleColorProfile on line %d "
"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 を試します。"
*
* 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
*/
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...
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 */
* Save the connected port number...
*/
- _httpAddrSetPort(con->http.hostaddr, _httpAddrPort(&(lis->address)));
+ _httpAddrSetPort(con->http.hostaddr, httpAddrPort(&(lis->address)));
#ifdef AF_INET6
/*
#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);
/*
else
httpAddrString(&temp, con->servername, sizeof(con->servername));
- con->serverport = _httpAddrPort(&(lis->address));
+ con->serverport = httpAddrPort(&(lis->address));
}
/*
"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,
}
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");
}
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");
return;
}
- con->http.state = HTTP_WAITING;
+ con->http.state = HTTP_STATE_WAITING;
+ DEBUG_puts("cupsdReadClient: Set state to HTTP_STATE_WAITING "
+ "after HEAD.");
break;
}
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 :
{
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;
}
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 */
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);
}
"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,
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;
}
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)
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));
}
/*
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 */
if (httpAddrLocalhost(&(lis->address)))
continue;
- DNSSDPort = _httpAddrPort(&(lis->address));
+ DNSSDPort = httpAddrPort(&(lis->address));
break;
}
DNSSDMaster = NULL;
# else /* HAVE_AVAHI */
+ avahi_threaded_poll_stop(DNSSDMaster);
+
avahi_client_free(DNSSDClient);
DNSSDClient = NULL;
{
struct stat fileinfo; /* File information */
-
if (!fstat(con->file, &fileinfo))
length += fileinfo.st_size;
}
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");
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");
* 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");
/*
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...
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");
/*
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;
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;
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);
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...
lis->fd = fd;
# ifdef HAVE_SSL
- if (_httpAddrPort(&(lis->address)) == 443)
+ if (httpAddrPort(&(lis->address)) == 443)
lis->encryption = HTTP_ENCRYPT_ALWAYS;
# endif /* HAVE_SSL */
}
if (match)
{
- temp->port = _httpAddrPort(&(lis->address));
+ temp->port = httpAddrPort(&(lis->address));
break;
}
}
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);
*
* 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
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 */
{
*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;
_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 */
* 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))
* valid.
*/
+/*
+ * 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 */
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 */
#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 */
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 */
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 */
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;
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);
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, ...)
*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 */
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 */
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);
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);
}
}
{
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;
}
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)
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");
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);
}
_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...
job->printer = client->printer;
job->attrs = client->request;
- job->state = IPP_JOB_HELD;
+ job->state = IPP_JSTATE_HELD;
job->fd = -1;
client->request = NULL;
* 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...
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";
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);
}
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 */
{
/* 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 */
#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 */
{
};
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",
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));
/*
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);
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,
"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);
"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);
"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 */
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 ++)
{
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") ||
* 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 ++;
}
}
}
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 */
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);
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,
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,
"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 */
"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 */
"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 */
/* 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);
*/
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 */
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 */
/*
* 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);
/*
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"))
{
cupsArrayAdd(ra, "notify-user-data");
}
else
- cupsArrayAdd(ra, value);
+ cupsArrayAdd(ra, (void *)value);
}
return (ra);
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);
}
}
}
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);
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);
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);
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 */
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);
if (*s == '&' || *s == '<')
{
if (s > start)
- httpWrite2(&(client->http), start, s - start);
+ httpWrite2(client->http, start, s - start);
if (*s == '&')
- httpWrite2(&(client->http), "&", 5);
+ httpWrite2(client->http, "&", 5);
else
- httpWrite2(&(client->http), "<", 4);
+ httpWrite2(client->http, "<", 4);
start = s + 1;
}
}
if (s > start)
- httpWrite2(&(client->http), start, s - start);
+ httpWrite2(client->http, start, s - start);
}
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;
}
sprintf(temp, tformat, va_arg(ap, double));
- httpWrite2(&(client->http), temp, strlen(temp));
+ httpWrite2(client->http, temp, strlen(temp));
break;
case 'B' : /* Integer formats */
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 */
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 */
}
if (format > start)
- httpWrite2(&(client->http), start, format - start);
+ httpWrite2(client->http, start, format - start);
va_end(ap);
}
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;
}
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;
_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;
}
}
if (!valid_job_attributes(client))
{
- httpFlush(&(client->http));
+ httpFlush(client->http);
return;
}
* 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;
}
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;
}
* 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");
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);
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 */
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;
}
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;
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
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);
}
}
cupsArrayAdd(ra, "job-uri");
}
- respond_ipp(client, IPP_OK, NULL);
+ respond_ipp(client, IPP_STATUS_OK, NULL);
_cupsRWLockRead(&(client->printer->rwlock));
(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)
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,
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);
}
}
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));
if (!valid_job_attributes(client))
{
- httpFlush(&(client->http));
+ httpFlush(client->http);
return;
}
* 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;
}
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;
}
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;
}
* 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;
}
{
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...
#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;
}
* 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");
if (!valid_job_attributes(client))
{
- httpFlush(&(client->http));
+ httpFlush(client->http);
return;
}
* 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;
}
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;
}
#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;
}
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;
}
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;
}
{
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;
}
{
int error = errno; /* Write error */
- job->state = IPP_JOB_ABORTED;
+ job->state = IPP_JSTATE_ABORTED;
close(job->fd);
job->fd = -1;
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;
}
{
#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;
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;
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;
{
int error = errno; /* Write error */
- job->state = IPP_JOB_ABORTED;
+ job->state = IPP_JSTATE_ABORTED;
close(job->fd);
job->fd = -1;
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;
}
{
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...
#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;
}
* 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");
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;
}
* 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;
}
if (!valid_doc_attributes(client))
{
- httpFlush(&(client->http));
+ httpFlush(client->http);
return;
}
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";
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;
}
* 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;
}
{
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;
_cupsRWUnlock(&(client->printer->rwlock));
#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;
}
* 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");
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;
}
* 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;
}
if (!valid_doc_attributes(client))
{
- httpFlush(&(client->http));
+ httpFlush(client->http);
return;
}
* 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;
}
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;
}
#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;
}
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";
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;
}
{
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;
}
{
int error = errno; /* Write error */
- job->state = IPP_JOB_ABORTED;
+ job->state = IPP_JSTATE_ABORTED;
close(job->fd);
job->fd = -1;
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;
}
{
#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;
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;
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;
{
int error = errno; /* Write error */
- job->state = IPP_JOB_ABORTED;
+ job->state = IPP_JSTATE_ABORTED;
close(job->fd);
job->fd = -1;
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;
}
{
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;
_cupsRWUnlock(&(client->printer->rwlock));
#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;
}
* 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");
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);
}
* 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;
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);
}
* 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);
}
* 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
* 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;
}
}
* 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"))
{
/*
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, "/"))
{
* 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,
"</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));
}
/*
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...
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);
* 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
{
/*
* 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)
{
* 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;
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)
{
* 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
{
* 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;
}
* 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)));
}
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);
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 */
/*
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),
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...
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,
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...
*/
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));
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);
/*
* 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)
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);
}
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));
}
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);
{
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("");
}
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");
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 */
/*
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);
+ }
}
/*
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...
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";
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);
}
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 */
* Check operation attributes...
*/
- valid_doc_attributes(client);
+ valid = valid_doc_attributes(client);
/*
* Check the various job template 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;
}
}
}
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 */
}
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;
}
}
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;
}
}
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);
}
* 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());
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,
* 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;
}
goto col_error;
}
break;
+ case IPP_TAG_STRING :
+ ippAddOctetString(col, IPP_TAG_ZERO, attr, token, strlen(token));
+ break;
default :
if (!strchr(token, ','))
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;
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;
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;
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;
HTTP_URI_OVERFLOW]);
}
- if (strlen(attr->values[i].string.text) > 1023)
+ if (strlen(attr->values[i].string.text) > (IPP_MAX_URI - 1))
{
valid = 0;
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;
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;
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;
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;
#
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
72BF96371333042100B1EAD7 /* Project object */ = {
isa = PBXProject;
attributes = {
- LastUpgradeCheck = 0440;
+ LastUpgradeCheck = 0450;
ORGANIZATIONNAME = "Apple Inc.";
};
buildConfigurationList = 72BF963A1333042100B1EAD7 /* Build configuration list for PBXProject "CUPS" */;
*/
#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 */
/*
*/
#define HAVE_COREFOUNDATION_H 1
-#define HAVE_CFPRIV_H 1
-#define HAVE_CFBUNDLEPRIV_H 1
+/* #undef HAVE_CFPRIV_H */
+/* #undef HAVE_CFBUNDLEPRIV_H */
/*
*/
#define HAVE_MEMBERSHIP_H 1
-#define HAVE_MEMBERSHIPPRIV_H 1
+/* #undef HAVE_MEMBERSHIPPRIV_H */
#define HAVE_MBR_UID_TO_UUID 1
* Do we have Darwin's IOKit private headers?
*/
-#define HAVE_IOKIT_PWR_MGT_IOPMLIBPRIVATE_H 1
+/* #undef HAVE_IOKIT_PWR_MGT_IOPMLIBPRIVATE_H */
/*
#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 */
*/
#define HAVE_XPC 1
-#define HAVE_XPC_PRIVATE_H 1
+/* #undef HAVE_XPC_PRIVATE_H */
/*