Comparar commits
1 Commits
| Autor | SHA1 | Data | |
|---|---|---|---|
| 1f219e5ca3 |
@@ -3,8 +3,6 @@ CHANGES-1.3.txt
|
||||
|
||||
CHANGES IN CUPS V1.3.11
|
||||
|
||||
- The pdftops filter did not print landscape PDF pages properly
|
||||
(STR #2881)
|
||||
- The scheduler did not handle partial header lines properly from CGI
|
||||
programs (STR #3194)
|
||||
- The web interface could hang on OpenBSD (STR #3176, STR #3196)
|
||||
|
||||
+1
-34
@@ -1,39 +1,6 @@
|
||||
CHANGES.txt - 2009-06-08
|
||||
CHANGES.txt - 2009-05-16
|
||||
------------------------
|
||||
|
||||
CHANGES IN CUPS V1.4rc1
|
||||
|
||||
- The PPD compiler documentation was missing information on localization
|
||||
(STR #3212)
|
||||
- The IPP backend now reconnects after every request when talking to
|
||||
printers that claim IPP support but only use HTTP/1.0.
|
||||
- The PPD compiler crashed when both "Resolution" and "Group foo Option
|
||||
Resolution" were specified in the .drv file.
|
||||
- The PPD compiler's #if/#elif/#else/#endif did not work for undefined
|
||||
variables (STR #3210)
|
||||
- Static libraries could not be installed by a non-root user on systems
|
||||
needing a ranlib program (STR #3209)
|
||||
- The scheduler incorrectly always tried to copy Kerberos credentials
|
||||
for print jobs.
|
||||
- Updated the Spanish localization (STR #3204)
|
||||
- The scheduler crashed when getting the default paper size from
|
||||
libpaper (STR #3205, STR #3206)
|
||||
- The PPD compiler now defines six variables: CUPS_VERSION,
|
||||
CUPS_VERSION_MAJOR, CUPS_VERSION_MINOR, CUPS_VERSION_PATCH,
|
||||
PLATFORM_NAME, and PLATFORM_ARCH (STR #3203)
|
||||
- Fixed a whitespace skipping bug in cupsRasterInterpretPPD.
|
||||
- The scheduler did not return HTTP 403 (Forbidden) for authenticated
|
||||
users that were not authorized to do IPP operations (STR #3193)
|
||||
- The scheduler did not report more than 8 Product strings from a PPD
|
||||
file. Some PPD files have as many as 24.
|
||||
- ppdOpen*() could crash if a keyword had no value string (something
|
||||
that cupstestppd looks for...)
|
||||
- cupsLangDefault() did not return the correct language on Mac OS X.
|
||||
- The Mac OS X USB backend did not handle aborted or stalled pipe
|
||||
conditions properly, which prevented drivers from ejecting partial
|
||||
pages when a job was canceled or held.
|
||||
|
||||
|
||||
CHANGES IN CUPS V1.4b3
|
||||
|
||||
- Documentation fixes (STR #3044, STR #3057, STR #3153, STR #3158,
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
INSTALL - CUPS v1.4rc1 - 2009-05-22
|
||||
-----------------------------------
|
||||
INSTALL - CUPS v1.4b3 - 2009-05-19
|
||||
----------------------------------
|
||||
|
||||
This file describes how to compile and install CUPS from source code. For more
|
||||
information on CUPS see the file called "README.txt". A complete change log can
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
AR = @AR@
|
||||
AWK = @AWK@
|
||||
CC = @LIBTOOL@ @CC@
|
||||
CHMOD = @CHMOD@
|
||||
CXX = @LIBTOOL@ @CXX@
|
||||
DSO = @DSO@
|
||||
DSOXX = @DSOXX@
|
||||
|
||||
+1
-1
@@ -424,7 +424,7 @@ dist: all
|
||||
*BSD*) $(MAKE) $(MFLAGS) bsd;; \
|
||||
Darwin*) $(MAKE) $(MFLAGS) osx;; \
|
||||
IRIX*) $(MAKE) $(MFLAGS) tardist;; \
|
||||
Linux*) test ! -x /usr/bin/rpm || $(MAKE) $(MFLAGS) rpm;; \
|
||||
Linux*) $(MAKE) $(MFLAGS) rpm;; \
|
||||
SunOS*) $(MAKE) $(MFLAGS) pkg;; \
|
||||
esac
|
||||
|
||||
|
||||
+15
-2
@@ -1,5 +1,18 @@
|
||||
README - CUPS v1.4rc1 - 2009-05-22
|
||||
----------------------------------
|
||||
README - CUPS v1.4b3 - 2009-05-19
|
||||
---------------------------------
|
||||
|
||||
**********************************************************************
|
||||
**********************************************************************
|
||||
********** **********
|
||||
********** THIS IS BETA-RELEASE SOFTWARE. DO NOT USE ON **********
|
||||
********** PRODUCTION SYSTEMS! REPORT PROBLEMS TO THE **********
|
||||
********** CUPS FORUMS OR BUG REPORTING PAGES: **********
|
||||
********** **********
|
||||
********** http://www.cups.org/newsgroups.php (FORUMS) **********
|
||||
********** http://www.cups.org/str.php (BUGS) **********
|
||||
********** **********
|
||||
**********************************************************************
|
||||
**********************************************************************
|
||||
|
||||
Looking for compile instructions? Read the file "INSTALL.txt"
|
||||
instead...
|
||||
|
||||
+3
-17
@@ -702,9 +702,6 @@ main(int argc, /* I - Number of command-line args */
|
||||
|
||||
fputs("DEBUG: Getting supported attributes...\n", stderr);
|
||||
|
||||
if (http->version < HTTP_1_1)
|
||||
httpReconnect(http);
|
||||
|
||||
if ((supported = cupsDoRequest(http, request, resource)) == NULL)
|
||||
ipp_status = cupsLastError();
|
||||
else
|
||||
@@ -1024,9 +1021,6 @@ main(int argc, /* I - Number of command-line args */
|
||||
* Do the request...
|
||||
*/
|
||||
|
||||
if (http->version < HTTP_1_1)
|
||||
httpReconnect(http);
|
||||
|
||||
if (num_files > 1)
|
||||
response = cupsDoRequest(http, request, resource);
|
||||
else
|
||||
@@ -1136,9 +1130,6 @@ main(int argc, /* I - Number of command-line args */
|
||||
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE,
|
||||
"document-format", NULL, content_type);
|
||||
|
||||
if (http->version < HTTP_1_1)
|
||||
httpReconnect(http);
|
||||
|
||||
ippDelete(cupsDoFileRequest(http, request, resource, files[i]));
|
||||
|
||||
if (cupsLastError() > IPP_OK_CONFLICT)
|
||||
@@ -1207,7 +1198,7 @@ main(int argc, /* I - Number of command-line args */
|
||||
* Do the request...
|
||||
*/
|
||||
|
||||
if (!copies_sup || http->version < HTTP_1_1)
|
||||
if (!copies_sup)
|
||||
httpReconnect(http);
|
||||
|
||||
response = cupsDoRequest(http, request, resource);
|
||||
@@ -1378,9 +1369,6 @@ cancel_job(http_t *http, /* I - HTTP connection */
|
||||
* Do the request...
|
||||
*/
|
||||
|
||||
if (http->version < HTTP_1_1)
|
||||
httpReconnect(http);
|
||||
|
||||
ippDelete(cupsDoRequest(http, request, resource));
|
||||
|
||||
if (cupsLastError() > IPP_OK_CONFLICT)
|
||||
@@ -1440,9 +1428,6 @@ check_printer_state(
|
||||
* Do the request...
|
||||
*/
|
||||
|
||||
if (http->version < HTTP_1_1)
|
||||
httpReconnect(http);
|
||||
|
||||
if ((response = cupsDoRequest(http, request, resource)) != NULL)
|
||||
{
|
||||
report_printer_state(response, job_id);
|
||||
@@ -1817,7 +1802,8 @@ run_pictwps_filter(char **argv, /* I - Command-line arguments */
|
||||
* file...
|
||||
*/
|
||||
|
||||
dup2(fd, 1);
|
||||
close(1);
|
||||
dup(fd);
|
||||
close(fd);
|
||||
|
||||
if (!getuid())
|
||||
|
||||
+48
-205
@@ -16,10 +16,9 @@
|
||||
*
|
||||
* Contents:
|
||||
*
|
||||
* main() - Run the named backend.
|
||||
* sigterm_handler() - Flag when we get SIGTERM.
|
||||
* usage() - Show usage information.
|
||||
* walk_cb() - Show results of cupsSideChannelSNMPWalk...
|
||||
* main() - Run the named backend.
|
||||
* usage() - Show usage information.
|
||||
* walk_cb() - Show results of cupsSideChannelSNMPWalk...
|
||||
*/
|
||||
|
||||
/*
|
||||
@@ -35,21 +34,12 @@
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#include <sys/wait.h>
|
||||
#include <signal.h>
|
||||
|
||||
|
||||
/*
|
||||
* Local globals...
|
||||
*/
|
||||
|
||||
static int job_canceled = 0;
|
||||
|
||||
|
||||
/*
|
||||
* Local functions...
|
||||
*/
|
||||
|
||||
static void sigterm_handler(int sig);
|
||||
static void usage(void);
|
||||
static void walk_cb(const char *oid, const char *data, int datalen,
|
||||
void *context);
|
||||
@@ -68,7 +58,6 @@ main(int argc, /* I - Number of command-line args */
|
||||
char *argv[]) /* I - Command-line arguments */
|
||||
{
|
||||
int first_arg, /* First argument for backend */
|
||||
do_cancel = 0, /* Simulate a cancel-job via SIGTERM */
|
||||
do_ps = 0, /* Do PostScript query+test? */
|
||||
do_pcl = 0, /* Do PCL query+test? */
|
||||
do_side_tests = 0, /* Test side-channel ops? */
|
||||
@@ -80,12 +69,9 @@ main(int argc, /* I - Number of command-line args */
|
||||
char scheme[255], /* Scheme in URI == backend */
|
||||
backend[1024]; /* Backend path */
|
||||
const char *serverbin; /* CUPS_SERVERBIN environment variable */
|
||||
int fd, /* Temporary file descriptor */
|
||||
back_fds[2], /* Back-channel pipe */
|
||||
int back_fds[2], /* Back-channel pipe */
|
||||
side_fds[2], /* Side-channel socket */
|
||||
data_fds[2], /* Data pipe */
|
||||
back_pid = -1, /* Backend process ID */
|
||||
data_pid = -1, /* Trickle process ID */
|
||||
pid, /* Process ID */
|
||||
status; /* Exit status */
|
||||
|
||||
@@ -99,8 +85,6 @@ main(int argc, /* I - Number of command-line args */
|
||||
first_arg ++)
|
||||
if (!strcmp(argv[first_arg], "-d"))
|
||||
show_log = 1;
|
||||
else if (!strcmp(argv[first_arg], "-cancel"))
|
||||
do_cancel = 1;
|
||||
else if (!strcmp(argv[first_arg], "-pcl"))
|
||||
do_pcl = 1;
|
||||
else if (!strcmp(argv[first_arg], "-ps"))
|
||||
@@ -176,44 +160,33 @@ main(int argc, /* I - Number of command-line args */
|
||||
* Execute the trickle process as needed...
|
||||
*/
|
||||
|
||||
if (do_trickle || do_pcl || do_ps || do_cancel)
|
||||
if (do_trickle || do_pcl || do_ps)
|
||||
{
|
||||
pipe(data_fds);
|
||||
|
||||
signal(SIGTERM, sigterm_handler);
|
||||
|
||||
if ((data_pid = fork()) == 0)
|
||||
if ((pid = fork()) == 0)
|
||||
{
|
||||
/*
|
||||
* Trickle/query child comes here. Rearrange file descriptors so that
|
||||
* FD 1, 3, and 4 point to the backend...
|
||||
*/
|
||||
|
||||
if ((fd = open("/dev/null", O_RDONLY)) != 0)
|
||||
{
|
||||
dup2(fd, 0);
|
||||
close(fd);
|
||||
}
|
||||
close(0);
|
||||
open("/dev/null", O_RDONLY);
|
||||
|
||||
if (data_fds[1] != 1)
|
||||
{
|
||||
dup2(data_fds[1], 1);
|
||||
close(data_fds[1]);
|
||||
}
|
||||
close(1);
|
||||
dup(data_fds[1]);
|
||||
close(data_fds[0]);
|
||||
close(data_fds[1]);
|
||||
|
||||
if (back_fds[0] != 3)
|
||||
{
|
||||
dup2(back_fds[0], 3);
|
||||
close(back_fds[0]);
|
||||
}
|
||||
close(3);
|
||||
dup(back_fds[0]);
|
||||
close(back_fds[0]);
|
||||
close(back_fds[1]);
|
||||
|
||||
if (side_fds[0] != 4)
|
||||
{
|
||||
dup2(side_fds[0], 4);
|
||||
close(side_fds[0]);
|
||||
}
|
||||
close(4);
|
||||
dup(side_fds[0]);
|
||||
close(side_fds[0]);
|
||||
close(side_fds[1]);
|
||||
|
||||
if (do_trickle)
|
||||
@@ -230,97 +203,6 @@ main(int argc, /* I - Number of command-line args */
|
||||
sleep(1);
|
||||
}
|
||||
}
|
||||
else if (do_cancel)
|
||||
{
|
||||
/*
|
||||
* Write PS or PCL lines until we see SIGTERM...
|
||||
*/
|
||||
|
||||
int line = 0, page = 0; /* Current line and page */
|
||||
ssize_t bytes; /* Number of bytes of response data */
|
||||
char buffer[1024]; /* Output buffer */
|
||||
|
||||
|
||||
if (do_pcl)
|
||||
write(1, "\033E", 2);
|
||||
else
|
||||
write(1, "%!\n/Courier findfont 12 scalefont setfont 0 setgray\n", 52);
|
||||
|
||||
while (!job_canceled)
|
||||
{
|
||||
if (line == 0)
|
||||
{
|
||||
page ++;
|
||||
|
||||
if (do_pcl)
|
||||
snprintf(buffer, sizeof(buffer), "PCL Page %d\r\n\r\n", page);
|
||||
else
|
||||
snprintf(buffer, sizeof(buffer),
|
||||
"18 732 moveto (PS Page %d) show\n", page);
|
||||
|
||||
write(1, buffer, strlen(buffer));
|
||||
}
|
||||
|
||||
line ++;
|
||||
|
||||
if (do_pcl)
|
||||
snprintf(buffer, sizeof(buffer), "Line %d\r\n", line);
|
||||
else
|
||||
snprintf(buffer, sizeof(buffer), "18 %d moveto (Line %d) show\n",
|
||||
720 - line * 12, line);
|
||||
|
||||
write(1, buffer, strlen(buffer));
|
||||
|
||||
if (line >= 55)
|
||||
{
|
||||
/*
|
||||
* Eject after 55 lines...
|
||||
*/
|
||||
|
||||
line = 0;
|
||||
if (do_pcl)
|
||||
write(1, "\014", 1);
|
||||
else
|
||||
write(1, "showpage\n", 9);
|
||||
}
|
||||
|
||||
/*
|
||||
* Check for back-channel data...
|
||||
*/
|
||||
|
||||
if ((bytes = cupsBackChannelRead(buffer, sizeof(buffer), 0)) > 0)
|
||||
write(2, buffer, bytes);
|
||||
|
||||
/*
|
||||
* Throttle output to ~100hz...
|
||||
*/
|
||||
|
||||
usleep(10000);
|
||||
}
|
||||
|
||||
/*
|
||||
* Eject current page with info...
|
||||
*/
|
||||
|
||||
if (do_pcl)
|
||||
snprintf(buffer, sizeof(buffer),
|
||||
"Canceled on line %d of page %d\r\n\014\033E", line, page);
|
||||
else
|
||||
snprintf(buffer, sizeof(buffer),
|
||||
"\n18 %d moveto (Canceled on line %d of page %d)\nshowpage\n",
|
||||
720 - line * 12, line, page);
|
||||
|
||||
write(1, buffer, strlen(buffer));
|
||||
|
||||
/*
|
||||
* See if we get any back-channel data...
|
||||
*/
|
||||
|
||||
while ((bytes = cupsBackChannelRead(buffer, sizeof(buffer), 5.0)) > 0)
|
||||
write(2, buffer, bytes);
|
||||
|
||||
exit(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
@@ -400,7 +282,7 @@ main(int argc, /* I - Number of command-line args */
|
||||
|
||||
exit(0);
|
||||
}
|
||||
else if (data_pid < 0)
|
||||
else if (pid < 0)
|
||||
{
|
||||
perror("testbackend: Unable to fork");
|
||||
return (1);
|
||||
@@ -413,43 +295,34 @@ main(int argc, /* I - Number of command-line args */
|
||||
* Execute the backend...
|
||||
*/
|
||||
|
||||
if ((back_pid = fork()) == 0)
|
||||
if ((pid = fork()) == 0)
|
||||
{
|
||||
/*
|
||||
* Child comes here...
|
||||
*/
|
||||
|
||||
if (do_trickle || do_ps || do_pcl || do_cancel)
|
||||
if (do_trickle || do_ps)
|
||||
{
|
||||
if (data_fds[0] != 0)
|
||||
{
|
||||
dup2(data_fds[0], 0);
|
||||
close(data_fds[0]);
|
||||
}
|
||||
close(0);
|
||||
dup(data_fds[0]);
|
||||
close(data_fds[0]);
|
||||
close(data_fds[1]);
|
||||
}
|
||||
|
||||
if (!show_log)
|
||||
{
|
||||
if ((fd = open("/dev/null", O_WRONLY)) != 2)
|
||||
{
|
||||
dup2(fd, 2);
|
||||
close(fd);
|
||||
}
|
||||
close(2);
|
||||
open("/dev/null", O_WRONLY);
|
||||
}
|
||||
|
||||
if (back_fds[1] != 3)
|
||||
{
|
||||
dup2(back_fds[1], 3);
|
||||
close(back_fds[0]);
|
||||
}
|
||||
close(3);
|
||||
dup(back_fds[1]);
|
||||
close(back_fds[0]);
|
||||
close(back_fds[1]);
|
||||
|
||||
if (side_fds[1] != 4)
|
||||
{
|
||||
dup2(side_fds[1], 4);
|
||||
close(side_fds[0]);
|
||||
}
|
||||
close(4);
|
||||
dup(side_fds[1]);
|
||||
close(side_fds[0]);
|
||||
close(side_fds[1]);
|
||||
|
||||
execv(backend, argv + first_arg);
|
||||
@@ -457,7 +330,7 @@ main(int argc, /* I - Number of command-line args */
|
||||
strerror(errno));
|
||||
return (errno);
|
||||
}
|
||||
else if (back_pid < 0)
|
||||
else if (pid < 0)
|
||||
{
|
||||
perror("testbackend: Unable to fork");
|
||||
return (1);
|
||||
@@ -467,24 +340,20 @@ main(int argc, /* I - Number of command-line args */
|
||||
* Parent comes here, setup back and side channel file descriptors...
|
||||
*/
|
||||
|
||||
if (do_trickle || do_ps || do_pcl || do_cancel)
|
||||
if (do_trickle || do_ps)
|
||||
{
|
||||
close(data_fds[0]);
|
||||
close(data_fds[1]);
|
||||
}
|
||||
|
||||
if (back_fds[0] != 3)
|
||||
{
|
||||
dup2(back_fds[0], 3);
|
||||
close(back_fds[0]);
|
||||
}
|
||||
close(3);
|
||||
dup(back_fds[0]);
|
||||
close(back_fds[0]);
|
||||
close(back_fds[1]);
|
||||
|
||||
if (side_fds[0] != 4)
|
||||
{
|
||||
dup2(side_fds[0], 4);
|
||||
close(side_fds[0]);
|
||||
}
|
||||
close(4);
|
||||
dup(side_fds[0]);
|
||||
close(side_fds[0]);
|
||||
close(side_fds[1]);
|
||||
|
||||
/*
|
||||
@@ -566,26 +435,14 @@ main(int argc, /* I - Number of command-line args */
|
||||
printf("CUPS_SC_CMD_SOFT_RESET returned %s\n", statuses[scstatus]);
|
||||
}
|
||||
|
||||
if (do_cancel)
|
||||
while (wait(&status) != pid);
|
||||
|
||||
if (status)
|
||||
{
|
||||
sleep(1);
|
||||
kill(data_pid, SIGTERM);
|
||||
kill(back_pid, SIGTERM);
|
||||
}
|
||||
|
||||
while ((pid = wait(&status)) > 0)
|
||||
{
|
||||
if (status)
|
||||
{
|
||||
if (WIFEXITED(status))
|
||||
printf("%s exited with status %d!\n",
|
||||
pid == back_pid ? backend : "test",
|
||||
WEXITSTATUS(status));
|
||||
else
|
||||
printf("%s crashed with signal %d!\n",
|
||||
pid == back_pid ? backend : "test",
|
||||
WTERMSIG(status));
|
||||
}
|
||||
if (WIFEXITED(status))
|
||||
printf("%s exited with status %d!\n", backend, WEXITSTATUS(status));
|
||||
else
|
||||
printf("%s crashed with signal %d!\n", backend, WTERMSIG(status));
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -596,19 +453,6 @@ main(int argc, /* I - Number of command-line args */
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 'sigterm_handler()' - Flag when we get SIGTERM.
|
||||
*/
|
||||
|
||||
static void
|
||||
sigterm_handler(int sig) /* I - Signal */
|
||||
{
|
||||
(void)sig;
|
||||
|
||||
job_canceled = 1;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 'usage()' - Show usage information.
|
||||
*/
|
||||
@@ -616,11 +460,10 @@ sigterm_handler(int sig) /* I - Signal */
|
||||
static void
|
||||
usage(void)
|
||||
{
|
||||
puts("Usage: testbackend [-cancel] [-d] [-ps | -pcl] [-s [-oid OID] "
|
||||
"[-walk OID]] [-t] device-uri job-id user title copies options [file]");
|
||||
puts("Usage: testbackend [-d] [-ps] [-s [-oid OID] [-walk OID]] [-t] "
|
||||
"device-uri job-id user title copies options [file]");
|
||||
puts("");
|
||||
puts("Options:");
|
||||
puts(" -cancel Simulate a canceled print job after 2 seconds.");
|
||||
puts(" -d Show log messages from backend.");
|
||||
puts(" -oid OID Lookup the specified SNMP OID.");
|
||||
puts(" (.1.3.6.1.2.1.43.10.2.1.4.1.1 is a good one for printers)");
|
||||
|
||||
+14
-92
@@ -656,51 +656,27 @@ print_device(const char *uri, /* I - Device URI */
|
||||
*/
|
||||
|
||||
if (iostatus == kIOUSBTransactionTimeout)
|
||||
{
|
||||
fputs("DEBUG: Got USB transaction timeout during write!\n", stderr);
|
||||
iostatus = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Ignore the first stall error we get since we try to clear any stalls
|
||||
* in the class driver...
|
||||
* Ignore stall errors, since we clear any stalls in the class driver...
|
||||
*/
|
||||
|
||||
else if (iostatus == kIOUSBPipeStalled)
|
||||
{
|
||||
fputs("DEBUG: Got USB pipe stalled during write!\n", stderr);
|
||||
|
||||
bytes = 0;
|
||||
|
||||
if (prev_iostatus != kIOUSBPipeStalled)
|
||||
{
|
||||
prev_iostatus = iostatus;
|
||||
iostatus = 0;
|
||||
}
|
||||
}
|
||||
if (iostatus == kIOUSBPipeStalled)
|
||||
iostatus = 0;
|
||||
|
||||
/*
|
||||
* Ignore the first "aborted" status we get, since we might have
|
||||
* received a signal (<rdar://problem/6860126>)...
|
||||
*/
|
||||
|
||||
else if (iostatus == kIOReturnAborted)
|
||||
if (iostatus == kIOReturnAborted && prev_iostatus != kIOReturnAborted)
|
||||
{
|
||||
fputs("DEBUG: Got return aborted during write!\n", stderr);
|
||||
|
||||
IOReturn err = (*g.classdriver)->Abort(g.classdriver);
|
||||
fprintf(stderr, "DEBUG: USB class driver Abort returned %x\n", err);
|
||||
|
||||
bytes = 0;
|
||||
|
||||
if (prev_iostatus != kIOReturnAborted)
|
||||
{
|
||||
prev_iostatus = iostatus;
|
||||
iostatus = 0;
|
||||
}
|
||||
}
|
||||
prev_iostatus = iostatus;
|
||||
iostatus = 0;
|
||||
}
|
||||
else
|
||||
prev_iostatus = iostatus;
|
||||
prev_iostatus = iostatus;
|
||||
|
||||
if (iostatus || bytes < 0)
|
||||
{
|
||||
@@ -708,25 +684,21 @@ print_device(const char *uri, /* I - Device URI */
|
||||
* Write error - bail if we don't see an error we can retry...
|
||||
*/
|
||||
|
||||
IOReturn err = (*g.classdriver)->Abort(g.classdriver);
|
||||
_cupsLangPuts(stderr, _("ERROR: Unable to send print data!\n"));
|
||||
fprintf(stderr, "DEBUG: USB class driver WritePipe returned %x\n",
|
||||
iostatus);
|
||||
|
||||
IOReturn err = (*g.classdriver)->Abort(g.classdriver);
|
||||
fprintf(stderr, "DEBUG: USB class driver Abort returned %x\n",
|
||||
err);
|
||||
|
||||
status = job_canceled ? CUPS_BACKEND_FAILED : CUPS_BACKEND_STOP;
|
||||
break;
|
||||
}
|
||||
else if (bytes > 0)
|
||||
{
|
||||
fprintf(stderr, "DEBUG: Wrote %d bytes of print data...\n", (int)bytes);
|
||||
|
||||
g.print_bytes -= bytes;
|
||||
print_ptr += bytes;
|
||||
total_bytes += bytes;
|
||||
}
|
||||
fprintf(stderr, "DEBUG: Wrote %d bytes of print data...\n", (int)bytes);
|
||||
|
||||
g.print_bytes -= bytes;
|
||||
print_ptr += bytes;
|
||||
total_bytes += bytes;
|
||||
}
|
||||
|
||||
if (print_fd != 0 && status == noErr)
|
||||
@@ -872,8 +844,6 @@ static void *read_thread(void *reference)
|
||||
readstatus = (*g.classdriver)->ReadPipe(g.classdriver, readbuffer, &rbytes);
|
||||
if (readstatus == kIOReturnSuccess && rbytes > 0)
|
||||
{
|
||||
fprintf(stderr, "DEBUG: Read %d bytes of back-channel data...\n",
|
||||
(int)rbytes);
|
||||
cupsBackChannelWrite((char*)readbuffer, rbytes, 1.0);
|
||||
|
||||
/* cntrl-d is echoed by the printer.
|
||||
@@ -888,12 +858,6 @@ static void *read_thread(void *reference)
|
||||
parse_pserror(readbuffer, rbytes);
|
||||
#endif
|
||||
}
|
||||
else if (readstatus == kIOUSBTransactionTimeout)
|
||||
fputs("DEBUG: Got USB transaction timeout during write!\n", stderr);
|
||||
else if (readstatus == kIOUSBPipeStalled)
|
||||
fputs("DEBUG: Got USB pipe stalled during read!\n", stderr);
|
||||
else if (readstatus == kIOReturnAborted)
|
||||
fputs("DEBUG: Got return aborted during read!\n", stderr);
|
||||
|
||||
/*
|
||||
* Make sure this loop executes no more than once every 250 miliseconds...
|
||||
@@ -940,83 +904,41 @@ sidechannel_thread(void *reference)
|
||||
switch (command)
|
||||
{
|
||||
case CUPS_SC_CMD_SOFT_RESET: /* Do a soft reset */
|
||||
fputs("DEBUG: CUPS_SC_CMD_SOFT_RESET received from driver...\n",
|
||||
stderr);
|
||||
|
||||
if ((*g.classdriver)->SoftReset != NULL)
|
||||
{
|
||||
soft_reset();
|
||||
cupsSideChannelWrite(command, CUPS_SC_STATUS_OK, NULL, 0, 1.0);
|
||||
fputs("DEBUG: Returning status CUPS_STATUS_OK with no bytes...\n",
|
||||
stderr);
|
||||
}
|
||||
else
|
||||
{
|
||||
cupsSideChannelWrite(command, CUPS_SC_STATUS_NOT_IMPLEMENTED,
|
||||
NULL, 0, 1.0);
|
||||
fputs("DEBUG: Returning status CUPS_STATUS_NOT_IMPLEMENTED with "
|
||||
"no bytes...\n", stderr);
|
||||
}
|
||||
break;
|
||||
|
||||
case CUPS_SC_CMD_DRAIN_OUTPUT: /* Drain all pending output */
|
||||
fputs("DEBUG: CUPS_SC_CMD_DRAIN_OUTPUT received from driver...\n",
|
||||
stderr);
|
||||
|
||||
g.drain_output = 1;
|
||||
break;
|
||||
|
||||
case CUPS_SC_CMD_GET_BIDI: /* Is the connection bidirectional? */
|
||||
fputs("DEBUG: CUPS_SC_CMD_GET_BIDI received from driver...\n",
|
||||
stderr);
|
||||
|
||||
data[0] = g.bidi_flag;
|
||||
cupsSideChannelWrite(command, CUPS_SC_STATUS_OK, data, 1, 1.0);
|
||||
|
||||
fprintf(stderr,
|
||||
"DEBUG: Returned CUPS_SC_STATUS_OK with 1 byte (%02X)...\n",
|
||||
data[0]);
|
||||
break;
|
||||
|
||||
case CUPS_SC_CMD_GET_DEVICE_ID: /* Return IEEE-1284 device ID */
|
||||
fputs("DEBUG: CUPS_SC_CMD_GET_DEVICE_ID received from driver...\n",
|
||||
stderr);
|
||||
|
||||
datalen = sizeof(data);
|
||||
get_device_id(&status, data, &datalen);
|
||||
cupsSideChannelWrite(command, CUPS_SC_STATUS_OK, data, datalen, 1.0);
|
||||
|
||||
if (datalen < sizeof(data))
|
||||
data[datalen] = '\0';
|
||||
else
|
||||
data[sizeof(data) - 1] = '\0';
|
||||
|
||||
fprintf(stderr,
|
||||
"DEBUG: Returning CUPS_SC_STATUS_OK with %d bytes (%s)...\n",
|
||||
datalen, data);
|
||||
break;
|
||||
|
||||
case CUPS_SC_CMD_GET_STATE: /* Return device state */
|
||||
fputs("DEBUG: CUPS_SC_CMD_GET_STATE received from driver...\n",
|
||||
stderr);
|
||||
|
||||
data[0] = CUPS_SC_STATE_ONLINE;
|
||||
cupsSideChannelWrite(command, CUPS_SC_STATUS_OK, data, 1, 1.0);
|
||||
|
||||
fprintf(stderr,
|
||||
"DEBUG: Returned CUPS_SC_STATUS_OK with 1 byte (%02X)...\n",
|
||||
data[0]);
|
||||
break;
|
||||
|
||||
default:
|
||||
fprintf(stderr, "DEBUG: Unknown side-channel command (%d) received "
|
||||
"from driver...\n", command);
|
||||
|
||||
cupsSideChannelWrite(command, CUPS_SC_STATUS_NOT_IMPLEMENTED,
|
||||
NULL, 0, 1.0);
|
||||
|
||||
fputs("DEBUG: Returned CUPS_SC_STATUS_NOT_IMPLEMENTED with no bytes...\n",
|
||||
stderr);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-2
@@ -158,9 +158,8 @@ install-libs: $(INSTALLSTATIC)
|
||||
|
||||
installstatic:
|
||||
$(INSTALL_DIR) -m 755 $(LIBDIR)
|
||||
$(INSTALL_LIB) -m 755 libcupscgi.a $(LIBDIR)
|
||||
$(INSTALL_LIB) libcupscgi.a $(LIBDIR)
|
||||
$(RANLIB) $(LIBDIR)/libcupscgi.a
|
||||
$(CHMOD) 555 $(LIBDIR)/libcupscgi.a
|
||||
|
||||
|
||||
#
|
||||
|
||||
+8
-15
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Web search program for www.cups.org.
|
||||
*
|
||||
* Copyright 2007-2009 by Apple Inc.
|
||||
* Copyright 2007-2008 by Apple Inc.
|
||||
* Copyright 1997-2007 by Easy Software Products.
|
||||
*
|
||||
* These coded instructions, statements, and computer programs are the
|
||||
@@ -33,8 +33,7 @@
|
||||
* Local functions...
|
||||
*/
|
||||
|
||||
static void list_nodes(help_index_t *hi, const char *title,
|
||||
cups_array_t *nodes);
|
||||
static void list_nodes(const char *title, cups_array_t *nodes);
|
||||
|
||||
|
||||
/*
|
||||
@@ -70,7 +69,7 @@ main(int argc, /* I - Number of command-line args */
|
||||
search = helpSearchIndex(hi, argv[2], NULL, NULL);
|
||||
|
||||
if (search)
|
||||
list_nodes(hi, argv[1], search->sorted);
|
||||
list_nodes(argv[1], search->sorted);
|
||||
|
||||
/*
|
||||
* Return with no errors...
|
||||
@@ -85,12 +84,10 @@ main(int argc, /* I - Number of command-line args */
|
||||
*/
|
||||
|
||||
static void
|
||||
list_nodes(help_index_t *hi, /* I - Help index */
|
||||
const char *title, /* I - Title string */
|
||||
list_nodes(const char *title, /* I - Title string */
|
||||
cups_array_t *nodes) /* I - Nodes */
|
||||
{
|
||||
help_node_t *node, /* Current node */
|
||||
*file; /* File node */
|
||||
help_node_t *node; /* Current node */
|
||||
|
||||
|
||||
printf("%d\n", cupsArrayCount(nodes));
|
||||
@@ -99,14 +96,10 @@ list_nodes(help_index_t *hi, /* I - Help index */
|
||||
node = (help_node_t *)cupsArrayNext(nodes))
|
||||
{
|
||||
if (node->anchor)
|
||||
{
|
||||
file = helpFindNode(hi, node->filename, NULL);
|
||||
printf("%d|%s#%s|%s|%s\n", node->score, node->filename, node->anchor,
|
||||
node->text, file ? file->text : node->filename);
|
||||
}
|
||||
else
|
||||
printf("%d|%s|%s|%s\n", node->score, node->filename, node->text,
|
||||
printf("%d|%s#%s|%s\n", node->score, node->filename, node->anchor,
|
||||
node->text);
|
||||
else
|
||||
printf("%d|%s|%s\n", node->score, node->filename, node->text);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#
|
||||
# MIME converts file for the Common UNIX Printing System (CUPS).
|
||||
#
|
||||
# Copyright 2007-2009 by Apple Inc.
|
||||
# Copyright 2007-2008 by Apple Inc.
|
||||
# Copyright 1997-2007 by Easy Software Products.
|
||||
#
|
||||
# These coded instructions, statements, and computer programs are the
|
||||
@@ -38,7 +38,7 @@
|
||||
# PostScript filters
|
||||
#
|
||||
|
||||
application/pdf application/vnd.cups-postscript 66 pdftops
|
||||
application/pdf application/postscript 33 pdftops
|
||||
application/postscript application/vnd.cups-postscript 66 pstops
|
||||
application/vnd.hp-HPGL application/postscript 66 hpgltops
|
||||
application/x-cshell application/postscript 33 texttops
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
dnl
|
||||
dnl "$Id: cups-common.m4 8686 2009-05-26 23:27:06Z mike $"
|
||||
dnl "$Id: cups-common.m4 8613 2009-05-11 22:39:39Z mike $"
|
||||
dnl
|
||||
dnl Common configuration stuff for the Common UNIX Printing System (CUPS).
|
||||
dnl
|
||||
@@ -20,7 +20,7 @@ dnl Set the name of the config header file...
|
||||
AC_CONFIG_HEADER(config.h)
|
||||
|
||||
dnl Version number information...
|
||||
CUPS_VERSION="1.4rc1"
|
||||
CUPS_VERSION="1.4b3"
|
||||
CUPS_REVISION=""
|
||||
#if test -z "$CUPS_REVISION" -a -d .svn; then
|
||||
# CUPS_REVISION="-r`svnversion . | awk -F: '{print $NF}' | sed -e '1,$s/[[a-zA-Z]]*//g'`"
|
||||
@@ -49,7 +49,6 @@ AC_PROG_CPP
|
||||
AC_PROG_CXX
|
||||
AC_PROG_RANLIB
|
||||
AC_PATH_PROG(AR,ar)
|
||||
AC_PATH_PROG(CHMOD,chmod)
|
||||
AC_PATH_PROG(HTMLDOC,htmldoc)
|
||||
AC_PATH_PROG(LD,ld)
|
||||
AC_PATH_PROG(LN,ln)
|
||||
@@ -358,5 +357,5 @@ AC_SUBST(FONTS)
|
||||
AC_SUBST(LEGACY_BACKENDS)
|
||||
|
||||
dnl
|
||||
dnl End of "$Id: cups-common.m4 8686 2009-05-26 23:27:06Z mike $".
|
||||
dnl End of "$Id: cups-common.m4 8613 2009-05-11 22:39:39Z mike $".
|
||||
dnl
|
||||
|
||||
+1
-2
@@ -237,9 +237,8 @@ install-libs: $(INSTALLSTATIC) $(INSTALL32) $(INSTALL64)
|
||||
|
||||
installstatic:
|
||||
$(INSTALL_DIR) -m 755 $(LIBDIR)
|
||||
$(INSTALL_LIB) -m 755 libcups.a $(LIBDIR)
|
||||
$(INSTALL_LIB) libcups.a $(LIBDIR)
|
||||
$(RANLIB) $(LIBDIR)/libcups.a
|
||||
$(CHMOD) 555 $(LIBDIR)/libcups.a
|
||||
|
||||
install32bit:
|
||||
echo Installing libraries in $(LIB32DIR)...
|
||||
|
||||
+8
-13
@@ -2173,23 +2173,18 @@ do_samba_command(const char *command, /* I - Command to run */
|
||||
* Child goes here, redirect stdin/out/err and execute the command...
|
||||
*/
|
||||
|
||||
int fd = open("/dev/null", O_RDONLY);
|
||||
close(0);
|
||||
open("/dev/null", O_RDONLY);
|
||||
|
||||
if (fd > 0)
|
||||
{
|
||||
dup2(fd, 0);
|
||||
close(fd);
|
||||
}
|
||||
close(1);
|
||||
|
||||
if (logfile)
|
||||
dup2(fileno(logfile), 1);
|
||||
else if ((fd = open("/dev/null", O_WRONLY)) > 1)
|
||||
{
|
||||
dup2(fd, 1);
|
||||
close(fd);
|
||||
}
|
||||
dup(fileno(logfile));
|
||||
else
|
||||
open("/dev/null", O_WRONLY);
|
||||
|
||||
dup2(1, 2);
|
||||
close(2);
|
||||
dup(1);
|
||||
|
||||
execlp(command, command, address, "-N", "-A", authfile, "-c", subcmd,
|
||||
(char *)0);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
"$Id: api-filter.header 8673 2009-05-22 17:34:15Z mike $"
|
||||
"$Id: api-filter.header 8627 2009-05-13 21:39:17Z mike $"
|
||||
|
||||
Filter and backend programming header for the Common UNIX Printing System
|
||||
(CUPS).
|
||||
@@ -34,8 +34,6 @@
|
||||
Programming: <a href='api-cups.html' target='_top'>CUPS API</a><br>
|
||||
Programming: <a href='api-ppd.html' target='_top'>PPD API</a><br>
|
||||
Programming: <a href='api-raster.html' target='_top'>Raster API</a><br>
|
||||
Programming: <a href='postscript-driver.html' target='_top'>Developing PostScript Printer Drivers</a><br>
|
||||
Programming: <a href='raster-driver.html' target='_top'>Developing Raster Printer Drivers</a><br>
|
||||
Specifications: <a href='spec-design' target='_top'>CUPS Design Description</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
+4
-4
@@ -62,7 +62,7 @@ extern "C" {
|
||||
# define CUPS_VERSION 1.0400
|
||||
# define CUPS_VERSION_MAJOR 1
|
||||
# define CUPS_VERSION_MINOR 4
|
||||
# define CUPS_VERSION_PATCH 0
|
||||
# define CUPS_VERSION_PATCH -1
|
||||
|
||||
# define CUPS_BC_FD 3 /* Back-channel file descriptor for select/poll */
|
||||
# define CUPS_DATE_ANY (time_t)-1
|
||||
@@ -253,7 +253,7 @@ extern int cupsPrintFiles2(http_t *http, const char *name,
|
||||
extern int cupsSetDests2(http_t *http, int num_dests,
|
||||
cups_dest_t *dests) _CUPS_API_1_1_21;
|
||||
|
||||
/**** New in CUPS 1.2/Mac OS X 10.5 ****/
|
||||
/**** New in CUPS 1.2 ****/
|
||||
extern ssize_t cupsBackChannelRead(char *buffer, size_t bytes,
|
||||
double timeout) _CUPS_API_1_2;
|
||||
extern ssize_t cupsBackChannelWrite(const char *buffer, size_t bytes,
|
||||
@@ -268,7 +268,7 @@ extern int cupsRemoveOption(const char *name, int num_options,
|
||||
cups_option_t **options) _CUPS_API_1_2;
|
||||
extern cups_file_t *cupsTempFile2(char *filename, int len) _CUPS_API_1_2;
|
||||
|
||||
/**** New in CUPS 1.3/Mac OS X 10.5 ****/
|
||||
/**** New in CUPS 1.3 ****/
|
||||
extern ipp_t *cupsDoIORequest(http_t *http, ipp_t *request,
|
||||
const char *resource, int infile,
|
||||
int outfile) _CUPS_API_1_3;
|
||||
@@ -281,7 +281,7 @@ extern void cupsSetDefaultDest(const char *name,
|
||||
int num_dests,
|
||||
cups_dest_t *dests) _CUPS_API_1_3;
|
||||
|
||||
/**** New in CUPS 1.4/Mac OS X 10.6 ****/
|
||||
/**** New in CUPS 1.4 ****/
|
||||
extern ipp_status_t cupsCancelJob2(http_t *http, const char *name,
|
||||
int job_id, int purge) _CUPS_API_1_4;
|
||||
extern int cupsCreateJob(http_t *http, const char *name,
|
||||
|
||||
+2
-2
@@ -387,7 +387,7 @@ extern void httpSeparate2(const char *uri,
|
||||
char *host, int hostlen, int *port,
|
||||
char *resource, int resourcelen) _CUPS_DEPRECATED;
|
||||
|
||||
/**** New in CUPS 1.2/Mac OS X 10.5 ****/
|
||||
/**** New in CUPS 1.2 ****/
|
||||
extern int httpAddrAny(const http_addr_t *addr) _CUPS_API_1_2;
|
||||
extern http_addrlist_t *httpAddrConnect(http_addrlist_t *addrlist, int *sock) _CUPS_API_1_2;
|
||||
extern int httpAddrEqual(const http_addr_t *addr1,
|
||||
@@ -435,7 +435,7 @@ extern void httpSetLength(http_t *http, size_t length) _CUPS_API_1_2;
|
||||
extern ssize_t httpWrite2(http_t *http, const char *buffer,
|
||||
size_t length) _CUPS_API_1_2;
|
||||
|
||||
/**** New in CUPS 1.3/Mac OS X 10.5 ****/
|
||||
/**** New in CUPS 1.3 ****/
|
||||
extern char *httpGetAuthString(http_t *http) _CUPS_API_1_3;
|
||||
extern void httpSetAuthString(http_t *http, const char *scheme,
|
||||
const char *data) _CUPS_API_1_3;
|
||||
|
||||
+2
-4
@@ -445,7 +445,7 @@ cupsLangGet(const char *language) /* I - Language or locale */
|
||||
|
||||
if (!language)
|
||||
{
|
||||
if (!getenv("SOFTWARE") || (language = getenv("LANG")) == NULL)
|
||||
if ((language = getenv("LANG")) == NULL)
|
||||
language = appleLangDefault();
|
||||
|
||||
DEBUG_printf(("4cupsLangGet: language=\"%s\"", language));
|
||||
@@ -1121,15 +1121,13 @@ appleLangDefault(void)
|
||||
/* Pointer to library globals */
|
||||
|
||||
|
||||
DEBUG_puts("2appleLangDefault()");
|
||||
|
||||
/*
|
||||
* Only do the lookup and translation the first time.
|
||||
*/
|
||||
|
||||
if (!cg->language[0])
|
||||
{
|
||||
if (getenv("SOFTWARE") != NULL && (lang = getenv("LANG")) != NULL)
|
||||
if ((lang = getenv("LANG")))
|
||||
{
|
||||
strlcpy(cg->language, lang, sizeof(cg->language));
|
||||
return (cg->language);
|
||||
|
||||
+3
-4
@@ -18,10 +18,9 @@
|
||||
*
|
||||
* Contents:
|
||||
*
|
||||
* ppdPageSize() - Get the page size record for the given size.
|
||||
* ppdPageSizeLimits() - Return the custom page size limits.
|
||||
* ppdPageWidth() - Get the page width for the given size.
|
||||
* ppdPageLength() - Get the page length for the given size.
|
||||
* ppdPageSize() - Get the page size record for the given size.
|
||||
* ppdPageWidth() - Get the page width for the given size.
|
||||
* ppdPageLength() - Get the page length for the given size.
|
||||
*/
|
||||
|
||||
/*
|
||||
|
||||
+1
-8
@@ -942,8 +942,7 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */
|
||||
* Get the parameter data...
|
||||
*/
|
||||
|
||||
if (!string ||
|
||||
sscanf(string, "%d%32s%64s%64s", &corder, ctype, cminimum,
|
||||
if (sscanf(string, "%d%32s%64s%64s", &corder, ctype, cminimum,
|
||||
cmaximum) != 4)
|
||||
{
|
||||
cg->ppd_status = PPD_BAD_CUSTOM_PARAM;
|
||||
@@ -1616,12 +1615,6 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */
|
||||
else if (!strcmp(keyword, "UIConstraints") ||
|
||||
!strcmp(keyword, "NonUIConstraints"))
|
||||
{
|
||||
if (!string)
|
||||
{
|
||||
cg->ppd_status = PPD_BAD_UI_CONSTRAINTS;
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (ppd->num_consts == 0)
|
||||
constraint = calloc(2, sizeof(ppd_const_t));
|
||||
else
|
||||
|
||||
+4
-4
@@ -213,7 +213,7 @@ typedef struct ppd_profile_s /**** sRGB Color Profiles ****/
|
||||
float matrix[3][3]; /* Transform matrix */
|
||||
} ppd_profile_t;
|
||||
|
||||
/**** New in CUPS 1.2/Mac OS X 10.5 ****/
|
||||
/**** New in CUPS 1.2 ****/
|
||||
typedef enum ppd_cptype_e /**** Custom Parameter Type @since CUPS 1.2/Mac OS X 10.5@ ****/
|
||||
{
|
||||
PPD_CUSTOM_CURVE, /* Curve value for f(x) = x^value */
|
||||
@@ -321,15 +321,15 @@ typedef struct ppd_file_s /**** PPD File ****/
|
||||
int cur_attr; /* Current attribute @since CUPS 1.1.19/Mac OS X 10.3@ @private@ */
|
||||
ppd_attr_t **attrs; /* Attributes @since CUPS 1.1.19/Mac OS X 10.3@ @private@ */
|
||||
|
||||
/**** New in CUPS 1.2/Mac OS X 10.5 ****/
|
||||
/**** New in CUPS 1.2 ****/
|
||||
cups_array_t *sorted_attrs; /* Attribute lookup array @since CUPS 1.2/Mac OS X 10.5@ @private@ */
|
||||
cups_array_t *options; /* Option lookup array @since CUPS 1.2/Mac OS X 10.5@ @private@ */
|
||||
cups_array_t *coptions; /* Custom options array @since CUPS 1.2/Mac OS X 10.5@ @private@ */
|
||||
|
||||
/**** New in CUPS 1.3/Mac OS X 10.5 ****/
|
||||
/**** New in CUPS 1.3 ****/
|
||||
cups_array_t *marked; /* Marked choices @since CUPS 1.3/Mac OS X 10.5@ @private@ */
|
||||
|
||||
/**** New in CUPS 1.4/Mac OS X 10.6 ****/
|
||||
/**** New in CUPS 1.4 ****/
|
||||
cups_array_t *cups_uiconstraints; /* cupsUIConstraints @since CUPS 1.4/Mac OS X 10.6@ @private@ */
|
||||
} ppd_file_t;
|
||||
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Localization test program for the Common UNIX Printing System (CUPS).
|
||||
*
|
||||
* Copyright 2007-2009 by Apple Inc.
|
||||
* Copyright 2007 by Apple Inc.
|
||||
* Copyright 1997-2006 by Easy Software Products.
|
||||
*
|
||||
* These coded instructions, statements, and computer programs are the
|
||||
|
||||
@@ -166,7 +166,6 @@ main(int argc, /* I - Number of command-line arguments */
|
||||
}
|
||||
|
||||
putenv("LOCALEDIR=locale");
|
||||
putenv("SOFTWARE=CUPS");
|
||||
|
||||
/*
|
||||
* Do tests with test.ppd...
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@ WEBIMAGES = \
|
||||
images/unsel.gif \
|
||||
images/wait.gif
|
||||
HELPIMAGES = \
|
||||
images/cups-block-diagram.png \
|
||||
images/cups-block-diagram.gif \
|
||||
images/cups-command-chain.png \
|
||||
images/cups-postscript-chain.png \
|
||||
images/cups-raster-chain.png \
|
||||
|
||||
@@ -338,7 +338,7 @@ div.contents ul.subcontents li {
|
||||
<body>
|
||||
<div class='body'>
|
||||
<!--
|
||||
"$Id: api-filter.html 8673 2009-05-22 17:34:15Z mike $"
|
||||
"$Id: api-filter.html 8653 2009-05-16 23:53:28Z mike $"
|
||||
|
||||
Filter and backend programming header for the Common UNIX Printing System
|
||||
(CUPS).
|
||||
@@ -373,8 +373,6 @@ div.contents ul.subcontents li {
|
||||
Programming: <a href='api-cups.html' target='_top'>CUPS API</a><br>
|
||||
Programming: <a href='api-ppd.html' target='_top'>PPD API</a><br>
|
||||
Programming: <a href='api-raster.html' target='_top'>Raster API</a><br>
|
||||
Programming: <a href='postscript-driver.html' target='_top'>Developing PostScript Printer Drivers</a><br>
|
||||
Programming: <a href='raster-driver.html' target='_top'>Developing Raster Printer Drivers</a><br>
|
||||
Specifications: <a href='spec-design' target='_top'>CUPS Design Description</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
@@ -421,7 +419,7 @@ div.contents ul.subcontents li {
|
||||
<li><a href="#cups_sc_status_e" title="Response status codes">cups_sc_status_e</a></li>
|
||||
</ul></li>
|
||||
<!--
|
||||
"$Id: api-filter.html 8673 2009-05-22 17:34:15Z mike $"
|
||||
"$Id: api-filter.html 8653 2009-05-16 23:53:28Z mike $"
|
||||
|
||||
Filter and backend programming introduction for the Common UNIX Printing
|
||||
System (CUPS).
|
||||
|
||||
@@ -372,7 +372,7 @@ div.contents ul.subcontents li {
|
||||
|
||||
<div class='figure'><table summary='PostScript Filter Chain'>
|
||||
<caption>Figure 1: <a name='FIGURE_1'>PostScript Filter Chain</a></caption>
|
||||
<tr><td><img src='../images/cups-postscript-chain.png' width='700' height='150' alt='PostScript Filter Chain'></td></tr>
|
||||
<tr><td><img src='/images/cups-postscript-chain.png' width='700' height='150' alt='PostScript Filter Chain'></td></tr>
|
||||
</table></div>
|
||||
|
||||
<p>The optional PostScript filter can be provided to add printer-specific commands to the PostScript output that cannot be represented in the PPD file or to reorganize the output for special printer features. Typically this is used to support advanced job management or finishing functions on the printer. CUPS includes a generic PostScript filter that handles all PPD-defined commands.</p>
|
||||
@@ -385,7 +385,7 @@ div.contents ul.subcontents li {
|
||||
|
||||
<div class='figure'><table summary='Command Filter Chain'>
|
||||
<caption>Figure 2: <a name='FIGURE_2'>Command Filter Chain</a></caption>
|
||||
<tr><td><img src='../images/cups-command-chain.png' width='575' height='150' alt='Command Filter Chain'></td></tr>
|
||||
<tr><td><img src='/images/cups-command-chain.png' width='575' height='150' alt='Command Filter Chain'></td></tr>
|
||||
</table></div>
|
||||
|
||||
<p>PostScript printer drivers typically do not require their own command filter since CUPS includes a generic PostScript command filter that supports all of the standard functions using PPD-defined commands.</p>
|
||||
|
||||
@@ -369,10 +369,6 @@ that describe the features and capabilities of one or more printers.</P>
|
||||
<li><a href="#CONDITIONAL">Conditional Statements</a></li>
|
||||
<li><a href="#CONSTRAINTS">Defining Constraints</a></li>
|
||||
</ul></li>
|
||||
<li><a href="#LOCALIZATION">Localization</a><ul class="subcontents">
|
||||
<li><a href="#PPDPO">The ppdpo Utility</a></li>
|
||||
<li><a href="#PPDC_CATALOG">Using Message Catalogs with the PPD Compiler</a></li>
|
||||
</ul></li>
|
||||
<h2 class='title'><a name='BASICS'>The Basics</a></h2>
|
||||
|
||||
<P>The PPD compiler, <a href='man-ppdc.html'><code>ppdc(1)</code></a>, is a
|
||||
@@ -1183,79 +1179,6 @@ lines:</p>
|
||||
<a href='ref-ppdcfile.html#Attribute'>Attribute</a> cupsUIConstraints DuplexOff "*Duplex *OptionDuplexer False"
|
||||
<a href='ref-ppdcfile.html#Attribute'>Attribute</a> cupsUIResolver DuplexOff "*Duplex None"
|
||||
</pre>
|
||||
|
||||
<h2 class='title'><a name='LOCALIZATION'>Localization</a></h2>
|
||||
|
||||
<p>The PPD compiler provides localization of PPD files in different languages
|
||||
through <i>message catalog</i> files in the GNU gettext or Apple .strings
|
||||
formats. Each user text string and several key PPD attribute values such as
|
||||
<tt>LanguageVersion</tt> and <tt>LanguageEncoding</tt> are looked up in the
|
||||
corresponding message catalog and the translated text is substituted in the
|
||||
generated PPD files. One message catalog file can be used by multiple driver
|
||||
information files, and each file contains a single language translation.</p>
|
||||
|
||||
<h3><a name='PPDPO'>The ppdpo Utility</a></h3>
|
||||
|
||||
<p>While CUPS includes localizations of all standard media sizes and options in
|
||||
several languages, your driver information files may provide their own media
|
||||
sizes and options that need to be localized. CUPS provides a utility program to
|
||||
aid in the localization of drivers called <a
|
||||
href='man-ppdpo.html'><tt>ppdpo(1)</tt></a>. The <tt>ppdpo</tt> program creates
|
||||
or updates a message catalog file based upon one or more driver information
|
||||
files. New messages are added with the word "TRANSLATE" added to the front of
|
||||
the translation string to make locating new strings for translation easier. The
|
||||
program accepts the message catalog filename and one or more driver information
|
||||
files.</p>
|
||||
|
||||
<p>For example, run the following command to create a new German message catalog
|
||||
called <var>de.po</var> for all of the driver information files in the current
|
||||
directory:</p>
|
||||
|
||||
<pre class='command'>
|
||||
ppdpo -o de.po *.drv
|
||||
</pre>
|
||||
|
||||
<p>If the file <var>de.po</var> already exists, <tt>ppdpo</tt> will update the
|
||||
contents of the file with any new messages that need to be translated. To create
|
||||
an Apple .strings file instead, specify the output filename with a .strings
|
||||
extension, for example:</p>
|
||||
|
||||
<pre class='command'>
|
||||
ppdpo -o de.strings *.drv
|
||||
</pre>
|
||||
|
||||
<h3><a name='PPDC_CATALOG'>Using Message Catalogs with the PPD Compiler</a></h3>
|
||||
|
||||
<p>Once you have created a message catalog, use the <a
|
||||
href='ref-ppdcfile.html#_po'><tt>#po</tt></a> directive to declare it in each
|
||||
driver information file. For example, to declare the German message catalog for
|
||||
a driver use:</p>
|
||||
|
||||
<pre class='example'>
|
||||
<a href='ref-ppdcfile.html#_po'>#po</a> de "de.po" // German
|
||||
</pre>
|
||||
|
||||
<p>In fact, you can use the <tt>#po</tt> directive as many times as needed:</p>
|
||||
|
||||
<pre class='example'>
|
||||
<a href='ref-ppdcfile.html#_po'>#po</a> de "de.po" // German
|
||||
<a href='ref-ppdcfile.html#_po'>#po</a> es "es.po" // Spanish
|
||||
<a href='ref-ppdcfile.html#_po'>#po</a> fr "fr.po" // French
|
||||
<a href='ref-ppdcfile.html#_po'>#po</a> it "it.po" // Italian
|
||||
<a href='ref-ppdcfile.html#_po'>#po</a> ja "ja.po" // Japanese
|
||||
</pre>
|
||||
|
||||
<p>The filename ("de.po", etc.) can be relative to the location of the driver
|
||||
information file or an absolute path. Once defined, the PPD compiler will
|
||||
automatically generate a globalized PPD for every language declared in your
|
||||
driver information file. To generate a single-language PPD file, simply use the
|
||||
<tt>-l</tt> option to list the corresponding locale, for example:</p>
|
||||
|
||||
<pre class='command'>
|
||||
ppdc -l de -d ppd/de mydrivers.drv
|
||||
</pre>
|
||||
|
||||
<p>to generate German PPD files.</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -370,7 +370,7 @@ div.contents ul.subcontents li {
|
||||
|
||||
<div class='figure'><table summary='Raster Filter Chain'>
|
||||
<caption>Figure 1: <a name='FIGURE_1'>Raster Filter Chain</a></caption>
|
||||
<tr><td><img src='../images/cups-raster-chain.png' width='700' height='150' alt='Raster Filter Chain'></td></tr>
|
||||
<tr><td><img src='/images/cups-raster-chain.png' width='700' height='150' alt='Raster Filter Chain'></td></tr>
|
||||
</table></div>
|
||||
|
||||
<p>The raster filter converts CUPS raster data into a format the printer understands, for example HP-PCL. CUPS includes several sample raster filters supporting standard page description languages (PDLs). <a href='#TABLE_1'>Table 1</a> shows the raster filters that are bundled with CUPS and the languages they support.</p>
|
||||
@@ -397,7 +397,7 @@ div.contents ul.subcontents li {
|
||||
|
||||
<div class='figure'><table summary='Command Filter Chain'>
|
||||
<caption>Figure 2: <a name='FIGURE_2'>Command Filter Chain</a></caption>
|
||||
<tr><td><img src='../images/cups-command-chain.png' width='575' height='150' alt='Command Filter Chain'></td></tr>
|
||||
<tr><td><img src='/images/cups-command-chain.png' width='575' height='150' alt='Command Filter Chain'></td></tr>
|
||||
</table></div>
|
||||
|
||||
<p>Raster printer drivers must provide their own command filter.</p>
|
||||
|
||||
@@ -461,7 +461,7 @@ value. Otherwise printers and classes will disappear from client
|
||||
systems between updates.</P>
|
||||
|
||||
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="BrowseLDAPBindDN">BrowseLDAPBindDN</A></H2>
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2</SPAN><A NAME="BrowseLDAPBindDN">BrowseLDAPBindDN</A></H2>
|
||||
|
||||
<H3>Examples</H3>
|
||||
|
||||
@@ -476,7 +476,7 @@ domain name to use when listening for printer registrations. The
|
||||
default is undefined.</P>
|
||||
|
||||
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.4/Mac OS X 10.6</SPAN><A NAME="BrowseLDAPCACertFile">BrowseLDAPCACertFile</A></H2>
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.4</SPAN><A NAME="BrowseLDAPCACertFile">BrowseLDAPCACertFile</A></H2>
|
||||
|
||||
<H3>Examples</H3>
|
||||
|
||||
@@ -490,7 +490,7 @@ BrowseLDAPCACertFile /etc/cups/ssl/certs
|
||||
authority file to use for LDAP + SSL. The default is undefined.</P>
|
||||
|
||||
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="BrowseLDAPDN">BrowseLDAPDN</A></H2>
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2</SPAN><A NAME="BrowseLDAPDN">BrowseLDAPDN</A></H2>
|
||||
|
||||
<H3>Examples</H3>
|
||||
|
||||
@@ -505,7 +505,7 @@ domain name to use when registering local shared printers. The
|
||||
default is undefined.</P>
|
||||
|
||||
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="BrowseLDAPPassword">BrowseLDAPPassword</A></H2>
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2</SPAN><A NAME="BrowseLDAPPassword">BrowseLDAPPassword</A></H2>
|
||||
|
||||
<H3>Examples</H3>
|
||||
|
||||
@@ -520,7 +520,7 @@ access password to use when connecting to the LDAP server. The
|
||||
default is undefined.</P>
|
||||
|
||||
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="BrowseLDAPServer">BrowseLDAPServer</A></H2>
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2</SPAN><A NAME="BrowseLDAPServer">BrowseLDAPServer</A></H2>
|
||||
|
||||
<H3>Examples</H3>
|
||||
|
||||
@@ -551,7 +551,7 @@ additional IPP backend options to advertise with local shared
|
||||
printers. The default is to not include any options.</P>
|
||||
|
||||
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="BrowseLocalProtocols">BrowseLocalProtocols</A></H2>
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2</SPAN><A NAME="BrowseLocalProtocols">BrowseLocalProtocols</A></H2>
|
||||
|
||||
<H3>Examples</H3>
|
||||
|
||||
@@ -734,7 +734,7 @@ the options replace any options specified by the remote server.
|
||||
The default is to not include any options.</P>
|
||||
|
||||
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="BrowseRemoteProtocols">BrowseRemoteProtocols</A></H2>
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2</SPAN><A NAME="BrowseRemoteProtocols">BrowseRemoteProtocols</A></H2>
|
||||
|
||||
<H3>Examples</H3>
|
||||
|
||||
@@ -920,7 +920,7 @@ DataDir /usr/share/cups
|
||||
for data files.</P>
|
||||
|
||||
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="DefaultAuthType">DefaultAuthType</A></H2>
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2</SPAN><A NAME="DefaultAuthType">DefaultAuthType</A></H2>
|
||||
|
||||
<H3>Examples</H3>
|
||||
|
||||
@@ -957,7 +957,7 @@ character set for the language specified by the client or the
|
||||
<CODE>DefaultLanguage</CODE> directive.</P>
|
||||
|
||||
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="DefaultEncryption">DefaultEncryption</A></H2>
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2</SPAN><A NAME="DefaultEncryption">DefaultEncryption</A></H2>
|
||||
|
||||
<H3>Examples</H3>
|
||||
|
||||
@@ -995,7 +995,7 @@ language localization file exists for it. The default language
|
||||
is "en" for English.</P>
|
||||
|
||||
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.4/Mac OS X 10.6</SPAN><A NAME="DefaultPaperSize">DefaultPaperSize</A></H2>
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.4</SPAN><A NAME="DefaultPaperSize">DefaultPaperSize</A></H2>
|
||||
|
||||
<H3>Examples</H3>
|
||||
|
||||
@@ -1015,7 +1015,7 @@ of <CODE>None</CODE> tells the scheduler to not set the default paper
|
||||
size.</P>
|
||||
|
||||
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="DefaultPolicy">DefaultPolicy</A></H2>
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2</SPAN><A NAME="DefaultPolicy">DefaultPolicy</A></H2>
|
||||
|
||||
<H3>Examples</H3>
|
||||
|
||||
@@ -1031,7 +1031,7 @@ policy to use for IPP operation. The default is
|
||||
<CODE>default</CODE>.</P>
|
||||
|
||||
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="DefaultShared">DefaultShared</A></H2>
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2</SPAN><A NAME="DefaultShared">DefaultShared</A></H2>
|
||||
|
||||
<H3>Examples</H3>
|
||||
|
||||
@@ -1182,7 +1182,7 @@ default error log file is <VAR>@CUPS_LOGDIR@/error_log</VAR>.</P>
|
||||
information to the system log instead of a plain file.</P>
|
||||
|
||||
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.3/Mac OS X 10.5</SPAN><A NAME="ErrorPolicy">ErrorPolicy</A></H2>
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.3</SPAN><A NAME="ErrorPolicy">ErrorPolicy</A></H2>
|
||||
|
||||
<H3>Examples</H3>
|
||||
|
||||
@@ -1221,7 +1221,7 @@ printer.</P>
|
||||
|
||||
|
||||
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.4/Mac OS X 10.6</SPAN><A NAME="FatalErrors">FatalErrors</A></H2>
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.4</SPAN><A NAME="FatalErrors">FatalErrors</A></H2>
|
||||
|
||||
<H3>Examples</H3>
|
||||
|
||||
@@ -1483,7 +1483,7 @@ the file is assumed to be relative to the <A
|
||||
HREF="#ServerRoot"><CODE>ServerRoot</CODE></A> directory.</P>
|
||||
|
||||
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="JobRetryInterval">JobRetryInterval</A></H2>
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2</SPAN><A NAME="JobRetryInterval">JobRetryInterval</A></H2>
|
||||
|
||||
<H3>Examples</H3>
|
||||
|
||||
@@ -1501,7 +1501,7 @@ print queues whose error policy is <CODE>retry-job</CODE>. The
|
||||
default is 30 seconds.</P>
|
||||
|
||||
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.4/Mac OS X 10.6</SPAN><A NAME="JobKillDelay">JobKillDelay</A></H2>
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.4</SPAN><A NAME="JobKillDelay">JobKillDelay</A></H2>
|
||||
|
||||
<H3>Examples</H3>
|
||||
|
||||
@@ -1517,7 +1517,7 @@ wait before killing the filters and backend associated with a canceled or held
|
||||
job. The default is 30 seconds.</P>
|
||||
|
||||
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="JobRetryLimit">JobRetryLimit</A></H2>
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2</SPAN><A NAME="JobRetryLimit">JobRetryLimit</A></H2>
|
||||
|
||||
<H3>Examples</H3>
|
||||
|
||||
@@ -1601,7 +1601,7 @@ The request type names are case-sensitive for compatibility with
|
||||
Apache.</P>
|
||||
|
||||
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="LimitIPP">Limit (Policy)</A></H2>
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2</SPAN><A NAME="LimitIPP">Limit (Policy)</A></H2>
|
||||
|
||||
<H3>Examples</H3>
|
||||
|
||||
@@ -2252,7 +2252,7 @@ HREF="#LimitRequestBody"><CODE>LimitRequestBody</CODE></A>
|
||||
directive instead.</P>
|
||||
|
||||
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.4/Mac OS X 10.6</SPAN><A NAME="MultipleOperationTimeout">MultipleOperationTimeout</A></H2>
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.4</SPAN><A NAME="MultipleOperationTimeout">MultipleOperationTimeout</A></H2>
|
||||
|
||||
<H3>Examples</H3>
|
||||
|
||||
@@ -2371,7 +2371,7 @@ recognized:</P>
|
||||
<P>The default is "%p %j %u %T %P %C %{job-billing} %{job-originating-host-name} %{job-name} %{media} %{sides}".</P>
|
||||
|
||||
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="PassEnv">PassEnv</A></H2>
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2</SPAN><A NAME="PassEnv">PassEnv</A></H2>
|
||||
|
||||
<H3>Examples</H3>
|
||||
|
||||
@@ -2390,7 +2390,7 @@ scheduler only passes the <CODE>DYLD_LIBRARY_PATH</CODE>,
|
||||
environment variables to child processes.</P>
|
||||
|
||||
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="Policy">Policy</A></H2>
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2</SPAN><A NAME="Policy">Policy</A></H2>
|
||||
|
||||
<H3>Examples</H3>
|
||||
|
||||
@@ -2920,7 +2920,7 @@ the text that is returned. The default is
|
||||
</TABLE></DIV>
|
||||
|
||||
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="SetEnv">SetEnv</A></H2>
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2</SPAN><A NAME="SetEnv">SetEnv</A></H2>
|
||||
|
||||
<H3>Examples</H3>
|
||||
|
||||
@@ -3052,7 +3052,7 @@ to wait before an active HTTP or IPP request times out. The
|
||||
default timeout is 300 seconds.</P>
|
||||
|
||||
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="UseNetworkDefault">UseNetworkDefault</A></H2>
|
||||
<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2</SPAN><A NAME="UseNetworkDefault">UseNetworkDefault</A></H2>
|
||||
|
||||
<H3>Examples</H3>
|
||||
|
||||
|
||||
@@ -98,34 +98,6 @@ which can be later referenced using <code>$name</code>. The name is
|
||||
case-insensitive and can be any sequence of letters, numbers,
|
||||
and the underscore. The value can be any valid expression.</p>
|
||||
|
||||
<h3>Predefined Names</h3>
|
||||
|
||||
<p>The following <code>#define</code> names are set by the PPD compiler:</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><code>CUPS_VERSION</code> - The full CUPS version string, e.g.
|
||||
"1.4.0"</li>
|
||||
|
||||
<li><code>CUPS_VERSION_MAJOR</code> - The major version number, e.g.
|
||||
"1"</li>
|
||||
|
||||
<li><code>CUPS_VERSION_MINOR</code> - The minor version number, e.g.
|
||||
"4"</li>
|
||||
|
||||
<li><code>CUPS_VERSION_PATCH</code> - The patch version number, e.g.
|
||||
"0"</li>
|
||||
|
||||
<li><code>PLATFORM_NAME</code> - The operating system name used by the
|
||||
current system as reported by "uname" ("Windows" on Microsoft
|
||||
Windows)</li>
|
||||
|
||||
<li><code>PLATFORM_ARCH</code> - The processor architecture used by the
|
||||
current system as reported by "uname -m" ("X86" or "X64" on Microsoft
|
||||
Windows)</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h3>See Also</h3>
|
||||
|
||||
<p><a href='#_include'><code>#include</code></a></p>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
<DIV CLASS="figure"><TABLE SUMMARY="CUPS Block Diagram">
|
||||
<CAPTION>Figure 1: <A NAME="FIGURE1">CUPS Block Diagram</A></CAPTION>
|
||||
<TR><TD ALIGN="CENTER"><IMG SRC="../images/cups-block-diagram.png"
|
||||
<TR><TD ALIGN="CENTER"><IMG SRC="../images/cups-block-diagram.gif"
|
||||
WIDTH="768" HEIGHT="768" ALT="CUPS Block Diagram"></TD></TR>
|
||||
</TABLE></DIV>
|
||||
|
||||
|
||||
+53
-54
@@ -8,7 +8,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<!--
|
||||
"$Id: spec-ipp.html 8680 2009-05-22 23:53:11Z mike $"
|
||||
"$Id: spec-ipp.html 8653 2009-05-16 23:53:28Z mike $"
|
||||
|
||||
CUPS IPP specification for the Common UNIX Printing System (CUPS).
|
||||
|
||||
@@ -365,7 +365,7 @@ Print-Job request:
|
||||
|
||||
<dl>
|
||||
|
||||
<dt>"auth-info" (1setOf text(MAX)):<span class='info'>CUPS 1.3/Mac OS X 10.5</span>
|
||||
<dt>"auth-info" (1setOf text(MAX)):<span class='info'>CUPS 1.3</span>
|
||||
|
||||
<dd>The client OPTIONALLY supplies one or more authentication values as specified by the "auth-info-required" attribute.
|
||||
|
||||
@@ -472,7 +472,7 @@ Create-Job request:
|
||||
|
||||
<dl>
|
||||
|
||||
<dt>"auth-info" (1setOf text(MAX)):<span class='info'>CUPS 1.3/Mac OS X 10.5</span>
|
||||
<dt>"auth-info" (1setOf text(MAX)):<span class='info'>CUPS 1.3</span>
|
||||
|
||||
<dd>The client OPTIONALLY supplies one or more authentication values as specified by the "auth-info-required" attribute.
|
||||
|
||||
@@ -577,7 +577,7 @@ Set-Job-Attributes request:
|
||||
<dd>The client MUST supply a URI for the specified printer and
|
||||
a job ID number, or the job URI.
|
||||
|
||||
<dt><span class="info">CUPS 1.4/Mac OS X 10.6</span>"purge-job" (boolean):
|
||||
<dt><span class="info">CUPS 1.4</span>"purge-job" (boolean):
|
||||
|
||||
<dd>The client OPTIONALLY supplies this attribute. When true,
|
||||
all job files (history and document) are purged. The default
|
||||
@@ -632,7 +632,7 @@ Purge-Jobs request:
|
||||
<dd>The client MUST supply a URI for the specified printer or
|
||||
"ipp://.../printers" for all printers and classes.
|
||||
|
||||
<dt><span class="info">CUPS 1.2/Mac OS X 10.5</span>"purge-jobs" (boolean):
|
||||
<dt><span class="info">CUPS 1.2</span>"purge-jobs" (boolean):
|
||||
|
||||
<dd>The client OPTIONALLY supplies this attribute to specify
|
||||
whether the jobs are purged (true) or just canceled (false).
|
||||
@@ -743,7 +743,7 @@ Response:
|
||||
|
||||
</dl>
|
||||
|
||||
<h3 class='title'><span class='info'>CUPS 1.2/Mac OS X 10.5</span><a
|
||||
<h3 class='title'><span class='info'>CUPS 1.2</span><a
|
||||
name='CREATE_PRINTER_SUBSCRIPTION'>Create-Printer-Subscription</a></h3>
|
||||
|
||||
<p>The Create-Printer-Subscription operation (0x0016) creates a
|
||||
@@ -915,7 +915,7 @@ CUPS-Get-Printers request:
|
||||
attributes as described in section 3.1.4.1 of the IPP Model and
|
||||
Semantics document.
|
||||
|
||||
<dt>"first-printer-name" (name(127)):<span class='info'>CUPS 1.2/Mac OS X 10.5</span>
|
||||
<dt>"first-printer-name" (name(127)):<span class='info'>CUPS 1.2</span>
|
||||
|
||||
<dd>The client OPTIONALLY supplies this attribute to
|
||||
select the first printer that is returned.
|
||||
@@ -949,7 +949,7 @@ CUPS-Get-Printers request:
|
||||
responds as if this attribute had been supplied with a value of
|
||||
'all'.
|
||||
|
||||
<dt>"requested-user-name" (name(127)) : <span class='info'>CUPS 1.2/Mac OS X 10.5</span>
|
||||
<dt>"requested-user-name" (name(127)) : <span class='info'>CUPS 1.2</span>
|
||||
|
||||
<dd>The client OPTIONALLY supplies a user name that is used to filter
|
||||
the returned printers.
|
||||
@@ -1016,7 +1016,7 @@ CUPS-Add-Modify-Printer request:
|
||||
|
||||
<dl>
|
||||
|
||||
<dt>"auth-info-required" (1setOf type2 keyword):<span class='info'>CUPS 1.3/Mac OS X 10.5</span>
|
||||
<dt>"auth-info-required" (1setOf type2 keyword):<span class='info'>CUPS 1.3</span>
|
||||
|
||||
<dd>The client OPTIONALLY supplies one or more authentication keywords that are required to communicate with the printer/remote queue.
|
||||
|
||||
@@ -1179,7 +1179,7 @@ CUPS-Get-Classes request:
|
||||
attributes as described in section 3.1.4.1 of the IPP Model and
|
||||
Semantics document.
|
||||
|
||||
<dt>"first-printer-name" (name(127)):<span class='info'>CUPS 1.2/Mac OS X 10.5</span>
|
||||
<dt>"first-printer-name" (name(127)):<span class='info'>CUPS 1.2</span>
|
||||
|
||||
<dd>The client OPTIONALLY supplies this attribute to
|
||||
select the first printer that is returned.
|
||||
@@ -1209,7 +1209,7 @@ CUPS-Get-Classes request:
|
||||
interested. If the client omits this attribute, the server responds as
|
||||
if this attribute had been supplied with a value of 'all'.
|
||||
|
||||
<dt>"requested-user-name" (name(127)) : <span class='info'>CUPS 1.2/Mac OS X 10.5</span>
|
||||
<dt>"requested-user-name" (name(127)) : <span class='info'>CUPS 1.2</span>
|
||||
|
||||
<dd>The client OPTIONALLY supplies a user name that is used to filter
|
||||
the returned printers.
|
||||
@@ -1276,7 +1276,7 @@ CUPS-Add-Modify-Class request:
|
||||
|
||||
<dl>
|
||||
|
||||
<dt>"auth-info-required" (1setOf type2 keyword):<span class='info'>CUPS 1.3/Mac OS X 10.5</span>
|
||||
<dt>"auth-info-required" (1setOf type2 keyword):<span class='info'>CUPS 1.3</span>
|
||||
|
||||
<dd>The client OPTIONALLY supplies one or more authentication keywords that are required to communicate with the printer/remote queue.
|
||||
|
||||
@@ -1575,14 +1575,14 @@ CUPS-Get-Devices request:
|
||||
<dd>The client OPTIONALLY supplies a device class keyword to select
|
||||
which devices are returned.
|
||||
|
||||
<dt>"exclude-schemes" (1setOf name) :<span class='info'>CUPS 1.4/Mac OS X 10.6</span>
|
||||
<dt>"exclude-schemes" (1setOf name) :<span class='info'>CUPS 1.4</span>
|
||||
|
||||
<dd>The client OPTIONALLY supplies a set of scheme names that the
|
||||
requestor does not want to discover. If the client omits this attribute,
|
||||
the server responds with devices of all schemes specified by
|
||||
the "include-schemes" attribute.
|
||||
|
||||
<dt>"include-schemes" (1setOf name) :<span class='info'>CUPS 1.4/Mac OS X 10.6</span>
|
||||
<dt>"include-schemes" (1setOf name) :<span class='info'>CUPS 1.4</span>
|
||||
|
||||
<dd>The client OPTIONALLY supplies a set of scheme names that the
|
||||
requestor wants to discover. If the client omits this attribute,
|
||||
@@ -1601,7 +1601,7 @@ CUPS-Get-Devices request:
|
||||
the client omits this attribute, the server responds as if this
|
||||
attribute had been supplied with a value of 'all'.
|
||||
|
||||
<dt>"timeout" (integer (1:MAX)) :<span class='info'>CUPS 1.4/Mac OS X 10.6</span>
|
||||
<dt>"timeout" (integer (1:MAX)) :<span class='info'>CUPS 1.4</span>
|
||||
|
||||
<dd>The client OPTIONALLY supplies this attribute limiting the number of
|
||||
devices that are returned.
|
||||
@@ -1658,14 +1658,14 @@ CUPS-Get-PPDs request:
|
||||
attributes as described in section 3.1.4.1 of the IPP Model and
|
||||
Semantics document.
|
||||
|
||||
<dt>"exclude-schemes" (1setOf name) :<span class='info'>CUPS 1.4/Mac OS X 10.6</span>
|
||||
<dt>"exclude-schemes" (1setOf name) :<span class='info'>CUPS 1.4</span>
|
||||
|
||||
<dd>The client OPTIONALLY supplies a set of scheme names that the
|
||||
requestor does not want to list. If the client omits this attribute,
|
||||
the server responds with PPDs of all schemes specified by the
|
||||
"include-schemes" attribute.
|
||||
|
||||
<dt>"include-schemes" (1setOf name) :<span class='info'>CUPS 1.4/Mac OS X 10.6</span>
|
||||
<dt>"include-schemes" (1setOf name) :<span class='info'>CUPS 1.4</span>
|
||||
|
||||
<dd>The client OPTIONALLY supplies a set of scheme names that the
|
||||
requestor wants to list. If the client omits this attribute, the server
|
||||
@@ -1680,27 +1680,27 @@ CUPS-Get-PPDs request:
|
||||
|
||||
<dd>The client OPTIONALLY supplies a printer manufacturer to select which PPDs are returned.
|
||||
|
||||
<dt>"ppd-make-and-model" (text(127)):<span class='info'>CUPS 1.3/Mac OS X 10.5</span>
|
||||
<dt>"ppd-make-and-model" (text(127)):<span class='info'>CUPS 1.3</span>
|
||||
|
||||
<dd>The client OPTIONALLY supplies a make and model to select which PPDs are returned.
|
||||
|
||||
<dt>"ppd-model-number" (integer):<span class='info'>CUPS 1.3/Mac OS X 10.5</span>
|
||||
<dt>"ppd-model-number" (integer):<span class='info'>CUPS 1.3</span>
|
||||
|
||||
<dd>The client OPTIONALLY supplies a model number to select which PPDs are returned.
|
||||
|
||||
<dt>"ppd-natural-language" (naturalLanguage):<span class='info'>CUPS 1.3/Mac OS X 10.5</span>
|
||||
<dt>"ppd-natural-language" (naturalLanguage):<span class='info'>CUPS 1.3</span>
|
||||
|
||||
<dd>The client OPTIONALLY supplies a language to select which PPDs are returned.
|
||||
|
||||
<dt>"ppd-product" (text(127)):<span class='info'>CUPS 1.3/Mac OS X 10.5</span>
|
||||
<dt>"ppd-product" (text(127)):<span class='info'>CUPS 1.3</span>
|
||||
|
||||
<dd>The client OPTIONALLY supplies a PostScript product string to select which PPDs are returned.
|
||||
|
||||
<dt>"ppd-psversion" (text(127)):<span class='info'>CUPS 1.3/Mac OS X 10.5</span>
|
||||
<dt>"ppd-psversion" (text(127)):<span class='info'>CUPS 1.3</span>
|
||||
|
||||
<dd>The client OPTIONALLY supplies a PostScript version string to select which PPDs are returned.
|
||||
|
||||
<dt>"ppd-type" (type1 keyword):<span class='info'>CUPS 1.3/Mac OS X 10.5</span>
|
||||
<dt>"ppd-type" (type1 keyword):<span class='info'>CUPS 1.3</span>
|
||||
|
||||
<dd>The client OPTIONALLY supplies a driver type to select which PPDs are returned.
|
||||
|
||||
@@ -1802,7 +1802,7 @@ CUPS-Move-Job Response:
|
||||
|
||||
</dl>
|
||||
|
||||
<h3 class='title'><span class='info'>CUPS 1.2/Mac OS X 10.5</span><a name='CUPS_AUTHENTICATE_JOB'>CUPS-Authenticate-Job Operation</a></h3>
|
||||
<h3 class='title'><span class='info'>CUPS 1.2</span><a name='CUPS_AUTHENTICATE_JOB'>CUPS-Authenticate-Job Operation</a></h3>
|
||||
|
||||
<p>The CUPS-Authenticate-Job operation (0x400E) authenticates a print job for
|
||||
printing, releasing the job if it is held. Typically this is used when printing
|
||||
@@ -1837,11 +1837,11 @@ CUPS-Authenticate-Job request:
|
||||
|
||||
<dl>
|
||||
|
||||
<dt>"auth-info" (1setOf text(MAX)):<span class='info'>CUPS 1.3/Mac OS X 10.5</span>
|
||||
<dt>"auth-info" (1setOf text(MAX)):<span class='info'>CUPS 1.3</span>
|
||||
|
||||
<dd>The client OPTIONALLY supplies one or more authentication values as specified by the "auth-info-required" attribute.
|
||||
|
||||
<dt>"job-hold-until" (keyword | name(MAX)):<span class='info'>CUPS 1.3/Mac OS X 10.5</span>
|
||||
<dt>"job-hold-until" (keyword | name(MAX)):<span class='info'>CUPS 1.3</span>
|
||||
|
||||
<dd>The client OPTIONALLY supplies a new job-hold-until value for the
|
||||
job. If specified and not the "no-hold" value, the job is held instead
|
||||
@@ -1880,7 +1880,7 @@ CUPS-Authenticate-Job Response:
|
||||
|
||||
</dl>
|
||||
|
||||
<h3 class='title'><span class='info'>CUPS 1.3/Mac OS X 10.5</span><a name='CUPS_GET_PPD'>CUPS-Get-PPD Operation</a></h3>
|
||||
<h3 class='title'><span class='info'>CUPS 1.3</span><a name='CUPS_GET_PPD'>CUPS-Get-PPD Operation</a></h3>
|
||||
|
||||
<p>The CUPS-Get-PPD operation (0x400F) gets a PPD file from the
|
||||
server. The PPD file can be specified using a <tt>ppd-name</tt>
|
||||
@@ -1950,7 +1950,7 @@ CUPS-Get-PPD Response:
|
||||
<p>If the status code is <tt>successful-ok</tt>, the PPD file follows
|
||||
the end of the IPP response.</p>
|
||||
|
||||
<h3 class='title'><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='CUPS_GET_DOCUMENT'>CUPS-Get-Document Operation</a></h3>
|
||||
<h3 class='title'><span class='info'>CUPS 1.4</span><a name='CUPS_GET_DOCUMENT'>CUPS-Get-Document Operation</a></h3>
|
||||
|
||||
<p>The CUPS-Get-Document operation (0x4027) gets a document file from a
|
||||
job on the server. The document file is specified using the
|
||||
@@ -2067,7 +2067,7 @@ one of the following:
|
||||
|
||||
</ul>
|
||||
|
||||
<h4><a name="device-id">device-id (text(127))</a><span class="info">CUPS 1.2/Mac OS X 10.5</span></h4>
|
||||
<h4><a name="device-id">device-id (text(127))</a><span class="info">CUPS 1.2</span></h4>
|
||||
|
||||
<p>The device-id attribute specifies the IEEE-1284 device ID
|
||||
string for the device.</p>
|
||||
@@ -2077,7 +2077,7 @@ string for the device.</p>
|
||||
<p>The device-info attribute specifies a human-readable string describing
|
||||
the device, e.g. "Parallel Port #1".
|
||||
|
||||
<h4><a name="device-location">device-location (text(127))</a><span class="info">CUPS 1.4/Mac OS X 10.6</span></h4>
|
||||
<h4><a name="device-location">device-location (text(127))</a><span class="info">CUPS 1.4</span></h4>
|
||||
|
||||
<p>The device-location attribute specifies the physical location of the
|
||||
printer.
|
||||
@@ -2137,7 +2137,7 @@ of the device-class attribute:
|
||||
|
||||
<h3 class='title'><a name='JOB_TEMPLATE_ATTRIBUTES'>Job Template Attributes</a></h3>
|
||||
|
||||
<h4><a name="auth-info">auth-info (1setOf text(MAX))</a><span class="info">CUPS 1.3/Mac OS X 10.5</span></h4>
|
||||
<h4><a name="auth-info">auth-info (1setOf text(MAX))</a><span class="info">CUPS 1.3</span></h4>
|
||||
|
||||
<p>The auth-info attribute specifies the authentication information to use when printing to a remote device. The order and content of each text value is specifed by the <a href="#auth-info-required">auth-info-required</a> printer attribute.
|
||||
|
||||
@@ -2179,7 +2179,7 @@ supported. The default value is 10.
|
||||
<p>The document-count attribute specifies the number of documents that
|
||||
are present in the job.
|
||||
|
||||
<h4><a name="fit-to-page">fit-to-page (boolean)</a><span class="info">CUPS 1.4/Mac OS X 10.6</span></h4>
|
||||
<h4><a name="fit-to-page">fit-to-page (boolean)</a><span class="info">CUPS 1.4</span></h4>
|
||||
|
||||
<p>The fit-to-page attribute specifies whether to scale documents to fit on the
|
||||
selected media (fit-to-page=true) or use the physical size specified in the
|
||||
@@ -2234,17 +2234,17 @@ Universal Coordinated Time (UTC) and <i>not</i> in the local time zone. If the
|
||||
specified time is less than the current time, the job is held until the
|
||||
next day.
|
||||
|
||||
<h4><a name="job-media-progress">job-media-progress (integer(0:100))</a><span class='info'>CUPS 1.4/Mac OS X 10.6</span></h4>
|
||||
<h4><a name="job-media-progress">job-media-progress (integer(0:100))</a><span class='info'>CUPS 1.4</span></h4>
|
||||
|
||||
<p>The job-media-progress attribute specifies the percentage of completion of
|
||||
the current page. It is only valid when the job-state attribute has the
|
||||
"processing" value (5).</p>
|
||||
|
||||
<h4><a name="job-printer-state-message">job-printer-state-message (text(MAX))</a><span class='info'>CUPS 1.3/Mac OS X 10.5</span></h4>
|
||||
<h4><a name="job-printer-state-message">job-printer-state-message (text(MAX))</a><span class='info'>CUPS 1.3</span></h4>
|
||||
|
||||
<p>The job-printer-state-message attribute provides the last known value of the printer-state-message attribute for the printer that processed (or is processing) the job.</p>
|
||||
|
||||
<h4><a name="job-printer-state-reasons">job-printer-state-reasons (1setOf type2 keyword)</a><span class='info'>CUPS 1.3/Mac OS X 10.5</span></h4>
|
||||
<h4><a name="job-printer-state-reasons">job-printer-state-reasons (1setOf type2 keyword)</a><span class='info'>CUPS 1.3</span></h4>
|
||||
|
||||
<p>The job-printer-state-reasons attribute provides the last known value of the printer-state-reasons attribute for the printer that processed (or is processing) the job.</p>
|
||||
|
||||
@@ -2466,7 +2466,7 @@ name of the PPD file (the NickName attribute in the PPD file). If the
|
||||
make and model is not specified in the PPD file then the ModelName or
|
||||
ShortNickName attributes are used instead.
|
||||
|
||||
<h4><a name="ppd-model-number">ppd-model-number (integer)</a><span class="info">CUPS 1.3/Mac OS X 10.5</span></h4>
|
||||
<h4><a name="ppd-model-number">ppd-model-number (integer)</a><span class="info">CUPS 1.3</span></h4>
|
||||
|
||||
<p>The ppd-model-number attribute provides the <tt>cupsModelNumber</tt> value from the PPD file.
|
||||
|
||||
@@ -2484,11 +2484,11 @@ language is unknown or undefined then "en" (English) is assumed.
|
||||
|
||||
<p>The ppd-product attribute specifies the Product attribute values in the PPD file.
|
||||
|
||||
<h4><a name="ppd-psversion">ppd-psversion (1setOf text(127))</a><span class="info">CUPS 1.3/Mac OS X 10.5</span></h4>
|
||||
<h4><a name="ppd-psversion">ppd-psversion (1setOf text(127))</a><span class="info">CUPS 1.3</span></h4>
|
||||
|
||||
<p>The ppd-product attribute specifies the PSVersion attribute values in the PPD file.
|
||||
|
||||
<h4><a name="ppd-type">ppd-type (type1 keyword)</a><span class="info">CUPS 1.3/Mac OS X 10.5</span></h4>
|
||||
<h4><a name="ppd-type">ppd-type (type1 keyword)</a><span class="info">CUPS 1.3</span></h4>
|
||||
|
||||
<p>The ppd-type attribute specifies the type of driver described by the PPD file:</p>
|
||||
|
||||
@@ -2509,7 +2509,7 @@ language is unknown or undefined then "en" (English) is assumed.
|
||||
|
||||
<h3 class='title'><a name='PRINTER_ATTRIBUTES'>Printer Attributes</a></h3>
|
||||
|
||||
<h4><a name="auth-info-required">auth-info-required (1setOf type2 keyword)</a><span class="info">CUPS 1.3/Mac OS X 10.5</span></h4>
|
||||
<h4><a name="auth-info-required">auth-info-required (1setOf type2 keyword)</a><span class="info">CUPS 1.3</span></h4>
|
||||
|
||||
<p>The auth-info-required attribute specifies the authentication information that is required for printing a job. The following keywords are recognized:</p>
|
||||
|
||||
@@ -2549,51 +2549,50 @@ the system.
|
||||
<p>The job-sheets-supported attribute specifies the available banner files.
|
||||
There will always be at least one banner file available called "none".
|
||||
|
||||
<h4><a name="marker-change-time">marker-change-time (integer)</a><span class='info'>CUPS 1.3/Mac OS X 10.5</span></h4>
|
||||
<h4><a name="marker-change-time">marker-change-time (integer)</a><span class='info'>CUPS 1.3</span></h4>
|
||||
|
||||
<p>The marker-change-time attribute specifies the printer-up-time value when
|
||||
the last change to the marker-colors, marker-levels, marker-message,
|
||||
marker-names, or marker-types attributes was made.</p>
|
||||
|
||||
<h4><a name="marker-colors">marker-colors (1setof name(MAX))</a><span class='info'>CUPS 1.3/Mac OS X 10.5</span></h4>
|
||||
<h4><a name="marker-colors">marker-colors (1setof name(MAX))</a><span class='info'>CUPS 1.3</span></h4>
|
||||
|
||||
<p>The marker-colors attribute specifies the color(s) for each supply in the
|
||||
printer. It is only available when the driver provides supply levels. The
|
||||
color is either "none" or one or more hex-encoded sRGB colors of the form
|
||||
"#RRGGBB".</p>
|
||||
|
||||
<h4><a name="marker-high-levels">marker-high-levels (1setof integer(0:100))</a><span class='info'>CUPS 1.4/Mac OS X 10.6</span></h4>
|
||||
<h4><a name="marker-high-levels">marker-high-levels (1setof integer(0:100))</a><span class='info'>CUPS 1.4</span></h4>
|
||||
|
||||
<p>The marker-high-levels attribute specifies the supply levels that indicate
|
||||
a near-full condition. A value of 100 should be used for supplies that are
|
||||
consumed/emptied, e.g. ink cartridges.</p>
|
||||
|
||||
<h4><a name="marker-levels">marker-levels (1setof integer(-3:100))</a><span class='info'>CUPS 1.3/Mac OS X 10.5</span></h4>
|
||||
<h4><a name="marker-levels">marker-levels (1setof integer(-1:100))</a><span class='info'>CUPS 1.3</span></h4>
|
||||
|
||||
<p>The marker-levels attribute specifies the current supply levels for the
|
||||
printer. It is only available when the driver provides supply levels. A
|
||||
value of -1 indicates the level is unavailable, -2 indicates unknown, and -3
|
||||
indicates the level is unknown but has not yet reached capacity. Values from 0
|
||||
to 100 indicate the corresponding percentage.</p>
|
||||
value of -1 indicates the level is unknown, while values from 0 to 100
|
||||
indicate the corresponding percentage.</p>
|
||||
|
||||
<h4><a name="marker-low-levels">marker-low-levels (1setof integer(0:100))</a><span class='info'>CUPS 1.4/Mac OS X 10.6</span></h4>
|
||||
<h4><a name="marker-low-levels">marker-low-levels (1setof integer(0:100))</a><span class='info'>CUPS 1.4</span></h4>
|
||||
|
||||
<p>The marker-low-levels attribute specifies the supply levels that indicate
|
||||
a near-empty condition. A value of 0 should be used for supplies that are
|
||||
filled, e.g. waste ink tanks.</p>
|
||||
|
||||
<h4><a name="marker-message">marker-message (text(MAX))</a><span class='info'>CUPS 1.4/Mac OS X 10.6</span></h4>
|
||||
<h4><a name="marker-message">marker-message (text(MAX))</a><span class='info'>CUPS 1.4</span></h4>
|
||||
|
||||
<p>The marker-message attribute provides a human-readable status message
|
||||
for the current supply levels, e.g. "12 pages of ink remaining." It is only
|
||||
available when the driver provides supply levels.</p>
|
||||
|
||||
<h4><a name="marker-names">marker-names (1setof name(MAX))</a><span class='info'>CUPS 1.3/Mac OS X 10.5</span></h4>
|
||||
<h4><a name="marker-names">marker-names (1setof name(MAX))</a><span class='info'>CUPS 1.3</span></h4>
|
||||
|
||||
<p>The marker-names attribute specifies the name(s) for each supply in the
|
||||
printer. It is only available when the driver provides supply levels.</p>
|
||||
|
||||
<h4><a name="marker-types">marker-types (1setof type3 keyword)</a><span class='info'>CUPS 1.3/Mac OS X 10.5</span></h4>
|
||||
<h4><a name="marker-types">marker-types (1setof type3 keyword)</a><span class='info'>CUPS 1.3</span></h4>
|
||||
|
||||
<p>The marker-types attribute specifies the type(s) of each supply in the
|
||||
printer. It is only available when the driver provides supply levels. The
|
||||
@@ -2672,13 +2671,13 @@ to this printer. The default port monitor is "none".
|
||||
|
||||
<p>The port-monitor-supported attribute specifies the available port monitors.
|
||||
|
||||
<h4><a name="printer-commands">printer-commands (1setOf Type3 keyword)</a><span class='info'>CUPS 1.4/Mac OS X 10.6</span></h4>
|
||||
<h4><a name="printer-commands">printer-commands (1setOf Type3 keyword)</a><span class='info'>CUPS 1.4</span></h4>
|
||||
|
||||
<p>The printer-commands attribute specifies the commands that are supported
|
||||
by the CUPS command file filter. The keyword "none" indicates that no commands
|
||||
are supported.</p>
|
||||
|
||||
<h4><a name="printer-dns-sd-name">printer-dns-sd-name (name(MAX) | noValue)</a><span class='info'>CUPS 1.4/Mac OS X 10.6</span></h4>
|
||||
<h4><a name="printer-dns-sd-name">printer-dns-sd-name (name(MAX) | noValue)</a><span class='info'>CUPS 1.4</span></h4>
|
||||
|
||||
<p>The printer-dns-sd-name attribute specifies the registered DNS-SD service
|
||||
name for the printer. If the printer is not being shared using this protocol,
|
||||
@@ -2698,10 +2697,10 @@ and the following CUPS-specific keywords:</p>
|
||||
permissions. CUPS will not execute programs with world write permissions
|
||||
or setuid programs. When run as root (the default), CUPS also does not
|
||||
execute programs that are not owned by root.
|
||||
<span class='info'>CUPS 1.4/Mac OS X 10.6</span></li>
|
||||
<span class='info'>CUPS 1.4</span></li>
|
||||
|
||||
<li><tt>cups-missing-filter-warning</tt> - a filter or backend is not
|
||||
installed. <span class='info'>CUPS 1.4/Mac OS X 10.6</span></li>
|
||||
installed. <span class='info'>CUPS 1.4</span></li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
+27
-27
@@ -8,7 +8,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<!--
|
||||
"$Id: spec-ppd.html 8673 2009-05-22 17:34:15Z mike $"
|
||||
"$Id: spec-ppd.html 8628 2009-05-13 22:25:34Z mike $"
|
||||
|
||||
CUPS PPD extensions specification for the Common UNIX Printing System (CUPS).
|
||||
|
||||
@@ -212,7 +212,7 @@ function is applied <i>after</i> the CMY transformation:</p>
|
||||
</pre>
|
||||
|
||||
|
||||
<h3><span class='info'>Mac OS X 10.3/CUPS 1.2/Mac OS X 10.5</span><a name='cupsICCProfile'>cupsICCProfile</a></h3>
|
||||
<h3><span class='info'>Mac OS X 10.3/CUPS 1.2</span><a name='cupsICCProfile'>cupsICCProfile</a></h3>
|
||||
|
||||
<p class='summary'>*cupsICCProfile
|
||||
ColorModel.MediaType.Resolution/Description: "filename"</p>
|
||||
@@ -395,7 +395,7 @@ The same <tt>cupsUIResolver</tt> can be used by multiple
|
||||
|
||||
</blockquote>
|
||||
|
||||
<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsUIConstraints'>cupsUIConstraints</a></h3>
|
||||
<h3><span class='info'>CUPS 1.4</span><a name='cupsUIConstraints'>cupsUIConstraints</a></h3>
|
||||
|
||||
<p class='summary'>*cupsUIConstraints resolver: "*Keyword1 *Keyword2 ..."<br>
|
||||
*cupsUIConstraints resolver: "*Keyword1 OptionKeyword1 *Keyword2 ..."<br>
|
||||
@@ -428,7 +428,7 @@ choice followed by testing each option choice to resolve the conflict.</p>
|
||||
*cupsUIConstraints photo: "*OutputMode Photo *MediaType Transparency *Resolution 1200dpi"
|
||||
</pre>
|
||||
|
||||
<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsUIResolver'>cupsUIResolver</a></h3>
|
||||
<h3><span class='info'>CUPS 1.4</span><a name='cupsUIResolver'>cupsUIResolver</a></h3>
|
||||
|
||||
<p class='summary'>*cupsUIResolution resolver: "*Keyword1 OptionKeyword1 *Keyword2 OptionKeyword2 ..."</p>
|
||||
|
||||
@@ -1058,7 +1058,7 @@ PRE B {
|
||||
<p>The CUPS media attributes allow drivers to specify alternate custom page
|
||||
size limits based on up to two options.</p>
|
||||
|
||||
<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsMediaQualifier2'>cupsMediaQualifier2</a></h3>
|
||||
<h3><span class='info'>CUPS 1.4</span><a name='cupsMediaQualifier2'>cupsMediaQualifier2</a></h3>
|
||||
|
||||
<p class='summary'>*cupsMediaQualifier2: MainKeyword</p>
|
||||
|
||||
@@ -1077,7 +1077,7 @@ custom page size limits.</p>
|
||||
*cupsMinSize ..Photo: "300 300"
|
||||
</pre>
|
||||
|
||||
<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsMediaQualifier3'>cupsMediaQualifier3</a></h3>
|
||||
<h3><span class='info'>CUPS 1.4</span><a name='cupsMediaQualifier3'>cupsMediaQualifier3</a></h3>
|
||||
|
||||
<p class='summary'>*cupsMediaQualifier3: MainKeyword</p>
|
||||
|
||||
@@ -1096,7 +1096,7 @@ custom page size limits.</p>
|
||||
*cupsMinSize ..Photo: "300 300"
|
||||
</pre>
|
||||
|
||||
<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsMinSize'>cupsMinSize</a></h3>
|
||||
<h3><span class='info'>CUPS 1.4</span><a name='cupsMinSize'>cupsMinSize</a></h3>
|
||||
|
||||
<p class='summary'>*cupsMinSize .Qualifier2.Qualifier3: "width length"<br>
|
||||
*cupsMinSize .Qualifier2.: "width length"<br>
|
||||
@@ -1119,7 +1119,7 @@ are used to identify options to use for matching.</p>
|
||||
*cupsMinSize ..Photo: "300 300"
|
||||
</pre>
|
||||
|
||||
<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsMaxSize'>cupsMaxSize</a></h3>
|
||||
<h3><span class='info'>CUPS 1.4</span><a name='cupsMaxSize'>cupsMaxSize</a></h3>
|
||||
|
||||
<p class='summary'>*cupsMaxSize .Qualifier2.Qualifier3: "width length"<br>
|
||||
*cupsMaxSize .Qualifier2.: "width length"<br>
|
||||
@@ -1145,7 +1145,7 @@ are used to identify options to use for matching.</p>
|
||||
|
||||
<h2 class='title'><a name='ATTRIBUTES'>General Attributes</a></h2>
|
||||
|
||||
<h3><span class='info'>CUPS 1.3/Mac OS X 10.5</span><a name='cupsBackSide'>cupsBackSide</a></h3>
|
||||
<h3><span class='info'>CUPS 1.3</span><a name='cupsBackSide'>cupsBackSide</a></h3>
|
||||
|
||||
<p class='summary'>*cupsBackSide: keyword</p>
|
||||
|
||||
@@ -1241,7 +1241,7 @@ will be ignored.</p>
|
||||
<p>Also see the related <a href='#APDuplexRequiresFlippedMargin'><tt>APDuplexRequiresFlippedMargin</tt></a>
|
||||
attribute.</p>
|
||||
|
||||
<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsCommands'>cupsCommands</a></h3>
|
||||
<h3><span class='info'>CUPS 1.4</span><a name='cupsCommands'>cupsCommands</a></h3>
|
||||
|
||||
<p class='summary'>*cupsCommands: "name name2 ... nameN"</p>
|
||||
|
||||
@@ -1257,7 +1257,7 @@ by whitespace.</p>
|
||||
</pre>
|
||||
|
||||
|
||||
<h3><span class='info'>CUPS 1.3/Mac OS X 10.5</span><a name='cupsEvenDuplex'>cupsEvenDuplex</a></h3>
|
||||
<h3><span class='info'>CUPS 1.3</span><a name='cupsEvenDuplex'>cupsEvenDuplex</a></h3>
|
||||
|
||||
<p class='summary'>*cupsEvenDuplex: boolean</p>
|
||||
|
||||
@@ -1341,7 +1341,7 @@ Ghostscript can use:</p>
|
||||
*cupsFlipDuplex: true
|
||||
</pre></blockquote>
|
||||
|
||||
<h3><span class='info'>CUPS 1.3/Mac OS X 10.5</span><a name='cupsIPPFinishings'>cupsIPPFinishings</a></h3>
|
||||
<h3><span class='info'>CUPS 1.3</span><a name='cupsIPPFinishings'>cupsIPPFinishings</a></h3>
|
||||
|
||||
<p class='summary'>*cupsIPPFinishings number/text: "*Option Choice ..."</p>
|
||||
|
||||
@@ -1357,7 +1357,7 @@ values to PPD options and choices.</p>
|
||||
*cupsIPPFinishings 21/staple-bottom-left: "*StapleLocation SingleLandscape"
|
||||
</pre>
|
||||
|
||||
<h3><span class='info'>CUPS 1.3/Mac OS X 10.5</span><a name='cupsIPPReason'>cupsIPPReason</a></h3>
|
||||
<h3><span class='info'>CUPS 1.3</span><a name='cupsIPPReason'>cupsIPPReason</a></h3>
|
||||
|
||||
<p class='summary'>*cupsIPPReason reason/Reason Text: "optional URIs"</p>
|
||||
|
||||
@@ -1401,7 +1401,7 @@ http://www.vendor.com/help"
|
||||
*End
|
||||
</pre>
|
||||
|
||||
<h3><span class='info'>CUPS 1.2/Mac OS X 10.5</span><a name='cupsLanguages'>cupsLanguages</a></h3>
|
||||
<h3><span class='info'>CUPS 1.2</span><a name='cupsLanguages'>cupsLanguages</a></h3>
|
||||
|
||||
<p class='summary'>*cupsLanguages: "locale list"</p>
|
||||
|
||||
@@ -1431,7 +1431,7 @@ hardware. The default value is <code>false</code>.</p>
|
||||
*cupsManualCopies: true
|
||||
</pre>
|
||||
|
||||
<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsMarkerName'>cupsMarkerName</a></h3>
|
||||
<h3><span class='info'>CUPS 1.4</span><a name='cupsMarkerName'>cupsMarkerName</a></h3>
|
||||
|
||||
<p class='summary'>*cupsMarkerName/Name Text: ""</p>
|
||||
|
||||
@@ -1445,7 +1445,7 @@ generated by the driver to human readable text.</p>
|
||||
*cupsMarkerName cyanToner/Cyan Toner: ""
|
||||
</pre>
|
||||
|
||||
<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsMarkerNotice'>cupsMarkerNotice</a></h3>
|
||||
<h3><span class='info'>CUPS 1.4</span><a name='cupsMarkerNotice'>cupsMarkerNotice</a></h3>
|
||||
|
||||
<p class='summary'>*cupsMarkerNotice: "disclaimer text"</p>
|
||||
|
||||
@@ -1474,7 +1474,7 @@ the output for a specific model of printer.</p>
|
||||
*cupsModelNumber: 1234
|
||||
</pre>
|
||||
|
||||
<h3><span class='info'>CUPS 1.3/Mac OS X 10.5</span><a name='cupsPJLCharset'>cupsPJLCharset</a></h3>
|
||||
<h3><span class='info'>CUPS 1.3</span><a name='cupsPJLCharset'>cupsPJLCharset</a></h3>
|
||||
|
||||
<p class='summary'>*cupsPJLCharset: "ISO character set name"</p>
|
||||
|
||||
@@ -1489,7 +1489,7 @@ assumed.</p>
|
||||
*cupsPJLCharset: "UTF-8"
|
||||
</pre>
|
||||
|
||||
<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsPJLDisplay'>cupsPJLDisplay</a></h3>
|
||||
<h3><span class='info'>CUPS 1.4</span><a name='cupsPJLDisplay'>cupsPJLDisplay</a></h3>
|
||||
|
||||
<p class='summary'>*cupsPJLDisplay: "what"</p>
|
||||
|
||||
@@ -1508,7 +1508,7 @@ to use "@PJL RDYMSG DISPLAY". The default is "job".</p>
|
||||
*cupsPJLDisplay: "none"
|
||||
</pre>
|
||||
|
||||
<h3><span class='info'>CUPS 1.2/Mac OS X 10.5</span><a name='cupsPortMonitor'>cupsPortMonitor</a></h3>
|
||||
<h3><span class='info'>CUPS 1.2</span><a name='cupsPortMonitor'>cupsPortMonitor</a></h3>
|
||||
|
||||
<p class='summary'>*cupsPortMonitor urischeme/Descriptive Text: "port monitor"</p>
|
||||
|
||||
@@ -1540,7 +1540,7 @@ to disable the port monitor for the given URI scheme.</p>
|
||||
*cupsPortMonitor usb/USB Status Monitor: "epson-usb"
|
||||
</pre>
|
||||
|
||||
<h3><span class='info'>CUPS 1.3/Mac OS X 10.5</span><a name='cupsPreFilter'>cupsPreFilter</a></h3>
|
||||
<h3><span class='info'>CUPS 1.3</span><a name='cupsPreFilter'>cupsPreFilter</a></h3>
|
||||
|
||||
<p class='summary'>*cupsPreFilter: "source/type cost program"</p>
|
||||
|
||||
@@ -1558,7 +1558,7 @@ before the filter that accepts the given MIME type.</p>
|
||||
*cupsPreFilter: "image/png 0 mypngprefilter"
|
||||
</pre>
|
||||
|
||||
<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsSNMPSupplies'>cupsSNMPSupplies</a></h3>
|
||||
<h3><span class='info'>CUPS 1.4</span><a name='cupsSNMPSupplies'>cupsSNMPSupplies</a></h3>
|
||||
|
||||
<p class='summary'>*cupsSNMPSupplies: boolean</p>
|
||||
|
||||
@@ -1863,7 +1863,7 @@ the device.</p>
|
||||
|
||||
<h2 class='title'><a name='HISTORY'>Change History</a></h2>
|
||||
|
||||
<h3>Changes in CUPS 1.4</h3>
|
||||
<h3>Changes in CUPS 1.4</a></h3>
|
||||
|
||||
<ul>
|
||||
|
||||
@@ -1898,7 +1898,7 @@ the device.</p>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3>Changes in CUPS 1.3.1</h3>
|
||||
<h3>Changes in CUPS 1.3.1</a></h3>
|
||||
|
||||
<ul>
|
||||
|
||||
@@ -1913,7 +1913,7 @@ the device.</p>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3>Changes in CUPS 1.3</h3>
|
||||
<h3>Changes in CUPS 1.3</a></h3>
|
||||
|
||||
<ul>
|
||||
|
||||
@@ -1932,7 +1932,7 @@ the device.</p>
|
||||
|
||||
</ul>
|
||||
|
||||
<h3>Changes in CUPS 1.2.8</h3>
|
||||
<h3>Changes in CUPS 1.2.8</a></h3>
|
||||
|
||||
<ul>
|
||||
|
||||
@@ -1941,7 +1941,7 @@ the device.</p>
|
||||
|
||||
</ul>
|
||||
|
||||
<h3>Changes in CUPS 1.2</h3>
|
||||
<h3>Changes in CUPS 1.2</a></h3>
|
||||
|
||||
<ul>
|
||||
|
||||
@@ -1966,7 +1966,7 @@ the device.</p>
|
||||
|
||||
</ul>
|
||||
|
||||
<h3>Changes in CUPS 1.1</h3>
|
||||
<h3>Changes in CUPS 1.1</a></h3>
|
||||
|
||||
<ul>
|
||||
|
||||
|
||||
Arquivo binário não exibido.
|
Depois Largura: | Altura: | Tamanho: 41 KiB |
Arquivo binário não exibido.
|
Antes Largura: | Altura: | Tamanho: 75 KiB |
+397
-418
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
|
Antes Largura: | Altura: | Tamanho: 46 KiB Depois Largura: | Altura: | Tamanho: 37 KiB |
Arquivo binário não exibido.
|
Antes Largura: | Altura: | Tamanho: 146 KiB |
+1
-2
@@ -164,9 +164,8 @@ install-libs: $(INSTALLSTATIC)
|
||||
|
||||
installstatic:
|
||||
$(INSTALL_DIR) -m 755 $(LIBDIR)
|
||||
$(INSTALL_LIB) -m 755 libcupsdriver.a $(LIBDIR)
|
||||
$(INSTALL_LIB) libcupsdriver.a $(LIBDIR)
|
||||
$(RANLIB) $(LIBDIR)/libcupsdriver.a
|
||||
$(CHMOD) 555 $(LIBDIR)/libcupsdriver.a
|
||||
|
||||
|
||||
#
|
||||
|
||||
+2
-3
@@ -164,9 +164,8 @@ install-libs: $(INSTALLSTATIC) $(INSTALL32) $(INSTALL64)
|
||||
|
||||
installstatic:
|
||||
$(INSTALL_DIR) -m 755 $(LIBDIR)
|
||||
$(INSTALL_LIB) -m 755 libcupsimage.a $(LIBDIR)
|
||||
$(RANLIB) $(LIBDIR)/libcupsimage.a
|
||||
$(CHMOD) 555 $(LIBDIR)/libcupsimage.a
|
||||
$(INSTALL_LIB) libcupsimage.a $(LIBDIR);
|
||||
$(RANLIB) $(LIBDIR)/libcupsimage.a;
|
||||
|
||||
install32bit:
|
||||
$(INSTALL_DIR) -m 755 $(LIB32DIR)
|
||||
|
||||
+1
-1
@@ -139,7 +139,7 @@ _cupsRasterClearError(void)
|
||||
*
|
||||
* If there are no recent errors, NULL is returned.
|
||||
*
|
||||
* @since CUPS 1.3/Mac OS X 10.5@
|
||||
* @since CUPS 1.3@
|
||||
*/
|
||||
|
||||
const char * /* O - Last error */
|
||||
|
||||
@@ -241,7 +241,8 @@ main(int argc, /* I - Number of command-line arguments */
|
||||
* Child process for pstoraster... Assign new pipe input to pstoraster...
|
||||
*/
|
||||
|
||||
dup2(mypipes[0], 0);
|
||||
close(0);
|
||||
dup(mypipes[0]);
|
||||
close(mypipes[0]);
|
||||
close(mypipes[1]);
|
||||
|
||||
@@ -264,7 +265,8 @@ main(int argc, /* I - Number of command-line arguments */
|
||||
* Update stdout so it points at the new pstoraster...
|
||||
*/
|
||||
|
||||
dup2(mypipes[1], 1);
|
||||
close(1);
|
||||
dup(mypipes[1]);
|
||||
close(mypipes[0]);
|
||||
close(mypipes[1]);
|
||||
|
||||
|
||||
@@ -985,9 +985,6 @@ scan_ps(_cups_ps_stack_t *st, /* I - Stack */
|
||||
*/
|
||||
|
||||
for (cur ++; *cur && *cur != '\n' && *cur != '\r'; cur ++);
|
||||
|
||||
if (!*cur)
|
||||
cur --;
|
||||
}
|
||||
else if (!isspace(*cur & 255))
|
||||
break;
|
||||
|
||||
+71
-268
@@ -65,23 +65,13 @@ main(int argc, /* I - Number of command-line args */
|
||||
fit; /* Fit output to default page size? */
|
||||
ppd_file_t *ppd; /* PPD file */
|
||||
ppd_size_t *size; /* Current page size */
|
||||
int pdf_pid, /* Process ID for pdftops */
|
||||
pdf_argc, /* Number of args for pdftops */
|
||||
pstops_pid, /* Process ID of pstops filter */
|
||||
pstops_pipe[2], /* Pipe to pstops filter */
|
||||
wait_children, /* Number of child processes left */
|
||||
wait_pid, /* Process ID from wait() */
|
||||
wait_status, /* Status from child */
|
||||
exit_status = 0; /* Exit status */
|
||||
char *pdf_argv[100], /* Arguments for pdftops/gs */
|
||||
pdf_width[255], /* Paper width */
|
||||
pdf_height[255], /* Paper height */
|
||||
pstops_path[1024], /* Path to pstops program */
|
||||
*pstops_argv[7], /* Arguments for pstops filter */
|
||||
*pstops_options, /* Options for pstops filter */
|
||||
*pstops_start, /* Start of pstops filter option */
|
||||
*pstops_end; /* End of pstops filter option */
|
||||
const char *cups_serverbin; /* CUPS_SERVERBIN environment variable */
|
||||
int pdfpid, /* Process ID for pdftops */
|
||||
pdfwaitpid, /* Process ID from wait() */
|
||||
pdfstatus, /* Status from pdftops */
|
||||
pdfargc; /* Number of args for pdftops */
|
||||
char *pdfargv[100], /* Arguments for pdftops/gs */
|
||||
pdfwidth[255], /* Paper width */
|
||||
pdfheight[255]; /* Paper height */
|
||||
#if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
|
||||
struct sigaction action; /* Actions for POSIX signals */
|
||||
#endif /* HAVE_SIGACTION && !HAVE_SIGSET */
|
||||
@@ -167,112 +157,22 @@ main(int argc, /* I - Number of command-line args */
|
||||
ppdMarkDefaults(ppd);
|
||||
cupsMarkOptions(ppd, num_options, options);
|
||||
|
||||
/*
|
||||
* Build the pstops command-line...
|
||||
*/
|
||||
|
||||
if ((cups_serverbin = getenv("CUPS_SERVERBIN")) == NULL)
|
||||
cups_serverbin = CUPS_SERVERBIN;
|
||||
|
||||
snprintf(pstops_path, sizeof(pstops_path), "%s/filter/pstops",
|
||||
cups_serverbin);
|
||||
|
||||
pstops_options = strdup(argv[5]);
|
||||
|
||||
if ((pstops_start = strstr(pstops_options, "fitplot")) != NULL &&
|
||||
(!pstops_start[7] || isspace(pstops_start[7] & 255)))
|
||||
{
|
||||
/*
|
||||
* Strip [no]fitplot option...
|
||||
*/
|
||||
|
||||
pstops_end = pstops_start + 7;
|
||||
|
||||
if ((pstops_start - pstops_options) >= 2 &&
|
||||
!strncmp(pstops_start - 2, "no", 2))
|
||||
pstops_start -= 2;
|
||||
|
||||
while (*pstops_end && isspace(*pstops_end & 255))
|
||||
pstops_end ++;
|
||||
|
||||
_cups_strcpy(pstops_start, pstops_end);
|
||||
}
|
||||
|
||||
if ((pstops_start = strstr(pstops_options, "fit-to-page")) != NULL &&
|
||||
(!pstops_start[11] || isspace(pstops_start[11] & 255)))
|
||||
{
|
||||
/*
|
||||
* Strip [no]fit-to-page option...
|
||||
*/
|
||||
|
||||
pstops_end = pstops_start + 11;
|
||||
|
||||
if ((pstops_start - pstops_options) >= 2 &&
|
||||
!strncmp(pstops_start - 2, "no", 2))
|
||||
pstops_start -= 2;
|
||||
|
||||
while (*pstops_end && isspace(*pstops_end & 255))
|
||||
pstops_end ++;
|
||||
|
||||
_cups_strcpy(pstops_start, pstops_end);
|
||||
}
|
||||
|
||||
if ((pstops_start = strstr(pstops_options, "landscape")) != NULL &&
|
||||
(!pstops_start[9] || isspace(pstops_start[9] & 255)))
|
||||
{
|
||||
/*
|
||||
* Strip [no]landscape option...
|
||||
*/
|
||||
|
||||
pstops_end = pstops_start + 9;
|
||||
|
||||
if ((pstops_start - pstops_options) >= 2 &&
|
||||
!strncmp(pstops_start - 2, "no", 2))
|
||||
pstops_start -= 2;
|
||||
|
||||
while (*pstops_end && isspace(*pstops_end & 255))
|
||||
pstops_end ++;
|
||||
|
||||
_cups_strcpy(pstops_start, pstops_end);
|
||||
}
|
||||
|
||||
if ((pstops_start = strstr(pstops_options, "orientation-requested=")) != NULL)
|
||||
{
|
||||
/*
|
||||
* Strip [no]fitplot option...
|
||||
*/
|
||||
|
||||
pstops_end = pstops_start + 22;
|
||||
while (*pstops_end && !isspace(*pstops_end & 255))
|
||||
pstops_end ++;
|
||||
|
||||
_cups_strcpy(pstops_start, pstops_end);
|
||||
}
|
||||
|
||||
pstops_argv[0] = argv[0]; /* Printer */
|
||||
pstops_argv[1] = argv[1]; /* Job */
|
||||
pstops_argv[2] = argv[2]; /* User */
|
||||
pstops_argv[3] = argv[3]; /* Title */
|
||||
pstops_argv[4] = argv[4]; /* Copies */
|
||||
pstops_argv[5] = pstops_options; /* Options */
|
||||
pstops_argv[6] = NULL;
|
||||
|
||||
/*
|
||||
* Build the command-line for the pdftops or gs filter...
|
||||
*/
|
||||
|
||||
#ifdef HAVE_PDFTOPS
|
||||
pdf_argv[0] = (char *)"pdftops";
|
||||
pdf_argc = 1;
|
||||
pdfargv[0] = (char *)"pdftops";
|
||||
pdfargc = 1;
|
||||
#else
|
||||
pdf_argv[0] = (char *)"gs";
|
||||
pdf_argv[1] = (char *)"-q";
|
||||
pdf_argv[2] = (char *)"-dNOPAUSE";
|
||||
pdf_argv[3] = (char *)"-dBATCH";
|
||||
pdf_argv[4] = (char *)"-dSAFER";
|
||||
pdf_argv[5] = (char *)"-sDEVICE=pswrite";
|
||||
pdf_argv[6] = (char *)"-sOUTPUTFILE=%stdout";
|
||||
pdf_argc = 7;
|
||||
pdfargv[0] = (char *)"gs";
|
||||
pdfargv[1] = (char *)"-q";
|
||||
pdfargv[2] = (char *)"-dNOPAUSE";
|
||||
pdfargv[3] = (char *)"-dBATCH";
|
||||
pdfargv[4] = (char *)"-dSAFER";
|
||||
pdfargv[5] = (char *)"-sDEVICE=pswrite";
|
||||
pdfargv[6] = (char *)"-sOUTPUTFILE=%stdout";
|
||||
pdfargc = 7;
|
||||
#endif /* HAVE_PDFTOPS */
|
||||
|
||||
if (ppd)
|
||||
@@ -284,27 +184,27 @@ main(int argc, /* I - Number of command-line args */
|
||||
if (ppd->language_level == 1)
|
||||
{
|
||||
#ifdef HAVE_PDFTOPS
|
||||
pdf_argv[pdf_argc++] = (char *)"-level1";
|
||||
pdf_argv[pdf_argc++] = (char *)"-noembtt";
|
||||
pdfargv[pdfargc++] = (char *)"-level1";
|
||||
pdfargv[pdfargc++] = (char *)"-noembtt";
|
||||
#else
|
||||
pdf_argv[pdf_argc++] = (char *)"-dLanguageLevel=1";
|
||||
pdfargv[pdfargc++] = (char *)"-dLanguageLevel=1";
|
||||
#endif /* HAVE_PDFTOPS */
|
||||
}
|
||||
else if (ppd->language_level == 2)
|
||||
{
|
||||
#ifdef HAVE_PDFTOPS
|
||||
pdf_argv[pdf_argc++] = (char *)"-level2";
|
||||
pdfargv[pdfargc++] = (char *)"-level2";
|
||||
if (!ppd->ttrasterizer)
|
||||
pdf_argv[pdf_argc++] = (char *)"-noembtt";
|
||||
pdfargv[pdfargc++] = (char *)"-noembtt";
|
||||
#else
|
||||
pdf_argv[pdf_argc++] = (char *)"-dLanguageLevel=2";
|
||||
pdfargv[pdfargc++] = (char *)"-dLanguageLevel=2";
|
||||
#endif /* HAVE_PDFTOPS */
|
||||
}
|
||||
else
|
||||
#ifdef HAVE_PDFTOPS
|
||||
pdf_argv[pdf_argc++] = (char *)"-level3";
|
||||
pdfargv[pdfargc++] = (char *)"-level3";
|
||||
#else
|
||||
pdf_argv[pdf_argc++] = (char *)"-dLanguageLevel=3";
|
||||
pdfargv[pdfargc++] = (char *)"-dLanguageLevel=3";
|
||||
#endif /* HAVE_PDFTOPS */
|
||||
|
||||
if ((val = cupsGetOption("fitplot", num_options, options)) == NULL)
|
||||
@@ -354,88 +254,72 @@ main(int argc, /* I - Number of command-line args */
|
||||
#ifdef HAVE_PDFTOPS
|
||||
if (orientation & 1)
|
||||
{
|
||||
snprintf(pdf_width, sizeof(pdf_width), "%.0f", size->length);
|
||||
snprintf(pdf_height, sizeof(pdf_height), "%.0f", size->width);
|
||||
snprintf(pdfwidth, sizeof(pdfwidth), "%.0f", size->length);
|
||||
snprintf(pdfheight, sizeof(pdfheight), "%.0f", size->width);
|
||||
}
|
||||
else
|
||||
{
|
||||
snprintf(pdf_width, sizeof(pdf_width), "%.0f", size->width);
|
||||
snprintf(pdf_height, sizeof(pdf_height), "%.0f", size->length);
|
||||
snprintf(pdfwidth, sizeof(pdfwidth), "%.0f", size->width);
|
||||
snprintf(pdfheight, sizeof(pdfheight), "%.0f", size->length);
|
||||
}
|
||||
|
||||
pdf_argv[pdf_argc++] = (char *)"-paperw";
|
||||
pdf_argv[pdf_argc++] = pdf_width;
|
||||
pdf_argv[pdf_argc++] = (char *)"-paperh";
|
||||
pdf_argv[pdf_argc++] = pdf_height;
|
||||
pdf_argv[pdf_argc++] = (char *)"-expand";
|
||||
pdfargv[pdfargc++] = (char *)"-paperw";
|
||||
pdfargv[pdfargc++] = pdfwidth;
|
||||
pdfargv[pdfargc++] = (char *)"-paperh";
|
||||
pdfargv[pdfargc++] = pdfheight;
|
||||
pdfargv[pdfargc++] = (char *)"-expand";
|
||||
|
||||
#else
|
||||
if (orientation & 1)
|
||||
{
|
||||
snprintf(pdf_width, sizeof(pdf_width), "-dDEVICEWIDTHPOINTS=%.0f",
|
||||
snprintf(pdfwidth, sizeof(pdfwidth), "-dDEVICEWIDTHPOINTS=%.0f",
|
||||
size->length);
|
||||
snprintf(pdf_height, sizeof(pdf_height), "-dDEVICEHEIGHTPOINTS=%.0f",
|
||||
snprintf(pdfheight, sizeof(pdfheight), "-dDEVICEHEIGHTPOINTS=%.0f",
|
||||
size->width);
|
||||
}
|
||||
else
|
||||
{
|
||||
snprintf(pdf_width, sizeof(pdf_width), "-dDEVICEWIDTHPOINTS=%.0f",
|
||||
snprintf(pdfwidth, sizeof(pdfwidth), "-dDEVICEWIDTHPOINTS=%.0f",
|
||||
size->width);
|
||||
snprintf(pdf_height, sizeof(pdf_height), "-dDEVICEHEIGHTPOINTS=%.0f",
|
||||
snprintf(pdfheight, sizeof(pdfheight), "-dDEVICEHEIGHTPOINTS=%.0f",
|
||||
size->length);
|
||||
}
|
||||
|
||||
pdf_argv[pdf_argc++] = pdf_width;
|
||||
pdf_argv[pdf_argc++] = pdf_height;
|
||||
pdfargv[pdfargc++] = pdfwidth;
|
||||
pdfargv[pdfargc++] = pdfheight;
|
||||
#endif /* HAVE_PDFTOPS */
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef HAVE_PDFTOPS
|
||||
pdf_argv[pdf_argc++] = filename;
|
||||
pdf_argv[pdf_argc++] = (char *)"-";
|
||||
pdfargv[pdfargc++] = filename;
|
||||
pdfargv[pdfargc++] = (char *)"-";
|
||||
#else
|
||||
pdf_argv[pdf_argc++] = (char *)"-c";
|
||||
pdf_argv[pdf_argc++] = (char *)"save pop";
|
||||
pdf_argv[pdf_argc++] = (char *)"-f";
|
||||
pdf_argv[pdf_argc++] = filename;
|
||||
pdfargv[pdfargc++] = (char *)"-c";
|
||||
pdfargv[pdfargc++] = (char *)"save pop";
|
||||
pdfargv[pdfargc++] = (char *)"-f";
|
||||
pdfargv[pdfargc++] = filename;
|
||||
#endif /* HAVE_PDFTOPS */
|
||||
|
||||
pdf_argv[pdf_argc] = NULL;
|
||||
pdfargv[pdfargc] = NULL;
|
||||
|
||||
/*
|
||||
* Execute "pdftops/gs | pstops"...
|
||||
*/
|
||||
|
||||
if (pipe(pstops_pipe))
|
||||
{
|
||||
_cupsLangPrintError(_("ERROR: Unable to create pipe"));
|
||||
|
||||
exit_status = 1;
|
||||
goto error;
|
||||
}
|
||||
|
||||
if ((pdf_pid = fork()) == 0)
|
||||
if ((pdfpid = fork()) == 0)
|
||||
{
|
||||
/*
|
||||
* Child comes here...
|
||||
*/
|
||||
|
||||
dup2(pstops_pipe[1], 1);
|
||||
close(pstops_pipe[0]);
|
||||
close(pstops_pipe[1]);
|
||||
|
||||
#ifdef HAVE_PDFTOPS
|
||||
execv(CUPS_PDFTOPS, pdf_argv);
|
||||
execv(CUPS_PDFTOPS, pdfargv);
|
||||
_cupsLangPrintError(_("ERROR: Unable to execute pdftops program"));
|
||||
#else
|
||||
execv(CUPS_GHOSTSCRIPT, pdf_argv);
|
||||
execv(CUPS_GHOSTSCRIPT, pdfargv);
|
||||
_cupsLangPrintError(_("ERROR: Unable to execute gs program"));
|
||||
#endif /* HAVE_PDFTOPS */
|
||||
|
||||
exit(1);
|
||||
}
|
||||
else if (pdf_pid < 0)
|
||||
else if (pdfpid < 0)
|
||||
{
|
||||
/*
|
||||
* Unable to fork!
|
||||
@@ -447,137 +331,56 @@ main(int argc, /* I - Number of command-line args */
|
||||
_cupsLangPrintError(_("ERROR: Unable to execute gs program"));
|
||||
#endif /* HAVE_PDFTOPS */
|
||||
|
||||
exit_status = 1;
|
||||
goto error;
|
||||
pdfstatus = 1;
|
||||
}
|
||||
|
||||
fprintf(stderr, "DEBUG: Started filter %s (PID %d)\n", pdf_argv[0], pdf_pid);
|
||||
|
||||
if ((pstops_pid = fork()) == 0)
|
||||
else
|
||||
{
|
||||
/*
|
||||
* Child comes here...
|
||||
* Parent comes here...
|
||||
*/
|
||||
|
||||
dup2(pstops_pipe[0], 0);
|
||||
close(pstops_pipe[0]);
|
||||
close(pstops_pipe[1]);
|
||||
|
||||
execv(pstops_path, pstops_argv);
|
||||
_cupsLangPrintError(_("ERROR: Unable to execute pstops program"));
|
||||
|
||||
exit(1);
|
||||
}
|
||||
else if (pstops_pid < 0)
|
||||
{
|
||||
/*
|
||||
* Unable to fork!
|
||||
*/
|
||||
|
||||
_cupsLangPrintError(_("ERROR: Unable to execute pstops program"));
|
||||
|
||||
exit_status = 1;
|
||||
goto error;
|
||||
}
|
||||
|
||||
fprintf(stderr, "DEBUG: Started filter pstops (PID %d)\n", pstops_pid);
|
||||
|
||||
close(pstops_pipe[0]);
|
||||
close(pstops_pipe[1]);
|
||||
|
||||
/*
|
||||
* Wait for the child processes to exit...
|
||||
*/
|
||||
|
||||
wait_children = 2;
|
||||
|
||||
while (wait_children > 0)
|
||||
{
|
||||
/*
|
||||
* Wait until we get a valid process ID or the job is canceled...
|
||||
*/
|
||||
|
||||
while ((wait_pid = wait(&wait_status)) < 0 && errno == EINTR)
|
||||
while ((pdfwaitpid = wait(&pdfstatus)) != pdfpid && errno == EINTR)
|
||||
{
|
||||
/*
|
||||
* Wait until we get a valid process ID or the job is canceled...
|
||||
*/
|
||||
|
||||
if (job_canceled)
|
||||
{
|
||||
kill(pdf_pid, SIGTERM);
|
||||
kill(pstops_pid, SIGTERM);
|
||||
|
||||
kill(pdfpid, SIGTERM);
|
||||
job_canceled = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (wait_pid < 0)
|
||||
break;
|
||||
|
||||
wait_children --;
|
||||
|
||||
/*
|
||||
* Report child status...
|
||||
*/
|
||||
|
||||
if (wait_status)
|
||||
if (pdfstatus)
|
||||
{
|
||||
if (WIFEXITED(wait_status))
|
||||
if (WIFEXITED(pdfstatus))
|
||||
{
|
||||
exit_status = WEXITSTATUS(wait_status);
|
||||
pdfstatus = WEXITSTATUS(pdfstatus);
|
||||
|
||||
fprintf(stderr, "DEBUG: PID %d (%s) stopped with status %d!\n",
|
||||
wait_pid,
|
||||
#ifdef HAVE_PDFTOPS
|
||||
wait_pid == pdf_pid ? "pdftops" : "pstops",
|
||||
#else
|
||||
wait_pid == pdf_pid ? "gs" : "pstops",
|
||||
#endif /* HAVE_PDFTOPS */
|
||||
exit_status);
|
||||
}
|
||||
else if (WTERMSIG(wait_status) == SIGTERM)
|
||||
{
|
||||
fprintf(stderr,
|
||||
"DEBUG: PID %d (%s) was terminated normally with signal %d!\n",
|
||||
wait_pid,
|
||||
#ifdef HAVE_PDFTOPS
|
||||
wait_pid == pdf_pid ? "pdftops" : "pstops",
|
||||
#else
|
||||
wait_pid == pdf_pid ? "gs" : "pstops",
|
||||
#endif /* HAVE_PDFTOPS */
|
||||
exit_status);
|
||||
_cupsLangPrintf(stderr,
|
||||
_("ERROR: pdftops filter exited with status %d!\n"),
|
||||
pdfstatus);
|
||||
}
|
||||
else
|
||||
{
|
||||
exit_status = WTERMSIG(wait_status);
|
||||
pdfstatus = WTERMSIG(pdfstatus);
|
||||
|
||||
fprintf(stderr, "DEBUG: PID %d (%s) crashed on signal %d!\n", wait_pid,
|
||||
#ifdef HAVE_PDFTOPS
|
||||
wait_pid == pdf_pid ? "pdftops" : "pstops",
|
||||
#else
|
||||
wait_pid == pdf_pid ? "gs" : "pstops",
|
||||
#endif /* HAVE_PDFTOPS */
|
||||
exit_status);
|
||||
_cupsLangPrintf(stderr,
|
||||
_("ERROR: pdftops filter crashed on signal %d!\n"),
|
||||
pdfstatus);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stderr, "DEBUG: PID %d (%s) exited with no errors.\n", wait_pid,
|
||||
#ifdef HAVE_PDFTOPS
|
||||
wait_pid == pdf_pid ? "pdftops" : "pstops");
|
||||
#else
|
||||
wait_pid == pdf_pid ? "gs" : "pstops");
|
||||
#endif /* HAVE_PDFTOPS */
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Cleanup and exit...
|
||||
*/
|
||||
|
||||
error:
|
||||
|
||||
if (tempfile[0])
|
||||
unlink(tempfile);
|
||||
|
||||
return (exit_status);
|
||||
return (pdfstatus);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
<div class='figure'><table summary='PostScript Filter Chain'>
|
||||
<caption>Figure 1: <a name='FIGURE_1'>PostScript Filter Chain</a></caption>
|
||||
<tr><td><img src='../images/cups-postscript-chain.png' width='700' height='150' alt='PostScript Filter Chain'></td></tr>
|
||||
<tr><td><img src='/images/cups-postscript-chain.png' width='700' height='150' alt='PostScript Filter Chain'></td></tr>
|
||||
</table></div>
|
||||
|
||||
<p>The optional PostScript filter can be provided to add printer-specific commands to the PostScript output that cannot be represented in the PPD file or to reorganize the output for special printer features. Typically this is used to support advanced job management or finishing functions on the printer. CUPS includes a generic PostScript filter that handles all PPD-defined commands.</p>
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
<div class='figure'><table summary='Command Filter Chain'>
|
||||
<caption>Figure 2: <a name='FIGURE_2'>Command Filter Chain</a></caption>
|
||||
<tr><td><img src='../images/cups-command-chain.png' width='575' height='150' alt='Command Filter Chain'></td></tr>
|
||||
<tr><td><img src='/images/cups-command-chain.png' width='575' height='150' alt='Command Filter Chain'></td></tr>
|
||||
</table></div>
|
||||
|
||||
<p>PostScript printer drivers typically do not require their own command filter since CUPS includes a generic PostScript command filter that supports all of the standard functions using PPD-defined commands.</p>
|
||||
|
||||
@@ -808,76 +808,3 @@ lines:</p>
|
||||
<a href='ref-ppdcfile.html#Attribute'>Attribute</a> cupsUIConstraints DuplexOff "*Duplex *OptionDuplexer False"
|
||||
<a href='ref-ppdcfile.html#Attribute'>Attribute</a> cupsUIResolver DuplexOff "*Duplex None"
|
||||
</pre>
|
||||
|
||||
<h2 class='title'><a name='LOCALIZATION'>Localization</a></h2>
|
||||
|
||||
<p>The PPD compiler provides localization of PPD files in different languages
|
||||
through <i>message catalog</i> files in the GNU gettext or Apple .strings
|
||||
formats. Each user text string and several key PPD attribute values such as
|
||||
<tt>LanguageVersion</tt> and <tt>LanguageEncoding</tt> are looked up in the
|
||||
corresponding message catalog and the translated text is substituted in the
|
||||
generated PPD files. One message catalog file can be used by multiple driver
|
||||
information files, and each file contains a single language translation.</p>
|
||||
|
||||
<h3><a name='PPDPO'>The ppdpo Utility</a></h3>
|
||||
|
||||
<p>While CUPS includes localizations of all standard media sizes and options in
|
||||
several languages, your driver information files may provide their own media
|
||||
sizes and options that need to be localized. CUPS provides a utility program to
|
||||
aid in the localization of drivers called <a
|
||||
href='man-ppdpo.html'><tt>ppdpo(1)</tt></a>. The <tt>ppdpo</tt> program creates
|
||||
or updates a message catalog file based upon one or more driver information
|
||||
files. New messages are added with the word "TRANSLATE" added to the front of
|
||||
the translation string to make locating new strings for translation easier. The
|
||||
program accepts the message catalog filename and one or more driver information
|
||||
files.</p>
|
||||
|
||||
<p>For example, run the following command to create a new German message catalog
|
||||
called <var>de.po</var> for all of the driver information files in the current
|
||||
directory:</p>
|
||||
|
||||
<pre class='command'>
|
||||
ppdpo -o de.po *.drv
|
||||
</pre>
|
||||
|
||||
<p>If the file <var>de.po</var> already exists, <tt>ppdpo</tt> will update the
|
||||
contents of the file with any new messages that need to be translated. To create
|
||||
an Apple .strings file instead, specify the output filename with a .strings
|
||||
extension, for example:</p>
|
||||
|
||||
<pre class='command'>
|
||||
ppdpo -o de.strings *.drv
|
||||
</pre>
|
||||
|
||||
<h3><a name='PPDC_CATALOG'>Using Message Catalogs with the PPD Compiler</a></h3>
|
||||
|
||||
<p>Once you have created a message catalog, use the <a
|
||||
href='ref-ppdcfile.html#_po'><tt>#po</tt></a> directive to declare it in each
|
||||
driver information file. For example, to declare the German message catalog for
|
||||
a driver use:</p>
|
||||
|
||||
<pre class='example'>
|
||||
<a href='ref-ppdcfile.html#_po'>#po</a> de "de.po" // German
|
||||
</pre>
|
||||
|
||||
<p>In fact, you can use the <tt>#po</tt> directive as many times as needed:</p>
|
||||
|
||||
<pre class='example'>
|
||||
<a href='ref-ppdcfile.html#_po'>#po</a> de "de.po" // German
|
||||
<a href='ref-ppdcfile.html#_po'>#po</a> es "es.po" // Spanish
|
||||
<a href='ref-ppdcfile.html#_po'>#po</a> fr "fr.po" // French
|
||||
<a href='ref-ppdcfile.html#_po'>#po</a> it "it.po" // Italian
|
||||
<a href='ref-ppdcfile.html#_po'>#po</a> ja "ja.po" // Japanese
|
||||
</pre>
|
||||
|
||||
<p>The filename ("de.po", etc.) can be relative to the location of the driver
|
||||
information file or an absolute path. Once defined, the PPD compiler will
|
||||
automatically generate a globalized PPD for every language declared in your
|
||||
driver information file. To generate a single-language PPD file, simply use the
|
||||
<tt>-l</tt> option to list the corresponding locale, for example:</p>
|
||||
|
||||
<pre class='command'>
|
||||
ppdc -l de -d ppd/de mydrivers.drv
|
||||
</pre>
|
||||
|
||||
<p>to generate German PPD files.</p>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
<div class='figure'><table summary='Raster Filter Chain'>
|
||||
<caption>Figure 1: <a name='FIGURE_1'>Raster Filter Chain</a></caption>
|
||||
<tr><td><img src='../images/cups-raster-chain.png' width='700' height='150' alt='Raster Filter Chain'></td></tr>
|
||||
<tr><td><img src='/images/cups-raster-chain.png' width='700' height='150' alt='Raster Filter Chain'></td></tr>
|
||||
</table></div>
|
||||
|
||||
<p>The raster filter converts CUPS raster data into a format the printer understands, for example HP-PCL. CUPS includes several sample raster filters supporting standard page description languages (PDLs). <a href='#TABLE_1'>Table 1</a> shows the raster filters that are bundled with CUPS and the languages they support.</p>
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
<div class='figure'><table summary='Command Filter Chain'>
|
||||
<caption>Figure 2: <a name='FIGURE_2'>Command Filter Chain</a></caption>
|
||||
<tr><td><img src='../images/cups-command-chain.png' width='575' height='150' alt='Command Filter Chain'></td></tr>
|
||||
<tr><td><img src='/images/cups-command-chain.png' width='575' height='150' alt='Command Filter Chain'></td></tr>
|
||||
</table></div>
|
||||
|
||||
<p>Raster printer drivers must provide their own command filter.</p>
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# "$Id: install-sh 8688 2009-05-27 16:42:40Z mike $"
|
||||
# "$Id: install-sh 8497 2009-04-12 23:04:51Z mike $"
|
||||
#
|
||||
# Install a program, script, or datafile.
|
||||
#
|
||||
@@ -209,11 +209,11 @@ else
|
||||
# Update permissions and strip as needed, then move to the final name.
|
||||
# If the chmod, strip, rm, or mv commands fail, remove the installed
|
||||
# file...
|
||||
if [ x"$stripcmd" != x ]; then $doit $stripcmd $stripopt "$dsttmp" || echo "warning: Unable to strip $dst!"; fi
|
||||
if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp" || echo "warning: Unable to change owner of $dst!"; fi
|
||||
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp" || echo "warning: Unable to change group of $dst!"; fi
|
||||
|
||||
trap "rm -f ${dsttmp}" 0 &&
|
||||
if [ x"$stripcmd" != x ]; then $doit $stripcmd $stripopt "$dsttmp"; fi &&
|
||||
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; fi &&
|
||||
$doit $rmcmd -f "$dstdir/$dstfile" &&
|
||||
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
|
||||
|
||||
+670
-667
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
+16
-23
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 1.4\n"
|
||||
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
|
||||
"POT-Creation-Date: 2009-06-05 14:00-0700\n"
|
||||
"POT-Creation-Date: 2009-03-23 14:56-0700\n"
|
||||
"PO-Revision-Date: 2009-02-16 12:00-0800\n"
|
||||
"Last-Translator: Apple Inc.\n"
|
||||
"Language-Team: Apple Inc.\n"
|
||||
@@ -1771,6 +1771,9 @@ msgstr "60"
|
||||
msgid "60 mm/sec."
|
||||
msgstr "60 mm/sek."
|
||||
|
||||
msgid "600 DPI Grayscale"
|
||||
msgstr "600 dpi gråtoner"
|
||||
|
||||
msgid "600dpi"
|
||||
msgstr "600 dpi"
|
||||
|
||||
@@ -2526,9 +2529,6 @@ msgstr "ERROR: Kan ikke annullere jobbet %d: %s\n"
|
||||
msgid "ERROR: Unable to copy PDF file"
|
||||
msgstr "ERROR: Kan ikke kopiere PDF-arkiv"
|
||||
|
||||
msgid "ERROR: Unable to create pipe"
|
||||
msgstr ""
|
||||
|
||||
msgid "ERROR: Unable to create socket"
|
||||
msgstr "ERROR: Kan ikke oprette socket"
|
||||
|
||||
@@ -2549,9 +2549,6 @@ msgstr "ERROR: Kan ikke udføre gs-program"
|
||||
msgid "ERROR: Unable to execute pdftops program"
|
||||
msgstr "ERROR: Kan ikke udføre pdftops-program"
|
||||
|
||||
msgid "ERROR: Unable to execute pstops program"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: Unable to fork pictwpstops: %s\n"
|
||||
msgstr "ERROR: Kan ikke fork pictwpstops: %s\n"
|
||||
@@ -2780,6 +2777,14 @@ msgstr ""
|
||||
msgid "ERROR: doc_printf overflow (%d bytes) detected, aborting!\n"
|
||||
msgstr "ERROR: doc_printf-overløb (%d byte) registreret, annullerer!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
msgstr "ERROR: pdftops-filter gik ned på signalet %d!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
msgstr "ERROR: pdftops-filter afsluttede med status %d!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pictwpstops exited on signal %d!\n"
|
||||
msgstr "ERROR: pictwpstops afsluttede på signalet %d!\n"
|
||||
@@ -4241,6 +4246,10 @@ msgstr "Enheder"
|
||||
msgid "Unknown"
|
||||
msgstr "Ukendt"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer error (%s)!"
|
||||
msgstr "Ukendt printerfejl (%s)!"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer-error-policy \"%s\"."
|
||||
msgstr "Ukendt printer-error-policy \"%s\"."
|
||||
@@ -5361,10 +5370,6 @@ msgstr "ppdc: Manglende #if på linje %d af %s!\n"
|
||||
msgid "ppdc: No message catalog provided for locale %s!\n"
|
||||
msgstr "ppdc: Intet beskedkatalog til lokalitet %s!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s defined in two different groups on line %d of %s!\n"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s redefined with a different type on line %d of %s!\n"
|
||||
msgstr ""
|
||||
@@ -5539,9 +5544,6 @@ msgstr "variable-bindings bruger uendelig længde"
|
||||
#~ msgid "%s: Unable to open %s - %s on line %d.\n"
|
||||
#~ msgstr "%s: Kan ikke åbne %s - %s på linje %d.\n"
|
||||
|
||||
#~ msgid "600 DPI Grayscale"
|
||||
#~ msgstr "600 dpi gråtoner"
|
||||
|
||||
#~ msgid "ERROR: Unable to create temporary file - %s.\n"
|
||||
#~ msgstr "ERROR: Kan ikke oprette midlertidigt arkiv - %s.\n"
|
||||
|
||||
@@ -5551,15 +5553,6 @@ msgstr "variable-bindings bruger uendelig længde"
|
||||
#~ msgid "ERROR: Unable to open temporary file"
|
||||
#~ msgstr "ERROR: Kan ikke åbne midlertidigt arkiv"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
#~ msgstr "ERROR: pdftops-filter gik ned på signalet %d!\n"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
#~ msgstr "ERROR: pdftops-filter afsluttede med status %d!\n"
|
||||
|
||||
#~ msgid "Unknown printer error (%s)!"
|
||||
#~ msgstr "Ukendt printerfejl (%s)!"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Usage: convert [ options ]\n"
|
||||
#~ "\n"
|
||||
|
||||
+16
-23
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 1.4\n"
|
||||
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
|
||||
"POT-Creation-Date: 2009-06-05 14:00-0700\n"
|
||||
"POT-Creation-Date: 2009-03-23 14:56-0700\n"
|
||||
"PO-Revision-Date: 2009-02-16 12:00-0800\n"
|
||||
"Last-Translator: Apple Inc.\n"
|
||||
"Language-Team: Apple Inc.\n"
|
||||
@@ -1775,6 +1775,9 @@ msgstr "60"
|
||||
msgid "60 mm/sec."
|
||||
msgstr "60 mm/Sek."
|
||||
|
||||
msgid "600 DPI Grayscale"
|
||||
msgstr "600 DPI Graustufen"
|
||||
|
||||
msgid "600dpi"
|
||||
msgstr "600 dpi"
|
||||
|
||||
@@ -2540,9 +2543,6 @@ msgstr "ERROR: Druckauftrag „%d“ konnte nicht abgebrochen werden: %s\n"
|
||||
msgid "ERROR: Unable to copy PDF file"
|
||||
msgstr "ERROR: PDF-Datei konnte nicht kopiert werden"
|
||||
|
||||
msgid "ERROR: Unable to create pipe"
|
||||
msgstr ""
|
||||
|
||||
msgid "ERROR: Unable to create socket"
|
||||
msgstr "ERROR: Socket konnte nicht erstellt werden"
|
||||
|
||||
@@ -2564,9 +2564,6 @@ msgstr "ERROR: gs-Programm konnte nicht ausgeführt werden"
|
||||
msgid "ERROR: Unable to execute pdftops program"
|
||||
msgstr "ERROR: pdftops-Programm konnte nicht ausgeführt werden"
|
||||
|
||||
msgid "ERROR: Unable to execute pstops program"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: Unable to fork pictwpstops: %s\n"
|
||||
msgstr "ERROR: Fork für pictwpstops konnte nicht ausgeführt werden: %s\n"
|
||||
@@ -2807,6 +2804,14 @@ msgstr ""
|
||||
msgid "ERROR: doc_printf overflow (%d bytes) detected, aborting!\n"
|
||||
msgstr "ERROR: doc_printf-Overflow (%d Byte) festgestellt; abbrechen!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
msgstr "ERROR: pdftops-Filter fehlgeschlagen bei Signal „%d“!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
msgstr "ERROR: pdftops-Filter ausgestiegen mit Status „%d“!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pictwpstops exited on signal %d!\n"
|
||||
msgstr "ERROR: pictwpstops-Filter ausgestiegen bei Signal „%d“!\n"
|
||||
@@ -4289,6 +4294,10 @@ msgstr "Einheiten"
|
||||
msgid "Unknown"
|
||||
msgstr "Unbekannt"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer error (%s)!"
|
||||
msgstr "Unbekannter Druckerfehler (%s)!"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer-error-policy \"%s\"."
|
||||
msgstr "Unbekannte printer-error-policy „%s“."
|
||||
@@ -5405,10 +5414,6 @@ msgstr "ppdc: #if fehlt in Zeile %d von %s!\n"
|
||||
msgid "ppdc: No message catalog provided for locale %s!\n"
|
||||
msgstr "ppdc: Kein Message-Catalog verfügbar für Locale „%s“!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s defined in two different groups on line %d of %s!\n"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s redefined with a different type on line %d of %s!\n"
|
||||
msgstr ""
|
||||
@@ -5584,9 +5589,6 @@ msgstr "variable-bindings hat unbestimmte Länge"
|
||||
#~ msgid "%s: Unable to open %s - %s on line %d.\n"
|
||||
#~ msgstr "%s: „%s“ konnte nicht geöffnet werden – %s in Zeile %d.\n"
|
||||
|
||||
#~ msgid "600 DPI Grayscale"
|
||||
#~ msgstr "600 DPI Graustufen"
|
||||
|
||||
#~ msgid "ERROR: Unable to create temporary file - %s.\n"
|
||||
#~ msgstr "ERROR: Temporäre Datei konnte nicht erstellt werden – %s.\n"
|
||||
|
||||
@@ -5596,15 +5598,6 @@ msgstr "variable-bindings hat unbestimmte Länge"
|
||||
#~ msgid "ERROR: Unable to open temporary file"
|
||||
#~ msgstr "ERROR: Temporäre Datei konnte nicht geöffnet werden"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
#~ msgstr "ERROR: pdftops-Filter fehlgeschlagen bei Signal „%d“!\n"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
#~ msgstr "ERROR: pdftops-Filter ausgestiegen mit Status „%d“!\n"
|
||||
|
||||
#~ msgid "Unknown printer error (%s)!"
|
||||
#~ msgstr "Unbekannter Druckerfehler (%s)!"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Usage: convert [ options ]\n"
|
||||
#~ "\n"
|
||||
|
||||
+18
-25
@@ -16,8 +16,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 1.4\n"
|
||||
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
|
||||
"POT-Creation-Date: 2009-06-05 14:00-0700\n"
|
||||
"PO-Revision-Date: 2009-05-23 13:15+0100\n"
|
||||
"POT-Creation-Date: 2009-03-23 14:56-0700\n"
|
||||
"PO-Revision-Date: 2009-03-16 19:35+0100\n"
|
||||
"Last-Translator: Juan Pablo González Riopedre <riopedre13@yahoo.es>\n"
|
||||
"Language-Team: Spanish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -1805,6 +1805,9 @@ msgstr "60"
|
||||
msgid "60 mm/sec."
|
||||
msgstr "60 mm/seg"
|
||||
|
||||
msgid "600 DPI Grayscale"
|
||||
msgstr "600 PPP escala de grises"
|
||||
|
||||
msgid "600dpi"
|
||||
msgstr "600ppp"
|
||||
|
||||
@@ -2573,9 +2576,6 @@ msgstr "ERROR: No se ha podido cancelar el trabajo %d: %s\n"
|
||||
msgid "ERROR: Unable to copy PDF file"
|
||||
msgstr "ERROR: No se ha podido copiar el archivo PDF"
|
||||
|
||||
msgid "ERROR: Unable to create pipe"
|
||||
msgstr ""
|
||||
|
||||
msgid "ERROR: Unable to create socket"
|
||||
msgstr "ERROR: No se ha podido crear socket"
|
||||
|
||||
@@ -2598,9 +2598,6 @@ msgstr "ERROR: No se ha podido ejecutar el programa gs"
|
||||
msgid "ERROR: Unable to execute pdftops program"
|
||||
msgstr "ERROR: No se ha podido ejecutar el programa pdftops"
|
||||
|
||||
msgid "ERROR: Unable to execute pstops program"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: Unable to fork pictwpstops: %s\n"
|
||||
msgstr "ERROR: No se ha podido bifurcar (fork) pictwpstops: %s\n"
|
||||
@@ -2840,6 +2837,14 @@ msgstr ""
|
||||
"ERROR: Se ha detectado un desbordamiento de doc_printf (%d bytes); "
|
||||
"cancelando.\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
msgstr "ERROR: filtro pdftops se ha colgado con la señal %d.\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
msgstr "ERROR: filtro pdftops se ha cerrado con el estado %d.\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pictwpstops exited on signal %d!\n"
|
||||
msgstr "ERROR: pictwpstops se ha cerrado con la señal %d.\n"
|
||||
@@ -3228,7 +3233,7 @@ msgid "Interlock open."
|
||||
msgstr "Dispositivo de seguridad abierto."
|
||||
|
||||
msgid "Internal Server Error"
|
||||
msgstr "Error interno del servidor"
|
||||
msgstr ""
|
||||
|
||||
msgid "Internal error"
|
||||
msgstr "Error interno"
|
||||
@@ -4327,6 +4332,10 @@ msgstr "Unidades"
|
||||
msgid "Unknown"
|
||||
msgstr "Desconocido"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer error (%s)!"
|
||||
msgstr "Error de impresión desconocido (%s)."
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer-error-policy \"%s\"."
|
||||
msgstr "printer-error-policy \"%s\" incorrecto."
|
||||
@@ -5520,10 +5529,6 @@ msgstr "ppdc: Falta un #if en la línea %d de %s.\n"
|
||||
msgid "ppdc: No message catalog provided for locale %s!\n"
|
||||
msgstr "ppdc: No se ha proporcionado catálogo de mensajes para el idioma %s.\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s defined in two different groups on line %d of %s!\n"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s redefined with a different type on line %d of %s!\n"
|
||||
msgstr ""
|
||||
@@ -5689,15 +5694,3 @@ msgstr "sin título"
|
||||
|
||||
msgid "variable-bindings uses indefinite length"
|
||||
msgstr "variable-bindings usa una longitud indefinida"
|
||||
|
||||
#~ msgid "600 DPI Grayscale"
|
||||
#~ msgstr "600 PPP escala de grises"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
#~ msgstr "ERROR: filtro pdftops se ha colgado con la señal %d.\n"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
#~ msgstr "ERROR: filtro pdftops se ha cerrado con el estado %d.\n"
|
||||
|
||||
#~ msgid "Unknown printer error (%s)!"
|
||||
#~ msgstr "Error de impresión desconocido (%s)."
|
||||
|
||||
+16
-23
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 1.4\n"
|
||||
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
|
||||
"POT-Creation-Date: 2009-06-05 14:00-0700\n"
|
||||
"POT-Creation-Date: 2009-03-23 14:56-0700\n"
|
||||
"PO-Revision-Date: 2009-02-12 15:10+0200\n"
|
||||
"Last-Translator: Teppo Turtiainen <teppot@iki.fi>\n"
|
||||
"Language-Team: Finnish\n"
|
||||
@@ -1777,6 +1777,9 @@ msgstr "60"
|
||||
msgid "60 mm/sec."
|
||||
msgstr "60 mm/s"
|
||||
|
||||
msgid "600 DPI Grayscale"
|
||||
msgstr "600 dpi harmaasävy"
|
||||
|
||||
msgid "600dpi"
|
||||
msgstr "600 dpi"
|
||||
|
||||
@@ -2534,9 +2537,6 @@ msgstr "ERROR: Työtä %d ei voida peruuttaa: %s\n"
|
||||
msgid "ERROR: Unable to copy PDF file"
|
||||
msgstr "ERROR: PDF-tiedostoa ei voida kopioida"
|
||||
|
||||
msgid "ERROR: Unable to create pipe"
|
||||
msgstr ""
|
||||
|
||||
msgid "ERROR: Unable to create socket"
|
||||
msgstr "ERROR: Socketia ei voida luoda"
|
||||
|
||||
@@ -2557,9 +2557,6 @@ msgstr "ERROR: gs-ohjelmaa ei voida suorittaa"
|
||||
msgid "ERROR: Unable to execute pdftops program"
|
||||
msgstr "ERROR: pdftops-ohjelmaa ei voida suorittaa"
|
||||
|
||||
msgid "ERROR: Unable to execute pstops program"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: Unable to fork pictwpstops: %s\n"
|
||||
msgstr "ERROR: pictwpstops:ia ei voida forkata: %s\n"
|
||||
@@ -2785,6 +2782,14 @@ msgstr "ERROR: Ei-tuettu page-border-arvo %s, käytetään page-border=none!\n"
|
||||
msgid "ERROR: doc_printf overflow (%d bytes) detected, aborting!\n"
|
||||
msgstr "ERROR: Havaittiin doc_printf-ylivuoto (%d tavua), keskeytetään!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
msgstr "ERROR: pdftops-suodin kaatui signaaliin %d!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
msgstr "ERROR: pdftops-suodin lopetti signaaliin %d!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pictwpstops exited on signal %d!\n"
|
||||
msgstr "ERROR: pictwpstops lopetti signaaliin %d!\n"
|
||||
@@ -4256,6 +4261,10 @@ msgstr "Yksiköt"
|
||||
msgid "Unknown"
|
||||
msgstr "Tuntematon"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer error (%s)!"
|
||||
msgstr "Tuntematon tulostinvirhe (%s)!"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer-error-policy \"%s\"."
|
||||
msgstr "Tuntematon printer-error-policy ”%s”."
|
||||
@@ -5378,10 +5387,6 @@ msgstr "ppdc: #if puuttuu riviltä %d / %s!\n"
|
||||
msgid "ppdc: No message catalog provided for locale %s!\n"
|
||||
msgstr "ppdc: Ei viestikatalogia lokaalille %s!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s defined in two different groups on line %d of %s!\n"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s redefined with a different type on line %d of %s!\n"
|
||||
msgstr "ppdc: Valinta %s määritelty uudelleen eri tyypillä rivillä %d / %s!\n"
|
||||
@@ -5555,9 +5560,6 @@ msgstr "variable-bindings käyttää määrittämätöntä pituutta"
|
||||
#~ msgid "%s: Unable to open %s - %s on line %d.\n"
|
||||
#~ msgstr "%s: Kohdetta %s ei voida avata - %s linjalla %d.\n"
|
||||
|
||||
#~ msgid "600 DPI Grayscale"
|
||||
#~ msgstr "600 dpi harmaasävy"
|
||||
|
||||
#~ msgid "ERROR: Unable to create temporary file - %s.\n"
|
||||
#~ msgstr "ERROR: Tilapäistiedostoa ei voida luoda - %s.\n"
|
||||
|
||||
@@ -5567,15 +5569,6 @@ msgstr "variable-bindings käyttää määrittämätöntä pituutta"
|
||||
#~ msgid "ERROR: Unable to open temporary file"
|
||||
#~ msgstr "ERROR: Tilapäistiedostoa ei voida avata"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
#~ msgstr "ERROR: pdftops-suodin kaatui signaaliin %d!\n"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
#~ msgstr "ERROR: pdftops-suodin lopetti signaaliin %d!\n"
|
||||
|
||||
#~ msgid "Unknown printer error (%s)!"
|
||||
#~ msgstr "Tuntematon tulostinvirhe (%s)!"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Usage: convert [ options ]\n"
|
||||
#~ "\n"
|
||||
|
||||
+17
-25
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 1.4\n"
|
||||
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
|
||||
"POT-Creation-Date: 2009-06-05 14:00-0700\n"
|
||||
"POT-Creation-Date: 2009-03-23 14:56-0700\n"
|
||||
"PO-Revision-Date: 2009-02-16 12:00-0800\n"
|
||||
"Last-Translator: Apple Inc.\n"
|
||||
"Language-Team: Apple Inc.\n"
|
||||
@@ -1790,6 +1790,9 @@ msgstr "60"
|
||||
msgid "60 mm/sec."
|
||||
msgstr "60 mm/s"
|
||||
|
||||
msgid "600 DPI Grayscale"
|
||||
msgstr "600 ppp (niveaux de gris)"
|
||||
|
||||
msgid "600dpi"
|
||||
msgstr "600 ppp"
|
||||
|
||||
@@ -2560,9 +2563,6 @@ msgstr "ERROR: impossible d’annuler la tâche %d : %s\n"
|
||||
msgid "ERROR: Unable to copy PDF file"
|
||||
msgstr "ERROR: impossible de copier le fichier PDF"
|
||||
|
||||
msgid "ERROR: Unable to create pipe"
|
||||
msgstr ""
|
||||
|
||||
msgid "ERROR: Unable to create socket"
|
||||
msgstr "ERROR: impossible de créer un socket"
|
||||
|
||||
@@ -2585,9 +2585,6 @@ msgstr "ERROR: impossible d’exécuter le programme gs"
|
||||
msgid "ERROR: Unable to execute pdftops program"
|
||||
msgstr "ERROR: impossible d’exécuter le programme pdftops"
|
||||
|
||||
msgid "ERROR: Unable to execute pstops program"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: Unable to fork pictwpstops: %s\n"
|
||||
msgstr "ERROR: impossible d’effectuer le fork de pictwpstops : %s\n"
|
||||
@@ -2823,6 +2820,15 @@ msgstr ""
|
||||
"ERROR: dépassement de capacité de doc_printf (%d octets) détecté, processus "
|
||||
"en cours d’interruption.\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
msgstr ""
|
||||
"ERROR: le filtre pdftops a cessé de fonctionner à l’issue du signal %d.\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
msgstr "ERROR: le filtre pdftops a indiqué l’état %d lors de sa fermeture.\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pictwpstops exited on signal %d!\n"
|
||||
msgstr "ERROR: pictwpstops a quitté au signal %d.\n"
|
||||
@@ -4316,6 +4322,10 @@ msgstr "Unités"
|
||||
msgid "Unknown"
|
||||
msgstr "Inconnu"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer error (%s)!"
|
||||
msgstr "Erreur inconnue relative à l’imprimante (%s)"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer-error-policy \"%s\"."
|
||||
msgstr "Paramètre printer-error-policy « %s » inconnu."
|
||||
@@ -5472,10 +5482,6 @@ msgstr "ppdc : #if absent à la ligne %d de %s.\n"
|
||||
msgid "ppdc: No message catalog provided for locale %s!\n"
|
||||
msgstr "ppdc : aucun catalogue de messages fourni pour la langue %s.\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s defined in two different groups on line %d of %s!\n"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s redefined with a different type on line %d of %s!\n"
|
||||
msgstr "ppdc : option %s redéfinie sous un autre type à la ligne %d de %s.\n"
|
||||
@@ -5656,9 +5662,6 @@ msgstr "variable-bindings s’avère être de longueur indéfinie"
|
||||
#~ msgid "%s: Unable to open %s - %s on line %d.\n"
|
||||
#~ msgstr "%s : impossible d’ouvrir %s - %s à la ligne %d."
|
||||
|
||||
#~ msgid "600 DPI Grayscale"
|
||||
#~ msgstr "600 ppp (niveaux de gris)"
|
||||
|
||||
#~ msgid "ERROR: Unable to create temporary file - %s.\n"
|
||||
#~ msgstr "ERROR: impossible de créer un fichier temporaire - %s.\n"
|
||||
|
||||
@@ -5668,17 +5671,6 @@ msgstr "variable-bindings s’avère être de longueur indéfinie"
|
||||
#~ msgid "ERROR: Unable to open temporary file"
|
||||
#~ msgstr "ERROR: impossible d’ouvrir le fichier temporaire."
|
||||
|
||||
#~ msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
#~ msgstr ""
|
||||
#~ "ERROR: le filtre pdftops a cessé de fonctionner à l’issue du signal %d.\n"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
#~ msgstr ""
|
||||
#~ "ERROR: le filtre pdftops a indiqué l’état %d lors de sa fermeture.\n"
|
||||
|
||||
#~ msgid "Unknown printer error (%s)!"
|
||||
#~ msgstr "Erreur inconnue relative à l’imprimante (%s)"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Usage: convert [ options ]\n"
|
||||
#~ "\n"
|
||||
|
||||
+16
-23
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 1.4\n"
|
||||
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
|
||||
"POT-Creation-Date: 2009-06-05 14:00-0700\n"
|
||||
"POT-Creation-Date: 2009-03-23 14:56-0700\n"
|
||||
"PO-Revision-Date: 2009-02-16 12:00-0800\n"
|
||||
"Last-Translator: Apple Inc.\n"
|
||||
"Language-Team: Apple Inc.\n"
|
||||
@@ -1777,6 +1777,9 @@ msgstr "60"
|
||||
msgid "60 mm/sec."
|
||||
msgstr "60 mm/sec."
|
||||
|
||||
msgid "600 DPI Grayscale"
|
||||
msgstr "Scala di grigi a 600 DPI"
|
||||
|
||||
msgid "600dpi"
|
||||
msgstr "600 dpi"
|
||||
|
||||
@@ -2536,9 +2539,6 @@ msgstr "ERROR: impossibile annullare la stampa %d: %s\n"
|
||||
msgid "ERROR: Unable to copy PDF file"
|
||||
msgstr "ERROR: impossibile copiare il documento PDF"
|
||||
|
||||
msgid "ERROR: Unable to create pipe"
|
||||
msgstr ""
|
||||
|
||||
msgid "ERROR: Unable to create socket"
|
||||
msgstr "ERROR: impossibile creare il socket"
|
||||
|
||||
@@ -2560,9 +2560,6 @@ msgstr "ERROR: impossibile eseguire il programma gs"
|
||||
msgid "ERROR: Unable to execute pdftops program"
|
||||
msgstr "ERROR: impossibile eseguire il programma pdftops"
|
||||
|
||||
msgid "ERROR: Unable to execute pstops program"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: Unable to fork pictwpstops: %s\n"
|
||||
msgstr "ERROR: impossibile biforcare pictwpstops: %s\n"
|
||||
@@ -2792,6 +2789,14 @@ msgstr ""
|
||||
msgid "ERROR: doc_printf overflow (%d bytes) detected, aborting!\n"
|
||||
msgstr "ERROR: rilevato overflow (%d byte) doc_printf, interrompo!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
msgstr "ERROR: il filtro pdftops si è chiuso al segnale %d!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
msgstr "ERROR: il filtro pdftops si è chiuso con stato %d!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pictwpstops exited on signal %d!\n"
|
||||
msgstr "ERROR: pictwpstops si è chiuso al segnale %d!\n"
|
||||
@@ -4268,6 +4273,10 @@ msgstr "Unità"
|
||||
msgid "Unknown"
|
||||
msgstr "Sconosciuto"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer error (%s)!"
|
||||
msgstr "Errore della stampante sconosciuto (%s)!"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer-error-policy \"%s\"."
|
||||
msgstr "Printer-error-policy \"%s\" sconosciuto."
|
||||
@@ -5399,10 +5408,6 @@ msgid "ppdc: No message catalog provided for locale %s!\n"
|
||||
msgstr ""
|
||||
"ppdc: nessun catalogo messaggi fornito per impostazioni internazionali %s!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s defined in two different groups on line %d of %s!\n"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s redefined with a different type on line %d of %s!\n"
|
||||
msgstr "ppdc: opzione %s ridefinita con un tipo diverso alla riga %d di %s!\n"
|
||||
@@ -5580,9 +5585,6 @@ msgstr "variable-bindings utilizza una lunghezza indefinita"
|
||||
#~ msgid "%s: Unable to open %s - %s on line %d.\n"
|
||||
#~ msgstr "%s: Errore: impossibile aprire %s - %s alla riga %d.\n"
|
||||
|
||||
#~ msgid "600 DPI Grayscale"
|
||||
#~ msgstr "Scala di grigi a 600 DPI"
|
||||
|
||||
#~ msgid "ERROR: Unable to create temporary file - %s.\n"
|
||||
#~ msgstr "ERROR: impossibile creare il documento temporaneo: %s.\n"
|
||||
|
||||
@@ -5592,15 +5594,6 @@ msgstr "variable-bindings utilizza una lunghezza indefinita"
|
||||
#~ msgid "ERROR: Unable to open temporary file"
|
||||
#~ msgstr "ERROR: impossibile aprire il documento temporaneo"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
#~ msgstr "ERROR: il filtro pdftops si è chiuso al segnale %d!\n"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
#~ msgstr "ERROR: il filtro pdftops si è chiuso con stato %d!\n"
|
||||
|
||||
#~ msgid "Unknown printer error (%s)!"
|
||||
#~ msgstr "Errore della stampante sconosciuto (%s)!"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Usage: convert [ options ]\n"
|
||||
#~ "\n"
|
||||
|
||||
+320
-3031
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
+16
-23
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 1.4\n"
|
||||
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
|
||||
"POT-Creation-Date: 2009-06-05 14:00-0700\n"
|
||||
"POT-Creation-Date: 2009-03-23 14:56-0700\n"
|
||||
"PO-Revision-Date: 2009-02-16 12:00-0800\n"
|
||||
"Last-Translator: Apple Inc.\n"
|
||||
"Language-Team: Apple Inc.\n"
|
||||
@@ -1762,6 +1762,9 @@ msgstr "60"
|
||||
msgid "60 mm/sec."
|
||||
msgstr "60mm/초"
|
||||
|
||||
msgid "600 DPI Grayscale"
|
||||
msgstr "600 DPI 그레이 스케일"
|
||||
|
||||
msgid "600dpi"
|
||||
msgstr "600dpi"
|
||||
|
||||
@@ -2514,9 +2517,6 @@ msgstr "ERROR: %d 작업을 취소할 수 없음: %s\n"
|
||||
msgid "ERROR: Unable to copy PDF file"
|
||||
msgstr "ERROR: PDF 파일을 복사할 수 없음"
|
||||
|
||||
msgid "ERROR: Unable to create pipe"
|
||||
msgstr ""
|
||||
|
||||
msgid "ERROR: Unable to create socket"
|
||||
msgstr "ERROR: 소켓을 생성할 수 없음"
|
||||
|
||||
@@ -2537,9 +2537,6 @@ msgstr "ERROR: gs 프로그램을 실행할 수 없음"
|
||||
msgid "ERROR: Unable to execute pdftops program"
|
||||
msgstr "ERROR: pdftops 프로그램을 실행할 수 없음"
|
||||
|
||||
msgid "ERROR: Unable to execute pstops program"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: Unable to fork pictwpstops: %s\n"
|
||||
msgstr "ERROR: pictwpstops를 분리(fork)할 수 없음: %s\n"
|
||||
@@ -2766,6 +2763,14 @@ msgstr "ERROR: page-border=none을 사용하는, 지원되지 않는 page-border
|
||||
msgid "ERROR: doc_printf overflow (%d bytes) detected, aborting!\n"
|
||||
msgstr "ERROR: doc_printf 오버플로우(%d바이트)가 발견됨, 중단 중!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
msgstr "ERROR: pdftops 필터가 신호 %d에서 충돌함!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
msgstr "ERROR: pdftops 필터가 상태 %d(으)로 종료됨!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pictwpstops exited on signal %d!\n"
|
||||
msgstr "ERROR: pictwpstops가 신호 %d에서 종료됨!\n"
|
||||
@@ -4224,6 +4229,10 @@ msgstr "장비"
|
||||
msgid "Unknown"
|
||||
msgstr "알 수 없음"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer error (%s)!"
|
||||
msgstr "알 수 없는 프린터 오류(%s)!"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer-error-policy \"%s\"."
|
||||
msgstr "알 수 없는 printer-error-policy \"%s\" ."
|
||||
@@ -5327,10 +5336,6 @@ msgstr "ppdc: %2$s의 %1$d번째 줄에서 #if 유실됨!\n"
|
||||
msgid "ppdc: No message catalog provided for locale %s!\n"
|
||||
msgstr "ppdc: 로컬 %s에 대해 제공된 메시지 카탈로그 없음!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s defined in two different groups on line %d of %s!\n"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s redefined with a different type on line %d of %s!\n"
|
||||
msgstr "ppdc: %3$s의 %2$d번째 줄에 %1$s 옵션이 다른 유형으로 재정의됨!\n"
|
||||
@@ -5504,9 +5509,6 @@ msgstr "variable-bindings의 길이가 무제한입니다"
|
||||
#~ msgid "%s: Unable to open %s - %s on line %d.\n"
|
||||
#~ msgstr "%s: %s을(를) 열 수 없음 - %s, %d번째 줄\n"
|
||||
|
||||
#~ msgid "600 DPI Grayscale"
|
||||
#~ msgstr "600 DPI 그레이 스케일"
|
||||
|
||||
#~ msgid "ERROR: Unable to create temporary file - %s.\n"
|
||||
#~ msgstr "ERROR: 임시 파일을 생성할 수 없음 - %s.\n"
|
||||
|
||||
@@ -5516,15 +5518,6 @@ msgstr "variable-bindings의 길이가 무제한입니다"
|
||||
#~ msgid "ERROR: Unable to open temporary file"
|
||||
#~ msgstr "ERROR: 임시 파일을 열 수 없음"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
#~ msgstr "ERROR: pdftops 필터가 신호 %d에서 충돌함!\n"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
#~ msgstr "ERROR: pdftops 필터가 상태 %d(으)로 종료됨!\n"
|
||||
|
||||
#~ msgid "Unknown printer error (%s)!"
|
||||
#~ msgstr "알 수 없는 프린터 오류(%s)!"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Usage: convert [ options ]\n"
|
||||
#~ "\n"
|
||||
|
||||
+16
-23
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 1.4\n"
|
||||
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
|
||||
"POT-Creation-Date: 2009-06-05 14:00-0700\n"
|
||||
"POT-Creation-Date: 2009-03-23 14:56-0700\n"
|
||||
"PO-Revision-Date: 2009-02-16 12:00-0800\n"
|
||||
"Last-Translator: Apple Inc.\n"
|
||||
"Language-Team: Apple Inc.\n"
|
||||
@@ -1775,6 +1775,9 @@ msgstr "60"
|
||||
msgid "60 mm/sec."
|
||||
msgstr "60 mm/sec."
|
||||
|
||||
msgid "600 DPI Grayscale"
|
||||
msgstr "600-DPI grijstinten"
|
||||
|
||||
msgid "600dpi"
|
||||
msgstr "600dpi"
|
||||
|
||||
@@ -2538,9 +2541,6 @@ msgstr "ERROR: Niet mogelijk om afdruktaak %d te annuleren: %s\n"
|
||||
msgid "ERROR: Unable to copy PDF file"
|
||||
msgstr "ERROR: Niet mogelijk om PDF-bestand te kopiëren"
|
||||
|
||||
msgid "ERROR: Unable to create pipe"
|
||||
msgstr ""
|
||||
|
||||
msgid "ERROR: Unable to create socket"
|
||||
msgstr "ERROR: Niet mogelijk om socket aan te maken"
|
||||
|
||||
@@ -2562,9 +2562,6 @@ msgstr "ERROR: Niet mogelijk om gs-programma uit te voeren"
|
||||
msgid "ERROR: Unable to execute pdftops program"
|
||||
msgstr "ERROR: Niet mogelijk om pdftops-programma uit te voeren"
|
||||
|
||||
msgid "ERROR: Unable to execute pstops program"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: Unable to fork pictwpstops: %s\n"
|
||||
msgstr "ERROR: Niet mogelijk om pictwpstops te splitsen: %s\n"
|
||||
@@ -2808,6 +2805,14 @@ msgid "ERROR: doc_printf overflow (%d bytes) detected, aborting!\n"
|
||||
msgstr ""
|
||||
"ERROR: doc_printf-overflow (%d bytes) ontdekt, afdrukken wordt geannuleerd!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
msgstr "ERROR: pdftops-filter vastgelopen op signaal %d!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
msgstr "ERROR: pdftops-filter gestopt met status %d!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pictwpstops exited on signal %d!\n"
|
||||
msgstr "ERROR: pictwpstops gestopt na signaal %d!\n"
|
||||
@@ -4289,6 +4294,10 @@ msgstr "Eenheden"
|
||||
msgid "Unknown"
|
||||
msgstr "Onbekend"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer error (%s)!"
|
||||
msgstr "Onbekende printerfout (%s)!"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer-error-policy \"%s\"."
|
||||
msgstr "Onbekend printerfoutbeleid \"%s\"."
|
||||
@@ -5425,10 +5434,6 @@ msgstr "ppdc: #if ontbreekt in regel %d van %s!\n"
|
||||
msgid "ppdc: No message catalog provided for locale %s!\n"
|
||||
msgstr "ppdc: Geen berichtencatalogus opgegeven voor taalversie %s!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s defined in two different groups on line %d of %s!\n"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s redefined with a different type on line %d of %s!\n"
|
||||
msgstr ""
|
||||
@@ -5605,9 +5610,6 @@ msgstr "onbepaalde lengte gebruikt voor variable-bindings"
|
||||
#~ msgid "%s: Unable to open %s - %s on line %d.\n"
|
||||
#~ msgstr "%s: Niet mogelijk om %s - %s in regel %d te openen.\n"
|
||||
|
||||
#~ msgid "600 DPI Grayscale"
|
||||
#~ msgstr "600-DPI grijstinten"
|
||||
|
||||
#~ msgid "ERROR: Unable to create temporary file - %s.\n"
|
||||
#~ msgstr "ERROR: Niet mogelijk om tijdelijk bestand - %s te maken.\n"
|
||||
|
||||
@@ -5617,15 +5619,6 @@ msgstr "onbepaalde lengte gebruikt voor variable-bindings"
|
||||
#~ msgid "ERROR: Unable to open temporary file"
|
||||
#~ msgstr "ERROR: Niet mogelijk om tijdelijk bestand te openen"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
#~ msgstr "ERROR: pdftops-filter vastgelopen op signaal %d!\n"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
#~ msgstr "ERROR: pdftops-filter gestopt met status %d!\n"
|
||||
|
||||
#~ msgid "Unknown printer error (%s)!"
|
||||
#~ msgstr "Onbekende printerfout (%s)!"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Usage: convert [ options ]\n"
|
||||
#~ "\n"
|
||||
|
||||
+16
-23
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 1.4\n"
|
||||
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
|
||||
"POT-Creation-Date: 2009-06-05 14:00-0700\n"
|
||||
"POT-Creation-Date: 2009-03-23 14:56-0700\n"
|
||||
"PO-Revision-Date: 2009-02-16 12:00-0800\n"
|
||||
"Last-Translator: Apple Inc.\n"
|
||||
"Language-Team: Apple Inc.\n"
|
||||
@@ -1763,6 +1763,9 @@ msgstr "60"
|
||||
msgid "60 mm/sec."
|
||||
msgstr "60 mm/sek"
|
||||
|
||||
msgid "600 DPI Grayscale"
|
||||
msgstr "600 DPI gråskala"
|
||||
|
||||
msgid "600dpi"
|
||||
msgstr "600 dpi"
|
||||
|
||||
@@ -2518,9 +2521,6 @@ msgstr "ERROR: Kan ikke avbryte jobb %d: %s\n"
|
||||
msgid "ERROR: Unable to copy PDF file"
|
||||
msgstr "ERROR: Kan ikke kopiere PDF-fil"
|
||||
|
||||
msgid "ERROR: Unable to create pipe"
|
||||
msgstr ""
|
||||
|
||||
msgid "ERROR: Unable to create socket"
|
||||
msgstr "ERROR: Kan ikke opprette socket"
|
||||
|
||||
@@ -2541,9 +2541,6 @@ msgstr "ERROR: Kan ikke utføre gs-program"
|
||||
msgid "ERROR: Unable to execute pdftops program"
|
||||
msgstr "ERROR: Kan ikke utføre pdftops-program"
|
||||
|
||||
msgid "ERROR: Unable to execute pstops program"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: Unable to fork pictwpstops: %s\n"
|
||||
msgstr "ERROR: Kan ikke forgrene pictwpstops: %s\n"
|
||||
@@ -2770,6 +2767,14 @@ msgstr "ERROR: Page-border-verdien %s støttes ikke, bruker page-border=none!\n"
|
||||
msgid "ERROR: doc_printf overflow (%d bytes) detected, aborting!\n"
|
||||
msgstr "ERROR: fant doc_printf-overflyt (%d byte), avbryter!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
msgstr "ERROR: pdftops-filter krasjet på signal %d!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
msgstr "ERROR: pdftops-filter avsluttet med statusen %d!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pictwpstops exited on signal %d!\n"
|
||||
msgstr "ERROR: pictwpstops avsluttet på signalet %d!\n"
|
||||
@@ -4236,6 +4241,10 @@ msgstr "Enheter"
|
||||
msgid "Unknown"
|
||||
msgstr "Ukjent"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer error (%s)!"
|
||||
msgstr "Ukjent skriverfeil (%s)!"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer-error-policy \"%s\"."
|
||||
msgstr "Ukjent printer-error-policy «%s»."
|
||||
@@ -5345,10 +5354,6 @@ msgstr "ppdc: Mangler #if på linje %d av %s!\n"
|
||||
msgid "ppdc: No message catalog provided for locale %s!\n"
|
||||
msgstr "ppdc: Ingen meldingskatalog oppgitt for nasjonal innstilling %s!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s defined in two different groups on line %d of %s!\n"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s redefined with a different type on line %d of %s!\n"
|
||||
msgstr ""
|
||||
@@ -5523,9 +5528,6 @@ msgstr "variable-bindings bruker uendelig lengde"
|
||||
#~ msgid "%s: Unable to open %s - %s on line %d.\n"
|
||||
#~ msgstr "%s: Kan ikke åpne %s – %s på linje %d.\n"
|
||||
|
||||
#~ msgid "600 DPI Grayscale"
|
||||
#~ msgstr "600 DPI gråskala"
|
||||
|
||||
#~ msgid "ERROR: Unable to create temporary file - %s.\n"
|
||||
#~ msgstr "ERROR: Kan ikke opprette midlertidig fil – %s.\n"
|
||||
|
||||
@@ -5535,15 +5537,6 @@ msgstr "variable-bindings bruker uendelig lengde"
|
||||
#~ msgid "ERROR: Unable to open temporary file"
|
||||
#~ msgstr "ERROR: Kan ikke åpne midlertidig fil"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
#~ msgstr "ERROR: pdftops-filter krasjet på signal %d!\n"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
#~ msgstr "ERROR: pdftops-filter avsluttet med statusen %d!\n"
|
||||
|
||||
#~ msgid "Unknown printer error (%s)!"
|
||||
#~ msgstr "Ukjent skriverfeil (%s)!"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Usage: convert [ options ]\n"
|
||||
#~ "\n"
|
||||
|
||||
+16
-23
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 1.4\n"
|
||||
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
|
||||
"POT-Creation-Date: 2009-06-05 14:00-0700\n"
|
||||
"POT-Creation-Date: 2009-03-23 14:56-0700\n"
|
||||
"PO-Revision-Date: 2009-02-16 12:00-0800\n"
|
||||
"Last-Translator: Apple Inc.\n"
|
||||
"Language-Team: Apple Inc.\n"
|
||||
@@ -1777,6 +1777,9 @@ msgstr "60"
|
||||
msgid "60 mm/sec."
|
||||
msgstr "60 mm/sek."
|
||||
|
||||
msgid "600 DPI Grayscale"
|
||||
msgstr "600 DPI (szarości)"
|
||||
|
||||
msgid "600dpi"
|
||||
msgstr "600dpi"
|
||||
|
||||
@@ -2537,9 +2540,6 @@ msgstr "ERROR: nie można anulować zlecenia %d: %s/n"
|
||||
msgid "ERROR: Unable to copy PDF file"
|
||||
msgstr "ERROR: nie można skopiować pliku PDF"
|
||||
|
||||
msgid "ERROR: Unable to create pipe"
|
||||
msgstr ""
|
||||
|
||||
msgid "ERROR: Unable to create socket"
|
||||
msgstr "ERROR: nie można utworzyć gniazda"
|
||||
|
||||
@@ -2561,9 +2561,6 @@ msgstr "ERROR: nie można wykonać programu gs"
|
||||
msgid "ERROR: Unable to execute pdftops program"
|
||||
msgstr "ERROR: nie można wykonać programu pdftops"
|
||||
|
||||
msgid "ERROR: Unable to execute pstops program"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: Unable to fork pictwpstops: %s\n"
|
||||
msgstr "ERROR: nie można rozdzielić pictwpstops: %s\n"
|
||||
@@ -2794,6 +2791,14 @@ msgstr ""
|
||||
msgid "ERROR: doc_printf overflow (%d bytes) detected, aborting!\n"
|
||||
msgstr "ERROR: wykryto przepełnienie doc_printf (%d bajtów), przerywam!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
msgstr "ERROR: filtr pdftops przerwał działanie po sygnale %d!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
msgstr "ERROR: filtr pdftops zakończył działanie ze stanem %d!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pictwpstops exited on signal %d!\n"
|
||||
msgstr "ERROR: zakończono pictwpstops po sygnale %d!\n"
|
||||
@@ -4263,6 +4268,10 @@ msgstr "Jednostki"
|
||||
msgid "Unknown"
|
||||
msgstr "Nieznane"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer error (%s)!"
|
||||
msgstr "Nieznany błąd drukarki (%s)!"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer-error-policy \"%s\"."
|
||||
msgstr "Nieznane printer-error-policy \"%s\"!"
|
||||
@@ -5390,10 +5399,6 @@ msgstr "ppdc: w linii %d %s brakuje #if!\n"
|
||||
msgid "ppdc: No message catalog provided for locale %s!\n"
|
||||
msgstr "ppdc: brak katalogu komunikatów w locale %s!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s defined in two different groups on line %d of %s!\n"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s redefined with a different type on line %d of %s!\n"
|
||||
msgstr "ppdc: opcja %s zdefiniowana ponownie jako inny typ, linia %d w %s!\n"
|
||||
@@ -5568,9 +5573,6 @@ msgstr "variable-bindings używa nieskończonej długości"
|
||||
#~ msgid "%s: Unable to open %s - %s on line %d.\n"
|
||||
#~ msgstr "%s: nie można otworzyć %s - %s on line %d.\n"
|
||||
|
||||
#~ msgid "600 DPI Grayscale"
|
||||
#~ msgstr "600 DPI (szarości)"
|
||||
|
||||
#~ msgid "ERROR: Unable to create temporary file - %s.\n"
|
||||
#~ msgstr "ERROR: nie można utworzyć pliku tymczasowego - %s\n"
|
||||
|
||||
@@ -5580,15 +5582,6 @@ msgstr "variable-bindings używa nieskończonej długości"
|
||||
#~ msgid "ERROR: Unable to open temporary file"
|
||||
#~ msgstr "ERROR: nie można otworzyć pliku tymczasowego"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
#~ msgstr "ERROR: filtr pdftops przerwał działanie po sygnale %d!\n"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
#~ msgstr "ERROR: filtr pdftops zakończył działanie ze stanem %d!\n"
|
||||
|
||||
#~ msgid "Unknown printer error (%s)!"
|
||||
#~ msgstr "Nieznany błąd drukarki (%s)!"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Usage: convert [ options ]\n"
|
||||
#~ "\n"
|
||||
|
||||
+16
-23
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 1.4\n"
|
||||
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
|
||||
"POT-Creation-Date: 2009-06-05 14:00-0700\n"
|
||||
"POT-Creation-Date: 2009-03-23 14:56-0700\n"
|
||||
"PO-Revision-Date: 2009-02-16 12:00-0800\n"
|
||||
"Last-Translator: Apple Inc.\n"
|
||||
"Language-Team: Apple Inc.\n"
|
||||
@@ -1775,6 +1775,9 @@ msgstr "60"
|
||||
msgid "60 mm/sec."
|
||||
msgstr "60 mm/seg."
|
||||
|
||||
msgid "600 DPI Grayscale"
|
||||
msgstr "Níveis de cinzento 600 DPI"
|
||||
|
||||
msgid "600dpi"
|
||||
msgstr "600dpi"
|
||||
|
||||
@@ -2536,9 +2539,6 @@ msgstr "ERROR: Não é possível cancelar o trabalho %d: %s\n"
|
||||
msgid "ERROR: Unable to copy PDF file"
|
||||
msgstr "ERROR: Não é possível copiar o ficheiro PDF"
|
||||
|
||||
msgid "ERROR: Unable to create pipe"
|
||||
msgstr ""
|
||||
|
||||
msgid "ERROR: Unable to create socket"
|
||||
msgstr "ERROR: Não é possível criar o socket"
|
||||
|
||||
@@ -2561,9 +2561,6 @@ msgstr "ERROR: Não é possível executar o programa gs"
|
||||
msgid "ERROR: Unable to execute pdftops program"
|
||||
msgstr "ERROR: Não é possível executar o programa pdftops"
|
||||
|
||||
msgid "ERROR: Unable to execute pstops program"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: Unable to fork pictwpstops: %s\n"
|
||||
msgstr "ERROR: Não é possível separar pictwpstops: %s\n"
|
||||
@@ -2796,6 +2793,14 @@ msgstr ""
|
||||
msgid "ERROR: doc_printf overflow (%d bytes) detected, aborting!\n"
|
||||
msgstr "ERROR: Detectado excesso doc_printf (%d bytes); a interromper!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
msgstr "ERROR: Filtro pdftops falhou ao sinal %d!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
msgstr "ERROR: Filtro pdftops saiu com o estado %d!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pictwpstops exited on signal %d!\n"
|
||||
msgstr "ERROR: pictwpstops saiu ao sinal %d!\n"
|
||||
@@ -4280,6 +4285,10 @@ msgstr "Unidades"
|
||||
msgid "Unknown"
|
||||
msgstr "Desconhecido"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer error (%s)!"
|
||||
msgstr "Erro de impressora desconhecido (%s)!"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer-error-policy \"%s\"."
|
||||
msgstr "Printer-error-policy desconhecida \"%s\"."
|
||||
@@ -5405,10 +5414,6 @@ msgid "ppdc: No message catalog provided for locale %s!\n"
|
||||
msgstr ""
|
||||
"ppdc: Não foi fornecido qualquer catálogo de mensagem para o locale %s!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s defined in two different groups on line %d of %s!\n"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s redefined with a different type on line %d of %s!\n"
|
||||
msgstr "ppdc: Opção %s redefinida com um tipo diferente na linha %d de %s!\n"
|
||||
@@ -5584,9 +5589,6 @@ msgstr "variable-bindings com comprimento indefinido"
|
||||
#~ msgid "%s: Unable to open %s - %s on line %d.\n"
|
||||
#~ msgstr "%s: Não é possível abrir %s - %s na linha %d.\n"
|
||||
|
||||
#~ msgid "600 DPI Grayscale"
|
||||
#~ msgstr "Níveis de cinzento 600 DPI"
|
||||
|
||||
#~ msgid "ERROR: Unable to create temporary file - %s.\n"
|
||||
#~ msgstr "ERROR: Não é possível criar ficheiro o temporário - %s.\n"
|
||||
|
||||
@@ -5596,15 +5598,6 @@ msgstr "variable-bindings com comprimento indefinido"
|
||||
#~ msgid "ERROR: Unable to open temporary file"
|
||||
#~ msgstr "ERROR: Não é possível abrir o ficheiro temporário"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
#~ msgstr "ERROR: Filtro pdftops falhou ao sinal %d!\n"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
#~ msgstr "ERROR: Filtro pdftops saiu com o estado %d!\n"
|
||||
|
||||
#~ msgid "Unknown printer error (%s)!"
|
||||
#~ msgstr "Erro de impressora desconhecido (%s)!"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Usage: convert [ options ]\n"
|
||||
#~ "\n"
|
||||
|
||||
+16
-23
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 1.4\n"
|
||||
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
|
||||
"POT-Creation-Date: 2009-06-05 14:00-0700\n"
|
||||
"POT-Creation-Date: 2009-03-23 14:56-0700\n"
|
||||
"PO-Revision-Date: 2009-02-16 12:00-0800\n"
|
||||
"Last-Translator: Apple Inc.\n"
|
||||
"Language-Team: Apple Inc.\n"
|
||||
@@ -1780,6 +1780,9 @@ msgstr "60"
|
||||
msgid "60 mm/sec."
|
||||
msgstr "60 mm/s"
|
||||
|
||||
msgid "600 DPI Grayscale"
|
||||
msgstr "600 ppp da escala de cinza"
|
||||
|
||||
msgid "600dpi"
|
||||
msgstr "600ppp"
|
||||
|
||||
@@ -2543,9 +2546,6 @@ msgstr "ERROR: Não é possível cancelar o trabalho %d: %s\n"
|
||||
msgid "ERROR: Unable to copy PDF file"
|
||||
msgstr "ERROR: Não foi possível copiar o arquivo PDF"
|
||||
|
||||
msgid "ERROR: Unable to create pipe"
|
||||
msgstr ""
|
||||
|
||||
msgid "ERROR: Unable to create socket"
|
||||
msgstr "ERROR: Não foi possível criar soquete"
|
||||
|
||||
@@ -2568,9 +2568,6 @@ msgstr "ERROR: Não é possível executar o programa gs"
|
||||
msgid "ERROR: Unable to execute pdftops program"
|
||||
msgstr "ERROR: Não é possível executar o programa pdftops"
|
||||
|
||||
msgid "ERROR: Unable to execute pstops program"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: Unable to fork pictwpstops: %s\n"
|
||||
msgstr "ERROR: Não é possível forçar pictwpstops: %s\n"
|
||||
@@ -2803,6 +2800,14 @@ msgstr ""
|
||||
msgid "ERROR: doc_printf overflow (%d bytes) detected, aborting!\n"
|
||||
msgstr "ERROR: Sobrecarga de doc_printf (%d bytes) detectado, anulando!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
msgstr "ERROR: O filtro pdftops bloqueou no sinal %d!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
msgstr "ERROR: O filtro pdftops saiu com estado %d!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pictwpstops exited on signal %d!\n"
|
||||
msgstr "ERROR: pictwpstops saíram no sinal %d!\n"
|
||||
@@ -4283,6 +4288,10 @@ msgstr "Unidades"
|
||||
msgid "Unknown"
|
||||
msgstr "desconhecido"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer error (%s)!"
|
||||
msgstr "Erro de impressora desconhecido (%s)!"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer-error-policy \"%s\"."
|
||||
msgstr "printer-error-policy desconhecido \"%s\"."
|
||||
@@ -5407,10 +5416,6 @@ msgstr "ppdc: #if ausente na linha %d de %s!\n"
|
||||
msgid "ppdc: No message catalog provided for locale %s!\n"
|
||||
msgstr "ppdc: nenhum catálogo de mensagem fornecido para a localidade %s!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s defined in two different groups on line %d of %s!\n"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s redefined with a different type on line %d of %s!\n"
|
||||
msgstr "ppdc: opção %s redefinida com um tipo diferente na linha %d de %s!\n"
|
||||
@@ -5588,9 +5593,6 @@ msgstr "variable-bindings usa comprimento indefinido"
|
||||
#~ msgid "%s: Unable to open %s - %s on line %d.\n"
|
||||
#~ msgstr "%s: Não é possível abrir %s - %s on-line %d.\n"
|
||||
|
||||
#~ msgid "600 DPI Grayscale"
|
||||
#~ msgstr "600 ppp da escala de cinza"
|
||||
|
||||
#~ msgid "ERROR: Unable to create temporary file - %s.\n"
|
||||
#~ msgstr "ERROR: Não é possível criar o arquivo temporário - %s.\n"
|
||||
|
||||
@@ -5600,15 +5602,6 @@ msgstr "variable-bindings usa comprimento indefinido"
|
||||
#~ msgid "ERROR: Unable to open temporary file"
|
||||
#~ msgstr "ERROR: Não é possível abrir o arquivo temporário"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
#~ msgstr "ERROR: O filtro pdftops bloqueou no sinal %d!\n"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
#~ msgstr "ERROR: O filtro pdftops saiu com estado %d!\n"
|
||||
|
||||
#~ msgid "Unknown printer error (%s)!"
|
||||
#~ msgstr "Erro de impressora desconhecido (%s)!"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Usage: convert [ options ]\n"
|
||||
#~ "\n"
|
||||
|
||||
+16
-23
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 1.4\n"
|
||||
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
|
||||
"POT-Creation-Date: 2009-06-05 14:00-0700\n"
|
||||
"POT-Creation-Date: 2009-03-23 14:56-0700\n"
|
||||
"PO-Revision-Date: 2009-02-16 12:00-0800\n"
|
||||
"Last-Translator: Apple Inc.\n"
|
||||
"Language-Team: Apple Inc.\n"
|
||||
@@ -1770,6 +1770,9 @@ msgstr "60"
|
||||
msgid "60 mm/sec."
|
||||
msgstr "60 мм/с"
|
||||
|
||||
msgid "600 DPI Grayscale"
|
||||
msgstr "600dpi, оттенки серого"
|
||||
|
||||
msgid "600dpi"
|
||||
msgstr "600dpi"
|
||||
|
||||
@@ -2527,9 +2530,6 @@ msgstr "ERROR: Не удается отменить задание %d: %s\n"
|
||||
msgid "ERROR: Unable to copy PDF file"
|
||||
msgstr "ERROR: Не удается копировать файл PDF"
|
||||
|
||||
msgid "ERROR: Unable to create pipe"
|
||||
msgstr ""
|
||||
|
||||
msgid "ERROR: Unable to create socket"
|
||||
msgstr "ERROR: Не удается создать сокет"
|
||||
|
||||
@@ -2550,9 +2550,6 @@ msgstr "ERROR: Не удается запустить программу gs"
|
||||
msgid "ERROR: Unable to execute pdftops program"
|
||||
msgstr "ERROR: Не удается запустить программу pdftops"
|
||||
|
||||
msgid "ERROR: Unable to execute pstops program"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: Unable to fork pictwpstops: %s\n"
|
||||
msgstr "ERROR: Не удается разветвить pictwpstops: %s\n"
|
||||
@@ -2783,6 +2780,14 @@ msgstr ""
|
||||
msgid "ERROR: doc_printf overflow (%d bytes) detected, aborting!\n"
|
||||
msgstr "ERROR: Обнаружено переполнение doc_printf (%d байт), отменяю!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
msgstr "ERROR: Сбой фильтра pdftops при сигнале %d!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
msgstr "ERROR: Фильтр pictwpstops закрыт со статусом %d!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pictwpstops exited on signal %d!\n"
|
||||
msgstr "ERROR: Фильтр pictwpstops закрыт по сигналу %d!\n"
|
||||
@@ -4249,6 +4254,10 @@ msgstr "Единицы"
|
||||
msgid "Unknown"
|
||||
msgstr "Неизвестный"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer error (%s)!"
|
||||
msgstr "Неизвестная ошибка принтера (%s)!"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer-error-policy \"%s\"."
|
||||
msgstr "Неизвестная политика printer-error-policy «%s»."
|
||||
@@ -5381,10 +5390,6 @@ msgstr "ppdc: Отсутствует #if в строке %d из %s!\n"
|
||||
msgid "ppdc: No message catalog provided for locale %s!\n"
|
||||
msgstr "ppdc: Не указан каталог сообщений для региона %s!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s defined in two different groups on line %d of %s!\n"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s redefined with a different type on line %d of %s!\n"
|
||||
msgstr "ppdc: Для параметра %s определен другой тип в строке %d из %s!\n"
|
||||
@@ -5561,9 +5566,6 @@ msgstr "Для variable-bindings длина не установлена"
|
||||
#~ msgid "%s: Unable to open %s - %s on line %d.\n"
|
||||
#~ msgstr "%s: Не удается открыть %s – %s в строке %d.\n"
|
||||
|
||||
#~ msgid "600 DPI Grayscale"
|
||||
#~ msgstr "600dpi, оттенки серого"
|
||||
|
||||
#~ msgid "ERROR: Unable to create temporary file - %s.\n"
|
||||
#~ msgstr "ERROR: Не удается создать временный файл – %s.\n"
|
||||
|
||||
@@ -5573,15 +5575,6 @@ msgstr "Для variable-bindings длина не установлена"
|
||||
#~ msgid "ERROR: Unable to open temporary file"
|
||||
#~ msgstr "ERROR: Не удается открыть временный файл"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
#~ msgstr "ERROR: Сбой фильтра pdftops при сигнале %d!\n"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
#~ msgstr "ERROR: Фильтр pictwpstops закрыт со статусом %d!\n"
|
||||
|
||||
#~ msgid "Unknown printer error (%s)!"
|
||||
#~ msgstr "Неизвестная ошибка принтера (%s)!"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Usage: convert [ options ]\n"
|
||||
#~ "\n"
|
||||
|
||||
+16
-23
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 1.4\n"
|
||||
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
|
||||
"POT-Creation-Date: 2009-06-05 14:00-0700\n"
|
||||
"POT-Creation-Date: 2009-03-23 14:56-0700\n"
|
||||
"PO-Revision-Date: 2009-02-16 12:00-0800\n"
|
||||
"Last-Translator: Apple Inc.\n"
|
||||
"Language-Team: Apple Inc.\n"
|
||||
@@ -1766,6 +1766,9 @@ msgstr "60"
|
||||
msgid "60 mm/sec."
|
||||
msgstr "60 mm/sek."
|
||||
|
||||
msgid "600 DPI Grayscale"
|
||||
msgstr "600 DPI gråskala"
|
||||
|
||||
msgid "600dpi"
|
||||
msgstr "600 dpi"
|
||||
|
||||
@@ -2521,9 +2524,6 @@ msgstr "ERROR: Kunde inte avbryta utskriften %d: %s\n"
|
||||
msgid "ERROR: Unable to copy PDF file"
|
||||
msgstr "ERROR: Kunde inte kopiera PDF-fil"
|
||||
|
||||
msgid "ERROR: Unable to create pipe"
|
||||
msgstr ""
|
||||
|
||||
msgid "ERROR: Unable to create socket"
|
||||
msgstr "ERROR: Kunde inte skapa sockel"
|
||||
|
||||
@@ -2544,9 +2544,6 @@ msgstr "ERROR: Kunde inte exekvera gs-program"
|
||||
msgid "ERROR: Unable to execute pdftops program"
|
||||
msgstr "ERROR: Kunde inte exekvera pdftops-program"
|
||||
|
||||
msgid "ERROR: Unable to execute pstops program"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: Unable to fork pictwpstops: %s\n"
|
||||
msgstr "ERROR: Kunde inte grena process: %s\n"
|
||||
@@ -2774,6 +2771,14 @@ msgstr ""
|
||||
msgid "ERROR: doc_printf overflow (%d bytes) detected, aborting!\n"
|
||||
msgstr "ERROR: doc_printf overflow (%d byte) upptäckt, stoppar!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
msgstr "ERROR: pdftops-filter kraschade på signal %d!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
msgstr "ERROR: pdftops-filter avslutades med status %d!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pictwpstops exited on signal %d!\n"
|
||||
msgstr "ERROR: pictwpstops avslutade med signalen %d!\n"
|
||||
@@ -4243,6 +4248,10 @@ msgstr "Enheter"
|
||||
msgid "Unknown"
|
||||
msgstr "Okänd"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer error (%s)!"
|
||||
msgstr "Okänt skrivarfel (%s)!"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer-error-policy \"%s\"."
|
||||
msgstr "Okänd printer-error-policy \"%s\"."
|
||||
@@ -5359,10 +5368,6 @@ msgstr "ppdc: Saknad #if på rad %d av %s!\n"
|
||||
msgid "ppdc: No message catalog provided for locale %s!\n"
|
||||
msgstr "ppdc: Ingen meddelandekatalog angiven för språkversionen %s!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s defined in two different groups on line %d of %s!\n"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s redefined with a different type on line %d of %s!\n"
|
||||
msgstr "ppdc: Alternativ %s definieras om med en annan typ på rad %d av %s!\n"
|
||||
@@ -5535,9 +5540,6 @@ msgstr "variabelbindningar använder obegränsad längd"
|
||||
#~ msgid "%s: Unable to open %s - %s on line %d.\n"
|
||||
#~ msgstr "%s: Kan inte öppna %s - %s på rad %d.\n"
|
||||
|
||||
#~ msgid "600 DPI Grayscale"
|
||||
#~ msgstr "600 DPI gråskala"
|
||||
|
||||
#~ msgid "ERROR: Unable to create temporary file - %s.\n"
|
||||
#~ msgstr "ERROR: Kunde inte skapa temporär fil - %s.\n"
|
||||
|
||||
@@ -5547,15 +5549,6 @@ msgstr "variabelbindningar använder obegränsad längd"
|
||||
#~ msgid "ERROR: Unable to open temporary file"
|
||||
#~ msgstr "ERROR: Kunde inte öppna temporär fil"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
#~ msgstr "ERROR: pdftops-filter kraschade på signal %d!\n"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
#~ msgstr "ERROR: pdftops-filter avslutades med status %d!\n"
|
||||
|
||||
#~ msgid "Unknown printer error (%s)!"
|
||||
#~ msgstr "Okänt skrivarfel (%s)!"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Usage: convert [ options ]\n"
|
||||
#~ "\n"
|
||||
|
||||
+16
-23
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 1.4\n"
|
||||
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
|
||||
"POT-Creation-Date: 2009-06-05 14:00-0700\n"
|
||||
"POT-Creation-Date: 2009-03-23 14:56-0700\n"
|
||||
"PO-Revision-Date: 2009-02-16 12:00-0800\n"
|
||||
"Last-Translator: Apple Inc.\n"
|
||||
"Language-Team: Apple Inc.\n"
|
||||
@@ -1743,6 +1743,9 @@ msgstr "60"
|
||||
msgid "60 mm/sec."
|
||||
msgstr "60 毫米/秒"
|
||||
|
||||
msgid "600 DPI Grayscale"
|
||||
msgstr "600 DPI 灰度"
|
||||
|
||||
msgid "600dpi"
|
||||
msgstr "600dpi"
|
||||
|
||||
@@ -2493,9 +2496,6 @@ msgstr "ERROR: 无法取消作业 %d:%s\n"
|
||||
msgid "ERROR: Unable to copy PDF file"
|
||||
msgstr "ERROR: 无法拷贝 PDF 文件"
|
||||
|
||||
msgid "ERROR: Unable to create pipe"
|
||||
msgstr ""
|
||||
|
||||
msgid "ERROR: Unable to create socket"
|
||||
msgstr "ERROR: 无法创建套接字"
|
||||
|
||||
@@ -2516,9 +2516,6 @@ msgstr "ERROR: 无法执行 gs 程序"
|
||||
msgid "ERROR: Unable to execute pdftops program"
|
||||
msgstr "ERROR: 无法执行 pdftops 程序"
|
||||
|
||||
msgid "ERROR: Unable to execute pstops program"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: Unable to fork pictwpstops: %s\n"
|
||||
msgstr "ERROR: 无法 fork pictwpstops:%s\n"
|
||||
@@ -2744,6 +2741,14 @@ msgstr "ERROR: 不被支持的 page-border 值 %s,使用 page-border=none!\n
|
||||
msgid "ERROR: doc_printf overflow (%d bytes) detected, aborting!\n"
|
||||
msgstr "ERROR: 检测到 doc_printf 溢出(%d 字节),正在中止!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
msgstr "ERROR: pdftops 滤镜在信号 %d 处崩溃!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
msgstr "ERROR: pdftops 滤镜退出,状态为 %d!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pictwpstops exited on signal %d!\n"
|
||||
msgstr "ERROR: pictwpstops 因信号 %d 退出!\n"
|
||||
@@ -4196,6 +4201,10 @@ msgstr "单位"
|
||||
msgid "Unknown"
|
||||
msgstr "未知"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer error (%s)!"
|
||||
msgstr "未知打印机错误 (%s)!"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer-error-policy \"%s\"."
|
||||
msgstr "未知 printer-error-policy“%s”。"
|
||||
@@ -5291,10 +5300,6 @@ msgstr "ppdc:%2$s 的第 %1$d 行丢失 #if!\n"
|
||||
msgid "ppdc: No message catalog provided for locale %s!\n"
|
||||
msgstr "ppdc:没有为地点 %s 提供信息目录!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s defined in two different groups on line %d of %s!\n"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s redefined with a different type on line %d of %s!\n"
|
||||
msgstr "ppdc:选项 %1$s 被重新定义为不同的类型(在 %3$s 的第 %2$d 行)!\n"
|
||||
@@ -5467,9 +5472,6 @@ msgstr "variable-bindings 使用不定长度"
|
||||
#~ msgid "%s: Unable to open %s - %s on line %d.\n"
|
||||
#~ msgstr "%s:无法打开 %s - %s(在第 %d 行)。\n"
|
||||
|
||||
#~ msgid "600 DPI Grayscale"
|
||||
#~ msgstr "600 DPI 灰度"
|
||||
|
||||
#~ msgid "ERROR: Unable to create temporary file - %s.\n"
|
||||
#~ msgstr "ERROR: 无法创建临时文件 - %s。\n"
|
||||
|
||||
@@ -5479,15 +5481,6 @@ msgstr "variable-bindings 使用不定长度"
|
||||
#~ msgid "ERROR: Unable to open temporary file"
|
||||
#~ msgstr "ERROR: 无法打开临时文件"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
#~ msgstr "ERROR: pdftops 滤镜在信号 %d 处崩溃!\n"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
#~ msgstr "ERROR: pdftops 滤镜退出,状态为 %d!\n"
|
||||
|
||||
#~ msgid "Unknown printer error (%s)!"
|
||||
#~ msgstr "未知打印机错误 (%s)!"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Usage: convert [ options ]\n"
|
||||
#~ "\n"
|
||||
|
||||
+16
-23
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 1.4\n"
|
||||
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
|
||||
"POT-Creation-Date: 2009-06-05 14:00-0700\n"
|
||||
"POT-Creation-Date: 2009-03-23 14:56-0700\n"
|
||||
"PO-Revision-Date: 2009-02-16 12:00-0800\n"
|
||||
"Last-Translator: Apple Inc.\n"
|
||||
"Language-Team: Apple Inc.\n"
|
||||
@@ -1744,6 +1744,9 @@ msgstr "60"
|
||||
msgid "60 mm/sec."
|
||||
msgstr "60 公釐∕秒"
|
||||
|
||||
msgid "600 DPI Grayscale"
|
||||
msgstr "600 DPI 灰階"
|
||||
|
||||
msgid "600dpi"
|
||||
msgstr "600dpi"
|
||||
|
||||
@@ -2494,9 +2497,6 @@ msgstr "ERROR: 無法取消作業 %d:%s\n"
|
||||
msgid "ERROR: Unable to copy PDF file"
|
||||
msgstr "ERROR: 無法拷貝 PDF 檔案"
|
||||
|
||||
msgid "ERROR: Unable to create pipe"
|
||||
msgstr ""
|
||||
|
||||
msgid "ERROR: Unable to create socket"
|
||||
msgstr "ERROR: 無法製作 socket"
|
||||
|
||||
@@ -2517,9 +2517,6 @@ msgstr "ERROR: 無法執行 gs 程式"
|
||||
msgid "ERROR: Unable to execute pdftops program"
|
||||
msgstr "ERROR: 無法執行 pdftops 程式"
|
||||
|
||||
msgid "ERROR: Unable to execute pstops program"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: Unable to fork pictwpstops: %s\n"
|
||||
msgstr "ERROR: 無法分開 pictwpstops:%s\n"
|
||||
@@ -2745,6 +2742,14 @@ msgstr "ERROR: 不受支援的 page-border 值 %s,使用 page-border=none!\n
|
||||
msgid "ERROR: doc_printf overflow (%d bytes) detected, aborting!\n"
|
||||
msgstr "ERROR: 偵測到 doc_printf 溢位(%d 位元組),正在中斷!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
msgstr "ERROR: pdftops 濾鏡在遇到訊號 %d 時當機!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
msgstr "ERROR: pdftops 濾鏡以狀態 %d 結束!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ERROR: pictwpstops exited on signal %d!\n"
|
||||
msgstr "ERROR: pictwpstops 在遇到訊號 %d 時結束!\n"
|
||||
@@ -4197,6 +4202,10 @@ msgstr "單位"
|
||||
msgid "Unknown"
|
||||
msgstr "未知"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer error (%s)!"
|
||||
msgstr "未知的印表機錯誤(%s)!"
|
||||
|
||||
#, c-format
|
||||
msgid "Unknown printer-error-policy \"%s\"."
|
||||
msgstr "未知的 printer-error-policy“%s”。"
|
||||
@@ -5289,10 +5298,6 @@ msgstr "ppdc:%2$s 的第 %1$d 行中遺失 #if!\n"
|
||||
msgid "ppdc: No message catalog provided for locale %s!\n"
|
||||
msgstr "ppdc:沒有針對環境變數 %s 提供的訊息目錄!\n"
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s defined in two different groups on line %d of %s!\n"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "ppdc: Option %s redefined with a different type on line %d of %s!\n"
|
||||
msgstr "ppdc:在 %3$s 的第 %2$d: 行上,以不同的類型重複定義了選項 %1$s!\n"
|
||||
@@ -5465,9 +5470,6 @@ msgstr "variable-bindings 使用的長度不確定"
|
||||
#~ msgid "%s: Unable to open %s - %s on line %d.\n"
|
||||
#~ msgstr "%s:無法打開 %s - %s 在第 %d 行。\n"
|
||||
|
||||
#~ msgid "600 DPI Grayscale"
|
||||
#~ msgstr "600 DPI 灰階"
|
||||
|
||||
#~ msgid "ERROR: Unable to create temporary file - %s.\n"
|
||||
#~ msgstr "ERROR: 無法製作暫存檔 - %s。\n"
|
||||
|
||||
@@ -5477,15 +5479,6 @@ msgstr "variable-bindings 使用的長度不確定"
|
||||
#~ msgid "ERROR: Unable to open temporary file"
|
||||
#~ msgstr "ERROR: 無法打開暫存檔"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter crashed on signal %d!\n"
|
||||
#~ msgstr "ERROR: pdftops 濾鏡在遇到訊號 %d 時當機!\n"
|
||||
|
||||
#~ msgid "ERROR: pdftops filter exited with status %d!\n"
|
||||
#~ msgstr "ERROR: pdftops 濾鏡以狀態 %d 結束!\n"
|
||||
|
||||
#~ msgid "Unknown printer error (%s)!"
|
||||
#~ msgstr "未知的印表機錯誤(%s)!"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Usage: convert [ options ]\n"
|
||||
#~ "\n"
|
||||
|
||||
+1
-2
@@ -182,9 +182,8 @@ install-libs: $(INSTALLSTATIC)
|
||||
|
||||
installstatic:
|
||||
$(INSTALL_DIR) -m 755 $(LIBDIR)
|
||||
$(INSTALL_LIB) -m 755 libcupsppdc.a $(LIBDIR)
|
||||
$(INSTALL_LIB) libcupsppdc.a $(LIBDIR)
|
||||
$(RANLIB) $(LIBDIR)/libcupsppdc.a
|
||||
$(CHMOD) 555 $(LIBDIR)/libcupsppdc.a
|
||||
|
||||
|
||||
#
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
// ppdcDriver::find_attr() - Find an attribute.
|
||||
// ppdcDriver::find_group() - Find a group.
|
||||
// ppdcDriver::find_option() - Find an option.
|
||||
// ppdcDriver::find_option_group() - Find an option and its group.
|
||||
// ppdcDriver::set_custom_size_code() - Set the custom page size code.
|
||||
// ppdcDriver::set_default_font() - Set the default font name.
|
||||
// ppdcDriver::set_default_size() - Set the default size name.
|
||||
@@ -222,19 +221,6 @@ ppdcDriver::find_group(const char *n) // I - Group name
|
||||
|
||||
ppdcOption * // O - Matching option or NULL
|
||||
ppdcDriver::find_option(const char *n) // I - Option name
|
||||
{
|
||||
return (find_option_group(n, (ppdcGroup **)0));
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// 'ppdcDriver::find_option_group()' - Find an option and its group.
|
||||
//
|
||||
|
||||
ppdcOption * // O - Matching option or NULL
|
||||
ppdcDriver::find_option_group(
|
||||
const char *n, // I - Option name
|
||||
ppdcGroup **mg) // O - Matching group or NULL
|
||||
{
|
||||
ppdcGroup *g; // Current group
|
||||
ppdcOption *o; // Current option
|
||||
@@ -243,15 +229,7 @@ ppdcDriver::find_option_group(
|
||||
for (g = (ppdcGroup *)groups->first(); g; g = (ppdcGroup *)groups->next())
|
||||
for (o = (ppdcOption *)g->options->first(); o; o = (ppdcOption *)g->options->next())
|
||||
if (!strcasecmp(n, o->name->value))
|
||||
{
|
||||
if (mg)
|
||||
*mg = g;
|
||||
|
||||
return (o);
|
||||
}
|
||||
|
||||
if (mg)
|
||||
*mg = (ppdcGroup *)0;
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
ppdcGroup::ppdcGroup(const char *n, // I - Name of group
|
||||
const char *t) // I - Text of group
|
||||
{
|
||||
PPDC_NEWVAL(n);
|
||||
PPDC_NEW;
|
||||
|
||||
name = new ppdcString(n);
|
||||
text = new ppdcString(t);
|
||||
@@ -47,7 +47,10 @@ ppdcGroup::ppdcGroup(const char *n, // I - Name of group
|
||||
|
||||
ppdcGroup::ppdcGroup(ppdcGroup *g) // I - Group template
|
||||
{
|
||||
PPDC_NEWVAL(g->name->value);
|
||||
ppdcOption *o; // Current option
|
||||
|
||||
|
||||
PPDC_NEW;
|
||||
|
||||
g->name->retain();
|
||||
g->text->retain();
|
||||
@@ -56,9 +59,7 @@ ppdcGroup::ppdcGroup(ppdcGroup *g) // I - Group template
|
||||
text = g->text;
|
||||
|
||||
options = new ppdcArray();
|
||||
for (ppdcOption *o = (ppdcOption *)g->options->first();
|
||||
o;
|
||||
o = (ppdcOption *)g->options->next())
|
||||
for (o = (ppdcOption *)g->options->first(); o; o = (ppdcOption *)g->options->next())
|
||||
options->add(new ppdcOption(o));
|
||||
}
|
||||
|
||||
@@ -69,14 +70,11 @@ ppdcGroup::ppdcGroup(ppdcGroup *g) // I - Group template
|
||||
|
||||
ppdcGroup::~ppdcGroup()
|
||||
{
|
||||
PPDC_DELETEVAL(name ? name->value : NULL);
|
||||
PPDC_DELETE;
|
||||
|
||||
name->release();
|
||||
text->release();
|
||||
options->release();
|
||||
|
||||
name = text = 0;
|
||||
options = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -32,7 +32,6 @@
|
||||
# define PPDC_NEW DEBUG_printf(("%s: %p new", class_name(), this))
|
||||
# define PPDC_NEWVAL(s) DEBUG_printf(("%s(\"%s\"): %p new", class_name(), s, this))
|
||||
# define PPDC_DELETE DEBUG_printf(("%s: %p delete", class_name(), this))
|
||||
# define PPDC_DELETEVAL(s) DEBUG_printf(("%s(\"%s\"): %p delete", class_name(), s, this))
|
||||
|
||||
|
||||
#endif // !_PPDC_PRIVATE_H_
|
||||
|
||||
+1
-10
@@ -56,16 +56,7 @@ ppdcShared::release(void)
|
||||
DEBUG_printf(("%s: %p release use=%d", class_name(), this, use));
|
||||
|
||||
use --;
|
||||
|
||||
#ifdef DEBUG
|
||||
if (use < 0)
|
||||
{
|
||||
fprintf(stderr, "ERROR: Over-release of %s: %p\n", class_name(), this);
|
||||
abort();
|
||||
}
|
||||
#endif /* DEBUG */
|
||||
|
||||
if (use == 0)
|
||||
if (!use)
|
||||
delete this;
|
||||
}
|
||||
|
||||
|
||||
+11
-103
@@ -71,9 +71,6 @@
|
||||
#include "data/hp.h"
|
||||
#include "data/label.h"
|
||||
#include "data/pcl.h"
|
||||
#ifndef WIN32
|
||||
# include <sys/utsname.h>
|
||||
#endif // !WIN32
|
||||
|
||||
|
||||
//
|
||||
@@ -113,33 +110,6 @@ ppdcSource::ppdcSource(const char *f, // I - File to read
|
||||
cond_current = cond_stack;
|
||||
cond_stack[0] = PPDC_COND_NORMAL;
|
||||
|
||||
// Add standard #define variables...
|
||||
#define MAKE_STRING(x) #x
|
||||
|
||||
vars->add(new ppdcVariable("CUPS_VERSION", MAKE_STRING(CUPS_VERSION)));
|
||||
vars->add(new ppdcVariable("CUPS_VERSION_MAJOR", MAKE_STRING(CUPS_VERSION_MAJOR)));
|
||||
vars->add(new ppdcVariable("CUPS_VERSION_MINOR", MAKE_STRING(CUPS_VERSION_MINOR)));
|
||||
vars->add(new ppdcVariable("CUPS_VERSION_PATCH", MAKE_STRING(CUPS_VERSION_PATCH)));
|
||||
|
||||
#ifdef WIN32
|
||||
vars->add(new ppdcVariable("PLATFORM_NAME", "Windows"));
|
||||
vars->add(new ppdcVariable("PLATFORM_ARCH", "X86"));
|
||||
|
||||
#else
|
||||
struct utsname name; // uname information
|
||||
|
||||
if (!uname(&name))
|
||||
{
|
||||
vars->add(new ppdcVariable("PLATFORM_NAME", name.sysname));
|
||||
vars->add(new ppdcVariable("PLATFORM_ARCH", name.machine));
|
||||
}
|
||||
else
|
||||
{
|
||||
vars->add(new ppdcVariable("PLATFORM_NAME", "unknown"));
|
||||
vars->add(new ppdcVariable("PLATFORM_ARCH", "unknown"));
|
||||
}
|
||||
#endif // WIN32
|
||||
|
||||
if (f)
|
||||
read_file(f, ffp);
|
||||
}
|
||||
@@ -1564,7 +1534,6 @@ ppdcSource::get_option(ppdcFile *fp, // I - File to read
|
||||
ppdcOptSection section; // Option section
|
||||
float order; // Option order
|
||||
ppdcOption *o; // Option
|
||||
ppdcGroup *mg; // Matching group, if any
|
||||
|
||||
|
||||
// Read the Option parameters:
|
||||
@@ -1635,7 +1604,7 @@ ppdcSource::get_option(ppdcFile *fp, // I - File to read
|
||||
order = get_float(fp);
|
||||
|
||||
// See if the option already exists...
|
||||
if ((o = d->find_option_group(name, &mg)) == NULL)
|
||||
if ((o = d->find_option(name)) == NULL)
|
||||
{
|
||||
// Nope, add a new one...
|
||||
o = new ppdcOption(ot, name, text, section, order);
|
||||
@@ -1647,13 +1616,6 @@ ppdcSource::get_option(ppdcFile *fp, // I - File to read
|
||||
"%d of %s!\n"), name, fp->line, fp->filename);
|
||||
return (NULL);
|
||||
}
|
||||
else if (g != mg)
|
||||
{
|
||||
_cupsLangPrintf(stderr,
|
||||
_("ppdc: Option %s defined in two different groups on line "
|
||||
"%d of %s!\n"), name, fp->line, fp->filename);
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
return (o);
|
||||
}
|
||||
@@ -2051,11 +2013,9 @@ ppdcSource::get_token(ppdcFile *fp, // I - File to read
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!(cond_state & PPDC_COND_SKIP))
|
||||
_cupsLangPrintf(stderr,
|
||||
_("ppdc: Undefined variable (%s) on line %d of "
|
||||
"%s.\n"), name, fp->line, fp->filename);
|
||||
|
||||
_cupsLangPrintf(stderr,
|
||||
_("ppdc: Undefined variable (%s) on line %d of "
|
||||
"%s.\n"), name, fp->line, fp->filename);
|
||||
snprintf(bufptr, bufend - bufptr + 1, "$%s", name);
|
||||
bufptr += strlen(name) + 1;
|
||||
}
|
||||
@@ -2416,7 +2376,6 @@ ppdcSource::scan_file(ppdcFile *fp, // I - File to read
|
||||
{
|
||||
ppdcDriver *d; // Current driver
|
||||
ppdcGroup *g, // Current group
|
||||
*mg, // Matching group
|
||||
*general, // General options group
|
||||
*install; // Installable options group
|
||||
ppdcOption *o; // Current option
|
||||
@@ -2428,10 +2387,7 @@ ppdcSource::scan_file(ppdcFile *fp, // I - File to read
|
||||
|
||||
// Initialize things as needed...
|
||||
if (inc && td)
|
||||
{
|
||||
d = td;
|
||||
d->retain();
|
||||
}
|
||||
else
|
||||
d = new ppdcDriver(td);
|
||||
|
||||
@@ -2490,7 +2446,7 @@ ppdcSource::scan_file(ppdcFile *fp, // I - File to read
|
||||
}
|
||||
|
||||
cond_current ++;
|
||||
if (get_integer(fp) > 0)
|
||||
if (get_integer(fp))
|
||||
*cond_current = PPDC_COND_SATISFIED;
|
||||
else
|
||||
{
|
||||
@@ -2512,7 +2468,7 @@ ppdcSource::scan_file(ppdcFile *fp, // I - File to read
|
||||
get_integer(fp);
|
||||
*cond_current |= PPDC_COND_SKIP;
|
||||
}
|
||||
else if (get_integer(fp) > 0)
|
||||
else if (get_integer(fp))
|
||||
{
|
||||
*cond_current |= PPDC_COND_SATISFIED;
|
||||
*cond_current &= ~PPDC_COND_SKIP;
|
||||
@@ -2861,22 +2817,13 @@ ppdcSource::scan_file(ppdcFile *fp, // I - File to read
|
||||
}
|
||||
|
||||
// Add the choice to the cupsDarkness option...
|
||||
if ((o = d->find_option_group("cupsDarkness", &mg)) == NULL)
|
||||
if ((o = d->find_option("cupsDarkness")) == NULL)
|
||||
{
|
||||
// Create the cupsDarkness option...
|
||||
o = new ppdcOption(PPDC_PICKONE, "cupsDarkness", "Darkness", PPDC_SECTION_ANY, 10.0f);
|
||||
g = general;
|
||||
g->add_option(o);
|
||||
}
|
||||
else if (mg != general)
|
||||
{
|
||||
_cupsLangPrintf(stderr,
|
||||
_("ppdc: Option %s defined in two different groups on "
|
||||
"line %d of %s!\n"), "cupsDarkness", fp->line,
|
||||
fp->filename);
|
||||
c->release();
|
||||
continue;
|
||||
}
|
||||
|
||||
o->add_choice(c);
|
||||
|
||||
@@ -2947,22 +2894,13 @@ ppdcSource::scan_file(ppdcFile *fp, // I - File to read
|
||||
}
|
||||
|
||||
// Add the choice to the cupsFinishing option...
|
||||
if ((o = d->find_option_group("cupsFinishing", &mg)) == NULL)
|
||||
if ((o = d->find_option("cupsFinishing")) == NULL)
|
||||
{
|
||||
// Create the cupsFinishing option...
|
||||
o = new ppdcOption(PPDC_PICKONE, "cupsFinishing", "Finishing", PPDC_SECTION_ANY, 10.0f);
|
||||
g = general;
|
||||
g->add_option(o);
|
||||
}
|
||||
else if (mg != general)
|
||||
{
|
||||
_cupsLangPrintf(stderr,
|
||||
_("ppdc: Option %s defined in two different groups on "
|
||||
"line %d of %s!\n"), "cupsFinishing", fp->line,
|
||||
fp->filename);
|
||||
c->release();
|
||||
continue;
|
||||
}
|
||||
|
||||
o->add_choice(c);
|
||||
|
||||
@@ -3038,8 +2976,7 @@ ppdcSource::scan_file(ppdcFile *fp, // I - File to read
|
||||
}
|
||||
|
||||
// Add the choice to the InputSlot option...
|
||||
|
||||
if ((o = d->find_option_group("InputSlot", &mg)) == NULL)
|
||||
if ((o = d->find_option("InputSlot")) == NULL)
|
||||
{
|
||||
// Create the InputSlot option...
|
||||
o = new ppdcOption(PPDC_PICKONE, "InputSlot", "Media Source",
|
||||
@@ -3047,15 +2984,6 @@ ppdcSource::scan_file(ppdcFile *fp, // I - File to read
|
||||
g = general;
|
||||
g->add_option(o);
|
||||
}
|
||||
else if (mg != general)
|
||||
{
|
||||
_cupsLangPrintf(stderr,
|
||||
_("ppdc: Option %s defined in two different groups on "
|
||||
"line %d of %s!\n"), "InputSlot", fp->line,
|
||||
fp->filename);
|
||||
c->release();
|
||||
continue;
|
||||
}
|
||||
|
||||
o->add_choice(c);
|
||||
|
||||
@@ -3172,7 +3100,7 @@ ppdcSource::scan_file(ppdcFile *fp, // I - File to read
|
||||
}
|
||||
|
||||
// Add the choice to the MediaType option...
|
||||
if ((o = d->find_option_group("MediaType", &mg)) == NULL)
|
||||
if ((o = d->find_option("MediaType")) == NULL)
|
||||
{
|
||||
// Create the MediaType option...
|
||||
o = new ppdcOption(PPDC_PICKONE, "MediaType", "Media Type",
|
||||
@@ -3180,15 +3108,6 @@ ppdcSource::scan_file(ppdcFile *fp, // I - File to read
|
||||
g = general;
|
||||
g->add_option(o);
|
||||
}
|
||||
else if (mg != general)
|
||||
{
|
||||
_cupsLangPrintf(stderr,
|
||||
_("ppdc: Option %s defined in two different groups on "
|
||||
"line %d of %s!\n"), "MediaType", fp->line,
|
||||
fp->filename);
|
||||
c->release();
|
||||
continue;
|
||||
}
|
||||
|
||||
o->add_choice(c);
|
||||
|
||||
@@ -3305,7 +3224,7 @@ ppdcSource::scan_file(ppdcFile *fp, // I - File to read
|
||||
}
|
||||
|
||||
// Add the choice to the Resolution option...
|
||||
if ((o = d->find_option_group("Resolution", &mg)) == NULL)
|
||||
if ((o = d->find_option("Resolution")) == NULL)
|
||||
{
|
||||
// Create the Resolution option...
|
||||
o = new ppdcOption(PPDC_PICKONE, "Resolution", NULL, PPDC_SECTION_ANY,
|
||||
@@ -3313,15 +3232,6 @@ ppdcSource::scan_file(ppdcFile *fp, // I - File to read
|
||||
g = general;
|
||||
g->add_option(o);
|
||||
}
|
||||
else if (mg != general)
|
||||
{
|
||||
_cupsLangPrintf(stderr,
|
||||
_("ppdc: Option %s defined in two different groups on "
|
||||
"line %d of %s!\n"), "Resolution", fp->line,
|
||||
fp->filename);
|
||||
c->release();
|
||||
continue;
|
||||
}
|
||||
|
||||
o->add_choice(c);
|
||||
|
||||
@@ -3418,8 +3328,6 @@ ppdcSource::scan_file(ppdcFile *fp, // I - File to read
|
||||
drivers->add(d);
|
||||
}
|
||||
}
|
||||
else if (inc && td)
|
||||
td->release();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ ppdcString::ppdcString(const char *v) // I - String
|
||||
|
||||
ppdcString::~ppdcString()
|
||||
{
|
||||
PPDC_DELETEVAL(value);
|
||||
PPDC_DELETE;
|
||||
|
||||
if (value)
|
||||
delete[] value;
|
||||
|
||||
+3
-19
@@ -284,7 +284,8 @@ main(int argc, // I - Number of command-line arguments
|
||||
if ((pid = fork()) == 0)
|
||||
{
|
||||
// Child process comes here...
|
||||
dup2(fds[0], 0);
|
||||
close(0);
|
||||
dup(fds[0]);
|
||||
|
||||
close(fds[0]);
|
||||
close(fds[1]);
|
||||
@@ -356,29 +357,12 @@ main(int argc, // I - Number of command-line arguments
|
||||
* Write the PPD file...
|
||||
*/
|
||||
|
||||
ppdcArray *templocales = locales;
|
||||
|
||||
if (!templocales)
|
||||
{
|
||||
templocales = new ppdcArray();
|
||||
for (ppdcCatalog *tempcatalog = (ppdcCatalog *)src->po_files->first();
|
||||
tempcatalog;
|
||||
tempcatalog = (ppdcCatalog *)src->po_files->next())
|
||||
{
|
||||
tempcatalog->locale->retain();
|
||||
templocales->add(tempcatalog->locale);
|
||||
}
|
||||
}
|
||||
|
||||
if (d->write_ppd_file(fp, catalog, templocales, src, le))
|
||||
if (d->write_ppd_file(fp, catalog, locales, src, le))
|
||||
{
|
||||
cupsFileClose(fp);
|
||||
return (1);
|
||||
}
|
||||
|
||||
if (templocales != locales)
|
||||
templocales->release();
|
||||
|
||||
cupsFileClose(fp);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -411,7 +411,6 @@ class ppdcDriver //// Printer Driver Data
|
||||
ppdcAttr *find_attr(const char *k, const char *s);
|
||||
ppdcGroup *find_group(const char *n);
|
||||
ppdcOption *find_option(const char *n);
|
||||
ppdcOption *find_option_group(const char *n, ppdcGroup **mg);
|
||||
|
||||
void set_custom_size_code(const char *c);
|
||||
void set_default_font(ppdcFont *f);
|
||||
|
||||
@@ -225,9 +225,8 @@ install-libs: $(INSTALLSTATIC)
|
||||
|
||||
installstatic:
|
||||
$(INSTALL_DIR) -m 755 $(LIBDIR)
|
||||
$(INSTALL_LIB) -m 755 libcupsmime.a $(LIBDIR)
|
||||
$(INSTALL_LIB) libcupsmime.a $(LIBDIR)
|
||||
$(RANLIB) $(LIBDIR)/libcupsmime.a
|
||||
$(CHMOD) 555 $(LIBDIR)/libcupsmime.a
|
||||
|
||||
|
||||
#
|
||||
|
||||
@@ -1046,8 +1046,6 @@ cupsdAuthorize(cupsd_client_t *con) /* I - Client connection */
|
||||
return;
|
||||
}
|
||||
|
||||
con->have_gss = 1;
|
||||
|
||||
/*
|
||||
* Get the username associated with the client's credentials...
|
||||
*/
|
||||
|
||||
@@ -895,9 +895,6 @@ cupsdReadClient(cupsd_client_t *con) /* I - Client to read from */
|
||||
}
|
||||
|
||||
#ifdef HAVE_GSSAPI
|
||||
con->have_gss = 0;
|
||||
|
||||
if (con->gss_creds)
|
||||
{
|
||||
OM_uint32 minor_status;
|
||||
gss_release_cred(&minor_status, &con->gss_creds);
|
||||
|
||||
@@ -55,8 +55,7 @@ struct cupsd_client_s
|
||||
char servername[256];/* Server name for connection */
|
||||
int serverport; /* Server port for connection */
|
||||
#ifdef HAVE_GSSAPI
|
||||
int have_gss; /* Have GSS credentials? */
|
||||
gss_cred_id_t gss_creds; /* Delegated credentials from client */
|
||||
gss_cred_id_t gss_creds; /* Credentials from client header */
|
||||
unsigned gss_flags; /* Credential flags */
|
||||
gss_buffer_desc gss_output_token;
|
||||
/* Output token for Negotiate header */
|
||||
|
||||
@@ -41,10 +41,6 @@
|
||||
#include <sys/utsname.h>
|
||||
#include <syslog.h>
|
||||
|
||||
#ifdef HAVE_LIBPAPER
|
||||
# include <paper.h>
|
||||
#endif /* HAVE_LIBPAPER */
|
||||
|
||||
|
||||
/*
|
||||
* Possibly missing network definitions...
|
||||
|
||||
@@ -56,10 +56,10 @@
|
||||
* Constants...
|
||||
*/
|
||||
|
||||
#define PPD_SYNC 0x50504437 /* Sync word for ppds.dat (PPD7) */
|
||||
#define PPD_SYNC 0x50504436 /* Sync word for ppds.dat (PPD6) */
|
||||
#define PPD_MAX_LANG 32 /* Maximum languages */
|
||||
#define PPD_MAX_PROD 32 /* Maximum products */
|
||||
#define PPD_MAX_VERS 32 /* Maximum versions */
|
||||
#define PPD_MAX_PROD 8 /* Maximum products */
|
||||
#define PPD_MAX_VERS 8 /* Maximum versions */
|
||||
|
||||
#define PPD_TYPE_POSTSCRIPT 0 /* PostScript PPD */
|
||||
#define PPD_TYPE_PDF 1 /* PDF PPD */
|
||||
@@ -363,7 +363,6 @@ cat_drv(const char *name, /* I - PPD name */
|
||||
{
|
||||
fprintf(stderr, "DEBUG2: [cups-driverd] Adding locale \"%s\"...\n",
|
||||
catalog->locale->value);
|
||||
catalog->locale->retain();
|
||||
locales->add(catalog->locale);
|
||||
}
|
||||
|
||||
|
||||
+14
-27
@@ -721,8 +721,7 @@ exec_filter(const char *filter, /* I - Filter to execute */
|
||||
int infd, /* I - Stdin file descriptor */
|
||||
int outfd) /* I - Stdout file descriptor */
|
||||
{
|
||||
int pid, /* Process ID */
|
||||
fd; /* Temporary file descriptor */
|
||||
int pid; /* Process ID */
|
||||
#if defined(__APPLE__)
|
||||
char processPath[1024], /* CFProcessPath environment variable */
|
||||
linkpath[1024]; /* Link path for symlinks... */
|
||||
@@ -766,40 +765,28 @@ exec_filter(const char *filter, /* I - Filter to execute */
|
||||
|
||||
if (infd != 0)
|
||||
{
|
||||
if (infd < 0)
|
||||
infd = open("/dev/null", O_RDONLY);
|
||||
|
||||
close(0);
|
||||
if (infd > 0)
|
||||
{
|
||||
dup2(infd, 0);
|
||||
close(infd);
|
||||
}
|
||||
dup(infd);
|
||||
else
|
||||
open("/dev/null", O_RDONLY);
|
||||
}
|
||||
|
||||
if (outfd != 1)
|
||||
{
|
||||
if (outfd < 0)
|
||||
outfd = open("/dev/null", O_WRONLY);
|
||||
|
||||
if (outfd > 1)
|
||||
{
|
||||
dup2(outfd, 1);
|
||||
close(outfd);
|
||||
}
|
||||
close(1);
|
||||
if (outfd > 0)
|
||||
dup(outfd);
|
||||
else
|
||||
open("/dev/null", O_WRONLY);
|
||||
}
|
||||
|
||||
if ((fd = open("/dev/null", O_RDWR)) > 3)
|
||||
{
|
||||
dup2(fd, 3);
|
||||
close(fd);
|
||||
}
|
||||
close(3);
|
||||
open("/dev/null", O_RDWR);
|
||||
fcntl(3, F_SETFL, O_NDELAY);
|
||||
|
||||
if ((fd = open("/dev/null", O_RDWR)) > 4)
|
||||
{
|
||||
dup2(fd, 4);
|
||||
close(fd);
|
||||
}
|
||||
close(4);
|
||||
open("/dev/null", O_RDWR);
|
||||
fcntl(4, F_SETFL, O_NDELAY);
|
||||
|
||||
/*
|
||||
|
||||
+14
-19
@@ -109,6 +109,10 @@
|
||||
#include "cupsd.h"
|
||||
#include <cups/ppd-private.h>
|
||||
|
||||
#ifdef HAVE_LIBPAPER
|
||||
# include <paper.h>
|
||||
#endif /* HAVE_LIBPAPER */
|
||||
|
||||
#ifdef __APPLE__
|
||||
# include <ApplicationServices/ApplicationServices.h>
|
||||
# include <CoreFoundation/CoreFoundation.h>
|
||||
@@ -3726,8 +3730,7 @@ authenticate_job(cupsd_client_t *con, /* I - Client connection */
|
||||
|
||||
if (!validate_user(job, con, job->username, username, sizeof(username)))
|
||||
{
|
||||
send_http_error(con, con->username[0] ? HTTP_FORBIDDEN : HTTP_UNAUTHORIZED,
|
||||
cupsdFindDest(job->dest));
|
||||
send_http_error(con, HTTP_UNAUTHORIZED, cupsdFindDest(job->dest));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -4051,8 +4054,7 @@ cancel_job(cupsd_client_t *con, /* I - Client connection */
|
||||
|
||||
if (!validate_user(job, con, job->username, username, sizeof(username)))
|
||||
{
|
||||
send_http_error(con, con->username[0] ? HTTP_FORBIDDEN : HTTP_UNAUTHORIZED,
|
||||
cupsdFindDest(job->dest));
|
||||
send_http_error(con, HTTP_UNAUTHORIZED, cupsdFindDest(job->dest));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -8086,8 +8088,7 @@ hold_job(cupsd_client_t *con, /* I - Client connection */
|
||||
|
||||
if (!validate_user(job, con, job->username, username, sizeof(username)))
|
||||
{
|
||||
send_http_error(con, con->username[0] ? HTTP_FORBIDDEN : HTTP_UNAUTHORIZED,
|
||||
cupsdFindDest(job->dest));
|
||||
send_http_error(con, HTTP_UNAUTHORIZED, cupsdFindDest(job->dest));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -8384,8 +8385,7 @@ move_job(cupsd_client_t *con, /* I - Client connection */
|
||||
|
||||
if (!validate_user(job, con, job->username, username, sizeof(username)))
|
||||
{
|
||||
send_http_error(con, con->username[0] ? HTTP_FORBIDDEN : HTTP_UNAUTHORIZED,
|
||||
cupsdFindDest(job->dest));
|
||||
send_http_error(con, HTTP_UNAUTHORIZED, cupsdFindDest(job->dest));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -9199,8 +9199,7 @@ release_job(cupsd_client_t *con, /* I - Client connection */
|
||||
|
||||
if (!validate_user(job, con, job->username, username, sizeof(username)))
|
||||
{
|
||||
send_http_error(con, con->username[0] ? HTTP_FORBIDDEN : HTTP_UNAUTHORIZED,
|
||||
cupsdFindDest(job->dest));
|
||||
send_http_error(con, HTTP_UNAUTHORIZED, cupsdFindDest(job->dest));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -9443,8 +9442,7 @@ restart_job(cupsd_client_t *con, /* I - Client connection */
|
||||
|
||||
if (!validate_user(job, con, job->username, username, sizeof(username)))
|
||||
{
|
||||
send_http_error(con, con->username[0] ? HTTP_FORBIDDEN : HTTP_UNAUTHORIZED,
|
||||
cupsdFindDest(job->dest));
|
||||
send_http_error(con, HTTP_UNAUTHORIZED, cupsdFindDest(job->dest));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -9613,10 +9611,9 @@ save_auth_info(
|
||||
|
||||
#if defined(HAVE_GSSAPI) && defined(HAVE_KRB5_H)
|
||||
# ifdef HAVE_KRB5_IPC_CLIENT_SET_TARGET_UID
|
||||
if (con->have_gss &&
|
||||
(con->http.hostaddr->addr.sa_family == AF_LOCAL || con->gss_creds))
|
||||
if (con->http.hostaddr->addr.sa_family == AF_LOCAL || con->gss_creds)
|
||||
# else
|
||||
if (con->have_gss && con->gss_creds)
|
||||
if (con->gss_creds)
|
||||
# endif /* HAVE_KRB5_IPC_CLIENT_SET_TARGET_UID */
|
||||
save_krb5_creds(con, job);
|
||||
else if (job->ccname)
|
||||
@@ -9768,8 +9765,7 @@ send_document(cupsd_client_t *con, /* I - Client connection */
|
||||
|
||||
if (!validate_user(job, con, job->username, username, sizeof(username)))
|
||||
{
|
||||
send_http_error(con, con->username[0] ? HTTP_FORBIDDEN : HTTP_UNAUTHORIZED,
|
||||
cupsdFindDest(job->dest));
|
||||
send_http_error(con, HTTP_UNAUTHORIZED, cupsdFindDest(job->dest));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -10357,8 +10353,7 @@ set_job_attrs(cupsd_client_t *con, /* I - Client connection */
|
||||
|
||||
if (!validate_user(job, con, job->username, username, sizeof(username)))
|
||||
{
|
||||
send_http_error(con, con->username[0] ? HTTP_FORBIDDEN : HTTP_UNAUTHORIZED,
|
||||
cupsdFindDest(job->dest));
|
||||
send_http_error(con, HTTP_UNAUTHORIZED, cupsdFindDest(job->dest));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -145,11 +145,13 @@ main(int argc, /* I - Number of command-line arguments */
|
||||
* Child goes here...
|
||||
*/
|
||||
|
||||
dup2(cupslpd_stdin[0], 0);
|
||||
close(0);
|
||||
dup(cupslpd_stdin[0]);
|
||||
close(cupslpd_stdin[0]);
|
||||
close(cupslpd_stdin[1]);
|
||||
|
||||
dup2(cupslpd_stdout[1], 1);
|
||||
close(1);
|
||||
dup(cupslpd_stdout[1]);
|
||||
close(cupslpd_stdout[0]);
|
||||
close(cupslpd_stdout[1]);
|
||||
|
||||
|
||||
+5
-9
@@ -282,8 +282,7 @@ cupsdPipeCommand(int *pid, /* O - Process ID or 0 on error */
|
||||
char **argv, /* I - Arguments to pass to command */
|
||||
int user) /* I - User to run as or 0 for current */
|
||||
{
|
||||
int fd, /* Temporary file descriptor */
|
||||
fds[2]; /* Pipe file descriptors */
|
||||
int fds[2]; /* Pipe file descriptors */
|
||||
|
||||
|
||||
/*
|
||||
@@ -345,14 +344,11 @@ cupsdPipeCommand(int *pid, /* O - Process ID or 0 on error */
|
||||
if (!getuid() && user)
|
||||
setuid(user); /* Run as restricted user */
|
||||
|
||||
if ((fd = open("/dev/null", O_RDONLY)) > 0)
|
||||
{
|
||||
dup2(fd, 0); /* </dev/null */
|
||||
close(fd);
|
||||
}
|
||||
close(0); /* </dev/null */
|
||||
open("/dev/null", O_RDONLY);
|
||||
|
||||
dup2(fds[1], 1); /* >pipe */
|
||||
close(fds[1]);
|
||||
close(1); /* >pipe */
|
||||
dup(fds[1]);
|
||||
|
||||
cupsdExec(command, argv);
|
||||
exit(errno);
|
||||
|
||||
@@ -28,14 +28,16 @@
|
||||
EXPECT ipp-versions-supported
|
||||
EXPECT natural-language-configured
|
||||
EXPECT operations-supported
|
||||
EXPECT pdl-override-supported
|
||||
EXPECT printer-info
|
||||
EXPECT printer-is-accepting-jobs
|
||||
EXPECT printer-location
|
||||
EXPECT printer-make-and-model
|
||||
EXPECT printer-more-info
|
||||
EXPECT printer-name
|
||||
EXPECT printer-state
|
||||
EXPECT printer-state-reasons
|
||||
EXPECT printer-up-time
|
||||
EXPECT printer-uri-supported
|
||||
EXPECT queued-job-count
|
||||
EXPECT uri-authentication-supported
|
||||
EXPECT uri-security-supported
|
||||
}
|
||||
|
||||
@@ -1,50 +0,0 @@
|
||||
#!/usr/bin/php -f
|
||||
<?php
|
||||
|
||||
$fp = popen("zgrep '^\\*Product:' /Library/Printers/PPDs/Contents/Resources/*.gz", "r");
|
||||
$files = array();
|
||||
$maxlen = 0;
|
||||
|
||||
while ($line = fgets($fp, 1024))
|
||||
{
|
||||
$data = explode(":", $line);
|
||||
if (array_key_exists($data[0], $files))
|
||||
$files[$data[0]] ++;
|
||||
else
|
||||
$files[$data[0]] = 1;
|
||||
|
||||
$data = explode("\"", $line);
|
||||
if (strlen($data[1]) > $maxlen)
|
||||
$maxlen = strlen($data[1]);
|
||||
}
|
||||
|
||||
pclose($fp);
|
||||
|
||||
arsort($files);
|
||||
|
||||
$current_count = 0;
|
||||
$current_files = 0;
|
||||
|
||||
foreach ($files as $file => $count)
|
||||
{
|
||||
if ($current_count == 0)
|
||||
print(basename($file) . " => $count products\n");
|
||||
|
||||
if ($count != $current_count)
|
||||
{
|
||||
if ($current_count != 0)
|
||||
print("$current_files PPDs with $current_count products.\n");
|
||||
|
||||
$current_count = $count;
|
||||
$current_files = 1;
|
||||
}
|
||||
else
|
||||
$current_files ++;
|
||||
}
|
||||
|
||||
if ($current_count != 0)
|
||||
print("$current_files PPDs with $current_count products.\n");
|
||||
|
||||
print("Maximum length of Product string: $maxlen\n");
|
||||
|
||||
?>
|
||||
Referência em uma Nova Issue
Bloquear um usuário