Comparar commits

..

1 Commits

Autor SHA1 Mensagem Data
msweet 5324bb809f Import cups.org releases
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/tags/release-1.2.5@4306 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-10 18:56:23 +00:00
219 arquivos alterados com 5933 adições e 715 exclusões
+106 -1
Ver Arquivo
@@ -1,6 +1,111 @@
CHANGES.txt - 2006-08-29
CHANGES.txt - 2006-10-20
------------------------
CHANGES IN CUPS V1.2.5
- Documentation updates (STR #2038)
- The SNMP backend no longer uses IPP for Epson printers
(STR #2028)
- Updated the configure script for Tru64 UNIX 5.1 (STR
#2033)
- Tru64 5.1B's getaddrinfo() and getnameinfo() functions
leak file descriptors (STR #2034)
- cupsAddDest() didn't add the parent destination's
options and attributes.
- ppdConflicts() did not handle custom option
constraints.
- Raw printing of gzip'd files did not work (STR #2009)
- The scheduler no longer preserves default option
choices when the new PPD no longer provides the old
default choice (STR #1929)
- The Linux SCSI backend is now only built if the SCSI
development headers are installed.
- USB printing to Minolta printers did not work (STR
#2019)
- Windows clients could not monitor the queue status (STR
#2006)
- The scheduler didn't log the operation name in the
access_log file for Create-Job and Print-Job requests.
- The PostScript filter now separates collated copies
with any required JCL commands so that JCL-based
finishing options act on the individual copies and not
all of the copies as a single document.
- The PostScript filter now disables duplex printing when
printing a 1-page document.
- cups-lpd didn't pass the correct
job-originating-host-name value (STR #2023)
- Fixed some speling errors in the German message catalog
(STR #2012)
- cupstestppd did not catch PPD files with bad
UIConstraints values (STR #2016)
- The USB backend did not work with the current udev-
created printers if the first printer was disconnected
(STR #2017)
- Mirrored and rotated printing did not work with some
documents (STR #2004)
- 2-sided printing with banners did not work properly on
some printers (STR #2018)
- Updated the raw type rule to handle PJL within the
first 4k of a print job (STR #1969)
- Added an Estonian translation (STR #1957)
- Clarified the documentation for the cupsd.conf @LOCAL
and @IF(name) allow/deny functionality (STR #1992)
- The PostScript filters did not escape the Title and For
comments in the print job header (STR #1988)
- The scheduler would use 100% CPU if browsing was
disabled and the cupsd.conf file contained BrowsePoll
lines (STR #1994)
- The cupsDirRead() function did not work properly on
non-POSIX-compliant systems (STR #2001)
- The cupsFile functions didn't handle read/write errors
properly (STR #1996)
- The DBUS support now works with older versions of the
DBUS library.
CHANGES IN CUPS V1.2.4
- The --with-printcap configure option did not work (STR
#1984)
- The character set reported by cupsLangGet() did not
always reflect the default character set of a given
locale (STR #1983)
- Older Lexmark and Tektronix printers did not work with
IPP (STR #1980)
- Failsafe printing did not work (PR #6328)
- Some web interface redirects did not work (STR #1978)
- The web interface change settings button could
introduce a "Port 0" line in cupsd.conf if there was no
loopback connection available (STR #1979)
- The web interface change settings and edit
configuration file buttons would truncate the
cupsd.conf file (STR #1976)
- The German web interface used the wrong printer icon
images (STR #1973)
- The "All Documents" link in the on-line help was
missing a trailing slash (STR #1971)
- The Polish web interface translation used the wrong
URLs for the job history (STR #1963)
- The "reprint job" button did not work (STR #1956)
- The scheduler did not always report printer or job
events properly (STR #1955)
- The scheduler always stopped the queue on error,
regardless of the exit code, if the error policy was
set to "stop-printer" (STR #1959)
- ppdEmitJCL() included UTF-8 characters in the JCL job
name, which caused problems on some printers (STR
#1959)
- Fixed a buffering problem that cause high CPU usage
(STR #1968)
- The command-line applications did not convert
command-line strings to UTF-8 as needed (STR #1958)
- cupsDirRead() incorrectly aborted when reading a
symbolic link that pointed to a file/directory that did
not exist (STR #1953)
- The cupsInterpretRasterPPD() function did not handle
custom page sizes properly.
CHANGES IN CUPS V1.2.3
- The scheduler did not send job-state or
+2 -1
Ver Arquivo
@@ -1,4 +1,4 @@
CREDITS.txt - 2006-04-17
CREDITS.txt - 2006-10-02
------------------------
Few projects are completed by one person, and CUPS is no exception. We'd
@@ -20,6 +20,7 @@ like to thank the following individuals for their contributions:
testing.
Kiko - Bug fixes.
Sergey V. Kovalyov - ESP Print Pro and CUPS beta tester.
Marek Laane - Estonian translation.
Mark Lawrence - Microsoft interoperability testing.
Jeff Licquia - Bug fixes, beta testing, evangelism.
Jason McMullan - Original CUPS RPM distributions.
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
INSTALL - CUPS v1.2.0 - 2006-05-08
INSTALL - CUPS v1.2.5 - 2006-10-20
----------------------------------
This file describes how to compile and install CUPS from source
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
README - CUPS v1.2.3 - 2006-08-28
README - CUPS v1.2.5 - 2006-10-20
---------------------------------
Looking for compile instructions? Read the file "INSTALL.txt"
+19 -7
Ver Arquivo
@@ -855,15 +855,15 @@ main(int argc, /* I - Number of command-line args */
num_options, &options);
}
if (copies_sup)
if (copies_sup && version > 0)
{
/*
* Only send options if the destination printer supports the copies
* attribute. This is a hack for the HP JetDirect implementation of
* IPP, which does not accept extension attributes and incorrectly
* reports a client-error-bad-request error instead of the
* successful-ok-unsupported-attributes status. In short, at least
* some HP implementations of IPP are non-compliant.
* attribute and IPP/1.1. This is a hack for the HP and Lexmark
* implementations of IPP, which do not accept extension attributes
* and incorrectly report a client-error-bad-request error instead of
* the successful-ok-unsupported-attributes status. In short, at least
* some HP and Lexmark implementations of IPP are non-compliant.
*/
cupsEncodeOptions(request, num_options, options);
@@ -877,7 +877,7 @@ main(int argc, /* I - Number of command-line args */
/*
* If copies aren't supported, then we are likely dealing with an HP
* JetDirect. The HP IPP implementation seems to close the connection
* after every request (that is, it does *not* implement HTTP Keep-
* after every request - that is, it does *not* implement HTTP Keep-
* Alive, which is REQUIRED by HTTP/1.1...
*/
@@ -908,6 +908,18 @@ main(int argc, /* I - Number of command-line args */
fputs("INFO: Printer is busy; retrying print job...\n", stderr);
sleep(10);
}
else if ((ipp_status == IPP_BAD_REQUEST ||
ipp_status == IPP_VERSION_NOT_SUPPORTED) && version == 1)
{
/*
* Switch to IPP/1.0...
*/
fputs("INFO: Printer does not support IPP/1.1, trying IPP/1.0...\n",
stderr);
version = 0;
httpReconnect(http);
}
else
fprintf(stderr, "ERROR: Print file was not accepted (%s)!\n",
cupsLastErrorString());
+2 -2
Ver Arquivo
@@ -80,7 +80,7 @@ void list_devices(void);
int print_device(const char *resource, int fd, int copies);
#ifdef __linux__
#if defined(__linux__) && defined(HAVE_SCSI_SG_H)
# include "scsi-linux.c"
#elif defined(__sgi)
# include "scsi-irix.c"
@@ -90,7 +90,7 @@ int print_device(const char *resource, int fd, int copies);
*/
void list_devices(void) {}
int print_device(const char *resource, int fd, int copies) { return (CUPS_BACKEND_FAILED); }
#endif /* __linux */
#endif /* __linux && HAVE_SCSI_SG_H */
/*
+7 -4
Ver Arquivo
@@ -1728,12 +1728,15 @@ probe_device(snmp_cache_t *device) /* I - Device */
debug_printf("DEBUG: %.3f Probing %s...\n", run_time(), device->addrname);
if (device->make_and_model &&
(!strncasecmp(device->make_and_model, "Xerox", 5) ||
!strncasecmp(device->make_and_model, "Kyocera", 7)))
(!strncasecmp(device->make_and_model, "Epson", 5) ||
!strncasecmp(device->make_and_model, "Kyocera", 7) ||
!strncasecmp(device->make_and_model, "Lexmark", 7) ||
!strncasecmp(device->make_and_model, "Tektronix", 9) ||
!strncasecmp(device->make_and_model, "Xerox", 5)))
{
/*
* Xerox and Kyocera printers often lock up on IPP probes, so exclude
* them from the IPP connection test...
* Epson, Kyocera, Lexmark, Tektronix, and Xerox printers often lock up on
* IPP probes, so exclude them from the IPP connection test...
*/
http = NULL;
-4
Ver Arquivo
@@ -340,11 +340,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
FD_ZERO(&input);
FD_SET(device_fd, &input);
#ifdef __hpux
if (select(device_fd + 1, (int *)&input, NULL, NULL, &timeout) > 0)
#else
if (select(device_fd + 1, &input, NULL, NULL, &timeout) > 0)
#endif /* __hpux */
{
/*
* Grab the data coming back and spit it out to stderr...
+63 -48
Ver Arquivo
@@ -79,12 +79,13 @@ print_device(const char *uri, /* I - Device URI */
do
{
/*
* Disable backchannel data when printing to Canon USB printers - apparently
* Canon printers will return the IEEE-1284 device ID over and over and over
* when they get a read request...
* Disable backchannel data when printing to Canon or Minolta USB
* printers - apparently these printers will return the IEEE-1284
* device ID over and over and over when they get a read request...
*/
use_bc = strcasecmp(hostname, "Canon") != 0;
use_bc = strcasecmp(hostname, "Canon") != 0 ||
strstr(hostname, "Minolta") != NULL;
if ((device_fd = open_device(uri, &use_bc)) == -1)
{
@@ -185,44 +186,52 @@ void
list_devices(void)
{
#ifdef __linux
int i; /* Looping var */
int fd; /* File descriptor */
char format[255], /* Format for device filename */
device[255], /* Device filename */
device_id[1024], /* Device ID string */
device_uri[1024], /* Device URI string */
make_model[1024]; /* Make and model */
int i; /* Looping var */
int fd; /* File descriptor */
char device[255], /* Device filename */
device_id[1024], /* Device ID string */
device_uri[1024], /* Device URI string */
make_model[1024]; /* Make and model */
/*
* First figure out which USB printer filename to use...
*/
if (!access("/dev/usblp0", 0))
strcpy(format, "/dev/usblp%d");
else if (!access("/dev/usb/usblp0", 0))
strcpy(format, "/dev/usb/usblp%d");
else
strcpy(format, "/dev/usb/lp%d");
/*
* Then open each USB device...
* Try to open each USB device...
*/
for (i = 0; i < 16; i ++)
{
sprintf(device, format, i);
/*
* Linux has a long history of changing the standard filenames used
* for USB printer devices. We get the honor of trying them all...
*/
if ((fd = open(device, O_RDWR | O_EXCL)) >= 0)
sprintf(device, "/dev/usblp%d", i);
if ((fd = open(device, O_RDWR | O_EXCL)) < 0)
{
if (!backendGetDeviceID(fd, device_id, sizeof(device_id),
make_model, sizeof(make_model),
"usb", device_uri, sizeof(device_uri)))
printf("direct %s \"%s\" \"%s USB #%d\" \"%s\"\n", device_uri,
make_model, make_model, i + 1, device_id);
if (errno != ENOENT)
continue;
close(fd);
sprintf(device, "/dev/usb/lp%d", i);
if ((fd = open(device, O_RDWR | O_EXCL)) < 0)
{
if (errno != ENOENT)
continue;
sprintf(device, "/dev/usb/usblp%d", i);
if ((fd = open(device, O_RDWR | O_EXCL)) < 0)
continue;
}
}
if (!backendGetDeviceID(fd, device_id, sizeof(device_id),
make_model, sizeof(make_model),
"usb", device_uri, sizeof(device_uri)))
printf("direct %s \"%s\" \"%s USB #%d\" \"%s\"\n", device_uri,
make_model, make_model, i + 1, device_id);
close(fd);
}
#elif defined(__sgi)
#elif defined(__sun) && defined(ECPPIOC_GETDEVID)
@@ -309,35 +318,41 @@ open_device(const char *uri, /* I - Device URI */
int i; /* Looping var */
int busy; /* Are any ports busy? */
char format[255], /* Format for device filename */
device[255], /* Device filename */
char device[255], /* Device filename */
device_id[1024], /* Device ID string */
make_model[1024], /* Make and model */
device_uri[1024]; /* Device URI string */
/*
* First figure out which USB printer filename to use...
*/
if (!access("/dev/usblp0", 0))
strcpy(format, "/dev/usblp%d");
else if (!access("/dev/usb/usblp0", 0))
strcpy(format, "/dev/usb/usblp%d");
else
strcpy(format, "/dev/usb/lp%d");
/*
* Then find the correct USB device...
* Find the correct USB device...
*/
do
{
for (busy = 0, i = 0; i < 16; i ++)
{
sprintf(device, format, i);
/*
* Linux has a long history of changing the standard filenames used
* for USB printer devices. We get the honor of trying them all...
*/
if ((fd = open(device, O_RDWR | O_EXCL)) >= 0)
sprintf(device, "/dev/usblp%d", i);
if ((fd = open(device, O_RDWR | O_EXCL)) < 0 && errno == ENOENT)
{
sprintf(device, "/dev/usb/lp%d", i);
if ((fd = open(device, O_RDWR | O_EXCL)) < 0 && errno == ENOENT)
{
sprintf(device, "/dev/usb/usblp%d", i);
if ((fd = open(device, O_RDWR | O_EXCL)) < 0 && errno == ENOENT)
continue;
}
}
if (fd >= 0)
{
backendGetDeviceID(fd, device_id, sizeof(device_id),
make_model, sizeof(make_model),
+6 -4
Ver Arquivo
@@ -2,13 +2,15 @@
lpc.o: ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h
lpc.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h
lpc.o: ../cups/i18n.h ../cups/debug.h ../cups/string.h ../config.h
lpc.o: ../cups/i18n.h ../cups/transcode.h ../cups/debug.h ../cups/string.h
lpc.o: ../config.h
lpq.o: ../cups/string.h ../config.h ../cups/cups.h ../cups/ipp.h
lpq.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
lpq.o: ../cups/file.h ../cups/language.h ../cups/i18n.h ../cups/debug.h
lpq.o: ../cups/file.h ../cups/language.h ../cups/i18n.h ../cups/transcode.h
lpq.o: ../cups/debug.h
lpr.o: ../cups/string.h ../config.h ../cups/cups.h ../cups/ipp.h
lpr.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
lpr.o: ../cups/file.h ../cups/language.h ../cups/i18n.h
lpr.o: ../cups/file.h ../cups/language.h ../cups/i18n.h ../cups/transcode.h
lprm.o: ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h
lprm.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h
lprm.o: ../cups/i18n.h ../cups/string.h ../config.h
lprm.o: ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
+1 -1
Ver Arquivo
@@ -65,7 +65,7 @@ main(int argc, /* I - Number of command-line arguments */
*params; /* Pointer to parameters */
_cupsSetLocale();
_cupsSetLocale(argv);
/*
* Connect to the scheduler...
+1 -1
Ver Arquivo
@@ -78,7 +78,7 @@ main(int argc, /* I - Number of command-line arguments */
cups_dest_t *dests; /* Destinations */
_cupsSetLocale();
_cupsSetLocale(argv);
/*
* Check for command-line options...
+1 -1
Ver Arquivo
@@ -93,7 +93,7 @@ main(int argc, /* I - Number of command-line arguments */
#endif /* HAVE_SIGACTION && !HAVE_SIGSET */
_cupsSetLocale();
_cupsSetLocale(argv);
deletefile = 0;
printer = NULL;
+1 -1
Ver Arquivo
@@ -61,7 +61,7 @@ main(int argc, /* I - Number of command-line arguments */
http_encryption_t encryption; /* Encryption? */
_cupsSetLocale();
_cupsSetLocale(argv);
/*
* Setup to cancel individual print jobs...
+13 -11
Ver Arquivo
@@ -3,47 +3,49 @@
help-index.o: cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
help-index.o: ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
help-index.o: ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
help-index.o: ../cups/i18n.h ../cups/string.h ../config.h ../cups/dir.h
help-index.o: ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
help-index.o: ../cups/dir.h
html.o: cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
html.o: ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
html.o: ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
html.o: ../cups/i18n.h ../cups/string.h ../config.h
html.o: ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
ipp-var.o: cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
ipp-var.o: ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
ipp-var.o: ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
ipp-var.o: ../cups/i18n.h ../cups/string.h ../config.h
ipp-var.o: ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
search.o: cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
search.o: ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
search.o: ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
search.o: ../cups/i18n.h ../cups/string.h ../config.h
search.o: ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
template.o: cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
template.o: ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
template.o: ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
template.o: ../cups/i18n.h ../cups/string.h ../config.h
template.o: ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
var.o: cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
var.o: ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
var.o: ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
var.o: ../cups/i18n.h ../cups/string.h ../config.h
var.o: ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
admin.o: cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
admin.o: ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
admin.o: ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
admin.o: ../cups/i18n.h ../cups/string.h ../config.h ../cups/file.h
admin.o: ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
admin.o: ../cups/adminutil.h ../cups/cups.h ../cups/file.h
classes.o: cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
classes.o: ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
classes.o: ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
classes.o: ../cups/i18n.h ../cups/string.h ../config.h
classes.o: ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
help.o: cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
help.o: ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
help.o: ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
help.o: ../cups/i18n.h ../cups/string.h ../config.h
help.o: ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
jobs.o: cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
jobs.o: ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
jobs.o: ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
jobs.o: ../cups/i18n.h ../cups/string.h ../config.h
jobs.o: ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
printers.o: cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
printers.o: ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
printers.o: ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
printers.o: ../cups/i18n.h ../cups/string.h ../config.h
printers.o: ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
testcgi.o: cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h
testcgi.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h
testcgi.o: ../cups/array.h help-index.h
+3 -1
Ver Arquivo
@@ -3,7 +3,7 @@
*
* Search routines for the Common UNIX Printing System (CUPS).
*
* Copyright 1997-2005 by Easy Software Products.
* Copyright 1997-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
@@ -225,6 +225,8 @@ cgiCompileSearch(const char *query) /* I - Query string */
*sptr++ = *qptr++;
}
*sptr = '\0';
/*
* For "word1 AND word2", add reciprocal "word2 AND word1"...
*/
+4 -4
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: mime.types 5402 2006-04-14 19:21:03Z mike $"
# "$Id: mime.types 6003 2006-10-02 16:26:04Z mike $"
#
# MIME types file for the Common UNIX Printing System (CUPS).
#
@@ -154,8 +154,8 @@ application/vnd.cups-raster string(0,"RaSt") string(0,"tSaR")
application/vnd.cups-raw (string(0,<1B>E) + !string(2,<1B>%0B)) \
string(0,<1B>@) \
(contains(0,128,<1B>%-12345X) + \
(contains(0,1024,"LANGUAGE=PCL") \
contains(0,1024,"LANGUAGE = PCL")))
(contains(0,4096,"LANGUAGE=PCL") \
contains(0,4096,"LANGUAGE = PCL")))
########################################################################
#
@@ -167,5 +167,5 @@ application/vnd.cups-raw (string(0,<1B>E) + !string(2,<1B>%0B)) \
application/octet-stream
#
# End of "$Id: mime.types 5402 2006-04-14 19:21:03Z mike $".
# End of "$Id: mime.types 6003 2006-10-02 16:26:04Z mike $".
#
+9 -7
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-common.m4 5843 2006-08-17 18:49:31Z mike $"
dnl "$Id: cups-common.m4 6032 2006-10-12 19:19:47Z mike $"
dnl
dnl Common configuration stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -29,7 +29,7 @@ dnl Set the name of the config header file...
AC_CONFIG_HEADER(config.h)
dnl Versio number information...
CUPS_VERSION="1.2.3"
CUPS_VERSION="1.2.5"
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'`"
@@ -132,6 +132,7 @@ AC_CHECK_HEADER(strings.h,AC_DEFINE(HAVE_STRINGS_H))
AC_CHECK_HEADER(bstring.h,AC_DEFINE(HAVE_BSTRING_H))
AC_CHECK_HEADER(usersec.h,AC_DEFINE(HAVE_USERSEC_H))
AC_CHECK_HEADER(sys/ioctl.h,AC_DEFINE(HAVE_SYS_IOCTL_H))
AC_CHECK_HEADER(scsi/sg.h,AC_DEFINE(HAVE_SCSI_SG_H))
dnl Checks for string functions.
AC_CHECK_FUNCS(strdup strcasecmp strncasecmp strlcat strlcpy)
@@ -231,12 +232,13 @@ case $uname in
AC_MSG_CHECKING(for DBUS)
if $PKGCONFIG --exists dbus-1; then
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_DBUS)
CFLAGS="$CFLAGS `$PKGCONFIG --cflags dbus-1` -DDBUS_API_SUBJECT_TO_CHANGE"
CUPSDLIBS="`$PKGCONFIG --libs dbus-1`"
DBUSDIR="/etc/dbus-1/system.d"
AC_CHECK_LIB(dbus-1,
dbus_message_iter_init_append,
AC_DEFINE(HAVE_DBUS)
CFLAGS="$CFLAGS `$PKGCONFIG --cflags dbus-1` -DDBUS_API_SUBJECT_TO_CHANGE"
CUPSDLIBS="`$PKGCONFIG --libs dbus-1`"
DBUSDIR="/etc/dbus-1/system.d")
AC_DEFINE(HAVE_DBUS_MESSAGE_ITER_INIT_APPEND))
else
AC_MSG_RESULT(no)
fi
@@ -265,5 +267,5 @@ AC_SUBST(DEFAULT_IPP_PORT)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IPP_PORT,$DEFAULT_IPP_PORT)
dnl
dnl End of "$Id: cups-common.m4 5843 2006-08-17 18:49:31Z mike $".
dnl End of "$Id: cups-common.m4 6032 2006-10-12 19:19:47Z mike $".
dnl
+31 -10
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-compiler.m4 5705 2006-06-30 01:07:29Z mike $"
dnl "$Id: cups-compiler.m4 6049 2006-10-20 15:07:21Z mike $"
dnl
dnl Compiler stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -93,6 +93,7 @@ PIEFLAGS=""
AC_SUBST(PIEFLAGS)
if test -n "$GCC"; then
# Add GCC-specific compiler options...
if test -z "$OPTIM"; then
if test "x$with_optim" = x; then
# Default to optimize-for-size and debug
@@ -273,6 +274,7 @@ if test -n "$GCC"; then
;;
esac
else
# Add vendor-specific compiler options...
case $uname in
AIX*)
if test -z "$OPTIM"; then
@@ -358,6 +360,16 @@ else
fi
fi
;;
OSF*)
# Tru64 UNIX aka Digital UNIX aka OSF/1
if test -z "$OPTIM"; then
if test "x$with_optim" = x; then
OPTIM="-O"
else
OPTIM="$with_optim"
fi
fi
;;
SunOS*)
# Solaris
if test -z "$OPTIM"; then
@@ -449,16 +461,25 @@ else
esac
fi
if test $uname = HP-UX; then
# HP-UX 10.20 (at least) needs this definition to get the
# h_errno global...
OPTIM="$OPTIM -D_XOPEN_SOURCE_EXTENDED"
# Add general compiler options per platform...
case $uname in
HP-UX*)
# HP-UX 10.20 (at least) needs this definition to get the
# h_errno global...
OPTIM="$OPTIM -D_XOPEN_SOURCE_EXTENDED"
# HP-UX 11.00 (at least) needs this definition to get the
# u_short type used by the IP headers...
OPTIM="$OPTIM -D_INCLUDE_HPUX_SOURCE"
fi
# HP-UX 11.00 (at least) needs this definition to get the
# u_short type used by the IP headers...
OPTIM="$OPTIM -D_INCLUDE_HPUX_SOURCE"
;;
OSF*)
# Tru64 UNIX aka Digital UNIX aka OSF/1 need to be told
# to be POSIX-compliant...
OPTIM="$OPTIM -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED -D_OSF_SOURCE"
;;
esac
dnl
dnl End of "$Id: cups-compiler.m4 5705 2006-06-30 01:07:29Z mike $".
dnl End of "$Id: cups-compiler.m4 6049 2006-10-20 15:07:21Z mike $".
dnl
+6 -4
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-defaults.m4 5804 2006-08-04 16:51:58Z mike $"
dnl "$Id: cups-defaults.m4 6003 2006-10-02 16:26:04Z mike $"
dnl
dnl Default cupsd configuration settings for the Common UNIX Printing System
dnl (CUPS).
@@ -28,7 +28,7 @@ AC_ARG_WITH(languages, [ --with-languages set installed languages, defau
if test "x$withval" != xno; then
LANGUAGES="$withval"
fi,
LANGUAGES="de es ja pl sv")
LANGUAGES="de es et ja pl sv")
AC_SUBST(LANGUAGES)
dnl Default ConfigFilePerm
@@ -225,7 +225,7 @@ AC_ARG_WITH(printcap, [ --with-printcap set default printcap file],
default_printcap="$withval",
default_printcap="default")
if test x$enable_printcap != xno -a x$default_printcap != xno; then
if test x$default_printcap != xno; then
if test "x$default_printcap" = "xdefault"; then
case $uname in
Darwin*)
@@ -242,6 +242,8 @@ if test x$enable_printcap != xno -a x$default_printcap != xno; then
CUPS_DEFAULT_PRINTCAP="/etc/printcap"
;;
esac
else
CUPS_DEFAULT_PRINTCAP="$default_printcap"
fi
else
CUPS_DEFAULT_PRINTCAP=""
@@ -250,5 +252,5 @@ fi
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_PRINTCAP, "$CUPS_DEFAULT_PRINTCAP")
dnl
dnl End of "$Id: cups-defaults.m4 5804 2006-08-04 16:51:58Z mike $".
dnl End of "$Id: cups-defaults.m4 6003 2006-10-02 16:26:04Z mike $".
dnl
+9 -4
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-network.m4 5634 2006-06-06 17:48:27Z mike $"
dnl "$Id: cups-network.m4 6049 2006-10-20 15:07:21Z mike $"
dnl
dnl Networking stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -24,12 +24,17 @@ dnl
AC_SEARCH_LIBS(socket, socket)
AC_SEARCH_LIBS(gethostbyaddr, nsl)
AC_SEARCH_LIBS(getaddrinfo, nsl, AC_DEFINE(HAVE_GETADDRINFO))
AC_SEARCH_LIBS(getifaddrs, nsl, AC_DEFINE(HAVE_GETIFADDRS))
AC_SEARCH_LIBS(getnameinfo, nsl, AC_DEFINE(HAVE_GETNAMEINFO))
AC_SEARCH_LIBS(hstrerror, nsl socket resolv, AC_DEFINE(HAVE_HSTRERROR))
AC_SEARCH_LIBS(rresvport_af, nsl, AC_DEFINE(HAVE_RRESVPORT_AF))
# Tru64 5.1b leaks file descriptors with these functions; disable until
# we can come up with a test for this...
if test "$uname" != "OSF1"; then
AC_SEARCH_LIBS(getaddrinfo, nsl, AC_DEFINE(HAVE_GETADDRINFO))
AC_SEARCH_LIBS(getnameinfo, nsl, AC_DEFINE(HAVE_GETNAMEINFO))
fi
AC_CHECK_MEMBER(struct sockaddr.sa_len,,, [#include <sys/socket.h>])
AC_CHECK_HEADER(sys/sockio.h, AC_DEFINE(HAVE_SYS_SOCKIO_H))
@@ -85,5 +90,5 @@ AC_SUBST(CUPS_DEFAULT_DOMAINSOCKET)
AC_SUBST(CUPS_LISTEN_DOMAINSOCKET)
dnl
dnl End of "$Id: cups-network.m4 5634 2006-06-06 17:48:27Z mike $".
dnl End of "$Id: cups-network.m4 6049 2006-10-20 15:07:21Z mike $".
dnl
+8 -2
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-threads.m4 5466 2006-04-26 19:52:27Z mike $"
dnl "$Id: cups-threads.m4 6012 2006-10-03 22:35:12Z mike $"
dnl
dnl Threading stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -44,6 +44,12 @@ if test "x$enable_threads" != xno; then
if test $have_pthread = yes; then
PTHREAD_FLAGS="-D_THREAD_SAFE -D_REENTRANT"
# Solaris requires _POSIX_PTHREAD_SEMANTICS to
# be POSIX-compliant... :(
if test $uname = SunOS; then
PTHREAD_FLAGS="$PTHREAD_FLAGS _POSIX_PTHREAD_SEMANTICS"
fi
break
fi
done
@@ -53,5 +59,5 @@ fi
AC_SUBST(PTHREAD_FLAGS)
dnl
dnl End of "$Id: cups-threads.m4 5466 2006-04-26 19:52:27Z mike $".
dnl End of "$Id: cups-threads.m4 6012 2006-10-03 22:35:12Z mike $".
dnl
+8
Ver Arquivo
@@ -147,6 +147,13 @@
#undef HAVE_CRYPT_H
/*
* Do we have <scsi/sg.h>?
*/
#undef HAVE_SCSI_SG_H
/*
* Use <string.h>, <strings.h>, and/or <bstring.h>?
*/
@@ -434,6 +441,7 @@
*/
#undef HAVE_DBUS
#undef HAVE_DBUS_MESSAGE_ITER_INIT_APPEND
/*
+3 -3
Ver Arquivo
@@ -82,7 +82,7 @@ transcode.o: ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h
transcode.o: i18n.h transcode.h debug.h
usersys.o: http-private.h ../config.h http.h md5.h ipp-private.h ipp.h
usersys.o: globals.h string.h cups.h ppd.h array.h file.h language.h i18n.h
usersys.o: transcode.h
usersys.o: transcode.h debug.h
util.o: globals.h string.h ../config.h http-private.h http.h md5.h
util.o: ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h i18n.h
util.o: transcode.h debug.h
@@ -180,7 +180,7 @@ transcode.32.o: transcode.c ipp-private.h ipp.h cups.h ppd.h array.h file.h lan
transcode.32.o: transcode.c i18n.h transcode.h debug.h
usersys.32.o: usersys.c http-private.h ../config.h http.h md5.h ipp-private.h ipp.h
usersys.32.o: usersys.c globals.h string.h cups.h ppd.h array.h file.h language.h i18n.h
usersys.32.o: usersys.c transcode.h
usersys.32.o: usersys.c transcode.h debug.h
util.32.o: util.c globals.h string.h ../config.h http-private.h http.h md5.h
util.32.o: util.c ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h i18n.h
util.32.o: util.c transcode.h debug.h
@@ -278,7 +278,7 @@ transcode.64.o: transcode.c ipp-private.h ipp.h cups.h ppd.h array.h file.h lan
transcode.64.o: transcode.c i18n.h transcode.h debug.h
usersys.64.o: usersys.c http-private.h ../config.h http.h md5.h ipp-private.h ipp.h
usersys.64.o: usersys.c globals.h string.h cups.h ppd.h array.h file.h language.h i18n.h
usersys.64.o: usersys.c transcode.h
usersys.64.o: usersys.c transcode.h debug.h
util.64.o: util.c globals.h string.h ../config.h http-private.h http.h md5.h
util.64.o: util.c ipp-private.h ipp.h cups.h ppd.h array.h file.h language.h i18n.h
util.64.o: util.c transcode.h debug.h
+20 -3
Ver Arquivo
@@ -953,6 +953,8 @@ _cupsAdminSetServerSettings(
{
int i; /* Looping var */
http_status_t status; /* GET/PUT status */
const char *server_port_env; /* SERVER_PORT env var */
int server_port; /* IPP port for server */
cups_file_t *cupsd; /* cupsd.conf file */
char cupsdconf[1024]; /* cupsd.conf filename */
int remote; /* Remote cupsd.conf file? */
@@ -1086,6 +1088,17 @@ _cupsAdminSetServerSettings(
wrote_root_location = 0;
indent = 0;
if ((server_port_env = getenv("SERVER_PORT")) != NULL)
{
if ((server_port = atoi(server_port_env)) <= 0)
server_port = ippPort();
}
else
server_port = ippPort();
if (server_port <= 0)
server_port = IPP_PORT;
while (cupsFileGetConf(cupsd, line, sizeof(line), &value, &linenum))
{
if (!strcasecmp(line, "Port") || !strcasecmp(line, "Listen"))
@@ -1097,20 +1110,24 @@ _cupsAdminSetServerSettings(
if (share_printers || remote_admin)
{
cupsFilePuts(temp, "# Allow remote access\n");
cupsFilePrintf(temp, "Port %d\n", ippPort());
cupsFilePrintf(temp, "Port %d\n", server_port);
}
else
{
cupsFilePuts(temp, "# Only listen for connections from the local "
"machine.\n");
cupsFilePrintf(temp, "Listen localhost:%d\n", ippPort());
cupsFilePrintf(temp, "Listen localhost:%d\n", server_port);
}
#ifdef CUPS_DEFAULT_DOMAINSOCKET
if (!access(CUPS_DEFAULT_DOMAINSOCKET, 0))
if ((!value || strcmp(CUPS_DEFAULT_DOMAINSOCKET, value)) &&
!access(CUPS_DEFAULT_DOMAINSOCKET, 0))
cupsFilePuts(temp, "Listen " CUPS_DEFAULT_DOMAINSOCKET "\n");
#endif /* CUPS_DEFAULT_DOMAINSOCKET */
}
else if (value && value[0] == '/' &&
strcmp(CUPS_DEFAULT_DOMAINSOCKET, value))
cupsFilePrintf(temp, "Listen %s\n", value);
}
else if (!strcasecmp(line, "Browsing") ||
!strcasecmp(line, "BrowseAddress") ||
+2
Ver Arquivo
@@ -81,6 +81,8 @@ cupsDoAuthentication(http_t *http, /* I - HTTP connection to server */
http, method, resource));
DEBUG_printf(("cupsDoAuthentication: digest_tries=%d, userpass=\"%s\"\n",
http->digest_tries, http->userpass));
DEBUG_printf(("cupsDoAuthentication: WWW-Authenticate=\"%s\"\n",
httpGetField(http, HTTP_FIELD_WWW_AUTHENTICATE)));
/*
* Clear the current authentication string...
+2 -2
Ver Arquivo
@@ -61,10 +61,10 @@ extern "C" {
* Constants...
*/
# define CUPS_VERSION 1.0203
# define CUPS_VERSION 1.0205
# define CUPS_VERSION_MAJOR 1
# define CUPS_VERSION_MINOR 2
# define CUPS_VERSION_PATCH 3
# define CUPS_VERSION_PATCH 5
# define CUPS_DATE_ANY -1
+55 -13
Ver Arquivo
@@ -64,21 +64,31 @@ static int cups_get_sdests(http_t *http, ipp_op_t op, int num_dests,
/*
* 'cupsAddDest()' - Add a destination to the list of destinations.
*
* Use the cupsSaveDests() function to save the updated list of destinations
* to the user's lpoptions file.
* This function cannot be used to add a new class or printer queue,
* it only adds a new container of saved options for the named
* destination or instance.
*
* If the named destination already exists, the destination list is
* returned unchanged. Adding a new instance of a destination creates
* a copy of that destination's options.
*
* Use the cupsSaveDests() function to save the updated list of
* destinations to the user's lpoptions file.
*/
int /* O - New number of destinations */
cupsAddDest(const char *name, /* I - Name of destination */
const char *instance, /* I - Instance of destination or NULL for none/primary */
cupsAddDest(const char *name, /* I - Destination name */
const char *instance, /* I - Instance name or NULL for none/primary */
int num_dests, /* I - Number of destinations */
cups_dest_t **dests) /* IO - Destinations */
{
int i; /* Looping var */
cups_dest_t *dest; /* Destination pointer */
cups_dest_t *parent; /* Parent destination */
cups_option_t *option; /* Current option */
if (name == NULL || dests == NULL)
if (!name || !dests)
return (0);
if ((dest = cupsGetDest(name, instance, num_dests, *dests)) != NULL)
@@ -98,27 +108,53 @@ cupsAddDest(const char *name, /* I - Name of destination */
*dests = dest;
/*
* Find where to insert the destination...
*/
for (i = num_dests; i > 0; i --, dest ++)
if (strcasecmp(name, dest->name) < 0)
break;
else if (!instance && dest->instance)
break;
else if (!strcasecmp(name, dest->name) &&
instance != NULL && dest->instance != NULL &&
instance && dest->instance &&
strcasecmp(instance, dest->instance) < 0)
break;
if (i > 0)
memmove(dest + 1, dest, i * sizeof(cups_dest_t));
/*
* Initialize the destination...
*/
dest->name = strdup(name);
dest->is_default = 0;
dest->num_options = 0;
dest->options = (cups_option_t *)0;
if (instance == NULL)
if (!instance)
dest->instance = NULL;
else
{
/*
* Copy options from the primary instance...
*/
dest->instance = strdup(instance);
if ((parent = cupsGetDest(name, NULL, num_dests + 1, *dests)) != NULL)
{
for (i = parent->num_options, option = parent->options;
i > 0;
i --, option ++)
dest->num_options = cupsAddOption(option->name, option->value,
dest->num_options,
&(dest->options));
}
}
return (num_dests + 1);
}
@@ -160,18 +196,18 @@ cupsFreeDests(int num_dests, /* I - Number of destinations */
*/
cups_dest_t * /* O - Destination pointer or NULL */
cupsGetDest(const char *name, /* I - Name of destination */
const char *instance, /* I - Instance of destination */
cupsGetDest(const char *name, /* I - Destination name or NULL for the default destination */
const char *instance, /* I - Instance name or NULL */
int num_dests, /* I - Number of destinations */
cups_dest_t *dests) /* I - Destinations */
{
int comp; /* Result of comparison */
if (num_dests == 0 || dests == NULL)
if (num_dests <= 0 || !dests)
return (NULL);
if (name == NULL)
if (!name)
{
/*
* NULL name for default printer.
@@ -198,9 +234,9 @@ cupsGetDest(const char *name, /* I - Name of destination */
return (NULL);
else if (comp == 0)
{
if ((instance == NULL && dests->instance == NULL) ||
if ((!instance && !dests->instance) ||
(instance != NULL && dests->instance != NULL &&
strcasecmp(instance, dests->instance) == 0))
!strcasecmp(instance, dests->instance)))
return (dests);
}
@@ -220,6 +256,9 @@ cupsGetDest(const char *name, /* I - Name of destination */
* printer-info, printer-is-accepting-jobs, printer-is-shared,
* printer-make-and-model, printer-state, printer-state-change-time,
* printer-state-reasons, and printer-type attributes as options.
*
* Use the cupsFreeDests() function to free the destination list and
* the cupsGetDest() function to find a particular destination.
*/
int /* O - Number of destinations */
@@ -252,6 +291,9 @@ cupsGetDests(cups_dest_t **dests) /* O - Destinations */
* printer-make-and-model, printer-state, printer-state-change-time,
* printer-state-reasons, and printer-type attributes as options.
*
* Use the cupsFreeDests() function to free the destination list and
* the cupsGetDest() function to find a particular destination.
*
* @since CUPS 1.1.21@
*/
+53 -24
Ver Arquivo
@@ -347,10 +347,12 @@ cupsDirOpen(const char *directory) /* I - Directory name */
cups_dentry_t * /* O - Directory entry */
cupsDirRead(cups_dir_t *dp) /* I - Directory */
{
char buffer[sizeof(struct dirent) + 1024];
/* Directory entry buffer */
struct dirent *entry; /* Pointer to entry */
char filename[1024]; /* Full filename */
# ifdef HAVE_PTHREAD_H
char buffer[sizeof(struct dirent) + 1024];
/* Directory entry buffer */
# endif /* HAVE_PTHREAD_H */
DEBUG_printf(("cupsDirRead(dp=%p)\n", dp));
@@ -366,8 +368,13 @@ cupsDirRead(cups_dir_t *dp) /* I - Directory */
* Try reading an entry that is not "." or ".."...
*/
do
for (;;)
{
# ifdef HAVE_PTHREAD_H
/*
* Read the next entry using the reentrant version of readdir...
*/
if (readdir_r(dp->dir, (struct dirent *)buffer, &entry))
{
DEBUG_printf((" readdir_r() failed - %s\n", strerror(errno)));
@@ -381,28 +388,50 @@ cupsDirRead(cups_dir_t *dp) /* I - Directory */
}
DEBUG_printf((" readdir_r() returned \"%s\"...\n", entry->d_name));
# else
/*
* Read the next entry using the original version of readdir...
*/
if ((entry = readdir(dp->dir)) == NULL)
{
DEBUG_puts(" readdir() returned a NULL pointer!");
return (NULL);
}
DEBUG_printf((" readdir() returned \"%s\"...\n", entry->d_name));
# endif /* HAVE_PTHREAD_H */
/*
* Skip "." and ".."...
*/
if (!strcmp(entry->d_name, ".") || !strcmp(entry->d_name, ".."))
continue;
/*
* Copy the name over and get the file information...
*/
strlcpy(dp->entry.filename, entry->d_name, sizeof(dp->entry.filename));
snprintf(filename, sizeof(filename), "%s/%s", dp->directory, entry->d_name);
if (stat(filename, &(dp->entry.fileinfo)))
{
DEBUG_printf((" stat() failed for \"%s\" - %s...\n", filename,
strerror(errno)));
continue;
}
/*
* Return the entry...
*/
return (&(dp->entry));
}
while (!strcmp(entry->d_name, ".") || !strcmp(entry->d_name, ".."));
/*
* Copy the name over and get the file information...
*/
strlcpy(dp->entry.filename, entry->d_name, sizeof(dp->entry.filename));
snprintf(filename, sizeof(filename), "%s/%s", dp->directory, entry->d_name);
if (stat(filename, &(dp->entry.fileinfo)))
{
DEBUG_printf((" stat() failed for \"%s\" - %s...\n", filename,
strerror(errno)));
return (NULL);
}
/*
* Return the entry...
*/
return (&(dp->entry));
}
+4 -2
Ver Arquivo
@@ -391,8 +391,8 @@ ppdEmitJCL(ppd_file_t *ppd, /* I - PPD file record */
title = ptr + 1;
/*
* Replace double quotes with single quotes so that the title
* does not cause a PJL syntax error.
* Replace double quotes with single quotes and 8-bit characters with
* question marks so that the title does not cause a PJL syntax error.
*/
strlcpy(temp, title, sizeof(temp));
@@ -400,6 +400,8 @@ ppdEmitJCL(ppd_file_t *ppd, /* I - PPD file record */
for (ptr = temp; *ptr; ptr ++)
if (*ptr == '\"')
*ptr = '\'';
else if (*ptr & 128)
*ptr = '?';
/*
* Send PJL JOB and PJL RDYMSG commands before we enter PostScript mode...
+8 -8
Ver Arquivo
@@ -377,7 +377,7 @@ cupsFileFind(const char *filename, /* I - File to find */
int /* O - 0 on success, -1 on error */
cupsFileFlush(cups_file_t *fp) /* I - CUPS file */
{
size_t bytes; /* Bytes to write */
ssize_t bytes; /* Bytes to write */
DEBUG_printf(("cupsFileFlush(fp=%p)\n", fp));
@@ -991,7 +991,7 @@ cupsFilePrintf(cups_file_t *fp, /* I - CUPS file */
...) /* I - Additional args as necessary */
{
va_list ap; /* Argument list */
size_t bytes; /* Formatted size */
ssize_t bytes; /* Formatted size */
char buf[8192]; /* Formatted text */
@@ -1090,7 +1090,7 @@ int /* O - Number of bytes written or -1 */
cupsFilePuts(cups_file_t *fp, /* I - CUPS file */
const char *s) /* I - String to write */
{
size_t bytes; /* Bytes to write */
ssize_t bytes; /* Bytes to write */
/*
@@ -1149,8 +1149,8 @@ cupsFileRead(cups_file_t *fp, /* I - CUPS file */
char *buf, /* O - Buffer */
size_t bytes) /* I - Number of bytes to read */
{
size_t total, /* Total bytes read */
count; /* Bytes read */
size_t total; /* Total bytes read */
ssize_t count; /* Bytes read */
DEBUG_printf(("cupsFileRead(fp=%p, buf=%p, bytes=%ld)\n", fp, buf,
@@ -1274,7 +1274,7 @@ off_t /* O - New file position or -1 */
cupsFileSeek(cups_file_t *fp, /* I - CUPS file */
off_t pos) /* I - Position in file */
{
size_t bytes; /* Number bytes in buffer */
ssize_t bytes; /* Number bytes in buffer */
DEBUG_printf(("cupsFileSeek(fp=%p, pos=" CUPS_LLFMT ")\n", fp, pos));
@@ -2030,8 +2030,8 @@ cups_write(cups_file_t *fp, /* I - CUPS file */
const char *buf, /* I - Buffer */
size_t bytes) /* I - Number bytes */
{
size_t total, /* Total bytes written */
count; /* Count this time */
size_t total; /* Total bytes written */
ssize_t count; /* Count this time */
DEBUG_printf(("cups_write(fp=%p, buf=%p, bytes=%ld)\n", fp, buf,
+5 -2
Ver Arquivo
@@ -222,7 +222,10 @@ httpClearFields(http_t *http) /* I - HTTP connection */
if (http)
{
memset(http->fields, 0, sizeof(http->fields));
httpSetField(http, HTTP_FIELD_HOST, http->hostname);
if (http->hostname[0] == '/')
httpSetField(http, HTTP_FIELD_HOST, "localhost");
else
httpSetField(http, HTTP_FIELD_HOST, http->hostname);
http->expect = (http_status_t)0;
}
@@ -1893,7 +1896,7 @@ httpWrite2(http_t *http, /* I - HTTP connection */
httpFlushWrite(http);
}
if ((length + http->wused) < sizeof(http->wbuffer))
if ((length + http->wused) <= sizeof(http->wbuffer))
{
/*
* Write to buffer...
+1 -1
Ver Arquivo
@@ -105,7 +105,7 @@ extern const char *_cupsLangString(cups_lang_t *lang, const char *message);
extern void _cupsMessageFree(cups_array_t *a);
extern cups_array_t *_cupsMessageLoad(const char *filename);
extern const char *_cupsMessageLookup(cups_array_t *a, const char *m);
extern void _cupsSetLocale(void);
extern void _cupsSetLocale(char *argv[]);
# ifdef __cplusplus
}
+44 -5
Ver Arquivo
@@ -28,7 +28,7 @@
*
* _cupsLangPrintf() - Print a formatted message string to a file.
* _cupsLangPuts() - Print a static message string to a file.
* _cupsSetLocale() - Set the current locale.
* _cupsSetLocale() - Set the current locale and transcode the command-line.
*/
/*
@@ -140,15 +140,18 @@ _cupsLangPuts(FILE *fp, /* I - File to write to */
/*
* '_cupsSetLocale()' - Set the current locale.
* '_cupsSetLocale()' - Set the current locale and transcode the command-line.
*/
void
_cupsSetLocale(void)
_cupsSetLocale(char *argv[]) /* IO - Command-line arguments */
{
int i; /* Looping var */
char buffer[8192]; /* Command-line argument buffer */
_cups_globals_t *cg; /* Global data */
#ifdef LC_TIME
const char *lc_time; /* Current LC_TIME value */
char new_lc_time[255], /* New LC_TIME value */
const char *lc_time; /* Current LC_TIME value */
char new_lc_time[255], /* New LC_TIME value */
*charset; /* Pointer to character set */
#endif /* LC_TIME */
@@ -181,6 +184,42 @@ _cupsSetLocale(void)
setlocale(LC_TIME, new_lc_time);
#endif /* LC_TIME */
/*
* Initialize the default language info...
*/
cg = _cupsGlobals();
if (!cg->lang_default)
cg->lang_default = cupsLangDefault();
/*
* Transcode the command-line arguments from the locale charset to
* UTF-8...
*/
if (cg->lang_default->encoding != CUPS_US_ASCII &&
cg->lang_default->encoding != CUPS_UTF8)
{
for (i = 1; argv[i]; i ++)
{
/*
* Try converting from the locale charset to UTF-8...
*/
if (cupsCharsetToUTF8((cups_utf8_t *)buffer, argv[i], sizeof(buffer),
cg->lang_default->encoding) < 0)
continue;
/*
* Save the new string if it differs from the original...
*/
if (strcmp(buffer, argv[i]))
argv[i] = strdup(buffer);
}
}
}
+7 -8
Ver Arquivo
@@ -406,14 +406,6 @@ cupsLangGet(const char *language) /* I - Language or locale */
*ptr = '\0';
}
else
{
/*
* Default to UTF-8...
*/
strcpy(charset, "UTF8");
}
/*
* Get the locale for messages from the LC_MESSAGES locale setting...
@@ -473,6 +465,13 @@ cupsLangGet(const char *language) /* I - Language or locale */
}
#endif /* CODESET */
/*
* If we don't have a character set by now, default to UTF-8...
*/
if (!charset[0])
strcpy(charset, "UTF8");
/*
* Parse the language string passed in to a locale string. "C" is the
* standard POSIX locale and is copied unchanged. Otherwise the
+17 -26
Ver Arquivo
@@ -62,15 +62,14 @@ static void ppd_defaults(ppd_file_t *ppd, ppd_group_t *g);
int /* O - Number of conflicts found */
ppdConflicts(ppd_file_t *ppd) /* I - PPD to check */
{
int i, j, k, /* Looping variables */
int i, j, /* Looping variables */
conflicts; /* Number of conflicts */
ppd_const_t *c; /* Current constraint */
ppd_group_t *g, *sg; /* Groups */
ppd_option_t *o1, *o2; /* Options */
ppd_choice_t *c1, *c2; /* Choices */
if (ppd == NULL)
if (!ppd)
return (0);
/*
@@ -79,15 +78,8 @@ ppdConflicts(ppd_file_t *ppd) /* I - PPD to check */
conflicts = 0;
for (i = ppd->num_groups, g = ppd->groups; i > 0; i --, g ++)
{
for (j = g->num_options, o1 = g->options; j > 0; j --, o1 ++)
o1->conflicted = 0;
for (j = g->num_subgroups, sg = g->subgroups; j > 0; j --, sg ++)
for (k = sg->num_options, o1 = sg->options; k > 0; k --, o1 ++)
o1->conflicted = 0;
}
for (o1 = ppdFirstOption(ppd); o1; o1 = ppdNextOption(ppd))
o1->conflicted = 0;
/*
* Loop through all of the UI constraints and flag any options
@@ -102,9 +94,9 @@ ppdConflicts(ppd_file_t *ppd) /* I - PPD to check */
o1 = ppdFindOption(ppd, c->option1);
if (o1 == NULL)
if (!o1)
continue;
else if (c->choice1[0] != '\0')
else if (c->choice1[0])
{
/*
* This constraint maps to a specific choice.
@@ -122,10 +114,10 @@ ppdConflicts(ppd_file_t *ppd) /* I - PPD to check */
if (c1->marked)
break;
if (j == 0 ||
strcasecmp(c1->choice, "None") == 0 ||
strcasecmp(c1->choice, "Off") == 0 ||
strcasecmp(c1->choice, "False") == 0)
if (!j ||
!strcasecmp(c1->choice, "None") ||
!strcasecmp(c1->choice, "Off") ||
!strcasecmp(c1->choice, "False"))
c1 = NULL;
}
@@ -135,9 +127,9 @@ ppdConflicts(ppd_file_t *ppd) /* I - PPD to check */
o2 = ppdFindOption(ppd, c->option2);
if (o2 == NULL)
if (!o2)
continue;
else if (c->choice2[0] != '\0')
else if (c->choice2[0])
{
/*
* This constraint maps to a specific choice.
@@ -155,10 +147,10 @@ ppdConflicts(ppd_file_t *ppd) /* I - PPD to check */
if (c2->marked)
break;
if (j == 0 ||
strcasecmp(c2->choice, "None") == 0 ||
strcasecmp(c2->choice, "Off") == 0 ||
strcasecmp(c2->choice, "False") == 0)
if (!j ||
!strcasecmp(c2->choice, "None") ||
!strcasecmp(c2->choice, "Off") ||
!strcasecmp(c2->choice, "False"))
c2 = NULL;
}
@@ -166,8 +158,7 @@ ppdConflicts(ppd_file_t *ppd) /* I - PPD to check */
* If both options are marked then there is a conflict...
*/
if (c1 != NULL && c1->marked &&
c2 != NULL && c2->marked)
if (c1 && c1->marked && c2 && c2->marked)
{
DEBUG_printf(("%s->%s conflicts with %s->%s (%s %s %s %s)\n",
o1->keyword, c1->choice, o2->keyword, c2->choice,
+112 -2
Ver Arquivo
@@ -1549,6 +1549,18 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */
goto error;
case 2 : /* Two options... */
/*
* Check for broken constraints like "* Option"...
*/
if (cg->ppd_conform == PPD_CONFORM_STRICT &&
(!strcmp(constraint->option1, "*") ||
!strcmp(constraint->choice1, "*")))
{
cg->ppd_status = PPD_BAD_UI_CONSTRAINTS;
goto error;
}
/*
* The following strcpy's are safe, as optionN and
* choiceN are all the same size (size defined by PPD spec...)
@@ -1556,17 +1568,38 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */
if (constraint->option1[0] == '*')
_cups_strcpy(constraint->option1, constraint->option1 + 1);
else if (cg->ppd_conform == PPD_CONFORM_STRICT)
{
cg->ppd_status = PPD_BAD_UI_CONSTRAINTS;
goto error;
}
if (constraint->choice1[0] == '*')
_cups_strcpy(constraint->option2, constraint->choice1 + 1);
else
_cups_strcpy(constraint->option2, constraint->choice1);
else if (cg->ppd_conform == PPD_CONFORM_STRICT)
{
cg->ppd_status = PPD_BAD_UI_CONSTRAINTS;
goto error;
}
constraint->choice1[0] = '\0';
constraint->choice2[0] = '\0';
break;
case 3 : /* Two options, one choice... */
/*
* Check for broken constraints like "* Option"...
*/
if (cg->ppd_conform == PPD_CONFORM_STRICT &&
(!strcmp(constraint->option1, "*") ||
!strcmp(constraint->choice1, "*") ||
!strcmp(constraint->option2, "*")))
{
cg->ppd_status = PPD_BAD_UI_CONSTRAINTS;
goto error;
}
/*
* The following _cups_strcpy's are safe, as optionN and
* choiceN are all the same size (size defined by PPD spec...)
@@ -1574,9 +1607,21 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */
if (constraint->option1[0] == '*')
_cups_strcpy(constraint->option1, constraint->option1 + 1);
else if (cg->ppd_conform == PPD_CONFORM_STRICT)
{
cg->ppd_status = PPD_BAD_UI_CONSTRAINTS;
goto error;
}
if (constraint->choice1[0] == '*')
{
if (cg->ppd_conform == PPD_CONFORM_STRICT &&
constraint->option2[0] == '*')
{
cg->ppd_status = PPD_BAD_UI_CONSTRAINTS;
goto error;
}
_cups_strcpy(constraint->choice2, constraint->option2);
_cups_strcpy(constraint->option2, constraint->choice1 + 1);
constraint->choice1[0] = '\0';
@@ -1585,20 +1630,85 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */
{
if (constraint->option2[0] == '*')
_cups_strcpy(constraint->option2, constraint->option2 + 1);
else if (cg->ppd_conform == PPD_CONFORM_STRICT)
{
cg->ppd_status = PPD_BAD_UI_CONSTRAINTS;
goto error;
}
constraint->choice2[0] = '\0';
}
break;
case 4 : /* Two options, two choices... */
/*
* Check for broken constraints like "* Option"...
*/
if (cg->ppd_conform == PPD_CONFORM_STRICT &&
(!strcmp(constraint->option1, "*") ||
!strcmp(constraint->choice1, "*") ||
!strcmp(constraint->option2, "*") ||
!strcmp(constraint->choice2, "*")))
{
cg->ppd_status = PPD_BAD_UI_CONSTRAINTS;
goto error;
}
if (constraint->option1[0] == '*')
_cups_strcpy(constraint->option1, constraint->option1 + 1);
else if (cg->ppd_conform == PPD_CONFORM_STRICT)
{
cg->ppd_status = PPD_BAD_UI_CONSTRAINTS;
goto error;
}
if (cg->ppd_conform == PPD_CONFORM_STRICT &&
constraint->choice1[0] == '*')
{
cg->ppd_status = PPD_BAD_UI_CONSTRAINTS;
goto error;
}
if (constraint->option2[0] == '*')
_cups_strcpy(constraint->option2, constraint->option2 + 1);
else if (cg->ppd_conform == PPD_CONFORM_STRICT)
{
cg->ppd_status = PPD_BAD_UI_CONSTRAINTS;
goto error;
}
if (cg->ppd_conform == PPD_CONFORM_STRICT &&
constraint->choice2[0] == '*')
{
cg->ppd_status = PPD_BAD_UI_CONSTRAINTS;
goto error;
}
break;
}
/*
* Handle CustomFoo option constraints...
*/
if (!strncasecmp(constraint->option1, "Custom", 6) &&
!strcasecmp(constraint->choice1, "True"))
{
_cups_strcpy(constraint->option1, constraint->option1 + 6);
strcpy(constraint->choice1, "Custom");
}
if (!strncasecmp(constraint->option2, "Custom", 6) &&
!strcasecmp(constraint->choice2, "True"))
{
_cups_strcpy(constraint->option2, constraint->option2 + 6);
strcpy(constraint->choice2, "Custom");
}
/*
* Don't add this one as an attribute...
*/
ppd_free(string);
string = NULL;
}
+14 -12
Ver Arquivo
@@ -3,7 +3,7 @@
*
* Temp file utilities for the Common UNIX Printing System (CUPS).
*
* Copyright 1997-2005 by Easy Software Products.
* Copyright 1997-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
@@ -25,9 +25,9 @@
*
* Contents:
*
* cupsTempFd() - Create a temporary file.
* cupsTempFile() - Generate a temporary filename.
* cupsTempFile2() - Create a temporary CUPS file.
* cupsTempFd() - Creates a temporary file.
* cupsTempFile() - Generates a temporary filename.
* cupsTempFile2() - Creates a temporary CUPS file.
*/
/*
@@ -48,12 +48,13 @@
/*
* 'cupsTempFd()' - Create a temporary file.
* 'cupsTempFd()' - Creates a temporary file.
*
* The temporary filename is stored in the filename buffer.
* The temporary filename is returned in the filename buffer.
* The temporary file is opened for reading and writing.
*/
int /* O - New file descriptor */
int /* O - New file descriptor or -1 on error */
cupsTempFd(char *filename, /* I - Pointer to buffer */
int len) /* I - Size of buffer */
{
@@ -158,16 +159,16 @@ cupsTempFd(char *filename, /* I - Pointer to buffer */
/*
* 'cupsTempFile()' - Generate a temporary filename.
* 'cupsTempFile()' - Generates a temporary filename.
*
* The temporary filename is stored in the filename buffer.
* The temporary filename is returned in the filename buffer.
* This function is deprecated - use cupsTempFd() or cupsTempFile2()
* instead.
*
* @deprecated@
*/
char * /* O - Filename */
char * /* O - Filename or NULL on error */
cupsTempFile(char *filename, /* I - Pointer to buffer */
int len) /* I - Size of buffer */
{
@@ -207,9 +208,10 @@ cupsTempFile(char *filename, /* I - Pointer to buffer */
/*
* 'cupsTempFile2()' - Create a temporary CUPS file.
* 'cupsTempFile2()' - Creates a temporary CUPS file.
*
* The temporary filename is stored in the filename buffer.
* The temporary filename is returned in the filename buffer.
* The temporary file is opened for writing.
*
* @since CUPS 1.2@
*/
+2
Ver Arquivo
@@ -84,6 +84,8 @@ static uri_test_t uri_tests[] = /* URI test data */
"http", "username:password", "server", "/", 8080, 8080 },
{ HTTP_URI_OK, "http://username:passwor%64@server:8080/directory/filename",
"http", "username:password", "server", "/directory/filename", 8080, 8080 },
{ HTTP_URI_OK, "http://[2000::10:100]:631/ipp",
"http", "", "2000::10:100", "/ipp", 631, 631 },
{ HTTP_URI_OK, "https://username:passwor%64@server/directory/filename",
"https", "username:password", "server", "/directory/filename", 443, 0 },
{ HTTP_URI_OK, "ipp://username:passwor%64@[::1]/ipp",
+2 -1
Ver Arquivo
@@ -445,6 +445,7 @@ cupsUTF8ToUTF32(
*/
*dest++ = ch;
continue;
}
else if ((ch & 0xe0) == 0xc0)
{
@@ -540,7 +541,7 @@ cupsUTF8ToUTF32(
* Check for UTF-16 surrogate (illegal UTF-8)...
*/
if (*dest >= 0xd800 && *dest <= 0xdfff)
if (ch32 >= 0xd800 && ch32 <= 0xdfff)
return (-1);
}
+3 -1
Ver Arquivo
@@ -14,10 +14,12 @@ X-DCOP-ServiceType=
X-KDE-SubstituteUID=false
X-KDE-Username=
Name=Manage Printing
Name[en_US]=Manage Printing
Comment=CUPS Web Interface
Name[en_US]=Manage Printing
Comment[en_US]=CUPS Web Interface
Name[es]=Administrar impresión
Comment[es]=Interfaz Web de CUPS
Name[et]=Trükkimise haldur
Comment[et]=CUPS-i veebiliides
Name[pl]=Zarządzanie drukowaniem
Comment[pl]=Interfejs WWW CUPS
Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 595 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 443 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 472 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 563 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 636 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 513 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 612 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 644 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 419 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 355 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 506 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 522 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 721 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 874 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 313 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 451 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 523 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 450 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 571 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 541 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 537 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 552 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 475 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 606 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 768 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 630 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 560 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 649 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 534 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 551 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 709 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 329 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 753 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 742 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 696 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 683 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 567 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 683 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 556 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 529 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 607 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 624 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 537 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 567 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 491 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 500 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 638 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 903 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 687 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 550 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 576 B

Arquivo binário não exibido.

Depois

Largura:  |  Altura:  |  Tamanho: 758 B

+141
Ver Arquivo
@@ -0,0 +1,141 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
<TITLE>Kodu - CUPS @CUPS_VERSION@@CUPS_REVISION@</TITLE>
<LINK REL="STYLESHEET" TYPE="text/css" HREF="/cups.css">
<LINK REL="SHORTCUT ICON" HREF="/favicon.ico" TYPE="image/x-icon">
</HEAD>
<BODY>
<TABLE WIDTH="100%" STYLE="height: 100%;" BORDER="0" CELLSPACING="0" CELLPADDING="0" SUMMARY="Common UNIX Printing System @CUPS_VERSION@">
<TR CLASS="header">
<TD VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG SRC="/images/top-left.gif" WIDTH="15" HEIGHT="80" ALT=""></TD>
<TD VALIGN="TOP" WIDTH="55" ROWSPAN="2"><IMG SRC="/images/top-middle.gif" WIDTH="55" HEIGHT="80" ALT=""></TD>
<TD WIDTH="100%" HEIGHT="60"><H1>Common UNIX Printing System @CUPS_VERSION@@CUPS_REVISION@</H1></TD>
<TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG
SRC="/images/top-right.gif" WIDTH="15" HEIGHT="15" ALT=""></TD>
</TR>
<TR CLASS="header"><TD WIDTH="100%" VALIGN="BOTTOM" NOWRAP>
<A CLASS="sel" HREF="/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
HEIGHT="4" ALIGN="TOP" BORDER="0"
ALT="">&nbsp;&nbsp;Kodu&nbsp;&nbsp;<IMG
SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
BORDER="0" ALT=""></A>
&nbsp;<A CLASS="unsel" HREF="/admin/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
HEIGHT="4" ALIGN="TOP" BORDER="0"
ALT="">&nbsp;&nbsp;Haldus&nbsp;&nbsp;<IMG
SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
BORDER="0" ALT=""></A>
&nbsp;<A CLASS="unsel" HREF="/classes/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
HEIGHT="4" ALIGN="TOP" BORDER="0"
ALT="">&nbsp;&nbsp;Klassid&nbsp;&nbsp;<IMG
SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
BORDER="0" ALT=""></A>
&nbsp;<A CLASS="unsel" HREF="/help/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
HEIGHT="4" ALIGN="TOP" BORDER="0"
ALT="">&nbsp;&nbsp;Dokumentatsioon/Abi&nbsp;&nbsp;<IMG
SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
BORDER="0" ALT=""></A>
&nbsp;<A CLASS="unsel" HREF="/jobs/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
HEIGHT="4" ALIGN="TOP" BORDER="0"
ALT="">&nbsp;&nbsp;Tööd&nbsp;&nbsp;<IMG
SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
BORDER="0" ALT=""></A>
&nbsp;<A CLASS="unsel" HREF="/printers/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
HEIGHT="4" ALIGN="TOP" BORDER="0"
ALT="">&nbsp;&nbsp;Printerid&nbsp;&nbsp;<IMG
SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
BORDER="0" ALT=""></A>
</TD></TR>
<TR CLASS="page">
<TD WIDTH="15">&nbsp;</TD>
<TD COLSPAN="2" WIDTH="100%" VALIGN="TOP" CLASS="page">
<H2 CLASS="title">Tere tulemast!</H2>
<P>Käesolevad veebileheküljed võimaldavad Teil jälgida oma printereid ja töid
ning süsteemi hallata. Klõpsake vajalike ülesannete sooritamiseks mõnele
ülal paiknevale sakile või all asuvale nupule.</P>
<P>
<A HREF="/help/"><IMG SRC="/images/button-help.gif" CLASS="button" ALT="Abi"></A>
<A HREF="/admin?OP=add-class"><IMG SRC="/images/button-add-class.gif" CLASS="button" ALT="Lisa klass"></A>
<A HREF="/admin?OP=add-printer"><IMG SRC="/images/button-add-printer.gif" CLASS="button" ALT="Lisa printer"></A>
<A HREF="/classes"><IMG SRC="/images/button-manage-classes.gif" CLASS="button" ALT="Halda klasse"></A>
<A HREF="/jobs"><IMG SRC="/images/button-manage-jobs.gif" CLASS="button" ALT="Halda töid"></A>
<A HREF="/printers"><IMG SRC="/images/button-manage-printers.gif" CLASS="button" ALT="Halda printereid"></A>
<A HREF="/admin"><IMG SRC="/images/button-manage-server.gif" CLASS="button" ALT="Halda serverit"></A>
</P>
<P><I>Kui Teie käest päritakse kasutajanime ja parooli, sisestage enda
või administraatori (root) kasutajanimi ja parool.</I></P>
<H2 CLASS="title">CUPS-i info</H2>
<P>
<IMG SRC="/images/happy.gif" ALIGN="LEFT" WIDTH="196" HEIGHT="144"
STYLE="padding-right: 10px;" ALT="Happy Computer and Printer">
<A HREF="http://www.easysw.com/"><IMG SRC="/images/esp-logo.gif"
ALIGN="RIGHT" WIDTH="110" HEIGHT="68" BORDER="0"
STYLE="padding-left: 10px; padding-bottom: 10px;"
ALT="Easy Software Products"></A>
CUPS pakub porditavat trükkimiskihti
UNIX<SUP>&reg;</SUP> põhistele operatsioonisüsteemidele. CUPS-i töötas
välja ja hooldab <A HREF="http://www.easysw.com">Easy Software
Products</a>, selle siht on edendada standardseid trükkimislahendusi. CUPS on
standardne trükkimissüsteem, mida kasutavad MacOS<SUP>&reg;</SUP> X ja
suurem osa Linux<SUP>&reg;</SUP> distributsioone.</P>
<P>CUPS kasutab <A HREF="http://www.pwg.org/ipp/"
TARGET="_blank"> Interneti trükkimisprotokolli ("IPP")</A>
trükitööde ja järjekordade haldamiseks, lisades sellele
võrguprinterite kasutamise ning PostScript-printerikirjelduste ("PPD")
põhise trükkimise võimalused trükkimise maksimaalseks hõlbustamiseks.<BR CLEAR="ALL"></P>
<H2 CLASS="title">Printeridraiveritest ja abist</H2>
<P>Printeridraiverite ja muu abi leidmiseks külastage CUPS-i
ametlikku veebilehekülge:</P>
<PRE>
<A HREF="http://www.cups.org/" TARGET="_blank">www.cups.org</A>
</PRE>
<P>Kommertstoetus ja CUPS-i täiustatud versioon nimetusega <A
HREF="http://www.easysw.com/printpro/">ESP Print Pro</A> on
saadaval aadressil:</P>
<PRE>
<A HREF="http://www.easysw.com/" TARGET="_blank">www.easysw.com</A>
</PRE>
</TD>
<TD WIDTH="15">&nbsp;</TD>
</TR>
<TR CLASS="header">
<TD VALIGN="BOTTOM" WIDTH="15"><IMG SRC="/images/bottom-left.gif"
WIDTH="15" HEIGHT="15" ALT=""></TD>
<TD COLSPAN="2" WIDTH="100%" STYLE="padding: 5;">
<P><SMALL>Common UNIX Printing System, CUPS ja CUPS-i logo on
firma <A HREF="http://www.easysw.com">Easy Software
Products</A> kaubamärgid. CUPS-i autoriõigus 1997-2006: Easy Software Products,
kõik õigused kaitstud.</SMALL></P>
</TD>
<TD ALIGN="RIGHT" VALIGN="BOTTOM" WIDTH="15"><IMG SRC="/images/bottom-right.gif"
WIDTH="15" HEIGHT="15" ALT=""></TD>
</TR>
</TABLE>
</BODY>
</HTML>
+31 -15
Ver Arquivo
@@ -176,8 +176,16 @@ CUPS 1.1 or higher.</p>
<h4>Description</h4>
<p>Add a destination to the list of destinations.
Use the cupsSaveDests() function to save the updated list of destinations
to the user's lpoptions file.</p>
This function cannot be used to add a new class or printer queue,
it only adds a new container of saved options for the named
destination or instance.
If the named destination already exists, the destination list is
returned unchanged. Adding a new instance of a destination creates
a copy of that destination's options.
Use the cupsSaveDests() function to save the updated list of
destinations to the user's lpoptions file.</p>
<h4>Syntax</h4>
<pre>
int
@@ -191,8 +199,8 @@ cupsAddDest(
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>name</tt></td><td>Name of destination</td></tr>
<tr><td><tt>instance</tt></td><td>Instance of destination or NULL for none/primary</td></tr>
<tr><td><tt>name</tt></td><td>Destination name</td></tr>
<tr><td><tt>instance</tt></td><td>Instance name or NULL for none/primary</td></tr>
<tr><td><tt>num_dests</tt></td><td>Number of destinations</td></tr>
<tr><td><tt>dests</tt></td><td>Destinations</td></tr>
</tbody></table></div>
@@ -412,8 +420,8 @@ cupsGetDest(
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>name</tt></td><td>Name of destination</td></tr>
<tr><td><tt>instance</tt></td><td>Instance of destination</td></tr>
<tr><td><tt>name</tt></td><td>Destination name or NULL for the default destination</td></tr>
<tr><td><tt>instance</tt></td><td>Instance name or NULL</td></tr>
<tr><td><tt>num_dests</tt></td><td>Number of destinations</td></tr>
<tr><td><tt>dests</tt></td><td>Destinations</td></tr>
</tbody></table></div>
@@ -427,7 +435,10 @@ cupsGetDest(
Starting with CUPS 1.2, the returned list of destinations include the
printer-info, printer-is-accepting-jobs, printer-is-shared,
printer-make-and-model, printer-state, printer-state-change-time,
printer-state-reasons, and printer-type attributes as options.</p>
printer-state-reasons, and printer-type attributes as options.
Use the cupsFreeDests() function to free the destination list and
the cupsGetDest() function to find a particular destination.</p>
<h4>Syntax</h4>
<pre>
int
@@ -452,6 +463,9 @@ printer-info, printer-is-accepting-jobs, printer-is-shared,
printer-make-and-model, printer-state, printer-state-change-time,
printer-state-reasons, and printer-type attributes as options.
Use the cupsFreeDests() function to free the destination list and
the cupsGetDest() function to find a particular destination.
</p>
<h4>Syntax</h4>
<pre>
@@ -1192,9 +1206,10 @@ cupsSetUser(
<!-- NEW PAGE -->
<h3 class='title'><a name='cupsTempFd'>cupsTempFd()</a></h3>
<h4>Description</h4>
<p>Create a temporary file.
<p>Creates a temporary file.
The temporary filename is stored in the filename buffer.</p>
The temporary filename is returned in the filename buffer.
The temporary file is opened for reading and writing.</p>
<h4>Syntax</h4>
<pre>
int
@@ -1210,13 +1225,13 @@ cupsTempFd(
<tr><td><tt>len</tt></td><td>Size of buffer</td></tr>
</tbody></table></div>
<h4>Returns</h4>
<p>New file descriptor</p>
<p>New file descriptor or -1 on error</p>
<!-- NEW PAGE -->
<h3 class='title'><span class='info'>&nbsp;DEPRECATED&nbsp;</span><a name='cupsTempFile'>cupsTempFile()</a></h3>
<h4>Description</h4>
<p>Generate a temporary filename.
<p>Generates a temporary filename.
The temporary filename is stored in the filename buffer.
The temporary filename is returned in the filename buffer.
This function is deprecated - use cupsTempFd() or cupsTempFile2()
instead.
@@ -1236,13 +1251,14 @@ cupsTempFile(
<tr><td><tt>len</tt></td><td>Size of buffer</td></tr>
</tbody></table></div>
<h4>Returns</h4>
<p>Filename</p>
<p>Filename or NULL on error</p>
<!-- NEW PAGE -->
<h3 class='title'><span class='info'>&nbsp;CUPS 1.2&nbsp;</span><a name='cupsTempFile2'>cupsTempFile2()</a></h3>
<h4>Description</h4>
<p>Create a temporary CUPS file.
<p>Creates a temporary CUPS file.
The temporary filename is stored in the filename buffer.
The temporary filename is returned in the filename buffer.
The temporary file is opened for writing.
</p>
<h4>Syntax</h4>
+2 -1
Ver Arquivo
@@ -112,6 +112,7 @@ require CUPS 1.1 or higher.</p>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>HTTP_ENCODE_CHUNKED</tt> </td><td>Data is chunked</td></tr>
<tr><td><tt>HTTP_ENCODE_FIELDS</tt> </td><td>Sending HTTP fields</td></tr>
<tr><td><tt>HTTP_ENCODE_LENGTH</tt> </td><td>Data is sent with Content-Length</td></tr>
</tbody></table></div>
<!-- NEW PAGE -->
@@ -256,7 +257,7 @@ require CUPS 1.1 or higher.</p>
<tr><td><tt>IPP_DOCUMENT_ACCESS_ERROR</tt> </td><td>client-error-document-access-error</td></tr>
<tr><td><tt>IPP_DOCUMENT_FORMAT</tt> </td><td>client-error-document-format-not-supported</td></tr>
<tr><td><tt>IPP_DOCUMENT_FORMAT_ERROR</tt> </td><td>client-error-document-format-error</td></tr>
<tr><td><tt>IPP_ERROR_JOB_CANCELLED</tt> </td><td>server-error-job-canceled</td></tr>
<tr><td><tt>IPP_ERROR_JOB_CANCELED</tt> </td><td>server-error-job-canceled</td></tr>
<tr><td><tt>IPP_FORBIDDEN</tt> </td><td>client-error-forbidden</td></tr>
<tr><td><tt>IPP_GONE</tt> </td><td>client-error-gone</td></tr>
<tr><td><tt>IPP_IGNORED_ALL_NOTIFICATIONS</tt> </td><td>client-error-ignored-all-notifications</td></tr>
+2 -2
Ver Arquivo
@@ -162,7 +162,7 @@ HREF="#AllowUser"><CODE>AllowUser</CODE></A></P>
<PRE CLASS="command">
&lt;Class name&gt;
...
ErrorPolicy cancel-job
ErrorPolicy abort-job
&lt;/Class&gt;
</PRE>
@@ -181,7 +181,7 @@ error policy:</P>
<UL>
<LI><CODE>cancel-job</CODE> - Cancel the job and proceed
<LI><CODE>abort-job</CODE> - Abort the job and proceed
with the next job in the queue</LI>
<LI><CODE>retry-job</CODE> - Retry the job after waiting
+16 -4
Ver Arquivo
@@ -139,7 +139,10 @@ specifies a CIDR netmask, as shown in Table 1.</P>
<P>The <CODE>@LOCAL</CODE> name will allow access from all local
interfaces. The <CODE>@IF(name)</CODE> name will allow access
from the named interface.</P>
from the named interface. In both cases, CUPS only allows access
from the network that the interface(s) are configured for -
requests arriving on the interface from a foreign network will
<em>not</em> be accepted.</P>
<P>The <CODE>Allow</CODE> directive must appear inside a <A
HREF="#Location"><CODE>Location</CODE></A> or <A
@@ -353,7 +356,10 @@ or bit count.</P>
<P>The <CODE>@LOCAL</CODE> name will allow browse data from all
local interfaces. The <CODE>@IF(name)</CODE> name will allow
browse data from the named interface.</P>
browse data from the named interface. In both cases, CUPS only
allows data from the network that the interface(s) are configured
for - data arriving on the interface from a foreign network will
<em>not</em> be allowed.</P>
<H2 CLASS="title"><A NAME="BrowseDeny">BrowseDeny</A></H2>
@@ -388,7 +394,10 @@ or bit count.</P>
<P>The <CODE>@LOCAL</CODE> name will block browse data from all
local interfaces. The <CODE>@IF(name)</CODE> name will block
browse data from the named interface.</P>
browse data from the named interface. In both cases, CUPS only
blocks data from the network that the interface(s) are configured
for - data arriving on the interface from a foreign network will
<em>not</em> be blocked.</P>
<H2 CLASS="title"><A NAME="BrowseInterval">BrowseInterval</A></H2>
@@ -981,7 +990,10 @@ specifies a CIDR netmask, a shown in <A HREF="TABLE1">Table
<P>The <CODE>@LOCAL</CODE> name will deny access from all local
interfaces. The <CODE>@IF(name)</CODE> name will deny access from
the named interface.</P>
the named interface. In both cases, CUPS only denies access from
the network that the interface(s) are configured for - requests
arriving on the interface from a foreign network will
<em>not</em> be denied.</P>
<P>The <CODE>Deny</CODE> directive must appear inside a <A
HREF="#Location"><CODE>Location</CODE></A> or <A
+2 -2
Ver Arquivo
@@ -169,7 +169,7 @@ section.</P>
<PRE CLASS="command">
&lt;Printer name&gt;
...
ErrorPolicy cancel-job
ErrorPolicy abort-job
&lt;/Printer&gt;
</PRE>
@@ -188,7 +188,7 @@ error policy:</P>
<UL>
<LI><CODE>cancel-job</CODE> - Cancel the job and proceed
<LI><CODE>abort-job</CODE> - Abort the job and proceed
with the next job in the queue</LI>
<LI><CODE>retry-job</CODE> - Retry the job after waiting
+18 -2
Ver Arquivo
@@ -8,7 +8,7 @@
</head>
<body>
<!--
"$Id: spec-ppd.html 5496 2006-05-05 19:26:23Z mike $"
"$Id: spec-ppd.html 6025 2006-10-11 14:59:20Z mike $"
CUPS PPD extensions specification for the Common UNIX Printing System (CUPS).
@@ -106,6 +106,21 @@ default value is <code>true</code>.</p>
<p>Also see the related <tt>cupsFlipDuplex</tt> attribute.</p>
<h3>cupsEvenDuplex</h3>
<p class='summary'>*cupsEvenDuplex: boolean</p>
<p>This boolean attribute notifies the RIP filters that the
destination printer requires an even number of pages when 2-sided
printing is selected. The default value is <code>false</code>.</p>
<p>Example:</p>
<pre class='command'>
<em>*% Always send an even number of pages when duplexing</em>
*cupsEvenDuplex: true
</pre>
<h3>cupsFilter</h3>
<p class='summary'>*cupsFilter: "source/type cost program"</p>
@@ -143,7 +158,8 @@ page. The default value is <code>false</code>.</p>
*cupsFlipDuplex: true
</pre>
<p>Also see the related <tt>APDuplexRequiresFlippedMargins</tt> attribute.</p>
<p>Also see the related <tt>APDuplexRequiresFlippedMargins</tt>
attribute.</p>
<h3>cupsIPPReason</h3>

Alguns arquivos não foram exibidos porque demasiados arquivos foram alterados neste diff Mostrar Mais