Comparar commits

..

1 Commits

Autor SHA1 Mensagem Data
msweet fe03b591e0 Import cups.org releases
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/tags/release-1.1@4306 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-10 18:56:23 +00:00
102 arquivos alterados com 16024 adições e 17680 exclusões
+1 -100
Ver Arquivo
@@ -1,105 +1,6 @@
CHANGES.txt - 08/04/2000
CHANGES.txt - 07/10/2000
------------------------
CHANGES IN CUPS v1.1.2
- Makefile/configure fixes
- RPM spec file and EPM list file fixes
- The cupsTempFile() function now uses a different
algorithm for generating temp files and "reserves"
them to avoid possible security exploitation.
- Now use /dev/random (if available) to seed the random
number generator for certificates.
- The /var/spool/cups and /var/spool/cups/tmp directories
were incorrectly owned by root; they are now owned by
the filter user, typically "lp".
- The scheduler now resets the permissions on the spool
and temp directories as needed to match the filter
user.
- Now expose ppdCollect() as an externally callable
function.
- The image filters now support filtering from the
standard input.
- The imagetoraster filter now collects all printer
options and job patch files and applies them to the
page header as needed.
- Added format and banner options to LPD backend.
- The send-document operation didn't start a job
immediately when last-document was true.
- The set-job-attributes operation didn't correctly
replace the current job-hold-until value.
- Removed the option wrapper code from ppdEmit() and
friends since it caused problems with Ghostscript
and many PS printers.
- Was setting TZ environment variable twice for job
filters.
- Added syslog logging in cups-lpd to aide in
debugging problems.
- The HP-UX parallel port backend did not list the
available parallel ports on some systems (printf
calling problem...)
- The lp and lpr commands overrode user options if
-d/-P were specified after -o.
- The scheduler would crash with a */* filter.
- Added support for a "default" filter for unknown file
types. The example provided in the mime.types and
mime.convs file prints unknown files as if "-oraw" was
specified for the job. This functionality is disabled
by default.
- The "compatibility" mode fix for older backends did not
work for smbspool. Added a workaround for it.
- The HP-GL/2 filter didn't perform the right pen scaling
with some files and the "fitplot" option.
- New Software Performance Specification document that
describes the memory, disk, and CPU usage of all the
CUPS software.
CHANGES IN CUPS v1.1.1
- The pstoraster Makefile still referenced one of the
old PDF filter files.
- The filter Makefile used INSTALL_DATA instead of
INSTALL_LIB to install the CUPS image library.
- The administration CGI didn't work properly with
network devices.
- The BrowseACL variable was not updated after the
cupsd.conf file was loaded.
- The lpd mini-daemon didn't support printer instances.
- Now use a default umask of 077 for child processes.
- Now put temp files in /var/spool/cups/tmp for child
processes and the root user, unless TMPDIR or TempDir
is defined otherwise.
- cupsGetPPD() no longer uses easy-to-guess filenames.
- The CUPS-Delete-Class and CUPS-Delete-Printer
operations now save classes.conf file as needed.
- The lppasswd command wouldn't add a user.
- The ppdOpen() function could cause a segfault if a
0-length PPD file was read.
- The image filters were not handling images with
different X and Y resolutions properly.
- The imagetoraster filter defaulted to RGB output
instead of black output like pstoraster.
- The pstops filter didn't handle binary data properly.
- The pstops filter didn't handle copies properly for
PS files lacking DSC comments.
- The pstops filter now appends %%EOF to the end of
documents if they don't have it.
- The cupsGetPPD() function didn't work with remote
printers lacking the @server in the name.
- The configure script didn't work right when only
--prefix was specified.
- The ppdEmit() code now wraps all printer commands so
that buggy PostScript printers will still print a file
after receiving an option that isn't available.
- Fixed the DeskJet margin bug, and disabled 600dpi
color mode until it can be fixed.
- The cupsAddDest() function didn't sort instances
correctly in all cases.
- The time-at-xyz attributes now expand to the date and
time in banner files.
CHANGES IN CUPS v1.1
- Documentation updates.
+1 -3
Ver Arquivo
@@ -30,7 +30,6 @@ AR = @AR@
AWK = @AWK@
CC = @LIBTOOL@ @CC@
CHMOD = @CHMOD@
CHOWN = @CHOWN@
CP = @CP@
CXX = @LIBTOOL@ @CXX@
DSO = @DSO@
@@ -120,9 +119,8 @@ top_srcdir = @top_srcdir@
BINDIR = @bindir@
DATADIR = @CUPS_DATADIR@
DOCDIR = @CUPS_DOCROOT@
ESP_ROOT = @ESP_ROOT@
INCLUDEDIR = $(includedir)
INITDIR = @INITDIR@
INITDDIR = @INITDDIR@
LIBDIR = $(libdir)
LOCALEDIR = @CUPS_LOCALEDIR@
LOGDIR = @CUPS_LOGDIR@
+21 -9
Ver Arquivo
@@ -28,7 +28,7 @@ include Makedefs
# Directories to make...
#
DIRS = cups backend berkeley cgi-bin filter man pdftops pstoraster \
DIRS = cups backend berkeley cgi-bin doc filter man pdftops pstoraster \
scheduler systemv
#
@@ -64,20 +64,32 @@ install:
(cd conf; $(MAKE) $(MFLAGS) install)
echo Installing in data...
(cd data; $(MAKE) $(MFLAGS) install)
echo Installing in doc...
(cd doc; $(MAKE) $(MFLAGS) install)
echo Installing in fonts...
(cd fonts; $(MAKE) $(MFLAGS) install)
(cd fonts; $(MAKE) $(MFLAGS) install)
echo Installing in locale...
(cd locale; $(MAKE) $(MFLAGS) install)
echo Installing in ppd...
(cd ppd; $(MAKE) $(MFLAGS) install)
echo Installing in templates...
(cd templates; $(MAKE) $(MFLAGS) install)
echo Installing startup script...
if test "x$INITDIR" != "x"; then \
$(INSTALL_SCRIPT) cups.sh $prefix/$INITDIR/init.d/cups; \
$(CHMOD) ugo+rx $prefix/$INITDIR/init.d/cups; \
ln -s $INITDDIR/cups $prefix/$INITDIR/rc0.d/K00cups; \
ln -s $INITDDIR/cups $prefix/$INITDIR/rc2.d/S99cups; \
if test -d $(prefix)/sbin/init.d; then \
$(INSTALL_SCRIPT) cups.sh $(prefix)/sbin/init.d/cups; \
$(CHMOD) ugo+rx $(prefix)/sbin/init.d/cups; \
ln -s ../init.d/cups $(prefix)/sbin/rc0.d/K000cups; \
ln -s ../init.d/cups $(prefix)/sbin/rc2.d/S999cups; \
fi
if test -d $(prefix)/etc/rc.d/init.d; then \
$(INSTALL_SCRIPT) cups.sh $(prefix)/etc/rc.d/init.d/cups; \
$(CHMOD) ugo+rx $(prefix)/etc/rc.d/cups; \
ln -s ../init.d/cups $(prefix)/etc/rc.d/rc0.d/K00cups; \
ln -s ../init.d/cups $(prefix)/etc/rc.d/rc2.d/S99cups; \
fi
if test -d $(prefix)/etc/init.d; then \
$(INSTALL_SCRIPT) cups.sh $(prefix)/etc/init.d/cups; \
$(CHMOD) ugo+rx $(prefix)/etc/init.d/cups; \
ln -s ../init.d/cups $(prefix)/etc/rc0.d/K00cups; \
ln -s ../init.d/cups $(prefix)/etc/rc2.d/S99cups; \
fi
#
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
README - CUPS v1.1.2 - 08/04/2000
---------------------------------
README - CUPS v1.1 - 07/10/2000
-------------------------------
INTRODUCTION
+7 -101
Ver Arquivo
@@ -60,8 +60,7 @@ extern int rresvport(int *port); /* Hello? No prototype for this... */
static int lpd_command(int lpd_fd, char *format, ...);
static int lpd_queue(char *hostname, char *printer, char *filename,
char *user, char *title, int copies, int banner,
int format);
char *user, int copies);
/*
@@ -80,15 +79,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
hostname[1024], /* Hostname */
username[255], /* Username info (not used) */
resource[1024], /* Resource info (printer name) */
*options, /* Pointer to options */
name[255], /* Name of option */
value[255], /* Value of option */
*ptr, /* Pointer into name or value */
filename[1024]; /* File to print */
int port; /* Port number (not used) */
int status; /* Status of LPD job */
int banner; /* Print banner page? */
int format; /* Print format */
if (argc == 1)
@@ -149,83 +142,6 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
httpSeparate(argv[0], method, username, hostname, &port, resource);
/*
* See if there are any options...
*/
banner = 0;
format = 'l';
if ((options = strchr(resource, '?')) != NULL)
{
/*
* Yup, terminate the device name string and move to the first
* character of the options...
*/
*options++ = '\0';
/*
* Parse options...
*/
while (*options)
{
/*
* Get the name...
*/
for (ptr = name; *options && *options != '=';)
*ptr++ = *options++;
*ptr = '\0';
if (*options == '=')
{
/*
* Get the value...
*/
options ++;
for (ptr = value; *options && *options != '+';)
*ptr++ = *options++;
*ptr = '\0';
if (*options == '+')
options ++;
}
else
value[0] = '\0';
/*
* Process the option...
*/
if (strcasecmp(name, "banner") == 0)
{
/*
* Set the banner...
*/
banner = !value[0] ||
strcasecmp(value, "on") == 0 ||
strcasecmp(value, "yes") == 0 ||
strcasecmp(value, "true") == 0;
}
else if (strcasecmp(name, "format") == 0 && value[0])
{
/*
* Set output format...
*/
if (strchr("cdfglnoprtv", value[0]) != NULL)
format = value[0];
else
fprintf(stderr, "ERROR: Unknown format character \"%c\"\n", value[0]);
}
}
}
/*
* Queue the job...
*/
@@ -233,16 +149,14 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
if (argc > 6)
{
status = lpd_queue(hostname, resource + 1, filename,
argv[2] /* user */, argv[3] /* title */,
atoi(argv[4]) /* copies */, banner, format);
argv[2] /* user */, atoi(argv[4]) /* copies */);
if (!status)
fprintf(stderr, "PAGE: 1 %d\n", atoi(argv[4]));
}
else
status = lpd_queue(hostname, resource + 1, filename,
argv[2] /* user */, argv[3] /* title */, 1,
banner, format);
argv[2] /* user */, 1);
/*
* Remove the temporary file if necessary...
@@ -317,10 +231,7 @@ lpd_queue(char *hostname, /* I - Host to connect to */
char *printer, /* I - Printer/queue name */
char *filename, /* I - File to print */
char *user, /* I - Requesting user */
char *title, /* I - Job title */
int copies, /* I - Number of copies */
int banner, /* I - Print LPD banner? */
int format) /* I - Format specifier */
int copies) /* I - Number of copies */
{
FILE *fp; /* Job file */
char localhost[255]; /* Local host name */
@@ -443,18 +354,13 @@ lpd_queue(char *hostname, /* I - Host to connect to */
gethostname(localhost, sizeof(localhost));
localhost[31] = '\0'; /* RFC 1179, Section 7.2 - host name < 32 chars */
snprintf(control, sizeof(control), "H%s\nP%s\nJ%s\n", localhost, user, title);
snprintf(control, sizeof(control), "H%s\nP%s\n", localhost, user);
cptr = control + strlen(control);
if (banner)
{
snprintf(cptr, sizeof(control) - (cptr - control), "L%s\n", user);
cptr += strlen(cptr);
}
while (copies > 0)
{
snprintf(cptr, sizeof(control) - (cptr - control), "%cdfA%03d%s\n", format,
snprintf(cptr, sizeof(control) - (cptr - control), "ldfA%03d%s\n",
getpid() % 1000, localhost);
cptr += strlen(cptr);
copies --;
+1 -2
Ver Arquivo
@@ -497,8 +497,7 @@ list_devices(void)
{
sprintf(device, "/dev/c%dt%dd0_lp", i, j);
if (access(device, 0) == 0)
printf("direct parallel:%s \"Unknown\" \"Parallel Port #%d,%d\"\n",
device, i, j);
printf("direct parallel:%s \"Unknown\" \"Parallel Port #%d,%d\"\n", i, j);
}
/*
+6 -8
Ver Arquivo
@@ -160,10 +160,9 @@ main(int argc, /* I - Number of command-line arguments */
if ((dest = cupsGetDest(printer, instance, num_dests, dests)) != NULL)
{
for (j = 0; j < dest->num_options; j ++)
if (cupsGetOption(dest->options[j].name, num_options, options) == NULL)
num_options = cupsAddOption(dest->options[j].name,
dest->options[j].value,
num_options, &options);
num_options = cupsAddOption(dest->options[j].name,
dest->options[j].value,
num_options, &options);
}
break;
@@ -236,10 +235,9 @@ main(int argc, /* I - Number of command-line arguments */
printer = dests[j].name;
for (j = 0; j < dest->num_options; j ++)
if (cupsGetOption(dest->options[j].name, num_options, options) == NULL)
num_options = cupsAddOption(dest->options[j].name,
dest->options[j].value,
num_options, &options);
num_options = cupsAddOption(dest->options[j].name,
dest->options[j].value,
num_options, &options);
break;
}
}
+22 -26
Ver Arquivo
@@ -192,37 +192,33 @@ ippSetCGIVars(ipp_t *response, /* I - Response data to be copied... */
break;
case IPP_TAG_URI :
if (strchr(attr->values[i].string.text, ':') != NULL)
{
httpSeparate(attr->values[i].string.text, method, username,
hostname, &port, resource);
httpSeparate(attr->values[i].string.text, method, username,
hostname, &port, resource);
if (strcmp(method, "ipp") == 0 ||
strcmp(method, "http") == 0)
{
/*
* Map localhost access to localhost...
*/
if (strcmp(method, "ipp") == 0 ||
strcmp(method, "http") == 0)
{
/*
* Map localhost access to localhost...
*/
if (strcasecmp(hostname, server) == 0 &&
(strcmp(getenv("REMOTE_HOST"), "127.0.0.1") == 0 ||
strcmp(getenv("REMOTE_HOST"), "localhost") == 0))
strcpy(hostname, "localhost");
if (strcasecmp(hostname, server) == 0 &&
strcmp(getenv("REMOTE_ADDR"), "127.0.0.1") == 0)
strcpy(hostname, "localhost");
/*
* Rewrite URI with HTTP address...
*/
/*
* Rewrite URI with HTTP address...
*/
if (username[0])
snprintf(uri, sizeof(uri), "http://%s@%s:%d%s", username,
hostname, port, resource);
else
snprintf(uri, sizeof(uri), "http://%s:%d%s", hostname, port,
resource);
if (username[0])
snprintf(uri, sizeof(uri), "http://%s@%s:%d%s", username,
hostname, port, resource);
else
snprintf(uri, sizeof(uri), "http://%s:%d%s", hostname, port,
resource);
strcat(valptr, uri);
break;
}
strcat(valptr, uri);
break;
}
case IPP_TAG_STRING :
+2 -13
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: mime.convs 1270 2000-08-03 18:05:22Z mike $"
# "$Id: mime.convs 1019 2000-04-18 19:41:12Z mike $"
#
# MIME converts file for the Common UNIX Printing System (CUPS).
#
@@ -59,17 +59,6 @@ application/vnd.cups-form application/vnd.cups-postscript 50 formtops
image/* application/vnd.cups-raster 50 imagetoraster
application/vnd.cups-postscript application/vnd.cups-raster 50 pstoraster
########################################################################
#
# Raw filter...
#
# Uncomment the following filter and the application/octet-stream type
# in mime.types to allow printing of arbitrary files without the -oraw
# option.
#
#*/* application/vnd.cups-raw 0 -
#
# End of "$Id: mime.convs 1270 2000-08-03 18:05:22Z mike $".
# End of "$Id: mime.convs 1019 2000-04-18 19:41:12Z mike $".
#
+2 -13
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: mime.types 1270 2000-08-03 18:05:22Z mike $"
# "$Id: mime.types 1152 2000-06-22 18:25:29Z mike $"
#
# MIME types file for the Common UNIX Printing System (CUPS).
#
@@ -122,17 +122,6 @@ application/vnd.cups-postscript string(0,<1B>%-12345X)
application/vnd.cups-raster string(0,"RaSt") string(0,"tSaR")
application/vnd.cups-raw
########################################################################
#
# Raw print file support...
#
# Uncomment the following type and the application/octet-stream
# filter line in mime.convs to allow raw file printing without the
# -oraw option.
#
#application/octet-stream
#
# End of "$Id: mime.types 1270 2000-08-03 18:05:22Z mike $".
# End of "$Id: mime.types 1152 2000-06-22 18:25:29Z mike $".
#
+1 -1
Ver Arquivo
@@ -28,7 +28,7 @@
* Version of software...
*/
#define CUPS_SVERSION "CUPS v1.1.2"
#define CUPS_SVERSION "CUPS v1.1"
/*
* Where are files stored?
+6 -66
Ver Arquivo
@@ -121,7 +121,6 @@ AC_PROG_CPP
AC_PROG_RANLIB
AC_PATH_PROG(AR,ar)
AC_PATH_PROG(CHMOD,chmod)
AC_PATH_PROG(CHOWN,chown)
AC_PATH_PROG(CP,cp)
AC_PATH_PROG(MV,mv)
AC_PATH_PROG(NROFF,nroff)
@@ -329,12 +328,8 @@ if test "$prefix" = "NONE"; then
fi
dnl Fix "exec_prefix" variable if it hasn't been specified...
if test "$exec_prefix" = "NONE"; then
if test "$prefix" = "/"; then
exec_prefix="/usr"
else
exec_prefix="$prefix"
fi
if test "$exec_prefix" = "NONE" -a "$prefix" = "/"; then
exec_prefix="/usr"
fi
dnl Fix "sharedstatedir" variable if it hasn't been specified...
@@ -358,21 +353,13 @@ if test "$includedir" = "\${prefix}/include" -a "$prefix" = "/"; then
fi
dnl Fix "localstatedir" variable if it hasn't been specified...
if test "$localstatedir" = "\${prefix}/var"; then
if test "$prefix" = "/"; then
localstatedir="/var"
else
localstatedir="$prefix/var"
fi
if test "$localstatedir" = "\${prefix}/var" -a "$prefix" = "/"; then
localstatedir="/var"
fi
dnl Fix "sysconfdir" variable if it hasn't been specified...
if test "$sysconfdir" = "\${prefix}/etc"; then
if test "$prefix" = "/"; then
sysconfdir="/etc"
else
sysconfdir="$prefix/etc"
fi
if test "$sysconfdir" = "\${prefix}/etc" -a "$prefix" = "/"; then
sysconfdir="/etc"
fi
dnl Fix "libdir" variable for IRIX 6.x...
@@ -415,53 +402,6 @@ AC_SUBST(CAT1EXT)
AC_SUBST(CAT5EXT)
AC_SUBST(CAT8EXT)
dnl Setup init.d locations...
if test $prefix = "/"; then
case "$uname" in
FreeBSD* | NetBSD* | OpenBSD*)
# *BSD
INITDIR=""
INITDDIR=""
;;
Linux*)
# Linux seems to choose an init.d directory at random...
if test -d /sbin/init.d; then
# SuSE
INITDIR="/sbin/init.d"
INITDDIR=".."
else
if test -d /etc/rc.d; then
# RedHat
INITDIR="/etc/rc.d"
INITDDIR="../init.d"
else
# Others
INITDIR="/etc"
INITDDIR="../init.d"
fi
fi
;;
OSF1* | HP-UX*)
INITDIR="/sbin"
INITDDIR="../init.d"
;;
*)
INITDIR="/etc"
INITDDIR="../init.d"
;;
esac
else
INITDIR="/etc"
INITDDIR="../init.d"
fi
AC_SUBST(INITDIR)
AC_SUBST(INITDDIR)
dnl Setup default locations...
CUPS_SERVERROOT='${prefix}/etc/cups'
CUPS_LOGDIR='${prefix}/var/log/cups'
+4 -7
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: cups.list 1277 2000-08-04 14:53:49Z mike $"
# "$Id: cups.list 1202 2000-07-07 21:25:17Z mike $"
#
# ESP Package Manager (EPM) file list for the Common UNIX Printing
# System (CUPS).
@@ -28,7 +28,7 @@
%vendor Easy Software Products
%license LICENSE.txt
%readme README.txt
%version 1.1.2
%version 1.1
%incompat printpro
%system all
@@ -111,8 +111,7 @@ l 0555 root sys $LIBDIR/libcupsimage.so libcupsimage.so.2
# Directories
d 0755 root sys $LOGDIR -
d 0700 lp sys $REQUESTS -
d 1700 lp sys $REQUESTS/tmp -
d 0755 root sys $REQUESTS -
# Data files
f 0444 root sys $LOCALEDIR/C/cups_C locale/C/cups_C
@@ -390,8 +389,6 @@ f 0444 root sys $DOCDIR/sdd.html doc/sdd.html
f 0444 root sys $DOCDIR/sdd.pdf doc/sdd.pdf
f 0444 root sys $DOCDIR/spm.html doc/spm.html
f 0444 root sys $DOCDIR/spm.pdf doc/spm.pdf
f 0444 root sys $DOCDIR/sps.html doc/sps.html
f 0444 root sys $DOCDIR/sps.pdf doc/sps.pdf
f 0444 root sys $DOCDIR/ssr.html doc/ssr.html
f 0444 root sys $DOCDIR/ssr.pdf doc/ssr.pdf
f 0444 root sys $DOCDIR/sum.html doc/sum.html
@@ -505,5 +502,5 @@ f 0444 root sys $MANDIR/man5/printers.conf.5 man/printers.conf.man
i 0555 root sys cups cups.sh
#
# End of "$Id: cups.list 1277 2000-08-04 14:53:49Z mike $".
# End of "$Id: cups.list 1202 2000-07-07 21:25:17Z mike $".
#
+21 -61
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: cups.spec 1277 2000-08-04 14:53:49Z mike $"
# "$Id: cups.spec 1214 2000-07-10 20:58:19Z mike $"
#
# RPM "spec" file for the Common UNIX Printing System (CUPS).
#
@@ -26,11 +26,11 @@
Summary: Common Unix Printing System
Name: cups
Version: 1.1.2
Version: 1.1
Release: 0
Copyright: GPL
Group: System Environment/Daemons
Source: ftp://ftp.easysw.com/pub/cups/%version/cups-%version-source.tar.gz
Source: ftp://ftp.easysw.com/pub/cups/1.1/cups-1.1-source.tar.gz
Url: http://www.cups.org
Packager: Michael Sweet <mike@easysw.com>
Vendor: Easy Software Products
@@ -68,86 +68,46 @@ make
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
make prefix=$RPM_BUILD_ROOT \
make datadir=$RPM_BUILD_ROOT/usr/share \
exec_prefix=$RPM_BUILD_ROOT/usr \
BINDIR=$RPM_BUILD_ROOT/usr/bin \
DATADIR=$RPM_BUILD_ROOT/usr/share/cups \
DOCDIR=$RPM_BUILD_ROOT/usr/share/doc/cups \
INCLUDEDIR=$RPM_BUILD_ROOT/usr/include \
LIBDIR=$RPM_BUILD_ROOT/usr/lib \
LOCALEDIR=$RPM_BUILD_ROOT/usr/share/locale \
MANDIR=$RPM_BUILD_ROOT/usr/man \
PAMDIR=$RPM_BUILD_ROOT/etc/pam.d \
REQUESTS=$RPM_BUILD_ROOT/var/spool/cups \
SBINDIR=$RPM_BUILD_ROOT/usr/sbin \
SERVERBIN=$RPM_BUILD_ROOT/usr/lib/cups \
SERVERROOT=$RPM_BUILD_ROOT/etc/cups \
includedir=$RPM_BUILD_ROOT/usr/include \
infodir=$RPM_BUILD_ROOT/usr/info \
libdir=$RPM_BUILD_ROOT/usr/lib \
localestatedir=$RPM_BUILD_ROOT/var \
prefix=$RPM_BUILD_ROOT \
sharedstatedir=$RPM_BUILD_ROOT/usr/com \
sysconfdir=$RPM_BUILD_ROOT/etc \
install
%post
if test -x /sbin/chkconfig; then
/sbin/chkconfig --add cups
/sbin/chkconfig cups on
fi
install -m 755 -o root -g root cups.sh $RPM_BUILD_ROOT/etc/rc.d/init.d/cups
if test -f /sbin/init.d/cups; then
/sbin/init.d/cups start
fi
if test -f /etc/rc.d/init.d/cups; then
/etc/rc.d/init.d/cups start
fi
if test -f /etc/init.d/cups; then
/etc/init.d/cups start
fi
%post
/sbin/chkconfig --add cups
/sbin/chkconfig cups on
/etc/rc.d/init.d/cups start
%preun
if test -f /sbin/init.d/cups; then
/sbin/init.d/cups stop
fi
if test -f /etc/rc.d/init.d/cups; then
/etc/rc.d/init.d/cups stop
fi
if test -f /etc/init.d/cups; then
/etc/init.d/cups stop
fi
if test -x /sbin/chkconfig; then
/sbin/chkconfig --del cups
fi
/etc/rc.d/init.d/cups stop
/sbin/chkconfig --del cups
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
/etc/cups/certs
%config /etc/cups/classes.conf
%config /etc/cups/client.conf
%config /etc/cups/cupsd.conf
/etc/cups/interfaces
/etc/cups/mime.types
/etc/cups/mime.convs
/etc/cups/ppd
%config /etc/cups/printers.conf
/etc/pam.d/*
/etc/init.d/*
/etc/rc0.d/*
/etc/rc2.d/*
/etc/rc.d/*
/etc/*
/usr/bin/*
/usr/lib/*.so*
/usr/man/*
/usr/sbin/*
/usr/share/*
/usr/lib/cups/*
%attr(0700,lp,root) /var/spool/cups
%attr(1700,lp,root) /var/spool/cups/tmp
/sbin/init.d/*
/var/*
%files devel
/usr/include/cups/*
/usr/lib/*.a
#
# End of "$Id: cups.spec 1277 2000-08-04 14:53:49Z mike $".
# End of "$Id: cups.spec 1214 2000-07-10 20:58:19Z mike $".
#
+3 -2
Ver Arquivo
@@ -87,8 +87,9 @@ cupsAddDest(const char *name, /* I - Name of destination */
for (i = num_dests; i > 0; i --, dest ++)
if (strcasecmp(name, dest->name) < 0)
break;
else if (strcasecmp(name, dest->name) == 0 &&
instance != NULL && dest->instance != NULL &&
else if (instance == NULL && dest->instance != NULL)
break;
else if (instance != NULL && dest->instance != NULL &&
strcasecmp(instance, dest->instance) < 0)
break;
+88 -88
Ver Arquivo
@@ -25,10 +25,8 @@
*
* Contents:
*
* ppdCollect() - Collect all marked options that reside in the specified
* ppdEmit() - Emit code for marked options to a file.
* ppdEmitFd() - Emit code for marked options to a file.
* ppd_sort() - Sort options by ordering numbers...
* ppdEmit() - Emit code for marked options to a file.
* ppdEmitFd() - Emit code for marked options to a file.
*/
/*
@@ -51,88 +49,8 @@
*/
static int ppd_sort(ppd_choice_t **c1, ppd_choice_t **c2);
/*
* 'ppdCollect()' - Collect all marked options that reside in the specified
* section.
*/
int /* O - Number of options marked */
ppdCollect(ppd_file_t *ppd, /* I - PPD file data */
ppd_section_t section, /* I - Section to collect */
ppd_choice_t ***choices) /* O - Pointers to choices */
{
int i, j, k, m; /* Looping vars */
ppd_group_t *g, /* Current group */
*sg; /* Current sub-group */
ppd_option_t *o; /* Current option */
ppd_choice_t *c; /* Current choice */
int count; /* Number of choices collected */
ppd_choice_t **collect; /* Collected choices */
if (ppd == NULL)
return (0);
/*
* Allocate memory for up to 1000 selected choices...
*/
count = 0;
collect = calloc(sizeof(ppd_choice_t *), 1000);
/*
* Loop through all options and add choices as needed...
*/
for (i = ppd->num_groups, g = ppd->groups; i > 0; i --, g ++)
{
for (j = g->num_options, o = g->options; j > 0; j --, o ++)
if (o->section == section)
for (k = o->num_choices, c = o->choices; k > 0; k --, c ++)
if (c->marked && count < 1000)
{
collect[count] = c;
count ++;
}
for (j = g->num_subgroups, sg = g->subgroups; j > 0; j --, sg ++)
for (k = sg->num_options, o = sg->options; k > 0; k --, o ++)
if (o->section == section)
for (m = o->num_choices, c = o->choices; m > 0; m --, c ++)
if (c->marked && count < 1000)
{
collect[count] = c;
count ++;
}
}
/*
* If we have more than 1 marked choice, sort them...
*/
if (count > 1)
qsort(collect, count, sizeof(ppd_choice_t *),
(int (*)(const void *, const void *))ppd_sort);
/*
* Return the array and number of choices; if 0, free the array since
* it isn't needed.
*/
if (count > 0)
{
*choices = collect;
return (count);
}
else
{
*choices = NULL;
free(collect);
return (0);
}
}
static int ppd_collect(ppd_file_t *ppd, ppd_section_t section,
ppd_choice_t ***choices);
/*
@@ -150,7 +68,7 @@ ppdEmit(ppd_file_t *ppd, /* I - PPD file record */
ppd_size_t *size; /* Custom page size */
if ((count = ppdCollect(ppd, section, &choices)) == 0)
if ((count = ppd_collect(ppd, section, &choices)) == 0)
return (0);
for (i = 0; i < count; i ++)
@@ -237,7 +155,7 @@ ppdEmitFd(ppd_file_t *ppd, /* I - PPD file record */
char buf[1024]; /* Output buffer for feature */
if ((count = ppdCollect(ppd, section, &choices)) == 0)
if ((count = ppd_collect(ppd, section, &choices)) == 0)
return (0);
for (i = 0; i < count; i ++)
@@ -296,6 +214,88 @@ ppd_sort(ppd_choice_t **c1, /* I - First choice */
}
/*
* 'ppd_collect()' - Collect all marked options that reside in the specified
* section.
*/
static int /* O - Number of options marked */
ppd_collect(ppd_file_t *ppd, /* I - PPD file data */
ppd_section_t section, /* I - Section to collect */
ppd_choice_t ***choices) /* O - Pointers to choices */
{
int i, j, k, m; /* Looping vars */
ppd_group_t *g, /* Current group */
*sg; /* Current sub-group */
ppd_option_t *o; /* Current option */
ppd_choice_t *c; /* Current choice */
int count; /* Number of choices collected */
ppd_choice_t **collect; /* Collected choices */
if (ppd == NULL)
return (0);
/*
* Allocate memory for up to 1000 selected choices...
*/
count = 0;
collect = calloc(sizeof(ppd_choice_t *), 1000);
/*
* Loop through all options and add choices as needed...
*/
for (i = ppd->num_groups, g = ppd->groups; i > 0; i --, g ++)
{
for (j = g->num_options, o = g->options; j > 0; j --, o ++)
if (o->section == section)
for (k = o->num_choices, c = o->choices; k > 0; k --, c ++)
if (c->marked && count < 1000)
{
collect[count] = c;
count ++;
}
for (j = g->num_subgroups, sg = g->subgroups; j > 0; j --, sg ++)
for (k = sg->num_options, o = sg->options; k > 0; k --, o ++)
if (o->section == section)
for (m = o->num_choices, c = o->choices; m > 0; m --, c ++)
if (c->marked && count < 1000)
{
collect[count] = c;
count ++;
}
}
/*
* If we have more than 1 marked choice, sort them...
*/
if (count > 1)
qsort(collect, count, sizeof(ppd_choice_t *),
(int (*)(const void *, const void *))ppd_sort);
/*
* Return the array and number of choices; if 0, free the array since
* it isn't needed.
*/
if (count > 0)
{
*choices = collect;
return (count);
}
else
{
*choices = NULL;
free(collect);
return (0);
}
}
/*
* End of "$Id$".
*/
+2 -46
Ver Arquivo
@@ -1573,7 +1573,7 @@ ppd_read(FILE *fp, /* I - File to read from */
*textptr, /* Text pointer */
*strptr, /* Pointer into string */
*lineptr, /* Current position in line buffer */
line[65536]; /* Line buffer (64k) */
line[262144]; /* Line buffer (256k) */
/*
@@ -1588,8 +1588,6 @@ ppd_read(FILE *fp, /* I - File to read from */
* Now loop until we have a valid line...
*/
*string = NULL;
do
{
/*
@@ -1623,12 +1621,10 @@ ppd_read(FILE *fp, /* I - File to read from */
ungetc(ch, fp);
}
ch = '\n';
*lineptr++ = '\n';
if (!endquote) /* Continue for multi-line text */
break;
*lineptr++ = '\n';
}
else
{
@@ -1643,46 +1639,6 @@ ppd_read(FILE *fp, /* I - File to read from */
}
}
if (endquote)
{
/*
* Didn't finish this quoted string...
*/
while ((ch = getc(fp)) != EOF)
if (ch == '\"')
break;
}
if (ch != '\n')
{
/*
* Didn't finish this line...
*/
while ((ch = getc(fp)) != EOF)
if (ch == '\r' || ch == '\n')
{
/*
* Line feed or carriage return...
*/
if (ch == '\r')
{
/*
* Check for a trailing line feed...
*/
if ((ch = getc(fp)) == EOF)
break;
if (ch != 0x0a)
ungetc(ch, fp);
}
break;
}
}
if (lineptr > line && lineptr[-1] == '\n')
lineptr --;
-2
Ver Arquivo
@@ -207,8 +207,6 @@ typedef struct /**** Files ****/
*/
extern void ppdClose(ppd_file_t *ppd);
extern int ppdCollect(ppd_file_t *ppd, ppd_section_t section,
ppd_choice_t ***choices);
extern int ppdConflicts(ppd_file_t *ppd);
extern int ppdEmit(ppd_file_t *ppd, FILE *fp,
ppd_section_t section);
+25 -171
Ver Arquivo
@@ -29,10 +29,8 @@
* cupsGetDefault() - Get the default printer or class.
* cupsGetPPD() - Get the PPD file for a printer.
* cupsGetPrinters() - Get a list of printers.
* cupsLastError() - Return the last IPP error that occurred.
* cupsPrintFile() - Print a file to a printer or class.
* cupsPrintFiles() - Print one or more files to a printer or class.
* cupsTempFile() - Generate a temporary filename.
* cups_connect() - Connect to the specified host...
* cups_local_auth() - Get the local authorization certificate if
* available/applicable...
@@ -50,7 +48,6 @@
#include <stdlib.h>
#include <ctype.h>
#include <errno.h>
#include <fcntl.h>
#include <sys/stat.h>
#if defined(WIN32) || defined(__EMX__)
# include <io.h>
@@ -179,15 +176,6 @@ cupsDoFileRequest(http_t *http, /* I - HTTP connection to server */
encode[255]; /* Encoded username:password */
if (http == NULL || request == NULL || resource == NULL)
{
if (request != NULL)
ippDelete(request);
last_error = IPP_INTERNAL_ERROR;
return (NULL);
}
DEBUG_printf(("cupsDoFileRequest(%08x, %08s, \'%s\', \'%s\')\n",
http, request, resource, filename ? filename : "(null)"));
@@ -444,12 +432,6 @@ cupsGetClasses(char ***classes) /* O - Classes */
char **temp; /* Temporary pointer */
if (classes == NULL)
{
last_error = IPP_INTERNAL_ERROR;
return (0);
}
/*
* Try to connect to the server...
*/
@@ -668,19 +650,13 @@ cupsGetDefault(void)
const char * /* O - Filename for PPD file */
cupsGetPPD(const char *name) /* I - Printer name */
{
ipp_t *request, /* IPP request */
*response; /* IPP response */
ipp_attribute_t *attr; /* Current attribute */
cups_lang_t *language; /* Local language */
FILE *fp; /* PPD file */
int bytes; /* Number of bytes read */
char buffer[8192]; /* Buffer for file */
char printer[HTTP_MAX_URI], /* Printer name */
method[HTTP_MAX_URI], /* Method/scheme name */
username[HTTP_MAX_URI], /* Username:password */
hostname[HTTP_MAX_URI], /* Hostname */
resource[HTTP_MAX_URI]; /* Resource name */
int port; /* Port number */
char *tempdir; /* Temporary file directory */
const char *password; /* Password string */
char realm[HTTP_MAX_VALUE], /* realm="xyz" string */
nonce[HTTP_MAX_VALUE], /* nonce="xyz" string */
@@ -690,12 +666,6 @@ cupsGetPPD(const char *name) /* I - Printer name */
static char filename[HTTP_MAX_URI]; /* Local filename */
if (name == NULL)
{
last_error = IPP_INTERNAL_ERROR;
return (NULL);
}
/*
* See if we can connect to the server...
*/
@@ -706,89 +676,20 @@ cupsGetPPD(const char *name) /* I - Printer name */
return (NULL);
}
if (strchr(name, '@') == NULL)
{
/*
* Build an IPP_GET_PRINTER_ATTRIBUTES request, which requires the following
* attributes:
*
* attributes-charset
* attributes-natural-language
* printer-uri
*/
request = ippNew();
request->request.op.operation_id = IPP_GET_PRINTER_ATTRIBUTES;
request->request.op.request_id = 1;
language = cupsLangDefault();
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
snprintf(buffer, sizeof(buffer), "ipp://localhost/printers/%s", name);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI,
"printer-uri", NULL, buffer);
/*
* Do the request and get back a response...
*/
if ((response = cupsDoRequest(cups_server, request, "/")) != NULL)
{
last_error = response->request.status.status_code;
if ((attr = ippFindAttribute(response, "printer-uri-supported",
IPP_TAG_URI)) != NULL)
{
/*
* Get the actual server and printer names...
*/
httpSeparate(attr->values[0].string.text, method, username, hostname,
&port, resource);
strcpy(printer, strrchr(resource, '/') + 1);
/*
* Remap local hostname to localhost...
*/
gethostname(buffer, sizeof(buffer));
if (strcasecmp(buffer, hostname) == 0)
strcpy(hostname, "localhost");
}
ippDelete(response);
}
cupsLangFree(language);
/*
* Reconnect to the correct server as needed...
*/
if (strcasecmp(cups_server->hostname, hostname) != 0)
{
httpClose(cups_server);
if ((cups_server = httpConnect(hostname, ippPort())) == NULL)
{
last_error = IPP_SERVICE_UNAVAILABLE;
return (NULL);
}
}
}
/*
* Get a temp file...
* Then check for the cache file...
*/
cupsTempFile(filename, sizeof(filename));
#if defined(WIN32) || defined(__EMX__)
tempdir = "C:/WINDOWS/TEMP";
snprintf(filename, sizeof(filename), "%s/%s.ppd", tempdir, printer);
#else
if ((tempdir = getenv("TMPDIR")) == NULL)
tempdir = "/tmp";
snprintf(filename, sizeof(filename), "%s/%d.%s.ppd", tempdir, getuid(), printer);
#endif /* WIN32 || __EMX__ */
/*
* And send a request to the HTTP server...
@@ -887,7 +788,6 @@ cupsGetPPD(const char *name) /* I - Printer name */
* Can't open file; close the server connection and return NULL...
*/
httpFlush(cups_server);
httpClose(cups_server);
cups_server = NULL;
return (NULL);
@@ -917,12 +817,6 @@ cupsGetPrinters(char ***printers) /* O - Printers */
char **temp; /* Temporary pointer */
if (printers == NULL)
{
last_error = IPP_INTERNAL_ERROR;
return (0);
}
/*
* Try to connect to the server...
*/
@@ -1359,9 +1253,7 @@ char * /* O - Filename */
cupsTempFile(char *filename, /* I - Pointer to buffer */
int len) /* I - Size of buffer */
{
int fd; /* File descriptor for temp file */
char *tmpdir; /* TMPDIR environment var */
struct timeval curtime; /* Current time */
static char buf[1024] = ""; /* Buffer if you pass in NULL and 0 */
@@ -1380,64 +1272,26 @@ cupsTempFile(char *filename, /* I - Pointer to buffer */
*/
if ((tmpdir = getenv("TMPDIR")) == NULL)
{
#ifdef WIN32
tmpdir = "C:/WINDOWS/TEMP";
#else
/*
* Put root temp files in restricted temp directory...
*/
tmpdir = "/var/tmp";
if (getuid() == 0)
tmpdir = CUPS_REQUESTS "/tmp";
else
tmpdir = "/var/tmp";
#endif /* WIN32 */
}
/*
* Make the temporary name using the specified directory...
*/
do
if ((int)(strlen(tmpdir) + 8) > len)
{
/*
* Get the current time of day...
* The specified directory exceeds the size of the buffer; default it...
*/
gettimeofday(&curtime, NULL);
/*
* Format a string using the hex time values...
*/
snprintf(filename, len, "%s/%08x%05x", tmpdir,
curtime.tv_sec, curtime.tv_usec);
/*
* Open the file in "exclusive" mode, making sure that we don't
* stomp on an existing file or someone's symlink crack...
*/
#ifdef O_NOFOLLOW
fd = open(filename, O_WRONLY | O_CREAT | O_EXCL | O_NOFOLLOW, 0600);
#else
fd = open(filename, O_WRONLY | O_CREAT | O_EXCL, 0600);
#endif /* O_NOFOLLOW */
strcpy(buf, "/var/tmp/XXXXXX");
return (mktemp(buf));
}
while (fd < 0);
else
{
/*
* Make the temporary name using the specified directory...
*/
/*
* Close the temp file - it'll be reopened later as needed...
*/
close(fd);
/*
* Return the temp filename...
*/
return (filename);
sprintf(filename, "%s/XXXXXX", tmpdir);
return (mktemp(filename));
}
}
+2 -2
Ver Arquivo
@@ -465,7 +465,7 @@ gsave
pageWidth 36 mul % Center of page
pageWidth 14 mul % Bottom of page
2 copy moveto % Position text
(Printed Using CUPS v1.1.x) CENTER % Show text centered
(Printed Using CUPS v1.1) CENTER % Show text centered
pageWidth 3 mul sub % Move down...
2 copy moveto % Position text
@@ -500,6 +500,6 @@ gsave
grestore
showpage
%
% End of "$Id: testprint.ps 1260 2000-08-01 17:52:30Z mike $".
% End of "$Id: testprint.ps 985 2000-03-13 18:55:00Z mike $".
%
%%EOF
+9 -2
Ver Arquivo
@@ -47,8 +47,7 @@ include ../Makedefs
#
DOCUMENTS = cmp.shtml idd.shtml ipp.shtml sam.shtml sdd.shtml \
spm.shtml sps.shtml ssr.shtml stp.shtml sum.shtml \
svd.shtml
spm.shtml ssr.shtml stp.shtml sum.shtml svd.shtml
DOCIMAGES = images/cups-block-diagram.gif images/cups-large.gif \
images/cups-medium.gif images/cups-small.gif
WEBPAGES = cups.css cupsdoc.css index.html documentation.html
@@ -102,6 +101,14 @@ all: $(DOCUMENTS:.shtml=.pdf) $(DOCUMENTS:.shtml=.html) overview.pdf
ps: $(DOCUMENTS:.shtml=.ps) overview.ps
#
# Make manuals for printing...
#
print: sam-7x8.pdf spm-7x8.pdf sum-7x8.pdf \
sam-7x8.ps spm-7x8.ps sum-7x8.ps
#
# Remove all generated files...
#
+212 -210
Ver Arquivo
@@ -29,225 +29,225 @@ Copyright 1997-2000, All Rights Reserved<BR>
<HR>
<H1 ALIGN="CENTER"><A NAME="CONTENTS">Table of Contents</A></H1>
<BR>
<BR><B><A HREF="#1">1 Scope</A></B>
<BR><B><A HREF="#1">1 Scope</A></B>
<UL>
<LI><A HREF="#1_1">1.1 Identification</A></LI>
<LI><A HREF="#1_2">1.2 System Overview</A></LI>
<LI><A HREF="#1_3">1.3 Document Overview</A></LI>
<LI><A HREF="#1_1">1.1 Identification</A></LI>
<LI><A HREF="#1_2">1.2 System Overview</A></LI>
<LI><A HREF="#1_3">1.3 Document Overview</A></LI>
</UL>
<B><A HREF="#2">2 References</A></B>
<B><A HREF="#2">2 References</A></B>
<UL>
<LI><A HREF="#2_1">2.1 CUPS Documentation</A></LI>
<LI><A HREF="#2_2">2.2 Other Documents</A></LI>
<LI><A HREF="#2_1">2.1 CUPS Documentation</A></LI>
<LI><A HREF="#2_2">2.2 Other Documents</A></LI>
</UL>
<B><A HREF="#3">3 File Management</A></B>
<B><A HREF="#3">3 File Management</A></B>
<UL>
<LI><A HREF="#3_1">3.1 Directory Structure</A></LI>
<LI><A HREF="#3_2">3.2 Source Files</A></LI>
<LI><A HREF="#3_3">3.3 Configuration Management</A></LI>
<LI><A HREF="#3_1">3.1 Directory Structure</A></LI>
<LI><A HREF="#3_2">3.2 Source Files</A></LI>
<LI><A HREF="#3_3">3.3 Configuration Management</A></LI>
</UL>
<B><A HREF="#4">4 Trouble Report Processing</A></B>
<B><A HREF="#4">4 Trouble Report Processing</A></B>
<UL>
<LI><A HREF="#4_1">4.1 Classification</A></LI>
<LI><A HREF="#4_2">4.2 Identification</A></LI>
<LI><A HREF="#4_3">4.3 Correction</A></LI>
<LI><A HREF="#4_4">4.4 Notification</A></LI>
<LI><A HREF="#4_1">4.1 Classification</A></LI>
<LI><A HREF="#4_2">4.2 Identification</A></LI>
<LI><A HREF="#4_3">4.3 Correction</A></LI>
<LI><A HREF="#4_4">4.4 Notification</A></LI>
</UL>
<B><A HREF="#5">5 Software Releases</A></B>
<B><A HREF="#5">5 Software Releases</A></B>
<UL>
<LI><A HREF="#5_1">5.1 Version Numbering</A></LI>
<LI><A HREF="#5_2">5.2 Generation</A></LI>
<LI><A HREF="#5_3">5.3 Testing</A></LI>
<LI><A HREF="#5_4">5.4 Release</A></LI>
<LI><A HREF="#5_1">5.1 Version Numbering</A></LI>
<LI><A HREF="#5_2">5.2 Generation</A></LI>
<LI><A HREF="#5_3">5.3 Testing</A></LI>
<LI><A HREF="#5_4">5.4 Release</A></LI>
</UL>
<B><A HREF="#6">A Glossary</A></B>
<B><A HREF="#6">A Glossary</A></B>
<UL>
<LI><A HREF="#6_1">A.1 Terms</A></LI>
<LI><A HREF="#6_2">A.2 Acronyms</A></LI>
<LI><A HREF="#6_1">A.1 Terms</A></LI>
<LI><A HREF="#6_2">A.2 Acronyms</A></LI>
</UL>
<B><A HREF="#7">B Coding Requirements</A></B>
<B><A HREF="#7">B Coding Requirements</A></B>
<UL>
<LI><A HREF="#7_1">B.1 Source Files</A></LI>
<LI><A HREF="#7_1">B.1 Source Files</A></LI>
<UL>
<LI><A HREF="#7_1_1">B.1.1 Naming</A></LI>
<LI><A HREF="#7_1_2">B.1.2 Documentation</A></LI>
<LI><A HREF="#7_1_1">B.1.1 Naming</A></LI>
<LI><A HREF="#7_1_2">B.1.2 Documentation</A></LI>
</UL>
<LI><A HREF="#7_2">B.2 Functions</A></LI>
<LI><A HREF="#7_2">B.2 Functions</A></LI>
<UL>
<LI><A HREF="#7_2_1">B.2.1 Naming</A></LI>
<LI><A HREF="#7_2_2">B.2.2 Documentation</A></LI>
<LI><A HREF="#7_2_1">B.2.1 Naming</A></LI>
<LI><A HREF="#7_2_2">B.2.2 Documentation</A></LI>
</UL>
<LI><A HREF="#7_3">B.3 Methods</A></LI>
<LI><A HREF="#7_3">B.3 Methods</A></LI>
<UL>
<LI><A HREF="#7_3_1">B.3.1 Naming</A></LI>
<LI><A HREF="#7_3_2">B.3.2 Documentation</A></LI>
<LI><A HREF="#7_3_1">B.3.1 Naming</A></LI>
<LI><A HREF="#7_3_2">B.3.2 Documentation</A></LI>
</UL>
<LI><A HREF="#7_4">B.4 Variables</A></LI>
<LI><A HREF="#7_4">B.4 Variables</A></LI>
<UL>
<LI><A HREF="#7_4_1">B.4.1 Naming</A></LI>
<LI><A HREF="#7_4_2">B.4.2 Documentation</A></LI>
<LI><A HREF="#7_4_1">B.4.1 Naming</A></LI>
<LI><A HREF="#7_4_2">B.4.2 Documentation</A></LI>
</UL>
<LI><A HREF="#7_5">B.5 Types</A></LI>
<LI><A HREF="#7_5">B.5 Types</A></LI>
<UL>
<LI><A HREF="#7_5_1">B.5.1 Naming</A></LI>
<LI><A HREF="#7_5_2">B.5.2 Documentation</A></LI>
<LI><A HREF="#7_5_1">B.5.1 Naming</A></LI>
<LI><A HREF="#7_5_2">B.5.2 Documentation</A></LI>
</UL>
<LI><A HREF="#7_6">B.6 Structures</A></LI>
<LI><A HREF="#7_6">B.6 Structures</A></LI>
<UL>
<LI><A HREF="#7_6_1">B.6.1 Naming</A></LI>
<LI><A HREF="#7_6_2">B.6.2 Documentation</A></LI>
<LI><A HREF="#7_6_1">B.6.1 Naming</A></LI>
<LI><A HREF="#7_6_2">B.6.2 Documentation</A></LI>
</UL>
<LI><A HREF="#7_7">B.7 Classes</A></LI>
<LI><A HREF="#7_7">B.7 Classes</A></LI>
<UL>
<LI><A HREF="#7_7_1">B.7.1 Naming</A></LI>
<LI><A HREF="#7_7_2">B.7.2 Documentation</A></LI>
<LI><A HREF="#7_7_1">B.7.1 Naming</A></LI>
<LI><A HREF="#7_7_2">B.7.2 Documentation</A></LI>
</UL>
<LI><A HREF="#7_8">B.8 Constants</A></LI>
<LI><A HREF="#7_8">B.8 Constants</A></LI>
<UL>
<LI><A HREF="#7_8_1">B.8.1 Naming</A></LI>
<LI><A HREF="#7_8_2">B.8.2 Documentation</A></LI>
<LI><A HREF="#7_8_1">B.8.1 Naming</A></LI>
<LI><A HREF="#7_8_2">B.8.2 Documentation</A></LI>
</UL>
<LI><A HREF="#7_9">B.9 Code</A></LI>
<LI><A HREF="#7_9">B.9 Code</A></LI>
<UL>
<LI><A HREF="#7_9_1">B.9.1 Documentation</A></LI>
<LI><A HREF="#7_9_2">B.9.2 Style</A></LI>
<LI><A HREF="#7_9_1">B.9.1 Documentation</A></LI>
<LI><A HREF="#7_9_2">B.9.2 Style</A></LI>
</UL>
</UL>
<B><A HREF="#8">C Software Trouble Report Form</A></B><HR>
<H1><A NAME="1">1 Scope</A></H1>
<H2><A NAME="1_1">1.1 Identification</A></H2>
<B><A HREF="#8">C Software Trouble Report Form</A></B><HR>
<H1><A NAME="1">1 Scope</A></H1>
<H2><A NAME="1_1">1.1 Identification</A></H2>
This configuration management plan document provides the guidelines
for development and maintenance of the Common UNIX Printing System
(&quot;CUPS&quot;) Version 1.1 software.
<H2><A NAME="1_2">1.2 System Overview</A></H2>
<P>CUPS provides a portable printing layer for UNIX&reg;-based operating
<H2><A NAME="1_2">1.2 System Overview</A></H2>
<P> CUPS provides a portable printing layer for UNIX&reg;-based operating
systems. It has been developed by <A HREF="http://www.easysw.com">Easy
Software Products</A> to promote a standard printing solution for all
UNIX vendors and users. CUPS provides the System V and Berkeley
command-line interfaces. </P>
<P>CUPS uses the Internet Printing Protocol (&quot;IPP&quot;) as the basis for
<P> CUPS uses the Internet Printing Protocol (&quot;IPP&quot;) as the basis for
managing print jobs and queues. The Line Printer Daemon (&quot;LPD&quot;) Server
Message Block (&quot;SMB&quot;), and AppSocket (a.k.a. JetDirect) protocols are
also supported with reduced functionality. CUPS adds network printer
browsing and PostScript Printer Description (&quot;PPD&quot;) based printing
options to support real-world printing under UNIX. </P>
<P>CUPS also includes a customized version of GNU Ghostscript
<P> CUPS also includes a customized version of GNU Ghostscript
(currently based off GNU Ghostscript 5.50) and an image file RIP that
are used to support non-PostScript printers. Sample drivers for HP and
EPSON printers are included that use these filters. </P>
<H2><A NAME="1_3">1.3 Document Overview</A></H2>
<H2><A NAME="1_3">1.3 Document Overview</A></H2>
This configuration management document is organized into the following
sections:
<UL>
<LI>1 - Scope</LI>
<LI>2 - References</LI>
<LI>3 - File Management</LI>
<LI>4 - Trouble Report Processing</LI>
<LI>5 - Software Releases</LI>
<LI>A - Glossary</LI>
<LI>B - Coding Requirements</LI>
<LI> 1 - Scope</LI>
<LI> 2 - References</LI>
<LI> 3 - File Management</LI>
<LI> 4 - Trouble Report Processing</LI>
<LI> 5 - Software Releases</LI>
<LI> A - Glossary</LI>
<LI> B - Coding Requirements</LI>
</UL>
<H1><A NAME="2">2 References</A></H1>
<H2><A NAME="2_1">2.1 CUPS Documentation</A></H2>
<P>The following CUPS documentation is referenced by this document: </P>
<H1><A NAME="2">2 References</A></H1>
<H2><A NAME="2_1">2.1 CUPS Documentation</A></H2>
<P> The following CUPS documentation is referenced by this document: </P>
<UL>
<LI>CUPS-CMP-1.1: CUPS Configuration Management Plan </LI>
<LI>CUPS-IDD-1.1: CUPS System Interface Design Description </LI>
<LI>CUPS-IPP-1.1: CUPS Implmentation of IPP </LI>
<LI>CUPS-SAM-1.1.x: CUPS Software Administrators Manual </LI>
<LI>CUPS-SDD-1.1: CUPS Software Design Description </LI>
<LI>CUPS-SPM-1.1.x: CUPS Software Programming Manual </LI>
<LI>CUPS-SSR-1.1: CUPS Software Security Report </LI>
<LI>CUPS-STP-1.1: CUPS Software Test Plan </LI>
<LI>CUPS-SUM-1.1.x: CUPS Software Users Manual </LI>
<LI>CUPS-SVD-1.1: CUPS Software Version Description </LI>
<LI> CUPS-CMP-1.1: CUPS Configuration Management Plan </LI>
<LI> CUPS-IDD-1.1: CUPS System Interface Design Description </LI>
<LI> CUPS-IPP-1.1: CUPS Implmentation of IPP </LI>
<LI> CUPS-SAM-1.1.x: CUPS Software Administrators Manual </LI>
<LI> CUPS-SDD-1.1: CUPS Software Design Description </LI>
<LI> CUPS-SPM-1.1.x: CUPS Software Programming Manual </LI>
<LI> CUPS-SSR-1.1: CUPS Software Security Report </LI>
<LI> CUPS-STP-1.1: CUPS Software Test Plan </LI>
<LI> CUPS-SUM-1.1.x: CUPS Software Users Manual </LI>
<LI> CUPS-SVD-1.1.x: CUPS Software Version Description </LI>
</UL>
<H2><A NAME="2_2">2.2 Other Documents</A></H2>
<P>The following non-CUPS documents are referenced by this document: </P>
<H2><A NAME="2_2">2.2 Other Documents</A></H2>
<P> The following non-CUPS documents are referenced by this document: </P>
<UL>
<LI><A HREF="http://partners.adobe.com/asn/developer/PDFS/TN/5003.PPD_Spec_v4.3.pdf">
Adobe PostScript Printer Description File Format Specification,
Adobe PostScript Printer Description File Format Specification,
Version 4.3.</A></LI>
<LI><A HREF="http://partners.adobe.com/asn/developer/PDFS/TN/PLRM.pdf">
Adobe PostScript Language Reference, Third Edition.</A></LI>
<LI>IPP: Job and Printer Set Operations </LI>
<LI>IPP/1.1: Encoding and Transport </LI>
<LI>IPP/1.1: Implementers Guide </LI>
<LI>IPP/1.1: Model and Semantics </LI>
<LI><A HREF="http://www.ietf.org/rfc/rfc1179.txt">RFC 1179, Line
Adobe PostScript Language Reference, Third Edition.</A></LI>
<LI> IPP: Job and Printer Set Operations </LI>
<LI> IPP/1.1: Encoding and Transport </LI>
<LI> IPP/1.1: Implementers Guide </LI>
<LI> IPP/1.1: Model and Semantics </LI>
<LI><A HREF="http://www.ietf.org/rfc/rfc1179.txt"> RFC 1179, Line
Printer Daemon Protocol</A></LI>
<LI><A HREF="http://www.ietf.org/rfc/rfc2567.txt">RFC 2567, Design
<LI><A HREF="http://www.ietf.org/rfc/rfc2567.txt"> RFC 2567, Design
Goals for an Internet Printing Protocol</A></LI>
<LI><A HREF="http://www.ietf.org/rfc/rfc2568.txt">RFC 2568, Rationale
<LI><A HREF="http://www.ietf.org/rfc/rfc2568.txt"> RFC 2568, Rationale
for the Structure of the Model and Protocol</A> for the Internet
Printing Protocol</LI>
<LI><A HREF="http://www.ietf.org/rfc/rfc2569.txt">RFC 2569, Mapping
<LI><A HREF="http://www.ietf.org/rfc/rfc2569.txt"> RFC 2569, Mapping
between LPD and IPP Protocols</A></LI>
<LI><A HREF="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616, Hypertext
<LI><A HREF="http://www.ietf.org/rfc/rfc2616.txt"> RFC 2616, Hypertext
Transfer Protocol -- HTTP/1.1</A></LI>
<LI><A HREF="http://www.ietf.org/rfc/rfc2617.txt">RFC 2617, HTTP
<LI><A HREF="http://www.ietf.org/rfc/rfc2617.txt"> RFC 2617, HTTP
Authentication: Basic and Digest Access</A> Authentication </LI>
</UL>
<H1><A NAME="3">3 File Management</A></H1>
<H2><A NAME="3_1">3.1 Directory Structure</A></H2>
<H1><A NAME="3">3 File Management</A></H1>
<H2><A NAME="3_1">3.1 Directory Structure</A></H2>
Each source file shall be placed a sub-directory corresponding to the
software sub-system it belongs to (&quot;scheduler&quot;, &quot;cups&quot;, etc.) To remain
compatible with older UNIX filesystems, directory names shall not
exceed 16 characters in length.
<H2><A NAME="3_2">3.2 Source Files</A></H2>
<H2><A NAME="3_2">3.2 Source Files</A></H2>
Source files shall be documented and formatted as described in
Appendix B, Coding Requirements.
<H2><A NAME="3_3">3.3 Configuration Management</A></H2>
<H2><A NAME="3_3">3.3 Configuration Management</A></H2>
Source files shall be placed under the control of the Concurrent
Versions System (&quot;CVS&quot;) software. Source files shall be &quot;checked in&quot;
with each change so that modifications can be tracked.
<P>Documentation on the CVS software is included with the whitepaper,
<P> Documentation on the CVS software is included with the whitepaper,
&quot;CVS II: Parallelizing Software Development&quot;. </P>
<H1><A NAME="4">4 Trouble Report Processing</A></H1>
<H1><A NAME="4">4 Trouble Report Processing</A></H1>
A Software Trouble Report (&quot;STR&quot;) shall be submitted every time a user
or vendor experiences a problem with the CUPS software. Trouble reports
are maintained in a database with one of the following states:
<OL>
<LI>STR is closed with complete resolution</LI>
<LI>STR is closed without resolution</LI>
<LI>STR is active</LI>
<LI>STR is pending (new STR or additional information available)</LI>
<LI> STR is closed with complete resolution</LI>
<LI> STR is closed without resolution</LI>
<LI> STR is active</LI>
<LI> STR is pending (new STR or additional information available)</LI>
</OL>
Trouble reports shall be processed using the following steps.
<H2><A NAME="4_1">4.1 Classification</A></H2>
<H2><A NAME="4_1">4.1 Classification</A></H2>
When a trouble report is received it must be classified at one of the
following levels:
<OL>
<LI>Request for enhancement</LI>
<LI>Documentation error</LI>
<LI>Unable to print a file</LI>
<LI>Unable to print to a printer</LI>
<LI>Unable to print at all</LI>
<LI> Request for enhancement</LI>
<LI> Documentation error</LI>
<LI> Unable to print a file</LI>
<LI> Unable to print to a printer</LI>
<LI> Unable to print at all</LI>
</OL>
The scope of the problem should also be determined as:
<OL>
<LI>Specific to a machine</LI>
<LI>Specific to an operating system</LI>
<LI>Applies to all machines and operating systems</LI>
<LI> Specific to a machine</LI>
<LI> Specific to an operating system</LI>
<LI> Applies to all machines and operating systems</LI>
</OL>
<H2><A NAME="4_2">4.2 Identification</A></H2>
<H2><A NAME="4_2">4.2 Identification</A></H2>
Once the level and scope of the trouble report is determined the
software sub-system(s) involved with the problem are determined. This
may involve additional communication with the user or vendor to isolate
the problem to a specific cause.
<P>When the sub-system(s) involved have been identified, an engineer
<P> When the sub-system(s) involved have been identified, an engineer
will then determine the change(s) needed and estimate the time required
for the change(s). </P>
<H2><A NAME="4_3">4.3 Correction</A></H2>
<H2><A NAME="4_3">4.3 Correction</A></H2>
Corrections are scheduled based upon the severity and complexity of
the problem. Once all changes have been made, documented, and tested
successfully a new software release snapshot is generated. Additional
tests are added as necessary for proper testing of the changes.
<H2><A NAME="4_4">4.4 Notification</A></H2>
<H2><A NAME="4_4">4.4 Notification</A></H2>
The user or vendor is notified when the fix is available or if the
problem was caused by user error.
<H1><A NAME="5">5 Software Releases</A></H1>
<H2><A NAME="5_1">5.1 Version Numbering</A></H2>
<H1><A NAME="5">5 Software Releases</A></H1>
<H2><A NAME="5_1">5.1 Version Numbering</A></H2>
CUPS uses a three-part version number separated by periods to
represent the major, minor, and patch release numbers:
<UL>
@@ -292,79 +292,81 @@ numbers reset to 0:
2.0.0 Production release of 2.0.0
</PRE>
</UL>
<H2><A NAME="5_2">5.2 Generation</A></H2>
<H2><A NAME="5_2">5.2 Generation</A></H2>
Software releases shall be generated for each successfully completed
software trouble report. All object and executable files shall be
deleted prior to performing a full build to ensure that source files
are recompiled.
<H2><A NAME="5_3">5.3 Testing</A></H2>
<H2><A NAME="5_3">5.3 Testing</A></H2>
Software testing shall be conducted according to the CUPS Software
Test Plan, CUPS-STP-1.1. Failed tests cause STRs to be generated to
correct the problems found.
<H2><A NAME="5_4">5.4 Release</A></H2>
<H2><A NAME="5_4">5.4 Release</A></H2>
When testing has been completed successfully a new distribution image
is created from the current CVS code &quot;snapshot&quot;. No production release
shall contain software that has not passed the appropriate software
tests.
<H1 TYPE="A" VALUE="1"><A NAME="6">A Glossary</A></H1>
<H2><A NAME="6_1">A.1 Terms</A></H2>
<H1 TYPE="A" VALUE="1"><A NAME="6">A Glossary</A></H1>
<H2><A NAME="6_1">A.1 Terms</A></H2>
<DL>
<DT>C </DT>
<DD>A computer language. </DD>
<DT>parallel </DT>
<DD>Sending or receiving data more than 1 bit at a time. </DD>
<DT>pipe </DT>
<DD>A one-way communications channel between two programs. </DD>
<DT>serial </DT>
<DD>Sending or receiving data 1 bit at a time. </DD>
<DT>socket </DT>
<DD>A two-way network communications channel. </DD>
<DT> C </DT>
<DD> A computer language. </DD>
<DT> parallel </DT>
<DD> Sending or receiving data more than 1 bit at a time. </DD>
<DT> pipe </DT>
<DD> A one-way communications channel between two programs. </DD>
<DT> serial </DT>
<DD> Sending or receiving data 1 bit at a time. </DD>
<DT> socket </DT>
<DD> A two-way network communications channel. </DD>
</DL>
<H2><A NAME="6_2">A.2 Acronyms</A></H2>
<H2><A NAME="6_2">A.2 Acronyms</A></H2>
<DL>
<DT>ASCII </DT>
<DD>American Standard Code for Information Interchange </DD>
<DT>CUPS </DT>
<DD>Common UNIX Printing System </DD>
<DT>ESC/P </DT>
<DD>EPSON Standard Code for Printers </DD>
<DT>FTP </DT>
<DD>File Transfer Protocol </DD>
<DT>HP-GL </DT>
<DD>Hewlett-Packard Graphics Language </DD>
<DT>HP-PCL </DT>
<DD>Hewlett-Packard Page Control Language </DD>
<DT>HP-PJL </DT>
<DD>Hewlett-Packard Printer Job Language </DD>
<DT>IETF </DT>
<DD>Internet Engineering Task Force </DD>
<DT>IPP </DT>
<DD>Internet Printing Protocol </DD>
<DT>ISO </DT>
<DD>International Standards Organization </DD>
<DT>LPD </DT>
<DD>Line Printer Daemon </DD>
<DT>MIME </DT>
<DD>Multimedia Internet Mail Exchange </DD>
<DT>PPD </DT>
<DD>PostScript Printer Description </DD>
<DT>SMB </DT>
<DD>Server Message Block </DD>
<DT>TFTP </DT>
<DD>Trivial File Transfer Protocol </DD>
<DT> ASCII </DT>
<DD> American Standard Code for Information Interchange </DD>
<DT> CUPS </DT>
<DD> Common UNIX Printing System </DD>
<DT> ESC/P </DT>
<DD> EPSON Standard Code for Printers </DD>
<DT> FTP </DT>
<DD> File Transfer Protocol </DD>
<DT> HP-GL </DT>
<DD> Hewlett-Packard Graphics Language </DD>
<DT> HP-PCL </DT>
<DD> Hewlett-Packard Printer Control Language </DD>
<DT> HP-PJL </DT>
<DD> Hewlett-Packard Printer Job Language </DD>
<DT> IETF </DT>
<DD> Internet Engineering Task Force </DD>
<DT> IPP </DT>
<DD> Internet Printing Protocol </DD>
<DT> ISO </DT>
<DD> International Standards Organization </DD>
<DT> LPD </DT>
<DD> Line Printer Daemon </DD>
<DT> MIME </DT>
<DD> Multimedia Internet Mail Exchange </DD>
<DT> PCL </DT>
<DD> Page Control Language </DD>
<DT> PPD </DT>
<DD> PostScript Printer Description </DD>
<DT> SMB </DT>
<DD> Server Message Block </DD>
<DT> TFTP </DT>
<DD> Trivial File Transfer Protocol </DD>
</DL>
<H1><A NAME="7">B Coding Requirements</A></H1>
<H1><A NAME="7">B Coding Requirements</A></H1>
These coding requirements provide detailed information on source file
formatting and documentation content. These guidelines shall be applied
to all C and C++ source files provided with CUPS.
<H2><A NAME="7_1">B.1 Source Files</A></H2>
<H3><A NAME="7_1_1">B.1.1 Naming</A></H3>
<H2><A NAME="7_1">B.1 Source Files</A></H2>
<H3><A NAME="7_1_1">B.1.1 Naming</A></H3>
All source files names shall be 16 characters or less in length to
ensure compatibility with older UNIX filesystems. Source files
containing functions shall have an extension of &quot;.c&quot; for ANSI C and
&quot;.cxx&quot; for C++ source files. All other &quot;include&quot; files shall have an
extension of &quot;.h&quot;.
<H3><A NAME="7_1_2">B.1.2 Documentation</A></H3>
<H3><A NAME="7_1_2">B.1.2 Documentation</A></H3>
The top of each source file shall contain a header giving the name of
the file, the purpose or nature of the source file, the copyright and
licensing notice, and the functions contained in the file. The file
@@ -372,7 +374,7 @@ name and revision information is provided by the CVS &quot;$Id$&quot; tag:
<UL>
<PRE>
/*
* &quot;$Id$&quot;
* &quot;36;Id$&quot;
*
* Description of file contents.
*
@@ -410,20 +412,20 @@ that code has been lost near the end of the file:
<UL>
<PRE>
/*
* End of &quot;$Id$&quot;.
* End of &quot;36;Id$&quot;.
*/
</PRE>
</UL>
<H2><A NAME="7_2">B.2 Functions</A></H2>
<H3><A NAME="7_2_1">B.2.1 Naming</A></H3>
<H2><A NAME="7_2">B.2 Functions</A></H2>
<H3><A NAME="7_2_1">B.2.1 Naming</A></H3>
Functions with a global scope shall be capitalized (&quot;DoThis&quot;,
&quot;DoThat&quot;, &quot;DoSomethingElse&quot;, etc.) The only exception to this rule
shall be the CUPS interface library functions which may begin with a
prefix word in lowercase (&quot;cupsDoThis&quot;, &quot;cupsDoThat&quot;, etc.)
<P>Functions with a local scope shall be declared &quot;static&quot; and be
<P> Functions with a local scope shall be declared &quot;static&quot; and be
lowercase with underscores between words (&quot;do_this&quot;, &quot;do_that&quot;,
&quot;do_something_else&quot;, etc.) </P>
<H3><A NAME="7_2_2">B.2.2 Documentation</A></H3>
<H3><A NAME="7_2_2">B.2.2 Documentation</A></H3>
Each function shall begin with a comment header describing what the
function does, the possible input limits (if any), and the possible
output values (if any), and any special information needed:
@@ -443,11 +445,11 @@ do_this(float x) /* I - Power value (0.0 &lt;= x &lt;= 1.1) */
}
</PRE>
</UL>
<H2><A NAME="7_3">B.3 Methods</A></H2>
<H3><A NAME="7_3_1">B.3.1 Naming</A></H3>
<H2><A NAME="7_3">B.3 Methods</A></H2>
<H3><A NAME="7_3_1">B.3.1 Naming</A></H3>
Methods shall be in lowercase with underscores between words
(&quot;do_this&quot;, &quot;do_that&quot;, &quot;do_something_else&quot;, etc.)
<H3><A NAME="7_3_2">B.3.2 Documentation</A></H3>
<H3><A NAME="7_3_2">B.3.2 Documentation</A></H3>
Each method shall begin with a comment header describing what the
method does, the possible input limits (if any), and the possible
output values (if any), and any special information needed:
@@ -467,19 +469,19 @@ class::do_this(float x) /* I - Power value (0.0 &lt;= x &lt;= 1.0) */
}
</PRE>
</UL>
<H2><A NAME="7_4">B.4 Variables</A></H2>
<H3><A NAME="7_4_1">B.4.1 Naming</A></H3>
<H2><A NAME="7_4">B.4 Variables</A></H2>
<H3><A NAME="7_4_1">B.4.1 Naming</A></H3>
Variables with a global scope shall be capitalized (&quot;ThisVariable&quot;,
&quot;ThatVariable&quot;, &quot;ThisStateVariable&quot;, etc.) The only exception to this
rule shall be the CUPS interface library global variables which must
begin with the prefix &quot;cups&quot; (&quot;cupsThisVariable&quot;, &quot;cupsThatVariable&quot;,
etc.) Global variables shall be replaced by function arguments whenever
possible.
<P>Variables with a local scope shall be lowercase with underscores
<P> Variables with a local scope shall be lowercase with underscores
between words (&quot;this_variable&quot;, &quot;that_variable&quot;, etc.) Any local
variables shared by functions within a source file shall be declared
&quot;static&quot;. </P>
<H3><A NAME="7_4_2">B.4.2 Documentation</A></H3>
<H3><A NAME="7_4_2">B.4.2 Documentation</A></H3>
Each variable shall be declared on a separate line and shall be
immediately followed by a comment block describing the variable:
<UL>
@@ -488,12 +490,12 @@ int this_variable; /* The current state of this */
int that_variable; /* The current state of that */
</PRE>
</UL>
<H2><A NAME="7_5">B.5 Types</A></H2>
<H3><A NAME="7_5_1">B.5.1 Naming</A></H3>
<H2><A NAME="7_5">B.5 Types</A></H2>
<H3><A NAME="7_5_1">B.5.1 Naming</A></H3>
All type names shall be lowercase with underscores between words and
&quot;_t&quot; appended to the end of the name (&quot;this_type_t&quot;, &quot;that_type_t&quot;,
etc.)
<H3><A NAME="7_5_2">B.5.2 Documentation</A></H3>
<H3><A NAME="7_5_2">B.5.2 Documentation</A></H3>
Each type shall have a comment block immediately before the typedef:
<UL>
<PRE>
@@ -503,12 +505,12 @@ etc.)
typedef int cups_this_type_t;
</PRE>
</UL>
<H2><A NAME="7_6">B.6 Structures</A></H2>
<H3><A NAME="7_6_1">B.6.1 Naming</A></H3>
<H2><A NAME="7_6">B.6 Structures</A></H2>
<H3><A NAME="7_6_1">B.6.1 Naming</A></H3>
All structure names shall be lowercase with underscores between words
and &quot;_str&quot; appended to the end of the name (&quot;this_struct_str&quot;,
&quot;that_struct_str&quot;, etc.)
<H3><A NAME="7_6_2">B.6.2 Documentation</A></H3>
<H3><A NAME="7_6_2">B.6.2 Documentation</A></H3>
Each structure shall have a comment block immediately before the
struct and each member shall be documented in accordance with the
variable naming policy above:
@@ -524,11 +526,11 @@ struct cups_this_struct_str
};
</PRE>
</UL>
<H2><A NAME="7_7">B.7 Classes</A></H2>
<H3><A NAME="7_7_1">B.7.1 Naming</A></H3>
<H2><A NAME="7_7">B.7 Classes</A></H2>
<H3><A NAME="7_7_1">B.7.1 Naming</A></H3>
All class names shall be lowercase with underscores between words
(&quot;this_class&quot;, &quot;that_class&quot;, etc.)
<H3><A NAME="7_7_2">B.7.2 Documentation</A></H3>
<H3><A NAME="7_7_2">B.7.2 Documentation</A></H3>
Each class shall have a comment block immediately before the class and
each member shall be documented in accordance with the variable naming
policy above:
@@ -544,15 +546,15 @@ class cups_this_class
};
</PRE>
</UL>
<H2><A NAME="7_8">B.8 Constants</A></H2>
<H3><A NAME="7_8_1">B.8.1 Naming</A></H3>
<H2><A NAME="7_8">B.8 Constants</A></H2>
<H3><A NAME="7_8_1">B.8.1 Naming</A></H3>
All constant names shall be uppercase with underscored between words
(&quot;THIS_CONSTANT&quot;, &quot;THAT_CONSTANT&quot;, etc.) Constants defined for the CUPS
interface library must begin with an uppercase prefix
(&quot;CUPS_THIS_CONSTANT&quot;, &quot;CUPS_THAT_CONSTANT&quot;, etc.)
<P>Typed enumerations shall be used whenever possible to allow for type
checking by the compiler. </P>
<H3><A NAME="7_8_2">B.8.2 Documentation</A></H3>
<P> Typed enumerations shall be used whenever possible to allow for
type checking by the compiler. </P>
<H3><A NAME="7_8_2">B.8.2 Documentation</A></H3>
Comment blocks shall immediately follow each constant:
<UL>
<PRE>
@@ -563,8 +565,8 @@ enum
};
</PRE>
</UL>
<H2><A NAME="7_9">B.9 Code</A></H2>
<H3><A NAME="7_9_1">B.9.1 Documentation</A></H3>
<H2><A NAME="7_9">B.9 Code</A></H2>
<H3><A NAME="7_9_1">B.9.1 Documentation</A></H3>
All source code shall utilize block comments within functions to
describe the operations being performed by a group of statements:
<UL>
@@ -591,8 +593,8 @@ do
} while (i == (sizeof(array) / sizeof(array[0])));
</PRE>
</UL>
<H3><A NAME="7_9_2">B.9.2 Style</A></H3>
<H4 TYPE="a">B.9.2.a Indentation</H4>
<H3><A NAME="7_9_2">B.9.2 Style</A></H3>
<H4 TYPE="a">B.9.2.a Indentation</H4>
All code blocks enclosed by brackets shall begin with the opening
brace on a new line. The code then follows starting on a new line after
the brace and is indented 2 spaces. The closing brace is then placed on
@@ -632,11 +634,11 @@ switch (array[i])
}
</PRE>
</UL>
<H4>B.9.2.b Spacing</H4>
<H4>B.9.2.b Spacing</H4>
A space shall follow each reserved word (&quot;if&quot;, &quot;while&quot;, etc.) Spaces
shall not be inserted between a function name and the arguments in
parenthesis.
<H4>B.9.2.c Return Values</H4>
<H4>B.9.2.c Return Values</H4>
Parenthesis shall surround values returned from a function using
&quot;return&quot;:
<UL>
@@ -644,7 +646,7 @@ parenthesis.
return (STATE_IDLE);
</PRE>
</UL>
<H4>B.9.2.d Loops</H4>
<H4>B.9.2.d Loops</H4>
Whenever convenient loops should count downward to zero to improve
program performance:
<UL>
@@ -653,20 +655,20 @@ for (i = sizeof(array) / sizeof(array[0]) - 1; i &gt;= 0; i --)
array[i] = STATE_IDLE;
</PRE>
</UL>
<H1 ALIGN="RIGHT"><A NAME="8">C Software Trouble Report Form</A></H1>
<H1 ALIGN="RIGHT"><A NAME="8">C Software Trouble Report Form</A></H1>
<CENTER>
<TABLE WIDTH="80%">
<TR><TH ALIGN="RIGHT">Summary of Problem:</TH><TD ALIGN="LEFT">
________________________________________</TD></TR>
<TR><TH ALIGN="RIGHT">Problem Severity:</TH><TD ALIGN="LEFT">__1=RFE
<TR><TH ALIGN="RIGHT"> Summary of Problem:</TH><TD ALIGN="LEFT">
________________________________________</TD></TR>
<TR><TH ALIGN="RIGHT"> Problem Severity:</TH><TD ALIGN="LEFT"> __1=RFE
<BR> __2=Documentation-Error
<BR> __3=Unable-to-Print-a-File
<BR> __4=Unable-to-Print-to-a-Printer
<BR> __5=Unable-to-Print-at-All</TD></TR>
<TR><TH ALIGN="RIGHT">Problem Scope:</TH><TD ALIGN="LEFT">__1=Machine
<TR><TH ALIGN="RIGHT"> Problem Scope:</TH><TD ALIGN="LEFT"> __1=Machine
__2=Operating-System __3=All</TD></TR>
<TR><TH ALIGN="RIGHT" VALIGN="TOP">Detailed Description of Problem:</TH><TD
ALIGN="LEFT">________________________________________
<TR><TH ALIGN="RIGHT" VALIGN="TOP"> Detailed Description of Problem:</TH><TD
ALIGN="LEFT"> ________________________________________
<BR> ________________________________________
<BR> ________________________________________
<BR> ________________________________________
+99 -102
Ver Arquivo
@@ -1,6 +1,6 @@
%PDF-1.2
%âãÏÓ
1 0 obj<</Producer(htmldoc 1.8.8 Copyright 1997-2000 Easy Software Products, All Rights Reserved.)/CreationDate(D:20000731155313Z)/Title( CUPS Configuration Management Plan)/Author(Easy Software Products)>>endobj
1 0 obj<</Producer(htmldoc 1.8.8 Copyright 1997-2000 Easy Software Products, All Rights Reserved.)/CreationDate(D:20000705214846Z)/Title( CUPS Configuration Management Plan)/Author(Easy Software Products)>>endobj
2 0 obj<</Type/Encoding/Differences[ 32/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle/parenleft/parenright/asterisk/plus/comma/minus/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/grave/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde 128/Euro 130/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE 145/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe 159/Ydieresis/space/exclamdown/cent/sterling/currency/yen/brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]>>endobj
3 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier/Encoding 2 0 R>>endobj
4 0 obj<</Type/Font/Subtype/Type1/BaseFont/Times-Roman/Encoding 2 0 R>>endobj
@@ -306,11 +306,9 @@ endobj
xÚ+ä2T0BCc3JÎår
ár
á
äHendstream
endobj
156 0 obj
31
endobj
äHendstream
endobj
156 0 obj
31
endobj
157 0 obj<</Type/Page/Parent 150 0 R/Contents 158 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F4 4 0 R/F8 7 0 R/F9 8 0 R/Fc 9 0 R>>>>/Annots 14 0 R>>endobj
@@ -373,12 +371,11 @@ endobj
|ý¸ÿœì¦öëÐŽC(íÎ|ñ‰#Í”ê–Æ ä#Q5®M_RÍÓÕ@5‡b€‚°¯â,&vBYiîCj§ª Ö¦c.ž,Th¹G:Pïû ìÜÌáVGÂ_ðÑÓt¡Üþ«Á%¨Z4Þ0­^ìÊ7;æîU@ÂåZ9£%è:Ɇ{Úåà@øÈËB1DN±ÞŠ„"ü³éˆí,‡3Ë„vÿˆ!h kI©&,ù2©ãYàL…RG)Re:äëÇn$>° 'v~(¦M!x.}E¶Ñ2(N­pس
-eï÷ïàmŠ”(ůG1^p6ÑÒ²÷Á3cÚNÄW!°W>ãÕv‘^“ˆÞ¿
ç»röyöUDK­endstream
|ý¸ÿœì¦öëÐŽC(íÎ|ñ‰#Í”ê–Æ ä#Q5®M_RÍÓÕ@5‡b€‚°¯â,&vBYiîCj§ª Ö¦c.ž,Th¹G:Pïû ìÜÌáVGÂ_ðÑÓt¡Üþ«Á%¨Z4Þ0­^ìÊ7;æîU@ÂåZ9£%è:Ɇ{Úåà@øÈËB1DN±ÞŠ„"ü³éˆí,‡3Ë„vÿˆ!h kI©&,ù2©ãYàL…RG)Re:äëÇn$>° 'v~(¦M!x.}E¶Ñ2(N­pس
-eï÷ïàmŠ”(ůG1^p6ÑÒ²÷Á3cÚNÄW!°W>ãÕv‘^“ˆÞ¿
ç»röyöUDK­endstream
endobj
171 0 obj
540
endobj
540
172 0 obj<</Type/Page/Parent 150 0 R/Contents 173 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F8 7 0 R>>>>>>endobj
173 0 obj<</Length 174 0 R/Filter/FlateDecode>>stream
xÚ+ä2T0BCc3JÎår
áÒw³P04TIS041Ó3V072PIÑPp
@@ -736,98 +733,98 @@ xref
0000011309 00000 n
0000011357 00000 n
0000011405 00000 n
0000011309 00000 n
0000011357 00000 n
0000011405 00000 n
0000011453 00000 n
0000011502 00000 n
0000011551 00000 n
0000011600 00000 n
0000011649 00000 n
0000011698 00000 n
0000011747 00000 n
0000011796 00000 n
0000011845 00000 n
0000011894 00000 n
0000011943 00000 n
0000011992 00000 n
0000012041 00000 n
0000012090 00000 n
0000012139 00000 n
0000012188 00000 n
0000012237 00000 n
0000012286 00000 n
0000012335 00000 n
0000012384 00000 n
0000012433 00000 n
0000012482 00000 n
0000012531 00000 n
0000012580 00000 n
0000012629 00000 n
0000012678 00000 n
0000012727 00000 n
0000012776 00000 n
0000012825 00000 n
0000012874 00000 n
0000012923 00000 n
0000012972 00000 n
0000013021 00000 n
0000013070 00000 n
0000013119 00000 n
0000013168 00000 n
0000013217 00000 n
0000013266 00000 n
0000013315 00000 n
0000013364 00000 n
0000013413 00000 n
0000013462 00000 n
0000013511 00000 n
0000013560 00000 n
0000013609 00000 n
0000013658 00000 n
0000013707 00000 n
0000013756 00000 n
0000013805 00000 n
0000013854 00000 n
0000013903 00000 n
0000014164 00000 n
0000014316 00000 n
0000020676 00000 n
0000020698 00000 n
0000020793 00000 n
0000020895 00000 n
0000020915 00000 n
0000021069 00000 n
0000022130 00000 n
0000022151 00000 n
0000022264 00000 n
0000022452 00000 n
0000022473 00000 n
0000022627 00000 n
0000024028 00000 n
0000024050 00000 n
0000024163 00000 n
0000024356 00000 n
0000024377 00000 n
0000024508 00000 n
0000025119 00000 n
0000025140 00000 n
0000025253 00000 n
0000025443 00000 n
0000025464 00000 n
0000025595 00000 n
0000026596 00000 n
0000026617 00000 n
0000026730 00000 n
0000026932 00000 n
0000026953 00000 n
0000027093 00000 n
0000028111 00000 n
0000028132 00000 n
0000028245 00000 n
0000028444 00000 n
0000011453 00000 n
0000011502 00000 n
0000011551 00000 n
0000011600 00000 n
0000011649 00000 n
0000011698 00000 n
0000011747 00000 n
0000011796 00000 n
0000011845 00000 n
0000011894 00000 n
0000011943 00000 n
0000011992 00000 n
0000012041 00000 n
0000012090 00000 n
0000012139 00000 n
0000012188 00000 n
0000012237 00000 n
0000012286 00000 n
0000012335 00000 n
0000012384 00000 n
0000012433 00000 n
0000012482 00000 n
0000012531 00000 n
0000012580 00000 n
0000012629 00000 n
0000012678 00000 n
0000012727 00000 n
0000012776 00000 n
0000012825 00000 n
0000012874 00000 n
0000012923 00000 n
0000012972 00000 n
0000013021 00000 n
0000013070 00000 n
0000013119 00000 n
0000013168 00000 n
0000013217 00000 n
0000013266 00000 n
0000013315 00000 n
0000013364 00000 n
0000013413 00000 n
0000013462 00000 n
0000013511 00000 n
0000013560 00000 n
0000013609 00000 n
0000013658 00000 n
0000013707 00000 n
0000013756 00000 n
0000013805 00000 n
0000013854 00000 n
0000013903 00000 n
0000014164 00000 n
0000014316 00000 n
0000020676 00000 n
0000020698 00000 n
0000020793 00000 n
0000020895 00000 n
0000020915 00000 n
0000021069 00000 n
0000022130 00000 n
0000022151 00000 n
0000022264 00000 n
0000022452 00000 n
0000022473 00000 n
0000022627 00000 n
0000024028 00000 n
0000024050 00000 n
0000024163 00000 n
0000024356 00000 n
0000024377 00000 n
0000024508 00000 n
0000025119 00000 n
0000025140 00000 n
0000025253 00000 n
0000025443 00000 n
0000025464 00000 n
0000025595 00000 n
0000026596 00000 n
0000026617 00000 n
0000026730 00000 n
0000026932 00000 n
0000026953 00000 n
0000027093 00000 n
0000028111 00000 n
0000028132 00000 n
0000028245 00000 n
0000028444 00000 n
0000028465 00000 n
0000028605 00000 n
0000029278 00000 n
0000029299 00000 n
0000028605 00000 n
0000029412 00000 n
0000029605 00000 n
0000029293 00000 n
0000029626 00000 n
0000029766 00000 n
-4
Ver Arquivo
@@ -56,10 +56,6 @@ The following documentation for CUPS is available on this server:
<A HREF="sdd.html">HTML</A> |
<A HREF="sdd.pdf">PDF</A> )
<LI>Software Performance Specification (
<A HREF="sps.html">HTML</A> |
<A HREF="sps.pdf">PDF</A> )
<LI>Software Version Description (
<A HREF="svd.html">HTML</A> |
<A HREF="svd.pdf">PDF</A> )
BIN
Ver Arquivo
Arquivo binário não exibido.
+500 -492
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+736 -679
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+845 -848
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+1129 -1187
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
Arquivo binário não exibido.
+1 -1
Ver Arquivo
@@ -14,7 +14,7 @@
<LI>CUPS-SSR-1.1: CUPS Software Security Report
<LI>CUPS-STP-1.1: CUPS Software Test Plan
<LI>CUPS-SUM-1.1.x: CUPS Software Users Manual
<LI>CUPS-SVD-1.1: CUPS Software Version Description
<LI>CUPS-SVD-1.1.x: CUPS Software Version Description
</UL>
<H2>Other Documents</H2>
+3 -3
Ver Arquivo
@@ -4,7 +4,7 @@
<TITLE> CUPS Software Administrators Manual</TITLE>
<META NAME="AUTHOR" CONTENT="Easy Software Products">
<META NAME="COPYRIGHT" CONTENT="Copyright 1997-2000, All Rights Reserved">
<META NAME="DOCNUMBER" CONTENT="CUPS-SAM-1.1.1">
<META NAME="DOCNUMBER" CONTENT="CUPS-SAM-1.1">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<STYLE>
BODY { font-family: serif; font-size: 11.0pt }
@@ -22,7 +22,7 @@ PRE { font-size: 9.0pt }
<BODY BGCOLOR="#ffffff">
<CENTER><A HREF="#CONTENTS"><IMG SRC="images/cups-large.gif" BORDER="0" WIDTH="100%"><BR>
<H1> CUPS Software Administrators Manual</H1></A><BR>
CUPS-SAM-1.1.1<BR>
CUPS-SAM-1.1<BR>
Easy Software Products<BR>
Copyright 1997-2000, All Rights Reserved<BR>
</CENTER>
@@ -245,7 +245,7 @@ Machine!</A></LI>
<H1 ALIGN="RIGHT"><A NAME="1">Preface</A></H1>
<P>This software administrators manual provides printer administration
information for the Common UNIX Printing System<SUP>TM</SUP> (&quot;CUPS<SUP>
TM</SUP>&quot;), version 1.1.1. </P>
TM</SUP>&quot;), version 1.1. </P>
<H2><A NAME="1_1">System Overview</A></H2>
<P>CUPS provides a portable printing layer for UNIX&reg;-based operating
systems. It has been developed by <A HREF="http://www.easysw.com">Easy
+468 -466
Ver Arquivo
@@ -1,6 +1,6 @@
%PDF-1.2
%âãÏÓ
1 0 obj<</Producer(htmldoc 1.8.8 Copyright 1997-2000 Easy Software Products, All Rights Reserved.)/CreationDate(D:20000731155336Z)/Title( CUPS Software Administrators Manual)/Author(Easy Software Products)>>endobj
1 0 obj<</Producer(htmldoc 1.8.8 Copyright 1997-2000 Easy Software Products, All Rights Reserved.)/CreationDate(D:20000710174129Z)/Title( CUPS Software Administrators Manual)/Author(Easy Software Products)>>endobj
2 0 obj<</Type/Encoding/Differences[ 32/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle/parenleft/parenright/asterisk/plus/comma/minus/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/grave/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde 128/Euro 130/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE 145/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe 159/Ydieresis/space/exclamdown/cent/sterling/currency/yen/brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]>>endobj
3 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier/Encoding 2 0 R>>endobj
4 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier-Bold/Encoding 2 0 R>>endobj
@@ -1022,10 +1022,11 @@ h)
Wuáiè†X!dr¸Ñ˜ÄjøCýsȵèÝJ´§•¸rŽlH[âã‹:\…’K\[°'¢@Ø¢C­€]Ÿ«VrU×Ê=öEèà£ÃDïû¯´ùÖÕÌŸêsí¯#èùVž«áxåÛ-â;^WÈ\OÌɱonn0¾d=äª\ÝT”‚lˆ{ó€¼0ÚT¹WWojò$ ð\{–l lbÕ¹.¶*qeÝKž„‰×ñÒáÊY²Ñ˜×Ó{Šyq—KΈÚ{ÈhzªX¯üPy8Å:F—« »òúh9ÔNþnï5ùÒ*¹Ä€+“,¯ñª è¨Wo'ÍéŧñýGH©\SßËy°†ÇeŽæãvQ°2Ÿ,+çEQÁse¼(*t.a#‡s5–r*WÍçª>š^¸
vt6מÍ•4™¿peM/\œ¥ùp‰'óg®úÃÉ<–kÎ-‡Í‹ó·•Ü:\[æ»uîªßFwÒ²ßmµwpœOm›.Ò,²Î-ï\·u›þà,•\×FÍÕI¿\¹r¶ûRãkT§×ćk¥äjÔûËÛ}©4fÜkbÄኔ\¹zß¿h£¶W]nj¯‰;×NÁU
UPn9Ár­4áËNÅ•r¸RW6|ŒŽ¹Î«Ëë51áp%C®wшﲫÝÊ-§h®š+Vqõó¡¸g¯r~ô'/ÙÅlp\ëQ®Ó¿^òHjÁZv,¥Šk£tEr<Џ¨ëdÞ7ÛnlÌ\—᯻?"éx@·‰+×à¢Zr—Ûj{‡àꤥÈ]|Ëíé71âp
.7.y<€
.7.y<€
£®[‘"K~­lâŽÃÕ¿(—óM
-áðì8—Ðpz®”ÃÕ¿¨7RNf™*Œj1\·Ùÿj®˜ÃÕ»¨ðTà¹b\Šã|f.ÅEußÁnßÊ#`ÂÃÄžk¨Šã|f.ÝÀT5_ŽÜp
×^­óŠã|®áE…ÒÁ&ŒJ[=Ì®9·r‡Çù\Ër¥#Bq­Q\µÚÕš8JqœÁ5¼HËU;â*”ñÆË- é5qxœÁ5¼(S:"×Ã%¢"ÎSÇù0\ƒ‹´\?Œê´áò;ô¼RqœÃ5¸¨[ývGסµœm”MçÃp
×^­óŠã|®áE…ÒÁ&ŒJ[=Ì®9·r‡Çù\Ër¥#Bq­Q\µÚÕš8JqœÁ5¼HËU;â*”ñÆË- é5qxœÁ5¼(S:"×Ã%¢"ÎSÇù0\ƒ‹´\?Œê´áò;ô¼RqœÃ5¸¨[ývGסµœm”MçÃp
.Òr?ŒjÕ£YU4ñ"Ú4®þE\-š+Uý6.5MìçCqõ/Òr¹ê^,ÕMìçCqõ/Òríùáa«68Íòþ ‰ýã|(®þEY/MõÊ•;ãŠK
W'T•šØ;·ãê]ÄçJ\ñ®óÛ‹_¾,{lÔMìçÃqõ.Ê;Š-qen¸:ù‡Ýxã¼ì‘ª›Ø;·ãê]4ˆ£*,WÚâæ)­Š«ó~(EO¢Må’/Ú÷#¢âÂùåªÇ¸äã|H.ÅÀn÷X®µW£‹ç¯AeNä’/ªúC%;s Ï\BsŠCqœÉ%_T÷$[DX®W;Ê.é"Ñ Í« ¸—|Q&°üÂeÎ=Üyä’Žóa¹ä‹
E2þW=/WÁá’.ªn»Ê·EÞÙ¹j—t‘è¶²¾Æ6ÓJ\‚Ã%_”ßö¿ž#Wé“«{œÍ%_T
ö+Càª8\òE½H0?qÙL—Q\Ù8WÃá’/gÆé>®Îq><Wï"©ÃÊbB®ƒ¾‰‡K¾HN#‚—qy#¶äÊ£îíZðS¹zýèN«i¸®oÐ4Qp¸ú=w–"p…S^Nù‡?ßÞ?oäZJ¬èžó2Ûâr{Ï\ù'×'׸V”+]&WöÉõÉõÉõÉõÉ…ãZr}rùçŠì¹Þf>ès¥”ºór=ŸÞa?bšK©;3×Cÿøšü²¡ÎæuÕ»êªHqPJÛ:k®|¾!çéw·§†u\y1Ô×áŒF~™WsÛìø9QeäÚÉÔ—Pì(É/4¬®KüuòÈȵ™‚ TSë¼;Àz齺 ®u+
@@ -1038,13 +1039,14 @@ endobj
%°ß{ZÀ‘›ì ù=Å¡­´e&=@~¯thG„â‚¥Âèo‘ßoXÀQã¸÷}ô•±mç˜Á8lc®Á9æ½Qæ#/Á9°Üè–ã‚s`™±Åš3‡}€²×ÀXcV@éK`3ËÚ¬Þ€ò9°ÊÜX@=€ÀXa6.@l`3°½9êT˜ËÍ" mœ£ „m®gƒú¡€S˜ „A:ઢ©€ìÚ„>G˜ ‡bH}fv_ï\bAB/0Ò
-Vè׋‘Ã]‡+_Ž V˜È+ A,0
-V裥ÈaÜ媗#ˆ(Â
-V裥ÈaÜ媗#ˆ(Â
*âƒ-ôéBäpÝåB} Â(»‚Ç¥€VÏP„#C̾:\ÕB")£œ· Å ÙHd.„Ð'TæB,ÝÄ‹u+_†pd8üƒȇ
B8j¤—Â!Gl#´A `1Û¨«>BðÌØå
h)‚¸ú,(ÖCéÑg­¡% ÇÜ ýŽhIÂ1ó3?ú•‚+~€áï€d¼s°=z @KŽy>rs˜y€Õø©bå™H*:sˆ‡–(30Ê&ÐúyÖ9eˆιÈQDs‘ƒ²ÔÄ9£Ò7”AÄžžQéI+Ò@½t>¥Ï)Mª’ζÚ&HšÔ¡9!"li¥åÚ‡kˆ´ål¨vc! »ô™ ±¢g83âžö¼nų¢ †®@žâÌcˆñqCË`3Ĉ9qx@Ë`iˆf(Í4€ó`¦Ÿ¬TÔ‡
*âƒ-ôéBäpÝåB} Â(»‚Ç¥€VÏP„#C̾:\ÕB")£œ· Å ÙHd.„Ð'TæB,ÝÄ‹u+_†pd8üƒȇ
B8j¤—Â!Gl#´A `1Û¨«>BðÌØå
h)‚¸ú,(ÖCéÑg­¡% ÇÜ ýŽhIÂ1ó3?ú•‚+~€áï€d¼s°=z @KŽy>rs˜y€Õø©bå™H*:sˆ‡–(30Ê&ÐúyÖ9eˆιÈQDs‘ƒ²ÔÄ9£Ò7”AÄžžQéI+Ò@½t>¥Ï)Mª’ζÚ&HšÔ¡9!"li¥åÚ‡kˆ´ål¨vc! »ô™ ±¢g83âžö¼nų¢ †®@žâÌcˆñqCË`3Ĉ9qx@Ë`iˆf(Í4€ó`¦Ÿ¬TÔ‡
-g€M>kΩj-k€MœdY“½´¬ +ÈcX]>±rz‹€5D'V
œéöÔ1GNÀY™8樼A:©Ôï˜gB©œÇ ÜÏ™.H,8ޏÃtºc
wàÊêd†kÍÁ…Tú‰:,c=càÔ4Æ €?R§é°ŒÖÛNÓaÓ™_‚& :C¢Åqí±`»0ºk…äªé0‘qƒph­ ±÷UKó„ªY.´v†èuâ,øV­!zÕzìÓÝ ¹ð†èQ:j ÖÖãrfØ ¬OKüñÍPË%¢¹-±±’.h­
Ñ“&æV>¬­'BõÊXZ?Þ¹±´°öõ^†˜È,e \<1÷3–½í#×½{&ܸ¥rU¤ÍJÉ\"š LdöܹK0;¸)82i\o\´;¼•Ÿ'–‘P¬.t¬Â^¿¹1p1_uFÃÒÇàd}¡ãNSbé¥
wàÊêd†kÍÁ…Tú‰:,c=càÔ4Æ €?R§é°ŒÖÛNÓaÓ™_‚& :C¢Åqí±`»0ºk…äªé0‘qƒph­ ±÷UKó„ªY.´v†èuâ,øV­!zÕzìÓÝ ¹ð†èQ:j ÖÖãrfØ ¬OKüñÍPË%¢¹-±±’.h­
\EiW°/)áøf08Ô&[õ cœFwžÿf<[l2êR6WqÀúßtŽ*OôÛø\+Š¿S;‹añcq€‰‹ÙaQt_zî¬ñ¹‘‘«ˆ¸ÿ¥ó/9k·6\"â—{”56¼OßYqYtØqœ=šÌñ…Ie˜>˜¹l:ìŒöªÿì§Œý¹K.ê4Li¯ƒ~/ÛÌæqµ¶\Mä¦ÜÝo·Û/¯oåe»}È,?mcÍå¢ÃœSþ#†KȵqÀe'‰³tŽ+¼Û9á
®ÃÌK_8.±´îBrvm¦(ˆ=$W›…ÄupÇU/«»Ð\¬•O_ºäj‚áÚ´.¹‚ÑzÜöžKdKÑxw gÑ q!Øý^
—XŒÒ¸°DôÖ!‰kvKÄgиš…X!•kæø—°MäšÕ)¹/T®9½3eû‰Ê5c`OJš#sÍ6Ähi/t®™†1±ŒÁ5Ï#îí2¸fbÔ,%=pÍ`sM®ôT9×ÄÚÁÈdr‰<\)´ášRY©Ã\®éÀx™dl.FÚÏ$ŽËšk¢ÉóÄ×þ9椰áòoŠü,M+.ß`ɧv\~UÑ&Yؒ˧ƒ¶Ê¶åòf—ŒoÍEΡö41qÏåcÚb™®î†Ë½,ÚŸ›pÂÕ
·¶øhß"7\o¶è®Ë’CW+Âé,—\ŽºìþІÆÕŠ'küâª-.¹ø©ÕªGw-qËe‘^HÝž“‹Kæ–ʇìþ‹ë6øà"æÅÇ[ï¹ðÃõV^qÙññýw/·÷Æuê5ƒAÞm_}ÝÛ'ש۞¶wê~z|õy_ß\çŽ;žpØ>ÜËývûøúêý–“pÍPàÿÿÿârõä
@@ -2831,464 +2833,464 @@ xref
0000015434 00000 n
0000015540 00000 n
0000015566 00000 n
0000015918 00000 n
0000015944 00000 n
0000016050 00000 n
0000016076 00000 n
0000016182 00000 n
0000016208 00000 n
0000016314 00000 n
0000016419 00000 n
0000016524 00000 n
0000016629 00000 n
0000016733 00000 n
0000016837 00000 n
0000016941 00000 n
0000017047 00000 n
0000017129 00000 n
0000017235 00000 n
0000017340 00000 n
0000017446 00000 n
0000017488 00000 n
0000017593 00000 n
0000017699 00000 n
0000017733 00000 n
0000017838 00000 n
0000017864 00000 n
0000017970 00000 n
0000017996 00000 n
0000018102 00000 n
0000018206 00000 n
0000018240 00000 n
0000018292 00000 n
0000018379 00000 n
0000018415 00000 n
0000018502 00000 n
0000018554 00000 n
0000018641 00000 n
0000018683 00000 n
0000018740 00000 n
0000018827 00000 n
0000018878 00000 n
0000018965 00000 n
0000018999 00000 n
0000019053 00000 n
0000019140 00000 n
0000019197 00000 n
0000019284 00000 n
0000019344 00000 n
0000019430 00000 n
0000019472 00000 n
0000019525 00000 n
0000019612 00000 n
0000019638 00000 n
0000019743 00000 n
0000019849 00000 n
0000019954 00000 n
0000020060 00000 n
0000020110 00000 n
0000020216 00000 n
0000020322 00000 n
0000020428 00000 n
0000020534 00000 n
0000020640 00000 n
0000020746 00000 n
0000020812 00000 n
0000020865 00000 n
0000020952 00000 n
0000021009 00000 n
0000021096 00000 n
0000021202 00000 n
0000021308 00000 n
0000021413 00000 n
0000021471 00000 n
0000021577 00000 n
0000021681 00000 n
0000021787 00000 n
0000021891 00000 n
0000021996 00000 n
0000022102 00000 n
0000022168 00000 n
0000022213 00000 n
0000022300 00000 n
0000022345 00000 n
0000022432 00000 n
0000022477 00000 n
0000022564 00000 n
0000022606 00000 n
0000022711 00000 n
0000022817 00000 n
0000022923 00000 n
0000023029 00000 n
0000023135 00000 n
0000023241 00000 n
0000023346 00000 n
0000023452 00000 n
0000023558 00000 n
0000023664 00000 n
0000023770 00000 n
0000023876 00000 n
0000023982 00000 n
0000024088 00000 n
0000024194 00000 n
0000024299 00000 n
0000024405 00000 n
0000024511 00000 n
0000024617 00000 n
0000024723 00000 n
0000024829 00000 n
0000024935 00000 n
0000025041 00000 n
0000025147 00000 n
0000025253 00000 n
0000025358 00000 n
0000025464 00000 n
0000025570 00000 n
0000025676 00000 n
0000025782 00000 n
0000025888 00000 n
0000025994 00000 n
0000026100 00000 n
0000026206 00000 n
0000026312 00000 n
0000026418 00000 n
0000026524 00000 n
0000026629 00000 n
0000026735 00000 n
0000026841 00000 n
0000026946 00000 n
0000027050 00000 n
0000027404 00000 n
0000027509 00000 n
0000027614 00000 n
0000027720 00000 n
0000027826 00000 n
0000027932 00000 n
0000028038 00000 n
0000028143 00000 n
0000028248 00000 n
0000028353 00000 n
0000028458 00000 n
0000028563 00000 n
0000028669 00000 n
0000028775 00000 n
0000028881 00000 n
0000028987 00000 n
0000029093 00000 n
0000029199 00000 n
0000029305 00000 n
0000029411 00000 n
0000029517 00000 n
0000029623 00000 n
0000029729 00000 n
0000029835 00000 n
0000029941 00000 n
0000030047 00000 n
0000030153 00000 n
0000030259 00000 n
0000030365 00000 n
0000030471 00000 n
0000030577 00000 n
0000030683 00000 n
0000030789 00000 n
0000030895 00000 n
0000031001 00000 n
0000031107 00000 n
0000031213 00000 n
0000031319 00000 n
0000031425 00000 n
0000031531 00000 n
0000031637 00000 n
0000031743 00000 n
0000031849 00000 n
0000031955 00000 n
0000032060 00000 n
0000032164 00000 n
0000032268 00000 n
0000032654 00000 n
0000032760 00000 n
0000032866 00000 n
0000032972 00000 n
0000033078 00000 n
0000033184 00000 n
0000033290 00000 n
0000033396 00000 n
0000033502 00000 n
0000033608 00000 n
0000033714 00000 n
0000033820 00000 n
0000033926 00000 n
0000034032 00000 n
0000034138 00000 n
0000034244 00000 n
0000034350 00000 n
0000034456 00000 n
0000034562 00000 n
0000034668 00000 n
0000034774 00000 n
0000034880 00000 n
0000034986 00000 n
0000035092 00000 n
0000035198 00000 n
0000035304 00000 n
0000035410 00000 n
0000035516 00000 n
0000035622 00000 n
0000035728 00000 n
0000035833 00000 n
0000035939 00000 n
0000036045 00000 n
0000036151 00000 n
0000036257 00000 n
0000036363 00000 n
0000036469 00000 n
0000036575 00000 n
0000036681 00000 n
0000036787 00000 n
0000036893 00000 n
0000036998 00000 n
0000037104 00000 n
0000037209 00000 n
0000037313 00000 n
0000037417 00000 n
0000037795 00000 n
0000037901 00000 n
0000038006 00000 n
0000038111 00000 n
0000038216 00000 n
0000038321 00000 n
0000038427 00000 n
0000038533 00000 n
0000038639 00000 n
0000038744 00000 n
0000038849 00000 n
0000038954 00000 n
0000039059 00000 n
0000039164 00000 n
0000039269 00000 n
0000039374 00000 n
0000039479 00000 n
0000039584 00000 n
0000039689 00000 n
0000039794 00000 n
0000039899 00000 n
0000040004 00000 n
0000040109 00000 n
0000040214 00000 n
0000040319 00000 n
0000040424 00000 n
0000040529 00000 n
0000040634 00000 n
0000040739 00000 n
0000040981 00000 n
0000041015 00000 n
0000041049 00000 n
0000043757 00000 n
0000043806 00000 n
0000043855 00000 n
0000043904 00000 n
0000043953 00000 n
0000044002 00000 n
0000044051 00000 n
0000044100 00000 n
0000044149 00000 n
0000044198 00000 n
0000044247 00000 n
0000044296 00000 n
0000044345 00000 n
0000044394 00000 n
0000044443 00000 n
0000044492 00000 n
0000044541 00000 n
0000044590 00000 n
0000044639 00000 n
0000044688 00000 n
0000044737 00000 n
0000044786 00000 n
0000044835 00000 n
0000044884 00000 n
0000044933 00000 n
0000044982 00000 n
0000045031 00000 n
0000045080 00000 n
0000045129 00000 n
0000045178 00000 n
0000045227 00000 n
0000045276 00000 n
0000045325 00000 n
0000045374 00000 n
0000045423 00000 n
0000045472 00000 n
0000045521 00000 n
0000045570 00000 n
0000045619 00000 n
0000045668 00000 n
0000045717 00000 n
0000045766 00000 n
0000045815 00000 n
0000045864 00000 n
0000045913 00000 n
0000045962 00000 n
0000046011 00000 n
0000046060 00000 n
0000046109 00000 n
0000046158 00000 n
0000046207 00000 n
0000046256 00000 n
0000046305 00000 n
0000046354 00000 n
0000046403 00000 n
0000046452 00000 n
0000046501 00000 n
0000046550 00000 n
0000046599 00000 n
0000046648 00000 n
0000046697 00000 n
0000046746 00000 n
0000046795 00000 n
0000046844 00000 n
0000046893 00000 n
0000046942 00000 n
0000046991 00000 n
0000047040 00000 n
0000047089 00000 n
0000047138 00000 n
0000047187 00000 n
0000047236 00000 n
0000047285 00000 n
0000047334 00000 n
0000047383 00000 n
0000047432 00000 n
0000047481 00000 n
0000047530 00000 n
0000047579 00000 n
0000047628 00000 n
0000047677 00000 n
0000047726 00000 n
0000047775 00000 n
0000047824 00000 n
0000047873 00000 n
0000047922 00000 n
0000047971 00000 n
0000048020 00000 n
0000048069 00000 n
0000048118 00000 n
0000048167 00000 n
0000048216 00000 n
0000048265 00000 n
0000048314 00000 n
0000048363 00000 n
0000048412 00000 n
0000048461 00000 n
0000048510 00000 n
0000048559 00000 n
0000048608 00000 n
0000048657 00000 n
0000048706 00000 n
0000048755 00000 n
0000048804 00000 n
0000048853 00000 n
0000048902 00000 n
0000048951 00000 n
0000049000 00000 n
0000049049 00000 n
0000049098 00000 n
0000049147 00000 n
0000049196 00000 n
0000049245 00000 n
0000049294 00000 n
0000049343 00000 n
0000049392 00000 n
0000049441 00000 n
0000049490 00000 n
0000049539 00000 n
0000049588 00000 n
0000049637 00000 n
0000049686 00000 n
0000049735 00000 n
0000049784 00000 n
0000049833 00000 n
0000049882 00000 n
0000049931 00000 n
0000049980 00000 n
0000050029 00000 n
0000050078 00000 n
0000050127 00000 n
0000050176 00000 n
0000050225 00000 n
0000050274 00000 n
0000050323 00000 n
0000050372 00000 n
0000050421 00000 n
0000050470 00000 n
0000050519 00000 n
0000050568 00000 n
0000050617 00000 n
0000050666 00000 n
0000050715 00000 n
0000050764 00000 n
0000050813 00000 n
0000050862 00000 n
0000050911 00000 n
0000050960 00000 n
0000051009 00000 n
0000051058 00000 n
0000051107 00000 n
0000051156 00000 n
0000051205 00000 n
0000051254 00000 n
0000051303 00000 n
0000051352 00000 n
0000051401 00000 n
0000051450 00000 n
0000051499 00000 n
0000051548 00000 n
0000051597 00000 n
0000051646 00000 n
0000051695 00000 n
0000052548 00000 n
0000052702 00000 n
0000059059 00000 n
0000059081 00000 n
0000059176 00000 n
0000059278 00000 n
0000059298 00000 n
0000059445 00000 n
0000060355 00000 n
0000060376 00000 n
0000060570 00000 n
0000062069 00000 n
0000062091 00000 n
0000062233 00000 n
0000062662 00000 n
0000062683 00000 n
0000062797 00000 n
0000062993 00000 n
0000063014 00000 n
0000063156 00000 n
0000064063 00000 n
0000064084 00000 n
0000064226 00000 n
0000065750 00000 n
0000065772 00000 n
0000065914 00000 n
0000066909 00000 n
0000066930 00000 n
0000067044 00000 n
0000067242 00000 n
0000067263 00000 n
0000067419 00000 n
0000068376 00000 n
0000068397 00000 n
0000068572 00000 n
0000069488 00000 n
0000069509 00000 n
0000069669 00000 n
0000070628 00000 n
0000070649 00000 n
0000070800 00000 n
0000015672 00000 n
0000015778 00000 n
0000015812 00000 n
0000015918 00000 n
0000015944 00000 n
0000016050 00000 n
0000016076 00000 n
0000016182 00000 n
0000016208 00000 n
0000016314 00000 n
0000016419 00000 n
0000016524 00000 n
0000016629 00000 n
0000016733 00000 n
0000016837 00000 n
0000016941 00000 n
0000017047 00000 n
0000017129 00000 n
0000017235 00000 n
0000017340 00000 n
0000017446 00000 n
0000017488 00000 n
0000017593 00000 n
0000017699 00000 n
0000017733 00000 n
0000017838 00000 n
0000017864 00000 n
0000017970 00000 n
0000017996 00000 n
0000018102 00000 n
0000018206 00000 n
0000018240 00000 n
0000018292 00000 n
0000018379 00000 n
0000018415 00000 n
0000018502 00000 n
0000018554 00000 n
0000018641 00000 n
0000018683 00000 n
0000018740 00000 n
0000018827 00000 n
0000018878 00000 n
0000018965 00000 n
0000018999 00000 n
0000019053 00000 n
0000019140 00000 n
0000019197 00000 n
0000019284 00000 n
0000019344 00000 n
0000019430 00000 n
0000019472 00000 n
0000019525 00000 n
0000019612 00000 n
0000019638 00000 n
0000019743 00000 n
0000019849 00000 n
0000019954 00000 n
0000020060 00000 n
0000020110 00000 n
0000020216 00000 n
0000020322 00000 n
0000020428 00000 n
0000020534 00000 n
0000020640 00000 n
0000020746 00000 n
0000020812 00000 n
0000020865 00000 n
0000020952 00000 n
0000021009 00000 n
0000021096 00000 n
0000021202 00000 n
0000021308 00000 n
0000021413 00000 n
0000021471 00000 n
0000021577 00000 n
0000021681 00000 n
0000021787 00000 n
0000021891 00000 n
0000021996 00000 n
0000022102 00000 n
0000022168 00000 n
0000022213 00000 n
0000022300 00000 n
0000022345 00000 n
0000022432 00000 n
0000022477 00000 n
0000022564 00000 n
0000022606 00000 n
0000022711 00000 n
0000022817 00000 n
0000022923 00000 n
0000023029 00000 n
0000023135 00000 n
0000023241 00000 n
0000023346 00000 n
0000023452 00000 n
0000023558 00000 n
0000023664 00000 n
0000023770 00000 n
0000023876 00000 n
0000023982 00000 n
0000024088 00000 n
0000024194 00000 n
0000024299 00000 n
0000024405 00000 n
0000024511 00000 n
0000024617 00000 n
0000024723 00000 n
0000024829 00000 n
0000024935 00000 n
0000025041 00000 n
0000025147 00000 n
0000025253 00000 n
0000025358 00000 n
0000025464 00000 n
0000025570 00000 n
0000025676 00000 n
0000025782 00000 n
0000025888 00000 n
0000025994 00000 n
0000026100 00000 n
0000026206 00000 n
0000026312 00000 n
0000026418 00000 n
0000026524 00000 n
0000026629 00000 n
0000026735 00000 n
0000026841 00000 n
0000026946 00000 n
0000027050 00000 n
0000027404 00000 n
0000027509 00000 n
0000027614 00000 n
0000027720 00000 n
0000027826 00000 n
0000027932 00000 n
0000028038 00000 n
0000028143 00000 n
0000028248 00000 n
0000028353 00000 n
0000028458 00000 n
0000028563 00000 n
0000028669 00000 n
0000028775 00000 n
0000028881 00000 n
0000028987 00000 n
0000029093 00000 n
0000029199 00000 n
0000029305 00000 n
0000029411 00000 n
0000029517 00000 n
0000029623 00000 n
0000029729 00000 n
0000029835 00000 n
0000029941 00000 n
0000030047 00000 n
0000030153 00000 n
0000030259 00000 n
0000030365 00000 n
0000030471 00000 n
0000030577 00000 n
0000030683 00000 n
0000030789 00000 n
0000030895 00000 n
0000031001 00000 n
0000031107 00000 n
0000031213 00000 n
0000031319 00000 n
0000031425 00000 n
0000031531 00000 n
0000031637 00000 n
0000031743 00000 n
0000031849 00000 n
0000031955 00000 n
0000032060 00000 n
0000032164 00000 n
0000032268 00000 n
0000032654 00000 n
0000032760 00000 n
0000032866 00000 n
0000032972 00000 n
0000033078 00000 n
0000033184 00000 n
0000033290 00000 n
0000033396 00000 n
0000033502 00000 n
0000033608 00000 n
0000033714 00000 n
0000033820 00000 n
0000033926 00000 n
0000034032 00000 n
0000034138 00000 n
0000034244 00000 n
0000034350 00000 n
0000034456 00000 n
0000034562 00000 n
0000034668 00000 n
0000034774 00000 n
0000034880 00000 n
0000034986 00000 n
0000035092 00000 n
0000035198 00000 n
0000035304 00000 n
0000035410 00000 n
0000035516 00000 n
0000035622 00000 n
0000035728 00000 n
0000035833 00000 n
0000035939 00000 n
0000036045 00000 n
0000036151 00000 n
0000036257 00000 n
0000036363 00000 n
0000036469 00000 n
0000036575 00000 n
0000036681 00000 n
0000036787 00000 n
0000036893 00000 n
0000036998 00000 n
0000037104 00000 n
0000037209 00000 n
0000037313 00000 n
0000037417 00000 n
0000037795 00000 n
0000037901 00000 n
0000038006 00000 n
0000038111 00000 n
0000038216 00000 n
0000038321 00000 n
0000038427 00000 n
0000038533 00000 n
0000038639 00000 n
0000038744 00000 n
0000038849 00000 n
0000038954 00000 n
0000039059 00000 n
0000039164 00000 n
0000039269 00000 n
0000039374 00000 n
0000039479 00000 n
0000039584 00000 n
0000039689 00000 n
0000039794 00000 n
0000039899 00000 n
0000040004 00000 n
0000040109 00000 n
0000040214 00000 n
0000040319 00000 n
0000040424 00000 n
0000040529 00000 n
0000040634 00000 n
0000040739 00000 n
0000040981 00000 n
0000041015 00000 n
0000041049 00000 n
0000043757 00000 n
0000043806 00000 n
0000043855 00000 n
0000043904 00000 n
0000043953 00000 n
0000044002 00000 n
0000044051 00000 n
0000044100 00000 n
0000044149 00000 n
0000044198 00000 n
0000044247 00000 n
0000044296 00000 n
0000044345 00000 n
0000044394 00000 n
0000044443 00000 n
0000044492 00000 n
0000044541 00000 n
0000044590 00000 n
0000044639 00000 n
0000044688 00000 n
0000044737 00000 n
0000044786 00000 n
0000044835 00000 n
0000044884 00000 n
0000044933 00000 n
0000044982 00000 n
0000045031 00000 n
0000045080 00000 n
0000045129 00000 n
0000045178 00000 n
0000045227 00000 n
0000045276 00000 n
0000045325 00000 n
0000045374 00000 n
0000045423 00000 n
0000045472 00000 n
0000045521 00000 n
0000045570 00000 n
0000045619 00000 n
0000045668 00000 n
0000045717 00000 n
0000045766 00000 n
0000045815 00000 n
0000045864 00000 n
0000045913 00000 n
0000045962 00000 n
0000046011 00000 n
0000046060 00000 n
0000046109 00000 n
0000046158 00000 n
0000046207 00000 n
0000046256 00000 n
0000046305 00000 n
0000046354 00000 n
0000046403 00000 n
0000046452 00000 n
0000046501 00000 n
0000046550 00000 n
0000046599 00000 n
0000046648 00000 n
0000046697 00000 n
0000046746 00000 n
0000046795 00000 n
0000046844 00000 n
0000046893 00000 n
0000046942 00000 n
0000046991 00000 n
0000047040 00000 n
0000047089 00000 n
0000047138 00000 n
0000047187 00000 n
0000047236 00000 n
0000047285 00000 n
0000047334 00000 n
0000047383 00000 n
0000047432 00000 n
0000047481 00000 n
0000047530 00000 n
0000047579 00000 n
0000047628 00000 n
0000047677 00000 n
0000047726 00000 n
0000047775 00000 n
0000047824 00000 n
0000047873 00000 n
0000047922 00000 n
0000047971 00000 n
0000048020 00000 n
0000048069 00000 n
0000048118 00000 n
0000048167 00000 n
0000048216 00000 n
0000048265 00000 n
0000048314 00000 n
0000048363 00000 n
0000048412 00000 n
0000048461 00000 n
0000048510 00000 n
0000048559 00000 n
0000048608 00000 n
0000048657 00000 n
0000048706 00000 n
0000048755 00000 n
0000048804 00000 n
0000048853 00000 n
0000048902 00000 n
0000048951 00000 n
0000049000 00000 n
0000049049 00000 n
0000049098 00000 n
0000049147 00000 n
0000049196 00000 n
0000049245 00000 n
0000049294 00000 n
0000049343 00000 n
0000049392 00000 n
0000049441 00000 n
0000049490 00000 n
0000049539 00000 n
0000049588 00000 n
0000049637 00000 n
0000049686 00000 n
0000049735 00000 n
0000049784 00000 n
0000049833 00000 n
0000049882 00000 n
0000049931 00000 n
0000049980 00000 n
0000050029 00000 n
0000050078 00000 n
0000050127 00000 n
0000050176 00000 n
0000050225 00000 n
0000050274 00000 n
0000050323 00000 n
0000050372 00000 n
0000050421 00000 n
0000050470 00000 n
0000050519 00000 n
0000050568 00000 n
0000050617 00000 n
0000050666 00000 n
0000050715 00000 n
0000050764 00000 n
0000050813 00000 n
0000050862 00000 n
0000050911 00000 n
0000050960 00000 n
0000051009 00000 n
0000051058 00000 n
0000051107 00000 n
0000051156 00000 n
0000051205 00000 n
0000051254 00000 n
0000051303 00000 n
0000051352 00000 n
0000051401 00000 n
0000051450 00000 n
0000051499 00000 n
0000051548 00000 n
0000051597 00000 n
0000051646 00000 n
0000051695 00000 n
0000052548 00000 n
0000052702 00000 n
0000059057 00000 n
0000059079 00000 n
0000059174 00000 n
0000059276 00000 n
0000059296 00000 n
0000059443 00000 n
0000060354 00000 n
0000060375 00000 n
0000060569 00000 n
0000062068 00000 n
0000062090 00000 n
0000062232 00000 n
0000062661 00000 n
0000062682 00000 n
0000062796 00000 n
0000062992 00000 n
0000063013 00000 n
0000063155 00000 n
0000064062 00000 n
0000064083 00000 n
0000064225 00000 n
0000065749 00000 n
0000065771 00000 n
0000065913 00000 n
0000066908 00000 n
0000066929 00000 n
0000067043 00000 n
0000067241 00000 n
0000067262 00000 n
0000067418 00000 n
0000068375 00000 n
0000068396 00000 n
0000068571 00000 n
0000069487 00000 n
0000069508 00000 n
0000069668 00000 n
0000070627 00000 n
0000071310 00000 n
0000070648 00000 n
0000070799 00000 n
0000072101 00000 n
0000071288 00000 n
0000071309 00000 n
+2 -2
Ver Arquivo
@@ -1,7 +1,7 @@
<HTML>
<HEAD>
<META NAME="COPYRIGHT" CONTENT="Copyright 1997-2000, All Rights Reserved">
<META NAME="DOCNUMBER" CONTENT="CUPS-SAM-1.1.1">
<META NAME="DOCNUMBER" CONTENT="CUPS-SAM-1.1">
<META NAME="Author" CONTENT="Easy Software Products">
<TITLE>CUPS Software Administrators Manual</TITLE>
</HEAD>
@@ -11,7 +11,7 @@
<P>This software administrators manual provides printer administration
information for the Common UNIX Printing System<SUP>TM</SUP>
("CUPS<SUP>TM</SUP>"), version 1.1.1.
("CUPS<SUP>TM</SUP>"), version 1.1.
<EMBED SRC="system-overview.shtml">
+1 -1
Ver Arquivo
@@ -179,7 +179,7 @@ EPSON printers are included that use these filters. </P>
<LI>CUPS-SSR-1.1: CUPS Software Security Report </LI>
<LI>CUPS-STP-1.1: CUPS Software Test Plan </LI>
<LI>CUPS-SUM-1.1.x: CUPS Software Users Manual </LI>
<LI>CUPS-SVD-1.1: CUPS Software Version Description </LI>
<LI>CUPS-SVD-1.1.x: CUPS Software Version Description </LI>
</UL>
<H2><A NAME="2_2">2.2 Other Documents</A></H2>
<P>The following non-CUPS documents are referenced by this document: </P>
+5 -7
Ver Arquivo
@@ -1,6 +1,6 @@
%PDF-1.2
%âãÏÓ
1 0 obj<</Producer(htmldoc 1.8.8 Copyright 1997-2000 Easy Software Products, All Rights Reserved.)/CreationDate(D:20000731155344Z)/Title( CUPS Software Design Description)/Author(Easy Software Products)>>endobj
1 0 obj<</Producer(htmldoc 1.8.8 Copyright 1997-2000 Easy Software Products, All Rights Reserved.)/CreationDate(D:20000710174133Z)/Title( CUPS Software Design Description)/Author(Easy Software Products)>>endobj
2 0 obj<</Type/Encoding/Differences[ 32/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle/parenleft/parenright/asterisk/plus/comma/minus/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/grave/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde 128/Euro 130/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE 145/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe 159/Ydieresis/space/exclamdown/cent/sterling/currency/yen/brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]>>endobj
3 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier/Encoding 2 0 R>>endobj
4 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier-Oblique/Encoding 2 0 R>>endobj
@@ -385,11 +385,9 @@ endobj
xÚ+ä2T0BCc3JÎår
ár
á
äHendstream
endobj
211 0 obj
31
endobj
äHendstream
endobj
211 0 obj
31
endobj
212 0 obj<</Type/Page/Parent 205 0 R/Contents 213 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F4 5 0 R/F8 8 0 R/F9 9 0 R/Fc 10 0 R>>>>/Annots 15 0 R>>endobj
@@ -993,7 +991,7 @@ xref
0000045461 00000 n
0000045610 00000 n
0000045720 00000 n
0000045461 00000 n
0000045827 00000 n
0000045981 00000 n
0000046117 00000 n
0000046214 00000 n
+3173 -3169
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+7996 -8028
Ver Arquivo
Diff do arquivo suprimido porque uma ou mais linhas são muito longas
+2 -2
Ver Arquivo
@@ -1,7 +1,7 @@
<HTML>
<HEAD>
<META NAME="COPYRIGHT" CONTENT="Copyright 1997-2000, All Rights Reserved">
<META NAME="DOCNUMBER" CONTENT="CUPS-SPM-1.1.1">
<META NAME="DOCNUMBER" CONTENT="CUPS-SPM-1.1">
<META NAME="Author" CONTENT="Easy Software Products">
<TITLE>CUPS Software Programmers Manual</TITLE>
</HEAD>
@@ -10,7 +10,7 @@
<H1 ALIGN="RIGHT">Preface</H1>
<P>This software programmers manual provides software programming
information for the Common UNIX Printing System ("CUPS") Version 1.1.1.
information for the Common UNIX Printing System ("CUPS") Version 1.1.
<EMBED SRC="system-overview.shtml">
-297
Ver Arquivo
@@ -1,297 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD>
<TITLE> CUPS Software Performance Specification</TITLE>
<META NAME="AUTHOR" CONTENT="Easy Software Products">
<META NAME="COPYRIGHT" CONTENT="Copyright 1997-2000, All Rights Reserved">
<META NAME="DOCNUMBER" CONTENT="CUPS-SPS-1.1">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<STYLE>
BODY { font-family: serif; font-size: 11.0pt }
H1 { font-family: sans-serif; font-size: 20.0pt }
H2 { font-family: sans-serif; font-size: 17.0pt }
H3 { font-family: sans-serif; font-size: 14.0pt }
H4 { font-family: sans-serif; font-size: 11.0pt }
H5 { font-family: sans-serif; font-size: 9.0pt }
H6 { font-family: sans-serif; font-size: 8.0pt }
SUB { font-size: 8.0pt }
SUP { font-size: 8.0pt }
PRE { font-size: 9.0pt }
</STYLE>
</HEAD>
<BODY>
<CENTER><A HREF="#CONTENTS"><IMG SRC="images/cups-large.gif" BORDER="0" WIDTH="100%"><BR>
<H1> CUPS Software Performance Specification</H1></A><BR>
CUPS-SPS-1.1<BR>
Easy Software Products<BR>
Copyright 1997-2000, All Rights Reserved<BR>
</CENTER>
<HR>
<H1 ALIGN="CENTER"><A NAME="CONTENTS">Table of Contents</A></H1>
<BR>
<BR><B><A HREF="#1">1 Scope</A></B>
<UL>
<LI><A HREF="#1_1">1.1 Identification</A></LI>
<LI><A HREF="#1_2">1.2 System Overview</A></LI>
<LI><A HREF="#1_3">1.3 Document Overview</A></LI>
</UL>
<B><A HREF="#2">2 References</A></B>
<UL>
<LI><A HREF="#2_1">2.1 CUPS Documentation</A></LI>
<LI><A HREF="#2_2">2.2 Other Documents</A></LI>
</UL>
<B><A HREF="#3">3 Programs</A></B>
<BR>
<BR><B><A HREF="#4">4 Scheduler Objects</A></B>
<BR>
<BR><B><A HREF="#5">A Glossary</A></B>
<UL>
<LI><A HREF="#5_1">A.1 Terms</A></LI>
<LI><A HREF="#5_2">A.2 Acronyms</A></LI>
</UL>
<HR>
<H1><A NAME="1">1 Scope</A></H1>
<H2><A NAME="1_1">1.1 Identification</A></H2>
<P>This software performance specification provides an analysis of the
memory, disk, and processor utilitization of each program in the Common
UNIX Printing System (&quot;CUPS&quot;) Version 1.1.</P>
<P>For the purposes of comparison, all figures are for the Linux Intel
platform. Memory utilization on other platforms should be similar. </P>
<H2><A NAME="1_2">1.2 System Overview</A></H2>
<P>CUPS provides a portable printing layer for UNIX&reg;-based operating
systems. It has been developed by <A HREF="http://www.easysw.com">Easy
Software Products</A> to promote a standard printing solution for all
UNIX vendors and users. CUPS provides the System V and Berkeley
command-line interfaces. </P>
<P>CUPS uses the Internet Printing Protocol (&quot;IPP&quot;) as the basis for
managing print jobs and queues. The Line Printer Daemon (&quot;LPD&quot;) Server
Message Block (&quot;SMB&quot;), and AppSocket (a.k.a. JetDirect) protocols are
also supported with reduced functionality. CUPS adds network printer
browsing and PostScript Printer Description (&quot;PPD&quot;) based printing
options to support real-world printing under UNIX. </P>
<P>CUPS also includes a customized version of GNU Ghostscript
(currently based off GNU Ghostscript 5.50) and an image file RIP that
are used to support non-PostScript printers. Sample drivers for HP and
EPSON printers are included that use these filters. </P>
<H2><A NAME="1_3">1.3 Document Overview</A></H2>
<P>This software performance specification is organized into the
following sections:</P>
<UL>
<LI>1 - Scope</LI>
<LI>2 - References</LI>
<LI>3 - Programs</LI>
<LI>4 - Scheduler Objects</LI>
<LI>A - Glossary</LI>
</UL>
<H1><A NAME="2">2 References</A></H1>
<H2><A NAME="2_1">2.1 CUPS Documentation</A></H2>
<P>The following CUPS documentation is referenced by this document: </P>
<UL>
<LI>CUPS-CMP-1.1: CUPS Configuration Management Plan </LI>
<LI>CUPS-IDD-1.1: CUPS System Interface Design Description </LI>
<LI>CUPS-IPP-1.1: CUPS Implmentation of IPP </LI>
<LI>CUPS-SAM-1.1.x: CUPS Software Administrators Manual </LI>
<LI>CUPS-SDD-1.1: CUPS Software Design Description </LI>
<LI>CUPS-SPM-1.1.x: CUPS Software Programming Manual </LI>
<LI>CUPS-SSR-1.1: CUPS Software Security Report </LI>
<LI>CUPS-STP-1.1: CUPS Software Test Plan </LI>
<LI>CUPS-SUM-1.1.x: CUPS Software Users Manual </LI>
<LI>CUPS-SVD-1.1: CUPS Software Version Description </LI>
</UL>
<H2><A NAME="2_2">2.2 Other Documents</A></H2>
<P>The following non-CUPS documents are referenced by this document: </P>
<UL>
<LI><A HREF="http://partners.adobe.com/asn/developer/PDFS/TN/5003.PPD_Spec_v4.3.pdf">
Adobe PostScript Printer Description File Format Specification,
Version 4.3.</A></LI>
<LI><A HREF="http://partners.adobe.com/asn/developer/PDFS/TN/PLRM.pdf">
Adobe PostScript Language Reference, Third Edition.</A></LI>
<LI>IPP: Job and Printer Set Operations </LI>
<LI>IPP/1.1: Encoding and Transport </LI>
<LI>IPP/1.1: Implementers Guide </LI>
<LI>IPP/1.1: Model and Semantics </LI>
<LI><A HREF="http://www.ietf.org/rfc/rfc1179.txt">RFC 1179, Line
Printer Daemon Protocol</A></LI>
<LI><A HREF="http://www.ietf.org/rfc/rfc2567.txt">RFC 2567, Design
Goals for an Internet Printing Protocol</A></LI>
<LI><A HREF="http://www.ietf.org/rfc/rfc2568.txt">RFC 2568, Rationale
for the Structure of the Model and Protocol</A> for the Internet
Printing Protocol</LI>
<LI><A HREF="http://www.ietf.org/rfc/rfc2569.txt">RFC 2569, Mapping
between LPD and IPP Protocols</A></LI>
<LI><A HREF="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616, Hypertext
Transfer Protocol -- HTTP/1.1</A></LI>
<LI><A HREF="http://www.ietf.org/rfc/rfc2617.txt">RFC 2617, HTTP
Authentication: Basic and Digest Access</A> Authentication </LI>
</UL>
<H1><A NAME="3">3 Programs</A></H1>
<P>The following table describes the average memory, disk, and CPU
usage of each program in CUPS. </P>
<P>The base memory column shows the initial memory requirements for
each program, including any shared libraries that are provided by CUPS. </P>
<P>The max memory column shows the maximum amount of memory that will
be used by the program based upon the default configuration settings
supplied with CUPS. </P>
<P>The temp files column indicates whether any temporary files are
created. </P>
<P>The CPU usage column specifies a relative CPU usage by the program
under normal conditions, either low, medium, or high. Low usage
indicates that the program will never use more than 33% of the
available CPU time. Medium usage indicates the program will use as much
as 66% of the available CPU time. High usage indicates the program uses
66% or more of the available CPU time.
<CENTER>
<TABLE BORDER="1" WIDTH="80%">
<TR><TH COLSPAN="3">Backends</TH></TR>
<TR><TH>Program</TH><TH>Base Memory</TH><TH>Max Memory</TH><TH>Temp
Files</TH><TH>CPU Usage</TH></TR>
<TR><TD>ipp</TD><TD>91k</TD><TD>256k</TD><TD>Up to size of print file</TD><TD>
Low</TD></TR>
<TR><TD>lpd</TD><TD>89k</TD><TD>89k</TD><TD>Up to size of print file</TD><TD>
Low</TD></TR>
<TR><TD>parallel</TD><TD>85k</TD><TD>85k</TD><TD>Up to size of print
file</TD><TD>Low</TD></TR>
<TR><TD>serial</TD><TD>85k</TD><TD>85k</TD><TD>Up to size of print file</TD><TD>
Low</TD></TR>
<TR><TD>socket</TD><TD>85k</TD><TD>85k</TD><TD>Up to size of print file</TD><TD>
Low</TD></TR>
<TR><TD>usb</TD><TD>85k</TD><TD>85k</TD><TD>Up to size of print file</TD><TD>
Low</TD></TR>
<TR><TH COLSPAN="3">CGIs</TH></TR>
<TR><TH>Program</TH><TH>Base Memory</TH><TH>Max Memory</TH><TH>Temp
Files</TH><TH>CPU Usage</TH></TR>
<TR><TD>admin.cgi</TD><TD>107k</TD><TD>256k</TD><TD>Up to size of PPD
file</TD><TD>Medium</TD></TR>
<TR><TD>classes.cgi</TD><TD>95k</TD><TD>Size of class objects</TD><TD>
None</TD><TD>Medium</TD></TR>
<TR><TD>jobs.cgi</TD><TD>93k</TD><TD>Size of job objects</TD><TD>None</TD><TD>
Medium</TD></TR>
<TR><TD>printers.cgi</TD><TD>95k</TD><TD>Size of printer objects</TD><TD>
None</TD><TD>Medium</TD></TR>
<TR><TH COLSPAN="3">Command-Line Programs</TH></TR>
<TR><TH>Program</TH><TH>Base Memory</TH><TH>Max Memory</TH><TH>Temp
Files</TH><TH>CPU Usage</TH></TR>
<TR><TD>accept</TD><TD>88k</TD><TD>128k</TD><TD>None</TD><TD>Low</TD></TR>
<TR><TD>cancel</TD><TD>88k</TD><TD>128k</TD><TD>None</TD><TD>Low</TD></TR>
<TR><TD>disable</TD><TD>88k</TD><TD>128k</TD><TD>None</TD><TD>Low</TD></TR>
<TR><TD>enable</TD><TD>88k</TD><TD>128k</TD><TD>None</TD><TD>Low</TD></TR>
<TR><TD>lp</TD><TD>90k</TD><TD>256k</TD><TD>None</TD><TD>Low</TD></TR>
<TR><TD>lpadmin</TD><TD>148k</TD><TD>256k</TD><TD>None</TD><TD>Low</TD></TR>
<TR><TD>lpc</TD><TD>86k</TD><TD>Size of job and printer objects</TD><TD>
None</TD><TD>Medium</TD></TR>
<TR><TD>lpinfo</TD><TD>89k</TD><TD>Size of device and PPD objects</TD><TD>
None</TD><TD>Medium</TD></TR>
<TR><TD>lpmove</TD><TD>88k</TD><TD>128k</TD><TD>None</TD><TD>Low</TD></TR>
<TR><TD>lpoptions</TD><TD>89k</TD><TD>128k</TD><TD>None</TD><TD>Low</TD></TR>
<TR><TD>lppasswd</TD><TD>90k</TD><TD>90k</TD><TD>None</TD><TD>Low</TD></TR>
<TR><TD>lpq</TD><TD>87k</TD><TD>Size of job objects</TD><TD>None</TD><TD>
Medium</TD></TR>
<TR><TD>lpr</TD><TD>87k</TD><TD>256k</TD><TD>None</TD><TD>Low</TD></TR>
<TR><TD>lprm</TD><TD>84k</TD><TD>128k</TD><TD>None</TD><TD>Low</TD></TR>
<TR><TD>lpstat</TD><TD>119k</TD><TD>Size of job, printer, and class
objects</TD><TD>None</TD><TD>Medium</TD></TR>
<TR><TD>reject</TD><TD>88k</TD><TD>128k</TD><TD>None</TD><TD>Low</TD></TR>
<TR><TH COLSPAN="3">Daemons</TH></TR>
<TR><TH>Program</TH><TH>Base Memory</TH><TH>Max Memory</TH><TH>Temp
Files</TH><TH>CPU Usage</TH></TR>
<TR><TD>cups-lpd</TD><TD>92k</TD><TD>256k</TD><TD>One file per control
or data file from client</TD><TD>Low</TD></TR>
<TR><TD>cupsd</TD><TD>308k</TD><TD>See Scheduler Requirements</TD><TD>
See Scheduler Requirements</TD><TD>Medium</TD></TR>
<TR><TD>cups-polld</TD><TD>84k</TD><TD>Size of printer and class objects</TD><TD>
None</TD><TD>Low</TD></TR>
<TR><TH COLSPAN="3">Filters</TH></TR>
<TR><TH>Program</TH><TH>Base Memory</TH><TH>Max Memory</TH><TH>Temp
Files</TH><TH>CPU Usage</TH></TR>
<TR><TD>hpgltops</TD><TD>263k</TD><TD>320k</TD><TD>None</TD><TD>Medium</TD>
</TR>
<TR><TD>imagetops</TD><TD>628k</TD><TD>10M</TD><TD>Swap file for
uncompressed image data</TD><TD>Medium</TD></TR>
<TR><TD>imagetoraster</TD><TD>652k</TD><TD>10M</TD><TD>Swap file for
uncompressed image data</TD><TD>High</TD></TR>
<TR><TD>pstops</TD><TD>775k</TD><TD>840k</TD><TD>Up to size of print
file</TD><TD>Medium</TD></TR>
<TR><TD>pstoraster</TD><TD>4M</TD><TD>14M</TD><TD>Swap file for command
lists</TD><TD>High</TD></TR>
<TR><TD>rastertoepson</TD><TD>693k</TD><TD>1M</TD><TD>None</TD><TD>Low</TD>
</TR>
<TR><TD>rastertohp</TD><TD>690k</TD><TD>1M</TD><TD>None</TD><TD>Low</TD></TR>
<TR><TD>texttops</TD><TD>638k</TD><TD>4*cols*rows</TD><TD>None</TD><TD>
Low</TD></TR>
</TABLE>
</CENTER>
</P>
<H1><A NAME="4">4 Scheduler Objects</A></H1>
<P>The <CODE>cupsd</CODE> program is the CUPS scheduler process. It
manages many interdependent server objects that are used to manage and
print files to printers. </P>
<P>The following table provides the memory and disk cost associated
with each server object.
<CENTER>
<TABLE BORDER="1" WIDTH="80%">
<TR><TH>Object</TH><TH>Memory Per</TH><TH>Disk Per</TH></TR>
<TR><TD>Browse ACL</TD><TD>1k</TD><TD>120</TD></TR>
<TR><TD>Browse Poll</TD><TD>24</TD><TD>80</TD></TR>
<TR><TD>Browse Relay</TD><TD>28</TD><TD>80</TD></TR>
<TR><TD>Certificate</TD><TD>76</TD><TD>32</TD></TR>
<TR><TD>Class</TD><TD>9k</TD><TD>200</TD></TR>
<TR><TD>Client</TD><TD>13k</TD><TD>-</TD></TR>
<TR><TD>Device</TD><TD>256</TD><TD>-</TD></TR>
<TR><TD>Job</TD><TD>2k</TD><TD>1k + size of document files</TD></TR>
<TR><TD>Location ACL</TD><TD>1k</TD><TD>120</TD></TR>
<TR><TD>MIME Filter</TD><TD>268</TD><TD>80</TD></TR>
<TR><TD>MIME Type</TD><TD>340</TD><TD>80</TD></TR>
<TR><TD>PPD</TD><TD>200</TD><TD>656</TD></TR>
<TR><TD>Printer</TD><TD>11k</TD><TD>32k</TD></TR>
</TABLE>
</CENTER>
</P>
<H1 TYPE="A" VALUE="1"><A NAME="5">A Glossary</A></H1>
<H2><A NAME="5_1">A.1 Terms</A></H2>
<DL>
<DT>C </DT>
<DD>A computer language. </DD>
<DT>parallel </DT>
<DD>Sending or receiving data more than 1 bit at a time. </DD>
<DT>pipe </DT>
<DD>A one-way communications channel between two programs. </DD>
<DT>serial </DT>
<DD>Sending or receiving data 1 bit at a time. </DD>
<DT>socket </DT>
<DD>A two-way network communications channel. </DD>
</DL>
<H2><A NAME="5_2">A.2 Acronyms</A></H2>
<DL>
<DT>ASCII </DT>
<DD>American Standard Code for Information Interchange </DD>
<DT>CUPS </DT>
<DD>Common UNIX Printing System </DD>
<DT>ESC/P </DT>
<DD>EPSON Standard Code for Printers </DD>
<DT>FTP </DT>
<DD>File Transfer Protocol </DD>
<DT>HP-GL </DT>
<DD>Hewlett-Packard Graphics Language </DD>
<DT>HP-PCL </DT>
<DD>Hewlett-Packard Page Control Language </DD>
<DT>HP-PJL </DT>
<DD>Hewlett-Packard Printer Job Language </DD>
<DT>IETF </DT>
<DD>Internet Engineering Task Force </DD>
<DT>IPP </DT>
<DD>Internet Printing Protocol </DD>
<DT>ISO </DT>
<DD>International Standards Organization </DD>
<DT>LPD </DT>
<DD>Line Printer Daemon </DD>
<DT>MIME </DT>
<DD>Multimedia Internet Mail Exchange </DD>
<DT>PPD </DT>
<DD>PostScript Printer Description </DD>
<DT>SMB </DT>
<DD>Server Message Block </DD>
<DT>TFTP </DT>
<DD>Trivial File Transfer Protocol </DD>
</DL>
</BODY>
</HTML>
BIN
Ver Arquivo
Arquivo binário não exibido.
-457
Ver Arquivo
@@ -1,457 +0,0 @@
<HTML>
<HEAD>
<META NAME="COPYRIGHT" CONTENT="Copyright 1997-2000, All Rights Reserved">
<META NAME="DOCNUMBER" CONTENT="CUPS-SPS-1.1">
<META NAME="Author" CONTENT="Easy Software Products">
<TITLE>CUPS Software Performance Specification</TITLE>
</HEAD>
<BODY>
<H1>Scope</H1>
<H2>Identification</H2>
<P>This software performance specification provides an analysis of the
memory, disk, and processor utilitization of each program in the
Common UNIX Printing System ("CUPS") Version 1.1.</P>
<P>For the purposes of comparison, all figures are for the Linux Intel
platform. Memory utilization on other platforms should be similar.
<EMBED SRC="system-overview.shtml">
<H2>Document Overview</H2>
<P>This software performance specification is organized into the
following sections:</P>
<UL>
<LI>1 - Scope</LI>
<LI>2 - References</LI>
<LI>3 - Programs</LI>
<LI>4 - Scheduler Objects</LI>
<LI>A - Glossary</LI>
</UL>
<EMBED SRC="references.shtml">
<H1>Programs</H1>
<P>The following table describes the average memory, disk, and CPU usage of
each program in CUPS.
<P>The base memory column shows the initial memory requirements for each
program, including any shared libraries that are provided by CUPS.
<P>The max memory column shows the maximum amount of memory that will be
used by the program based upon the default configuration settings supplied
with CUPS.
<P>The temp files column indicates whether any temporary files are created.
<P>The CPU usage column specifies a relative CPU usage by the program under
normal conditions, either low, medium, or high. Low usage indicates that
the program will never use more than 33% of the available CPU time. Medium
usage indicates the program will use as much as 66% of the available CPU
time. High usage indicates the program uses 66% or more of the available CPU
time.
<CENTER><TABLE WIDTH="80%" BORDER="1">
<TR>
<TH COLSPAN="3">Backends</TH>
</TR>
<TR>
<TH>Program</TH>
<TH>Base Memory</TH>
<TH>Max Memory</TH>
<TH>Temp Files</TH>
<TH>CPU Usage</TH>
</TR>
<TR>
<TD>ipp</TD>
<TD>91k</TD>
<TD>256k</TD>
<TD>Up to size of print file</TD>
<TD>Low</TD>
</TR>
<TR>
<TD>lpd</TD>
<TD>89k</TD>
<TD>89k</TD>
<TD>Up to size of print file</TD>
<TD>Low</TD>
</TR>
<TR>
<TD>parallel</TD>
<TD>85k</TD>
<TD>85k</TD>
<TD>Up to size of print file</TD>
<TD>Low</TD>
</TR>
<TR>
<TD>serial</TD>
<TD>85k</TD>
<TD>85k</TD>
<TD>Up to size of print file</TD>
<TD>Low</TD>
</TR>
<TR>
<TD>socket</TD>
<TD>85k</TD>
<TD>85k</TD>
<TD>Up to size of print file</TD>
<TD>Low</TD>
</TR>
<TR>
<TD>usb</TD>
<TD>85k</TD>
<TD>85k</TD>
<TD>Up to size of print file</TD>
<TD>Low</TD>
</TR>
<TR>
<TH COLSPAN="3">CGIs</TH>
</TR>
<TR>
<TH>Program</TH>
<TH>Base Memory</TH>
<TH>Max Memory</TH>
<TH>Temp Files</TH>
<TH>CPU Usage</TH>
</TR>
<TR>
<TD>admin.cgi</TD>
<TD>107k</TD>
<TD>256k</TD>
<TD>Up to size of PPD file</TD>
<TD>Medium</TD>
</TR>
<TR>
<TD>classes.cgi</TD>
<TD>95k</TD>
<TD>Size of class objects</TD>
<TD>None</TD>
<TD>Medium</TD>
</TR>
<TR>
<TD>jobs.cgi</TD>
<TD>93k</TD>
<TD>Size of job objects</TD>
<TD>None</TD>
<TD>Medium</TD>
</TR>
<TR>
<TD>printers.cgi</TD>
<TD>95k</TD>
<TD>Size of printer objects</TD>
<TD>None</TD>
<TD>Medium</TD>
</TR>
<TR>
<TH COLSPAN="3">Command-Line Programs</TH>
</TR>
<TR>
<TH>Program</TH>
<TH>Base Memory</TH>
<TH>Max Memory</TH>
<TH>Temp Files</TH>
<TH>CPU Usage</TH>
</TR>
<TR>
<TD>accept</TD>
<TD>88k</TD>
<TD>128k</TD>
<TD>None</TD>
<TD>Low</TD>
</TR>
<TR>
<TD>cancel</TD>
<TD>88k</TD>
<TD>128k</TD>
<TD>None</TD>
<TD>Low</TD>
</TR>
<TR>
<TD>disable</TD>
<TD>88k</TD>
<TD>128k</TD>
<TD>None</TD>
<TD>Low</TD>
</TR>
<TR>
<TD>enable</TD>
<TD>88k</TD>
<TD>128k</TD>
<TD>None</TD>
<TD>Low</TD>
</TR>
<TR>
<TD>lp</TD>
<TD>90k</TD>
<TD>256k</TD>
<TD>None</TD>
<TD>Low</TD>
</TR>
<TR>
<TD>lpadmin</TD>
<TD>148k</TD>
<TD>256k</TD>
<TD>None</TD>
<TD>Low</TD>
</TR>
<TR>
<TD>lpc</TD>
<TD>86k</TD>
<TD>Size of job and printer objects</TD>
<TD>None</TD>
<TD>Medium</TD>
</TR>
<TR>
<TD>lpinfo</TD>
<TD>89k</TD>
<TD>Size of device and PPD objects</TD>
<TD>None</TD>
<TD>Medium</TD>
</TR>
<TR>
<TD>lpmove</TD>
<TD>88k</TD>
<TD>128k</TD>
<TD>None</TD>
<TD>Low</TD>
</TR>
<TR>
<TD>lpoptions</TD>
<TD>89k</TD>
<TD>128k</TD>
<TD>None</TD>
<TD>Low</TD>
</TR>
<TR>
<TD>lppasswd</TD>
<TD>90k</TD>
<TD>90k</TD>
<TD>None</TD>
<TD>Low</TD>
</TR>
<TR>
<TD>lpq</TD>
<TD>87k</TD>
<TD>Size of job objects</TD>
<TD>None</TD>
<TD>Medium</TD>
</TR>
<TR>
<TD>lpr</TD>
<TD>87k</TD>
<TD>256k</TD>
<TD>None</TD>
<TD>Low</TD>
</TR>
<TR>
<TD>lprm</TD>
<TD>84k</TD>
<TD>128k</TD>
<TD>None</TD>
<TD>Low</TD>
</TR>
<TR>
<TD>lpstat</TD>
<TD>119k</TD>
<TD>Size of job, printer, and class objects</TD>
<TD>None</TD>
<TD>Medium</TD>
</TR>
<TR>
<TD>reject</TD>
<TD>88k</TD>
<TD>128k</TD>
<TD>None</TD>
<TD>Low</TD>
</TR>
<TR>
<TH COLSPAN="3">Daemons</TH>
</TR>
<TR>
<TH>Program</TH>
<TH>Base Memory</TH>
<TH>Max Memory</TH>
<TH>Temp Files</TH>
<TH>CPU Usage</TH>
</TR>
<TR>
<TD>cups-lpd</TD>
<TD>92k</TD>
<TD>256k</TD>
<TD>One file per control or data file from client</TD>
<TD>Low</TD>
</TR>
<TR>
<TD>cupsd</TD>
<TD>308k</TD>
<TD>See Scheduler Requirements</TD>
<TD>See Scheduler Requirements</TD>
<TD>Medium</TD>
</TR>
<TR>
<TD>cups-polld</TD>
<TD>84k</TD>
<TD>Size of printer and class objects</TD>
<TD>None</TD>
<TD>Low</TD>
</TR>
<TR>
<TH COLSPAN="3">Filters</TH>
</TR>
<TR>
<TH>Program</TH>
<TH>Base Memory</TH>
<TH>Max Memory</TH>
<TH>Temp Files</TH>
<TH>CPU Usage</TH>
</TR>
<TR>
<TD>hpgltops</TD>
<TD>263k</TD>
<TD>320k</TD>
<TD>None</TD>
<TD>Medium</TD>
</TR>
<TR>
<TD>imagetops</TD>
<TD>628k</TD>
<TD>10M</TD>
<TD>Swap file for uncompressed image data</TD>
<TD>Medium</TD>
</TR>
<TR>
<TD>imagetoraster</TD>
<TD>652k</TD>
<TD>10M</TD>
<TD>Swap file for uncompressed image data</TD>
<TD>High</TD>
</TR>
<TR>
<TD>pstops</TD>
<TD>775k</TD>
<TD>840k</TD>
<TD>Up to size of print file</TD>
<TD>Medium</TD>
</TR>
<TR>
<TD>pstoraster</TD>
<TD>4M</TD>
<TD>14M</TD>
<TD>Swap file for command lists</TD>
<TD>High</TD>
</TR>
<TR>
<TD>rastertoepson</TD>
<TD>693k</TD>
<TD>1M</TD>
<TD>None</TD>
<TD>Low</TD>
</TR>
<TR>
<TD>rastertohp</TD>
<TD>690k</TD>
<TD>1M</TD>
<TD>None</TD>
<TD>Low</TD>
</TR>
<TR>
<TD>texttops</TD>
<TD>638k</TD>
<TD>4*cols*rows</TD>
<TD>None</TD>
<TD>Low</TD>
</TR>
</TABLE></CENTER>
<H1>Scheduler Objects</H1>
<P>The <CODE>cupsd</CODE> program is the CUPS scheduler process. It manages
many interdependent server objects that are used to manage and print files
to printers.
<P>The following table provides the memory and disk cost associated with each
server object.
<CENTER><TABLE WIDTH="80%" BORDER="1">
<TR>
<TH>Object</TH>
<TH>Memory Per</TH>
<TH>Disk Per</TH>
</TR>
<TR>
<TD>Browse ACL</TD>
<TD>1k</TD>
<TD>120</TD>
</TR>
<TR>
<TD>Browse Poll</TD>
<TD>24</TD>
<TD>80</TD>
</TR>
<TR>
<TD>Browse Relay</TD>
<TD>28</TD>
<TD>80</TD>
</TR>
<TR>
<TD>Certificate</TD>
<TD>76</TD>
<TD>32</TD>
</TR>
<TR>
<TD>Class</TD>
<TD>9k</TD>
<TD>200</TD>
</TR>
<TR>
<TD>Client</TD>
<TD>13k</TD>
<TD>-</TD>
</TR>
<TR>
<TD>Device</TD>
<TD>256</TD>
<TD>-</TD>
</TR>
<TR>
<TD>Job</TD>
<TD>2k</TD>
<TD>1k + size of document files</TD>
</TR>
<TR>
<TD>Location ACL</TD>
<TD>1k</TD>
<TD>120</TD>
</TR>
<TR>
<TD>MIME Filter</TD>
<TD>268</TD>
<TD>80</TD>
</TR>
<TR>
<TD>MIME Type</TD>
<TD>340</TD>
<TD>80</TD>
</TR>
<TR>
<TD>PPD</TD>
<TD>200</TD>
<TD>656</TD>
</TR>
<TR>
<TD>Printer</TD>
<TD>11k</TD>
<TD>32k</TD>
</TR>
</TABLE></CENTER>
<EMBED SRC="glossary.shtml">
</BODY>
</HTML>
+1 -1
Ver Arquivo
@@ -99,7 +99,7 @@ sections:</P>
<LI>CUPS-SSR-1.1: CUPS Software Security Report </LI>
<LI>CUPS-STP-1.1: CUPS Software Test Plan </LI>
<LI>CUPS-SUM-1.1.x: CUPS Software Users Manual </LI>
<LI>CUPS-SVD-1.1: CUPS Software Version Description </LI>
<LI>CUPS-SVD-1.1.x: CUPS Software Version Description </LI>
</UL>
<H2><A NAME="2_2">2.2 Other Documents</A></H2>
<P>The following non-CUPS documents are referenced by this document: </P>
BIN
Ver Arquivo
Arquivo binário não exibido.
+1 -1
Ver Arquivo
@@ -93,7 +93,7 @@ EPSON printers are included that use these filters. </P>
<LI>CUPS-SSR-1.1: CUPS Software Security Report </LI>
<LI>CUPS-STP-1.1: CUPS Software Test Plan </LI>
<LI>CUPS-SUM-1.1.x: CUPS Software Users Manual </LI>
<LI>CUPS-SVD-1.1: CUPS Software Version Description </LI>
<LI>CUPS-SVD-1.1.x: CUPS Software Version Description </LI>
</UL>
<H2><A NAME="2_2">2.2 Other Documents</A></H2>
<P>The following non-CUPS documents are referenced by this document: </P>
BIN
Ver Arquivo
Arquivo binário não exibido.
+3 -3
Ver Arquivo
@@ -4,7 +4,7 @@
<TITLE> CUPS Software Users Manual</TITLE>
<META NAME="AUTHOR" CONTENT="Easy Software Products">
<META NAME="COPYRIGHT" CONTENT="Copyright 1997-2000, All Rights Reserved">
<META NAME="DOCNUMBER" CONTENT="CUPS-SUM-1.1.1">
<META NAME="DOCNUMBER" CONTENT="CUPS-SUM-1.1">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<STYLE>
BODY { font-family: serif; font-size: 11.0pt }
@@ -22,7 +22,7 @@ PRE { font-size: 9.0pt }
<BODY BGCOLOR="#ffffff">
<CENTER><A HREF="#CONTENTS"><IMG SRC="images/cups-large.gif" BORDER="0" WIDTH="100%"><BR>
<H1> CUPS Software Users Manual</H1></A><BR>
CUPS-SUM-1.1.1<BR>
CUPS-SUM-1.1<BR>
Easy Software Products<BR>
Copyright 1997-2000, All Rights Reserved<BR>
</CENTER>
@@ -125,7 +125,7 @@ Copyright 1997-2000, All Rights Reserved<BR>
<HR>
<H1 ALIGN="RIGHT"><A NAME="1">Preface</A></H1>
<P>This software users manual describes how to use the Common UNIX
Printing System<SUP>TM</SUP> (&quot;CUPS<SUP>TM</SUP>&quot;) Version 1.1.1. </P>
Printing System<SUP>TM</SUP> (&quot;CUPS<SUP>TM</SUP>&quot;) Version 1.1. </P>
<H2><A NAME="1_1">System Overview</A></H2>
<P>CUPS provides a portable printing layer for UNIX&reg;-based operating
systems. It has been developed by <A HREF="http://www.easysw.com">Easy
+204 -201
Ver Arquivo
@@ -1,6 +1,6 @@
%PDF-1.2
%âãÏÓ
1 0 obj<</Producer(htmldoc 1.8.8 Copyright 1997-2000 Easy Software Products, All Rights Reserved.)/CreationDate(D:20000731155420Z)/Title( CUPS Software Users Manual)/Author(Easy Software Products)>>endobj
1 0 obj<</Producer(htmldoc 1.8.8 Copyright 1997-2000 Easy Software Products, All Rights Reserved.)/CreationDate(D:20000710174143Z)/Title( CUPS Software Users Manual)/Author(Easy Software Products)>>endobj
2 0 obj<</Type/Encoding/Differences[ 32/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle/parenleft/parenright/asterisk/plus/comma/minus/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/grave/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde 128/Euro 130/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE 145/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe 159/Ydieresis/space/exclamdown/cent/sterling/currency/yen/brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]>>endobj
3 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier/Encoding 2 0 R>>endobj
4 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier-Bold/Encoding 2 0 R>>endobj
@@ -343,10 +343,10 @@ h)
Wuáiè†X!dr¸Ñ˜ÄjøCýsȵèÝJ´§•¸rŽlH[âã‹:\…’K\[°'¢@Ø¢C­€]Ÿ«VrU×Ê=öEèà£ÃDïû¯´ùÖÕÌŸêsí¯#èùVž«áxåÛ-â;^WÈ\OÌɱonn0¾d=äª\ÝT”‚lˆ{ó€¼0ÚT¹WWojò$ ð\{–l lbÕ¹.¶*qeÝKž„‰×ñÒáÊY²Ñ˜×Ó{Šyq—KΈÚ{ÈhzªX¯üPy8Å:F—« »òúh9ÔNþnï5ùÒ*¹Ä€+“,¯ñª è¨Wo'ÍéŧñýGH©\SßËy°†ÇeŽæãvQ°2Ÿ,+çEQÁse¼(*t.a#‡s5–r*WÍçª>š^¸
vt6מÍ•4™¿peM/\œ¥ùp‰'óg®úÃÉ<–kÎ-‡Í‹ó·•Ü:\[æ»uîªßFwÒ²ßmµwpœOm›.Ò,²Î-ï\·u›þà,•\×FÍÕI¿\¹r¶ûRãkT§×ćk¥äjÔûËÛ}©4fÜkbÄኔ\¹zß¿h£¶W]nj¯‰;×NÁU
UPn9Ár­4áËNÅ•r¸RW6|ŒŽ¹Î«Ëë51áp%C®wшﲫÝÊ-§h®š+Vqõó¡¸g¯r~ô'/ÙÅlp\ëQ®Ó¿^òHjÁZv,¥Šk£tEr<Џ¨ëdÞ7ÛnlÌ\—᯻?"éx@·‰+×à¢Zr—Ûj{‡àꤥÈ]|Ëíé71âp
.7.y<€
.7.y<€
£®[‘"K~­lâŽÃÕ¿(—óM
-áðì8—Ðpz®”ÃÕ¿¨7RNf™*Œj1\·Ùÿj®˜ÃÕ»¨ðTà¹b\Šã|f.ÅEußÁnßÊ#`ÂÃÄžk¨Šã|f.ÝÀT5_ŽÜp
×^­óŠã|®áE…ÒÁ&ŒJ[=Ì®9·r‡Çù\Ër¥#Bq­Q\µÚÕš8JqœÁ5¼HËU;â*”ñÆË- é5qxœÁ5¼(S:"×Ã%¢"ÎSÇù0\ƒ‹´\?Œê´áò;ô¼RqœÃ5¸¨[ývGסµœm”MçÃp
×^­óŠã|®áE…ÒÁ&ŒJ[=Ì®9·r‡Çù\Ër¥#Bq­Q\µÚÕš8JqœÁ5¼HËU;â*”ñÆË- é5qxœÁ5¼(S:"×Ã%¢"ÎSÇù0\ƒ‹´\?Œê´áò;ô¼RqœÃ5¸¨[ývGסµœm”MçÃp
.Òr?ŒjÕ£YU4ñ"Ú4®þE\-š+Uý6.5MìçCqõ/Òr¹ê^,ÕMìçCqõ/Òríùáa«68Íòþ ‰ýã|(®þEY/MõÊ•;ãŠK
W'T•šØ;·ãê]ÄçJ\ñ®óÛ‹_¾,{lÔMìçÃqõ.Ê;Š-qen¸:ù‡Ýxã¼ì‘ª›Ø;·ãê]4ˆ£*,WÚâæ)­Š«ó~(EO¢Må’/Ú÷#¢âÂùåªÇ¸äã|H.ÅÀn÷X®µW£‹ç¯AeNä’/ªúC%;s Ï\BsŠCqœÉ%_T÷$[DX®W;Ê.é"Ñ Í« ¸—|Q&°üÂeÎ=Üyä’Žóa¹ä‹
E2þW=/WÁá’.ªn»Ê·EÞÙ¹j—t‘è¶²¾Æ6ÓJ\‚Ã%_”ßö¿ž#Wé“«{œÍ%_T
@@ -360,8 +360,11 @@ endobj
%°ß{ZÀ‘›ì ù=Å¡­´e&=@~¯thG„â‚¥Âèo‘ßoXÀQã¸÷}ô•±mç˜Á8lc®Á9æ½Qæ#/Á9°Üè–ã‚s`™±Åš3‡}€²×ÀXcV@éK`3ËÚ¬Þ€ò9°ÊÜX@=€ÀXa6.@l`3°½9êT˜ËÍ" mœ£ „m®gƒú¡€S˜ „A:ઢ©€ìÚ„>G˜ ‡bH}fv_ï\bAB/0Ò
-Vè׋‘Ã]‡+_Ž V˜È+ A,0
-V裥ÈaÜ媗#ˆ(Â
*âƒ-ôéBäpÝåB} Â(»‚Ç¥€VÏP„#C̾:\ÕB")£œ· Å ÙHd.„Ð'TæB,ÝÄ‹u+_†pd8üƒȇ
B8j¤—Â!Gl#´A `1Û¨«>BðÌØå
*âƒ-ôéBäpÝåB} Â(»‚Ç¥€VÏP„#C̾:\ÕB")£œ· Å ÙHd.„Ð'TæB,ÝÄ‹u+_†pd8üƒȇ
B8j¤—Â!Gl#´A `1Û¨«>BðÌØå
h)‚¸ú,(ÖCéÑg­¡% ÇÜ ýŽhIÂ1ó3?ú•‚+~€áï€d¼s°=z @KŽy>rs˜y€Õø©bå™H*:sˆ‡–(30Ê&ÐúyÖ9eˆιÈQDs‘ƒ²ÔÄ9£Ò7”AÄžžQéI+Ò@½t>¥Ï)Mª’ζÚ&HšÔ¡9!"li¥åÚ‡kˆ´ål¨vc! »ô™ ±¢g83âžö¼nų¢ †®@žâÌcˆñqCË`3Ĉ9qx@Ë`iˆf(Í4€ó`¦Ÿ¬TÔ‡
-g€M>kΩj-k€MœdY“½´¬ +ÈcX]>±rz‹€5D'V
œéöÔ1GNÀY™8樼A:©Ôï˜gB©œÇ ÜÏ™.H,8ޏÃtºc
wàÊêd†kÍÁ…Tú‰:,c=càÔ4Æ €?R§é°ŒÖÛNÓaÓ™_‚& :C¢Åqí±`»0ºk…äªé0‘qƒph­ ±÷UKó„ªY.´v†èuâ,øV­!zÕzìÓÝ ¹ð†èQ:j ÖÖãrfØ ¬OKüñÍPË%¢¹-±±’.h­
Ñ“&æV>¬­'BõÊXZ?Þ¹±´°öõ^†˜È,e \<1÷3–½í#×½{&ܸ¥rU¤ÍJÉ\"š LdöܹK0;¸)82i\o\´;¼•Ÿ'–‘P¬.t¬Â^¿¹1p1_uFÃÒÇàd}¡ãNSbé¥
\EiW°/)áøf08Ô&[õ cœFwžÿf<[l2êR6WqÀúßtŽ*OôÛø\+Š¿S;‹añcq€‰‹ÙaQt_zî¬ñ¹‘‘«ˆ¸ÿ¥ó/9k·6\"â—{”56¼OßYqYtØqœ=šÌñ…Ie˜>˜¹l:ìŒöªÿì§Œý¹K.ê4Li¯ƒ~/ÛÌæqµ¶\Mä¦ÜÝo·Û/¯oåe»}È,?mcÍå¢ÃœSþ#†KȵqÀe'‰³tŽ+¼Û9á
@@ -1098,202 +1101,202 @@ xref
0000002025 00000 n
0000002103 00000 n
0000002180 00000 n
0000002025 00000 n
0000002103 00000 n
0000002180 00000 n
0000002259 00000 n
0000002342 00000 n
0000002419 00000 n
0000002501 00000 n
0000002586 00000 n
0000002645 00000 n
0000002697 00000 n
0000002782 00000 n
0000002834 00000 n
0000002918 00000 n
0000002949 00000 n
0000003053 00000 n
0000003157 00000 n
0000003261 00000 n
0000003365 00000 n
0000003469 00000 n
0000003521 00000 n
0000003626 00000 n
0000003730 00000 n
0000003761 00000 n
0000003812 00000 n
0000003897 00000 n
0000003921 00000 n
0000004026 00000 n
0000004130 00000 n
0000004161 00000 n
0000004217 00000 n
0000004302 00000 n
0000004352 00000 n
0000004437 00000 n
0000004468 00000 n
0000004521 00000 n
0000004606 00000 n
0000004662 00000 n
0000004747 00000 n
0000004806 00000 n
0000004890 00000 n
0000004928 00000 n
0000004980 00000 n
0000005065 00000 n
0000005089 00000 n
0000005193 00000 n
0000005298 00000 n
0000005403 00000 n
0000005508 00000 n
0000005613 00000 n
0000005718 00000 n
0000005822 00000 n
0000005927 00000 n
0000006032 00000 n
0000006137 00000 n
0000006242 00000 n
0000006347 00000 n
0000006452 00000 n
0000006557 00000 n
0000006662 00000 n
0000006766 00000 n
0000006871 00000 n
0000006976 00000 n
0000007081 00000 n
0000007186 00000 n
0000007291 00000 n
0000007396 00000 n
0000007501 00000 n
0000007605 00000 n
0000007710 00000 n
0000007815 00000 n
0000007920 00000 n
0000008025 00000 n
0000008130 00000 n
0000008235 00000 n
0000008340 00000 n
0000008445 00000 n
0000008550 00000 n
0000008655 00000 n
0000008760 00000 n
0000008865 00000 n
0000008970 00000 n
0000009075 00000 n
0000009180 00000 n
0000009285 00000 n
0000009390 00000 n
0000009494 00000 n
0000009597 00000 n
0000009700 00000 n
0000010025 00000 n
0000010130 00000 n
0000010235 00000 n
0000010340 00000 n
0000010444 00000 n
0000010549 00000 n
0000010654 00000 n
0000010760 00000 n
0000010865 00000 n
0000010970 00000 n
0000011075 00000 n
0000011180 00000 n
0000011285 00000 n
0000011390 00000 n
0000011495 00000 n
0000011600 00000 n
0000011705 00000 n
0000011810 00000 n
0000011916 00000 n
0000012022 00000 n
0000012128 00000 n
0000012234 00000 n
0000012339 00000 n
0000012444 00000 n
0000012640 00000 n
0000012674 00000 n
0000012708 00000 n
0000013674 00000 n
0000013723 00000 n
0000013772 00000 n
0000013821 00000 n
0000013870 00000 n
0000013919 00000 n
0000013968 00000 n
0000014017 00000 n
0000014066 00000 n
0000014115 00000 n
0000014164 00000 n
0000014213 00000 n
0000014262 00000 n
0000014311 00000 n
0000014360 00000 n
0000014409 00000 n
0000014458 00000 n
0000014507 00000 n
0000014556 00000 n
0000014605 00000 n
0000014654 00000 n
0000014703 00000 n
0000014752 00000 n
0000014801 00000 n
0000014850 00000 n
0000014899 00000 n
0000014948 00000 n
0000014997 00000 n
0000015046 00000 n
0000015095 00000 n
0000015144 00000 n
0000015193 00000 n
0000015242 00000 n
0000015291 00000 n
0000015340 00000 n
0000015389 00000 n
0000015438 00000 n
0000015487 00000 n
0000015536 00000 n
0000015585 00000 n
0000015634 00000 n
0000015683 00000 n
0000015732 00000 n
0000015781 00000 n
0000015830 00000 n
0000015879 00000 n
0000015928 00000 n
0000015977 00000 n
0000016026 00000 n
0000016075 00000 n
0000016124 00000 n
0000016173 00000 n
0000016222 00000 n
0000016271 00000 n
0000016320 00000 n
0000016369 00000 n
0000016418 00000 n
0000016467 00000 n
0000016516 00000 n
0000016565 00000 n
0000016614 00000 n
0000016663 00000 n
0000016712 00000 n
0000016761 00000 n
0000016810 00000 n
0000016859 00000 n
0000016908 00000 n
0000016957 00000 n
0000017006 00000 n
0000017411 00000 n
0000017565 00000 n
0000023915 00000 n
0000023937 00000 n
0000024032 00000 n
0000024134 00000 n
0000024154 00000 n
0000024301 00000 n
0000025205 00000 n
0000025226 00000 n
0000002259 00000 n
0000002342 00000 n
0000002419 00000 n
0000002501 00000 n
0000002586 00000 n
0000002645 00000 n
0000002697 00000 n
0000002782 00000 n
0000002834 00000 n
0000002918 00000 n
0000002949 00000 n
0000003053 00000 n
0000003157 00000 n
0000003261 00000 n
0000003365 00000 n
0000003469 00000 n
0000003521 00000 n
0000003626 00000 n
0000003730 00000 n
0000003761 00000 n
0000003812 00000 n
0000003897 00000 n
0000003921 00000 n
0000004026 00000 n
0000004130 00000 n
0000004161 00000 n
0000004217 00000 n
0000004302 00000 n
0000004352 00000 n
0000004437 00000 n
0000004468 00000 n
0000004521 00000 n
0000004606 00000 n
0000004662 00000 n
0000004747 00000 n
0000004806 00000 n
0000004890 00000 n
0000004928 00000 n
0000004980 00000 n
0000005065 00000 n
0000005089 00000 n
0000005193 00000 n
0000005298 00000 n
0000005403 00000 n
0000005508 00000 n
0000005613 00000 n
0000005718 00000 n
0000005822 00000 n
0000005927 00000 n
0000006032 00000 n
0000006137 00000 n
0000006242 00000 n
0000006347 00000 n
0000006452 00000 n
0000006557 00000 n
0000006662 00000 n
0000006766 00000 n
0000006871 00000 n
0000006976 00000 n
0000007081 00000 n
0000007186 00000 n
0000007291 00000 n
0000007396 00000 n
0000007501 00000 n
0000007605 00000 n
0000007710 00000 n
0000007815 00000 n
0000007920 00000 n
0000008025 00000 n
0000008130 00000 n
0000008235 00000 n
0000008340 00000 n
0000008445 00000 n
0000008550 00000 n
0000008655 00000 n
0000008760 00000 n
0000008865 00000 n
0000008970 00000 n
0000009075 00000 n
0000009180 00000 n
0000009285 00000 n
0000009390 00000 n
0000009494 00000 n
0000009597 00000 n
0000009700 00000 n
0000010025 00000 n
0000010130 00000 n
0000010235 00000 n
0000010340 00000 n
0000010444 00000 n
0000010549 00000 n
0000010654 00000 n
0000010760 00000 n
0000010865 00000 n
0000010970 00000 n
0000011075 00000 n
0000011180 00000 n
0000011285 00000 n
0000011390 00000 n
0000011495 00000 n
0000011600 00000 n
0000011705 00000 n
0000011810 00000 n
0000011916 00000 n
0000012022 00000 n
0000012128 00000 n
0000012234 00000 n
0000012339 00000 n
0000012444 00000 n
0000012640 00000 n
0000012674 00000 n
0000012708 00000 n
0000013674 00000 n
0000013723 00000 n
0000013772 00000 n
0000013821 00000 n
0000013870 00000 n
0000013919 00000 n
0000013968 00000 n
0000014017 00000 n
0000014066 00000 n
0000014115 00000 n
0000014164 00000 n
0000014213 00000 n
0000014262 00000 n
0000014311 00000 n
0000014360 00000 n
0000014409 00000 n
0000014458 00000 n
0000014507 00000 n
0000014556 00000 n
0000014605 00000 n
0000014654 00000 n
0000014703 00000 n
0000014752 00000 n
0000014801 00000 n
0000014850 00000 n
0000014899 00000 n
0000014948 00000 n
0000014997 00000 n
0000015046 00000 n
0000015095 00000 n
0000015144 00000 n
0000015193 00000 n
0000015242 00000 n
0000015291 00000 n
0000015340 00000 n
0000015389 00000 n
0000015438 00000 n
0000015487 00000 n
0000015536 00000 n
0000015585 00000 n
0000015634 00000 n
0000015683 00000 n
0000015732 00000 n
0000015781 00000 n
0000015830 00000 n
0000015879 00000 n
0000015928 00000 n
0000015977 00000 n
0000016026 00000 n
0000016075 00000 n
0000016124 00000 n
0000016173 00000 n
0000016222 00000 n
0000016271 00000 n
0000016320 00000 n
0000016369 00000 n
0000016418 00000 n
0000016467 00000 n
0000016516 00000 n
0000016565 00000 n
0000016614 00000 n
0000016663 00000 n
0000016712 00000 n
0000016761 00000 n
0000016810 00000 n
0000016859 00000 n
0000016908 00000 n
0000016957 00000 n
0000017006 00000 n
0000017411 00000 n
0000017565 00000 n
0000023912 00000 n
0000023934 00000 n
0000024029 00000 n
0000024131 00000 n
0000024151 00000 n
0000024298 00000 n
0000025202 00000 n
0000025223 00000 n
0000025417 00000 n
0000026540 00000 n
0000026562 00000 n
0000026704 00000 n
0000026543 00000 n
0000027130 00000 n
0000027151 00000 n
0000026707 00000 n
0000027265 00000 n
0000027450 00000 n
+2 -2
Ver Arquivo
@@ -2,7 +2,7 @@
<HEAD>
<META NAME="Description" CONTENT="Common UNIX Printing System Software Users Manual">
<META NAME="COPYRIGHT" CONTENT="Copyright 1997-2000, All Rights Reserved">
<META NAME="DOCNUMBER" CONTENT="CUPS-SUM-1.1.1">
<META NAME="DOCNUMBER" CONTENT="CUPS-SUM-1.1">
<META NAME="Author" CONTENT="Easy Software Products">
<TITLE>CUPS Software Users Manual</TITLE>
</HEAD>
@@ -11,7 +11,7 @@
<H1 ALIGN="RIGHT">Preface</H1>
<P>This software users manual describes how to use the Common UNIX Printing
System<SUP>TM</SUP> ("CUPS<SUP>TM</SUP>") Version 1.1.1.
System<SUP>TM</SUP> ("CUPS<SUP>TM</SUP>") Version 1.1.
<EMBED SRC="system-overview.shtml">
+1 -1
Ver Arquivo
@@ -117,7 +117,7 @@ following sections:</P>
<LI>CUPS-SSR-1.1: CUPS Software Security Report </LI>
<LI>CUPS-STP-1.1: CUPS Software Test Plan </LI>
<LI>CUPS-SUM-1.1.x: CUPS Software Users Manual </LI>
<LI>CUPS-SVD-1.1: CUPS Software Version Description </LI>
<LI>CUPS-SVD-1.1.x: CUPS Software Version Description </LI>
</UL>
<H2><A NAME="2_2">2.2 Other Documents</A></H2>
<P>The following non-CUPS documents are referenced by this document: </P>
+5 -7
Ver Arquivo
@@ -1,6 +1,6 @@
%PDF-1.2
%âãÏÓ
1 0 obj<</Producer(htmldoc 1.8.8 Copyright 1997-2000 Easy Software Products, All Rights Reserved.)/CreationDate(D:20000731155427Z)/Title( CUPS Software Version Description)/Author(Easy Software Products)>>endobj
1 0 obj<</Producer(htmldoc 1.8.8 Copyright 1997-2000 Easy Software Products, All Rights Reserved.)/CreationDate(D:20000710174146Z)/Title( CUPS Software Version Description)/Author(Easy Software Products)>>endobj
2 0 obj<</Type/Encoding/Differences[ 32/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle/parenleft/parenright/asterisk/plus/comma/minus/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/grave/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde 128/Euro 130/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE 145/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe 159/Ydieresis/space/exclamdown/cent/sterling/currency/yen/brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]>>endobj
3 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier/Encoding 2 0 R>>endobj
4 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier-Bold/Encoding 2 0 R>>endobj
@@ -229,11 +229,9 @@ endobj
110 0 obj<</Length 111 0 R/Filter/FlateDecode>>stream
xÚ+ä2T0BCc3JÎår
ár
á
äHendstream
endobj
111 0 obj
31
á
äHendstream
endobj
111 0 obj
31
endobj
@@ -540,7 +538,7 @@ xref
0000018910 00000 n
0000020311 00000 n
0000020333 00000 n
0000018910 00000 n
0000020446 00000 n
0000020637 00000 n
0000020658 00000 n
0000020807 00000 n
+1 -1
Ver Arquivo
@@ -69,7 +69,7 @@ install:
$(INSTALL_DATA) raster.h $(INCLUDEDIR)/cups
-$(MKDIR) $(LIBDIR)
$(CHMOD) ugo+rx $(LIBDIR)
$(INSTALL_LIB) $(LIBCUPSIMAGE) $(LIBDIR)
$(INSTALL_DATA) $(LIBCUPSIMAGE) $(LIBDIR)
-if test $(LIBCUPSIMAGE) != "libcupsimage.a" -a $(LIBCUPSIMAGE) != "libcupsimage.la"; then \
$(RM) `basename $(LIBCUPSIMAGE) .2`; \
$(LN) $(LIBCUPSIMAGE) `basename $(LIBCUPSIMAGE) .2`; \
+2 -2
Ver Arquivo
@@ -229,9 +229,9 @@ update_transform(void)
if (FitPlot)
{
if (Rotation == 0 || Rotation == 180)
PenScaling = page_width / PlotSize[1];
PenScaling *= page_width / PlotSize[1];
else
PenScaling = page_width / PlotSize[0];
PenScaling *= page_width / PlotSize[0];
}
else
PenScaling = 1.0;
+6 -16
Ver Arquivo
@@ -54,7 +54,6 @@ ImageReadTIFF(image_t *img, /* IO - Image */
TIFF *tif; /* TIFF file */
uint32 width, height; /* Size of image */
uint16 photometric, /* Colorspace */
compression, /* Type of compression */
orientation, /* Orientation */
resunit, /* Units for resolution */
samples, /* Number of samples/pixel */
@@ -102,7 +101,6 @@ ImageReadTIFF(image_t *img, /* IO - Image */
if (!TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &width) ||
!TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &height) ||
!TIFFGetField(tif, TIFFTAG_PHOTOMETRIC, &photometric) ||
!TIFFGetField(tif, TIFFTAG_COMPRESSION, &compression) ||
!TIFFGetField(tif, TIFFTAG_SAMPLESPERPIXEL, &samples) ||
!TIFFGetField(tif, TIFFTAG_BITSPERSAMPLE, &bits))
{
@@ -141,11 +139,6 @@ ImageReadTIFF(image_t *img, /* IO - Image */
img->xppi = 128;
img->yppi = 128;
}
fprintf(stderr, "DEBUG: TIFF resolution = %fx%f, units=%d\n",
xres, yres, resunit);
fprintf(stderr, "DEBUG: Stored resolution = %dx%d PPI\n",
img->xppi, img->yppi);
}
/*
@@ -248,23 +241,20 @@ ImageReadTIFF(image_t *img, /* IO - Image */
* each which must be handled separately...
*/
fprintf(stderr, "DEBUG: photometric = %d\n", photometric);
fprintf(stderr, "DEBUG: compression = %d\n", compression);
switch (photometric)
{
case PHOTOMETRIC_MINISWHITE :
case PHOTOMETRIC_MINISBLACK :
if (photometric == PHOTOMETRIC_MINISWHITE)
{
zero = 255;
one = 0;
}
else
if (photometric == PHOTOMETRIC_MINISBLACK)
{
zero = 0;
one = 255;
}
else
{
zero = 255;
one = 0;
}
if (orientation < ORIENTATION_LEFTTOP)
{
+52 -137
Ver Arquivo
@@ -73,7 +73,6 @@ main(int argc, /* I - Number of command-line arguments */
ysize,
xsize2,
ysize2;
float aspect; /* Aspect ratio */
int xpages, /* # x pages */
ypages, /* # y pages */
xpage, /* Current x page */
@@ -94,63 +93,24 @@ main(int argc, /* I - Number of command-line arguments */
float g; /* Gamma correction value */
float b; /* Brightness factor */
float zoom; /* Zoom facter */
int xppi, yppi; /* Pixels-per-inch */
int ppi; /* Pixels-per-inch */
int hue, sat; /* Hue and saturation adjustment */
int realcopies; /* Real copies being printed */
float left, top; /* Left and top of image */
char filename[1024]; /* Name of file to print */
/*
* Check arguments...
*/
if (argc < 6 || argc > 7)
if (argc != 7)
{
fputs("ERROR: imagetops job-id user title copies options [file]\n", stderr);
fputs("ERROR: imagetops job-id user title copies options file\n", stderr);
return (1);
}
fprintf(stderr, "INFO: %s %s %s %s %s %s %s\n", argv[0], argv[1], argv[2],
argv[3], argv[4], argv[5], argv[6] ? argv[6] : "(null)");
/*
* Copy stdin as needed...
*/
if (argc == 6)
{
FILE *fp; /* File to read from */
char buffer[8192]; /* Buffer to read into */
int bytes; /* # of bytes to read */
if ((fp = fopen(cupsTempFile(filename, sizeof(filename)), "w")) == NULL)
{
perror("ERROR: Unable to copy image file");
return (1);
}
fprintf(stderr, "DEBUG: imagetops - copying to temp print file \"%s\"\n",
filename);
while ((bytes = fread(buffer, 1, sizeof(buffer), stdin)) > 0)
fwrite(buffer, 1, bytes, fp);
fclose(fp);
}
else
{
strncpy(filename, argv[6], sizeof(filename) - 1);
filename[sizeof(filename) - 1] = '\0';
}
/*
* Process command-line options and write the prolog...
*/
zoom = 0.0;
xppi = 0;
yppi = 0;
ppi = 0;
hue = 0;
sat = 100;
g = 1.0;
@@ -191,8 +151,7 @@ main(int argc, /* I - Number of command-line arguments */
zoom = atoi(val) * 0.01;
if ((val = cupsGetOption("ppi", num_options, options)) != NULL)
if (sscanf(val, "%dx%d", &xppi, &yppi) < 2)
yppi = xppi;
ppi = atoi(val);
if ((val = cupsGetOption("position", num_options, options)) != NULL)
{
@@ -255,12 +214,7 @@ main(int argc, /* I - Number of command-line arguments */
colorspace = ColorDevice ? IMAGE_RGB : IMAGE_WHITE;
img = ImageOpen(filename, colorspace, IMAGE_WHITE, sat, hue, NULL);
if (argc == 6)
unlink(filename);
if (img == NULL)
if ((img = ImageOpen(argv[6], colorspace, IMAGE_WHITE, sat, hue, NULL)) == NULL)
{
fputs("ERROR: Unable to open image file for printing!\n", stderr);
ppdClose(ppd);
@@ -273,56 +227,46 @@ main(int argc, /* I - Number of command-line arguments */
* Scale as necessary...
*/
if (zoom == 0.0 && ppi == 0)
ppi = img->xppi;
xprint = (PageRight - PageLeft) / 72.0;
yprint = (PageTop - PageBottom) / 72.0;
if (zoom == 0.0 && xppi == 0)
{
xppi = img->xppi;
yppi = img->yppi;
}
if (yppi == 0)
yppi = xppi;
if (xppi > 0)
if (ppi > 0)
{
/*
* Scale the image as neccesary to match the desired pixels-per-inch.
*/
xinches = (float)img->xsize / (float)xppi;
yinches = (float)img->ysize / (float)yppi;
xinches = (float)img->xsize / (float)ppi;
yinches = (float)img->ysize / (float)ppi;
if (cupsGetOption("orientation", num_options, options) == NULL &&
cupsGetOption("landscape", num_options, options) == NULL)
/*
* Rotate the image if it will fit landscape but not portrait...
*/
if ((xinches > xprint || yinches > yprint) &&
xinches <= yprint && yinches <= xprint)
{
/*
* Rotate the image if it will fit landscape but not portrait...
* Rotate the image as needed...
*/
if ((xinches > xprint || yinches > yprint) &&
xinches <= yprint && yinches <= xprint)
{
/*
* Rotate the image as needed...
*/
Orientation = (Orientation + 1) & 3;
xsize = yprint;
yprint = xprint;
xprint = xsize;
Orientation = (Orientation + 1) & 3;
xsize = yprint;
yprint = xprint;
xprint = xsize;
xsize = PageLeft;
PageLeft = PageBottom;
PageBottom = PageWidth - PageRight;
PageRight = PageTop;
PageTop = PageLength - xsize;
xsize = PageLeft;
PageLeft = PageBottom;
PageBottom = PageWidth - PageRight;
PageRight = PageTop;
PageTop = PageLength - xsize;
xsize = PageWidth;
PageWidth = PageLength;
PageLength = xsize;
}
xsize = PageWidth;
PageWidth = PageLength;
PageLength = xsize;
}
}
else
@@ -331,75 +275,36 @@ main(int argc, /* I - Number of command-line arguments */
* Scale percentage of page size...
*/
aspect = (float)img->yppi / (float)img->xppi;
fprintf(stderr, "DEBUG: img->xppi = %d, img->yppi = %d, aspect = %f\n",
img->xppi, img->yppi, aspect);
xsize = xprint * zoom;
ysize = xsize * img->ysize / img->xsize / aspect;
ysize = xsize * img->ysize / img->xsize;
if (ysize > (yprint * zoom))
{
ysize = yprint * zoom;
xsize = ysize * img->xsize * aspect / img->ysize;
xsize = ysize * img->xsize / img->ysize;
}
xsize2 = yprint * zoom;
ysize2 = xsize2 * img->ysize / img->xsize / aspect;
ysize2 = xsize2 * img->ysize / img->xsize;
if (ysize2 > (xprint * zoom))
{
ysize2 = xprint * zoom;
xsize2 = ysize2 * img->xsize * aspect / img->ysize;
xsize2 = ysize2 * img->xsize / img->ysize;
}
fprintf(stderr, "DEBUG: xsize = %.0f, ysize = %.0f\n", xsize, ysize);
fprintf(stderr, "DEBUG: xsize2 = %.0f, ysize2 = %.0f\n", xsize2, ysize2);
/*
* Choose the rotation with the largest area, but prefer
* portrait if they are equal...
*/
if (cupsGetOption("orientation", num_options, options) == NULL &&
cupsGetOption("landscape", num_options, options) == NULL)
if ((xsize * ysize) < (xsize2 * xsize2))
{
/*
* Choose the rotation with the largest area, but prefer
* portrait if they are equal...
* Do landscape orientation...
*/
if ((xsize * ysize) < (xsize2 * xsize2))
{
/*
* Do landscape orientation...
*/
Orientation = 1;
xinches = xsize2;
yinches = ysize2;
xprint = (PageTop - PageBottom) / 72.0;
yprint = (PageRight - PageLeft) / 72.0;
xsize = PageLeft;
PageLeft = PageBottom;
PageBottom = PageWidth - PageRight;
PageRight = PageTop;
PageTop = PageLength - xsize;
xsize = PageWidth;
PageWidth = PageLength;
PageLength = xsize;
}
else
{
/*
* Do portrait orientation...
*/
Orientation = 0;
xinches = xsize;
yinches = ysize;
}
}
else if (Orientation & 1)
{
Orientation = 1;
xinches = xsize2;
yinches = ysize2;
xprint = (PageTop - PageBottom) / 72.0;
@@ -415,6 +320,16 @@ main(int argc, /* I - Number of command-line arguments */
PageWidth = PageLength;
PageLength = xsize;
}
else
{
/*
* Do portrait orientation...
*/
Orientation = 0;
xinches = xsize;
yinches = ysize;
}
}
xpages = ceil(xinches / xprint);
+73 -158
Ver Arquivo
@@ -24,8 +24,6 @@
* Contents:
*
* main() - Main entry...
* exec_code() - Execute PostScript setpagedevice commands as
* appropriate.
* format_CMY() - Convert image data to CMY.
* format_CMYK() - Convert image data to CMYK.
* format_K() - Convert image data to black.
@@ -42,6 +40,10 @@
* Include necessary headers...
*/
/*
* Include necessary headers...
*/
#include "common.h"
#include "image.h"
#include "raster.h"
@@ -121,7 +123,7 @@ int Planes[] = /* Number of planes for each colorspace */
* Local functions...
*/
static void exec_code(cups_page_header_t *header, const char *code);
static void exec_choice(cups_page_header_t *header, ppd_choice_t *choice);
static void format_CMY(cups_page_header_t *header, unsigned char *row, int y, int z, int xsize, int ysize, int yerr0, int yerr1, ib_t *r0, ib_t *r1);
static void format_CMYK(cups_page_header_t *header, unsigned char *row, int y, int z, int xsize, int ysize, int yerr0, int yerr1, ib_t *r0, ib_t *r1);
static void format_K(cups_page_header_t *header, unsigned char *row, int y, int z, int xsize, int ysize, int yerr0, int yerr1, ib_t *r0, ib_t *r1);
@@ -153,7 +155,6 @@ main(int argc, /* I - Number of command-line arguments */
ysize,
xsize2,
ysize2;
float aspect; /* Aspect ratio */
int xpages, /* # x pages */
ypages, /* # y pages */
xpage, /* Current x page */
@@ -164,9 +165,7 @@ main(int argc, /* I - Number of command-line arguments */
int x0, y0, /* Corners of the page in image coords */
x1, y1;
ppd_file_t *ppd; /* PPD file */
ppd_choice_t *choice, /* PPD option choice */
**choices; /* List of marked choices */
int count; /* Number of marked choices */
ppd_choice_t *choice; /* PPD option choice */
char *resolution, /* Output resolution */
*media_type; /* Media type */
ppd_profile_t *profile; /* Color profile */
@@ -181,7 +180,7 @@ main(int argc, /* I - Number of command-line arguments */
float g; /* Gamma correction value */
float b; /* Brightness factor */
float zoom; /* Zoom facter */
int xppi, yppi; /* Pixels-per-inch */
int ppi; /* Pixels-per-inch */
int hue, sat; /* Hue and saturation adjustment */
izoom_t *z; /* ImageZoom buffer */
int primary, /* Primary image colorspace */
@@ -198,59 +197,23 @@ main(int argc, /* I - Number of command-line arguments */
ib_t lut[256]; /* Gamma/brightness LUT */
int plane, /* Current color plane */
num_planes; /* Number of color planes */
char filename[1024]; /* Name of file to print */
/*
* Check arguments...
*/
if (argc < 6 || argc > 7)
if (argc != 7)
{
fputs("ERROR: imagetoraster job-id user title copies options [file]\n", stderr);
fputs("ERROR: imagetoraster job-id user title copies options file\n", stderr);
return (1);
}
fprintf(stderr, "INFO: %s %s %s %s %s %s %s\n", argv[0], argv[1], argv[2],
argv[3], argv[4], argv[5], argv[6] ? argv[6] : "(null)");
/*
* Copy stdin as needed...
*/
if (argc == 6)
{
FILE *fp; /* File to read from */
char buffer[8192]; /* Buffer to read into */
int bytes; /* # of bytes to read */
if ((fp = fopen(cupsTempFile(filename, sizeof(filename)), "w")) == NULL)
{
perror("ERROR: Unable to copy image file");
return (1);
}
fprintf(stderr, "DEBUG: imagetoraster - copying to temp print file \"%s\"\n",
filename);
while ((bytes = fread(buffer, 1, sizeof(buffer), stdin)) > 0)
fwrite(buffer, 1, bytes, fp);
fclose(fp);
}
else
{
strncpy(filename, argv[6], sizeof(filename) - 1);
filename[sizeof(filename) - 1] = '\0';
}
argv[3], argv[4], argv[5], argv[6]);
/*
* Process command-line options and write the prolog...
*/
zoom = 0.0;
xppi = 0;
yppi = 0;
ppi = 0;
hue = 0;
sat = 100;
g = 1.0;
@@ -291,8 +254,7 @@ main(int argc, /* I - Number of command-line arguments */
zoom = atoi(val) * 0.01;
if ((val = cupsGetOption("ppi", num_options, options)) != NULL)
if (sscanf(val, "%dx%d", &xppi, &yppi) < 2)
yppi = xppi;
ppi = atoi(val);
if ((val = cupsGetOption("position", num_options, options)) != NULL)
{
@@ -358,38 +320,35 @@ main(int argc, /* I - Number of command-line arguments */
header.HWResolution[1] = 100;
header.cupsBitsPerColor = 1;
header.cupsColorOrder = CUPS_ORDER_CHUNKED;
header.cupsColorSpace = CUPS_CSPACE_K;
header.cupsColorSpace = CUPS_CSPACE_RGB;
if (ppd->patches)
exec_code(&header, ppd->patches);
if ((choice = ppdFindMarkedChoice(ppd, "ColorModel")) != NULL)
exec_choice(&header, choice);
if ((count = ppdCollect(ppd, PPD_ORDER_DOCUMENT, &choices)) > 0)
for (i = 0; i < count; i ++)
exec_code(&header, choices[i]->code);
if ((choice = ppdFindMarkedChoice(ppd, "CutMedia")) != NULL)
exec_choice(&header, choice);
if ((count = ppdCollect(ppd, PPD_ORDER_ANY, &choices)) > 0)
for (i = 0; i < count; i ++)
exec_code(&header, choices[i]->code);
if ((choice = ppdFindMarkedChoice(ppd, "ESPFinishing")) != NULL)
exec_choice(&header, choice);
if ((count = ppdCollect(ppd, PPD_ORDER_PROLOG, &choices)) > 0)
for (i = 0; i < count; i ++)
exec_code(&header, choices[i]->code);
if ((count = ppdCollect(ppd, PPD_ORDER_PAGE, &choices)) > 0)
for (i = 0; i < count; i ++)
exec_code(&header, choices[i]->code);
/*
* Get the media type and resolution that have been chosen...
*/
if ((choice = ppdFindMarkedChoice(ppd, "InputSlot")) != NULL)
exec_choice(&header, choice);
if ((choice = ppdFindMarkedChoice(ppd, "MediaType")) != NULL)
{
exec_choice(&header, choice);
media_type = choice->choice;
}
else
media_type = "";
if ((choice = ppdFindMarkedChoice(ppd, "Resolution")) != NULL)
{
exec_choice(&header, choice);
resolution = choice->choice;
}
else
resolution = "";
@@ -555,12 +514,7 @@ main(int argc, /* I - Number of command-line arguments */
fputs("INFO: Loading image file...\n", stderr);
img = ImageOpen(filename, primary, secondary, sat, hue, lut);
if (argc == 6)
unlink(filename);
if (img == NULL)
if ((img = ImageOpen(argv[6], primary, secondary, sat, hue, lut)) == NULL)
{
fputs("ERROR: Unable to open image file for printing!\n", stderr);
ppdClose(ppd);
@@ -571,16 +525,10 @@ main(int argc, /* I - Number of command-line arguments */
* Scale as necessary...
*/
if (zoom == 0.0 && xppi == 0)
{
xppi = img->xppi;
yppi = img->yppi;
}
if (zoom == 0.0 && ppi == 0)
ppi = img->xppi;
if (yppi == 0)
yppi = xppi;
if (xppi > 0)
if (ppi > 0)
{
/*
* Scale the image as neccesary to match the desired pixels-per-inch.
@@ -597,28 +545,24 @@ main(int argc, /* I - Number of command-line arguments */
yprint = (PageTop - PageBottom) / 72.0;
}
xinches = (float)img->xsize / (float)xppi;
yinches = (float)img->ysize / (float)yppi;
xinches = (float)img->xsize / (float)ppi;
yinches = (float)img->ysize / (float)ppi;
if (cupsGetOption("orientation", num_options, options) == NULL &&
cupsGetOption("landscape", num_options, options) == NULL)
/*
* Rotate the image if it will fit landscape but not portrait...
*/
if ((xinches > xprint || yinches > yprint) &&
xinches <= yprint && yinches <= xprint)
{
/*
* Rotate the image if it will fit landscape but not portrait...
* Rotate the image as needed...
*/
if ((xinches > xprint || yinches > yprint) &&
xinches <= yprint && yinches <= xprint)
{
/*
* Rotate the image as needed...
*/
Orientation = (Orientation + 1) & 3;
xsize = yprint;
yprint = xprint;
xprint = xsize;
}
Orientation = (Orientation + 1) & 3;
xsize = yprint;
yprint = xprint;
xprint = xsize;
}
}
else
@@ -629,87 +573,57 @@ main(int argc, /* I - Number of command-line arguments */
xprint = (PageRight - PageLeft) / 72.0;
yprint = (PageTop - PageBottom) / 72.0;
aspect = (float)img->yppi / (float)img->xppi;
fprintf(stderr, "DEBUG: img->xppi = %d, img->yppi = %d, aspect = %f\n",
img->xppi, img->yppi, aspect);
xsize = xprint * zoom;
ysize = xsize * img->ysize / img->xsize / aspect;
ysize = xsize * img->ysize / img->xsize;
if (ysize > (yprint * zoom))
{
ysize = yprint * zoom;
xsize = ysize * img->xsize * aspect / img->ysize;
xsize = ysize * img->xsize / img->ysize;
}
xsize2 = yprint * zoom;
ysize2 = xsize2 * img->ysize / img->xsize / aspect;
ysize2 = xsize2 * img->ysize / img->xsize;
if (ysize2 > (xprint * zoom))
{
ysize2 = xprint * zoom;
xsize2 = ysize2 * img->xsize * aspect / img->ysize;
xsize2 = ysize2 * img->xsize / img->ysize;
}
fprintf(stderr, "DEBUG: xsize = %.0f, ysize = %.0f\n", xsize, ysize);
fprintf(stderr, "DEBUG: xsize2 = %.0f, ysize2 = %.0f\n", xsize2, ysize2);
/*
* Choose the rotation with the largest area, but prefer
* portrait if they are equal...
*/
if (cupsGetOption("orientation", num_options, options) == NULL &&
cupsGetOption("landscape", num_options, options) == NULL)
if ((xsize * ysize) < (xsize2 * xsize2))
{
/*
* Choose the rotation with the largest area, but prefer
* portrait if they are equal...
* Do landscape orientation...
*/
if ((xsize * ysize) < (xsize2 * xsize2))
{
/*
* Do landscape orientation...
*/
Orientation = 1;
xinches = xsize2;
yinches = ysize2;
xprint = (PageTop - PageBottom) / 72.0;
yprint = (PageRight - PageLeft) / 72.0;
}
else
{
/*
* Do portrait orientation...
*/
Orientation = 0;
xinches = xsize;
yinches = ysize;
}
}
else if (Orientation & 1)
{
Orientation = 1;
xinches = xsize2;
yinches = ysize2;
xprint = (PageTop - PageBottom) / 72.0;
yprint = (PageRight - PageLeft) / 72.0;
}
else
{
/*
* Do portrait orientation...
*/
xsize = PageLeft;
PageLeft = PageBottom;
PageBottom = PageWidth - PageRight;
PageRight = PageTop;
PageTop = PageLength - xsize;
xsize = PageWidth;
PageWidth = PageLength;
PageLength = xsize;
Orientation = 0;
xinches = xsize;
yinches = ysize;
}
}
xpages = ceil(xinches / xprint);
ypages = ceil(yinches / yprint);
fprintf(stderr, "DEBUG: xpages = %d, ypages = %d\n", xpages, ypages);
/*
* Compute the bitmap size...
*/
@@ -1206,19 +1120,20 @@ main(int argc, /* I - Number of command-line arguments */
/*
* 'exec_code()' - Execute PostScript setpagedevice commands as appropriate.
* 'exec_choice()' - Execute PostScript setpagedevice commands as appropriate.
*/
static void
exec_code(cups_page_header_t *header, /* I - Page header */
const char *code) /* I - Option choice to execute */
exec_choice(cups_page_header_t *header, /* I - Page header */
ppd_choice_t *choice) /* I - Option choice to execute */
{
char *ptr, /* Pointer into name/value string */
char *code, /* Pointer into code string */
*ptr, /* Pointer into name/value string */
name[255], /* Name of pagedevice entry */
value[1024]; /* Value of pagedevice entry */
for (; *code != '\0';)
for (code = choice->code; *code != '\0';)
{
/*
* Search for the start of a dictionary name...
@@ -1276,7 +1191,7 @@ exec_code(cups_page_header_t *header, /* I - Page header */
{
code ++;
if (isdigit(*code))
*ptr++ = (char)strtol(code, (char **)&code, 8);
*ptr++ = (char)strtol(code, &code, 8);
else
*ptr++ = *code++;
}
+2 -29
Ver Arquivo
@@ -101,7 +101,6 @@ main(int argc, /* I - Number of command-line arguments */
int page_count; /* Page count for NUp */
int subpage; /* Sub-page number */
int copy; /* Current copy */
int saweof; /* Did we see a %%EOF tag? */
/*
@@ -261,8 +260,6 @@ main(int argc, /* I - Number of command-line arguments */
puts(line);
saweof = 0;
if (ppd != NULL && ppd->patches != NULL)
puts(ppd->patches);
@@ -310,11 +307,7 @@ main(int argc, /* I - Number of command-line arguments */
tbytes = atoi(strchr(line, ':') + 1);
while (tbytes > 0)
{
if (tbytes > sizeof(line))
nbytes = fread(line, 1, sizeof(line), fp);
else
nbytes = fread(line, 1, tbytes, fp);
nbytes = fread(line, 1, sizeof(line), fp);
fwrite(line, 1, nbytes, stdout);
tbytes -= nbytes;
}
@@ -333,8 +326,6 @@ main(int argc, /* I - Number of command-line arguments */
level ++;
else if (strcmp(line, "%%EndDocument") == 0 && level > 0)
level --;
else if (strcmp(line, "%%EOF") == 0 && level == 0)
saweof = 1;
else if (strncmp(line, "%%Page:", 7) == 0 && level == 0)
{
if (sscanf(line, "%*s%*s%d", &number) == 1)
@@ -388,10 +379,7 @@ main(int argc, /* I - Number of command-line arguments */
tbytes = atoi(strchr(line, ':') + 1);
while (tbytes > 0)
{
if (tbytes > sizeof(line))
nbytes = fread(line, 1, sizeof(line), fp);
else
nbytes = fread(line, 1, tbytes, fp);
nbytes = fread(line, 1, sizeof(line), fp);
if (!sloworder)
fwrite(line, 1, nbytes, stdout);
@@ -403,14 +391,7 @@ main(int argc, /* I - Number of command-line arguments */
}
}
else if (strcmp(line, "%%Trailer") == 0 && level == 0)
{
/*
* Assume that a file with a %%Trailer will likely also have %%EOF...
*/
saweof = 1;
break;
}
else
{
if (!sloworder)
@@ -558,18 +539,10 @@ main(int argc, /* I - Number of command-line arguments */
ppdEmit(ppd, stdout, PPD_ORDER_PAGE);
rewind(temp);
copy_bytes(temp, 0);
Copies --;
}
}
}
/*
* Send %%EOF if needed...
*/
if (!saweof)
puts("%%EOF");
/*
* End the job with the appropriate JCL command or CTRL-D otherwise.
*/
+5 -6
Ver Arquivo
@@ -148,7 +148,7 @@ StartPage(cups_page_header_t *header) /* I - Page header */
}
printf("\033&l%dP", header->PageSize[1] / 12);/* Set page length */
printf("\033&l0E"); /* Set top margin to 0 */
printf("\033&l3E"); /* Set top margin to 1/2 inch */
printf("\033&l%dX", header->NumCopies); /* Set number copies */
@@ -169,10 +169,6 @@ StartPage(cups_page_header_t *header) /* I - Page header */
* Set graphics mode...
*/
printf("\033*t%dR", header->HWResolution[0]); /* Set resolution */
printf("\033*r%dS", header->cupsWidth); /* Set width */
printf("\033*r%dT", header->cupsHeight); /* Set height */
if (header->cupsColorSpace == CUPS_CSPACE_KCMY)
{
NumPlanes = 4;
@@ -186,7 +182,10 @@ StartPage(cups_page_header_t *header) /* I - Page header */
else
NumPlanes = 1; /* Black&white graphics */
printf("\033&a0H\033&a330V"); /* Set top-of-page */
printf("\033*t%dR", header->HWResolution[0]); /* Set resolution */
printf("\033*r%dS", header->cupsWidth); /* Set width */
printf("\033*r%dT", header->cupsHeight); /* Set height */
printf("\033&a0H\033&a0V"); /* Set top-of-page */
printf("\033*r1A"); /* Start graphics */
if (header->cupsCompression)
+3 -4
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: accept.man 1231 2000-07-20 17:10:57Z mike $"
.\" "$Id: accept.man 911 2000-02-23 03:17:06Z mike $"
.\"
.\" accept/reject man page for the Common UNIX Printing System (CUPS).
.\"
@@ -49,10 +49,9 @@ from the System V versions which require the root user to execute these
commands.
.SH SEE ALSO
cancel(1), disable(8), enable(8), lp(1), lpadmin(8), lpstat(1),
CUPS Software Administrators Manual,
http://localhost:631/documentation.html
CUPS Software Administrators Manual
.SH COPYRIGHT
Copyright 1993-2000 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: accept.man 1231 2000-07-20 17:10:57Z mike $".
.\" End of "$Id: accept.man 911 2000-02-23 03:17:06Z mike $".
.\"
+3 -4
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: backend.man 1231 2000-07-20 17:10:57Z mike $"
.\" "$Id: backend.man 1180 2000-06-28 16:50:04Z mike $"
.\"
.\" backend man page for the Common UNIX Printing System (CUPS).
.\"
@@ -100,10 +100,9 @@ The user executing the backend (typically lp).
cupsd(8), filter(1)
CUPS Interface Design Description,
CUPS Software Administrators Manual,
CUPS Software Programmers Manual,
http://localhost:631/documentation.html
CUPS Software Programmers Manual
.SH COPYRIGHT
Copyright 1993-2000 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: backend.man 1231 2000-07-20 17:10:57Z mike $".
.\" End of "$Id: backend.man 1180 2000-06-28 16:50:04Z mike $".
.\"
+3 -4
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: classes.conf.man 1231 2000-07-20 17:10:57Z mike $"
.\" "$Id: classes.conf.man 1151 2000-06-22 18:21:40Z mike $"
.\"
.\" classes.conf man page for the Common UNIX Printing System (CUPS).
.\"
@@ -63,10 +63,9 @@ StateMessage
Specifies the message associated with the state.
.SH SEE ALSO
cupsd(8), cupsd.conf(5), mime.convs(5), mime.types(5), printers.conf(5),
CUPS Software Administrators Manual,
http://localhost:631/documentation.html
CUPS Software Administrators Manual
.SH COPYRIGHT
Copyright 1993-2000 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: classes.conf.man 1231 2000-07-20 17:10:57Z mike $".
.\" End of "$Id: classes.conf.man 1151 2000-06-22 18:21:40Z mike $".
.\"
+3 -4
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: cups-lpd.man 1231 2000-07-20 17:10:57Z mike $"
.\" "$Id: cups-lpd.man 1061 2000-05-10 21:07:04Z mike $"
.\"
.\" cups-lpd man page for the Common UNIX Printing System (CUPS).
.\"
@@ -49,10 +49,9 @@ LPD and IPP Protocols. Since many LPD implementations stray from this
definition, remote status reporting to LPD clients may be unreliable.
.SH SEE ALSO
inetd(8),
CUPS Software Administrators Manual,
http://localhost:631/documentation.html
CUPS Software Administrators Manual
.SH COPYRIGHT
Copyright 1993-2000 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: cups-lpd.man 1231 2000-07-20 17:10:57Z mike $".
.\" End of "$Id: cups-lpd.man 1061 2000-05-10 21:07:04Z mike $".
.\"
+3 -4
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: cups-polld.man 1231 2000-07-20 17:10:57Z mike $"
.\" "$Id: cups-polld.man 1061 2000-05-10 21:07:04Z mike $"
.\"
.\" cups-polld man page for the Common UNIX Printing System (CUPS).
.\"
@@ -37,10 +37,9 @@ This program is started automatically by \fBcupsd\fR for each
BrowsePoll directive found in the \fBcupsd.conf\fR file.
.SH SEE ALSO
cupsd.conf(5),
CUPS Software Administrators Manual,
http://localhost:631/documentation.html
CUPS Software Administrators Manual
.SH COPYRIGHT
Copyright 1993-2000 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: cups-polld.man 1231 2000-07-20 17:10:57Z mike $".
.\" End of "$Id: cups-polld.man 1061 2000-05-10 21:07:04Z mike $".
.\"
+3 -4
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: cupsd.conf.man 1231 2000-07-20 17:10:57Z mike $"
.\" "$Id: cupsd.conf.man 1170 2000-06-27 21:11:16Z mike $"
.\"
.\" cupsd.conf man page for the Common UNIX Printing System (CUPS).
.\"
@@ -237,10 +237,9 @@ User
Specifies the user name or ID that is used when running external programs.
.SH SEE ALSO
classes.conf(5), cupsd(8), mime.convs(5), mime.types(5), printers.conf(5),
CUPS Software Administrators Manual,
http://localhost:631/documentation.html
CUPS Software Administrators Manual
.SH COPYRIGHT
Copyright 1993-2000 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: cupsd.conf.man 1231 2000-07-20 17:10:57Z mike $".
.\" End of "$Id: cupsd.conf.man 1170 2000-06-27 21:11:16Z mike $".
.\"
+3 -4
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: cupsd.man 1231 2000-07-20 17:10:57Z mike $"
.\" "$Id: cupsd.man 1151 2000-06-22 18:21:40Z mike $"
.\"
.\" cupsd man page for the Common UNIX Printing System (CUPS).
.\"
@@ -42,10 +42,9 @@ backend(1), classes.conf(5), cupsd.conf(5), filter(1), mime.convs(5),
mime.types(5), printers.conf(5),
CUPS Implementation of IPP,
CUPS Interface Design Description,
CUPS Software Administrators Manual,
http://localhost:631/documentation.html
CUPS Software Administrators Manual
.SH COPYRIGHT
Copyright 1993-2000 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: cupsd.man 1231 2000-07-20 17:10:57Z mike $".
.\" End of "$Id: cupsd.man 1151 2000-06-22 18:21:40Z mike $".
.\"
+3 -4
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: enable.man 1231 2000-07-20 17:10:57Z mike $"
.\" "$Id: enable.man 911 2000-02-23 03:17:06Z mike $"
.\"
.\" enable/disable man page for the Common UNIX Printing System (CUPS).
.\"
@@ -55,11 +55,10 @@ from the System V versions which require the root user to execute these
commands.
.SH SEE ALSO
accept(8), cancel(1), lp(1), lpadmin(8), lpstat(1), reject(8),
CUPS Software Administrators Manual,
http://localhost:631/documentation.html
CUPS Software Administrators Manual
.SH COPYRIGHT
Copyright 1993-2000 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: enable.man 1231 2000-07-20 17:10:57Z mike $".
.\" End of "$Id: enable.man 911 2000-02-23 03:17:06Z mike $".
.\"
+3 -4
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: filter.man 1231 2000-07-20 17:10:57Z mike $"
.\" "$Id: filter.man 1180 2000-06-28 16:50:04Z mike $"
.\"
.\" filter man page for the Common UNIX Printing System (CUPS).
.\"
@@ -107,10 +107,9 @@ only filter. Typically the interface script will be provided via the
backend(1), cupsd(8),
CUPS Interface Design Description,
CUPS Software Administrators Manual,
CUPS Software Programmers Manual,
http://localhost:631/documentation.html
CUPS Software Programmers Manual
.SH COPYRIGHT
Copyright 1993-2000 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: filter.man 1231 2000-07-20 17:10:57Z mike $".
.\" End of "$Id: filter.man 1180 2000-06-28 16:50:04Z mike $".
.\"
+3 -4
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: lp.man 1231 2000-07-20 17:10:57Z mike $"
.\" "$Id: lp.man 911 2000-02-23 03:17:06Z mike $"
.\"
.\" lp/cancel man page for the Common UNIX Printing System (CUPS).
.\"
@@ -103,10 +103,9 @@ any printable character except SPACE and TAB. Also, printer and class names are
The "m" option is not functional in CUPS 1.0.
.SH SEE ALSO
lpstat(1),
CUPS Software Users Manual,
http://localhost:631/documentation.html
CUPS Software Users Manual
.SH COPYRIGHT
Copyright 1993-2000 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: lp.man 1231 2000-07-20 17:10:57Z mike $".
.\" End of "$Id: lp.man 911 2000-02-23 03:17:06Z mike $".
.\"
+3 -4
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: lpadmin.man 1231 2000-07-20 17:10:57Z mike $"
.\" "$Id: lpadmin.man 911 2000-02-23 03:17:06Z mike $"
.\"
.\" lpadmin man page for the Common UNIX Printing System (CUPS).
.\"
@@ -116,10 +116,9 @@ The CUPS version of \fIlpadmin\fR does not support all of the System V or
Solaris printing system configuration options.
.SH SEE ALSO
accept(8), cancel(1), disable(8), enable(8), lp(1), lpstat(1), reject(8),
CUPS Software Administrators Manual,
http://localhost:631/documentation.html
CUPS Software Administrators Manual
.SH COPYRIGHT
Copyright 1993-2000 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: lpadmin.man 1231 2000-07-20 17:10:57Z mike $".
.\" End of "$Id: lpadmin.man 911 2000-02-23 03:17:06Z mike $".
.\"
+3 -4
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: lpc.man 1231 2000-07-20 17:10:57Z mike $"
.\" "$Id: lpc.man 911 2000-02-23 03:17:06Z mike $"
.\"
.\" lpc man page for the Common UNIX Printing System (CUPS).
.\"
@@ -71,10 +71,9 @@ commands.
.SH SEE ALSO
accept(8), cancel(1), disable(8), enable(8), lp(1), lpr(1), lprm(1),
lpstat(1), reject(8),
CUPS Software Administrators Manual,
http://localhost:631/documentation.html
CUPS Software Administrators Manual
.SH COPYRIGHT
Copyright 1993-2000 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: lpc.man 1231 2000-07-20 17:10:57Z mike $".
.\" End of "$Id: lpc.man 911 2000-02-23 03:17:06Z mike $".
.\"
+3 -4
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: lpinfo.man 1231 2000-07-20 17:10:57Z mike $"
.\" "$Id: lpinfo.man 1062 2000-05-11 12:58:53Z mike $"
.\"
.\" lpinfo man page for the Common UNIX Printing System (CUPS).
.\"
@@ -47,10 +47,9 @@ Shows the available printer devices on the system.
The \fBlpinfo\fR command is unique to CUPS.
.SH SEE ALSO
lpadmin(8),
CUPS Software Administrators Manual,
http://localhost:631/documentation.html
CUPS Software Administrators Manual
.SH COPYRIGHT
Copyright 1993-2000 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: lpinfo.man 1231 2000-07-20 17:10:57Z mike $".
.\" End of "$Id: lpinfo.man 1062 2000-05-11 12:58:53Z mike $".
.\"
+3 -4
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: lpmove.man 1231 2000-07-20 17:10:57Z mike $"
.\" "$Id: lpmove.man 1062 2000-05-11 12:58:53Z mike $"
.\"
.\" lpmove man page for the Common UNIX Printing System (CUPS).
.\"
@@ -41,10 +41,9 @@ The System V version of this command also allows moving of all jobs from one
queue to another. This functionality is currently not supported by CUPS.
.SH SEE ALSO
cancel(1), lp(1),
CUPS Software Users Manual,
http://localhost:631/documentation.html
CUPS Software Users Manual
.SH COPYRIGHT
Copyright 1993-2000 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: lpmove.man 1231 2000-07-20 17:10:57Z mike $".
.\" End of "$Id: lpmove.man 1062 2000-05-11 12:58:53Z mike $".
.\"
+3 -4
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: lpoptions.man 1231 2000-07-20 17:10:57Z mike $"
.\" "$Id: lpoptions.man 1062 2000-05-11 12:58:53Z mike $"
.\"
.\" lpoptions man page for the Common UNIX Printing System (CUPS).
.\"
@@ -90,10 +90,9 @@ and \fBlpr(1)\fR commands when submitting jobs.
The \fBlpoptions\fR command is unique to CUPS.
.SH SEE ALSO
cancel(1), lp(1),
CUPS Software Users Manual,
http://localhost:631/documentation.html
CUPS Software Users Manual
.SH COPYRIGHT
Copyright 1993-2000 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: lpoptions.man 1231 2000-07-20 17:10:57Z mike $".
.\" End of "$Id: lpoptions.man 1062 2000-05-11 12:58:53Z mike $".
.\"
+3 -4
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: lpq.man 1231 2000-07-20 17:10:57Z mike $"
.\" "$Id: lpq.man 911 2000-02-23 03:17:06Z mike $"
.\"
.\" lpq man page for the Common UNIX Printing System (CUPS).
.\"
@@ -44,10 +44,9 @@ The \fI-l\fR option requests a more verbose reporting format.
.SH SEE ALSO
cancel(1), lp(1), lpr(1), lprm(1), lpstat(1)
.br
CUPS Software Users Manual,
http://localhost:631/documentation.html
CUPS Software Users Manual
.SH COPYRIGHT
Copyright 1993-2000 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: lpq.man 1231 2000-07-20 17:10:57Z mike $".
.\" End of "$Id: lpq.man 911 2000-02-23 03:17:06Z mike $".
.\"
+3 -4
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: lpr.man 1231 2000-07-20 17:10:57Z mike $"
.\" "$Id: lpr.man 911 2000-02-23 03:17:06Z mike $"
.\"
.\" lpr man page for the Common UNIX Printing System (CUPS).
.\"
@@ -88,10 +88,9 @@ The "c", "d", "f", "g", "i", "m", "n", "t", "v", and "w" options are not
supported by CUPS and will produce a warning message if used.
.SH SEE ALSO
cancel(1), lp(1), lpstat(1),
CUPS Software Users Manual,
http://localhost:631/documentation.html
CUPS Software Users Manual
.SH COPYRIGHT
Copyright 1993-2000 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: lpr.man 1231 2000-07-20 17:10:57Z mike $".
.\" End of "$Id: lpr.man 911 2000-02-23 03:17:06Z mike $".
.\"
+3 -4
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: lprm.man 1231 2000-07-20 17:10:57Z mike $"
.\" "$Id: lprm.man 911 2000-02-23 03:17:06Z mike $"
.\"
.\" lprm man page for the Common UNIX Printing System (CUPS).
.\"
@@ -43,10 +43,9 @@ The CUPS version of \fIlprm\fR is compatible with the standard Berkeley
\fIlprm\fR command.
.SH SEE ALSO
cancel(1), lp(1), lpstat(1), lpr(1),
CUPS Software Users Manual,
http://localhost:631/documentation.html
CUPS Software Users Manual
.SH COPYRIGHT
Copyright 1993-2000 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: lprm.man 1231 2000-07-20 17:10:57Z mike $".
.\" End of "$Id: lprm.man 911 2000-02-23 03:17:06Z mike $".
.\"
+3 -4
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: lpstat.man 1231 2000-07-20 17:10:57Z mike $"
.\" "$Id: lpstat.man 1044 2000-05-01 21:02:06Z mike $"
.\"
.\" lpstat man page for the Common UNIX Printing System (CUPS).
.\"
@@ -117,10 +117,9 @@ The "-h" option is not a standard System V option.
The Solaris "-f", "-P", and "-S" options are silently ignored.
.SH SEE ALSO
cancel(1), lp(1),
CUPS Software Users Manual,
http://localhost:631/documentation.html
CUPS Software Users Manual
.SH COPYRIGHT
Copyright 1993-2000 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: lpstat.man 1231 2000-07-20 17:10:57Z mike $".
.\" End of "$Id: lpstat.man 1044 2000-05-01 21:02:06Z mike $".
.\"
+3 -4
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: mime.convs.man 1231 2000-07-20 17:10:57Z mike $"
.\" "$Id: mime.convs.man 1151 2000-06-22 18:21:40Z mike $"
.\"
.\" mime.convs man page for the Common UNIX Printing System (CUPS).
.\"
@@ -45,10 +45,9 @@ application/postscript application/vnd.cups-raster 50 pstoraster
.fi
.SH SEE ALSO
classes.conf(5), cupsd(8), cupsd.conf(5), mime.types(5), printers.conf(5),
CUPS Software Administrators Manual,
http://localhost:631/documentation.html
CUPS Software Administrators Manual
.SH COPYRIGHT
Copyright 1993-2000 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: mime.convs.man 1231 2000-07-20 17:10:57Z mike $".
.\" End of "$Id: mime.convs.man 1151 2000-06-22 18:21:40Z mike $".
.\"
+3 -4
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: mime.types.man 1231 2000-07-20 17:10:57Z mike $"
.\" "$Id: mime.types.man 1151 2000-06-22 18:21:40Z mike $"
.\"
.\" mime.types man page for the Common UNIX Printing System (CUPS).
.\"
@@ -89,10 +89,9 @@ containing whitespace and angle brackets (<>) for hexadecimal
strings.
.SH SEE ALSO
classes.conf(5), cupsd(8), cupsd.conf(5), mime.convs(5), printers.conf(5),
CUPS Software Administrators Manual,
http://localhost:631/documentation.html
CUPS Software Administrators Manual
.SH COPYRIGHT
Copyright 1993-2000 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: mime.types.man 1231 2000-07-20 17:10:57Z mike $".
.\" End of "$Id: mime.types.man 1151 2000-06-22 18:21:40Z mike $".
.\"
+3 -4
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: printers.conf.man 1231 2000-07-20 17:10:57Z mike $"
.\" "$Id: printers.conf.man 1151 2000-06-22 18:21:40Z mike $"
.\"
.\" printers.conf man page for the Common UNIX Printing System (CUPS).
.\"
@@ -64,10 +64,9 @@ Specifies the message associated with the state.
.SH SEE ALSO
classes.conf(5), cupsd(8), cupsd.conf(5), mime.convs(5), mime.types(5),
CUPS Software Administrators Manual,
CUPS Interface Design Description,
http://localhost:631/documentation.html
CUPS Interface Design Description
.SH COPYRIGHT
Copyright 1993-2000 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: printers.conf.man 1231 2000-07-20 17:10:57Z mike $".
.\" End of "$Id: printers.conf.man 1151 2000-06-22 18:21:40Z mike $".
.\"
+1 -2
Ver Arquivo
@@ -28,8 +28,7 @@ include ../Makedefs
# PPD files...
#
FILES = deskjet.ppd epson9.ppd epson24.ppd laserjet.ppd \
stcolor.ppd stphoto.ppd
FILES = deskjet.ppd laserjet.ppd stcolor.ppd stphoto.ppd
#
# Make everything...
+1 -2
Ver Arquivo
@@ -54,7 +54,6 @@
*UIConstraints: *PageSize A4 *InputSlot Envelope
*UIConstraints: *PageSize A5 *InputSlot Envelope
*UIConstraints: *PageSize B5 *InputSlot Envelope
*UIConstraints: *Resolution 600dpi *ColorModel CMYK
*OpenUI *PageSize/Media Size: PickOne
*OrderDependency: 10 AnySetup *PageSize
@@ -145,7 +144,7 @@
*DefaultResolution: 300dpi
*Resolution 150dpi/150 DPI: "<</HWResolution[150 150]>>setpagedevice"
*Resolution 300dpi/300 DPI: "<</HWResolution[300 300]>>setpagedevice"
*Resolution 600dpi/600 DPI: "<</HWResolution[600 600]/cupsColorSpace 3>>setpagedevice"
*Resolution 600dpi/600 DPI: "<</HWResolution[600 600]>>setpagedevice"
*CloseUI: *Resolution
*OpenUI *ColorModel/Output Mode: PickOne
+6 -5
Ver Arquivo
@@ -342,11 +342,12 @@ DFILES = Fontmap \
gs_cmap.ps gs_cmdl.ps gs_dbt_e.ps gs_diskf.ps \
gs_dpnxt.ps gs_dps1.ps gs_dps2.ps gs_dps.ps gs_epsf.ps \
gs_fform.ps gs_fonts.ps gs_init.ps gs_iso_e.ps \
gs_kanji.ps gs_ksb_e.ps gs_lev2.ps gs_ll3.ps \
gs_mex_e.ps gs_mro_e.ps gs_pfile.ps gs_res.ps \
gs_setpd.ps gs_statd.ps gs_std_e.ps gs_sym_e.ps \
gs_ttf.ps gs_typ32.ps gs_typ42.ps gs_type1.ps \
gs_wan_e.ps gs_wl1_e.ps gs_wl2_e.ps gs_wl5_e.ps
gs_kanji.ps gs_ksb_e.ps gs_lev2.ps \
gs_ll3.ps gs_mex_e.ps gs_mro_e.ps \
gs_pdf_e.ps gs_pfile.ps gs_res.ps gs_setpd.ps \
gs_statd.ps gs_std_e.ps gs_sym_e.ps gs_ttf.ps \
gs_typ32.ps gs_typ42.ps gs_type1.ps gs_wan_e.ps \
gs_wl1_e.ps gs_wl2_e.ps gs_wl5_e.ps
#
+2 -6
Ver Arquivo
@@ -65,13 +65,9 @@ install:
-$(MKDIR) $(SERVERROOT)/ppd
$(CHMOD) ugo+rx $(SERVERROOT)/ppd
-$(MKDIR) $(LOGDIR)
$(CHMOD) ugo+rx $(LOGDIR)
$(CHMOD) ugo+rx $(SERVERROOT)/interfaces
-$(MKDIR) $(REQUESTS)
$(CHMOD) u+rwx,go-a $(REQUESTS)
$(CHOWN) lp $(REQUESTS)
-$(MKDIR) $(REQUESTS)/tmp
$(CHMOD) u+rwx,go-a,+t $(REQUESTS)/tmp
$(CHOWN) lp $(REQUESTS)/tmp
$(CHMOD) ugo+rx $(SERVERROOT)/interfaces
#
+3 -26
Ver Arquivo
@@ -35,7 +35,6 @@
* to access the location.
* FindBest() - Find the location entry that best matches the
* resource.
* FindLocation() - Find the named location.
* IsAuthorized() - Check to see if the user is authorized...
* add_allow() - Add an allow mask to the location.
* add_deny() - Add a deny mask to the location.
@@ -79,10 +78,10 @@ static int pam_func(int, const struct pam_message **,
* 'AddLocation()' - Add a location for authorization.
*/
location_t * /* O - Pointer to new location record */
AddLocation(const char *location) /* I - Location path */
location_t * /* O - Pointer to new location record */
AddLocation(char *location) /* I - Location path */
{
location_t *temp; /* New location */
location_t *temp; /* New location */
/*
@@ -347,28 +346,6 @@ FindBest(client_t *con) /* I - Connection */
}
/*
* 'FindLocation()' - Find the named location.
*/
location_t * /* O - Location that matches */
FindLocation(const char *location) /* I - Connection */
{
int i; /* Looping var */
/*
* Loop through the list of locations to find a match...
*/
for (i = 0; i < NumLocations; i ++)
if (strcasecmp(Locations[i].location, location) == 0)
return (Locations + i);
return (NULL);
}
/*
* 'IsAuthorized()' - Check to see if the user is authorized...
*/
+1 -2
Ver Arquivo
@@ -97,7 +97,7 @@ VAR location_t *Locations VALUE(NULL);
* Prototypes...
*/
extern location_t *AddLocation(const char *location);
extern location_t *AddLocation(char *location);
extern void AllowHost(location_t *loc, char *name);
extern void AllowIP(location_t *loc, unsigned address,
unsigned netmask);
@@ -108,7 +108,6 @@ extern void DenyHost(location_t *loc, char *name);
extern void DenyIP(location_t *loc, unsigned address,
unsigned netmask);
extern location_t *FindBest(client_t *con);
extern location_t *FindLocation(const char *location);
extern http_status_t IsAuthorized(client_t *con);
+5 -30
Ver Arquivo
@@ -225,42 +225,17 @@ FindCert(const char *certificate) /* I - Certificate */
void
InitCerts(void)
{
FILE *fp; /* /dev/random file */
unsigned seed; /* Seed for random number generator */
struct timeval tod; /* Time of day */
struct timeval tod; /* Time of day */
/*
* Initialize the random number generator using the random device or
* the current time, as available...
* Initialize the random number generator using the current time,
* including milliseconds...
*/
if ((fp = fopen("/dev/random", "rb")) == NULL)
{
/*
* Get the time in usecs and use it as the initial seed...
*/
gettimeofday(&tod, NULL);
gettimeofday(&tod, NULL);
seed = (unsigned)(tod.tv_sec + tod.tv_usec);
}
else
{
/*
* Read 4 random characters from the random device and use
* them as the seed...
*/
seed = getc(fp);
seed = (seed << 8) | getc(fp);
seed = (seed << 8) | getc(fp);
seed = (seed << 8) | getc(fp);
fclose(fp);
}
srandom(seed);
srandom(tod.tv_sec + tod.tv_usec);
/*
* Create a root certificate and return...
+4 -15
Ver Arquivo
@@ -1549,7 +1549,6 @@ pipe_command(client_t *con, /* I - Client connection */
{
int pid; /* Process ID */
char *commptr; /* Command string pointer */
int fd; /* Looping var */
int fds[2]; /* Pipe FDs */
int argc; /* Number of arguments */
int envc; /* Number of environment variables */
@@ -1561,10 +1560,10 @@ pipe_command(client_t *con, /* I - Client connection */
content_length[1024], /* CONTENT_LENGTH env variable */
content_type[1024], /* CONTENT_TYPE env variable */
ipp_port[1024], /* Default listen port */
server_port[1024], /* Default server port */
server_port[1024], /* Default listen port */
server_name[1024], /* Default listen hostname */
remote_host[1024], /* REMOTE_HOST env variable */
remote_user[1024], /* REMOTE_USER env variable */
remote_user[1024], /* REMOTE_HOST env variable */
tmpdir[1024], /* TMPDIR environment variable */
ldpath[1024], /* LD_LIBRARY_PATH environment variable */
datadir[1024], /* CUPS_DATADIR environment variable */
@@ -1727,18 +1726,8 @@ pipe_command(client_t *con, /* I - Client connection */
close(1);
dup(fds[1]);
/*
* Close extra file descriptors...
*/
for (fd = 3; fd < 1024; fd ++)
close(fd);
/*
* Change umask to restrict permissions on created files...
*/
umask(077);
close(fds[0]);
close(fds[1]);
/*
* Execute the pipe program; if an error occurs, exit with status 1...
+18 -34
Ver Arquivo
@@ -212,7 +212,7 @@ ReadConfiguration(void)
strcpy(DefaultCharset, DEFAULT_CHARSET);
strcpy(RIPCache, "8m");
if (getenv("TMPDIR") == NULL)
strcpy(TempDir, CUPS_REQUESTS "/tmp");
strcpy(TempDir, "/var/tmp");
else
{
strncpy(TempDir, getenv("TMPDIR"), sizeof(TempDir) - 1);
@@ -303,6 +303,7 @@ ReadConfiguration(void)
BrowsePort = ippPort();
BrowseInterval = DEFAULT_INTERVAL;
BrowseTimeout = DEFAULT_TIMEOUT;
BrowseACL = NULL;
NumBrowsers = 0;
NumRelays = 0;
NumPolled = 0;
@@ -326,8 +327,6 @@ ReadConfiguration(void)
fclose(fp);
BrowseACL = FindLocation("CUPS_INTERNAL_BROWSE_ACL");
if (!status)
return (0);
@@ -359,20 +358,6 @@ ReadConfiguration(void)
LogMessage(L_DEBUG, "ReadConfiguration() ConfigurationFile=\"%s\"",
ConfigurationFile);
/*
* Make sure the request and temporary directories have the right
* permissions...
*/
chown(RequestRoot, User, Group);
chmod(RequestRoot, 0700);
if (strncmp(TempDir, RequestRoot, strlen(RequestRoot)) == 0)
{
chown(TempDir, User, Group);
chmod(TempDir, 01700);
}
/*
* Check the MaxClients setting, and then allocate memory for it...
*/
@@ -479,7 +464,6 @@ read_configuration(FILE *fp) /* I - File to read from */
dirsvc_relay_t *relay; /* Relay data */
dirsvc_poll_t *poll; /* Polling data */
struct sockaddr_in polladdr; /* Polling address */
location_t *location; /* Browse location */
static unsigned netmasks[4] = /* Standard netmasks... */
{
0xff000000,
@@ -613,15 +597,15 @@ read_configuration(FILE *fp) /* I - File to read from */
* "BrowseOrder Deny,Allow" or "BrowseOrder Allow,Deny"...
*/
if ((location = FindLocation("CUPS_INTERNAL_BROWSE_ACL")) == NULL)
location = AddLocation("CUPS_INTERNAL_BROWSE_ACL");
if (BrowseACL == NULL)
BrowseACL = AddLocation("CUPS_INTERNAL_BROWSE_ACL");
if (location == NULL)
if (BrowseACL == NULL)
LogMessage(L_ERROR, "Unable to initialize browse access control list!");
else if (strncasecmp(value, "deny", 4) == 0)
location->order_type = AUTH_ALLOW;
BrowseACL->order_type = AUTH_ALLOW;
else if (strncasecmp(value, "allow", 5) == 0)
location->order_type = AUTH_DENY;
BrowseACL->order_type = AUTH_DENY;
else
LogMessage(L_ERROR, "Unknown BrowseOrder value %s on line %d.",
value, linenum);
@@ -634,10 +618,10 @@ read_configuration(FILE *fp) /* I - File to read from */
* BrowseDeny [From] host/ip...
*/
if ((location = FindLocation("CUPS_INTERNAL_BROWSE_ACL")) == NULL)
location = AddLocation("CUPS_INTERNAL_BROWSE_ACL");
if (BrowseACL == NULL)
BrowseACL = AddLocation("CUPS_INTERNAL_BROWSE_ACL");
if (location == NULL)
if (BrowseACL == NULL)
LogMessage(L_ERROR, "Unable to initialize browse access control list!");
else
{
@@ -676,9 +660,9 @@ read_configuration(FILE *fp) /* I - File to read from */
*/
if (strcmp(name, "BrowseAllow") == 0)
AllowIP(location, 0, 0);
AllowIP(BrowseACL, 0, 0);
else
DenyIP(location, 0, 0);
DenyIP(BrowseACL, 0, 0);
}
else if (strcasecmp(value, "none") == 0)
{
@@ -687,9 +671,9 @@ read_configuration(FILE *fp) /* I - File to read from */
*/
if (strcmp(name, "BrowseAllow") == 0)
AllowIP(location, ~0, 0);
AllowIP(BrowseACL, ~0, 0);
else
DenyIP(location, ~0, 0);
DenyIP(BrowseACL, ~0, 0);
}
else if (value[0] == '*' || value[0] == '.' || !isdigit(value[0]))
{
@@ -701,9 +685,9 @@ read_configuration(FILE *fp) /* I - File to read from */
value ++;
if (strcmp(name, "BrowseAllow") == 0)
AllowHost(location, value);
AllowHost(BrowseACL, value);
else
DenyHost(location, value);
DenyHost(BrowseACL, value);
}
else
{
@@ -740,9 +724,9 @@ read_configuration(FILE *fp) /* I - File to read from */
netmask = netmasks[ipcount - 1];
if (strcmp(name, "BrowseAllow") == 0)
AllowIP(location, address, netmask);
AllowIP(BrowseACL, address, netmask);
else
DenyIP(location, address, netmask);
DenyIP(BrowseACL, address, netmask);
}
}
}
+1 -2
Ver Arquivo
@@ -69,7 +69,7 @@ VAR char ConfigurationFile[256] VALUE(CUPS_SERVERROOT "/cupsd.conf"),
/* Default charset */
RIPCache[32] VALUE("8m"),
/* Amount of memory for RIPs */
TempDir[1024] VALUE(CUPS_REQUESTS "/tmp"),
TempDir[1024] VALUE("/var/tmp"),
/* Temporary directory */
Printcap[1024] VALUE("");
/* Printcap file */
@@ -109,7 +109,6 @@ VAR mime_t *MimeDatabase VALUE(NULL);
* Prototypes...
*/
extern char *GetDateTime(time_t t);
extern int ReadConfiguration(void);
extern int LogRequest(client_t *con, http_status_t code);
extern int LogMessage(int level, const char *message, ...);
+6 -43
Ver Arquivo
@@ -24,7 +24,6 @@
* Contents:
*
* main() - Process an incoming LPD request...
* print_file() - Print a file to a printer or class.
* recv_print_job() - Receive a print job from the client.
* send_short_state() - Send the short queue state.
* remove_jobs() - Cancel one or more jobs.
@@ -38,8 +37,6 @@
#include <cups/string.h>
#include <cups/language.h>
#include <stdlib.h>
#include <errno.h>
#include <syslog.h>
#include <ctype.h>
@@ -97,12 +94,6 @@ main(int argc, /* I - Number of command-line arguments */
setbuf(stdout, NULL);
/*
* Log things using the "cups-lpd" name...
*/
openlog("cups-lpd", LOG_PID, LOG_LPR);
/*
* RFC1179 specifies that only 1 daemon command can be received for
* every connection.
@@ -114,7 +105,6 @@ main(int argc, /* I - Number of command-line arguments */
* Unable to get command from client! Send an error status and return.
*/
syslog(LOG_ERR, "Unable to get command line from client!");
putchar(1);
return (1);
}
@@ -139,8 +129,6 @@ main(int argc, /* I - Number of command-line arguments */
switch (command)
{
default : /* Unknown command */
syslog(LOG_ERR, "Unknown LPD command 0x%02X!", command);
syslog(LOG_ERR, "Command line = %s", line);
putchar(1);
status = 1;
@@ -187,14 +175,12 @@ main(int argc, /* I - Number of command-line arguments */
break;
}
closelog();
return (status);
}
/*
* 'print_file()' - Print a file to a printer or class.
* 'prin_file()' - Print a file to a printer or class.
*/
int /* O - Job ID */
@@ -225,10 +211,7 @@ print_file(const char *name, /* I - Printer or class name */
*/
if ((http = httpConnect(cupsServer(), ippPort())) == NULL)
{
syslog(LOG_ERR, "Unable to connect to server: %s", strerror(errno));
return (0);
}
language = cupsLangDefault();
@@ -238,10 +221,7 @@ print_file(const char *name, /* I - Printer or class name */
*/
if ((request = ippNew()) == NULL)
{
syslog(LOG_ERR, "Unable to create request: %s", strerror(errno));
return (0);
}
request->request.op.operation_id = IPP_PRINT_JOB;
request->request.op.request_id = 1;
@@ -437,9 +417,7 @@ recv_print_job(const char *dest) /* I - Destination */
const char *tmpdir; /* Temporary directory */
char user[1024], /* User name */
title[1024], /* Job title */
docname[1024], /* Document name */
queue[256], /* Printer/class queue */
*instance; /* Printer/class instance */
docname[1024]; /* Document name */
int num_dests; /* Number of destinations */
cups_dest_t *dests, /* Destinations */
*destptr; /* Current destination */
@@ -449,23 +427,12 @@ recv_print_job(const char *dest) /* I - Destination */
status = 0;
num_data = 0;
if ((tmpdir = getenv("TMPDIR")) == NULL)
tmpdir = CUPS_REQUESTS "/tmp";
strncpy(queue, dest, sizeof(queue) - 1);
queue[sizeof(queue) - 1] = '\0';
if ((instance = strrchr(queue, '/')) != NULL)
*instance++ = '\0';
if ((tmpdir = getenv("TMP")) == NULL)
tmpdir = "/var/tmp";
num_dests = cupsGetDests(&dests);
if ((destptr = cupsGetDest(queue, instance, num_dests, dests)) == NULL)
if ((destptr = cupsGetDest(dest, NULL, num_dests, dests)) == NULL)
{
if (instance)
syslog(LOG_ERR, "Unknown destination %s/%s!", queue, instance);
else
syslog(LOG_ERR, "Unknown destination %s!", queue);
cupsFreeDests(num_dests, dests);
return (1);
}
@@ -494,7 +461,6 @@ recv_print_job(const char *dest) /* I - Destination */
case 0x02 : /* Receive control file */
if (strlen(name) < 2)
{
syslog(LOG_ERR, "Bad control file name \"%s\"", name);
putchar(1);
status = 1;
break;
@@ -505,7 +471,6 @@ recv_print_job(const char *dest) /* I - Destination */
case 0x03 : /* Receive data file */
if (strlen(name) < 2)
{
syslog(LOG_ERR, "Bad data file name \"%s\"", name);
putchar(1);
status = 1;
break;
@@ -532,8 +497,6 @@ recv_print_job(const char *dest) /* I - Destination */
if ((fp = fopen(filename, "wb")) == NULL)
{
syslog(LOG_ERR, "Unable to open temporary file \"%s\" - %s",
filename, strerror(errno));
putchar(1);
status = 1;
break;
@@ -684,7 +647,7 @@ recv_print_job(const char *dest) /* I - Destination */
snprintf(filename, sizeof(filename), "%s/%06d-%d", tmpdir,
getpid(), i + 1);
if (print_file(queue, filename, title, docname, user, num_options,
if (print_file(dest, filename, title, docname, user, num_options,
options) == 0)
status = 1;
else
+3 -5
Ver Arquivo
@@ -162,7 +162,7 @@ LoadDevices(const char *d) /* I - Directory to scan */
alarm(30);
count = 0;
compat = strcmp(dent->d_name, "smb") == 0;
compat = 0;
while (fgets(line, sizeof(line), fp) != NULL)
{
@@ -178,10 +178,8 @@ LoadDevices(const char *d) /* I - Directory to scan */
* class URI "make model" "name"
*/
if (strncasecmp(line, "Usage", 5) == 0)
compat = 1;
else if (sscanf(line, "%63s%1023s%*[ \t]\"%127[^\"]\"%*[ \t]\"%255[^\"]",
dclass, uri, make_model, info) != 4)
if (sscanf(line, "%63s%1023s%*[ \t]\"%127[^\"]\"%*[ \t]\"%255[^\"]",
dclass, uri, make_model, info) != 4)
{
/*
* Bad format; strip trailing newline and write an error message.
+5 -28
Ver Arquivo
@@ -1959,10 +1959,7 @@ copy_banner(client_t *con, /* I - Client connection */
{
case IPP_TAG_INTEGER :
case IPP_TAG_ENUM :
if (strncmp(attrname, "time-at-", 8) == 0)
fputs(GetDateTime(attr->values[i].integer), out);
else
fprintf(out, "%d", attr->values[i].integer);
fprintf(out, "%d", attr->values[i].integer);
break;
case IPP_TAG_BOOLEAN :
@@ -2171,20 +2168,14 @@ delete_printer(client_t *con, /* I - Client connection */
sprintf(filename, "%s/ppd/%s.ppd", ServerRoot, dest);
unlink(filename);
if (dtype == CUPS_PRINTER_CLASS)
{
SaveAllClasses();
SaveAllPrinters();
if (dtype == CUPS_PRINTER_CLASS)
LogMessage(L_INFO, "Class \'%s\' deleted by \'%s\'.", dest,
con->username);
}
else
{
SaveAllPrinters();
LogMessage(L_INFO, "Printer \'%s\' deleted by \'%s\'.", dest,
con->username);
}
/*
* Return with no errors...
@@ -3299,8 +3290,6 @@ print_job(client_t *con, /* I - Client connection */
ippAddString(con->request, IPP_TAG_JOB, IPP_TAG_MIMETYPE,
"document-format", NULL, mimetype);
}
else
filetype = mimeType(MimeDatabase, super, type);
}
else
filetype = mimeType(MimeDatabase, super, type);
@@ -4259,8 +4248,6 @@ send_document(client_t *con, /* I - Client connection */
ippAddString(con->request, IPP_TAG_JOB, IPP_TAG_MIMETYPE,
"document-format", NULL, mimetype);
}
else
filetype = mimeType(MimeDatabase, super, type);
}
else
filetype = mimeType(MimeDatabase, super, type);
@@ -4322,14 +4309,6 @@ send_document(client_t *con, /* I - Client connection */
if (job->state->values[0].integer == IPP_JOB_STOPPED)
job->state->values[0].integer = IPP_JOB_PENDING;
else if (job->state->values[0].integer == IPP_JOB_HELD)
{
if ((attr = ippFindAttribute(job->attrs, "job-hold-until", IPP_TAG_KEYWORD)) == NULL)
attr = ippFindAttribute(job->attrs, "job-hold-until", IPP_TAG_NAME);
if (attr == NULL || strcmp(attr->values[0].string.text, "no-hold") == 0)
job->state->values[0].integer = IPP_JOB_PENDING;
}
SaveJob(job->id);
CheckJobs();
@@ -4633,7 +4612,7 @@ set_job_attrs(client_t *con, /* I - Client connection */
SetJobPriority(jobid, attr->values[0].integer);
}
else if ((attr2 = ippFindAttribute(job->attrs, attr->name, IPP_TAG_ZERO)) != NULL)
else if ((attr2 = ippFindAttribute(job->attrs, attr->name, attr->value_tag)) != NULL)
{
/*
* Some other value...
@@ -4659,13 +4638,11 @@ set_job_attrs(client_t *con, /* I - Client connection */
_ipp_free_attr(attr2);
/*
* See if the job-name or job-hold-until is being changed.
* See if the job-name is being changed.
*/
if (strcmp(attr->name, "job-name") == 0)
strncpy(job->title, attr->values[0].string.text, sizeof(job->title) - 1);
else if (strcmp(attr->name, "job-hold-until") == 0)
SetJobHoldUntil(job->id, attr->values[0].string.text);
}
else if (attr->value_tag == IPP_TAG_DELETEATTR)
{
+14 -20
Ver Arquivo
@@ -1207,20 +1207,21 @@ StartJob(int id, /* I - Job ID */
envp[0] = "PATH=/bin:/usr/bin";
envp[1] = "SOFTWARE=CUPS/1.1";
envp[2] = "USER=root";
envp[3] = charset;
envp[4] = language;
envp[5] = TZ;
envp[6] = ppd;
envp[7] = root;
envp[8] = cache;
envp[9] = tmpdir;
envp[10] = content_type;
envp[11] = device_uri;
envp[12] = printer_name;
envp[13] = datadir;
envp[2] = "TZ=GMT";
envp[3] = "USER=root";
envp[4] = charset;
envp[5] = language;
envp[6] = TZ;
envp[7] = ppd;
envp[8] = root;
envp[9] = cache;
envp[10] = tmpdir;
envp[11] = content_type;
envp[12] = device_uri;
envp[13] = printer_name;
envp[14] = ldpath;
envp[15] = NULL;
envp[15] = datadir;
envp[16] = NULL;
DEBUG_puts(envp[0]);
DEBUG_puts(envp[1]);
@@ -1236,7 +1237,6 @@ StartJob(int id, /* I - Job ID */
DEBUG_puts(envp[11]);
DEBUG_puts(envp[12]);
DEBUG_puts(envp[13]);
DEBUG_puts(envp[14]);
current->current_file ++;
@@ -2534,12 +2534,6 @@ start_process(const char *command, /* I - Full path to command */
setuid(User);
}
/*
* Change umask to restrict permissions on created files...
*/
umask(077);
/*
* Execute the command; if for some reason this doesn't work,
* return the error code...
+64 -57
Ver Arquivo
@@ -23,10 +23,10 @@
*
* Contents:
*
* GetDateTime() - Returns a pointer to a date/time string.
* LogMessage() - Log a message to the error log file.
* LogPage() - Log a page to the page log file.
* LogRequest() - Log an HTTP request in Common Log Format.
* LogMessage() - Log a message to the error log file.
* LogPage() - Log a page to the page log file.
* LogRequest() - Log an HTTP request in Common Log Format.
* get_datetime() - Returns a pointer to a date/time string.
*/
/*
@@ -42,58 +42,10 @@
/*
* 'GetDateTime()' - Returns a pointer to a date/time string.
* Local functions...
*/
char * /* O - Date/time string */
GetDateTime(time_t t) /* I - Time value */
{
struct tm *date; /* Date/time value */
static char s[1024]; /* Date/time string */
static const char *months[12] =/* Months */
{
"Jan",
"Feb",
"Mar",
"Apr",
"May",
"Jun",
"Jul",
"Aug",
"Sep",
"Oct",
"Nov",
"Dec"
};
/*
* Get the date and time from the UNIX time value, and then format it
* into a string. Note that we *can't* use the strftime() function since
* it is localized and will seriously confuse automatic programs if the
* month names are in the wrong language!
*
* Also, we use the "timezone" variable that contains the current timezone
* offset from GMT in seconds so that we are reporting local time in the
* log files. If you want GMT, set the TZ environment variable accordingly
* before starting the scheduler.
*
* (*BSD stores the timezone offset in the tm structure)
*/
date = localtime(&t);
sprintf(s, "[%02d/%s/%04d:%02d:%02d:%02d %+03ld%02ld]",
date->tm_mday, months[date->tm_mon], 1900 + date->tm_year,
date->tm_hour, date->tm_min, date->tm_sec,
#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
-date->tm_gmtoff / 3600, (date->tm_gmtoff / 60) % 60);
#else
-timezone / 3600, (timezone / 60) % 60);
#endif /* __*BSD__ */
return (s);
}
static char *get_datetime(time_t t);
/*
@@ -213,7 +165,7 @@ LogMessage(int level, /* I - Log level */
* Print the log level and date/time...
*/
fprintf(ErrorFile, "%c %s ", levels[level], GetDateTime(time(NULL)));
fprintf(ErrorFile, "%c %s ", levels[level], get_datetime(time(NULL)));
/*
* Then the log message...
@@ -332,7 +284,7 @@ LogPage(job_t *job, /* I - Job being printed */
*/
fprintf(PageFile, "%s %s %d %s %s %s\n", job->printer->name, job->username,
job->id, GetDateTime(time(NULL)), page,
job->id, get_datetime(time(NULL)), page,
billing ? billing->values[0].string.text : "");
fflush(PageFile);
@@ -450,7 +402,7 @@ LogRequest(client_t *con, /* I - Request to log */
fprintf(AccessFile, "%s - %s %s \"%s %s HTTP/%d.%d\" %d %d\n",
con->http.hostname, con->username[0] != '\0' ? con->username : "-",
GetDateTime(con->start), states[con->operation], con->uri,
get_datetime(con->start), states[con->operation], con->uri,
con->http.version / 100, con->http.version % 100,
code, con->bytes);
fflush(AccessFile);
@@ -459,6 +411,61 @@ LogRequest(client_t *con, /* I - Request to log */
}
/*
* 'get_datetime()' - Returns a pointer to a date/time string.
*/
static char * /* O - Date/time string */
get_datetime(time_t t) /* I - Time value */
{
struct tm *date; /* Date/time value */
static char s[1024]; /* Date/time string */
static const char *months[12] =/* Months */
{
"Jan",
"Feb",
"Mar",
"Apr",
"May",
"Jun",
"Jul",
"Aug",
"Sep",
"Oct",
"Nov",
"Dec"
};
/*
* Get the date and time from the UNIX time value, and then format it
* into a string. Note that we *can't* use the strftime() function since
* it is localized and will seriously confuse automatic programs if the
* month names are in the wrong language!
*
* Also, we use the "timezone" variable that contains the current timezone
* offset from GMT in seconds so that we are reporting local time in the
* log files. If you want GMT, set the TZ environment variable accordingly
* before starting the scheduler.
*
* (*BSD stores the timezone offset in the tm structure)
*/
date = localtime(&t);
sprintf(s, "[%02d/%s/%04d:%02d:%02d:%02d %+03ld%02ld]",
date->tm_mday, months[date->tm_mon], 1900 + date->tm_year,
date->tm_hour, date->tm_min, date->tm_sec,
#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
-date->tm_gmtoff / 3600, (date->tm_gmtoff / 60) % 60);
#else
-timezone / 3600, (timezone / 60) % 60);
#endif /* __*BSD__ */
return (s);
}
/*
* End of "$Id$".
*/
-10
Ver Arquivo
@@ -507,16 +507,6 @@ load_convs(mime_t *mime, /* I - MIME database */
*temp = '\0';
if (strcmp(super, "*") == 0 && strcmp(type, "*") == 0)
{
/*
* Force * / * to be "application/octet-stream"...
*/
strcpy(super, "application");
strcpy(type, "octet-stream");
}
/*
* Add the filter to the MIME database, supporting wildcards as needed...
*/
+1 -1
Ver Arquivo
@@ -122,7 +122,7 @@ LoadPPDs(const char *d) /* I - Directory to scan... */
{
fwrite(ppds, num_ppds, sizeof(ppd_info_t), fp);
fclose(fp);
LogMessage(L_INFO, "LoadPPDs: Wrote %s (%d PPDs)...", filename, num_ppds);
LogMessage(L_INFO, "LoadPPDs: Wrote %s...", filename);
}
else
LogMessage(L_ERROR, "LoadPPDs: Unable to write %s...", filename);
+6 -8
Ver Arquivo
@@ -121,10 +121,9 @@ main(int argc, /* I - Number of command-line arguments */
if ((dest = cupsGetDest(printer, instance, num_dests, dests)) != NULL)
{
for (j = 0; j < dest->num_options; j ++)
if (cupsGetOption(dest->options[j].name, num_options, options) == NULL)
num_options = cupsAddOption(dest->options[j].name,
dest->options[j].value,
num_options, &options);
num_options = cupsAddOption(dest->options[j].name,
dest->options[j].value,
num_options, &options);
}
break;
@@ -245,10 +244,9 @@ main(int argc, /* I - Number of command-line arguments */
printer = dests[j].name;
for (j = 0; j < dest->num_options; j ++)
if (cupsGetOption(dest->options[j].name, num_options, options) == NULL)
num_options = cupsAddOption(dest->options[j].name,
dest->options[j].value,
num_options, &options);
num_options = cupsAddOption(dest->options[j].name,
dest->options[j].value,
num_options, &options);
break;
}
}
+5 -7
Ver Arquivo
@@ -33,7 +33,6 @@
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <ctype.h>
#include <grp.h>
#include <sys/types.h>
@@ -99,7 +98,7 @@ main(int argc, /* I - Number of command-line arguments */
else
{
strcpy(passwdmd5, CUPS_SERVERROOT "/passwd.md5");
strcpy(passwdold, CUPS_SERVERROOT "/passwd.old");
strcpy(passwdold, CUPS_SERVERROOT "/passwd.md5");
}
/*
@@ -196,11 +195,10 @@ main(int argc, /* I - Number of command-line arguments */
}
if (rename(passwdmd5, passwdold))
if (errno != ENOENT && op != ADD)
{
perror("lppasswd: Unable to rename password file");
return (1);
}
{
perror("lppasswd: Unable to rename password file");
return (1);
}
/*
* Open the existing password file and create a new one...
-21
Ver Arquivo
@@ -1,21 +0,0 @@
# Get devices using CUPS-get-devices
{
# The name of the test...
NAME "Get devices using CUPS-get-devices"
# The resource to use for the POST
# RESOURCE /admin
# The operation to use
OPERATION CUPS-get-devices
# Attributes, starting in the operation group...
GROUP operation
ATTR charset attributes-charset us-ascii
ATTR language attributes-natural-language en
ATTR uri printer-uri $uri
# What statuses are OK?
STATUS ok
STATUS ok-subst
}

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