Comparar commits

..

1 Commits

Autor SHA1 Mensagem Data
msweet 6a383a416a Import cups.org releases
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/tags/release-1.1.2@4306 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-10 18:56:23 +00:00
129 arquivos alterados com 13718 adições e 16465 exclusões
+1 -195
Ver Arquivo
@@ -1,200 +1,6 @@
CHANGES.txt - 10/04/2000
CHANGES.txt - 08/04/2000
------------------------
CHANGES IN CUPS v1.1.4
- Makefile and configure script fixes.
- **** Changed the default Printcap setting **** to
/etc/printcap. There are just too many people asking
why application XYZ doesn't see their printers!
- The web admin interface now displays an error if it
can't get the list of printer drivers from cupsd.
- The IPP backend was putting the copies option before
the other job options were set. This caused the IPP
request to contain attribute groups in the wrong
order, which prevented remote printing.
- Added checks in scheduler to free memory used for
IPP requests and language information when closing
a client connection.
- Fixed the duplex option in the HP LaserJet driver. It
should now work with all LaserJet printers (and
compatibles)
- The add-printer web interface didn't initialize the
"old info" data pointer, which caused random crashes
on many OS's.
- Fixed many page sizes defined in the Level 1
compatibility file "gs_statd.ps" to match reality.
- Fixed another bug in the setpagedevice "code" in
Ghostscript. It should now accept all standard
Adobe attributes on all platforms.
- Fixed pstoraster so that it reallocates memory for
color depth changes as well as size/resolution
changes. This removes an ordering constraint on
the color, page size, and resolution options in
PPD files.
- The IPP backend didn't use the job's character set
when the destination printer supported it. This
caused problems when printing text files to other
CUPS servers.
- Updated the logic used to determine when to rebuild
the PPD file database. The scheduler now checks the
dates and the number of PPD files (was just checking
the dates.)
- Updated the ippSetCGIVars() function (used by the
web interfaces) to only filter valid string values.
- The PostScript filter was scaling 2-up pages
incorrectly. This caused the edges of some pages to
be clipped.
CHANGES IN CUPS v1.1.3
- Makefile fixes.
- RPM spec file changes.
- Documentation updates.
- Enabled pstoraster debug messages for everything
(only logged when LogLevel set to "debug"...)
- Changed the Input/OutputAttributes fix in
pstoraster so that it works on all platforms.
- The HP-GL/2 filter didn't set the right green
color value in encoded polylines or text.
- Updated the "fitplot" code to handle plot sizes
specified as "PSwidth,length" and "PSlength,width".
- Updated the Linux parallel and USB backends to open
the device files prior to looking in /proc for
autoprobe info. This makes sure that loadable device
driver modules are in fact loaded...
- Added new FilterLimit directive to limit the number
of processing jobs/filters on a system.
- set-job-attributes didn't change the job-state to
held/pending when the job-hold-until attribute was
specified.
- set-job-attributes didn't save the new job attributes.
- Now change the "requesting-user-name" attribute in
requests from remote systems to "remroot" when an
unauthenticated "root" user is sent. This can be
changed using the new RemoteRoot directive in
cupsd.conf.
- The cancel-job, hold-job, release-job, and restart-job
operations didn't log the authenticated username.
- The cups-lpd mini-daemon now checks for a
document-format option before forcing raw mode with
filter mode 'l'.
- The cups-lpd mini-daemon now supports "-o" options
on the command-line (passed by inetd) to set global
defaults for all print queues.
- The pstops filter assumed that a file with a Trailer
comment would also have an EOF comment.
- Added new cupsSetPasswordCB(), cupsSetServer(),
cupsSetUser(), and ippSetPort() functions to better
support client applications (especially GUIs...)
- The CUPS-add-class and CUPS-add-printer operations
didn't reset the printer-name attribute on remote
print queues that had to be renamed when a local
printer was defined with the same name.
- The lpoptions command now supports a "-r" option to
remove options for a printer or instance.
- The lpadmin and admin.cgi programs no longer allow
class and printer names to begin with a number; this
caused the command-line utilities to become confused.
- The Linux USB backend now looks for both the parallel
and usblp driver names in the device list.
- Added a new FontPath directive to cupsd.conf, and also
a "--with-fontpath" option for the configure script to
specify alternate font paths for pstoraster.
- The CUPS-move-job operation didn't update the
job-printer-uri attribute.
- The scheduler only looked up printers and classes by
name in IPP requests, instead of using the full URI.
This caused problems with KUPS and friends with
remote printers.
- The scheduler now handles better localization of
hostnames (e.g. server is host.foo.com, remote is
host.subfoo.foo.com, localized is not host.subfoo...)
- The scheduler logging functions now use a common
log file checking/rotation function (courtesy of
Crutcher Dunnavant at Red Hat)
- The scheduler could accept more client connections
than it allocated for if more than one Port or Listen
line was present in cupsd.conf.
- Other minor scheduler performance tweeks.
- The lpq and lprm commands didn't support the default
printer set using lpoptions.
- The lpoptions command now supports a "-l" option to
list the printer-specific options and their current
settings.
- The web printer and class lists now show a link to the
default printer or class at the top of the page.
- The text filter now supports pretty printing of shell
and perl scripts as well as C/C++ source files.
- The top and bottom margins were reversed for landscape
text printing.
- The lpq and lprm commands didn't understand printer
instances.
- The scheduler only selected on the first 100 file
descriptors instead of the maximum file descriptor
limit.
- The scheduler client, listener, and mainline functions
now share code to disable and enable monitoring for
new client connections.
- The imagetoraster filter didn't support all of the
required pagedevice parameters.
- The serial backend now checks for 100 serial ports
under Linux.
- The scheduler used sscanf() to pull out the remote
printer location, description, and make/model strings,
but if any of these options was empty then sscanf()
would stop processing.
- Added "debug2" log level to provide a little less
verbose debugging information at the "debug" level.
- The scheduler would crash if you stopped a printer
that was currently printing a job.
- The scheduler incorrectly allowed jobs in the cancelled,
aborted, or completed state to be cancelled.
- The image filters did not load TIFF images properly
for bottom-to-top and right-to-left orientations.
- Added new cupsEncodeOptions() function to encode
CUPS options as IPP job attributes.
- The IPP backend, LPD mini-daemon, client commands,
and CUPS API did not properly encode multiple
option values separated by commas.
- Added new scheduler malloc logging in debug mode
(provides summary of total arena size, allocated,
and free bytes once a minute)
- The EPM-based distributions didn't install the
correct symlinks for a few man pages.
- Fixed a memory leak in the scheduler - wasn't
freeing old filters when deleting or renaming
printers.
- The scheduler now queries the primary IP address
for the name of the server and maps any incoming
requests from that address to the server name.
This fixes web admin mapping problems from
server.domain.com to localhost.
- The web printer modify interface now remembers
the previous device and driver settings (except
for serial ports.)
- The job-k-octets attribute is now stored as part of
the job attributes; this preserves the information
after a job is completed when job file history is
turned off.
- Dropped option sub-group parsing code for the moment,
since many Xerox PPD files abuse this feature in PPD
files and don't follow the hierarchy rules.
- Added new wrapper code around options so that duplex
options for some HP printers don't prevent prints.
- Added support for Digital UNIX/Tru64 UNIX/OSF/1 format
for "lpstat -v" output.
- Now show the URI for remote printers instead of
/dev/null in "lpstat -v" output.
- Creating classes and adding printers to a class with
the lpadmin command didn't work.
- The banner pages and test page should now format
correctly in both portrait and landscape orientations.
- Updated banner page substitution so that { can appear
by itself without quoting.
CHANGES IN CUPS v1.1.2
- Makefile/configure fixes
-1
Ver Arquivo
@@ -63,7 +63,6 @@ INSTALL_SYSV = @INSTALL_SYSV@
LIBCUPS = @LIBCUPS@
LIBCUPSIMAGE = @LIBCUPSIMAGE@
LIBJPEG = @LIBJPEG@
LIBMALLOC = @LIBMALLOC@
LIBPNG = @LIBPNG@
LIBTIFF = @LIBTIFF@
LIBZ = @LIBZ@
+4 -12
Ver Arquivo
@@ -70,22 +70,14 @@ 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 \
$(MKDIR) $(prefix)/$(INITDIR)/init.d; \
$(RM) $(prefix)/$(INITDIR)/init.d/cups; \
$(INSTALL_SCRIPT) cups.sh $(prefix)/$(INITDIR)/init.d/cups; \
$(CHMOD) ugo+rx $(prefix)/$(INITDIR)/init.d/cups; \
$(MKDIR) $(prefix)/$(INITDIR)/rc0.d; \
$(RM) $(prefix)/$(INITDIR)/rc0.d/K00cups; \
ln -s $(INITDDIR)/cups $(prefix)/$(INITDIR)/rc0.d/K00cups; \
$(MKDIR) $(prefix)/$(INITDIR)/rc3.d; \
$(RM) $(prefix)/$(INITDIR)/rc3.d/S99cups; \
ln -s $(INITDDIR)/cups $(prefix)/$(INITDIR)/rc3.d/S99cups; \
$(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; \
fi
#
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
README - CUPS v1.1.4 - 10/04/2000
README - CUPS v1.1.2 - 08/04/2000
---------------------------------
INTRODUCTION
+1 -1
Ver Arquivo
@@ -41,7 +41,7 @@ all: $(TARGETS)
#
clean:
$(RM) $(OBJS) $(TARGETS) http
$(RM) $(OBJS) $(TARGETS)
#
+119 -57
Ver Arquivo
@@ -54,6 +54,10 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
char *argv[]) /* I - Command-line arguments */
{
int i; /* Looping var */
int n, n2; /* Attribute values */
char *option, /* Name of option */
*s; /* Pointer into option value */
const char *val; /* Pointer to option value */
int num_options; /* Number of printer options */
cups_option_t *options; /* Printer options */
char method[255], /* Method in URI */
@@ -72,8 +76,6 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
*response; /* IPP response */
ipp_attribute_t *job_id; /* job-id attribute */
ipp_attribute_t *copies_sup; /* copies-supported attribute */
ipp_attribute_t *charset_sup; /* charset-supported attribute */
const char *charset; /* Character set to use */
cups_lang_t *language; /* Default language */
struct stat fileinfo; /* File statistics */
size_t nbytes, /* Number of bytes written */
@@ -89,8 +91,6 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
if (argc == 1)
{
char *s;
if ((s = strrchr(argv[0], '/')) != NULL)
s ++;
else
@@ -203,10 +203,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
* don't support the copies attribute...
*/
language = cupsLangDefault();
charset_sup = NULL;
copies_sup = NULL;
version = 1;
language = cupsLangDefault();
copies_sup = NULL;
version = 1;
do
{
@@ -329,8 +328,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
copies_sup = NULL; /* No */
}
charset_sup = ippFindAttribute(response, "charset-supported",
IPP_TAG_CHARSET);
ippDelete(response);
}
else
{
@@ -397,46 +395,6 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
else
copies = atoi(argv[4]);
/*
* Figure out the character set to use...
*/
charset = language ? cupsLangEncoding(language) : "us-ascii";
if (charset_sup)
{
/*
* See if IPP server supports the requested character set...
*/
for (i = 0; i < charset_sup->num_values; i ++)
if (strcasecmp(charset, charset_sup->values[i].string.text) == 0)
break;
/*
* If not, choose us-ascii or utf-8...
*/
if (i >= charset_sup->num_values)
{
/*
* See if us-ascii is supported...
*/
for (i = 0; i < charset_sup->num_values; i ++)
if (strcasecmp("us-ascii", charset_sup->values[i].string.text) == 0)
break;
if (i < charset_sup->num_values)
charset = "us-ascii";
else
charset = "utf-8";
}
}
if (response)
ippDelete(response);
/*
* Then issue the print-job request...
*/
@@ -453,7 +411,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
request->request.op.request_id = 1;
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, charset);
"attributes-charset", NULL, "utf-8");
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL,
@@ -481,16 +439,120 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
options = NULL;
num_options = cupsParseOptions(argv[5], 0, &options);
if ((content_type = getenv("CONTENT_TYPE")) != NULL &&
strcasecmp(content_type, "application/vnd.cups-raw") == 0)
num_options = cupsAddOption("raw", "", num_options, &options);
cupsEncodeOptions(request, num_options, options);
cupsFreeOptions(num_options, options);
if (cupsGetOption("raw", num_options, options) ||
((content_type = getenv("CONTENT_TYPE")) != NULL &&
strcasecmp(content_type, "application/vnd.cups-raw") == 0))
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE, "document-format",
NULL, "application/vnd.cups-raw");
else if ((val = cupsGetOption("document-format", num_options, options)) != NULL)
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE, "document-format",
NULL, val);
else
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE, "document-format",
NULL, "application/octet-stream");
if (copies_sup)
ippAddInteger(request, IPP_TAG_JOB, IPP_TAG_INTEGER, "copies", atoi(argv[4]));
for (i = 0; i < num_options; i ++)
{
/*
* Skip the "raw" option - handled above...
*/
if (strcasecmp(options[i].name, "raw") == 0 ||
strcasecmp(options[i].name, "document-format") == 0)
continue;
/*
* See what the option value is; for compatibility with older interface
* scripts, we have to support single-argument options as well as
* option=value, option=low-high, and option=MxN.
*/
option = options[i].name;
val = options[i].value;
if (*val == '\0')
val = NULL;
if (val != NULL)
{
if (strcasecmp(val, "true") == 0 ||
strcasecmp(val, "on") == 0 ||
strcasecmp(val, "yes") == 0)
{
/*
* Boolean value - true...
*/
n = 1;
val = "";
}
else if (strcasecmp(val, "false") == 0 ||
strcasecmp(val, "off") == 0 ||
strcasecmp(val, "no") == 0)
{
/*
* Boolean value - false...
*/
n = 0;
val = "";
}
n = strtol(val, &s, 0);
}
else
{
if (strncasecmp(option, "no", 2) == 0)
{
option += 2;
n = 0;
}
else
n = 1;
s = "";
}
if (*s != '\0' && *s != '-' && (*s != 'x' || s == val))
/*
* String value(s)...
*/
ippAddString(request, IPP_TAG_JOB, IPP_TAG_KEYWORD, option, NULL, val);
else if (val != NULL)
{
/*
* Numeric value, range, or resolution...
*/
if (*s == '-')
{
n2 = strtol(s + 1, NULL, 0);
ippAddRange(request, IPP_TAG_JOB, option, n, n2);
}
else if (*s == 'x')
{
n2 = strtol(s + 1, &s, 0);
if (strcasecmp(s, "dpc") == 0)
ippAddResolution(request, IPP_TAG_JOB, option, IPP_RES_PER_CM, n, n2);
else if (strcasecmp(s, "dpi") == 0)
ippAddResolution(request, IPP_TAG_JOB, option, IPP_RES_PER_INCH, n, n2);
else
ippAddString(request, IPP_TAG_JOB, IPP_TAG_KEYWORD, option, NULL, val);
}
else
ippAddInteger(request, IPP_TAG_JOB, IPP_TAG_INTEGER, option, n);
}
else
/*
* Boolean value...
*/
ippAddBoolean(request, IPP_TAG_JOB, option, (char)n);
}
/*
* Now fill in the HTTP request stuff...
*/
+19 -42
Ver Arquivo
@@ -275,8 +275,7 @@ list_devices(void)
#ifdef __linux
int i; /* Looping var */
int fd; /* File descriptor */
char device[255], /* Device filename */
probefile[255]; /* Probe filename */
char device[255]; /* Device filename */
FILE *probe; /* /proc/parport/n/autoprobe file */
char line[1024], /* Line from file */
*delim, /* Delimiter in file */
@@ -286,41 +285,9 @@ list_devices(void)
for (i = 0; i < 4; i ++)
{
/*
* First open the device to make sure the driver module is loaded...
*/
sprintf(device, "/dev/lp%d", i);
if ((fd = open(device, O_WRONLY)) >= 0)
close(fd);
else
sprintf(device, "/proc/parport/%d/autoprobe", i);
if ((probe = fopen(device, "r")) != NULL)
{
sprintf(device, "/dev/par%d", i);
if ((fd = open(device, O_WRONLY)) >= 0)
close(fd);
}
/*
* Then try looking at the probe file...
*/
sprintf(probefile, "/proc/parport/%d/autoprobe", i);
if ((probe = fopen(probefile, "r")) == NULL)
{
/*
* Linux 2.4 kernel has different path...
*/
sprintf(probefile, "/proc/sys/dev/parport/parport%d/autoprobe", i);
probe = fopen(probefile, "r");
}
if (probe != NULL)
{
/*
* Found a probe file!
*/
memset(make, 0, sizeof(make));
memset(model, 0, sizeof(model));
strcpy(model, "Unknown");
@@ -357,13 +324,23 @@ list_devices(void)
printf("direct parallel:/dev/lp%d \"%s\" \"Parallel Port #%d\"\n",
i, model, i + 1);
}
else if (fd >= 0)
else
{
/*
* No probe file, but we know the port is there...
*/
printf("direct parallel:%s \"Unknown\" \"Parallel Port #%d\"\n", device, i + 1);
sprintf(device, "/dev/lp%d", i);
if ((fd = open(device, O_WRONLY)) >= 0)
{
close(fd);
printf("direct parallel:%s \"Unknown\" \"Parallel Port #%d\"\n", device, i + 1);
}
else
{
sprintf(device, "/dev/par%d", i);
if ((fd = open(device, O_WRONLY)) >= 0)
{
close(fd);
printf("direct parallel:%s \"Unknown\" \"Parallel Port #%d\"\n", device, i + 1);
}
}
}
}
#elif defined(__sgi)
+1 -1
Ver Arquivo
@@ -396,7 +396,7 @@ list_devices(void)
char device[255]; /* Device filename */
for (i = 0; i < 100; i ++)
for (i = 0; i < 4; i ++)
{
sprintf(device, "/dev/ttyS%d", i);
if ((fd = open(device, O_WRONLY | O_NOCTTY | O_NDELAY)) >= 0)
+2 -25
Ver Arquivo
@@ -262,33 +262,15 @@ list_devices(void)
int i; /* Looping var */
int fd; /* File descriptor */
char device[255]; /* Device filename */
FILE *probe; /* /proc/bus/usb/devices file */
FILE *probe; /* /proc/parport/n/autoprobe file */
char line[1024], /* Line from file */
*delim, /* Delimiter in file */
make[IPP_MAX_NAME], /* Make from file */
model[IPP_MAX_NAME]; /* Model from file */
/*
* First try opening one of the USB devices to load the driver
* module as needed...
*/
if ((fd = open("/dev/usb/lp0", O_WRONLY)) >= 0)
close(fd); /* 2.3.x and 2.4.x */
else if ((fd = open("/dev/usblp0", O_WRONLY)) >= 0)
close(fd); /* 2.2.x */
/*
* Then look at the device list for the USB bus...
*/
if ((probe = fopen("/proc/bus/usb/devices", "r")) != NULL)
{
/*
* Scan the device list...
*/
i = 0;
memset(make, 0, sizeof(make));
@@ -323,8 +305,7 @@ list_devices(void)
strncpy(model, line + 12, sizeof(model) - 1);
}
else if (strncmp(line, "I:", 2) == 0 &&
(strstr(line, "Driver=printer") != NULL ||
strstr(line, "Driver=usblp") != NULL) &&
strstr(line, "Driver=printer") != NULL &&
make[0] && model[0])
{
/*
@@ -345,10 +326,6 @@ list_devices(void)
}
else
{
/*
* Just probe manually for USB devices...
*/
for (i = 0; i < 8; i ++)
{
sprintf(device, "/dev/usb/lp%d", i);
+1 -17
Ver Arquivo
@@ -65,13 +65,9 @@ main(int argc, /* I - Number of command-line arguments */
http_t *http; /* Connection to server */
const char *dest, /* Desired printer */
*user; /* Desired user */
char *instance; /* Printer instance */
int id, /* Desired job ID */
interval, /* Reporting interval */
longstatus; /* Show file details */
int num_dests; /* Number of destinations */
cups_dest_t *dests; /* Destinations */
/*
* Connect to the scheduler...
@@ -83,18 +79,12 @@ main(int argc, /* I - Number of command-line arguments */
* Check for command-line options...
*/
dest = NULL;
dest = cupsGetDefault();
user = NULL;
id = 0;
interval = 0;
longstatus = 0;
num_dests = cupsGetDests(&dests);
for (i = 0; i < num_dests; i ++)
if (dests[i].is_default)
dest = dests[i].name;
for (i = 1; i < argc; i ++)
if (argv[i][0] == '+')
interval = atoi(argv[i] + 1);
@@ -110,9 +100,6 @@ main(int argc, /* I - Number of command-line arguments */
i ++;
dest = argv[i];
}
if ((instance = strchr(dest, '/')) != NULL)
*instance = '\0';
break;
case 'l' : /* Long status */
@@ -121,8 +108,6 @@ main(int argc, /* I - Number of command-line arguments */
default :
fputs("Usage: lpq [-P dest] [-l] [+interval]\n", stderr);
httpClose(http);
cupsFreeDests(num_dests, dests);
return (1);
}
}
@@ -155,7 +140,6 @@ main(int argc, /* I - Number of command-line arguments */
* Close the connection to the server and return...
*/
cupsFreeDests(num_dests, dests);
httpClose(http);
return (0);
+2 -5
Ver Arquivo
@@ -123,17 +123,14 @@ main(int argc, /* I - Number of command-line arguments */
break;
case 'l' : /* Literal/raw */
num_options = cupsAddOption("raw", "", num_options, &options);
num_options = cupsParseOptions("raw", num_options, &options);
break;
case 'p' : /* Prettyprint */
num_options = cupsAddOption("prettyprint", "", num_options, &options);
num_options = cupsParseOptions("prettyprint", num_options, &options);
break;
case 'h' : /* Suppress burst page */
num_options = cupsAddOption("job-sheets", "none", num_options, &options);
break;
case 's' : /* Don't use symlinks */
break;
+1 -23
Ver Arquivo
@@ -50,14 +50,11 @@ main(int argc, /* I - Number of command-line arguments */
int i; /* Looping var */
int job_id; /* Job ID */
const char *dest; /* Destination printer */
char *instance; /* Pointer to instance name */
char uri[1024]; /* Printer or job URI */
ipp_t *request; /* IPP request */
ipp_t *response; /* IPP response */
ipp_op_t op; /* Operation */
cups_lang_t *language; /* Language */
int num_dests; /* Number of destinations */
cups_dest_t *dests; /* Destinations */
/*
@@ -66,16 +63,10 @@ main(int argc, /* I - Number of command-line arguments */
op = IPP_CANCEL_JOB;
job_id = 0;
dest = NULL;
dest = cupsGetDefault();
response = NULL;
http = NULL;
num_dests = cupsGetDests(&dests);
for (i = 0; i < num_dests; i ++)
if (dests[i].is_default)
dest = dests[i].name;
/*
* Open a connection to the server...
*/
@@ -83,7 +74,6 @@ main(int argc, /* I - Number of command-line arguments */
if ((http = httpConnect(cupsServer(), ippPort())) == NULL)
{
fputs("lprm: Unable to contact server!\n", stderr);
cupsFreeDests(num_dests, dests);
return (1);
}
@@ -103,15 +93,10 @@ main(int argc, /* I - Number of command-line arguments */
i ++;
dest = argv[i];
}
if ((instance = strchr(dest, '/')) != NULL)
*instance = '\0';
break;
default :
fprintf(stderr, "lprm: Unknown option \'%c\'!\n", argv[i][1]);
cupsFreeDests(num_dests, dests);
httpClose(http);
return (1);
}
else
@@ -211,8 +196,6 @@ main(int argc, /* I - Number of command-line arguments */
else
{
fputs("lprm: Unable to cancel job(s)!\n", stderr);
cupsFreeDests(num_dests, dests);
httpClose(http);
return (1);
}
}
@@ -226,14 +209,9 @@ main(int argc, /* I - Number of command-line arguments */
if (!cupsCancelJob(dest, 0))
{
fputs("lprm: Unable to cancel job(s)!\n", stderr);
cupsFreeDests(num_dests, dests);
httpClose(http);
return (1);
}
cupsFreeDests(num_dests, dests);
httpClose(http);
return (0);
}
+44 -135
Ver Arquivo
@@ -263,12 +263,9 @@ do_am_class(http_t *http, /* I - HTTP connection */
}
name = cgiGetVariable("PRINTER_NAME");
if (isdigit(*name))
ptr = name;
else
for (ptr = name; *ptr; ptr ++)
if (!isalnum(*ptr) && *ptr != '_')
break;
for (ptr = name; *ptr; ptr ++)
if (!isalnum(*ptr) && *ptr != '_')
break;
if (*ptr || ptr == name)
{
@@ -486,8 +483,7 @@ do_am_printer(http_t *http, /* I - HTTP connection */
ipp_attribute_t *attr, /* Current attribute */
*last; /* Last attribute */
ipp_t *request, /* IPP request */
*response, /* IPP response */
*oldinfo; /* Old printer information */
*response; /* IPP response */
ipp_status_t status; /* Request status */
const char *var; /* CGI variable */
char uri[HTTP_MAX_URI], /* Device or printer URI */
@@ -511,52 +507,48 @@ do_am_printer(http_t *http, /* I - HTTP connection */
};
if (modify)
{
/*
* 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;
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(uri, sizeof(uri), "ipp://localhost/printers/%s",
cgiGetVariable("PRINTER_NAME"));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
NULL, uri);
/*
* Do the request and get back a response...
*/
oldinfo = cupsDoRequest(http, request, "/");
}
else
oldinfo = NULL;
if ((name = cgiGetVariable("PRINTER_NAME")) == NULL)
if (cgiGetVariable("PRINTER_LOCATION") == NULL)
{
if (modify)
{
/*
* Update the location and description of an existing printer...
* Build an IPP_GET_PRINTER_ATTRIBUTES request, which requires the
* following attributes:
*
* attributes-charset
* attributes-natural-language
* printer-uri
*/
if (oldinfo)
ippSetCGIVars(oldinfo, NULL, NULL);
request = ippNew();
request->request.op.operation_id = IPP_GET_PRINTER_ATTRIBUTES;
request->request.op.request_id = 1;
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(uri, sizeof(uri), "ipp://localhost/printers/%s",
cgiGetVariable("PRINTER_NAME"));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
NULL, uri);
/*
* Do the request and get back a response...
*/
if ((response = cupsDoRequest(http, request, "/")) != NULL)
{
ippSetCGIVars(response, NULL, NULL);
ippDelete(response);
}
/*
* Update the location and description of an existing printer...
*/
cgiCopyTemplateLang(stdout, TEMPLATES, "modify-printer.tmpl", getenv("LANG"));
}
@@ -569,18 +561,13 @@ do_am_printer(http_t *http, /* I - HTTP connection */
cgiCopyTemplateLang(stdout, TEMPLATES, "add-printer.tmpl", getenv("LANG"));
}
if (oldinfo)
ippDelete(oldinfo);
return;
}
if (isdigit(*name))
ptr = name;
else
for (ptr = name; *ptr; ptr ++)
if (!isalnum(*ptr) && *ptr != '_')
break;
name = cgiGetVariable("PRINTER_NAME");
for (ptr = name; *ptr; ptr ++)
if (!isalnum(*ptr) && *ptr != '_')
break;
if (*ptr || ptr == name)
{
@@ -629,32 +616,10 @@ do_am_printer(http_t *http, /* I - HTTP connection */
* Let the user choose...
*/
if (oldinfo &&
(attr = ippFindAttribute(oldinfo, "device-uri", IPP_TAG_URI)) != NULL)
{
strncpy(uri, attr->values[0].string.text, sizeof(uri) - 1);
uri[sizeof(uri) - 1] = '\0';
if ((uriptr = strchr(uri, ':')) != NULL && strncmp(uriptr, "://", 3) == 0)
*uriptr = '\0';
cgiSetVariable("CURRENT_DEVICE_URI", uri);
}
cgiCopyTemplateLang(stdout, TEMPLATES, "choose-device.tmpl", getenv("LANG"));
}
else if (strchr(var, '/') == NULL)
{
if (oldinfo &&
(attr = ippFindAttribute(oldinfo, "device-uri", IPP_TAG_URI)) != NULL)
{
/*
* Set the current device URI for the form to the old one...
*/
if (strncmp(attr->values[0].string.text, var, strlen(var)) == 0)
cgiSetVariable("DEVICE_URI", attr->values[0].string.text);
}
/*
* User needs to set the full URI...
*/
@@ -686,50 +651,6 @@ do_am_printer(http_t *http, /* I - HTTP connection */
}
else if ((var = cgiGetVariable("PPD_NAME")) == NULL)
{
if (modify)
{
/*
* Get the PPD file...
*/
FILE *fp; /* PPD file */
char filename[1024]; /* PPD filename */
ppd_file_t *ppd; /* PPD information */
char buffer[1024]; /* Buffer */
int bytes; /* Number of bytes */
sprintf(uri, "/printers/%s.ppd", name);
cupsTempFile(filename, sizeof(filename));
if (httpGet(http, uri))
httpGet(http, uri);
while (httpUpdate(http) == HTTP_CONTINUE);
if ((fp = fopen(filename, "w")) != NULL)
{
while ((bytes = httpRead(http, buffer, sizeof(buffer))) > 0)
fwrite(buffer, 1, bytes, fp);
fclose(fp);
if ((ppd = ppdOpenFile(filename)) != NULL)
{
if (ppd->manufacturer)
cgiSetVariable("CURRENT_MAKE", ppd->manufacturer);
if (ppd->nickname)
cgiSetVariable("CURRENT_MAKE_AND_MODEL", ppd->nickname);
ppdClose(ppd);
}
}
else
httpFlush(http);
unlink(filename);
}
/*
* Build a CUPS_GET_PPDS request, which requires the following
* attributes:
@@ -794,16 +715,7 @@ do_am_printer(http_t *http, /* I - HTTP connection */
ippDelete(response);
}
else
{
char message[1024];
snprintf(message, sizeof(message), "Unable to get list of printer drivers: %s",
ippErrorString(cupsLastError()));
cgiSetVariable("ERROR", message);
cgiCopyTemplateLang(stdout, TEMPLATES, "error.tmpl", getenv("LANG"));
}
}
else
{
@@ -892,9 +804,6 @@ do_am_printer(http_t *http, /* I - HTTP connection */
else
cgiCopyTemplateLang(stdout, TEMPLATES, "printer-added.tmpl", getenv("LANG"));
}
if (oldinfo)
ippDelete(oldinfo);
}
-59
Ver Arquivo
@@ -46,7 +46,6 @@ main(int argc, /* I - Number of command-line arguments */
http_t *http; /* Connection to the server */
ipp_t *request, /* IPP request */
*response; /* IPP response */
ipp_attribute_t *attr; /* IPP attribute */
ipp_status_t status; /* Operation status... */
char uri[HTTP_MAX_URI];
/* Printer URI */
@@ -99,64 +98,6 @@ main(int argc, /* I - Number of command-line arguments */
if (op == NULL || strcasecmp(op, "print-test-page") != 0)
{
/*
* Get the default destination...
*/
request = ippNew();
request->request.op.operation_id = CUPS_GET_DEFAULT;
request->request.op.request_id = 1;
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);
if ((response = cupsDoRequest(http, request, "/")) != NULL)
{
if ((attr = ippFindAttribute(response, "printer-name", IPP_TAG_NAME)) != NULL)
cgiSetVariable("DEFAULT_NAME", attr->values[0].string.text);
if ((attr = ippFindAttribute(response, "printer-uri-supported", IPP_TAG_URI)) != NULL)
{
char method[HTTP_MAX_URI],
username[HTTP_MAX_URI],
hostname[HTTP_MAX_URI],
resource[HTTP_MAX_URI],
uri[HTTP_MAX_URI];
int port; /* URI data */
const char *server; /* Name of server */
/*
* Map localhost access to localhost...
*/
server = getenv("SERVER_NAME");
httpSeparate(attr->values[0].string.text, method, username,
hostname, &port, resource);
if (strcasecmp(hostname, server) == 0 &&
(strcmp(getenv("REMOTE_HOST"), "127.0.0.1") == 0 ||
strcmp(getenv("REMOTE_HOST"), "localhost") == 0 ||
strcmp(getenv("REMOTE_HOST"), server) == 0))
strcpy(hostname, "localhost");
/*
* Rewrite URI with HTTP address...
*/
snprintf(uri, sizeof(uri), "http://%s:%d%s", hostname, port,
resource);
cgiSetVariable("DEFAULT_URI", uri);
}
ippDelete(response);
}
/*
* Get the class info...
*/
+3 -9
Ver Arquivo
@@ -23,7 +23,6 @@
*
* Contents:
*
* ippGetTemplateDir() - Get the templates directory...
* ippSetServerVersion() - Set the server name and CUPS version...
* ippSetCGIVars() - Set CGI variables from an IPP response.
*/
@@ -97,12 +96,12 @@ ippSetCGIVars(ipp_t *response, /* I - Response data to be copied... */
resource[HTTP_MAX_URI],
uri[HTTP_MAX_URI];
int port; /* URI data */
const char *server; /* Name of server */
char server[1024]; /* Name of server */
ippSetServerVersion();
server = getenv("SERVER_NAME");
strcpy(server, cupsServer());
for (attr = response->attrs;
attr && attr->group_tag == IPP_TAG_OPERATION;
@@ -120,10 +119,6 @@ ippSetCGIVars(ipp_t *response, /* I - Response data to be copied... */
filter != NULL && filter->group_tag != IPP_TAG_ZERO;
filter = filter->next)
if (filter->name && strcmp(filter->name, filter_name) == 0 &&
(filter->value_tag == IPP_TAG_STRING ||
(filter->value_tag >= IPP_TAG_TEXTLANG &&
filter->value_tag <= IPP_TAG_MIMETYPE)) &&
filter->values[0].string.text != NULL &&
strcasecmp(filter->values[0].string.text, filter_value) == 0)
break;
@@ -211,8 +206,7 @@ ippSetCGIVars(ipp_t *response, /* I - Response data to be copied... */
if (strcasecmp(hostname, server) == 0 &&
(strcmp(getenv("REMOTE_HOST"), "127.0.0.1") == 0 ||
strcmp(getenv("REMOTE_HOST"), "localhost") == 0 ||
strcmp(getenv("REMOTE_HOST"), server) == 0))
strcmp(getenv("REMOTE_HOST"), "localhost") == 0))
strcpy(hostname, "localhost");
/*
-59
Ver Arquivo
@@ -46,7 +46,6 @@ main(int argc, /* I - Number of command-line arguments */
http_t *http; /* Connection to the server */
ipp_t *request, /* IPP request */
*response; /* IPP response */
ipp_attribute_t *attr; /* IPP attribute */
ipp_status_t status; /* Operation status... */
char uri[HTTP_MAX_URI];
/* Printer URI */
@@ -99,64 +98,6 @@ main(int argc, /* I - Number of command-line arguments */
if (op == NULL || strcasecmp(op, "print-test-page") != 0)
{
/*
* Get the default destination...
*/
request = ippNew();
request->request.op.operation_id = CUPS_GET_DEFAULT;
request->request.op.request_id = 1;
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);
if ((response = cupsDoRequest(http, request, "/")) != NULL)
{
if ((attr = ippFindAttribute(response, "printer-name", IPP_TAG_NAME)) != NULL)
cgiSetVariable("DEFAULT_NAME", attr->values[0].string.text);
if ((attr = ippFindAttribute(response, "printer-uri-supported", IPP_TAG_URI)) != NULL)
{
char method[HTTP_MAX_URI],
username[HTTP_MAX_URI],
hostname[HTTP_MAX_URI],
resource[HTTP_MAX_URI],
uri[HTTP_MAX_URI];
int port; /* URI data */
const char *server; /* Name of server */
/*
* Map localhost access to localhost...
*/
server = getenv("SERVER_NAME");
httpSeparate(attr->values[0].string.text, method, username,
hostname, &port, resource);
if (strcasecmp(hostname, server) == 0 &&
(strcmp(getenv("REMOTE_HOST"), "127.0.0.1") == 0 ||
strcmp(getenv("REMOTE_HOST"), "localhost") == 0 ||
strcmp(getenv("REMOTE_HOST"), server) == 0))
strcpy(hostname, "localhost");
/*
* Rewrite URI with HTTP address...
*/
snprintf(uri, sizeof(uri), "http://%s:%d%s", hostname, port,
resource);
cgiSetVariable("DEFAULT_URI", uri);
}
ippDelete(response);
}
/*
* Get the printer info...
*/
+16 -60
Ver Arquivo
@@ -160,8 +160,7 @@ cgi_copy(FILE *out, /* I - Output file */
*s; /* String pointer */
const char *value; /* Value of variable */
const char *innerval; /* Inner value */
const char *outptr; /* Output string pointer */
char outval[1024], /* Formatted output string */
char outval[1024], /* Output string */
compare[1024]; /* Comparison string */
int result; /* Result of comparison */
@@ -180,7 +179,7 @@ cgi_copy(FILE *out, /* I - Output file */
*/
for (s = name; (ch = getc(in)) != EOF;)
if (strchr("}]<>=! \t\n", ch))
if (strchr("}]<>=!", ch))
break;
else if (s > name && ch == '?')
break;
@@ -189,17 +188,6 @@ cgi_copy(FILE *out, /* I - Output file */
*s = '\0';
if (s == name && isspace(ch))
{
if (out)
{
putc('{', out);
putc(ch, out);
}
continue;
}
/*
* See if it has a value...
*/
@@ -215,20 +203,14 @@ cgi_copy(FILE *out, /* I - Output file */
*nameptr++ = '\0';
if ((value = cgiGetArray(name + 1, atoi(nameptr) - 1)) != NULL)
outptr = value;
strcpy(outval, value);
else
{
outval[0] = '\0';
outptr = outval;
}
}
if ((value = cgiGetArray(name + 1, element)) != NULL)
outptr = value;
strcpy(outval, value);
else
{
outval[0] = '\0';
outptr = outval;
}
}
else if (name[0] == '#')
{
@@ -240,8 +222,6 @@ cgi_copy(FILE *out, /* I - Output file */
sprintf(outval, "%d", cgiGetSize(name + 1));
else
sprintf(outval, "%d", element + 1);
outptr = outval;
}
else if (name[0] == '[')
{
@@ -284,20 +264,14 @@ cgi_copy(FILE *out, /* I - Output file */
{
*nameptr++ = '\0';
if ((value = cgiGetArray(name, atoi(nameptr) - 1)) == NULL)
{
sprintf(outval, "{%s}", name);
outptr = outval;
}
sprintf(outval, "{%s}", name);
else
outptr = value;
strcpy(outval, value);
}
else if ((value = cgiGetArray(name, element)) == NULL)
{
sprintf(outval, "{%s}", name);
outptr = outval;
}
sprintf(outval, "{%s}", name);
else
outptr = value;
strcpy(outval, value);
}
/*
@@ -311,7 +285,7 @@ cgi_copy(FILE *out, /* I - Output file */
*/
if (out)
cgi_puts(outptr, out);
cgi_puts(outval, out);
continue;
}
@@ -345,8 +319,6 @@ cgi_copy(FILE *out, /* I - Output file */
for (s = compare; (ch = getc(in)) != EOF;)
if (ch == '?')
break;
else if (s >= (compare + sizeof(compare) - 1))
continue;
else if (ch == '#')
{
sprintf(s, "%d", element + 1);
@@ -373,28 +345,19 @@ cgi_copy(FILE *out, /* I - Output file */
if ((innerval = cgiGetArray(innername, atoi(innerptr) - 1)) == NULL)
*s = '\0';
else
{
strncpy(s, innerval, sizeof(compare) - (s - compare) - 1);
compare[sizeof(compare) - 1] = '\0';
}
strcpy(s, innerval);
}
else if (innername[0] == '?')
{
if ((innerval = cgiGetArray(innername + 1, element)) == NULL)
*s = '\0';
else
{
strncpy(s, innerval, sizeof(compare) - (s - compare) - 1);
compare[sizeof(compare) - 1] = '\0';
}
strcpy(s, innerval);
}
else if ((innerval = cgiGetArray(innername, element)) == NULL)
sprintf(s, "{%s}", innername);
else
{
strncpy(s, innerval, sizeof(compare) - (s - compare) - 1);
compare[sizeof(compare) - 1] = '\0';
}
strcpy(s, innerval);
s += strlen(s);
}
@@ -415,16 +378,16 @@ cgi_copy(FILE *out, /* I - Output file */
switch (op)
{
case '<' :
result = strcasecmp(outptr, compare) < 0;
result = strcasecmp(outval, compare) < 0;
break;
case '>' :
result = strcasecmp(outptr, compare) > 0;
result = strcasecmp(outval, compare) > 0;
break;
case '=' :
result = strcasecmp(outptr, compare) == 0;
result = strcasecmp(outval, compare) == 0;
break;
case '!' :
result = strcasecmp(outptr, compare) != 0;
result = strcasecmp(outval, compare) != 0;
break;
default :
result = 1;
@@ -460,13 +423,6 @@ cgi_copy(FILE *out, /* I - Output file */
}
else if (out)
putc(ch, out);
/*
* Flush any pending output...
*/
if (out)
fflush(out);
}
+6 -30
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: cupsd.conf 1396 2000-09-29 17:42:56Z mike $"
# "$Id: cupsd.conf 1171 2000-06-27 21:15:41Z mike $"
#
# Sample configuration file for the Common UNIX Printing System (CUPS)
# scheduler.
@@ -111,13 +111,6 @@
#ErrorLog /var/log/cups/error_log
#
# FontPath: the path to locate all font files (currently only for pstoraster)
# By default /usr/share/cups/fonts.
#
#FontPath /usr/share/cups/fonts
#
# LogLevel: controls the number of messages logged to the ErrorLog
# file and can be one of the following:
@@ -164,7 +157,7 @@ LogLevel info
#PreserveJobFiles No
#
# Printcap: the name of the printcap file. Default is /etc/printcap.
# Printcap: the name of the printcap file. Default is no filename.
# Leave blank to disable printcap file generation.
#
@@ -177,13 +170,6 @@ LogLevel info
#RequestRoot /var/spool/cups
#
# RemoteRoot: the name of the user assigned to unauthenticated accesses
# from remote systems. By default "remroot".
#
#RemoteRoot remroot
#
# ServerBin: the root directory for the scheduler executables.
# By default /usr/lib/cups or /usr/lib32/cups (IRIX 6.5).
@@ -227,22 +213,12 @@ LogLevel info
#
# TempDir: the directory to put temporary files in. This directory must be
# writable by the user defined above! Defaults to "/var/spool/cups/tmp" or
# the value of the TMPDIR environment variable.
# writable by the user defined above! Defaults to "/var/tmp" or the value
# of the TMPDIR environment variable.
#
#TempDir /var/spool/cups/tmp
#TempDir /var/tmp
#
# FilterLimit: sets the maximum cost of all job filters that can be run
# at the same time. A limit of 0 means no limit. A typical job may need
# a filter limit of at least 200; limits less than the minimum required
# by a job force a single job to be printed at any time.
#
# The default limit is 0 (unlimited).
#
#FilterLimit 0
########
######## Network Options
@@ -562,5 +538,5 @@ Allow From 127.0.0.1
</Location>
#
# End of "$Id: cupsd.conf 1396 2000-09-29 17:42:56Z mike $".
# End of "$Id: cupsd.conf 1171 2000-06-27 21:15:41Z mike $".
#
+13 -16
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: mime.convs 1340 2000-09-06 13:53:00Z mike $"
# "$Id: mime.convs 1270 2000-08-03 18:05:22Z mike $"
#
# MIME converts file for the Common UNIX Printing System (CUPS).
#
@@ -41,26 +41,23 @@
# PostScript filters
#
#application/msword application/postscript 33 mswordtops
application/pdf application/postscript 33 pdftops
application/postscript application/vnd.cups-postscript 66 pstops
application/vnd.hp-HPGL application/postscript 66 hpgltops
image/* application/vnd.cups-postscript 66 imagetops
#text/html application/postscript 33 htmltops
application/x-cshell application/postscript 33 texttops
application/x-perl application/postscript 33 texttops
application/x-shell application/postscript 33 texttops
text/html application/postscript 33 texttops
text/plain application/postscript 33 texttops
application/vnd.cups-form application/vnd.cups-postscript 33 formtops
#application/msword application/postscript 50 mswordtops
application/pdf application/postscript 50 pdftops
application/postscript application/vnd.cups-postscript 50 pstops
application/vnd.hp-HPGL application/postscript 50 hpgltops
image/* application/vnd.cups-postscript 50 imagetops
#text/html application/postscript 50 htmltops
text/html application/postscript 50 texttops
text/plain application/postscript 50 texttops
application/vnd.cups-form application/vnd.cups-postscript 50 formtops
########################################################################
#
# Raster filters...
#
image/* application/vnd.cups-raster 100 imagetoraster
application/vnd.cups-postscript application/vnd.cups-raster 100 pstoraster
image/* application/vnd.cups-raster 50 imagetoraster
application/vnd.cups-postscript application/vnd.cups-raster 50 pstoraster
########################################################################
#
@@ -74,5 +71,5 @@ application/vnd.cups-postscript application/vnd.cups-raster 100 pstoraster
#*/* application/vnd.cups-raw 0 -
#
# End of "$Id: mime.convs 1340 2000-09-06 13:53:00Z mike $".
# End of "$Id: mime.convs 1270 2000-08-03 18:05:22Z mike $".
#
+2 -9
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: mime.types 1340 2000-09-06 13:53:00Z mike $"
# "$Id: mime.types 1270 2000-08-03 18:05:22Z mike $"
#
# MIME types file for the Common UNIX Printing System (CUPS).
#
@@ -110,13 +110,6 @@ image/x-bitmap bmp string(0,BM) && !printable(2,14)
text/html html htm printable(0,1024) +\
(string(0,"<HTML>") string(0,"<!DOCTYPE"))
application/x-cshell csh printable(0,1024) + string(0,#!) +\
(contains(2,80,/csh) contains(2,80,/tcsh))
application/x-perl pl printable(0,1024) + string(0,#!) +\
contains(2,80,/perl)
application/x-shell sh printable(0,1024) + string(0,#!) +\
(contains(2,80,/bash) contains(2,80,/ksh)\
contains(2,80,/sh) contains(2,80,/zsh))
text/plain txt printable(0,1024)
########################################################################
@@ -141,5 +134,5 @@ application/vnd.cups-raw
#application/octet-stream
#
# End of "$Id: mime.types 1340 2000-09-06 13:53:00Z mike $".
# End of "$Id: mime.types 1270 2000-08-03 18:05:22Z mike $".
#
+1 -9
Ver Arquivo
@@ -28,7 +28,7 @@
* Version of software...
*/
#define CUPS_SVERSION "CUPS v1.1.4"
#define CUPS_SVERSION "CUPS v1.1.2"
/*
* Where are files stored?
@@ -41,7 +41,6 @@
#define CUPS_REQUESTS "/var/spool/cups"
#define CUPS_LOGDIR "/var/logs/cups"
#define CUPS_DATADIR "/usr/share/cups"
#define CUPS_FONTPATH "/usr/share/cups/fonts"
/*
@@ -123,13 +122,6 @@
#undef HAVE_WAITPID
#undef HAVE_WAIT3
/*
* Do we have the mallinfo function and malloc.h?
*/
#undef HAVE_MALLINFO
#undef HAVE_MALLOC_H
/*
* End of "$Id$".
*/
+4 -36
Ver Arquivo
@@ -113,8 +113,6 @@ fi
AC_ARG_ENABLE(pam, [ --enable-pam turn on PAM support [default=yes]])
AC_ARG_WITH(fontpath, [ --with-fontpath set font path for pstoraster],fontpath="$withval",fontpath="")
dnl Checks for programs...
AC_PROG_AWK
AC_PROG_CC
@@ -144,23 +142,9 @@ dnl Architecture checks...
AC_C_BIGENDIAN
dnl Check for libraries...
AC_CHECK_LIB(c,crypt,LIBS="$LIBS")
if test "$ac_cv_lib_c_crypt" = "no"; then
AC_CHECK_LIB(crypt,crypt)
fi
AC_CHECK_LIB(c,crypt,LIBS="$LIBS",AC_CHECK_LIB(crypt,crypt))
AC_CHECK_HEADER(crypt.h, AC_DEFINE(HAVE_CRYPT_H))
AC_CHECK_LIB(sec,getspent)
LIBMALLOC=""
AC_CHECK_LIB(c,mallinfo,LIBS="$LIBS"; AC_DEFINE(HAVE_MALLINFO),LIBS="$LIBS")
if test "$ac_cv_lib_c_mallinfo" = "no"; then
AC_CHECK_LIB(malloc,mallinfo,
LIBS="$LIBS"
LIBMALLOC="-lmalloc"
AC_DEFINE(HAVE_MALLINFO),
LIBS="$LIBS")
fi
AC_SUBST(LIBMALLOC)
if test "$enable_pam" != "no"; then
OLDLIBS="$LIBS"
AC_CHECK_LIB(dl,dlopen)
@@ -231,11 +215,7 @@ LIBS="$SAVELIBS"
dnl Checks for header files.
AC_HEADER_STDC
AC_HEADER_DIRENT
AC_CHECK_HEADER(crypt.h,AC_DEFINE(HAVE_CRYPT_H))
AC_CHECK_HEADER(malloc.h,AC_DEFINE(HAVE_MALLOC_H))
AC_CHECK_HEADER(shadow.h,AC_DEFINE(HAVE_SHADOW_H))
AC_CHECK_HEADER(stddef.h,AC_DEFINE(HAVE_STDDEF_H))
AC_CHECK_HEADER(stdlib.h,AC_DEFINE(HAVE_STDLIB_H))
dnl Checks for string functions.
AC_CHECK_FUNCS(strdup)
@@ -368,12 +348,8 @@ if test "$infodir" = "\${prefix}/info" -a "$prefix" = "/"; then
fi
dnl Fix "datadir" variable if it hasn't been specified...
if test "$datadir" = "\${prefix}/share"; then
if test "$prefix" = "/"; then
datadir="/usr/share"
else
datadir="$prefix/share"
fi
if test "$datadir" = "\${prefix}/share" -a "$prefix" = "/"; then
datadir="/usr/share"
fi
dnl Fix "includedir" variable if it hasn't been specified...
@@ -413,11 +389,6 @@ if test "$mandir" = "\${prefix}/man" -a "$prefix" = "/"; then
fi
fi
dnl Fix "fontpath" variable...
if test "x$fontpath" = "x"; then
fontpath="$datadir/cups/fonts"
fi
dnl Setup manpage extensions...
case "$uname" in
FreeBSD* | NetBSD* | OpenBSD*)
@@ -553,9 +524,6 @@ CUPS_DOCROOT='${exec_prefix}/share/doc/cups'
AC_DEFINE_UNQUOTED(CUPS_DOCROOT, "$exec_prefix/share/doc/cups")
AC_SUBST(CUPS_DOCROOT)
dnl Set the CUPS_FONTPATH directory...
AC_DEFINE_UNQUOTED(CUPS_FONTPATH, "$fontpath")
AC_OUTPUT(Makedefs cups.sh)
dnl
+11 -13
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: cups.list 1399 2000-10-02 14:34:23Z mike $"
# "$Id: cups.list 1277 2000-08-04 14:53:49Z 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.4
%version 1.1.2
%incompat printpro
%system all
@@ -311,12 +311,10 @@ f 0644 root sys $SERVERROOT/mime.types conf/mime.types
c 0644 root sys $SERVERROOT/printers.conf conf/printers.conf
%system linux
# Linux version needs PAM...
%requires /lib/libpam.so.0
d 0555 root sys $PAMDIR -
c 0644 root sys $PAMDIR/cups data/cups.pam
c 0644 root sys $PAMDIR/cups.suse data/cups.suse
%install if test -f /lib/security/pam_unix.so; then
%install mv $PAMDIR/cups.suse $PAMDIR/cups
%install fi
%system all
# Developer files
@@ -446,7 +444,7 @@ d 0555 root sys $MANDIR/man5 -
d 0555 root sys $MANDIR/man1m -
f 0444 root sys $MANDIR/man1m/accept.1m man/accept.man
l 0444 root sys $MANDIR/man1m/reject.1m accept.1m
l 0444 root sys $MANDIR/man1m/reject.1m accept.man
f 0444 root sys $MANDIR/man1/backend.1 man/backend.man
f 0444 root sys $MANDIR/man1/classes.conf.5 man/classes.conf.man
f 0444 root sys $MANDIR/man1m/cups-lpd.1m man/cups-lpd.man
@@ -454,7 +452,7 @@ f 0444 root sys $MANDIR/man1m/cups-polld.1m man/cups-polld.man
f 0444 root sys $MANDIR/man1m/cupsd.1m man/cupsd.man
f 0444 root sys $MANDIR/man5/cupsd.conf.5 man/cupsd.conf.man
f 0444 root sys $MANDIR/man1m/enable.1m man/enable.man
l 0444 root sys $MANDIR/man1m/disable.1m enable.1m
l 0444 root sys $MANDIR/man1m/disable.1m enable.man
f 0444 root sys $MANDIR/man1/filter.1 man/filter.man
f 0444 root sys $MANDIR/man1m/lpadmin.1m man/lpadmin.man
f 0444 root sys $MANDIR/man1m/lpc.1m man/lpc.man
@@ -466,7 +464,7 @@ f 0444 root sys $MANDIR/man1/lprm.1 man/lprm.man
f 0444 root sys $MANDIR/man1/lpr.1 man/lpr.man
f 0444 root sys $MANDIR/man1/lpstat.1 man/lpstat.man
f 0444 root sys $MANDIR/man1/lp.1 man/lp.man
l 0444 root sys $MANDIR/man1/cancel.1 lp.1
l 0444 root sys $MANDIR/man1/cancel.1 lp.man
f 0444 root sys $MANDIR/man5/mime.convs.5 man/mime.convs.man
f 0444 root sys $MANDIR/man5/mime.types.5 man/mime.types.man
f 0444 root sys $MANDIR/man5/printers.conf.5 man/printers.conf.man
@@ -477,7 +475,7 @@ d 0555 root sys $MANDIR/man5 -
d 0555 root sys $MANDIR/man8 -
f 0444 root sys $MANDIR/man8/accept.8 man/accept.man
l 0444 root sys $MANDIR/man8/reject.8 accept.8
l 0444 root sys $MANDIR/man8/reject.8 accept.man
f 0444 root sys $MANDIR/man1/backend.1 man/backend.man
f 0444 root sys $MANDIR/man1/classes.conf.5 man/classes.conf.man
f 0444 root sys $MANDIR/man8/cups-lpd.8 man/cups-lpd.man
@@ -485,7 +483,7 @@ f 0444 root sys $MANDIR/man8/cups-polld.8 man/cups-polld.man
f 0444 root sys $MANDIR/man8/cupsd.8 man/cupsd.man
f 0444 root sys $MANDIR/man5/cupsd.conf.5 man/cupsd.conf.man
f 0444 root sys $MANDIR/man8/enable.8 man/enable.man
l 0444 root sys $MANDIR/man8/disable.8 enable.8
l 0444 root sys $MANDIR/man8/disable.8 enable.man
f 0444 root sys $MANDIR/man1/filter.1 man/filter.man
f 0444 root sys $MANDIR/man8/lpadmin.8 man/lpadmin.man
f 0444 root sys $MANDIR/man8/lpc.8 man/lpc.man
@@ -497,7 +495,7 @@ f 0444 root sys $MANDIR/man1/lprm.1 man/lprm.man
f 0444 root sys $MANDIR/man1/lpr.1 man/lpr.man
f 0444 root sys $MANDIR/man1/lpstat.1 man/lpstat.man
f 0444 root sys $MANDIR/man1/lp.1 man/lp.man
l 0444 root sys $MANDIR/man1/cancel.1 lp.1
l 0444 root sys $MANDIR/man1/cancel.1 lp.man
f 0444 root sys $MANDIR/man5/mime.convs.5 man/mime.convs.man
f 0444 root sys $MANDIR/man5/mime.types.5 man/mime.types.man
f 0444 root sys $MANDIR/man5/printers.conf.5 man/printers.conf.man
@@ -507,5 +505,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 1399 2000-10-02 14:34:23Z mike $".
# End of "$Id: cups.list 1277 2000-08-04 14:53:49Z mike $".
#
+1 -1
Ver Arquivo
@@ -6,7 +6,7 @@
#
# Linux chkconfig stuff:
#
# chkconfig: 0235 99 00
# chkconfig: 02 99 00
# description: Startup/shutdown script for the Common UNIX \
# Printing System (CUPS).
#
+21 -42
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: cups.spec 1399 2000-10-02 14:34:23Z mike $"
# "$Id: cups.spec 1277 2000-08-04 14:53:49Z mike $"
#
# RPM "spec" file for the Common UNIX Printing System (CUPS).
#
@@ -26,16 +26,16 @@
Summary: Common Unix Printing System
Name: cups
Version: 1.1.4
Version: 1.1.2
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/%version/cups-%version-source.tar.gz
Url: http://www.cups.org
Packager: Michael Sweet <mike@easysw.com>
Vendor: Easy Software Products
# use buildroot so as not to disturb the version already installed
BuildRoot: /var/tmp/%{name}-root
BuildRoot: /tmp/rpmbuild
Conflicts: lpr
%package devel
@@ -67,9 +67,6 @@ make
# RPM_BUILD_ROOT exists
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
mkdir -p $RPM_BUILD_ROOT/etc/rc.d/rc0.d
mkdir -p $RPM_BUILD_ROOT/etc/rc.d/rc3.d
mkdir -p $RPM_BUILD_ROOT/etc/rc.d/rc5.d
make prefix=$RPM_BUILD_ROOT \
exec_prefix=$RPM_BUILD_ROOT/usr \
@@ -123,52 +120,34 @@ rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
%dir /etc/cups
%config /etc/cups/*.conf
%dir /etc/cups/certs
%dir /etc/cups/interfaces
/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
%dir /etc/cups/ppd
%dir /etc/pam.d
/etc/cups/ppd
%config /etc/cups/printers.conf
/etc/pam.d/*
# RC dirs are a pain under Linux... Uncomment the appropriate ones if you
# don't use Red Hat or Mandrake...
/etc/rc.d/init.d/*
/etc/rc.d/rc0.d/*
/etc/rc.d/rc3.d/*
/etc/rc.d/rc5.d/*
#/etc/init.d/*
#/etc/rc0.d/*
#/etc/rc3.d/*
#/etc/rc5.d/*
#/sbin/rc.d/*
#/sbin/rc.d/rc0.d/*
#/sbin/rc.d/rc3.d/*
#/sbin/rc.d/rc5.d/*
/etc/init.d/*
/etc/rc0.d/*
/etc/rc2.d/*
/etc/rc.d/*
/usr/bin/*
/usr/lib/*.so*
%dir /usr/lib/cups
/usr/lib/cups/*
/usr/man/*
/usr/sbin/*
%dir /usr/share/cups
/usr/share/cups/*
%dir /usr/share/locale
/usr/share/locale/*
%attr(0700,lp,root) %dir /var/spool/cups
%attr(1700,lp,root) %dir/var/spool/cups/tmp
/usr/share/*
/usr/lib/cups/*
%attr(0700,lp,root) /var/spool/cups
%attr(1700,lp,root) /var/spool/cups/tmp
/sbin/init.d/*
%files devel
%dir /usr/include/cups
/usr/include/cups/*
/usr/lib/*.a
#
# End of "$Id: cups.spec 1399 2000-10-02 14:34:23Z mike $".
# End of "$Id: cups.spec 1277 2000-08-04 14:53:49Z mike $".
#
+3 -3
Ver Arquivo
@@ -59,7 +59,7 @@ all: $(TARGETS)
#
clean:
$(RM) $(OBJS) $(TARGETS) `basename $(LIBCUPS) .2`
$(RM) $(OBJS) $(TARGETS)
#
@@ -76,8 +76,8 @@ install: all
$(INSTALL_LIB) $(LIBCUPS) $(LIBDIR)
if test $(LIBCUPS) != "libcups.a" -a $(LIBCUPS) != "libcups.la"; then \
$(INSTALL_LIB) libcups.a $(LIBDIR); \
$(RM) $(LIBDIR)/`basename $(LIBCUPS) .2`; \
$(LN) $(LIBCUPS) $(LIBDIR)/`basename $(LIBCUPS) .2`; \
$(RM) `basename $(LIBCUPS) .2`; \
$(LN) $(LIBCUPS) `basename $(LIBCUPS) .2`; \
fi
+3 -9
Ver Arquivo
@@ -29,8 +29,8 @@
* Include necessary headers...
*/
# include "ipp.h"
# include "ppd.h"
# include <cups/ipp.h>
# include <cups/ppd.h>
/*
@@ -46,7 +46,7 @@ extern "C" {
* Constants...
*/
# define CUPS_VERSION 1.0103
# define CUPS_VERSION 1.0100
# define CUPS_DATE_ANY -1
@@ -75,7 +75,6 @@ enum /* Not a typedef'd enum so we can OR */
CUPS_PRINTER_LARGE = 0x4000, /* Can do D/E/A1/A0 */
CUPS_PRINTER_VARIABLE = 0x8000, /* Can do variable sizes */
CUPS_PRINTER_IMPLICIT = 0x10000, /* Implicit class */
CUPS_PRINTER_DEFAULT = 0x20000, /* Default printer on network */
CUPS_PRINTER_OPTIONS = 0xfffc /* ~(CLASS | REMOTE | IMPLICIT) */
};
@@ -126,8 +125,6 @@ extern void cupsSetDests(int num_dests, cups_dest_t *dests);
extern int cupsAddOption(const char *name, const char *value,
int num_options, cups_option_t **options);
extern void cupsEncodeOptions(ipp_t *ipp, int num_options,
cups_option_t *options);
extern void cupsFreeOptions(int num_options, cups_option_t *options);
extern const char *cupsGetOption(const char *name, int num_options,
cups_option_t *options);
@@ -138,9 +135,6 @@ extern int cupsMarkOptions(ppd_file_t *ppd, int num_options,
extern const char *cupsGetPassword(const char *prompt);
extern const char *cupsServer(void);
extern void cupsSetPasswordCB(const char *(*cb)(const char *));
extern void cupsSetServer(const char *server);
extern void cupsSetUser(const char *user);
extern const char *cupsUser(void);
# ifdef __cplusplus
-34
Ver Arquivo
@@ -156,17 +156,6 @@ ppdEmit(ppd_file_t *ppd, /* I - PPD file record */
for (i = 0; i < count; i ++)
if (section != PPD_ORDER_EXIT && section != PPD_ORDER_JCL)
{
/*
* Send wrapper commands to prevent printer errors for unsupported
* options...
*/
if (fputs("[{\n", fp) < 0)
{
free(choices);
return (-1);
}
/*
* Send DSC comments with option...
*/
@@ -221,12 +210,6 @@ ppdEmit(ppd_file_t *ppd, /* I - PPD file record */
free(choices);
return (-1);
}
if (fputs("} stopped cleartomark\n", fp) < 0)
{
free(choices);
return (-1);
}
}
else if (fputs(choices[i]->code, fp) < 0)
{
@@ -260,17 +243,6 @@ ppdEmitFd(ppd_file_t *ppd, /* I - PPD file record */
for (i = 0; i < count; i ++)
if (section != PPD_ORDER_EXIT && section != PPD_ORDER_JCL)
{
/*
* Send wrapper commands to prevent printer errors for unsupported
* options...
*/
if (write(fd, "[{\n", 3) < 1)
{
free(choices);
return (-1);
}
/*
* Send DSC comments with option...
*/
@@ -295,12 +267,6 @@ ppdEmitFd(ppd_file_t *ppd, /* I - PPD file record */
free(choices);
return (-1);
}
if (write(fd, "} stopped cleartomark\n", 22) < 1)
{
free(choices);
return (-1);
}
}
else if (write(fd, choices[i]->code, strlen(choices[i]->code)) < 1)
{
+1 -1
Ver Arquivo
@@ -47,7 +47,7 @@
# include <netinet/tcp.h>
# endif /* WIN32 || __EMX__ */
# include "md5.h"
# include <cups/md5.h>
/*
+4 -25
Ver Arquivo
@@ -44,7 +44,6 @@
* ippNew() - Allocate a new IPP request.
* ippPort() - Return the default IPP port number.
* ippRead() - Read data for an IPP request.
* ippSetPort() - Set the default port number.
* ippTimeToDate() - Convert from UNIX time to RFC 1903 format.
* ippWrite() - Write data for an IPP request.
* _ipp_add_attr() - Add a new attribute to the request.
@@ -66,13 +65,6 @@
#include <ctype.h>
/*
* Local globals...
*/
static int ipp_port = 0;
/*
* Local functions...
*/
@@ -1585,25 +1577,12 @@ ippPort(void)
struct servent *port; /* Port number info */
if (ipp_port)
return (ipp_port);
else if ((server_port = getenv("IPP_PORT")) != NULL)
return (ipp_port = atoi(server_port));
if ((server_port = getenv("IPP_PORT")) != NULL)
return (atoi(server_port));
else if ((port = getservbyname("ipp", NULL)) == NULL)
return (ipp_port = IPP_PORT);
return (IPP_PORT);
else
return (ipp_port = ntohs(port->s_port));
}
/*
* 'ippSetPort()' - Set the default port number.
*/
void
ippSetPort(int p) /* I - Port number to use */
{
ipp_port = p;
return (ntohs(port->s_port));
}
+1 -2
Ver Arquivo
@@ -30,7 +30,7 @@
* Include necessary headers...
*/
# include "http.h"
# include <cups/http.h>
/*
@@ -342,7 +342,6 @@ extern ipp_state_t ippRead(http_t *http, ipp_t *ipp);
extern const ipp_uchar_t *ippTimeToDate(time_t t);
extern ipp_state_t ippWrite(http_t *http, ipp_t *ipp);
extern int ippPort(void);
extern void ippSetPort(int p);
extern ipp_attribute_t *_ipp_add_attr(ipp_t *, int);
extern void _ipp_free_attr(ipp_attribute_t *);
+5 -286
Ver Arquivo
@@ -23,12 +23,11 @@
*
* Contents:
*
* cupsAddOption() - Add an option to an option array.
* cupsEncodeOptions() - Encode printer options into IPP attributes.
* cupsFreeOptions() - Free all memory used by options.
* cupsGetOption() - Get an option value.
* cupsParseOptions() - Parse options from a command-line argument.
* cupsMarkOptions() - Mark command-line options in a PPD file.
* cupsAddOption() - Add an option to an option array.
* cupsFreeOptions() - Free all memory used by options.
* cupsGetOption() - Get an option value.
* cupsParseOptions() - Parse options from a command-line argument.
* cupsMarkOptions() - Mark command-line options in a PPD file.
*/
/*
@@ -39,7 +38,6 @@
#include <stdlib.h>
#include <ctype.h>
#include "string.h"
#include "debug.h"
/*
@@ -102,274 +100,6 @@ cupsAddOption(const char *name, /* I - Name of option */
}
/*
* 'cupsEncodeOptions()' - Encode printer options into IPP attributes.
*/
void
cupsEncodeOptions(ipp_t *ipp, /* I - Request to add to */
int num_options, /* I - Number of options */
cups_option_t *options) /* I - Options */
{
int i, j; /* Looping vars */
int count; /* Number of values */
int n; /* Attribute value */
char *s, /* Pointer into option value */
*val, /* Pointer to option value */
*copy, /* Copy of option value */
*sep; /* Option separator */
ipp_attribute_t *attr; /* IPP job-id attribute */
DEBUG_printf(("cupsEncodeOptions(%p, %d, %p)\n", ipp, num_options, options));
if (ipp == NULL || num_options < 1 || options == NULL)
return;
/*
* Handle the document format stuff first...
*/
if ((val = (char *)cupsGetOption("document-format", num_options, options)) != NULL)
ippAddString(ipp, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE, "document-format",
NULL, val);
else if (cupsGetOption("raw", num_options, options))
ippAddString(ipp, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE, "document-format",
NULL, "application/vnd.cups-raw");
else
ippAddString(ipp, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE, "document-format",
NULL, "application/octet-stream");
/*
* Then add all other options...
*/
for (i = 0; i < num_options; i ++)
{
/*
* Skip document format options - handled above...
*/
if (strcasecmp(options[i].name, "raw") == 0 ||
strcasecmp(options[i].name, "document-format") == 0)
continue;
/*
* Count the number of values...
*/
for (count = 1, sep = options[i].value;
(sep = strchr(sep + 1, ',')) != NULL;
count ++);
DEBUG_printf(("cupsEncodeOptions: option = \'%s\', count = %d\n",
options[i].name, count));
if ((attr = _ipp_add_attr(ipp, count)) == NULL)
{
/*
* Ran out of memory!
*/
DEBUG_puts("cupsEncodeOptions: Ran out of memory for attributes!");
return;
}
attr->group_tag = IPP_TAG_JOB;
if ((attr->name = strdup(options[i].name)) == NULL)
{
/*
* Ran out of memory!
*/
DEBUG_puts("cupsEncodeOptions: Ran out of memory for name!");
return;
}
if (count > 1)
{
/*
* Make a copy of the value we can fiddle with...
*/
if ((copy = strdup(options[i].value)) == NULL)
{
/*
* Ran out of memory!
*/
DEBUG_puts("cupsEncodeOptions: Ran out of memory for value copy!");
return;
}
val = copy;
}
else
{
/*
* Since we have a single value, use the value directly...
*/
val = options[i].value;
copy = NULL;
}
/*
* See what the option value is; for compatibility with older interface
* scripts, we have to support single-argument options as well as
* option=value, option=low-high, option=MxN, and option=val1,val2,...,valN.
*/
if (*val == '\0')
{
/*
* Old-style System V boolean value...
*/
attr->value_tag = IPP_TAG_BOOLEAN;
if (strncasecmp(attr->name, "no", 2) == 0)
{
DEBUG_puts("cupsEncodeOptions: Added boolean false value...");
strcpy(attr->name, attr->name + 2);
attr->values[0].boolean = 0;
}
else
{
DEBUG_puts("cupsEncodeOptions: Added boolean true value...");
attr->values[0].boolean = 1;
}
}
else
{
/*
* Scan the value string for values...
*/
for (j = 0; *val != '\0'; val = sep, j ++)
{
/*
* Find the end of this value and mark it if needed...
*/
if ((sep = strchr(val, ',')) != NULL)
*sep++ = '\0';
else
sep = val + strlen(val);
/*
* See what kind of value it is...
*/
if (strcasecmp(val, "true") == 0 ||
strcasecmp(val, "on") == 0 ||
strcasecmp(val, "yes") == 0)
{
/*
* Boolean value - true...
*/
attr->value_tag = IPP_TAG_BOOLEAN;
attr->values[j].boolean = 1;
DEBUG_puts("cupsEncodeOptions: Added boolean true value...");
}
else if (strcasecmp(val, "false") == 0 ||
strcasecmp(val, "off") == 0 ||
strcasecmp(val, "no") == 0)
{
/*
* Boolean value - false...
*/
attr->value_tag = IPP_TAG_BOOLEAN;
attr->values[j].boolean = 0;
DEBUG_puts("cupsEncodeOptions: Added boolean false value...");
}
else
{
/*
* Number, range, resolution, or string...
*/
n = strtol(val, &s, 0);
if (*s != '\0' && *s != '-' && (*s != 'x' || s == val))
{
/*
* String value(s)...
*/
if ((attr->values[j].string.text = strdup(val)) == NULL)
{
/*
* Ran out of memory!
*/
DEBUG_puts("cupsEncodeOptions: Ran out of memory for string!");
return;
}
attr->value_tag = IPP_TAG_NAME;
DEBUG_printf(("cupsEncodeOptions: Added string value \'%s\'...\n", val));
}
else if (*s == '-')
{
attr->value_tag = IPP_TAG_RANGE;
attr->values[j].range.lower = n;
attr->values[j].range.upper = strtol(s + 1, NULL, 0);
DEBUG_printf(("cupsEncodeOptions: Added range option value %d-%d...\n",
n, attr->values[j].range.upper));
}
else if (*s == 'x')
{
attr->value_tag = IPP_TAG_RESOLUTION;
attr->values[j].resolution.xres = n;
attr->values[j].resolution.yres = strtol(s + 1, &s, 0);
if (strcasecmp(s, "dpc") == 0)
attr->values[j].resolution.units = IPP_RES_PER_CM;
else if (strcasecmp(s, "dpi") == 0)
attr->values[j].resolution.units = IPP_RES_PER_INCH;
else
{
if ((attr->values[j].string.text = strdup(val)) == NULL)
{
/*
* Ran out of memory!
*/
DEBUG_puts("cupsEncodeOptions: Ran out of memory for string!");
return;
}
attr->value_tag = IPP_TAG_NAME;
DEBUG_printf(("cupsEncodeOptions: Added string value \'%s\'...\n", val));
continue;
}
DEBUG_printf(("cupsEncodeOptions: Adding resolution option value %s...\n",
val));
}
else
{
attr->value_tag = IPP_TAG_INTEGER;
attr->values[j].integer = n;
DEBUG_printf(("cupsEncodeOptions: Adding integer option value %d...\n", n));
}
}
}
}
}
}
/*
* 'cupsFreeOptions()' - Free all memory used by options.
*/
@@ -442,17 +172,6 @@ cupsParseOptions(const char *arg, /* I - Argument to parse */
copyarg = strdup(arg);
ptr = copyarg;
/*
* Skip leading spaces...
*/
while (isspace(*ptr))
ptr ++;
/*
* Loop through the string...
*/
while (*ptr != '\0')
{
/*
+39
Ver Arquivo
@@ -1028,6 +1028,45 @@ ppdOpen(FILE *fp) /* I - File to read from */
}
else if (strcmp(keyword, "CloseGroup") == 0)
group = NULL;
else if (strcmp(keyword, "OpenSubGroup") == 0)
{
/*
* Open a new sub-group...
*/
DEBUG_printf(("group = %p, subgroup = %p\n", group, subgroup));
if (group == NULL || subgroup != NULL)
{
ppdClose(ppd);
safe_free(string);
return (NULL);
}
if (group->num_subgroups == 0)
subgroup = malloc(sizeof(ppd_group_t));
else
subgroup = realloc(group->subgroups,
(group->num_subgroups + 1) * sizeof(ppd_group_t));
if (subgroup == NULL)
{
ppdClose(ppd);
safe_free(string);
return (NULL);
}
group->subgroups = subgroup;
subgroup += group->num_subgroups;
group->num_subgroups ++;
memset(subgroup, 0, sizeof(ppd_group_t));
ppd_decode(string);
ppd_fix(string);
strncpy(subgroup->text, string, sizeof(subgroup->text) - 1);
}
else if (strcmp(keyword, "CloseSubGroup") == 0)
subgroup = NULL;
else if (strcmp(keyword, "OrderDependency") == 0 ||
strcmp(keyword, "NonUIOrderDependency") == 0)
{
+105 -202
Ver Arquivo
@@ -24,13 +24,9 @@
*
* Contents:
*
* cupsGetPassword() - Get a password from the user...
* cupsServer() - Return the hostname of the default server...
* cupsSetPasswordCB() - Set the password callback for CUPS.
* cupsSetServer() - Set the default server name...
* cupsSetUser() - Set the default user name...
* cupsUser() - Return the current users name.
* cups_get_password() - Get a password from the user...
* cupsUser() - Return the current users name.
* cupsGetPassword() - Get a password from the user...
* cupsServer() - Return the hostname of the default server...
*/
/*
@@ -38,173 +34,11 @@
*/
#include "cups.h"
#include "string.h"
#include <config.h>
#include <stdlib.h>
#include <ctype.h>
/*
* Local functions...
*/
static const char *cups_get_password(const char *prompt);
/*
* Local globals...
*/
static char cups_user[65] = "",
cups_server[256] = "";
static const char *(*cups_pwdcb)(const char *) = cups_get_password;
/*
* 'cupsGetPassword()' - Get a password from the user...
*/
const char * /* O - Password */
cupsGetPassword(const char *prompt) /* I - Prompt string */
{
return ((*cups_pwdcb)(prompt));
}
/*
* 'cupsServer()' - Return the hostname of the default server...
*/
const char * /* O - Server name */
cupsServer(void)
{
FILE *fp; /* client.conf file */
char *server; /* Pointer to server name */
const char *home; /* Home directory of user */
static char line[1024]; /* Line from file */
/*
* First see if we have already set the server name...
*/
if (!cups_server[0])
{
/*
* Then see if the CUPS_SERVER environment variable is set...
*/
if ((server = getenv("CUPS_SERVER")) == NULL)
{
/*
* Next check to see if we have a $HOME/.cupsrc or client.conf file...
*/
if ((home = getenv("HOME")) != NULL)
{
snprintf(line, sizeof(line), "%s/.cupsrc", home);
fp = fopen(line, "r");
}
else
fp = NULL;
if (fp == NULL)
{
if ((home = getenv("CUPS_SERVERROOT")) != NULL)
{
snprintf(line, sizeof(line), "%s/client.conf", home);
fp = fopen(line, "r");
}
else
fp = fopen(CUPS_SERVERROOT "/client.conf", "r");
}
server = "localhost";
if (fp != NULL)
{
/*
* Read the config file and look for a ServerName line...
*/
while (fgets(line, sizeof(line), fp) != NULL)
if (strncmp(line, "ServerName ", 11) == 0)
{
/*
* Got it! Drop any trailing newline and find the name...
*/
server = line + strlen(line) - 1;
if (*server == '\n')
*server = '\0';
for (server = line + 11; isspace(*server); server ++);
break;
}
fclose(fp);
}
}
/*
* Copy the server name over...
*/
strncpy(cups_server, server, sizeof(cups_server) - 1);
cups_server[sizeof(cups_server) - 1] = '\0';
}
return (cups_server);
}
/*
* 'cupsSetPasswordCB()' - Set the password callback for CUPS.
*/
void
cupsSetPasswordCB(const char *(*cb)(const char *)) /* I - Callback function */
{
if (cb == (const char *(*)(const char *))0)
cups_pwdcb = cups_get_password;
else
cups_pwdcb = cb;
}
/*
* 'cupsSetServer()' - Set the default server name...
*/
void
cupsSetServer(const char *server) /* I - Server name */
{
if (server)
{
strncpy(cups_server, server, sizeof(cups_server) - 1);
cups_server[sizeof(cups_server) - 1] = '\0';
}
else
cups_server[0] = '\0';
}
/*
* 'cupsSetUser()' - Set the default user name...
*/
void
cupsSetUser(const char *user) /* I - User name */
{
if (user)
{
strncpy(cups_user, user, sizeof(cups_user) - 1);
cups_user[sizeof(cups_user) - 1] = '\0';
}
else
cups_user[0] = '\0';
}
#if defined(WIN32) || defined(__EMX__)
/*
* WIN32 and OS/2 username and password stuff...
@@ -217,19 +51,16 @@ cupsSetUser(const char *user) /* I - User name */
const char * /* O - User name */
cupsUser(void)
{
if (!cups_user[0])
strcpy(cups_user, "WindowsUser");
return (cups_user);
return ("WindowsUser");
}
/*
* 'cups_get_password()' - Get a password from the user...
* 'cupsGetPassword()' - Get a password from the user...
*/
static const char * /* O - Password */
cups_get_password(const char *prompt) /* I - Prompt string */
const char * /* O - Password */
cupsGetPassword(const char *prompt) /* I - Prompt string */
{
return (NULL);
}
@@ -250,49 +81,121 @@ cupsUser(void)
struct passwd *pwd; /* User/password entry */
if (!cups_user[0])
{
/*
* Rewind the password file...
*/
/*
* Rewind the password file...
*/
setpwent();
setpwent();
/*
* Lookup the password entry for the current user.
*/
/*
* Lookup the password entry for the current user.
*/
if ((pwd = getpwuid(getuid())) == NULL)
strcpy(cups_user, "unknown"); /* Unknown user! */
else
{
/*
* Rewind the password file again and copy the username...
*/
if ((pwd = getpwuid(getuid())) == NULL)
return ("unknown"); /* Unknown user! */
setpwent();
/*
* Rewind the password file again and return the username...
*/
strncpy(cups_user, pwd->pw_name, sizeof(cups_user) - 1);
cups_user[sizeof(cups_user) - 1] = '\0';
}
}
setpwent();
return (cups_user);
return (pwd->pw_name);
}
/*
* 'cups_get_password()' - Get a password from the user...
* 'cupsGetPassword()' - Get a password from the user...
*/
static const char * /* O - Password */
cups_get_password(const char *prompt) /* I - Prompt string */
const char * /* O - Password */
cupsGetPassword(const char *prompt) /* I - Prompt string */
{
return (getpass(prompt));
}
#endif /* WIN32 || __EMX__ */
/*
* 'cupsServer()' - Return the hostname of the default server...
*/
const char * /* O - Server name */
cupsServer(void)
{
FILE *fp; /* client.conf file */
char *server; /* Pointer to server name */
const char *home; /* Home directory of user */
static char line[1024]; /* Line from file */
/*
* First see if the CUPS_SERVER environment variable is set...
*/
if ((server = getenv("CUPS_SERVER")) != NULL)
return (server);
/*
* Next check to see if we have a $HOME/.cupsrc or client.conf file...
*/
if ((home = getenv("HOME")) != NULL)
{
snprintf(line, sizeof(line), "%s/.cupsrc", home);
fp = fopen(line, "r");
}
else
fp = NULL;
if (fp == NULL)
{
if ((home = getenv("CUPS_SERVERROOT")) != NULL)
{
snprintf(line, sizeof(line), "%s/client.conf", home);
fp = fopen(line, "r");
}
else
fp = fopen(CUPS_SERVERROOT "/client.conf", "r");
}
if (fp == NULL)
return ("localhost");
/*
* Read the config file and look for a ServerName line...
*/
while (fgets(line, sizeof(line), fp) != NULL)
if (strncmp(line, "ServerName ", 11) == 0)
{
/*
* Got it! Drop any trailing newline and find the name...
*/
server = line + strlen(line) - 1;
if (*server == '\n')
*server = '\0';
for (server = line + 11; isspace(*server); server ++);
if (*server)
{
fclose(fp);
return (server);
}
}
/*
* Didn't see a ServerName line, so return "localhost"...
*/
fclose(fp);
return ("localhost");
}
/*
* End of "$Id$".
*/
+148 -14
Ver Arquivo
@@ -177,7 +177,6 @@ cupsDoFileRequest(http_t *http, /* I - HTTP connection to server */
nonce[HTTP_MAX_VALUE], /* nonce="xyz" string */
plain[255], /* Plaintext username:password */
encode[255]; /* Encoded username:password */
char prompt[1024]; /* Prompt string */
if (http == NULL || request == NULL || resource == NULL)
@@ -189,7 +188,7 @@ cupsDoFileRequest(http_t *http, /* I - HTTP connection to server */
return (NULL);
}
DEBUG_printf(("cupsDoFileRequest(%p, %08s, \'%s\', \'%s\')\n",
DEBUG_printf(("cupsDoFileRequest(%08x, %08s, \'%s\', \'%s\')\n",
http, request, resource, filename ? filename : "(null)"));
/*
@@ -309,10 +308,10 @@ cupsDoFileRequest(http_t *http, /* I - HTTP connection to server */
* Nope - get a password from the user...
*/
snprintf(prompt, sizeof(prompt), "Password for %s on %s? ", cupsUser(),
http->hostname);
printf("Authentication required for %s on %s...\n", cupsUser(),
http->hostname);
if ((password = cupsGetPassword(prompt)) != NULL)
if ((password = cupsGetPassword("UNIX Password: ")) != NULL)
{
/*
* Got a password; send it to the server...
@@ -688,7 +687,6 @@ cupsGetPPD(const char *name) /* I - Printer name */
plain[255], /* Plaintext username:password */
encode[255]; /* Encoded username:password */
http_status_t status; /* HTTP status from server */
char prompt[1024]; /* Prompt string */
static char filename[HTTP_MAX_URI]; /* Local filename */
@@ -833,10 +831,10 @@ cupsGetPPD(const char *name) /* I - Printer name */
* Nope, get a password from the user...
*/
snprintf(prompt, sizeof(prompt), "Password for %s on %s? ", cupsUser(),
cups_server->hostname);
printf("Authentication required for %s on %s...\n", cupsUser(),
cups_server->hostname);
if ((password = cupsGetPassword(prompt)) != NULL)
if ((password = cupsGetPassword("UNIX Password: ")) != NULL)
{
/*
* Got a password; send it to the server...
@@ -1030,7 +1028,7 @@ cupsPrintFile(const char *name, /* I - Printer or class name */
int num_options,/* I - Number of options */
cups_option_t *options) /* I - Options */
{
DEBUG_printf(("cupsPrintFile(\'%s\', \'%s\', %d, %p)\n",
DEBUG_printf(("cupsPrintFile(\'%s\', \'%s\', %d, %08x)\n",
printer, filename, num_options, options));
return (cupsPrintFiles(name, 1, &filename, title, num_options, options));
@@ -1050,6 +1048,9 @@ cupsPrintFiles(const char *name, /* I - Printer or class name */
cups_option_t *options) /* I - Options */
{
int i; /* Looping var */
int n, n2; /* Attribute values */
char *option, /* Name of option */
*s; /* Pointer into option value */
const char *val; /* Pointer to option value */
ipp_t *request; /* IPP request */
ipp_t *response; /* IPP response */
@@ -1061,7 +1062,7 @@ cupsPrintFiles(const char *name, /* I - Printer or class name */
int jobid; /* New job ID */
DEBUG_printf(("cupsPrintFiles(\'%s\', %d, %p, %d, %p)\n",
DEBUG_printf(("cupsPrintFiles(\'%s\', %d, %p, %d, %08x)\n",
printer, num_files, files, num_options, options));
if (name == NULL || num_files < 1 || files == NULL)
@@ -1105,6 +1106,20 @@ cupsPrintFiles(const char *name, /* I - Printer or class name */
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
NULL, uri);
/*
* Handle raw print files...
*/
if (cupsGetOption("raw", num_options, options))
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE, "document-format",
NULL, "application/vnd.cups-raw");
else if ((val = cupsGetOption("document-format", num_options, options)) != NULL)
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE, "document-format",
NULL, val);
else
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE, "document-format",
NULL, "application/octet-stream");
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME, "requesting-user-name",
NULL, cupsUser());
@@ -1112,10 +1127,129 @@ cupsPrintFiles(const char *name, /* I - Printer or class name */
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME, "job-name", NULL, title);
/*
* Then add all options...
* Then add all options on the command-line...
*/
cupsEncodeOptions(request, num_options, options);
for (i = 0; i < num_options; i ++)
{
/*
* Skip the "raw" option - handled above...
*/
if (strcasecmp(options[i].name, "raw") == 0 ||
strcasecmp(options[i].name, "document-format") == 0)
continue;
/*
* See what the option value is; for compatibility with older interface
* scripts, we have to support single-argument options as well as
* option=value, option=low-high, and option=MxN.
*/
option = options[i].name;
val = options[i].value;
if (*val == '\0')
val = NULL;
if (val != NULL)
{
if (strcasecmp(val, "true") == 0 ||
strcasecmp(val, "on") == 0 ||
strcasecmp(val, "yes") == 0)
{
/*
* Boolean value - true...
*/
n = 1;
val = "";
}
else if (strcasecmp(val, "false") == 0 ||
strcasecmp(val, "off") == 0 ||
strcasecmp(val, "no") == 0)
{
/*
* Boolean value - false...
*/
n = 0;
val = "";
}
n = strtol(val, &s, 0);
}
else
{
if (strncasecmp(option, "no", 2) == 0)
{
option += 2;
n = 0;
}
else
n = 1;
s = "";
}
if (*s != '\0' && *s != '-' && (*s != 'x' || s == val))
{
/*
* String value(s)...
*/
DEBUG_printf(("cupsPrintFile: Adding string option \'%s\' with value \'%s\'...\n",
option, val));
ippAddString(request, IPP_TAG_JOB, IPP_TAG_KEYWORD, option, NULL, val);
}
else if (val != NULL)
{
/*
* Numeric value, range, or resolution...
*/
if (*s == '-')
{
n2 = strtol(s + 1, NULL, 0);
ippAddRange(request, IPP_TAG_JOB, option, n, n2);
DEBUG_printf(("cupsPrintFile: Adding range option \'%s\' with value %d-%d...\n",
option, n, n2));
}
else if (*s == 'x')
{
n2 = strtol(s + 1, &s, 0);
if (strcasecmp(s, "dpc") == 0)
ippAddResolution(request, IPP_TAG_JOB, option, IPP_RES_PER_CM, n, n2);
else if (strcasecmp(s, "dpi") == 0)
ippAddResolution(request, IPP_TAG_JOB, option, IPP_RES_PER_INCH, n, n2);
else
ippAddString(request, IPP_TAG_JOB, IPP_TAG_KEYWORD, option, NULL, val);
DEBUG_printf(("cupsPrintFile: Adding resolution option \'%s\' with value %s...\n",
option, val));
}
else
{
ippAddInteger(request, IPP_TAG_JOB, IPP_TAG_INTEGER, option, n);
DEBUG_printf(("cupsPrintFile: Adding integer option \'%s\' with value %d...\n",
option, n));
}
}
else
{
/*
* Boolean value...
*/
DEBUG_printf(("cupsPrintFile: Adding boolean option \'%s\' with value %d...\n",
option, n));
ippAddBoolean(request, IPP_TAG_JOB, option, (char)n);
}
}
/*
* Do the request...
@@ -1277,7 +1411,7 @@ cupsTempFile(char *filename, /* I - Pointer to buffer */
* Format a string using the hex time values...
*/
snprintf(filename, len, "%s/%p%05x", tmpdir,
snprintf(filename, len, "%s/%08x%05x", tmpdir,
curtime.tv_sec, curtime.tv_usec);
/*
+1 -5
Ver Arquivo
@@ -94,11 +94,7 @@ install:
-if test "$(PAMDIR)" != ""; then \
$(MKDIR) $(PAMDIR); \
$(CHMOD) ugo+rx $(PAMDIR); \
if test -f /lib/security/pam_unix.so; then \
$(INSTALL_DATA) cups.suse $(PAMDIR)/cups; \
else \
$(INSTALL_DATA) cups.pam $(PAMDIR)/cups; \
fi \
$(INSTALL_DATA) cups.pam $(PAMDIR)/cups; \
fi
+25 -33
Ver Arquivo
@@ -22,28 +22,28 @@
% to third parties or copied or duplicated in any form, in whole or
% in part, without the prior written consent of Easy Software Products.
%
/CENTER { % Draw centered text
/CENTER \{ % Draw centered text
% (name) CENTER -
dup stringwidth pop % Get the width of the string
0.5 mul neg 0 rmoveto % Shift left 1/2 of the distance
show % Show the string
} bind def
/RIGHT { % Draw right-justified text
/RIGHT \{ % Draw right-justified text
% (name) RIGHT -
dup stringwidth pop % Get the width of the string
neg 0 rmoveto % Shift left the entire distance
show % Show the string
} bind def
/NUMBER { % Draw a number
/NUMBER \{ % Draw a number
% power n NUMBER -
1 index 1 eq { % power == 1?
1 index 1 eq \{ % power == 1?
round cvi exch pop % Convert "n" to integer
} {
} \{
1 index mul round exch div % Truncate extra decimal places
} ifelse
100 string cvs show % Convert to a string and show it...
} bind def
/CUPSLOGO { % Draw the CUPS logo
/CUPSLOGO \{ % Draw the CUPS logo
% height CUPSLOGO
% Start with a big C...
/Helvetica findfont 1 index scalefont setfont
@@ -61,14 +61,14 @@
dup 1.2 mul moveto
(System) show
} bind def
/ESPLOGO { % Draw the ESP logo
/ESPLOGO \{ % Draw the ESP logo
% height ESPLOGO
% Compute the size of the logo...
0 0
2 index 1.5 mul 3 index
% Do the "metallic" fill from 10% black to 40% black...
1 -0.001 0 {
1 -0.001 0 \{
dup % loopval
-0.15 mul % loopval * -0.15
0.9 add % 0.9 - loopval * 0.15
@@ -151,20 +151,14 @@ gsave
/pageWidth pageRight pageLeft sub def % pageWidth = pageRight - pageLeft
/pageHeight pageTop pageBottom sub def% pageHeight = pageTop - pageBottom
/boxWidth % width of text box
pageWidth pageHeight lt
{ pageWidth 54 mul }
{ pageHeight 42 mul }
ifelse def
newpath % Clear bounding path
% Create fonts...
/bigFont /Helvetica-Bold findfont % bigFont = Helvetica-Bold
pageHeight 3 mul scalefont def % size = pageHeight * 3 (nominally 33)
pageWidth 4 mul scalefont def % size = pageWidth * 4 (nominally 34)
/mediumFont /Helvetica findfont % mediumFont = Helvetica
pageHeight 1.5 mul scalefont def % size = pageHeight * 1.5 (nominally 16.5)
pageWidth 2 mul scalefont def % size = pageWidth * 2 (nominally 17)
% Offset page to account for lower-left margin...
pageLeft 72 mul
@@ -176,30 +170,28 @@ gsave
pageWidth 36 mul % Center of page
pageHeight 72 mul % Top of page
pageWidth -7 mul add % - 2 lines
pageWidth -9 mul add % - 1 line
moveto % Position text
bigFont setfont % Font
(Classified) CENTER % Show text centered
pageWidth 36 mul % Center of page
pageHeight 6 mul % Bottom of page
pageWidth 8 mul % Bottom of page
moveto % Position text
bigFont setfont % Font
(Classified) CENTER % Show text centered
% Job information box...
pageWidth 36 mul 9 add % x = pageWidth * 1/2 * 72 + 9
boxWidth 0.5 mul sub % x-= 1/2 box width
pageHeight 30 mul 9 sub % y = pageHeight * 1/2 * 72 - 9
boxWidth % w = box width
pageHeight 14 mul % h = pageHeight * 1/2 * 72
pageWidth 18 mul 9 add % x = pageWidth * 1/4 * 72 + 9
pageHeight 27 mul 9 sub % y = pageHeight * 3/8 * 72 - 9
pageWidth 36 mul % w = pageWidth * 1/2 * 72
pageHeight 18 mul % h = pageHeight * 1/4 * 72
0.5 setgray rectfill % Draw a shadow
pageWidth 36 mul % x = pageWidth * 1/2 * 72
boxWidth 0.5 mul sub % x-= 1/2 box width
pageHeight 30 mul % y = pageHeight * 1/4 * 72
boxWidth % w = box width
pageHeight 14 mul % h = pageHeight * 1/2 * 72
pageWidth 18 mul % x = pageWidth * 1/4 * 72
pageHeight 27 mul % y = pageHeight * 3/8 * 72
pageWidth 36 mul % w = pageWidth * 1/2 * 72
pageHeight 18 mul % h = pageHeight * 1/4 * 72
4 copy 1 setgray rectfill % Clear the box to white
0 setgray rectstroke % Draw a black box around it...
@@ -209,7 +201,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight 5 mul add % y += 2 lines
pageWidth 4 mul add % y += 2 lines
2 copy % Copy X & Y
moveto
(Job ID: ) RIGHT
@@ -218,7 +210,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight 2 mul add % y += 1 line
pageWidth 1 mul add % y += 1 line
2 copy % Copy X & Y
moveto
(Title: ) RIGHT
@@ -227,7 +219,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight -1 mul add % y -= 1 line
pageWidth -2 mul add % y -= 1 line
2 copy % Copy X & Y
moveto
(Requesting User: ) RIGHT
@@ -236,7 +228,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight -4 mul add % y -= 2 lines
pageWidth -5 mul add % y -= 2 lines
2 copy % Copy X & Y
moveto
(Billing Info: ) RIGHT
@@ -262,6 +254,6 @@ gsave
grestore
showpage
%
% End of "$Id: classified 1379 2000-09-18 17:12:42Z mike $".
% End of "$Id: classified 1075 2000-05-11 20:02:21Z mike $".
%
%%EOF
+25 -33
Ver Arquivo
@@ -22,28 +22,28 @@
% to third parties or copied or duplicated in any form, in whole or
% in part, without the prior written consent of Easy Software Products.
%
/CENTER { % Draw centered text
/CENTER \{ % Draw centered text
% (name) CENTER -
dup stringwidth pop % Get the width of the string
0.5 mul neg 0 rmoveto % Shift left 1/2 of the distance
show % Show the string
} bind def
/RIGHT { % Draw right-justified text
/RIGHT \{ % Draw right-justified text
% (name) RIGHT -
dup stringwidth pop % Get the width of the string
neg 0 rmoveto % Shift left the entire distance
show % Show the string
} bind def
/NUMBER { % Draw a number
/NUMBER \{ % Draw a number
% power n NUMBER -
1 index 1 eq { % power == 1?
1 index 1 eq \{ % power == 1?
round cvi exch pop % Convert "n" to integer
} {
} \{
1 index mul round exch div % Truncate extra decimal places
} ifelse
100 string cvs show % Convert to a string and show it...
} bind def
/CUPSLOGO { % Draw the CUPS logo
/CUPSLOGO \{ % Draw the CUPS logo
% height CUPSLOGO
% Start with a big C...
/Helvetica findfont 1 index scalefont setfont
@@ -61,14 +61,14 @@
dup 1.2 mul moveto
(System) show
} bind def
/ESPLOGO { % Draw the ESP logo
/ESPLOGO \{ % Draw the ESP logo
% height ESPLOGO
% Compute the size of the logo...
0 0
2 index 1.5 mul 3 index
% Do the "metallic" fill from 10% black to 40% black...
1 -0.001 0 {
1 -0.001 0 \{
dup % loopval
-0.15 mul % loopval * -0.15
0.9 add % 0.9 - loopval * 0.15
@@ -151,20 +151,14 @@ gsave
/pageWidth pageRight pageLeft sub def % pageWidth = pageRight - pageLeft
/pageHeight pageTop pageBottom sub def% pageHeight = pageTop - pageBottom
/boxWidth % width of text box
pageWidth pageHeight lt
{ pageWidth 54 mul }
{ pageHeight 42 mul }
ifelse def
newpath % Clear bounding path
% Create fonts...
/bigFont /Helvetica-Bold findfont % bigFont = Helvetica-Bold
pageHeight 3 mul scalefont def % size = pageHeight * 3 (nominally 33)
pageWidth 4 mul scalefont def % size = pageWidth * 4 (nominally 34)
/mediumFont /Helvetica findfont % mediumFont = Helvetica
pageHeight 1.5 mul scalefont def % size = pageHeight * 1.5 (nominally 16.5)
pageWidth 2 mul scalefont def % size = pageWidth * 2 (nominally 17)
% Offset page to account for lower-left margin...
pageLeft 72 mul
@@ -176,30 +170,28 @@ gsave
pageWidth 36 mul % Center of page
pageHeight 72 mul % Top of page
pageWidth -7 mul add % - 2 lines
pageWidth -9 mul add % - 1 line
moveto % Position text
bigFont setfont % Font
(Confidential) CENTER % Show text centered
pageWidth 36 mul % Center of page
pageHeight 6 mul % Bottom of page
pageWidth 8 mul % Bottom of page
moveto % Position text
bigFont setfont % Font
(Confidential) CENTER % Show text centered
% Job information box...
pageWidth 36 mul 9 add % x = pageWidth * 1/2 * 72 + 9
boxWidth 0.5 mul sub % x-= 1/2 box width
pageHeight 30 mul 9 sub % y = pageHeight * 1/2 * 72 - 9
boxWidth % w = box width
pageHeight 14 mul % h = pageHeight * 1/2 * 72
pageWidth 18 mul 9 add % x = pageWidth * 1/4 * 72 + 9
pageHeight 27 mul 9 sub % y = pageHeight * 3/8 * 72 - 9
pageWidth 36 mul % w = pageWidth * 1/2 * 72
pageHeight 18 mul % h = pageHeight * 1/4 * 72
0.5 setgray rectfill % Draw a shadow
pageWidth 36 mul % x = pageWidth * 1/2 * 72
boxWidth 0.5 mul sub % x-= 1/2 box width
pageHeight 30 mul % y = pageHeight * 1/4 * 72
boxWidth % w = box width
pageHeight 14 mul % h = pageHeight * 1/2 * 72
pageWidth 18 mul % x = pageWidth * 1/4 * 72
pageHeight 27 mul % y = pageHeight * 3/8 * 72
pageWidth 36 mul % w = pageWidth * 1/2 * 72
pageHeight 18 mul % h = pageHeight * 1/4 * 72
4 copy 1 setgray rectfill % Clear the box to white
0 setgray rectstroke % Draw a black box around it...
@@ -209,7 +201,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight 5 mul add % y += 2 lines
pageWidth 4 mul add % y += 2 lines
2 copy % Copy X & Y
moveto
(Job ID: ) RIGHT
@@ -218,7 +210,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight 2 mul add % y += 1 line
pageWidth 1 mul add % y += 1 line
2 copy % Copy X & Y
moveto
(Title: ) RIGHT
@@ -227,7 +219,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight -1 mul add % y -= 1 line
pageWidth -2 mul add % y -= 1 line
2 copy % Copy X & Y
moveto
(Requesting User: ) RIGHT
@@ -236,7 +228,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight -4 mul add % y -= 2 lines
pageWidth -5 mul add % y -= 2 lines
2 copy % Copy X & Y
moveto
(Billing Info: ) RIGHT
@@ -262,6 +254,6 @@ gsave
grestore
showpage
%
% End of "$Id: confidential 1379 2000-09-18 17:12:42Z mike $".
% End of "$Id: confidential 1075 2000-05-11 20:02:21Z mike $".
%
%%EOF
-2
Ver Arquivo
@@ -1,2 +0,0 @@
auth required /lib/security/pam_unix.so nullok shadow
account required /lib/security/pam_unix.so
+25 -33
Ver Arquivo
@@ -22,28 +22,28 @@
% to third parties or copied or duplicated in any form, in whole or
% in part, without the prior written consent of Easy Software Products.
%
/CENTER { % Draw centered text
/CENTER \{ % Draw centered text
% (name) CENTER -
dup stringwidth pop % Get the width of the string
0.5 mul neg 0 rmoveto % Shift left 1/2 of the distance
show % Show the string
} bind def
/RIGHT { % Draw right-justified text
/RIGHT \{ % Draw right-justified text
% (name) RIGHT -
dup stringwidth pop % Get the width of the string
neg 0 rmoveto % Shift left the entire distance
show % Show the string
} bind def
/NUMBER { % Draw a number
/NUMBER \{ % Draw a number
% power n NUMBER -
1 index 1 eq { % power == 1?
1 index 1 eq \{ % power == 1?
round cvi exch pop % Convert "n" to integer
} {
} \{
1 index mul round exch div % Truncate extra decimal places
} ifelse
100 string cvs show % Convert to a string and show it...
} bind def
/CUPSLOGO { % Draw the CUPS logo
/CUPSLOGO \{ % Draw the CUPS logo
% height CUPSLOGO
% Start with a big C...
/Helvetica findfont 1 index scalefont setfont
@@ -61,14 +61,14 @@
dup 1.2 mul moveto
(System) show
} bind def
/ESPLOGO { % Draw the ESP logo
/ESPLOGO \{ % Draw the ESP logo
% height ESPLOGO
% Compute the size of the logo...
0 0
2 index 1.5 mul 3 index
% Do the "metallic" fill from 10% black to 40% black...
1 -0.001 0 {
1 -0.001 0 \{
dup % loopval
-0.15 mul % loopval * -0.15
0.9 add % 0.9 - loopval * 0.15
@@ -151,20 +151,14 @@ gsave
/pageWidth pageRight pageLeft sub def % pageWidth = pageRight - pageLeft
/pageHeight pageTop pageBottom sub def% pageHeight = pageTop - pageBottom
/boxWidth % width of text box
pageWidth pageHeight lt
{ pageWidth 54 mul }
{ pageHeight 42 mul }
ifelse def
newpath % Clear bounding path
% Create fonts...
/bigFont /Helvetica-Bold findfont % bigFont = Helvetica-Bold
pageHeight 3 mul scalefont def % size = pageHeight * 3 (nominally 33)
pageWidth 4 mul scalefont def % size = pageWidth * 4 (nominally 34)
/mediumFont /Helvetica findfont % mediumFont = Helvetica
pageHeight 1.5 mul scalefont def % size = pageHeight * 1.5 (nominally 16.5)
pageWidth 2 mul scalefont def % size = pageWidth * 2 (nominally 17)
% Offset page to account for lower-left margin...
pageLeft 72 mul
@@ -176,30 +170,28 @@ gsave
pageWidth 36 mul % Center of page
pageHeight 72 mul % Top of page
pageWidth -7 mul add % - 2 lines
pageWidth -9 mul add % - 1 line
moveto % Position text
bigFont setfont % Font
(Secret) CENTER % Show text centered
pageWidth 36 mul % Center of page
pageHeight 6 mul % Bottom of page
pageWidth 8 mul % Bottom of page
moveto % Position text
bigFont setfont % Font
(Secret) CENTER % Show text centered
% Job information box...
pageWidth 36 mul 9 add % x = pageWidth * 1/2 * 72 + 9
boxWidth 0.5 mul sub % x-= 1/2 box width
pageHeight 30 mul 9 sub % y = pageHeight * 1/2 * 72 - 9
boxWidth % w = box width
pageHeight 14 mul % h = pageHeight * 1/2 * 72
pageWidth 18 mul 9 add % x = pageWidth * 1/4 * 72 + 9
pageHeight 27 mul 9 sub % y = pageHeight * 3/8 * 72 - 9
pageWidth 36 mul % w = pageWidth * 1/2 * 72
pageHeight 18 mul % h = pageHeight * 1/4 * 72
0.5 setgray rectfill % Draw a shadow
pageWidth 36 mul % x = pageWidth * 1/2 * 72
boxWidth 0.5 mul sub % x-= 1/2 box width
pageHeight 30 mul % y = pageHeight * 1/4 * 72
boxWidth % w = box width
pageHeight 14 mul % h = pageHeight * 1/2 * 72
pageWidth 18 mul % x = pageWidth * 1/4 * 72
pageHeight 27 mul % y = pageHeight * 3/8 * 72
pageWidth 36 mul % w = pageWidth * 1/2 * 72
pageHeight 18 mul % h = pageHeight * 1/4 * 72
4 copy 1 setgray rectfill % Clear the box to white
0 setgray rectstroke % Draw a black box around it...
@@ -209,7 +201,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight 5 mul add % y += 2 lines
pageWidth 4 mul add % y += 2 lines
2 copy % Copy X & Y
moveto
(Job ID: ) RIGHT
@@ -218,7 +210,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight 2 mul add % y += 1 line
pageWidth 1 mul add % y += 1 line
2 copy % Copy X & Y
moveto
(Title: ) RIGHT
@@ -227,7 +219,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight -1 mul add % y -= 1 line
pageWidth -2 mul add % y -= 1 line
2 copy % Copy X & Y
moveto
(Requesting User: ) RIGHT
@@ -236,7 +228,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight -4 mul add % y -= 2 lines
pageWidth -5 mul add % y -= 2 lines
2 copy % Copy X & Y
moveto
(Billing Info: ) RIGHT
@@ -262,6 +254,6 @@ gsave
grestore
showpage
%
% End of "$Id: secret 1379 2000-09-18 17:12:42Z mike $".
% End of "$Id: secret 1075 2000-05-11 20:02:21Z mike $".
%
%%EOF
+39 -31
Ver Arquivo
@@ -22,28 +22,28 @@
% to third parties or copied or duplicated in any form, in whole or
% in part, without the prior written consent of Easy Software Products.
%
/CENTER { % Draw centered text
/CENTER \{ % Draw centered text
% (name) CENTER -
dup stringwidth pop % Get the width of the string
0.5 mul neg 0 rmoveto % Shift left 1/2 of the distance
show % Show the string
} bind def
/RIGHT { % Draw right-justified text
/RIGHT \{ % Draw right-justified text
% (name) RIGHT -
dup stringwidth pop % Get the width of the string
neg 0 rmoveto % Shift left the entire distance
show % Show the string
} bind def
/NUMBER { % Draw a number
/NUMBER \{ % Draw a number
% power n NUMBER -
1 index 1 eq { % power == 1?
1 index 1 eq \{ % power == 1?
round cvi exch pop % Convert "n" to integer
} {
} \{
1 index mul round exch div % Truncate extra decimal places
} ifelse
100 string cvs show % Convert to a string and show it...
} bind def
/CUPSLOGO { % Draw the CUPS logo
/CUPSLOGO \{ % Draw the CUPS logo
% height CUPSLOGO
% Start with a big C...
/Helvetica findfont 1 index scalefont setfont
@@ -61,14 +61,14 @@
dup 1.2 mul moveto
(System) show
} bind def
/ESPLOGO { % Draw the ESP logo
/ESPLOGO \{ % Draw the ESP logo
% height ESPLOGO
% Compute the size of the logo...
0 0
2 index 1.5 mul 3 index
% Do the "metallic" fill from 10% black to 40% black...
1 -0.001 0 {
1 -0.001 0 \{
dup % loopval
-0.15 mul % loopval * -0.15
0.9 add % 0.9 - loopval * 0.15
@@ -151,39 +151,47 @@ gsave
/pageWidth pageRight pageLeft sub def % pageWidth = pageRight - pageLeft
/pageHeight pageTop pageBottom sub def% pageHeight = pageTop - pageBottom
/boxWidth % width of text box
pageWidth pageHeight lt
{ pageWidth 54 mul }
{ pageHeight 42 mul }
ifelse def
newpath % Clear bounding path
% Create fonts...
/bigFont /Helvetica-Bold findfont % bigFont = Helvetica-Bold
pageHeight 3 mul scalefont def % size = pageHeight * 3 (nominally 33)
pageWidth 4 mul scalefont def % size = pageWidth * 4 (nominally 34)
/mediumFont /Helvetica findfont % mediumFont = Helvetica
pageHeight 1.5 mul scalefont def % size = pageHeight * 1.5 (nominally 16.5)
pageWidth 2 mul scalefont def % size = pageWidth * 2 (nominally 17)
% Offset page to account for lower-left margin...
pageLeft 72 mul
pageBottom 72 mul
translate
% Draw the label at the top and bottom...
0 setgray % Color
pageWidth 36 mul % Center of page
pageHeight 72 mul % Top of page
pageWidth -9 mul add % - 1 line
moveto % Position text
bigFont setfont % Font
(Banner) CENTER % Show text centered
pageWidth 36 mul % Center of page
pageWidth 8 mul % Bottom of page
moveto % Position text
bigFont setfont % Font
(Banner) CENTER % Show text centered
% Job information box...
pageWidth 36 mul 9 add % x = pageWidth * 1/2 * 72 + 9
boxWidth 0.5 mul sub % x-= 1/2 box width
pageHeight 30 mul 9 sub % y = pageHeight * 1/2 * 72 - 9
boxWidth % w = box width
pageHeight 14 mul % h = pageHeight * 1/2 * 72
pageWidth 18 mul 9 add % x = pageWidth * 1/4 * 72 + 9
pageHeight 27 mul 9 sub % y = pageHeight * 3/8 * 72 - 9
pageWidth 36 mul % w = pageWidth * 1/2 * 72
pageHeight 18 mul % h = pageHeight * 1/4 * 72
0.5 setgray rectfill % Draw a shadow
pageWidth 36 mul % x = pageWidth * 1/2 * 72
boxWidth 0.5 mul sub % x-= 1/2 box width
pageHeight 30 mul % y = pageHeight * 1/4 * 72
boxWidth % w = box width
pageHeight 14 mul % h = pageHeight * 1/2 * 72
pageWidth 18 mul % x = pageWidth * 1/4 * 72
pageHeight 27 mul % y = pageHeight * 3/8 * 72
pageWidth 36 mul % w = pageWidth * 1/2 * 72
pageHeight 18 mul % h = pageHeight * 1/4 * 72
4 copy 1 setgray rectfill % Clear the box to white
0 setgray rectstroke % Draw a black box around it...
@@ -193,7 +201,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight 5 mul add % y += 2 lines
pageWidth 4 mul add % y += 2 lines
2 copy % Copy X & Y
moveto
(Job ID: ) RIGHT
@@ -202,7 +210,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight 2 mul add % y += 1 line
pageWidth 1 mul add % y += 1 line
2 copy % Copy X & Y
moveto
(Title: ) RIGHT
@@ -211,7 +219,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight -1 mul add % y -= 1 line
pageWidth -2 mul add % y -= 1 line
2 copy % Copy X & Y
moveto
(Requesting User: ) RIGHT
@@ -220,7 +228,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight -4 mul add % y -= 2 lines
pageWidth -5 mul add % y -= 2 lines
2 copy % Copy X & Y
moveto
(Billing Info: ) RIGHT
@@ -246,6 +254,6 @@ gsave
grestore
showpage
%
% End of "$Id: standard 1379 2000-09-18 17:12:42Z mike $".
% End of "$Id: standard 1075 2000-05-11 20:02:21Z mike $".
%
%%EOF
+27 -34
Ver Arquivo
@@ -213,22 +213,15 @@ gsave
/yResolution exch abs def % yResolution = abs(yres)
/xResolution exch abs def % xResolution = abs(xres)
% Figure out the sizes of things...
/wheelSize % size of wheels
pageWidth pageHeight lt
{ pageWidth 9 mul }
{ pageHeight 7 mul }
ifelse def
% Create fonts...
/bigFont /Helvetica-Bold findfont % bigFont = Helvetica-Bold
pageHeight 3 mul scalefont def % size = pageHeight * 3 (nominally 33)
pageWidth 4 mul scalefont def % size = pageWidth * 4 (nominally 34)
/mediumFont /Helvetica findfont % mediumFont = Helvetica
pageHeight 1.5 mul scalefont def % size = pageHeight * 1.5 (nominally 16.5)
pageWidth 2 mul scalefont def % size = pageWidth * 2 (nominally 17)
/smallFont /Times-Roman findfont % smallFont = Times-Roman
pageHeight scalefont def % size = pageHeight (nominally 11)
pageWidth 1.5 mul scalefont def % size = pageWidth * 1.5 (nominally 13)
% Offset page to account for lower-left margin...
pageLeft 72 mul
@@ -246,7 +239,7 @@ gsave
translate
% Size the wheel...
wheelSize
pageWidth 9 mul % radius = pageWidth * 1/8 * 72
% Draw the colors...
dup (C) exch 0 1 1 OCTANT 45 rotate
@@ -275,7 +268,7 @@ gsave
translate
% Size the wheel...
wheelSize
pageWidth 9 mul % radius = pageWidth * 1/8 * 72
% Loop at 1 degree increments
0 1 359 {
@@ -297,7 +290,7 @@ gsave
(1 Degree Radial Lines) CENTER % Show the text centered
% Imageable area...
pageHeight 15 mul % Height of imageable area
pageWidth 19.5 mul % Height of imageable area
pageWidth 4.5 mul % x = pageWidth * 1/16 * 72
pageHeight 35.5 mul % y = pageHeight * 1/2 * 72
@@ -326,7 +319,7 @@ gsave
smallFont setfont % Font
pageWidth 14 mul % x = pageWidth * 3/16 * 72
pageHeight 36 mul % y = pageWidth * 1/2 * 72
pageHeight -2 mul add % y -= 2 * smallFont height
pageWidth -3 mul add % y -= 2 * smallFont height
% Page Size inches
2 copy moveto % Move to x & y
@@ -337,7 +330,7 @@ gsave
(in) show % "in"
% Page Size millimeters
pageHeight sub % Move down...
pageWidth -1.5 mul add % Move down...
2 copy moveto % Move to x & y
10 pageWidth 25.4 mul NUMBER % pageWidth
@@ -346,7 +339,7 @@ gsave
(mm) show % "mm"
% Lower-left inches
pageHeight 2 mul sub % Move down...
pageWidth -3 mul add % Move down...
2 copy moveto % Move to x & y
(Lower-Left: ) RIGHT % Label
@@ -356,7 +349,7 @@ gsave
(in) show % "in"
% Lower-left millimeters
pageHeight sub % Move down...
pageWidth -1.5 mul add % Move down...
2 copy moveto % Move to x & y
10 pageLeft 25.4 mul NUMBER % pageLeft
@@ -365,7 +358,7 @@ gsave
(mm) show % "mm"
% Upper-right inches
pageHeight 2 mul sub % Move down...
pageWidth -3 mul add % Move down...
2 copy moveto % Move to x & y
(Upper-Right: ) RIGHT % Label
@@ -375,7 +368,7 @@ gsave
(in) show % "in"
% Upper-right millimeters
pageHeight sub % Move down...
pageWidth -1.5 mul add % Move down...
2 copy moveto % Move to x & y
10 pageRight 25.4 mul NUMBER % pageRight
@@ -384,7 +377,7 @@ gsave
(mm) show % "mm"
% Resolution dots-per-inch
pageHeight 2 mul sub % Move down...
pageWidth -3 mul add % Move down...
2 copy moveto % Move to x & y
(Resolution: ) RIGHT % Label
@@ -394,7 +387,7 @@ gsave
(dpi) show % "dpi"
% Resolution dots-per-meter
pageHeight sub % Move down...
pageWidth -1.5 mul add % Move down...
moveto % Move to x & y
1 xResolution 39.27 mul NUMBER % xResolution
@@ -403,7 +396,7 @@ gsave
(dpm) show % "dpm"
% Interpreter Information...
pageHeight 15 mul % Height of interpreter information
pageWidth 19.5 mul % Height of interpreter info
pageWidth 40.5 mul % x = pageWidth * 9/16 * 72
pageHeight 35.5 mul % y = pageHeight * 1/2 * 72
@@ -432,7 +425,7 @@ gsave
smallFont setfont % Font
pageWidth 49 mul % x = pageWidth * 11/16 * 72
pageHeight 36 mul % y = pageWidth * 1/2 * 72
pageHeight 2 mul sub % y -= 2 * smallFont height
pageWidth -3 mul add % y -= 2 * smallFont height
% Language level
2 copy moveto % Move to x & y
@@ -441,7 +434,7 @@ gsave
1 languagelevel NUMBER % Language level
% Version
pageHeight 2 mul sub % Move down...
pageWidth -3 mul add % Move down...
2 copy moveto % Move to x & y
(Version: ) RIGHT % Label
version show % Version
@@ -450,13 +443,13 @@ gsave
(\)) show % ")"
% Product
pageHeight 2 mul sub % Move down...
pageWidth -3 mul add % Move down...
2 copy moveto % Move to x & y
(Product: ) RIGHT % Label
product show % Product name
% Serial Number
pageHeight 2 mul sub % Move down...
pageWidth -3 mul add % Move down...
2 copy moveto % Move to x & y
(Serial #: ) RIGHT % Label
1 serialnumber NUMBER % S/N
@@ -470,28 +463,28 @@ gsave
% Draw the copyright notice at the bottom...
pageWidth 36 mul % Center of page
pageHeight 10 mul % Bottom of page
pageWidth 14 mul % Bottom of page
2 copy moveto % Position text
(Printed Using CUPS v1.1.x) CENTER % Show text centered
pageHeight 2 mul sub % Move down...
pageWidth 3 mul sub % Move down...
2 copy moveto % Position text
smallFont setfont % Font
(Copyright 1993-2000 Easy Software Products, All Rights Reserved.) CENTER
pageHeight sub % Move down...
pageWidth 1.5 mul sub % Move down...
2 copy moveto % Position text
(CUPS, and the CUPS logo are the trademark property of) CENTER
pageHeight sub % Move down...
pageWidth 1.5 mul sub % Move down...
2 copy moveto % Position text
(Easy Software Products, 44141 Airport View Drive, Suite 204,) CENTER
pageHeight sub % Move down...
pageWidth 1.5 mul sub % Move down...
2 copy moveto % Position text
(Hollywood, Maryland, 20636-3111, USA.) CENTER
% Then the CUPS logo....
gsave
pageWidth 4 mul
pageHeight 4 mul
pageWidth 6 mul
translate
pageWidth 9 mul CUPSLOGO
grestore
@@ -499,7 +492,7 @@ gsave
% And the ESP logo....
gsave
pageWidth 59 mul
pageHeight 4 mul
pageWidth 6 mul
translate
pageWidth 6 mul ESPLOGO
grestore
@@ -507,6 +500,6 @@ gsave
grestore
showpage
%
% End of "$Id: testprint.ps 1379 2000-09-18 17:12:42Z mike $".
% End of "$Id: testprint.ps 1260 2000-08-01 17:52:30Z mike $".
%
%%EOF
+25 -33
Ver Arquivo
@@ -22,28 +22,28 @@
% to third parties or copied or duplicated in any form, in whole or
% in part, without the prior written consent of Easy Software Products.
%
/CENTER { % Draw centered text
/CENTER \{ % Draw centered text
% (name) CENTER -
dup stringwidth pop % Get the width of the string
0.5 mul neg 0 rmoveto % Shift left 1/2 of the distance
show % Show the string
} bind def
/RIGHT { % Draw right-justified text
/RIGHT \{ % Draw right-justified text
% (name) RIGHT -
dup stringwidth pop % Get the width of the string
neg 0 rmoveto % Shift left the entire distance
show % Show the string
} bind def
/NUMBER { % Draw a number
/NUMBER \{ % Draw a number
% power n NUMBER -
1 index 1 eq { % power == 1?
1 index 1 eq \{ % power == 1?
round cvi exch pop % Convert "n" to integer
} {
} \{
1 index mul round exch div % Truncate extra decimal places
} ifelse
100 string cvs show % Convert to a string and show it...
} bind def
/CUPSLOGO { % Draw the CUPS logo
/CUPSLOGO \{ % Draw the CUPS logo
% height CUPSLOGO
% Start with a big C...
/Helvetica findfont 1 index scalefont setfont
@@ -61,14 +61,14 @@
dup 1.2 mul moveto
(System) show
} bind def
/ESPLOGO { % Draw the ESP logo
/ESPLOGO \{ % Draw the ESP logo
% height ESPLOGO
% Compute the size of the logo...
0 0
2 index 1.5 mul 3 index
% Do the "metallic" fill from 10% black to 40% black...
1 -0.001 0 {
1 -0.001 0 \{
dup % loopval
-0.15 mul % loopval * -0.15
0.9 add % 0.9 - loopval * 0.15
@@ -151,20 +151,14 @@ gsave
/pageWidth pageRight pageLeft sub def % pageWidth = pageRight - pageLeft
/pageHeight pageTop pageBottom sub def% pageHeight = pageTop - pageBottom
/boxWidth % width of text box
pageWidth pageHeight lt
{ pageWidth 54 mul }
{ pageHeight 42 mul }
ifelse def
newpath % Clear bounding path
% Create fonts...
/bigFont /Helvetica-Bold findfont % bigFont = Helvetica-Bold
pageHeight 3 mul scalefont def % size = pageHeight * 3 (nominally 33)
pageWidth 4 mul scalefont def % size = pageWidth * 4 (nominally 34)
/mediumFont /Helvetica findfont % mediumFont = Helvetica
pageHeight 1.5 mul scalefont def % size = pageHeight * 1.5 (nominally 16.5)
pageWidth 2 mul scalefont def % size = pageWidth * 2 (nominally 17)
% Offset page to account for lower-left margin...
pageLeft 72 mul
@@ -176,30 +170,28 @@ gsave
pageWidth 36 mul % Center of page
pageHeight 72 mul % Top of page
pageWidth -7 mul add % - 2 lines
pageWidth -9 mul add % - 1 line
moveto % Position text
bigFont setfont % Font
(Top Secret) CENTER % Show text centered
pageWidth 36 mul % Center of page
pageHeight 6 mul % Bottom of page
pageWidth 8 mul % Bottom of page
moveto % Position text
bigFont setfont % Font
(Top Secret) CENTER % Show text centered
% Job information box...
pageWidth 36 mul 9 add % x = pageWidth * 1/2 * 72 + 9
boxWidth 0.5 mul sub % x-= 1/2 box width
pageHeight 30 mul 9 sub % y = pageHeight * 1/2 * 72 - 9
boxWidth % w = box width
pageHeight 14 mul % h = pageHeight * 1/2 * 72
pageWidth 18 mul 9 add % x = pageWidth * 1/4 * 72 + 9
pageHeight 27 mul 9 sub % y = pageHeight * 3/8 * 72 - 9
pageWidth 36 mul % w = pageWidth * 1/2 * 72
pageHeight 18 mul % h = pageHeight * 1/4 * 72
0.5 setgray rectfill % Draw a shadow
pageWidth 36 mul % x = pageWidth * 1/2 * 72
boxWidth 0.5 mul sub % x-= 1/2 box width
pageHeight 30 mul % y = pageHeight * 1/4 * 72
boxWidth % w = box width
pageHeight 14 mul % h = pageHeight * 1/2 * 72
pageWidth 18 mul % x = pageWidth * 1/4 * 72
pageHeight 27 mul % y = pageHeight * 3/8 * 72
pageWidth 36 mul % w = pageWidth * 1/2 * 72
pageHeight 18 mul % h = pageHeight * 1/4 * 72
4 copy 1 setgray rectfill % Clear the box to white
0 setgray rectstroke % Draw a black box around it...
@@ -209,7 +201,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight 5 mul add % y += 2 lines
pageWidth 4 mul add % y += 2 lines
2 copy % Copy X & Y
moveto
(Job ID: ) RIGHT
@@ -218,7 +210,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight 2 mul add % y += 1 line
pageWidth 1 mul add % y += 1 line
2 copy % Copy X & Y
moveto
(Title: ) RIGHT
@@ -227,7 +219,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight -1 mul add % y -= 1 line
pageWidth -2 mul add % y -= 1 line
2 copy % Copy X & Y
moveto
(Requesting User: ) RIGHT
@@ -236,7 +228,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight -4 mul add % y -= 2 lines
pageWidth -5 mul add % y -= 2 lines
2 copy % Copy X & Y
moveto
(Billing Info: ) RIGHT
@@ -262,6 +254,6 @@ gsave
grestore
showpage
%
% End of "$Id: topsecret 1379 2000-09-18 17:12:42Z mike $".
% End of "$Id: topsecret 1075 2000-05-11 20:02:21Z mike $".
%
%%EOF
+25 -33
Ver Arquivo
@@ -22,28 +22,28 @@
% to third parties or copied or duplicated in any form, in whole or
% in part, without the prior written consent of Easy Software Products.
%
/CENTER { % Draw centered text
/CENTER \{ % Draw centered text
% (name) CENTER -
dup stringwidth pop % Get the width of the string
0.5 mul neg 0 rmoveto % Shift left 1/2 of the distance
show % Show the string
} bind def
/RIGHT { % Draw right-justified text
/RIGHT \{ % Draw right-justified text
% (name) RIGHT -
dup stringwidth pop % Get the width of the string
neg 0 rmoveto % Shift left the entire distance
show % Show the string
} bind def
/NUMBER { % Draw a number
/NUMBER \{ % Draw a number
% power n NUMBER -
1 index 1 eq { % power == 1?
1 index 1 eq \{ % power == 1?
round cvi exch pop % Convert "n" to integer
} {
} \{
1 index mul round exch div % Truncate extra decimal places
} ifelse
100 string cvs show % Convert to a string and show it...
} bind def
/CUPSLOGO { % Draw the CUPS logo
/CUPSLOGO \{ % Draw the CUPS logo
% height CUPSLOGO
% Start with a big C...
/Helvetica findfont 1 index scalefont setfont
@@ -61,14 +61,14 @@
dup 1.2 mul moveto
(System) show
} bind def
/ESPLOGO { % Draw the ESP logo
/ESPLOGO \{ % Draw the ESP logo
% height ESPLOGO
% Compute the size of the logo...
0 0
2 index 1.5 mul 3 index
% Do the "metallic" fill from 10% black to 40% black...
1 -0.001 0 {
1 -0.001 0 \{
dup % loopval
-0.15 mul % loopval * -0.15
0.9 add % 0.9 - loopval * 0.15
@@ -151,20 +151,14 @@ gsave
/pageWidth pageRight pageLeft sub def % pageWidth = pageRight - pageLeft
/pageHeight pageTop pageBottom sub def% pageHeight = pageTop - pageBottom
/boxWidth % width of text box
pageWidth pageHeight lt
{ pageWidth 54 mul }
{ pageHeight 42 mul }
ifelse def
newpath % Clear bounding path
% Create fonts...
/bigFont /Helvetica-Bold findfont % bigFont = Helvetica-Bold
pageHeight 3 mul scalefont def % size = pageHeight * 3 (nominally 33)
pageWidth 4 mul scalefont def % size = pageWidth * 4 (nominally 34)
/mediumFont /Helvetica findfont % mediumFont = Helvetica
pageHeight 1.5 mul scalefont def % size = pageHeight * 1.5 (nominally 16.5)
pageWidth 2 mul scalefont def % size = pageWidth * 2 (nominally 17)
% Offset page to account for lower-left margin...
pageLeft 72 mul
@@ -176,30 +170,28 @@ gsave
pageWidth 36 mul % Center of page
pageHeight 72 mul % Top of page
pageWidth -7 mul add % - 2 lines
pageWidth -9 mul add % - 1 line
moveto % Position text
bigFont setfont % Font
(Unclassified) CENTER % Show text centered
pageWidth 36 mul % Center of page
pageHeight 6 mul % Bottom of page
pageWidth 8 mul % Bottom of page
moveto % Position text
bigFont setfont % Font
(Unclassified) CENTER % Show text centered
% Job information box...
pageWidth 36 mul 9 add % x = pageWidth * 1/2 * 72 + 9
boxWidth 0.5 mul sub % x-= 1/2 box width
pageHeight 30 mul 9 sub % y = pageHeight * 1/2 * 72 - 9
boxWidth % w = box width
pageHeight 14 mul % h = pageHeight * 1/2 * 72
pageWidth 18 mul 9 add % x = pageWidth * 1/4 * 72 + 9
pageHeight 27 mul 9 sub % y = pageHeight * 3/8 * 72 - 9
pageWidth 36 mul % w = pageWidth * 1/2 * 72
pageHeight 18 mul % h = pageHeight * 1/4 * 72
0.5 setgray rectfill % Draw a shadow
pageWidth 36 mul % x = pageWidth * 1/2 * 72
boxWidth 0.5 mul sub % x-= 1/2 box width
pageHeight 30 mul % y = pageHeight * 1/4 * 72
boxWidth % w = box width
pageHeight 14 mul % h = pageHeight * 1/2 * 72
pageWidth 18 mul % x = pageWidth * 1/4 * 72
pageHeight 27 mul % y = pageHeight * 3/8 * 72
pageWidth 36 mul % w = pageWidth * 1/2 * 72
pageHeight 18 mul % h = pageHeight * 1/4 * 72
4 copy 1 setgray rectfill % Clear the box to white
0 setgray rectstroke % Draw a black box around it...
@@ -209,7 +201,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight 5 mul add % y += 2 lines
pageWidth 4 mul add % y += 2 lines
2 copy % Copy X & Y
moveto
(Job ID: ) RIGHT
@@ -218,7 +210,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight 2 mul add % y += 1 line
pageWidth 1 mul add % y += 1 line
2 copy % Copy X & Y
moveto
(Title: ) RIGHT
@@ -227,7 +219,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight -1 mul add % y -= 1 line
pageWidth -2 mul add % y -= 1 line
2 copy % Copy X & Y
moveto
(Requesting User: ) RIGHT
@@ -236,7 +228,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight -4 mul add % y -= 2 lines
pageWidth -5 mul add % y -= 2 lines
2 copy % Copy X & Y
moveto
(Billing Info: ) RIGHT
@@ -262,6 +254,6 @@ gsave
grestore
showpage
%
% End of "$Id: unclassified 1379 2000-09-18 17:12:42Z mike $".
% End of "$Id: unclassified 1075 2000-05-11 20:02:21Z mike $".
%
%%EOF
+1 -13
Ver Arquivo
@@ -79,7 +79,6 @@ WEBIMAGES = images/accept-jobs.gif \
images/printer-stopped.gif \
images/reject-jobs.gif \
images/release-job.gif \
images/restart-job.gif \
images/right.gif \
images/show-active.gif \
images/show-completed.gif \
@@ -209,18 +208,7 @@ sum-7x8.ps: sum.shtml
--size 7x8.5in --left 0.5in --right 0.25in \
--top 0.25in --bottom 0.25in --fontsize 10 --headfootsize 10 -f $@ sum.shtml
$(DOCUMENTS:.shtml=.html): \
glossary.shtml printing-overview.shtml \
references.shtml system-overview.shtml \
../LICENSE.html
$(DOCUMENTS:.shtml=.pdf): \
glossary.shtml printing-overview.shtml \
references.shtml system-overview.shtml \
../LICENSE.html
$(DOCUMENTS:.shtml=.ps): \
glossary.shtml printing-overview.shtml \
$(DOCUMENTS): glossary.shtml printing-overview.shtml \
references.shtml system-overview.shtml \
../LICENSE.html
+1 -1
Ver Arquivo
@@ -153,7 +153,7 @@ sections:
<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 Implementation of IPP </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>
+123 -121
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:20000824182222Z)/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:20000731155313Z)/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,12 +306,14 @@ endobj
xÚµ˜KSãH Çï|
ÙªÄãGâ7 À°5Ylæ´ãt‚·b;k;ÅðíGêöCYB;¶¨
ÕÉÏjEú·¤Î¿'˜øggƒãB’\D'ß®°Mˆ–ø‰ëù-NmxKQŠ<ÕÑ?±<…Œ‰aKȰàòq¬H¶™Èë¸N‹\á°¬·=Ã%<z°,Öëâ%ÍWêÁÒ
Êv×<½BýŒoµÌ™2œ4†mÛ®1!ÛÛ®»;ŸÒãËûùØ2¬3µße‘/ÓÕ¶TûÝÇy¼dæë8ßµŽ[Žúžï¿Í˜ñðµªE·y-Êeœ˜‰*]åô/)ÓMm1çþßf›µèV,?ÿ¸ÑðüžŒ¿ZÏ‹eýÎYš§U*ÊŠ´×GØßKký+âÎßq}^«2Î2ÒÖÑ~‡ûüE²-ÓúÏĦ(ë#ìFó}v#Q«¼ðñ0<Vâ3‰û¹7q?Ñ&éíMæÚ¢0V§Ñ±Õi´qñ£~eWª«B^äãÊP9ðé²p˜†‰¥^,zy¸Áh˜àø:’ëc5S5„{hd¸™oøZܲ\ÎOyFdXŽížÈÛ¶áéyF ?õ0NZž8¶9à'w­p:SßpzÞ›ìØ¿x“¯r½~°u9þD è|Q<áñ/ª:”âÄJR æj…ët-àº(³¸†p#’t™&²†Ž:qO Ç ©ôûšÝ¾­ºÆzùöiÔ器ÄV]r¡SWC7êÒàºZÞ¥§åÙ·lн†çòN`Lõ<#÷(7=@6=KØ7Ù¼‹óÕÛt?Œ zNË\-RÊà±Icµ›èüY<Aœ/:ù„¢†¡f…êCµí}“eô*OŠÕ52•q^}¸t¶ºÞOþf.Äqvî‹…XK‡B‘Åy&|9Â͉ÌùT
@.öK„ø^÷è~štÌœTmmÒŸŽgò¾¬t~#`üú6§Jß×—ø®Œà.ÍE_«b‘a Â!¦.býåuÈ,d,©…&K--“ £€Q´­œ”¥c¢åAUn‚Q×òŒ@Þ£šªåAYøÏ ê¡äs'øÃª±[e˜TcO]oÔÎÐ7E¼®pn*ñ «G.šÎGåæÿÓFÌìt$:5´’‰†fæ ÇH=Î Ò‘7à 'HGže-ÏšÅ\Œ’ŽçéÈ°Ï ê®Rµ:žÈ»4ÝjyF ïOâÉ šõ¨÷÷ü¦R²iÆk!%Š7ër›Ô[œåñÒJoômH/ÖÓ΄^柵KÃg+j¹Ð‰º¡•f54¨8ç‰Ô§”ëxF ÐÝKË3‚DJºŽç]0’¬Žg‰¨ã;5|&#l‘÷ñfCy~õ‹9ÜÍgR18Ët¹¯¾¾ÆM-y'QÙ– Ze[C3€jœCCƒs‚zÙ ïqÞ¶†xN¨ôêÝç¥×¡ôvüéÚê¾&ÓëZâx]‹_µq¼ï²
ã1|"9²~}‚¿YÕB—à†VùÓÐ  ‘Õ£ipNÐê8à 5¬xZžªÉèýáDÖœF-Ïn\ªF€ œ ‰Q8ÜPÆá|‹Åž®%²‡œÁE\¥‰<ö³tE¿˜'‰¨ª÷ºÅîãª3ø­RpÛq·ïãžø&~“>rýuòHÒU'endstream
Êv×<½BýŒoµÌ™2œ4†mÛ®1!ÛÛ®»;ŸÒãËûùØ2¬3µße‘/ÓÕ¶TûÝÇy¼dæë8ßµŽ[Žúžï¿Í˜ñðµªE·y-Êeœ˜‰*]åô/)ÓMm1çþßf›u¯b øñÇm†ç÷dÓøÕ:^,ë—¸p¾ÈÒ<­jŒOQVŸm¼>ÂþnXZë_ŽpþŽëó²X•q–‘´Žö;|Øçw(’m™Ö¯x$6EYa7šï³‰êXá…ï„ᱟIÜϽ‰û‰6Ioo2×Ö„±:ŒŽ­£õ³(»ÂPXò"ï
ÈOW…«èÄ4L¬|ôbÑËà Ö?ÃÇwБ \‹™Z¬!ÜC3 ÃÍ|Ã×â–år~2È3"Ãjlðœ@Þ¶ OÏ3ù©‡qÒòŒÈÀ±Í8¼k „Ó™ú†ÓóÞdÇþÅ›|•+èõƒËñ'J@ç‹â QÕ¡'V‚”*0W+\§k×E™Å5„‘¤Ë4‘5tÔ‰{b8I¥ß×ìömÕ5öÐË·ÇH£.ÏD%¶ê’ ººQ—oÔÕò.8-Ï̾eSì5<'wcªç¼G¹éù²éYêľɿ]œ¯¶Ø¥ûydÑsZ.àj‘RM«}ØDÏàÏâ â|ÑÉ'5üØ5*Tª¥hï›,£WyR,¨®‘ᨌóêà ¤³E­_Î*Tào¶éBgç¾Xˆµt(Yœ×irÀ—Ó(ܜȜO¥äb¿Dïuî§@çÁÀ9AÕÖ&ýéxF ïËÚ¨ãAç'0Æ osªôýp}‰ïzÁîÒ\ôµ*Ö bê")Ö_^‡ìÀB¶É’Zh²ÔÒ2 :šÀ9AY
0&ZžTå&u-Ïä=ª©Zž”Õé€ÿœ Jñ×òŒ@>0w‚?¬;°U†I5öÔõFí }SÄë
禲ºpä¢é|Tnþ?aÄÌNGr¡ÓQC+™hh`ÞpŒÔ㜠yÎp‚täàYÖòŒ YÌÅ(éxNŽüûœ î*U«ã¼KÓ­–gòþt žœ YzÏ S/`*õGð R¢x€°.·I½ÅY/­ôF߆ôb=íLèeþQ»4|¶¢– ¨ZiVC3€ŠãqNH}J¹Žgòݽ´<#H¤4 ëxNÐ# ÉêxFÐh‘ˆ:þ¹SÃg2Âyo6”ç'Q¿‘ÃÝ|&ƒ³L—ûêëkÜÔ’w•m¹ÐÉ¡¡U¶54¨Æ9T148'¨— òçmkˆç„J¯Þ}NPzJoÇÞ©­îk2½®åŽàû+Ž×µøU«ÑÇû.«0Ã÷(’#ë×'Øñû‘U-t nh•? ÍY=
ç þ€3œPʧå9¡šŒÞNdÍiÔòŒ áÆ¥jÔñ ú‘à eηXìéZ"{È\ÄUšÈc?KWô‹Ùy’ˆªz¯[ì>®:ƒß*·wûþ÷'î‰oâW0é#§Ð_'¿VÐTÂendstream
endobj
165 0 obj
1328
1330
endobj
166 0 obj<</Type/Page/Parent 150 0 R/Contents 167 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F8 7 0 R>>>>>>endobj
167 0 obj<</Length 168 0 R/Filter/FlateDecode>>stream
@@ -710,122 +712,122 @@ xref
0000022452 00000 n
0000022473 00000 n
0000022627 00000 n
0000024026 00000 n
0000024048 00000 n
0000024161 00000 n
0000024354 00000 n
0000024375 00000 n
0000024506 00000 n
0000025117 00000 n
0000025138 00000 n
0000025251 00000 n
0000025441 00000 n
0000025462 00000 n
0000025593 00000 n
0000026594 00000 n
0000026615 00000 n
0000026728 00000 n
0000026930 00000 n
0000026951 00000 n
0000027091 00000 n
0000028109 00000 n
0000028130 00000 n
0000028243 00000 n
0000028442 00000 n
0000028463 00000 n
0000028603 00000 n
0000029270 00000 n
0000029291 00000 n
0000029404 00000 n
0000029597 00000 n
0000029618 00000 n
0000029758 00000 n
0000030901 00000 n
0000030923 00000 n
0000031063 00000 n
0000031901 00000 n
0000031922 00000 n
0000032062 00000 n
0000032922 00000 n
0000032943 00000 n
0000033083 00000 n
0000033883 00000 n
0000033904 00000 n
0000034044 00000 n
0000034932 00000 n
0000034953 00000 n
0000035093 00000 n
0000035698 00000 n
0000035719 00000 n
0000035859 00000 n
0000036275 00000 n
0000036296 00000 n
0000036409 00000 n
0000036615 00000 n
0000036636 00000 n
0000036790 00000 n
0000038814 00000 n
0000038836 00000 n
0000038990 00000 n
0000039761 00000 n
0000039782 00000 n
0000039837 00000 n
0000039942 00000 n
0000040086 00000 n
0000040192 00000 n
0000040312 00000 n
0000040421 00000 n
0000040570 00000 n
0000040680 00000 n
0000040787 00000 n
0000040941 00000 n
0000041052 00000 n
0000041169 00000 n
0000041285 00000 n
0000041449 00000 n
0000041555 00000 n
0000041674 00000 n
0000041789 00000 n
0000041893 00000 n
0000042049 00000 n
0000042158 00000 n
0000042273 00000 n
0000042385 00000 n
0000042484 00000 n
0000042631 00000 n
0000042728 00000 n
0000042828 00000 n
0000042986 00000 n
0000043126 00000 n
0000043226 00000 n
0000043333 00000 n
0000043483 00000 n
0000043583 00000 n
0000043690 00000 n
0000043838 00000 n
0000043938 00000 n
0000044045 00000 n
0000044195 00000 n
0000044295 00000 n
0000044402 00000 n
0000044548 00000 n
0000044648 00000 n
0000044755 00000 n
0000044906 00000 n
0000045006 00000 n
0000045113 00000 n
0000045261 00000 n
0000045361 00000 n
0000045468 00000 n
0000045618 00000 n
0000045718 00000 n
0000045825 00000 n
0000045957 00000 n
0000046064 00000 n
0000046163 00000 n
0000046281 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
0000029272 00000 n
0000029293 00000 n
0000029406 00000 n
0000029599 00000 n
0000029620 00000 n
0000029760 00000 n
0000030903 00000 n
0000030925 00000 n
0000031065 00000 n
0000031903 00000 n
0000031924 00000 n
0000032064 00000 n
0000032924 00000 n
0000032945 00000 n
0000033085 00000 n
0000033885 00000 n
0000033906 00000 n
0000034046 00000 n
0000034934 00000 n
0000034955 00000 n
0000035095 00000 n
0000035700 00000 n
0000035721 00000 n
0000035861 00000 n
0000036277 00000 n
0000036298 00000 n
0000036411 00000 n
0000036617 00000 n
0000036638 00000 n
0000036792 00000 n
0000038816 00000 n
0000038838 00000 n
0000038992 00000 n
0000039763 00000 n
0000039784 00000 n
0000039839 00000 n
0000039944 00000 n
0000040088 00000 n
0000040194 00000 n
0000040314 00000 n
0000040423 00000 n
0000040572 00000 n
0000040682 00000 n
0000040789 00000 n
0000040943 00000 n
0000041054 00000 n
0000041171 00000 n
0000041287 00000 n
0000041451 00000 n
0000041557 00000 n
0000041676 00000 n
0000041791 00000 n
0000041895 00000 n
0000042051 00000 n
0000042160 00000 n
0000042275 00000 n
0000042387 00000 n
0000042486 00000 n
0000042633 00000 n
0000042730 00000 n
0000042830 00000 n
0000042988 00000 n
0000043128 00000 n
0000043228 00000 n
0000043335 00000 n
0000043485 00000 n
0000043585 00000 n
0000043692 00000 n
0000043840 00000 n
0000043940 00000 n
0000044047 00000 n
0000044197 00000 n
0000044297 00000 n
0000044404 00000 n
0000044550 00000 n
0000044650 00000 n
0000044757 00000 n
0000044908 00000 n
0000045008 00000 n
0000045115 00000 n
0000045263 00000 n
0000045363 00000 n
0000045470 00000 n
0000045620 00000 n
0000045720 00000 n
0000045827 00000 n
0000045959 00000 n
0000046066 00000 n
0000046165 00000 n
0000046283 00000 n
trailer
<</Size 279/Root 278 0 R/Info 1 0 R/ID[<5a5e48cf86dd73f9403df5718117ca06><5a5e48cf86dd73f9403df5718117ca06>]>>
<</Size 279/Root 278 0 R/Info 1 0 R/ID[<428a2db2825c2944c123d3597710d8f1><428a2db2825c2944c123d3597710d8f1>]>>
startxref
46508
46510
%%EOF
+1 -1
Ver Arquivo
@@ -127,7 +127,7 @@ following sections: </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 Implementation of IPP </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>
+126 -124
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:20000824182228Z)/Title( CUPS Interface 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:20000731155319Z)/Title( CUPS Interface 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/Times-Roman/Encoding 2 0 R>>endobj
@@ -289,12 +289,14 @@ endobj
xÚµ˜KSãH Çï|
ÙªÄãGâ7 À°5Ylæ´ãt‚·b;k;ÅðíGêöCYB;¶¨
ÕÉÏjEú·¤Î¿'˜øggƒãB’\D'ß®°Mˆ–ø‰ëù-NmxKQŠ<ÕÑ?±<…Œ‰aKȰàòq¬H¶™Èë¸N‹\á°¬·=Ã%<z°,Öëâ%ÍWêÁÒ
Êv×<½BýŒoµÌ™2œ4†mÛ®1!ÛÛ®»;ŸÒãËûùØ2¬3µße‘/ÓÕ¶TûÝÇy¼dæë8ßµŽ[Žúžï¿Í˜ñðµªE·y-Êeœ˜‰*]åô/)ÓMm1çþßf›µèV,?ÿ¸ÑðüžŒ¿ZÏ‹eýÎYš§U*ÊŠ´×GØßKký+âÎßq}^«2Î2ÒÖÑ~‡ûüE²-ÓúÏĦ(ë#ìFó}v#Q«¼ðñ0<Vâ3‰û¹7q?Ñ&éíMæÚ¢0V§Ñ±Õi´qñ£~eWª«B^äãÊP9ðé²p˜†‰¥^,zy¸Áh˜àø:’ëc5S5„{hd¸™oøZܲ\ÎOyFdXŽížÈÛ¶áéyF ?õ0NZž8¶9à'w­p:SßpzÞ›ìØ¿x“¯r½~°u9þD è|Q<áñ/ª:”âÄJR æj…ët-àº(³¸†p#’t™&²†Ž:qO Ç ©ôûšÝ¾­ºÆzùöiÔ器ÄV]r¡SWC7êÒàºZÞ¥§åÙ·lн†çòN`Lõ<#÷(7=@6=KØ7Ù¼‹óÕÛt?Œ zNË\-RÊà±Icµ›èüY<Aœ/:ù„¢†¡f…êCµí}“eô*OŠÕ52•q^}¸t¶ºÞOþf.Äqvî‹…XK‡B‘Åy&|9Â͉ÌùT
@.öK„ø^÷è~štÌœTmmÒŸŽgò¾¬t~#`üú6§Jß×—ø®Œà.ÍE_«b‘a Â!¦.býåuÈ,d,©…&K--“ £€Q´­œ”¥c¢åAUn‚Q×òŒ@Þ£šªåAYøÏ ê¡äs'øÃª±[e˜TcO]oÔÎÐ7E¼®pn*ñ «G.šÎGåæÿÓFÌìt$:5´’‰†fæ ÇH=Î Ò‘7à 'HGže-ÏšÅ\Œ’ŽçéÈ°Ï ê®Rµ:žÈ»4ÝjyF ïOâÉ šõ¨÷÷ü¦R²iÆk!%Š7ër›Ô[œåñÒJoômH/ÖÓ΄^柵KÃg+j¹Ð‰º¡•f54¨8ç‰Ô§”ëxF ÐÝKË3‚DJºŽç]0’¬Žg‰¨ã;5|&#l‘÷ñfCy~õ‹9ÜÍgR18Ët¹¯¾¾ÆM-y'QÙ– Ze[C3€jœCCƒs‚zÙ ïqÞ¶†xN¨ôêÝç¥×¡ôvüéÚê¾&ÓëZâx]‹_µq¼ï²
ã1|"9²~}‚¿YÕB—à†VùÓÐ  ‘Õ£ipNÐê8à 5¬xZžªÉèýáDÖœF-Ïn\ªF€ œ ‰Q8ÜPÆá|‹Åž®%²‡œÁE\¥‰<ö³tE¿˜'‰¨ª÷ºÅîãª3ø­RpÛq·ïãžø&~“>rýuòHÒU'endstream
Êv×<½BýŒoµÌ™2œ4†mÛ®1!ÛÛ®»;ŸÒãËûùØ2¬3µße‘/ÓÕ¶TûÝÇy¼dæë8ßµŽ[Žúžï¿Í˜ñðµªE·y-Êeœ˜‰*]åô/)ÓMm1çþßf›u¯b øñÇm†ç÷dÓøÕ:^,ë—¸p¾ÈÒ<­jŒOQVŸm¼>ÂþnXZë_ŽpþŽëó²X•q–‘´Žö;|Øçw(’m™Ö¯x$6EYa7šï³‰êXá…ï„ᱟIÜϽ‰û‰6Ioo2×Ö„±:ŒŽ­£õ³(»ÂPXò"ï
ÈOW…«èÄ4L¬|ôbÑËà Ö?ÃÇwБ \‹™Z¬!ÜC3 ÃÍ|Ã×â–år~2È3"Ãjlðœ@Þ¶ OÏ3ù©‡qÒòŒÈÀ±Í8¼k „Ó™ú†ÓóÞdÇþÅ›|•+èõƒËñ'J@ç‹â QÕ¡'V‚”*0W+\§k×E™Å5„‘¤Ë4‘5tÔ‰{b8I¥ß×ìömÕ5öÐË·ÇH£.ÏD%¶ê’ ººQ—oÔÕò.8-Ï̾eSì5<'wcªç¼G¹éù²éYêľɿ]œ¯¶Ø¥ûydÑsZ.àj‘RM«}ØDÏàÏâ â|ÑÉ'5üØ5*Tª¥hï›,£WyR,¨®‘ᨌóêà ¤³E­_Î*Tào¶éBgç¾Xˆµt(Yœ×irÀ—Ó(ܜȜO¥äb¿Dïuî§@çÁÀ9AÕÖ&ýéxF ïËÚ¨ãAç'0Æ osªôýp}‰ïzÁîÒ\ôµ*Ö bê")Ö_^‡ìÀB¶É’Zh²ÔÒ2 :šÀ9AY
0&ZžTå&u-Ïä=ª©Zž”Õé€ÿœ Jñ×òŒ@>0w‚?¬;°U†I5öÔõFí }SÄë
禲ºpä¢é|Tnþ?aÄÌNGr¡ÓQC+™hh`ÞpŒÔ㜠yÎp‚täàYÖòŒ YÌÅ(éxNŽüûœ î*U«ã¼KÓ­–gòþt žœ YzÏ S/`*õGð R¢x€°.·I½ÅY/­ôF߆ôb=íLèeþQ»4|¶¢– ¨ZiVC3€ŠãqNH}J¹Žgòݽ´<#H¤4 ëxNÐ# ÉêxFÐh‘ˆ:þ¹SÃg2Âyo6”ç'Q¿‘ÃÝ|&ƒ³L—ûêëkÜÔ’w•m¹ÐÉ¡¡U¶54¨Æ9T148'¨— òçmkˆç„J¯Þ}NPzJoÇÞ©­îk2½®åŽàû+Ž×µøU«ÑÇû.«0Ã÷(’#ë×'Øñû‘U-t nh•? ÍY=
ç þ€3œPʧå9¡šŒÞNdÍiÔòŒ áÆ¥jÔñ ú‘à eηXìéZ"{È\ÄUšÈc?KWô‹Ùy’ˆªz¯[ì>®:ƒß*·wûþ÷'î‰oâW0é#§Ð_'¿VÐTÂendstream
endobj
152 0 obj
1328
1330
endobj
153 0 obj<</Type/Page/Parent 137 0 R/Contents 154 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F8 7 0 R>>>>>>endobj
154 0 obj<</Length 155 0 R/Filter/FlateDecode>>stream
@@ -753,125 +755,125 @@ xref
0000021231 00000 n
0000021252 00000 n
0000021407 00000 n
0000022806 00000 n
0000022828 00000 n
0000022941 00000 n
0000023132 00000 n
0000023153 00000 n
0000023302 00000 n
0000024387 00000 n
0000024409 00000 n
0000024559 00000 n
0000025643 00000 n
0000025665 00000 n
0000025805 00000 n
0000027067 00000 n
0000027089 00000 n
0000027252 00000 n
0000028520 00000 n
0000028542 00000 n
0000028700 00000 n
0000030058 00000 n
0000030080 00000 n
0000030220 00000 n
0000031794 00000 n
0000031816 00000 n
0000031938 00000 n
0000033711 00000 n
0000033733 00000 n
0000033864 00000 n
0000035509 00000 n
0000035531 00000 n
0000035662 00000 n
0000036479 00000 n
0000036500 00000 n
0000036613 00000 n
0000036807 00000 n
0000036828 00000 n
0000036986 00000 n
0000038187 00000 n
0000038209 00000 n
0000038349 00000 n
0000039463 00000 n
0000039485 00000 n
0000039607 00000 n
0000040371 00000 n
0000040392 00000 n
0000040514 00000 n
0000041363 00000 n
0000041384 00000 n
0000041547 00000 n
0000043142 00000 n
0000043164 00000 n
0000043286 00000 n
0000044851 00000 n
0000044873 00000 n
0000045027 00000 n
0000046383 00000 n
0000046405 00000 n
0000046536 00000 n
0000046792 00000 n
0000046813 00000 n
0000046962 00000 n
0000047644 00000 n
0000047665 00000 n
0000047778 00000 n
0000047971 00000 n
0000047992 00000 n
0000048132 00000 n
0000048800 00000 n
0000048821 00000 n
0000048934 00000 n
0000049124 00000 n
0000049145 00000 n
0000049299 00000 n
0000051762 00000 n
0000051784 00000 n
0000051897 00000 n
0000052067 00000 n
0000052087 00000 n
0000052142 00000 n
0000052247 00000 n
0000052391 00000 n
0000052497 00000 n
0000052617 00000 n
0000052726 00000 n
0000052875 00000 n
0000052985 00000 n
0000053092 00000 n
0000053250 00000 n
0000053397 00000 n
0000053516 00000 n
0000053637 00000 n
0000053756 00000 n
0000053907 00000 n
0000054011 00000 n
0000054115 00000 n
0000054232 00000 n
0000054409 00000 n
0000054520 00000 n
0000054642 00000 n
0000054799 00000 n
0000054905 00000 n
0000055022 00000 n
0000055129 00000 n
0000055287 00000 n
0000055397 00000 n
0000055524 00000 n
0000055679 00000 n
0000055773 00000 n
0000055898 00000 n
0000056019 00000 n
0000056138 00000 n
0000056269 00000 n
0000056402 00000 n
0000056523 00000 n
0000056637 00000 n
0000056771 00000 n
0000056868 00000 n
0000056968 00000 n
0000022808 00000 n
0000022830 00000 n
0000022943 00000 n
0000023134 00000 n
0000023155 00000 n
0000023304 00000 n
0000024389 00000 n
0000024411 00000 n
0000024561 00000 n
0000025645 00000 n
0000025667 00000 n
0000025807 00000 n
0000027069 00000 n
0000027091 00000 n
0000027254 00000 n
0000028522 00000 n
0000028544 00000 n
0000028702 00000 n
0000030060 00000 n
0000030082 00000 n
0000030222 00000 n
0000031796 00000 n
0000031818 00000 n
0000031940 00000 n
0000033713 00000 n
0000033735 00000 n
0000033866 00000 n
0000035511 00000 n
0000035533 00000 n
0000035664 00000 n
0000036481 00000 n
0000036502 00000 n
0000036615 00000 n
0000036809 00000 n
0000036830 00000 n
0000036988 00000 n
0000038189 00000 n
0000038211 00000 n
0000038351 00000 n
0000039465 00000 n
0000039487 00000 n
0000039609 00000 n
0000040373 00000 n
0000040394 00000 n
0000040516 00000 n
0000041365 00000 n
0000041386 00000 n
0000041549 00000 n
0000043144 00000 n
0000043166 00000 n
0000043288 00000 n
0000044853 00000 n
0000044875 00000 n
0000045029 00000 n
0000046385 00000 n
0000046407 00000 n
0000046538 00000 n
0000046794 00000 n
0000046815 00000 n
0000046964 00000 n
0000047646 00000 n
0000047667 00000 n
0000047780 00000 n
0000047973 00000 n
0000047994 00000 n
0000048134 00000 n
0000048802 00000 n
0000048823 00000 n
0000048936 00000 n
0000049126 00000 n
0000049147 00000 n
0000049301 00000 n
0000051764 00000 n
0000051786 00000 n
0000051899 00000 n
0000052069 00000 n
0000052089 00000 n
0000052144 00000 n
0000052249 00000 n
0000052393 00000 n
0000052499 00000 n
0000052619 00000 n
0000052728 00000 n
0000052877 00000 n
0000052987 00000 n
0000053094 00000 n
0000053252 00000 n
0000053399 00000 n
0000053518 00000 n
0000053639 00000 n
0000053758 00000 n
0000053909 00000 n
0000054013 00000 n
0000054117 00000 n
0000054234 00000 n
0000054411 00000 n
0000054522 00000 n
0000054644 00000 n
0000054801 00000 n
0000054907 00000 n
0000055024 00000 n
0000055131 00000 n
0000055289 00000 n
0000055399 00000 n
0000055526 00000 n
0000055681 00000 n
0000055775 00000 n
0000055900 00000 n
0000056021 00000 n
0000056140 00000 n
0000056271 00000 n
0000056404 00000 n
0000056525 00000 n
0000056639 00000 n
0000056773 00000 n
0000056870 00000 n
0000056970 00000 n
trailer
<</Size 269/Root 268 0 R/Info 1 0 R/ID[<6f111f10efcbd1e9c50bd9510a479cba><6f111f10efcbd1e9c50bd9510a479cba>]>>
<</Size 269/Root 268 0 R/Info 1 0 R/ID[<f658af3d54c372b368f20926716db7dd><f658af3d54c372b368f20926716db7dd>]>>
startxref
57195
57197
%%EOF
+1 -1
Ver Arquivo
@@ -233,7 +233,7 @@ EPSON printers are included that use these filters. </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 Implementation of IPP </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>
+225 -223
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:20000824182234Z)/Title( CUPS Implementation of IPP)/Author(Easy Software Products)>>endobj
1 0 obj<</Producer(htmldoc 1.8.8 Copyright 1997-2000 Easy Software Products, All Rights Reserved.)/CreationDate(D:20000731155326Z)/Title( CUPS Implementation of IPP)/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
@@ -496,12 +496,14 @@ endobj
xÚµ˜KSãH Çï|
ÙªÄãGâ7 À°5Ylæ´ãt‚·b;k;ÅðíGêöCYB;¶¨
ÕÉÏjEú·¤Î¿'˜øggƒãB’\D'ß®°Mˆ–ø‰ëù-NmxKQŠ<ÕÑ?±<…Œ‰aKȰàòq¬H¶™Èë¸N‹\á°¬·=Ã%<z°,Öëâ%ÍWêÁÒ
Êv×<½BýŒoµÌ™2œ4†mÛ®1!ÛÛ®»;ŸÒãËûùØ2¬3µße‘/ÓÕ¶TûÝÇy¼dæë8ßµŽ[Žúžï¿Í˜ñðµªE·y-Êeœ˜‰*]åô/)ÓMm1çþßf›µèV,?ÿ¸ÑðüžŒ¿ZÏ‹eýÎYš§U*ÊŠ´×GØßKký+âÎßq}^«2Î2ÒÖÑ~‡ûüE²-ÓúÏĦ(ë#ìFó}v#Q«¼ðñ0<Vâ3‰û¹7q?Ñ&éíMæÚ¢0V§Ñ±Õi´qñ£~eWª«B^äãÊP9ðé²p˜†‰¥^,zy¸Áh˜àø:’ëc5S5„{hd¸™oøZܲ\ÎOyFdXŽížÈÛ¶áéyF ?õ0NZž8¶9à'w­p:SßpzÞ›ìØ¿x“¯r½~°u9þD è|Q<áñ/ª:”âÄJR æj…ët-àº(³¸†p#’t™&²†Ž:qO Ç ©ôûšÝ¾­ºÆzùöiÔ器ÄV]r¡SWC7êÒàºZÞ¥§åÙ·lн†çòN`Lõ<#÷(7=@6=KØ7Ù¼‹óÕÛt?Œ zNË\-RÊà±Icµ›èüY<Aœ/:ù„¢†¡f…êCµí}“eô*OŠÕ52•q^}¸t¶ºÞOþf.Äqvî‹…XK‡B‘Åy&|9Â͉ÌùT
@.öK„ø^÷è~štÌœTmmÒŸŽgò¾¬t~#`üú6§Jß×—ø®Œà.ÍE_«b‘a Â!¦.býåuÈ,d,©…&K--“ £€Q´­œ”¥c¢åAUn‚Q×òŒ@Þ£šªåAYøÏ ê¡äs'øÃª±[e˜TcO]oÔÎÐ7E¼®pn*ñ «G.šÎGåæÿÓFÌìt$:5´’‰†fæ ÇH=Î Ò‘7à 'HGže-ÏšÅ\Œ’ŽçéÈ°Ï ê®Rµ:žÈ»4ÝjyF ïOâÉ šõ¨÷÷ü¦R²iÆk!%Š7ër›Ô[œåñÒJoômH/ÖÓ΄^柵KÃg+j¹Ð‰º¡•f54¨8ç‰Ô§”ëxF ÐÝKË3‚DJºŽç]0’¬Žg‰¨ã;5|&#l‘÷ñfCy~õ‹9ÜÍgR18Ët¹¯¾¾ÆM-y'QÙ– Ze[C3€jœCCƒs‚zÙ ïqÞ¶†xN¨ôêÝç¥×¡ôvüéÚê¾&ÓëZâx]‹_µq¼ï²
ã1|"9²~}‚¿YÕB—à†VùÓÐ  ‘Õ£ipNÐê8à 5¬xZžªÉèýáDÖœF-Ïn\ªF€ œ ‰Q8ÜPÆá|‹Åž®%²‡œÁE\¥‰<ö³tE¿˜'‰¨ª÷ºÅîãª3ø­RpÛq·ïãžø&~“>rýuòHÒU'endstream
Êv×<½BýŒoµÌ™2œ4†mÛ®1!ÛÛ®»;ŸÒãËûùØ2¬3µße‘/ÓÕ¶TûÝÇy¼dæë8ßµŽ[Žúžï¿Í˜ñðµªE·y-Êeœ˜‰*]åô/)ÓMm1çþßf›u¯b øñÇm†ç÷dÓøÕ:^,ë—¸p¾ÈÒ<­jŒOQVŸm¼>ÂþnXZë_ŽpþŽëó²X•q–‘´Žö;|Øçw(’m™Ö¯x$6EYa7šï³‰êXá…ï„ᱟIÜϽ‰û‰6Ioo2×Ö„±:ŒŽ­£õ³(»ÂPXò"ï
ÈOW…«èÄ4L¬|ôbÑËà Ö?ÃÇwБ \‹™Z¬!ÜC3 ÃÍ|Ã×â–år~2È3"Ãjlðœ@Þ¶ OÏ3ù©‡qÒòŒÈÀ±Í8¼k „Ó™ú†ÓóÞdÇþÅ›|•+èõƒËñ'J@ç‹â QÕ¡'V‚”*0W+\§k×E™Å5„‘¤Ë4‘5tÔ‰{b8I¥ß×ìömÕ5öÐË·ÇH£.ÏD%¶ê’ ººQ—oÔÕò.8-Ï̾eSì5<'wcªç¼G¹éù²éYêľɿ]œ¯¶Ø¥ûydÑsZ.àj‘RM«}ØDÏàÏâ â|ÑÉ'5üØ5*Tª¥hï›,£WyR,¨®‘ᨌóêà ¤³E­_Î*Tào¶éBgç¾Xˆµt(Yœ×irÀ—Ó(ܜȜO¥äb¿Dïuî§@çÁÀ9AÕÖ&ýéxF ïËÚ¨ãAç'0Æ osªôýp}‰ïzÁîÒ\ôµ*Ö bê")Ö_^‡ìÀB¶É’Zh²ÔÒ2 :šÀ9AY
0&ZžTå&u-Ïä=ª©Zž”Õé€ÿœ Jñ×òŒ@>0w‚?¬;°U†I5öÔõFí }SÄë
禲ºpä¢é|Tnþ?aÄÌNGr¡ÓQC+™hh`ÞpŒÔ㜠yÎp‚täàYÖòŒ YÌÅ(éxNŽüûœ î*U«ã¼KÓ­–gòþt žœ YzÏ S/`*õGð R¢x€°.·I½ÅY/­ôF߆ôb=íLèeþQ»4|¶¢– ¨ZiVC3€ŠãqNH}J¹Žgòݽ´<#H¤4 ëxNÐ# ÉêxFÐh‘ˆ:þ¹SÃg2Âyo6”ç'Q¿‘ÃÝ|&ƒ³L—ûêëkÜÔ’w•m¹ÐÉ¡¡U¶54¨Æ9T148'¨— òçmkˆç„J¯Þ}NPzJoÇÞ©­îk2½®åŽàû+Ž×µøU«ÑÇû.«0Ã÷(’#ë×'Øñû‘U-t nh•? ÍY=
ç þ€3œPʧå9¡šŒÞNdÍiÔòŒ áÆ¥jÔñ ú‘à eηXìéZ"{È\ÄUšÈc?KWô‹Ùy’ˆªz¯[ì>®:ƒß*·wûþ÷'î‰oâW0é#§Ð_'¿VÐTÂendstream
endobj
280 0 obj
1328
1330
endobj
281 0 obj<</Type/Page/Parent 265 0 R/Contents 282 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F8 7 0 R>>>>>>endobj
282 0 obj<</Length 283 0 R/Filter/FlateDecode>>stream
@@ -1265,224 +1267,224 @@ xref
0000032989 00000 n
0000033010 00000 n
0000033164 00000 n
0000034563 00000 n
0000034585 00000 n
0000034698 00000 n
0000034884 00000 n
0000034905 00000 n
0000035054 00000 n
0000036282 00000 n
0000036304 00000 n
0000036426 00000 n
0000037461 00000 n
0000037482 00000 n
0000037631 00000 n
0000038584 00000 n
0000038605 00000 n
0000038754 00000 n
0000039486 00000 n
0000039507 00000 n
0000039656 00000 n
0000040585 00000 n
0000040606 00000 n
0000040755 00000 n
0000041660 00000 n
0000041681 00000 n
0000041812 00000 n
0000042540 00000 n
0000042561 00000 n
0000042701 00000 n
0000043538 00000 n
0000043559 00000 n
0000043699 00000 n
0000044497 00000 n
0000044518 00000 n
0000044649 00000 n
0000045548 00000 n
0000045569 00000 n
0000045700 00000 n
0000046312 00000 n
0000046333 00000 n
0000046473 00000 n
0000047253 00000 n
0000047274 00000 n
0000047405 00000 n
0000048230 00000 n
0000048251 00000 n
0000048391 00000 n
0000049236 00000 n
0000049257 00000 n
0000049388 00000 n
0000050053 00000 n
0000050074 00000 n
0000050205 00000 n
0000050927 00000 n
0000050948 00000 n
0000051079 00000 n
0000051761 00000 n
0000051782 00000 n
0000051913 00000 n
0000052764 00000 n
0000052785 00000 n
0000052916 00000 n
0000053761 00000 n
0000053782 00000 n
0000053922 00000 n
0000054538 00000 n
0000054559 00000 n
0000054699 00000 n
0000055862 00000 n
0000055884 00000 n
0000056015 00000 n
0000057222 00000 n
0000057244 00000 n
0000057384 00000 n
0000058387 00000 n
0000058408 00000 n
0000058557 00000 n
0000059565 00000 n
0000059586 00000 n
0000059726 00000 n
0000060712 00000 n
0000060733 00000 n
0000060882 00000 n
0000062068 00000 n
0000062090 00000 n
0000062230 00000 n
0000062830 00000 n
0000062851 00000 n
0000062964 00000 n
0000063185 00000 n
0000063206 00000 n
0000063346 00000 n
0000064013 00000 n
0000064034 00000 n
0000064147 00000 n
0000064332 00000 n
0000064353 00000 n
0000064507 00000 n
0000066916 00000 n
0000066938 00000 n
0000067093 00000 n
0000070007 00000 n
0000070029 00000 n
0000070184 00000 n
0000071672 00000 n
0000071694 00000 n
0000071807 00000 n
0000071973 00000 n
0000071993 00000 n
0000072048 00000 n
0000072153 00000 n
0000072297 00000 n
0000072403 00000 n
0000072523 00000 n
0000072632 00000 n
0000072781 00000 n
0000072891 00000 n
0000072998 00000 n
0000073145 00000 n
0000073245 00000 n
0000073356 00000 n
0000073506 00000 n
0000073653 00000 n
0000073764 00000 n
0000073876 00000 n
0000074037 00000 n
0000074149 00000 n
0000074262 00000 n
0000074431 00000 n
0000074551 00000 n
0000074672 00000 n
0000074839 00000 n
0000074957 00000 n
0000075076 00000 n
0000075244 00000 n
0000075363 00000 n
0000075483 00000 n
0000075650 00000 n
0000075768 00000 n
0000075887 00000 n
0000076057 00000 n
0000076178 00000 n
0000076300 00000 n
0000076467 00000 n
0000076585 00000 n
0000076704 00000 n
0000076869 00000 n
0000076985 00000 n
0000077102 00000 n
0000077271 00000 n
0000077391 00000 n
0000077512 00000 n
0000077680 00000 n
0000077799 00000 n
0000077919 00000 n
0000078087 00000 n
0000078206 00000 n
0000078326 00000 n
0000078494 00000 n
0000078613 00000 n
0000078733 00000 n
0000078901 00000 n
0000079020 00000 n
0000079140 00000 n
0000079305 00000 n
0000079421 00000 n
0000079538 00000 n
0000079690 00000 n
0000079806 00000 n
0000079923 00000 n
0000080072 00000 n
0000080217 00000 n
0000080341 00000 n
0000080475 00000 n
0000080619 00000 n
0000080731 00000 n
0000080896 00000 n
0000081011 00000 n
0000081149 00000 n
0000081282 00000 n
0000081407 00000 n
0000081533 00000 n
0000081668 00000 n
0000081802 00000 n
0000081936 00000 n
0000082083 00000 n
0000082240 00000 n
0000082366 00000 n
0000082506 00000 n
0000082644 00000 n
0000082783 00000 n
0000082917 00000 n
0000083054 00000 n
0000083191 00000 n
0000083325 00000 n
0000083457 00000 n
0000083588 00000 n
0000083727 00000 n
0000083864 00000 n
0000083975 00000 n
0000084130 00000 n
0000084264 00000 n
0000084395 00000 n
0000084536 00000 n
0000084654 00000 n
0000084813 00000 n
0000084964 00000 n
0000085130 00000 n
0000085264 00000 n
0000085403 00000 n
0000085561 00000 n
0000085705 00000 n
0000085857 00000 n
0000085986 00000 n
0000086106 00000 n
0000086240 00000 n
0000086337 00000 n
0000086437 00000 n
0000034565 00000 n
0000034587 00000 n
0000034700 00000 n
0000034886 00000 n
0000034907 00000 n
0000035056 00000 n
0000036284 00000 n
0000036306 00000 n
0000036428 00000 n
0000037463 00000 n
0000037484 00000 n
0000037633 00000 n
0000038586 00000 n
0000038607 00000 n
0000038756 00000 n
0000039488 00000 n
0000039509 00000 n
0000039658 00000 n
0000040587 00000 n
0000040608 00000 n
0000040757 00000 n
0000041662 00000 n
0000041683 00000 n
0000041814 00000 n
0000042542 00000 n
0000042563 00000 n
0000042703 00000 n
0000043540 00000 n
0000043561 00000 n
0000043701 00000 n
0000044499 00000 n
0000044520 00000 n
0000044651 00000 n
0000045550 00000 n
0000045571 00000 n
0000045702 00000 n
0000046314 00000 n
0000046335 00000 n
0000046475 00000 n
0000047255 00000 n
0000047276 00000 n
0000047407 00000 n
0000048232 00000 n
0000048253 00000 n
0000048393 00000 n
0000049238 00000 n
0000049259 00000 n
0000049390 00000 n
0000050055 00000 n
0000050076 00000 n
0000050207 00000 n
0000050929 00000 n
0000050950 00000 n
0000051081 00000 n
0000051763 00000 n
0000051784 00000 n
0000051915 00000 n
0000052766 00000 n
0000052787 00000 n
0000052918 00000 n
0000053763 00000 n
0000053784 00000 n
0000053924 00000 n
0000054540 00000 n
0000054561 00000 n
0000054701 00000 n
0000055864 00000 n
0000055886 00000 n
0000056017 00000 n
0000057224 00000 n
0000057246 00000 n
0000057386 00000 n
0000058389 00000 n
0000058410 00000 n
0000058559 00000 n
0000059567 00000 n
0000059588 00000 n
0000059728 00000 n
0000060714 00000 n
0000060735 00000 n
0000060884 00000 n
0000062070 00000 n
0000062092 00000 n
0000062232 00000 n
0000062832 00000 n
0000062853 00000 n
0000062966 00000 n
0000063187 00000 n
0000063208 00000 n
0000063348 00000 n
0000064015 00000 n
0000064036 00000 n
0000064149 00000 n
0000064334 00000 n
0000064355 00000 n
0000064509 00000 n
0000066918 00000 n
0000066940 00000 n
0000067095 00000 n
0000070009 00000 n
0000070031 00000 n
0000070186 00000 n
0000071674 00000 n
0000071696 00000 n
0000071809 00000 n
0000071975 00000 n
0000071995 00000 n
0000072050 00000 n
0000072155 00000 n
0000072299 00000 n
0000072405 00000 n
0000072525 00000 n
0000072634 00000 n
0000072783 00000 n
0000072893 00000 n
0000073000 00000 n
0000073147 00000 n
0000073247 00000 n
0000073358 00000 n
0000073508 00000 n
0000073655 00000 n
0000073766 00000 n
0000073878 00000 n
0000074039 00000 n
0000074151 00000 n
0000074264 00000 n
0000074433 00000 n
0000074553 00000 n
0000074674 00000 n
0000074841 00000 n
0000074959 00000 n
0000075078 00000 n
0000075246 00000 n
0000075365 00000 n
0000075485 00000 n
0000075652 00000 n
0000075770 00000 n
0000075889 00000 n
0000076059 00000 n
0000076180 00000 n
0000076302 00000 n
0000076469 00000 n
0000076587 00000 n
0000076706 00000 n
0000076871 00000 n
0000076987 00000 n
0000077104 00000 n
0000077273 00000 n
0000077393 00000 n
0000077514 00000 n
0000077682 00000 n
0000077801 00000 n
0000077921 00000 n
0000078089 00000 n
0000078208 00000 n
0000078328 00000 n
0000078496 00000 n
0000078615 00000 n
0000078735 00000 n
0000078903 00000 n
0000079022 00000 n
0000079142 00000 n
0000079307 00000 n
0000079423 00000 n
0000079540 00000 n
0000079692 00000 n
0000079808 00000 n
0000079925 00000 n
0000080074 00000 n
0000080219 00000 n
0000080343 00000 n
0000080477 00000 n
0000080621 00000 n
0000080733 00000 n
0000080898 00000 n
0000081013 00000 n
0000081151 00000 n
0000081284 00000 n
0000081409 00000 n
0000081535 00000 n
0000081670 00000 n
0000081804 00000 n
0000081938 00000 n
0000082085 00000 n
0000082242 00000 n
0000082368 00000 n
0000082508 00000 n
0000082646 00000 n
0000082785 00000 n
0000082919 00000 n
0000083056 00000 n
0000083193 00000 n
0000083327 00000 n
0000083459 00000 n
0000083590 00000 n
0000083729 00000 n
0000083866 00000 n
0000083977 00000 n
0000084132 00000 n
0000084266 00000 n
0000084397 00000 n
0000084538 00000 n
0000084656 00000 n
0000084815 00000 n
0000084966 00000 n
0000085132 00000 n
0000085266 00000 n
0000085405 00000 n
0000085563 00000 n
0000085707 00000 n
0000085859 00000 n
0000085988 00000 n
0000086108 00000 n
0000086242 00000 n
0000086339 00000 n
0000086439 00000 n
trailer
<</Size 496/Root 495 0 R/Info 1 0 R/ID[<b78a9bcdf8c9212682177c5bbebab4ff><b78a9bcdf8c9212682177c5bbebab4ff>]>>
<</Size 496/Root 495 0 R/Info 1 0 R/ID[<d6a9884e48339a8c4e4ec4c671a9d8b5><d6a9884e48339a8c4e4ec4c671a9d8b5>]>>
startxref
86665
86667
%%EOF
+1 -1
Ver Arquivo
@@ -7,7 +7,7 @@
<UL>
<LI>CUPS-CMP-1.1: CUPS Configuration Management Plan
<LI>CUPS-IDD-1.1: CUPS System Interface Design Description
<LI>CUPS-IPP-1.1: CUPS Implementation of IPP
<LI>CUPS-IPP-1.1: CUPS Implmentation of IPP
<LI>CUPS-SAM-1.1.x: CUPS Software Administrators Manual
<LI>CUPS-SDD-1.1: CUPS Software Design Description
<LI>CUPS-SPM-1.1.x: CUPS Software Programming Manual
+9 -52
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.3">
<META NAME="DOCNUMBER" CONTENT="CUPS-SAM-1.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.3<BR>
CUPS-SAM-1.1.1<BR>
Easy Software Products<BR>
Copyright 1997-2000, All Rights Reserved<BR>
</CENTER>
@@ -128,7 +128,6 @@ Copyright 1997-2000, All Rights Reserved<BR>
<LI><A HREF="#Deny">Deny</A></LI>
<LI><A HREF="#DocumentRoot">DocumentRoot</A></LI>
<LI><A HREF="#ErrorLog">ErrorLog</A></LI>
<LI><A HREF="#FilterLimit">FilterLimit</A></LI>
<LI><A HREF="#Group">Group</A></LI>
<LI><A HREF="#HostNameLookups">HostNameLookups</A></LI>
<LI><A HREF="#ImplicitClasses">ImplicitClasses</A></LI>
@@ -146,7 +145,6 @@ Copyright 1997-2000, All Rights Reserved<BR>
<LI><A HREF="#PreserveJobHistory">PreserveJobHistory</A></LI>
<LI><A HREF="#PreserveJobFiles">PreserveJobFiles</A></LI>
<LI><A HREF="#Printcap">Printcap</A></LI>
<LI><A HREF="#RemoteRoot">RemoteRoot</A></LI>
<LI><A HREF="#RequestRoot">RequestRoot</A></LI>
<LI><A HREF="#RIPCache">RIPCache</A></LI>
<LI><A HREF="#ServerAdmin">ServerAdmin</A></LI>
@@ -247,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.3. </P>
TM</SUP>&quot;), version 1.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
@@ -1040,7 +1038,6 @@ determine how the server operates: </P>
<LI><A HREF="#Deny"><CODE>Deny</CODE></A></LI>
<LI><A HREF="#DocumentRoot"><CODE>DocumentRoot</CODE></A></LI>
<LI><A HREF="#ErrorLog"><CODE>ErrorLog</CODE></A></LI>
<LI><A HREF="#FilterLimit"><CODE>FilterLimit</CODE></A></LI>
<LI><A HREF="#Group"><CODE>Group</CODE></A></LI>
<LI><A HREF="#HostNameLookups"><CODE>HostNameLookups</CODE></A></LI>
<LI><A HREF="#ImplicitClasses"><CODE>ImplicitClasses</CODE></A></LI>
@@ -1059,7 +1056,6 @@ determine how the server operates: </P>
<LI><A HREF="#PreserveJobFiles"><CODE>PreserveJobFiles</CODE></A></LI>
<LI><A HREF="#PreserveJobHistory"><CODE>PreserveJobHistory</CODE></A></LI>
<LI><A HREF="#Printcap"><CODE>Printcap</CODE></A></LI>
<LI><A HREF="#RemoteRoot"><CODE>RemoteRoot</CODE></A></LI>
<LI><A HREF="#RequestRoot"><CODE>RequestRoot</CODE></A></LI>
<LI><A HREF="#RIPCache"><CODE>RIPCache</CODE></A></LI>
<LI><A HREF="#ServerAdmin"><CODE>ServerAdmin</CODE></A></LI>
@@ -1601,28 +1597,6 @@ default error log file is <VAR>/var/log/cups/error_log</VAR>. </P>
to the system log instead of a plain file.
<!-- NEED 3in ---->
</P>
<H3><A NAME="FilterLimit">FilterLimit</A></H3>
<HR>
<H4>Examples</H4>
<UL>
<PRE>
FilterLimit 0
FilterLimit 200
FilterLimit 1000
</PRE>
</UL>
<H4>Description</H4>
<P>The <CODE>FilterLimit</CODE> directive sets the maximum cost of all
running job filters. It can be used to limit the number of filter
programs that are run on a server to minimize disk, memory, and CPU
resource problems. A limit of 0 disables filter limiting. </P>
<P>An average print to a non-PostScript printer needs a filter limit of
about 200. A PostScript printer needs about half that (100). Setting
the limit below these thresholds will effectively limit the scheduler
to printing a single job at any time. </P>
<P>The default limit is 0.
<!-- NEED 3in ---->
</P>
<H3><A NAME="Group">Group</A></H3>
<HR>
<H4>Examples</H4>
@@ -1949,31 +1923,14 @@ Printcap /etc/printcap
<H4>Description</H4>
<P>The <CODE>Printcap</CODE> directive controls whether or not a
printcap file is automatically generated and updated with a list of
available printers. If specified with no value, then no printcap file
will be generated. The default is to generate a file named <VAR>
/etc/printcap</VAR>. </P>
available printers. If specified with no value (the default), then no
printcap file will be generated. </P>
<P>When a filename is specified (e.g. <VAR>/etc/printcap</VAR>), the
printcap file is written whenever a printer is added or removed. The
printcap file can then be used by applications that are hardcoded to
look at the printcap file for the available printers.
<!-- NEED 3in ---->
</P>
<H3><A NAME="RemoteRoot">RemoteRoot</A></H3>
<HR>
<H4>Examples</H4>
<UL>
<PRE>
RemoteRoot remroot
RemoteRoot root
</PRE>
</UL>
<H4>Description</H4>
<P>The <CODE>RemoteRoot</CODE> directive sets the username for
unauthenticated root requests from remote hosts. The default username
is <VAR>remroot</VAR>. Setting <CODE>RemoteRoot</CODE> to <VAR>root</VAR>
effectively disables this security mechanism.
<!-- NEED 3in ---->
</P>
<H3><A NAME="RequestRoot">RequestRoot</A></H3>
<HR>
<H4>Examples</H4>
@@ -2373,10 +2330,10 @@ Password again: <B>(password) ENTER</B> [password is not echoed]
<!-- NEW PAGE ---->
<H2><A NAME="PRINTER_ACCOUNTING">Printer Accounting</A></H2>
<P>ESP Print Pro maintains a log of all accesses, errors, and pages
that are printed. The log files are normally stored in the <VAR>
/var/log/cups</VAR> directory. You can change this by editing the <VAR>
/etc/cups/cupsd.conf</VAR> configuration file. </P>
<P>CUPS maintains a log of all accesses, errors, and pages that are </P>
<P>The log files are normally stored in the <VAR>/var/log/cups</VAR>
directory. You can change this by editing the <VAR>/etc/cups/cupsd.conf</VAR>
configuration file. </P>
<H3><A NAME="7_6_1">The access_log File</A></H3>
<P>The <VAR>access_log</VAR> file lists each HTTP resource that is
accessed by a web browser or CUPS/IPP client. Each line is in the
+2216 -2305
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+10 -57
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.3">
<META NAME="DOCNUMBER" CONTENT="CUPS-SAM-1.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.3.
("CUPS<SUP>TM</SUP>"), version 1.1.1.
<EMBED SRC="system-overview.shtml">
@@ -848,7 +848,6 @@ determine how the server operates:
<LI><A HREF="#Deny"><CODE>Deny</CODE></A>
<LI><A HREF="#DocumentRoot"><CODE>DocumentRoot</CODE></A>
<LI><A HREF="#ErrorLog"><CODE>ErrorLog</CODE></A>
<LI><A HREF="#FilterLimit"><CODE>FilterLimit</CODE></A>
<LI><A HREF="#Group"><CODE>Group</CODE></A>
<LI><A HREF="#HostNameLookups"><CODE>HostNameLookups</CODE></A>
<LI><A HREF="#ImplicitClasses"><CODE>ImplicitClasses</CODE></A>
@@ -873,7 +872,6 @@ determine how the server operates:
<LI><A HREF="#PreserveJobFiles"><CODE>PreserveJobFiles</CODE></A>
<LI><A HREF="#PreserveJobHistory"><CODE>PreserveJobHistory</CODE></A>
<LI><A HREF="#Printcap"><CODE>Printcap</CODE></A>
<LI><A HREF="#RemoteRoot"><CODE>RemoteRoot</CODE></A>
<LI><A HREF="#RequestRoot"><CODE>RequestRoot</CODE></A>
<LI><A HREF="#RIPCache"><CODE>RIPCache</CODE></A>
<LI><A HREF="#ServerAdmin"><CODE>ServerAdmin</CODE></A>
@@ -1538,33 +1536,6 @@ default error log file is <VAR>/var/log/cups/error_log</VAR>.
<P>The special name "syslog" can be used to send the error information
to the system log instead of a plain file.
<!-- NEED 3in -->
<H3><A NAME="FilterLimit">FilterLimit</A></H3>
<HR>
<H4>Examples</H4>
<UL><PRE>
FilterLimit 0
FilterLimit 200
FilterLimit 1000
</PRE></UL>
<H4>Description</H4>
<P>The <CODE>FilterLimit</CODE> directive sets the maximum cost
of all running job filters. It can be used to limit the number
of filter programs that are run on a server to minimize disk,
memory, and CPU resource problems. A limit of 0 disables filter
limiting.
<P>An average print to a non-PostScript printer needs a filter
limit of about 200. A PostScript printer needs about half that
(100). Setting the limit below these thresholds will effectively
limit the scheduler to printing a single job at any time.
<P>The default limit is 0.
<!-- NEED 3in -->
<H3><A NAME="Group">Group</A></H3>
<HR>
@@ -1954,34 +1925,15 @@ Printcap /etc/printcap
<H4>Description</H4>
<P>The <CODE>Printcap</CODE> directive controls whether or not a
printcap file is automatically generated and updated with a list
of available printers. If specified with no value, then no
printcap file will be generated. The default is to generate a
file named <VAR>/etc/printcap</VAR>.
printcap file is automatically generated and updated with a list of
available printers. If specified with no value (the default), then no
printcap file will be generated.
<P>When a filename is specified (e.g. <VAR>/etc/printcap</VAR>), the
printcap file is written whenever a printer is added or removed. The
printcap file can then be used by applications that are hardcoded to
look at the printcap file for the available printers.
<!-- NEED 3in -->
<H3><A NAME="RemoteRoot">RemoteRoot</A></H3>
<HR>
<H4>Examples</H4>
<UL><PRE>
RemoteRoot remroot
RemoteRoot root
</PRE></UL>
<H4>Description</H4>
<P>The <CODE>RemoteRoot</CODE> directive sets the username for
unauthenticated root requests from remote hosts. The default
username is <VAR>remroot</VAR>. Setting <CODE>RemoteRoot</CODE>
to <VAR>root</VAR> effectively disables this security mechanism.
<!-- NEED 3in -->
<H3><A NAME="RequestRoot">RequestRoot</A></H3>
<HR>
@@ -2448,10 +2400,11 @@ Password again: <B>(password) ENTER</B> [password is not echoed]
<!-- NEW PAGE -->
<H2><A NAME="PRINTER_ACCOUNTING">Printer Accounting</A></H2>
<P>ESP Print Pro maintains a log of all accesses, errors, and
pages that are printed. The log files are normally stored in the
<VAR>/var/log/cups</VAR> directory. You can change this by
editing the <VAR>/etc/cups/cupsd.conf</VAR> configuration file.
<P>CUPS maintains a log of all accesses, errors, and pages that are
<P>The log files are normally stored in the <VAR>/var/log/cups</VAR>
directory. You can change this by editing the
<VAR>/etc/cups/cupsd.conf</VAR> configuration file.
<H3>The access_log File</H3>
+1 -1
Ver Arquivo
@@ -172,7 +172,7 @@ EPSON printers are included that use these filters. </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 Implementation of IPP </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>
+138 -136
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:20000824182250Z)/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:20000731155344Z)/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,12 +385,14 @@ endobj
xÚµ˜KSãH Çï|
ÙªÄãGâ7 À°5Ylæ´ãt‚·b;k;ÅðíGêöCYB;¶¨
ÕÉÏjEú·¤Î¿'˜øggƒãB’\D'ß®°Mˆ–ø‰ëù-NmxKQŠ<ÕÑ?±<…Œ‰aKȰàòq¬H¶™Èë¸N‹\á°¬·=Ã%<z°,Öëâ%ÍWêÁÒ
Êv×<½BýŒoµÌ™2œ4†mÛ®1!ÛÛ®»;ŸÒãËûùØ2¬3µße‘/ÓÕ¶TûÝÇy¼dæë8ßµŽ[Žúžï¿Í˜ñðµªE·y-Êeœ˜‰*]åô/)ÓMm1çþßf›µèV,?ÿ¸ÑðüžŒ¿ZÏ‹eýÎYš§U*ÊŠ´×GØßKký+âÎßq}^«2Î2ÒÖÑ~‡ûüE²-ÓúÏĦ(ë#ìFó}v#Q«¼ðñ0<Vâ3‰û¹7q?Ñ&éíMæÚ¢0V§Ñ±Õi´qñ£~eWª«B^äãÊP9ðé²p˜†‰¥^,zy¸Áh˜àø:’ëc5S5„{hd¸™oøZܲ\ÎOyFdXŽížÈÛ¶áéyF ?õ0NZž8¶9à'w­p:SßpzÞ›ìØ¿x“¯r½~°u9þD è|Q<áñ/ª:”âÄJR æj…ët-àº(³¸†p#’t™&²†Ž:qO Ç ©ôûšÝ¾­ºÆzùöiÔ器ÄV]r¡SWC7êÒàºZÞ¥§åÙ·lн†çòN`Lõ<#÷(7=@6=KØ7Ù¼‹óÕÛt?Œ zNË\-RÊà±Icµ›èüY<Aœ/:ù„¢†¡f…êCµí}“eô*OŠÕ52•q^}¸t¶ºÞOþf.Äqvî‹…XK‡B‘Åy&|9Â͉ÌùT
@.öK„ø^÷è~štÌœTmmÒŸŽgò¾¬t~#`üú6§Jß×—ø®Œà.ÍE_«b‘a Â!¦.býåuÈ,d,©…&K--“ £€Q´­œ”¥c¢åAUn‚Q×òŒ@Þ£šªåAYøÏ ê¡äs'øÃª±[e˜TcO]oÔÎÐ7E¼®pn*ñ «G.šÎGåæÿÓFÌìt$:5´’‰†fæ ÇH=Î Ò‘7à 'HGže-ÏšÅ\Œ’ŽçéÈ°Ï ê®Rµ:žÈ»4ÝjyF ïOâÉ šõ¨÷÷ü¦R²iÆk!%Š7ër›Ô[œåñÒJoômH/ÖÓ΄^柵KÃg+j¹Ð‰º¡•f54¨8ç‰Ô§”ëxF ÐÝKË3‚DJºŽç]0’¬Žg‰¨ã;5|&#l‘÷ñfCy~õ‹9ÜÍgR18Ët¹¯¾¾ÆM-y'QÙ– Ze[C3€jœCCƒs‚zÙ ïqÞ¶†xN¨ôêÝç¥×¡ôvüéÚê¾&ÓëZâx]‹_µq¼ï²
ã1|"9²~}‚¿YÕB—à†VùÓÐ  ‘Õ£ipNÐê8à 5¬xZžªÉèýáDÖœF-Ïn\ªF€ œ ‰Q8ÜPÆá|‹Åž®%²‡œÁE\¥‰<ö³tE¿˜'‰¨ª÷ºÅîãª3ø­RpÛq·ïãžø&~“>rýuòHÒU'endstream
Êv×<½BýŒoµÌ™2œ4†mÛ®1!ÛÛ®»;ŸÒãËûùØ2¬3µße‘/ÓÕ¶TûÝÇy¼dæë8ßµŽ[Žúžï¿Í˜ñðµªE·y-Êeœ˜‰*]åô/)ÓMm1çþßf›u¯b øñÇm†ç÷dÓøÕ:^,ë—¸p¾ÈÒ<­jŒOQVŸm¼>ÂþnXZë_ŽpþŽëó²X•q–‘´Žö;|Øçw(’m™Ö¯x$6EYa7šï³‰êXá…ï„ᱟIÜϽ‰û‰6Ioo2×Ö„±:ŒŽ­£õ³(»ÂPXò"ï
ÈOW…«èÄ4L¬|ôbÑËà Ö?ÃÇwБ \‹™Z¬!ÜC3 ÃÍ|Ã×â–år~2È3"Ãjlðœ@Þ¶ OÏ3ù©‡qÒòŒÈÀ±Í8¼k „Ó™ú†ÓóÞdÇþÅ›|•+èõƒËñ'J@ç‹â QÕ¡'V‚”*0W+\§k×E™Å5„‘¤Ë4‘5tÔ‰{b8I¥ß×ìömÕ5öÐË·ÇH£.ÏD%¶ê’ ººQ—oÔÕò.8-Ï̾eSì5<'wcªç¼G¹éù²éYêľɿ]œ¯¶Ø¥ûydÑsZ.àj‘RM«}ØDÏàÏâ â|ÑÉ'5üØ5*Tª¥hï›,£WyR,¨®‘ᨌóêà ¤³E­_Î*Tào¶éBgç¾Xˆµt(Yœ×irÀ—Ó(ܜȜO¥äb¿Dïuî§@çÁÀ9AÕÖ&ýéxF ïËÚ¨ãAç'0Æ osªôýp}‰ïzÁîÒ\ôµ*Ö bê")Ö_^‡ìÀB¶É’Zh²ÔÒ2 :šÀ9AY
0&ZžTå&u-Ïä=ª©Zž”Õé€ÿœ Jñ×òŒ@>0w‚?¬;°U†I5öÔõFí }SÄë
禲ºpä¢é|Tnþ?aÄÌNGr¡ÓQC+™hh`ÞpŒÔ㜠yÎp‚täàYÖòŒ YÌÅ(éxNŽüûœ î*U«ã¼KÓ­–gòþt žœ YzÏ S/`*õGð R¢x€°.·I½ÅY/­ôF߆ôb=íLèeþQ»4|¶¢– ¨ZiVC3€ŠãqNH}J¹Žgòݽ´<#H¤4 ëxNÐ# ÉêxFÐh‘ˆ:þ¹SÃg2Âyo6”ç'Q¿‘ÃÝ|&ƒ³L—ûêëkÜÔ’w•m¹ÐÉ¡¡U¶54¨Æ9T148'¨— òçmkˆç„J¯Þ}NPzJoÇÞ©­îk2½®åŽàû+Ž×µøU«ÑÇû.«0Ã÷(’#ë×'Øñû‘U-t nh•? ÍY=
ç þ€3œPʧå9¡šŒÞNdÍiÔòŒ áÆ¥jÔñ ú‘à eηXìéZ"{È\ÄUšÈc?KWô‹Ùy’ˆªz¯[ì>®:ƒß*·wûþ÷'î‰oâW0é#§Ð_'¿VÐTÂendstream
endobj
220 0 obj
1328
1330
endobj
221 0 obj<</Type/Page/Parent 205 0 R/Contents 222 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F8 8 0 R>>>>>>endobj
222 0 obj<</Length 223 0 R/Filter/FlateDecode>>stream
@@ -861,137 +863,137 @@ xref
0000027260 00000 n
0000027281 00000 n
0000027436 00000 n
0000028835 00000 n
0000028857 00000 n
0000028970 00000 n
0000029160 00000 n
0000029181 00000 n
0000029331 00000 n
0000030370 00000 n
0000030391 00000 n
0000030550 00000 n
0000031481 00000 n
0000031502 00000 n
0000031633 00000 n
0000032595 00000 n
0000032616 00000 n
0000032747 00000 n
0000033671 00000 n
0000033692 00000 n
0000033842 00000 n
0000034895 00000 n
0000034916 00000 n
0000035047 00000 n
0000035793 00000 n
0000035814 00000 n
0000035945 00000 n
0000037078 00000 n
0000037100 00000 n
0000037240 00000 n
0000038194 00000 n
0000038215 00000 n
0000038346 00000 n
0000038937 00000 n
0000038958 00000 n
0000039071 00000 n
0000039260 00000 n
0000039281 00000 n
0000039421 00000 n
0000040089 00000 n
0000040110 00000 n
0000040223 00000 n
0000040412 00000 n
0000040433 00000 n
0000040587 00000 n
0000042983 00000 n
0000043005 00000 n
0000043160 00000 n
0000044798 00000 n
0000044820 00000 n
0000044875 00000 n
0000044980 00000 n
0000045124 00000 n
0000045230 00000 n
0000045350 00000 n
0000045459 00000 n
0000045608 00000 n
0000045718 00000 n
0000045825 00000 n
0000045979 00000 n
0000046115 00000 n
0000046212 00000 n
0000046322 00000 n
0000046437 00000 n
0000046550 00000 n
0000046663 00000 n
0000046760 00000 n
0000046918 00000 n
0000047015 00000 n
0000047125 00000 n
0000047235 00000 n
0000047333 00000 n
0000047477 00000 n
0000047580 00000 n
0000047698 00000 n
0000047813 00000 n
0000047919 00000 n
0000048098 00000 n
0000048213 00000 n
0000048334 00000 n
0000048454 00000 n
0000048579 00000 n
0000048686 00000 n
0000048847 00000 n
0000048972 00000 n
0000049105 00000 n
0000049238 00000 n
0000049362 00000 n
0000049489 00000 n
0000049599 00000 n
0000049747 00000 n
0000049860 00000 n
0000049968 00000 n
0000050116 00000 n
0000050218 00000 n
0000050334 00000 n
0000050454 00000 n
0000050568 00000 n
0000050681 00000 n
0000050798 00000 n
0000050918 00000 n
0000051035 00000 n
0000051137 00000 n
0000051288 00000 n
0000051395 00000 n
0000051509 00000 n
0000051622 00000 n
0000051742 00000 n
0000051856 00000 n
0000051981 00000 n
0000052091 00000 n
0000052202 00000 n
0000052316 00000 n
0000052428 00000 n
0000052540 00000 n
0000052652 00000 n
0000052755 00000 n
0000052901 00000 n
0000053001 00000 n
0000053114 00000 n
0000053228 00000 n
0000053341 00000 n
0000053450 00000 n
0000053564 00000 n
0000053677 00000 n
0000053790 00000 n
0000053906 00000 n
0000054020 00000 n
0000054121 00000 n
0000054255 00000 n
0000054352 00000 n
0000054452 00000 n
0000028837 00000 n
0000028859 00000 n
0000028972 00000 n
0000029162 00000 n
0000029183 00000 n
0000029333 00000 n
0000030372 00000 n
0000030393 00000 n
0000030552 00000 n
0000031483 00000 n
0000031504 00000 n
0000031635 00000 n
0000032597 00000 n
0000032618 00000 n
0000032749 00000 n
0000033673 00000 n
0000033694 00000 n
0000033844 00000 n
0000034897 00000 n
0000034918 00000 n
0000035049 00000 n
0000035795 00000 n
0000035816 00000 n
0000035947 00000 n
0000037080 00000 n
0000037102 00000 n
0000037242 00000 n
0000038196 00000 n
0000038217 00000 n
0000038348 00000 n
0000038939 00000 n
0000038960 00000 n
0000039073 00000 n
0000039262 00000 n
0000039283 00000 n
0000039423 00000 n
0000040091 00000 n
0000040112 00000 n
0000040225 00000 n
0000040414 00000 n
0000040435 00000 n
0000040589 00000 n
0000042985 00000 n
0000043007 00000 n
0000043162 00000 n
0000044800 00000 n
0000044822 00000 n
0000044877 00000 n
0000044982 00000 n
0000045126 00000 n
0000045232 00000 n
0000045352 00000 n
0000045461 00000 n
0000045610 00000 n
0000045720 00000 n
0000045827 00000 n
0000045981 00000 n
0000046117 00000 n
0000046214 00000 n
0000046324 00000 n
0000046439 00000 n
0000046552 00000 n
0000046665 00000 n
0000046762 00000 n
0000046920 00000 n
0000047017 00000 n
0000047127 00000 n
0000047237 00000 n
0000047335 00000 n
0000047479 00000 n
0000047582 00000 n
0000047700 00000 n
0000047815 00000 n
0000047921 00000 n
0000048100 00000 n
0000048215 00000 n
0000048336 00000 n
0000048456 00000 n
0000048581 00000 n
0000048688 00000 n
0000048849 00000 n
0000048974 00000 n
0000049107 00000 n
0000049240 00000 n
0000049364 00000 n
0000049491 00000 n
0000049601 00000 n
0000049749 00000 n
0000049862 00000 n
0000049970 00000 n
0000050118 00000 n
0000050220 00000 n
0000050336 00000 n
0000050456 00000 n
0000050570 00000 n
0000050683 00000 n
0000050800 00000 n
0000050920 00000 n
0000051037 00000 n
0000051139 00000 n
0000051290 00000 n
0000051397 00000 n
0000051511 00000 n
0000051624 00000 n
0000051744 00000 n
0000051858 00000 n
0000051983 00000 n
0000052093 00000 n
0000052204 00000 n
0000052318 00000 n
0000052430 00000 n
0000052542 00000 n
0000052654 00000 n
0000052757 00000 n
0000052903 00000 n
0000053003 00000 n
0000053116 00000 n
0000053230 00000 n
0000053343 00000 n
0000053452 00000 n
0000053566 00000 n
0000053679 00000 n
0000053792 00000 n
0000053908 00000 n
0000054022 00000 n
0000054123 00000 n
0000054257 00000 n
0000054354 00000 n
0000054454 00000 n
trailer
<</Size 349/Root 348 0 R/Info 1 0 R/ID[<593d6a8686c294605faf2eb41ba1551f><593d6a8686c294605faf2eb41ba1551f>]>>
<</Size 349/Root 348 0 R/Info 1 0 R/ID[<8de922e9a9f5038e4e82e5319b2335a2><8de922e9a9f5038e4e82e5319b2335a2>]>>
startxref
54680
54682
%%EOF
+540 -763
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+7580 -7879
Ver Arquivo
Diff do arquivo suprimido porque uma ou mais linhas são muito longas
+3 -261
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.3">
<META NAME="DOCNUMBER" CONTENT="CUPS-SPM-1.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.3.
information for the Common UNIX Printing System ("CUPS") Version 1.1.1.
<EMBED SRC="system-overview.shtml">
@@ -450,65 +450,6 @@ if (jobid == 0)
puts(cupsErrorString(cupsLastError()));
</PRE></UL>
<H3>Passwords and Authentication</H3>
<P>CUPS supports authentication of any request, including
submission of print jobs. The default mechanism for getting the
username and password is to use the login user and a password
from the console.
<P>To support other types of applications, in particular
Graphical User Interfaces ("GUIs"), the CUPS API provides
functions to set the default username and to register a callback
function that returns a password string.
<P>The <A HREF="cupsSetPasswordCB"><CODE>cupsSetPasswordCB()</CODE></A>
function is used to set a password callback in your program. Only one
function can be used at any time.
<P>The <A HREF="cupsSetUser"><CODE>cupsSetUser()</CODE></A> function sets
the current username for authentication. This function can be called by
your password callback function to change the current username as needed.
<P>The following example shows a simple password callback that gets a
username and password from the user:
<UL><PRE>
#include &lt;cups/cups.h&gt;
const char *
my_password_cb(const char *prompt)
{
char user[65];
puts(prompt);
/* Get a username from the user */
printf("Username: ");
if (fgets(user, sizeof(user), stdin) == NULL)
return (NULL);
/* Strip the newline from the string and set the user */
user[strlen(user) - 1] = '\0';
cupsSetUser(user);
/* Use getpass() to ask for the password... */
return (getpass("Password: "));
}
...
cupsSetPasswordCB(my_password_cb);
</PRE></UL>
<P>Similarly, a GUI interface could display the prompt string in a
window with input fields for the username and password. The username
should probably default to the value of
<A HREF="#cupsUser"><CODE>cupsUser()</CODE></A> to make things easier
on the user.
<H2>PPD Services</H2>
<P>CUPS includes functions to access and manipulate PostScript Printer
@@ -3318,9 +3259,6 @@ password = cupsGetPassword("Please enter a password:");
<P>
<A HREF="#cupsServer">cupsServer()</A>,
<A HREF="#cupsSetPasswordCB">cupsSetPasswordCB()</A>,
<A HREF="#cupsSetServer">cupsSetServer()</A>,
<A HREF="#cupsSetUser">cupsSetUser()</A>,
<A HREF="#cupsUser()">cupsUser()</A>
<!-- NEW PAGE --><H2><A NAME="cupsGetPPD">cupsGetPPD()</A></H2>
@@ -4491,160 +4429,8 @@ server = cupsServer();
<P>
<A HREF="#cupsGetPassword">cupsGetPassword()</A>,
<A HREF="#cupsSetPasswordCB">cupsSetPasswordCB()</A>,
<A HREF="#cupsSetServer">cupsSetServer()</A>,
<A HREF="#cupsSetUser">cupsSetUser()</A>,
<A HREF="#cupsUser">cupsUser()</A>
<!-- NEW PAGE --><H2><A NAME="cupsSetPasswordCB">cupsSetPasswordCB()</A></H2>
<H3>Usage</H3>
<PRE>
void
cupsSetPasswordCB(const char *(*cb)(const char *prompt));
</PRE>
<H3>Arguments</H3>
<CENTER><TABLE WIDTH="80%" BORDER>
<TR>
<TH>Argument</TH>
<TH>Description</TH>
</TR>
<TR>
<TD>cb</TD>
<TD>The password callback function.</TD>
</TR>
</TABLE></CENTER>
<H3>Description</H3>
<P><CODE>cupsSetPasswordCB()</CODE> sets the callback function to use when
asking the user for a password. The callback function must accept a single
character string pointer (the prompt string) and return <CODE>NULL</CODE>
if the user did not enter a password string or a pointer to the password
string otherwise.
<H3>Example</H3>
<PRE>
#include &lt;cups/cups.h&gt;
const char *
my_password_cb(const char *prompt)
{
return (getpass(prompt));
}
...
char *password;
...
cupsSetPasswordCB(my_password_cb);
password = cupsGetPassword("Please enter a password:");
</PRE>
<H3>See Also</H3>
<P>
<A HREF="#cupsServer">cupsServer()</A>,
<A HREF="#cupsSetServer">cupsSetServer()</A>,
<A HREF="#cupsSetUser">cupsSetUser()</A>,
<A HREF="#cupsUser()">cupsUser()</A>
<!-- NEW PAGE --><H2><A NAME="cupsSetServer">cupsSetServer()</A></H2>
<H3>Usage</H3>
<PRE>
void
cupsSetServer(const char *server);
</PRE>
<H3>Arguments</H3>
<CENTER><TABLE WIDTH="80%" BORDER>
<TR>
<TH>Argument</TH>
<TH>Description</TH>
</TR>
<TR>
<TD>server</TD>
<TD>The default server to use.</TD>
</TR>
</TABLE></CENTER>
<H3>Description</H3>
<P><CODE>cupsSetServer()</CODE> sets the default server to use for
the CUPS API. If the <CODE>server</CODE> argument is <CODE>NULL</CODE>,
the default server is used.
<H3>Example</H3>
<PRE>
#include &lt;cups/cups.h&gt;
cupsSetServer("foo.bar.com");
</PRE>
<H3>See Also</H3>
<P>
<A HREF="#cupsServer">cupsServer()</A>,
<A HREF="#cupsSetPasswordCB">cupsSetPasswordCB()</A>,
<A HREF="#cupsSetUser">cupsSetUser()</A>,
<A HREF="#cupsUser()">cupsUser()</A>
<!-- NEW PAGE --><H2><A NAME="cupsSetUser">cupsSetUser()</A></H2>
<H3>Usage</H3>
<PRE>
void
cupsSetUser(const char *user);
</PRE>
<H3>Arguments</H3>
<CENTER><TABLE WIDTH="80%" BORDER>
<TR>
<TH>Argument</TH>
<TH>Description</TH>
</TR>
<TR>
<TD>user</TD>
<TD>The user name string to use.</TD>
</TR>
</TABLE></CENTER>
<H3>Description</H3>
<P><CODE>cupsSetUser()</CODE> sets the default user name for authentication.
If the <CODE>user</CODE> argument is <CODE>NULL</CODE> then the current
login user is used.
<H3>Example</H3>
<PRE>
#include &lt;cups/cups.h&gt;
...
cupsSetUser("root");
</PRE>
<H3>See Also</H3>
<P>
<A HREF="#cupsServer">cupsServer()</A>,
<A HREF="#cupsSetPasswordCB">cupsSetPasswordCB()</A>,
<A HREF="#cupsSetServer">cupsSetServer()</A>,
<A HREF="#cupsUser()">cupsUser()</A>
<!-- NEW PAGE --><H2><A NAME="cupsTempFile">cupsTempFile()</A></H2>
<H3>Usage</H3>
@@ -7261,8 +7047,7 @@ http = httpConnect(cupsServer(), ippPort());
<H3>See Also</H3>
<A HREF="#cupsServer"><CODE>cupsServer()</CODE></A>,
<A HREF="#ippSetPort"><CODE>ippSetPort()</CODE></A>
<A HREF="#cupsServer"><CODE>cupsServer()</CODE></A>
<!-- NEW PAGE --><H2><A NAME="ippRead">ippRead()</A></H2>
@@ -7327,49 +7112,6 @@ if (status == IPP_DATA)
<A HREF="#ippWrite"><CODE>ippWrite()</CODE></A>
<!-- NEW PAGE --><H2><A NAME="ippSetPort">ippSetPort()</A></H2>
<H3>Usage</H3>
<PRE>
void
ippSetPort(int port);
</PRE>
<H3>Arguments</H3>
<CENTER><TABLE WIDTH="80%" BORDER>
<TR>
<TH>Argument</TH>
<TH>Description</TH>
</TR>
<TR>
<TD>port</TD>
<TD>The port number to use</TD>
</TR>
</TABLE></CENTER>
<H3>Description</H3>
<P>The <CODE>ippSetPort()</CODE> function sets the default IPP port number
for requests.
<H3>Example</H3>
<PRE>
#include &lt;cups/http.h>
#include &lt;cups/ipp.h>
...
ippSetPort(8631);
</PRE>
<H3>See Also</H3>
<A HREF="#ippPort"><CODE>ippPort()</CODE></A>
<!-- NEW PAGE --><H2><A NAME="ippTimeToDate">ippTimeToDate()</A></H2>
<H3>Usage</H3>
+1 -1
Ver Arquivo
@@ -89,7 +89,7 @@ following sections:</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 Implementation of IPP </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>
BIN
Ver Arquivo
Arquivo binário não exibido.
+1 -1
Ver Arquivo
@@ -92,7 +92,7 @@ sections:</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 Implementation of IPP </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>
BIN
Ver Arquivo
Arquivo binário não exibido.
+1 -1
Ver Arquivo
@@ -86,7 +86,7 @@ EPSON printers are included that use these filters. </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 Implementation of IPP </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>
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.3">
<META NAME="DOCNUMBER" CONTENT="CUPS-SUM-1.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.3<BR>
CUPS-SUM-1.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.3. </P>
Printing System<SUP>TM</SUP> (&quot;CUPS<SUP>TM</SUP>&quot;) Version 1.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
+195 -200
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:20000824182337Z)/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:20000731155420Z)/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,7 @@ h)
®ÃÌ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õä
äÿÿMÎM0à=§˜¥&vì”
w$åDŠ?!bZÐp{©‰Ñí¼÷½ÌNëƒÁA·@œ#%ÐÍöU^Bٷë¶*g¬ƒ¬¾u·Ô·ÙI úº 0
Qxç+«Œ†¾ÊÆÀD„Òçií¦ßlnûf< îÓ“!FCýc²×óeR*fs¾‚m×
3¿ô4§©ŽÁÝ>ï`endstream
äÿÿMÎM0à=§xKMlmKºTƒ;„r"ÅŸ1-h¸½ÔÄhf7ó¾—Ùé`}P ºgŒrðDÒºY`_å%ʾ^µ5¨œ±Y}ën©o³“àüë6 <¤Â;ÏHYe„Óy|”(ƒˆˆJOk7ýjsÛ7ãipŸœ iôWÔ?&{=_p¥b"c+l»…_:f~éiOSƒ7Üdï^endstream
endobj
192 0 obj
6279
@@ -363,13 +360,11 @@ endobj
196 0 obj<</Type/Page/Parent 189 0 R/Contents 197 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F4 6 0 R/F8 10 0 R/F9 11 0 R>>>>/Annots 18 0 R>>endobj
197 0 obj<</Length 198 0 R/Filter/FlateDecode>>stream
xÚ…UßoÓ0~ï_qâiH4$iÖfŒQĶ@:ÄÃ^Ü了9q°Vå¯çÎv·®€P¥H¶Ïþ~Üg÷ç(˜~ ÌR˜L¡jGç‹ÑÛgưXA–dÑ ¦³õI¡q%*|½øA$ WŒ}Éx’¥QÊUucÀ¨•Ý
0ÔZÑ BB¦ÒÍ ¬Õ¬âU°k„÷ªmUw7óïP観M÷åÎXl÷h9ƒMf9LÌõKIJxîO^½¿+Ê—ó(ûϾW÷¯yeœe1ëI&^Î7âß·$J¢Iä÷žA2ã½1mMé`*ódávƒzÓà–ë.£8ŠÉ]þ$üùzÙ4‰rHé;…²œQüHBé½ß3‹i!¥:õ@¯Õ¦! A@¯´K‰4Ì’b‡VJ;ïÓÓéx) Ö zÔ•GÑD0·°–ˆµdƒ’jjXî€Ypr)ÌhiÆö’œ4: õÏ-äÉÓÖ ‡gÁÏ}€
­ê¡²æ%·xÏSDÆ´Ê"ùb¬èj¡ëg_Œ’ƒåþ±5BJŸ± vµ¢\RµOh/,v`Ïàˆ†s{ÎQ?¢ÄT˦C HÔ|CLH§^;œ€ŒKûœë:´ÏQ'VUJrvçEAQák©‰t˜<áˆ.vÚà‡Zzþ?Tý™hqw àsqÁ%%•æ¯Ññ€p.UõÈËåõ9-¿qg¿ëû’¦‰êý‰ˆ#Á'´ÆÊÒ} MD¨SBun†ž£JéÚ6v ©•4X ]ÅM²±»`½¨kdÊVéG/‘È-µÚÖÌd
elIïGŒC}„váž—Þµ›„^§¿OPnÝpn;¢%ä˜påAÙÐÕèïÒ_{ÉZ©ß•ü…¬cUÛü"¤Mx0Ô
®nîàjM´=/"U Zcgå.ÐR«?«N£ÓØ¿EÚØÑAÓr¯V ]ý¯ó‚",„g¶>”Ô©n|àWð“RRж§Íµn˜§ ÖÇÂÙ{Y”·7G¨û}#È­=jxºcãÎöocþôz“dæ-;øãÈò8:£EšM›òeô5¦÷íendstream
0ÔZÑ BB¦ÒÍ ¬Õ¬âU°k„÷ªmUw7óïP観M÷åÎXl÷h9ƒMf9LÌõKIJxîO^½¿+Ê—ó(ûϾW÷¯yeœe1ëI&^Î7âß·$âŸß{ÉŒ÷Æ´5¥ƒ©Ì“…Û êMƒ[®»\Œâ(&wù“ðçëdÓ$Ê!¥ïZÈrFñ# ¥÷~Ï,¦…”ètÖ½V›†,½ÒV,%Ò\0KŠjX)íL¼OO§ã¥0XƒêQ WbEÁÜÂZX"vÔ’ Jª©a¹f}DY?ÀÉ¥0»
¢¤ÛKrÒè4 XÍ_Ô?´'O[ƒvž*´ª‡Êš—Üâ=7NÓ*‹ä‹±¢«…®Ÿ}1J–ûÇÖ)}Æ6ØÕŠrIÕ>¡¼°Ø=g€#üÍí9GýˆwPQpib, Qó 1Q8 z5îp2.ís®ëÐ>GDZU)ÉÙE„¯¥&Òubò„#¸Øiƒjéùÿp DXPõg¢qÄÝaP4.ò#€ÏÅ””Tš¿FcĹTÕ#/—×ç´üÆý®ïKš&ª÷'"zŒDŸÐ^4+KGô6¡N iÔ¸zŽ*¥kÛØ5h¤VÒ`5t7EÈÆî‚õ¢® )[¥½D"·ÔjkX3“)”±%½}0õÚ…{^z×nRxþ<B¹uù 숖c•eCW£¿Kí%k¥~Wrð²ŒUmó‹6áÁP+¸º¹ƒ«5Ñö¼ˆT5h•»@K­þ¬:NcÿhcDM˽Z5tõ¿Î Jˆ°žÙúPR§ºñ_ÁOJI)Úž6׺až.X gïeQÞÞ¡î÷9Œ ·ö¨áé6Ž;Û¿ùÓë5N’™·ìà#ËãèŒi6 oÊ—Ño*ö÷ëendstream
endobj
198 0 obj
835
833
endobj
199 0 obj<</Type/Page/Parent 189 0 R/Contents 200 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F1 4 0 R/F4 6 0 R/F5 7 0 R/F8 10 0 R/F9 11 0 R/Fa 12 0 R/Fc 13 0 R>>>>/Annots 24 0 R>>endobj
200 0 obj<</Length 201 0 R/Filter/FlateDecode>>stream
@@ -1109,196 +1104,196 @@ xref
0000024134 00000 n
0000024154 00000 n
0000024301 00000 n
0000025207 00000 n
0000025228 00000 n
0000025422 00000 n
0000026545 00000 n
0000026567 00000 n
0000026709 00000 n
0000027135 00000 n
0000027156 00000 n
0000027270 00000 n
0000027455 00000 n
0000027476 00000 n
0000027618 00000 n
0000028525 00000 n
0000028546 00000 n
0000028688 00000 n
0000030205 00000 n
0000030227 00000 n
0000030369 00000 n
0000031356 00000 n
0000031377 00000 n
0000031491 00000 n
0000031677 00000 n
0000031698 00000 n
0000031849 00000 n
0000032560 00000 n
0000032581 00000 n
0000032764 00000 n
0000033873 00000 n
0000033895 00000 n
0000034069 00000 n
0000034808 00000 n
0000034829 00000 n
0000034943 00000 n
0000035147 00000 n
0000035168 00000 n
0000035319 00000 n
0000035870 00000 n
0000035891 00000 n
0000036052 00000 n
0000037160 00000 n
0000037182 00000 n
0000037343 00000 n
0000038210 00000 n
0000038231 00000 n
0000038382 00000 n
0000039035 00000 n
0000039056 00000 n
0000039235 00000 n
0000040264 00000 n
0000040285 00000 n
0000040454 00000 n
0000041610 00000 n
0000041632 00000 n
0000041801 00000 n
0000042814 00000 n
0000042835 00000 n
0000042976 00000 n
0000043303 00000 n
0000043324 00000 n
0000043489 00000 n
0000044309 00000 n
0000044330 00000 n
0000044490 00000 n
0000045396 00000 n
0000045417 00000 n
0000045564 00000 n
0000046406 00000 n
0000046427 00000 n
0000046593 00000 n
0000048041 00000 n
0000048063 00000 n
0000048219 00000 n
0000048601 00000 n
0000048622 00000 n
0000048764 00000 n
0000050273 00000 n
0000050295 00000 n
0000050428 00000 n
0000052317 00000 n
0000052339 00000 n
0000052462 00000 n
0000054270 00000 n
0000054292 00000 n
0000054425 00000 n
0000056367 00000 n
0000056389 00000 n
0000056522 00000 n
0000057254 00000 n
0000057275 00000 n
0000057417 00000 n
0000059119 00000 n
0000059141 00000 n
0000059283 00000 n
0000061232 00000 n
0000061254 00000 n
0000061386 00000 n
0000063132 00000 n
0000063154 00000 n
0000063286 00000 n
0000065056 00000 n
0000065078 00000 n
0000065210 00000 n
0000067043 00000 n
0000067065 00000 n
0000067197 00000 n
0000069162 00000 n
0000069184 00000 n
0000069326 00000 n
0000070048 00000 n
0000070069 00000 n
0000070183 00000 n
0000070388 00000 n
0000070409 00000 n
0000070565 00000 n
0000073477 00000 n
0000073499 00000 n
0000073656 00000 n
0000075595 00000 n
0000075617 00000 n
0000075672 00000 n
0000075777 00000 n
0000075921 00000 n
0000076024 00000 n
0000076142 00000 n
0000076263 00000 n
0000076377 00000 n
0000076481 00000 n
0000076646 00000 n
0000076754 00000 n
0000076869 00000 n
0000076974 00000 n
0000077082 00000 n
0000077190 00000 n
0000077299 00000 n
0000077415 00000 n
0000077513 00000 n
0000077679 00000 n
0000077796 00000 n
0000077915 00000 n
0000078039 00000 n
0000078164 00000 n
0000078314 00000 n
0000078455 00000 n
0000078564 00000 n
0000078729 00000 n
0000078868 00000 n
0000078979 00000 n
0000079122 00000 n
0000079245 00000 n
0000079396 00000 n
0000079501 00000 n
0000079654 00000 n
0000079768 00000 n
0000079896 00000 n
0000080010 00000 n
0000080133 00000 n
0000080249 00000 n
0000080398 00000 n
0000080527 00000 n
0000080664 00000 n
0000080794 00000 n
0000080919 00000 n
0000081022 00000 n
0000081172 00000 n
0000081281 00000 n
0000081399 00000 n
0000081538 00000 n
0000081672 00000 n
0000081824 00000 n
0000081929 00000 n
0000082058 00000 n
0000082175 00000 n
0000082287 00000 n
0000082463 00000 n
0000082566 00000 n
0000082705 00000 n
0000082834 00000 n
0000082962 00000 n
0000083080 00000 n
0000083186 00000 n
0000083340 00000 n
0000083509 00000 n
0000083609 00000 n
0000083720 00000 n
0000083847 00000 n
0000083942 00000 n
0000084069 00000 n
0000084191 00000 n
0000025205 00000 n
0000025226 00000 n
0000025420 00000 n
0000026543 00000 n
0000026565 00000 n
0000026707 00000 n
0000027133 00000 n
0000027154 00000 n
0000027268 00000 n
0000027453 00000 n
0000027474 00000 n
0000027616 00000 n
0000028523 00000 n
0000028544 00000 n
0000028686 00000 n
0000030203 00000 n
0000030225 00000 n
0000030367 00000 n
0000031354 00000 n
0000031375 00000 n
0000031489 00000 n
0000031675 00000 n
0000031696 00000 n
0000031847 00000 n
0000032558 00000 n
0000032579 00000 n
0000032762 00000 n
0000033871 00000 n
0000033893 00000 n
0000034067 00000 n
0000034806 00000 n
0000034827 00000 n
0000034941 00000 n
0000035145 00000 n
0000035166 00000 n
0000035317 00000 n
0000035868 00000 n
0000035889 00000 n
0000036050 00000 n
0000037158 00000 n
0000037180 00000 n
0000037341 00000 n
0000038208 00000 n
0000038229 00000 n
0000038380 00000 n
0000039033 00000 n
0000039054 00000 n
0000039233 00000 n
0000040262 00000 n
0000040283 00000 n
0000040452 00000 n
0000041608 00000 n
0000041630 00000 n
0000041799 00000 n
0000042812 00000 n
0000042833 00000 n
0000042974 00000 n
0000043301 00000 n
0000043322 00000 n
0000043487 00000 n
0000044307 00000 n
0000044328 00000 n
0000044488 00000 n
0000045394 00000 n
0000045415 00000 n
0000045562 00000 n
0000046404 00000 n
0000046425 00000 n
0000046591 00000 n
0000048039 00000 n
0000048061 00000 n
0000048217 00000 n
0000048599 00000 n
0000048620 00000 n
0000048762 00000 n
0000050271 00000 n
0000050293 00000 n
0000050426 00000 n
0000052315 00000 n
0000052337 00000 n
0000052460 00000 n
0000054268 00000 n
0000054290 00000 n
0000054423 00000 n
0000056365 00000 n
0000056387 00000 n
0000056520 00000 n
0000057252 00000 n
0000057273 00000 n
0000057415 00000 n
0000059117 00000 n
0000059139 00000 n
0000059281 00000 n
0000061230 00000 n
0000061252 00000 n
0000061384 00000 n
0000063130 00000 n
0000063152 00000 n
0000063284 00000 n
0000065054 00000 n
0000065076 00000 n
0000065208 00000 n
0000067041 00000 n
0000067063 00000 n
0000067195 00000 n
0000069160 00000 n
0000069182 00000 n
0000069324 00000 n
0000070046 00000 n
0000070067 00000 n
0000070181 00000 n
0000070386 00000 n
0000070407 00000 n
0000070563 00000 n
0000073475 00000 n
0000073497 00000 n
0000073654 00000 n
0000075593 00000 n
0000075615 00000 n
0000075670 00000 n
0000075775 00000 n
0000075919 00000 n
0000076022 00000 n
0000076140 00000 n
0000076261 00000 n
0000076375 00000 n
0000076479 00000 n
0000076644 00000 n
0000076752 00000 n
0000076867 00000 n
0000076972 00000 n
0000077080 00000 n
0000077188 00000 n
0000077297 00000 n
0000077413 00000 n
0000077511 00000 n
0000077677 00000 n
0000077794 00000 n
0000077913 00000 n
0000078037 00000 n
0000078162 00000 n
0000078312 00000 n
0000078453 00000 n
0000078562 00000 n
0000078727 00000 n
0000078866 00000 n
0000078977 00000 n
0000079120 00000 n
0000079243 00000 n
0000079394 00000 n
0000079499 00000 n
0000079652 00000 n
0000079766 00000 n
0000079894 00000 n
0000080008 00000 n
0000080131 00000 n
0000080247 00000 n
0000080396 00000 n
0000080525 00000 n
0000080662 00000 n
0000080792 00000 n
0000080917 00000 n
0000081020 00000 n
0000081170 00000 n
0000081279 00000 n
0000081397 00000 n
0000081536 00000 n
0000081670 00000 n
0000081822 00000 n
0000081927 00000 n
0000082056 00000 n
0000082173 00000 n
0000082285 00000 n
0000082461 00000 n
0000082564 00000 n
0000082703 00000 n
0000082832 00000 n
0000082960 00000 n
0000083078 00000 n
0000083184 00000 n
0000083338 00000 n
0000083507 00000 n
0000083607 00000 n
0000083718 00000 n
0000083845 00000 n
0000083940 00000 n
0000084067 00000 n
0000084189 00000 n
trailer
<</Size 386/Root 385 0 R/Info 1 0 R/ID[<9a6dc479b21ff7b88be69c740fbfa3ae><9a6dc479b21ff7b88be69c740fbfa3ae>]>>
<</Size 386/Root 385 0 R/Info 1 0 R/ID[<0508efee20f17d905b9a2d2212f81bf4><0508efee20f17d905b9a2d2212f81bf4>]>>
startxref
84419
84417
%%EOF
+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.3">
<META NAME="DOCNUMBER" CONTENT="CUPS-SUM-1.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.3.
System<SUP>TM</SUP> ("CUPS<SUP>TM</SUP>") Version 1.1.1.
<EMBED SRC="system-overview.shtml">
+1 -1
Ver Arquivo
@@ -110,7 +110,7 @@ following sections:</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 Implementation of IPP </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>
+68 -66
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:20000824182343Z)/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:20000731155427Z)/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,12 +229,14 @@ endobj
xÚµ˜KSãH Çï|
ÙªÄãGâ7 À°5Ylæ´ãt‚·b;k;ÅðíGêöCYB;¶¨
ÕÉÏjEú·¤Î¿'˜øggƒãB’\D'ß®°Mˆ–ø‰ëù-NmxKQŠ<ÕÑ?±<…Œ‰aKȰàòq¬H¶™Èë¸N‹\á°¬·=Ã%<z°,Öëâ%ÍWêÁÒ
Êv×<½BýŒoµÌ™2œ4†mÛ®1!ÛÛ®»;ŸÒãËûùØ2¬3µße‘/ÓÕ¶TûÝÇy¼dæë8ßµŽ[Žúžï¿Í˜ñðµªE·y-Êeœ˜‰*]åô/)ÓMm1çþßf›µèV,?ÿ¸ÑðüžŒ¿ZÏ‹eýÎYš§U*ÊŠ´×GØßKký+âÎßq}^«2Î2ÒÖÑ~‡ûüE²-ÓúÏĦ(ë#ìFó}v#Q«¼ðñ0<Vâ3‰û¹7q?Ñ&éíMæÚ¢0V§Ñ±Õi´qñ£~eWª«B^äãÊP9ðé²p˜†‰¥^,zy¸Áh˜àø:’ëc5S5„{hd¸™oøZܲ\ÎOyFdXŽížÈÛ¶áéyF ?õ0NZž8¶9à'w­p:SßpzÞ›ìØ¿x“¯r½~°u9þD è|Q<áñ/ª:”âÄJR æj…ët-àº(³¸†p#’t™&²†Ž:qO Ç ©ôûšÝ¾­ºÆzùöiÔ器ÄV]r¡SWC7êÒàºZÞ¥§åÙ·lн†çòN`Lõ<#÷(7=@6=KØ7Ù¼‹óÕÛt?Œ zNË\-RÊà±Icµ›èüY<Aœ/:ù„¢†¡f…êCµí}“eô*OŠÕ52•q^}¸t¶ºÞOþf.Äqvî‹…XK‡B‘Åy&|9Â͉ÌùT
@.öK„ø^÷è~štÌœTmmÒŸŽgò¾¬t~#`üú6§Jß×—ø®Œà.ÍE_«b‘a Â!¦.býåuÈ,d,©…&K--“ £€Q´­œ”¥c¢åAUn‚Q×òŒ@Þ£šªåAYøÏ ê¡äs'øÃª±[e˜TcO]oÔÎÐ7E¼®pn*ñ «G.šÎGåæÿÓFÌìt$:5´’‰†fæ ÇH=Î Ò‘7à 'HGže-ÏšÅ\Œ’ŽçéÈ°Ï ê®Rµ:žÈ»4ÝjyF ïOâÉ šõ¨÷÷ü¦R²iÆk!%Š7ër›Ô[œåñÒJoômH/ÖÓ΄^柵KÃg+j¹Ð‰º¡•f54¨8ç‰Ô§”ëxF ÐÝKË3‚DJºŽç]0’¬Žg‰¨ã;5|&#l‘÷ñfCy~õ‹9ÜÍgR18Ët¹¯¾¾ÆM-y'QÙ– Ze[C3€jœCCƒs‚zÙ ïqÞ¶†xN¨ôêÝç¥×¡ôvüéÚê¾&ÓëZâx]‹_µq¼ï²
ã1|"9²~}‚¿YÕB—à†VùÓÐ  ‘Õ£ipNÐê8à 5¬xZžªÉèýáDÖœF-Ïn\ªF€ œ ‰Q8ÜPÆá|‹Åž®%²‡œÁE\¥‰<ö³tE¿˜'‰¨ª÷ºÅîãª3ø­RpÛq·ïãžø&~“>rýuòHÒU'endstream
Êv×<½BýŒoµÌ™2œ4†mÛ®1!ÛÛ®»;ŸÒãËûùØ2¬3µße‘/ÓÕ¶TûÝÇy¼dæë8ßµŽ[Žúžï¿Í˜ñðµªE·y-Êeœ˜‰*]åô/)ÓMm1çþßf›u¯b øñÇm†ç÷dÓøÕ:^,ë—¸p¾ÈÒ<­jŒOQVŸm¼>ÂþnXZë_ŽpþŽëó²X•q–‘´Žö;|Øçw(’m™Ö¯x$6EYa7šï³‰êXá…ï„ᱟIÜϽ‰û‰6Ioo2×Ö„±:ŒŽ­£õ³(»ÂPXò"ï
ÈOW…«èÄ4L¬|ôbÑËà Ö?ÃÇwБ \‹™Z¬!ÜC3 ÃÍ|Ã×â–år~2È3"Ãjlðœ@Þ¶ OÏ3ù©‡qÒòŒÈÀ±Í8¼k „Ó™ú†ÓóÞdÇþÅ›|•+èõƒËñ'J@ç‹â QÕ¡'V‚”*0W+\§k×E™Å5„‘¤Ë4‘5tÔ‰{b8I¥ß×ìömÕ5öÐË·ÇH£.ÏD%¶ê’ ººQ—oÔÕò.8-Ï̾eSì5<'wcªç¼G¹éù²éYêľɿ]œ¯¶Ø¥ûydÑsZ.àj‘RM«}ØDÏàÏâ â|ÑÉ'5üØ5*Tª¥hï›,£WyR,¨®‘ᨌóêà ¤³E­_Î*Tào¶éBgç¾Xˆµt(Yœ×irÀ—Ó(ܜȜO¥äb¿Dïuî§@çÁÀ9AÕÖ&ýéxF ïËÚ¨ãAç'0Æ osªôýp}‰ïzÁîÒ\ôµ*Ö bê")Ö_^‡ìÀB¶É’Zh²ÔÒ2 :šÀ9AY
0&ZžTå&u-Ïä=ª©Zž”Õé€ÿœ Jñ×òŒ@>0w‚?¬;°U†I5öÔõFí }SÄë
禲ºpä¢é|Tnþ?aÄÌNGr¡ÓQC+™hh`ÞpŒÔ㜠yÎp‚täàYÖòŒ YÌÅ(éxNŽüûœ î*U«ã¼KÓ­–gòþt žœ YzÏ S/`*õGð R¢x€°.·I½ÅY/­ôF߆ôb=íLèeþQ»4|¶¢– ¨ZiVC3€ŠãqNH}J¹Žgòݽ´<#H¤4 ëxNÐ# ÉêxFÐh‘ˆ:þ¹SÃg2Âyo6”ç'Q¿‘ÃÝ|&ƒ³L—ûêëkÜÔ’w•m¹ÐÉ¡¡U¶54¨Æ9T148'¨— òçmkˆç„J¯Þ}NPzJoÇÞ©­îk2½®åŽàû+Ž×µøU«ÑÇû.«0Ã÷(’#ë×'Øñû‘U-t nh•? ÍY=
ç þ€3œPʧå9¡šŒÞNdÍiÔòŒ áÆ¥jÔñ ú‘à eηXìéZ"{È\ÄUšÈc?KWô‹Ùy’ˆªz¯[ì>®:ƒß*·wûþ÷'î‰oâW0é#§Ð_'¿VÐTÂendstream
endobj
120 0 obj
1328
1330
endobj
121 0 obj<</Type/Page/Parent 105 0 R/Contents 122 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F8 8 0 R>>>>>>endobj
122 0 obj<</Length 123 0 R/Filter/FlateDecode>>stream
@@ -478,67 +480,67 @@ xref
0000018734 00000 n
0000018755 00000 n
0000018910 00000 n
0000020309 00000 n
0000020331 00000 n
0000020444 00000 n
0000020635 00000 n
0000020656 00000 n
0000020805 00000 n
0000021776 00000 n
0000021797 00000 n
0000021937 00000 n
0000022492 00000 n
0000022513 00000 n
0000022662 00000 n
0000023939 00000 n
0000023961 00000 n
0000024074 00000 n
0000024263 00000 n
0000024284 00000 n
0000024424 00000 n
0000025091 00000 n
0000025112 00000 n
0000025225 00000 n
0000025416 00000 n
0000025437 00000 n
0000025591 00000 n
0000027185 00000 n
0000027207 00000 n
0000027320 00000 n
0000027491 00000 n
0000027512 00000 n
0000027567 00000 n
0000027672 00000 n
0000027816 00000 n
0000027922 00000 n
0000028042 00000 n
0000028151 00000 n
0000028300 00000 n
0000028410 00000 n
0000028517 00000 n
0000028665 00000 n
0000028800 00000 n
0000028918 00000 n
0000029032 00000 n
0000029149 00000 n
0000029256 00000 n
0000029394 00000 n
0000029542 00000 n
0000029644 00000 n
0000029748 00000 n
0000029897 00000 n
0000030000 00000 n
0000030113 00000 n
0000030213 00000 n
0000030323 00000 n
0000030469 00000 n
0000030580 00000 n
0000030690 00000 n
0000030824 00000 n
0000030921 00000 n
0000031021 00000 n
0000020311 00000 n
0000020333 00000 n
0000020446 00000 n
0000020637 00000 n
0000020658 00000 n
0000020807 00000 n
0000021778 00000 n
0000021799 00000 n
0000021939 00000 n
0000022494 00000 n
0000022515 00000 n
0000022664 00000 n
0000023941 00000 n
0000023963 00000 n
0000024076 00000 n
0000024265 00000 n
0000024286 00000 n
0000024426 00000 n
0000025093 00000 n
0000025114 00000 n
0000025227 00000 n
0000025418 00000 n
0000025439 00000 n
0000025593 00000 n
0000027187 00000 n
0000027209 00000 n
0000027322 00000 n
0000027493 00000 n
0000027514 00000 n
0000027569 00000 n
0000027674 00000 n
0000027818 00000 n
0000027924 00000 n
0000028044 00000 n
0000028153 00000 n
0000028302 00000 n
0000028412 00000 n
0000028519 00000 n
0000028667 00000 n
0000028802 00000 n
0000028920 00000 n
0000029034 00000 n
0000029151 00000 n
0000029258 00000 n
0000029396 00000 n
0000029544 00000 n
0000029646 00000 n
0000029750 00000 n
0000029899 00000 n
0000030002 00000 n
0000030115 00000 n
0000030215 00000 n
0000030325 00000 n
0000030471 00000 n
0000030582 00000 n
0000030692 00000 n
0000030826 00000 n
0000030923 00000 n
0000031023 00000 n
trailer
<</Size 179/Root 178 0 R/Info 1 0 R/ID[<7c81fc334a74b7e117b3327dd928e447><7c81fc334a74b7e117b3327dd928e447>]>>
<</Size 179/Root 178 0 R/Info 1 0 R/ID[<fdb2c461d03459ddbf79da0ee106ee57><fdb2c461d03459ddbf79da0ee106ee57>]>>
startxref
31248
31250
%%EOF
+3 -3
Ver Arquivo
@@ -51,7 +51,7 @@ all: $(TARGETS)
#
clean:
$(RM) $(OBJS) $(TARGETS) $(LIBCUPSIMAGE) `basename $(LIBCUPSIMAGE) .2`
$(RM) $(OBJS) $(TARGETS) $(LIBCUPSIMAGE)
#
@@ -71,8 +71,8 @@ install:
$(CHMOD) ugo+rx $(LIBDIR)
$(INSTALL_LIB) $(LIBCUPSIMAGE) $(LIBDIR)
-if test $(LIBCUPSIMAGE) != "libcupsimage.a" -a $(LIBCUPSIMAGE) != "libcupsimage.la"; then \
$(RM) $(LIBDIR)/`basename $(LIBCUPSIMAGE) .2`; \
$(LN) $(LIBCUPSIMAGE) $(LIBDIR)/`basename $(LIBCUPSIMAGE) .2`; \
$(RM) `basename $(LIBCUPSIMAGE) .2`; \
$(LN) $(LIBCUPSIMAGE) `basename $(LIBCUPSIMAGE) .2`; \
fi
+4 -4
Ver Arquivo
@@ -153,13 +153,13 @@ SetCommonOptions(int num_options, /* I - Number of options */
PageBottom = (float)atof(val);
break;
case 1 :
PageLeft = (float)atof(val);
PageRight = PageWidth - (float)atof(val);
break;
case 2 :
PageTop = PageLength - (float)atof(val);
break;
case 3 :
PageRight = PageWidth - (float)atof(val);
PageLeft = (float)atof(val);
break;
}
}
@@ -172,13 +172,13 @@ SetCommonOptions(int num_options, /* I - Number of options */
PageTop = PageLength - (float)atof(val);
break;
case 1 :
PageRight = PageWidth - (float)atof(val);
PageLeft = (float)atof(val);
break;
case 2 :
PageBottom = (float)atof(val);
break;
case 3 :
PageLeft = (float)atof(val);
PageRight = PageWidth - (float)atof(val);
break;
}
}
-6
Ver Arquivo
@@ -237,7 +237,6 @@ PC_pen_color(int num_params, /* I - Number of parameters */
{ 0.0, 1.0, 1.0 } /* Cyan */
};
if (num_params == 0)
{
for (i = 0; i <= PenCount; i ++)
@@ -277,11 +276,6 @@ PC_pen_color(int num_params, /* I - Number of parameters */
(ColorRange[1][1] - ColorRange[1][0]);
Pens[i].rgb[2] = (params[3].value.number - ColorRange[2][0]) /
(ColorRange[2][1] - ColorRange[2][0]);
fprintf(stderr, "DEBUG: Pen %d %.0f %.0f %.0f = %.3f %.3f %.3f\n",
i, params[1].value.number, params[2].value.number,
params[3].value.number, Pens[i].rgb[0], Pens[i].rgb[1],
Pens[i].rgb[2]);
}
if (PageDirty && i == PenNumber)
+1 -1
Ver Arquivo
@@ -319,7 +319,7 @@ LB_label(int num_params, /* I - Number of parameters */
Pens[CharPen].rgb[CharPen], Pens[CharPen].rgb[2],
Pens[CharPen].width * PenScaling);
Outputf("%.3f %.3f %.3f %.2f SP\n", Pens[PenNumber].rgb[0],
Pens[PenNumber].rgb[1], Pens[PenNumber].rgb[2],
Pens[PenNumber].rgb[PenNumber], Pens[PenNumber].rgb[2],
Pens[PenNumber].width * PenScaling);
}
+7 -4
Ver Arquivo
@@ -43,8 +43,6 @@
#include "hpgltops.h"
#define max(a,b) ((a) < (b) ? (b) : (a))
/*
* 'update_transform()' - Update the page transformation matrix as needed.
@@ -157,7 +155,12 @@ update_transform(void)
scaling = page_width / height;
if (FitPlot)
scaling *= max(page_width, page_height) / max(PlotSize[1], PlotSize[0]);
{
if (Rotation == 0 || Rotation == 180)
scaling *= page_width / PlotSize[1];
else
scaling *= page_width / PlotSize[0];
}
/*
* Offset for the current P1 location...
@@ -537,7 +540,7 @@ PS_plot_size(int num_params, /* I - Number of parameters */
* sends a two-argument PS command as documented in the
* HP-GL/2 Reference Manual from HP. Instead, applications
* send the width before the length, which causes all sorts
* of problems when scaling.
* of problems.
*
* Rather than fight it, we now look for them as width,length
* instead of length,width.
+1 -1
Ver Arquivo
@@ -387,7 +387,7 @@ PE_polyline_encoded(int num_params, /* I - Number of parameters */
PenNumber = (int)decode_number(&s, base_bits, 1.0);
if (PageDirty)
printf("%.3f %.3f %.3f %.2f SP\n", Pens[PenNumber].rgb[0],
Pens[PenNumber].rgb[1], Pens[PenNumber].rgb[2],
Pens[PenNumber].rgb[PenNumber], Pens[PenNumber].rgb[2],
Pens[PenNumber].width * PenScaling);
#ifdef DEBUG
+1 -1
Ver Arquivo
@@ -334,7 +334,7 @@ ImageRGBToCMYK(const ib_t *in, /* I - Input pixels */
k = min(c, min(m, y));
if ((km = max(c, max(m, y))) > k)
k = k * k * k / km / km;
k = k * k / km;
c -= k;
m -= k;
+52 -82
Ver Arquivo
@@ -69,7 +69,6 @@ ImageReadTIFF(image_t *img, /* IO - Image */
num_colors, /* Number of colors */
bpp, /* Bytes per pixel */
x, y, /* Current x & y */
row, /* Current row in image */
xstart, ystart, /* Starting x & y */
xdir, ydir, /* X & y direction */
xcount, ycount, /* X & Y counters */
@@ -178,35 +177,6 @@ ImageReadTIFF(image_t *img, /* IO - Image */
* Set the X & Y start and direction according to the image orientation...
*/
switch (orientation)
{
case ORIENTATION_TOPRIGHT :
fputs("DEBUG: orientation = top-right\n", stderr);
break;
case ORIENTATION_RIGHTTOP :
fputs("DEBUG: orientation = right-top\n", stderr);
break;
default :
case ORIENTATION_TOPLEFT :
fputs("DEBUG: orientation = top-left\n", stderr);
break;
case ORIENTATION_LEFTTOP :
fputs("DEBUG: orientation = left-top\n", stderr);
break;
case ORIENTATION_BOTLEFT :
fputs("DEBUG: orientation = bottom-left\n", stderr);
break;
case ORIENTATION_LEFTBOT :
fputs("DEBUG: orientation = left-bottom\n", stderr);
break;
case ORIENTATION_BOTRIGHT :
fputs("DEBUG: orientation = bottom-right\n", stderr);
break;
case ORIENTATION_RIGHTBOT :
fputs("DEBUG: orientation = right-bottom\n", stderr);
break;
}
switch (orientation)
{
case ORIENTATION_TOPRIGHT :
@@ -302,13 +272,13 @@ ImageReadTIFF(image_t *img, /* IO - Image */
* Row major order...
*/
for (y = ystart, ycount = img->ysize, row = 0;
for (y = ystart, ycount = img->ysize;
ycount > 0;
ycount --, y += ydir, row ++)
ycount --, y += ydir)
{
if (bits == 1)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
for (xcount = img->xsize, scanptr = scanline, p = in + xstart, bit = 128;
xcount > 0;
xcount --, p += pstep)
@@ -329,7 +299,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 2)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
for (xcount = img->xsize, scanptr = scanline, p = in + xstart, bit = 0xc0;
xcount > 0;
xcount --, p += pstep)
@@ -350,7 +320,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 4)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
for (xcount = img->xsize, scanptr = scanline, p = in + xstart, bit = 0xf0;
xcount > 0;
xcount --, p += pstep)
@@ -370,7 +340,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (xdir < 0 || zero || alpha)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
if (alpha)
{
@@ -410,7 +380,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
}
else
TIFFReadScanline(tif, in, row, 0);
TIFFReadScanline(tif, in, y, 0);
if (img->colorspace == IMAGE_WHITE)
{
@@ -450,13 +420,13 @@ ImageReadTIFF(image_t *img, /* IO - Image */
* Column major order...
*/
for (x = xstart, xcount = img->xsize, row = 0;
for (x = xstart, xcount = img->xsize;
xcount > 0;
xcount --, x += xdir, row ++)
xcount --, x += xdir)
{
if (bits == 1)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
for (ycount = img->ysize, scanptr = scanline, p = in + ystart, bit = 128;
ycount > 0;
ycount --, p += ydir)
@@ -477,7 +447,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 2)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
for (ycount = img->ysize, scanptr = scanline, p = in + ystart, bit = 0xc0;
ycount > 0;
ycount --, p += ydir)
@@ -499,7 +469,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 4)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
for (ycount = img->ysize, scanptr = scanline, p = in + ystart, bit = 0xf0;
ycount > 0;
ycount --, p += ydir)
@@ -519,7 +489,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (ydir < 0 || zero || alpha)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
if (alpha)
{
@@ -559,7 +529,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
}
else
TIFFReadScanline(tif, in, row, 0);
TIFFReadScanline(tif, in, x, 0);
if (img->colorspace == IMAGE_WHITE)
{
@@ -617,13 +587,13 @@ ImageReadTIFF(image_t *img, /* IO - Image */
* Row major order...
*/
for (y = ystart, ycount = img->ysize, row = 0;
for (y = ystart, ycount = img->ysize;
ycount > 0;
ycount --, y += ydir, row ++)
ycount --, y += ydir)
{
if (bits == 1)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
for (xcount = img->xsize, scanptr = scanline,
p = in + xstart * 3, bit = 128;
xcount > 0;
@@ -653,7 +623,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 2)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
for (xcount = img->xsize, scanptr = scanline,
p = in + xstart * 3, bit = 0xc0;
xcount > 0;
@@ -678,7 +648,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 4)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
for (xcount = img->xsize, scanptr = scanline,
p = in + 3 * xstart, bit = 0xf0;
xcount > 0;
@@ -704,7 +674,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
for (xcount = img->xsize, p = in + 3 * xstart, scanptr = scanline;
xcount > 0;
@@ -754,13 +724,13 @@ ImageReadTIFF(image_t *img, /* IO - Image */
* Column major order...
*/
for (x = xstart, xcount = img->xsize, row = 0;
for (x = xstart, xcount = img->xsize;
xcount > 0;
xcount --, x += xdir, row ++)
xcount --, x += xdir)
{
if (bits == 1)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
for (ycount = img->ysize, scanptr = scanline,
p = in + 3 * ystart, bit = 128;
ycount > 0;
@@ -790,7 +760,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 2)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
for (ycount = img->ysize, scanptr = scanline,
p = in + 3 * ystart, bit = 0xc0;
ycount > 0;
@@ -815,7 +785,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 4)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
for (ycount = img->ysize, scanptr = scanline,
p = in + 3 * ystart, bit = 0xf0;
ycount > 0;
@@ -841,7 +811,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
for (ycount = img->ysize, p = in + 3 * ystart, scanptr = scanline;
ycount > 0;
@@ -894,13 +864,13 @@ ImageReadTIFF(image_t *img, /* IO - Image */
* Row major order...
*/
for (y = ystart, ycount = img->ysize, row = 0;
for (y = ystart, ycount = img->ysize;
ycount > 0;
ycount --, y += ydir, row ++)
ycount --, y += ydir)
{
if (bits == 1)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
for (xcount = img->xsize, scanptr = scanline, p = in + xstart * 3, bit = 0xf0;
xcount > 0;
xcount --, p += pstep)
@@ -931,7 +901,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 2)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
for (xcount = img->xsize, scanptr = scanline, p = in + xstart * 3;
xcount > 0;
xcount --, p += pstep, scanptr ++)
@@ -946,7 +916,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 4)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
for (xcount = img->xsize, scanptr = scanline, p = in + xstart * 3;
xcount > 0;
xcount -= 2, p += 2 * pstep, scanptr += 3)
@@ -970,7 +940,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (xdir < 0 || alpha)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
if (alpha)
{
@@ -996,7 +966,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
}
else
TIFFReadScanline(tif, in, row, 0);
TIFFReadScanline(tif, in, y, 0);
if ((saturation != 100 || hue != 0) && bpp > 1)
ImageRGBAdjust(in, img->xsize, saturation, hue);
@@ -1039,13 +1009,13 @@ ImageReadTIFF(image_t *img, /* IO - Image */
* Column major order...
*/
for (x = xstart, xcount = img->xsize, row = 0;
for (x = xstart, xcount = img->xsize;
xcount > 0;
xcount --, x += xdir, row ++)
xcount --, x += xdir)
{
if (bits == 1)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
for (ycount = img->ysize, scanptr = scanline, p = in + ystart * 3, bit = 0xf0;
ycount > 0;
ycount --, p += pstep)
@@ -1076,7 +1046,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 2)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
for (ycount = img->ysize, scanptr = scanline, p = in + ystart * 3;
ycount > 0;
ycount --, p += pstep, scanptr ++)
@@ -1091,7 +1061,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 4)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
for (ycount = img->ysize, scanptr = scanline, p = in + ystart * 3;
ycount > 0;
ycount -= 2, p += 2 * pstep, scanptr += 3)
@@ -1115,7 +1085,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (ydir < 0 || alpha)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
if (alpha)
{
@@ -1141,7 +1111,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
}
else
TIFFReadScanline(tif, in, row, 0);
TIFFReadScanline(tif, in, x, 0);
if ((saturation != 100 || hue != 0) && bpp > 1)
ImageRGBAdjust(in, img->ysize, saturation, hue);
@@ -1191,13 +1161,13 @@ ImageReadTIFF(image_t *img, /* IO - Image */
* Row major order...
*/
for (y = ystart, ycount = img->ysize, row = 0;
for (y = ystart, ycount = img->ysize;
ycount > 0;
ycount --, y += ydir, row ++)
ycount --, y += ydir)
{
if (bits == 1)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
for (xcount = img->xsize, scanptr = scanline, p = in + xstart * 3, bit = 0xf0;
xcount > 0;
xcount --, p += pstep)
@@ -1237,7 +1207,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 2)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
for (xcount = img->xsize, scanptr = scanline, p = in + xstart * 3;
xcount > 0;
xcount --, p += pstep, scanptr ++)
@@ -1283,7 +1253,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 4)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
for (xcount = img->xsize, scanptr = scanline, p = in + xstart * 3;
xcount > 0;
xcount --, p += pstep, scanptr += 2)
@@ -1329,7 +1299,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
for (xcount = img->xsize, p = in + xstart * 3, scanptr = scanline;
xcount > 0;
@@ -1412,13 +1382,13 @@ ImageReadTIFF(image_t *img, /* IO - Image */
* Column major order...
*/
for (x = xstart, xcount = img->xsize, row = 0;
for (x = xstart, xcount = img->xsize;
xcount > 0;
xcount --, x += xdir, row ++)
xcount --, x += xdir)
{
if (bits == 1)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
for (ycount = img->ysize, scanptr = scanline, p = in + xstart * 3, bit = 0xf0;
ycount > 0;
ycount --, p += pstep)
@@ -1458,7 +1428,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 2)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
for (ycount = img->ysize, scanptr = scanline, p = in + xstart * 3;
ycount > 0;
ycount --, p += pstep, scanptr ++)
@@ -1504,7 +1474,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 4)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
for (ycount = img->ysize, scanptr = scanline, p = in + xstart * 3;
ycount > 0;
ycount --, p += pstep, scanptr += 2)
@@ -1550,7 +1520,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
for (ycount = img->ysize, p = in + xstart * 3, scanptr = scanline;
ycount > 0;
+1 -8
Ver Arquivo
@@ -360,7 +360,7 @@ main(int argc, /* I - Number of command-line arguments */
header.cupsColorOrder = CUPS_ORDER_CHUNKED;
header.cupsColorSpace = CUPS_CSPACE_K;
if (ppd && ppd->patches)
if (ppd->patches)
exec_code(&header, ppd->patches);
if ((count = ppdCollect(ppd, PPD_ORDER_DOCUMENT, &choices)) > 0)
@@ -746,9 +746,6 @@ main(int argc, /* I - Number of command-line arguments */
header.Margins[0] = PageLeft;
header.Margins[1] = PageBottom;
fprintf(stderr, "DEBUG: PageSize = [%d %d]\n", header.PageSize[0],
header.PageSize[1]);
switch (Orientation)
{
case 0 :
@@ -1330,10 +1327,6 @@ exec_code(cups_page_header_t *header, /* I - Page header */
else if (strcmp(name, "cupsMediaPosition") == 0 || /* Compatibility */
strcmp(name, "MediaPosition") == 0)
header->MediaPosition = atoi(value);
else if (strcmp(name, "MediaClass") == 0)
strncpy(header->MediaClass, value, sizeof(header->MediaClass) - 1);
else if (strcmp(name, "MediaColor") == 0)
strncpy(header->MediaColor, value, sizeof(header->MediaColor) - 1);
else if (strcmp(name, "MediaType") == 0)
strncpy(header->MediaType, value, sizeof(header->MediaType) - 1);
else if (strcmp(name, "OutputType") == 0)
+30 -28
Ver Arquivo
@@ -403,7 +403,14 @@ 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)
@@ -788,26 +795,21 @@ start_nup(int number) /* I - Page number */
puts("/ESPsave save def");
if (Flip)
printf("%.1f 0.0 translate -1 1 scale\n", PageWidth);
printf("%.0f 0 translate -1 1 scale\n", PageWidth);
pw = PageRight - PageLeft;
pl = PageTop - PageBottom;
fprintf(stderr, "DEBUG: pw = %.1f, pl = %.1f\n", pw, pl);
fprintf(stderr, "DEBUG: PageLeft = %.1f, PageRight = %.1f\n", PageLeft, PageRight);
fprintf(stderr, "DEBUG: PageTop = %.1f, PageBottom = %.1f\n", PageTop, PageBottom);
fprintf(stderr, "DEBUG: PageWidth = %.1f, PageLength = %.1f\n", PageWidth, PageLength);
switch (Orientation)
{
case 1 : /* Landscape */
printf("%.1f 0.0 translate 90 rotate\n", PageLength);
printf("%.0f 0 translate 90 rotate\n", PageLength);
break;
case 2 : /* Reverse Portrait */
printf("%.1f %.1f translate 180 rotate\n", PageWidth, PageLength);
printf("%.0f %.0f translate 180 rotate\n", PageWidth, PageLength);
break;
case 3 : /* Reverse Landscape */
printf("0.0 %.1f translate -90 rotate\n", PageWidth);
printf("0 %.0f translate -90 rotate\n", PageWidth);
break;
}
@@ -847,28 +849,28 @@ start_nup(int number) /* I - Page number */
}
if (Duplex && (number & 2))
printf("%.1f %.1f translate\n", PageWidth - PageRight, PageBottom);
printf("%.0f %.0f translate\n", PageWidth - PageRight, PageBottom);
else
printf("%.1f %.1f translate\n", PageLeft, PageBottom);
printf("%.0f %.0f translate\n", PageLeft, PageBottom);
if (Orientation & 1)
{
printf("0.0 %.1f translate -90 rotate\n", pl);
printf("%.1f %.1f translate %.3f %.3f scale\n",
ty, tx + l * x, w / PageWidth, l / PageLength);
printf("0 %.0f translate -90 rotate\n", pl);
printf("%.0f %.0f translate %.3f %.3f scale\n",
ty, tx + l * x, w / pw, l / pl);
}
else
{
printf("%.1f 0.0 translate 90 rotate\n", pw);
printf("%.1f %.1f translate %.3f %.3f scale\n",
tx + w * x, ty, w / PageWidth, l / PageLength);
printf("%.0f 0 translate 90 rotate\n", pw);
printf("%.0f %.0f translate %.3f %.3f scale\n",
tx + w * x, ty, w / pw, l / pl);
}
printf("newpath\n"
"0.0 0.0 moveto\n"
"%.1f 0.0 lineto\n"
"%.1f %.1f lineto\n"
"0.0 %.1f lineto\n"
"0 0 moveto\n"
"%.0f 0 lineto\n"
"%.0f %.0f lineto\n"
"0 %.0f lineto\n"
"closepath clip newpath\n",
PageWidth, PageWidth, PageLength, PageLength);
break;
@@ -887,17 +889,17 @@ start_nup(int number) /* I - Page number */
}
if (Duplex && (number & 4))
printf("%.1f %.1f translate\n", PageWidth - PageRight, PageBottom);
printf("%.0f %.0f translate\n", PageWidth - PageRight, PageBottom);
else
printf("%.1f %.1f translate\n", PageLeft, PageBottom);
printf("%.0f %.0f translate\n", PageLeft, PageBottom);
printf("%.1f %.1f translate %.3f %.3f scale\n", x * w, y * l,
printf("%.0f %.0f translate %.3f %.3f scale\n", x * w, y * l,
w / PageWidth, l / PageLength);
printf("newpath\n"
"0.0 0.0 moveto\n"
"%.1f 0.0 lineto\n"
"%.1f %.1f lineto\n"
"0.0 %.1f lineto\n"
"0 0 moveto\n"
"%.0f 0 lineto\n"
"%.0f %.0f lineto\n"
"0 %.0f lineto\n"
"closepath clip newpath\n",
PageWidth, PageWidth, PageLength, PageLength);
break;
+67 -76
Ver Arquivo
@@ -52,8 +52,7 @@
unsigned char *Planes[4], /* Output buffers */
*CompBuffer; /* Compression buffer */
int NumPlanes, /* Number of color planes */
Feed, /* Number of lines to skip */
Page; /* Current page number */
Feed; /* Number of lines to skip */
/*
@@ -95,83 +94,76 @@ StartPage(cups_page_header_t *header) /* I - Page header */
int plane; /* Looping var */
if (!header->Duplex || (Page & 1))
/*
* Set the media type, position, and size...
*/
printf("\033&l6D\033&k12H"); /* Set 6 LPI, 10 CPI */
switch (header->PageSize[1])
{
/*
* Set the media type, position, and size...
*/
case 540 : /* Monarch Envelope */
printf("\033&l80A"); /* Set page size */
break;
printf("\033&l6D\033&k12H"); /* Set 6 LPI, 10 CPI */
case 624 : /* DL Envelope */
printf("\033&l90A"); /* Set page size */
break;
switch (header->PageSize[1])
{
case 540 : /* Monarch Envelope */
printf("\033&l80A"); /* Set page size */
break;
case 649 : /* C5 Envelope */
printf("\033&l91A"); /* Set page size */
break;
case 624 : /* DL Envelope */
printf("\033&l90A"); /* Set page size */
break;
case 684 : /* COM-10 Envelope */
printf("\033&l81A"); /* Set page size */
break;
case 649 : /* C5 Envelope */
printf("\033&l91A"); /* Set page size */
break;
case 709 : /* B5 Envelope */
printf("\033&l100A"); /* Set page size */
break;
case 684 : /* COM-10 Envelope */
printf("\033&l81A"); /* Set page size */
break;
case 756 : /* Executive */
printf("\033&l1A"); /* Set page size */
break;
case 709 : /* B5 Envelope */
printf("\033&l100A"); /* Set page size */
break;
case 792 : /* Letter */
printf("\033&l2A"); /* Set page size */
break;
case 756 : /* Executive */
printf("\033&l1A"); /* Set page size */
break;
case 842 : /* A4 */
printf("\033&l26A"); /* Set page size */
break;
case 792 : /* Letter */
printf("\033&l2A"); /* Set page size */
break;
case 1008 : /* Legal */
printf("\033&l3A"); /* Set page size */
break;
case 842 : /* A4 */
printf("\033&l26A"); /* Set page size */
break;
case 1191 : /* A3 */
printf("\033&l27A"); /* Set page size */
break;
case 1008 : /* Legal */
printf("\033&l3A"); /* Set page size */
break;
case 1191 : /* A3 */
printf("\033&l27A"); /* Set page size */
break;
case 1224 : /* Tabloid */
printf("\033&l6A"); /* Set page size */
break;
}
printf("\033&l%dP", /* Set page length */
header->PageSize[1] / 12);
printf("\033&l0E"); /* Set top margin to 0 */
printf("\033&l%dX", header->NumCopies); /* Set number copies */
if (header->MediaPosition)
printf("\033&l%dH", /* Set media position */
header->MediaPosition);
if (header->cupsMediaType)
printf("\033&l%dM", /* Set media type */
header->cupsMediaType);
if (header->Duplex)
printf("\033&l%dS", /* Set duplex mode */
header->Duplex + header->Tumble);
printf("\033&l0L"); /* Turn off perforation skip */
case 1224 : /* Tabloid */
printf("\033&l6A"); /* Set page size */
break;
}
else
printf("\033&a2G"); /* Set back side */
printf("\033&l%dP", header->PageSize[1] / 12);/* Set page length */
printf("\033&l0E"); /* Set top margin to 0 */
printf("\033&l%dX", header->NumCopies); /* Set number copies */
if (header->MediaPosition)
printf("\033&l%dH", header->MediaPosition); /* Set media position */
if (header->cupsMediaType)
printf("\033&l%dM", /* Set media type */
header->cupsMediaType);
if (header->Duplex)
printf("\033&l%dS", /* Set duplex mode */
header->Duplex + header->Tumble);
printf("\033&l0L"); /* Turn off perforation skip */
/*
* Set graphics mode...
@@ -235,9 +227,7 @@ EndPage(cups_page_header_t *header) /* I - Page header */
else
{
printf("\033*r0B"); /* End GFX */
if (!(header->Duplex && (Page & 1)))
printf("\014"); /* Eject current page */
printf("\014"); /* Eject currnet page */
}
/*
@@ -440,6 +430,7 @@ main(int argc, /* I - Number of command-line arguments */
int fd; /* File descriptor */
cups_raster_t *ras; /* Raster stream for printing */
cups_page_header_t header; /* Page header from file */
int page; /* Current page */
int y; /* Current line */
@@ -486,7 +477,7 @@ main(int argc, /* I - Number of command-line arguments */
* Process pages as needed...
*/
Page = 0;
page = 0;
while (cupsRasterReadHeader(ras, &header))
{
@@ -494,9 +485,9 @@ main(int argc, /* I - Number of command-line arguments */
* Write a status message with the page number and number of copies.
*/
Page ++;
page ++;
fprintf(stderr, "PAGE: %d %d\n", Page, header.NumCopies);
fprintf(stderr, "PAGE: %d %d\n", page, header.NumCopies);
/*
* Start the page...
@@ -515,7 +506,7 @@ main(int argc, /* I - Number of command-line arguments */
*/
if ((y & 127) == 0)
fprintf(stderr, "INFO: Printing page %d, %d%% complete...\n", Page,
fprintf(stderr, "INFO: Printing page %d, %d%% complete...\n", page,
100 * y / header.cupsHeight);
/*
@@ -561,12 +552,12 @@ main(int argc, /* I - Number of command-line arguments */
* If no pages were printed, send an error message...
*/
if (Page == 0)
if (page == 0)
fputs("ERROR: No pages found!\n", stderr);
else
fputs("INFO: Ready to print.\n", stderr);
return (Page == 0);
return (page == 0);
}
+14 -401
Ver Arquivo
@@ -52,15 +52,7 @@ int NumPages = 0; /* Number of pages in document */
int CharsPerInch = 10; /* Number of character columns per inch */
int LinesPerInch = 6; /* Number of lines per inch */
int UTF8 = 0; /* Use UTF-8 encoding? */
int NumKeywords = 0; /* Number of known keywords */
char **Keywords = NULL; /* List of known keywords */
/*
* Local globals...
*/
static char *code_keywords[] = /* List of known C/C++ keywords... */
char *Keywords[] = /* List of known keywords... */
{
"and",
"and_eq",
@@ -128,344 +120,6 @@ static char *code_keywords[] = /* List of known C/C++ keywords... */
"while",
"xor",
"xor_eq"
},
*sh_keywords[] = /* List of known Boure/Korn/zsh/bash keywords... */
{
"alias",
"bg",
"break",
"case",
"cd",
"command",
"continue",
"do",
"done",
"echo",
"elif",
"else",
"esac",
"eval",
"exec",
"exit",
"export",
"fc",
"fg",
"fi",
"for",
"function",
"getopts",
"if",
"in",
"jobs",
"kill",
"let",
"limit",
"newgrp",
"print",
"pwd",
"read",
"readonly",
"return",
"select",
"set",
"shift",
"test",
"then",
"time",
"times",
"trap",
"typeset",
"ulimit",
"umask",
"unalias",
"unlimit",
"unset",
"until",
"wait",
"whence"
"while",
},
*csh_keywords[] = /* List of known csh/tcsh keywords... */
{
"alias",
"aliases",
"bg",
"bindkey",
"break",
"breaksw",
"builtins",
"case",
"cd",
"chdir",
"complete",
"continue",
"default",
"dirs",
"echo",
"echotc",
"else",
"end",
"endif",
"eval",
"exec",
"exit",
"fg",
"foreach",
"glob",
"goto",
"history",
"if",
"jobs",
"kill",
"limit",
"login",
"logout",
"ls",
"nice",
"nohup",
"notify",
"onintr",
"popd",
"pushd",
"pwd",
"rehash",
"repeat",
"set",
"setenv",
"settc",
"shift",
"source",
"stop",
"suspend",
"switch",
"telltc",
"then",
"time",
"umask",
"unalias",
"unbindkey",
"unhash",
"unlimit",
"unset",
"unsetenv",
"wait",
"where",
"which",
"while"
},
*perl_keywords[] = /* List of known perl keywords... */
{
"abs",
"accept",
"alarm",
"and",
"atan2",
"bind",
"binmode",
"bless",
"caller",
"chdir",
"chmod",
"chomp",
"chop",
"chown",
"chr",
"chroot",
"closdir",
"close",
"connect",
"continue",
"cos",
"crypt",
"dbmclose",
"dbmopen",
"defined",
"delete",
"die",
"do",
"dump",
"each",
"else",
"elsif",
"endgrent",
"endhostent",
"endnetent",
"endprotoent",
"endpwent",
"endservent",
"eof",
"eval",
"exec",
"exists",
"exit",
"exp",
"fcntl",
"fileno",
"flock",
"for",
"foreach",
"fork",
"format",
"formline",
"getc",
"getgrent",
"getgrgid",
"getgrnam",
"gethostbyaddr",
"gethostbyname",
"gethostent",
"getlogin",
"getnetbyaddr",
"getnetbyname",
"getnetent",
"getpeername",
"getpgrp",
"getppid",
"getpriority",
"getprotobyname",
"getprotobynumber",
"getprotoent",
"getpwent",
"getpwnam",
"getpwuid",
"getservbyname",
"getservbyport",
"getservent",
"getsockname",
"getsockopt",
"glob",
"gmtime",
"goto",
"grep",
"hex",
"if",
"import",
"index",
"int",
"ioctl",
"join",
"keys",
"kill",
"last",
"lc",
"lcfirst",
"length",
"link",
"listen",
"local",
"localtime",
"log",
"lstat",
"map",
"mkdir",
"msgctl",
"msgget",
"msgrcv",
"msgsend",
"my",
"next",
"no",
"not",
"oct",
"open",
"opendir",
"or",
"ord",
"pack",
"package",
"pipe",
"pop",
"pos",
"print",
"printf",
"push",
"quotemeta",
"rand",
"read",
"readdir",
"readlink",
"recv",
"redo",
"ref",
"rename",
"require",
"reset",
"return",
"reverse",
"rewinddir",
"rindex",
"rmdir",
"scalar",
"seek",
"seekdir",
"select",
"semctl",
"semget",
"semop",
"send",
"setgrent",
"sethostent",
"setnetent",
"setpgrp",
"setpriority",
"setprotoent",
"setpwent",
"setservent",
"setsockopt",
"shift",
"shmctl",
"shmget",
"shmread",
"shmwrite",
"shutdown",
"sin",
"sleep",
"socket",
"socketpair",
"sort",
"splice",
"split",
"sprintf",
"sqrt",
"srand",
"stat",
"study",
"sub",
"substr",
"symlink",
"syscall",
"sysread",
"sysseek",
"system",
"syswrite",
"tell",
"telldir",
"tie",
"tied",
"time",
"times"
"times",
"truncate",
"uc",
"ucfirst",
"umask",
"undef",
"unless",
"unlink",
"unpack",
"unshift",
"untie",
"until",
"use",
"utime",
"values",
"vec",
"wait",
"waitpid",
"wantarray",
"warn",
"while",
"write"
};
@@ -541,43 +195,13 @@ TextMain(char *name, /* I - Name of filter */
if ((val = cupsGetOption("prettyprint", num_options, options)) != NULL)
{
PrettyPrint = 1;
PageLeft = 72.0f;
PageRight = PageWidth - 36.0f;
PageBottom = PageBottom > 36.0f ? PageBottom : 36.0f;
PageTop = PageLength - 36.0f;
CharsPerInch = 12;
LinesPerInch = 8;
if ((val = getenv("CONTENT_TYPE")) == NULL)
{
PrettyPrint = PRETTY_CODE;
NumKeywords = sizeof(code_keywords) / sizeof(code_keywords[0]);
Keywords = code_keywords;
}
else if (strcasecmp(val, "application/x-cshell") == 0)
{
PrettyPrint = PRETTY_SHELL;
NumKeywords = sizeof(csh_keywords) / sizeof(csh_keywords[0]);
Keywords = csh_keywords;
}
else if (strcasecmp(val, "application/x-perl") == 0)
{
PrettyPrint = PRETTY_PERL;
NumKeywords = sizeof(perl_keywords) / sizeof(perl_keywords[0]);
Keywords = perl_keywords;
}
else if (strcasecmp(val, "application/x-shell") == 0)
{
PrettyPrint = PRETTY_SHELL;
NumKeywords = sizeof(sh_keywords) / sizeof(sh_keywords[0]);
Keywords = sh_keywords;
}
else
{
PrettyPrint = PRETTY_CODE;
NumKeywords = sizeof(code_keywords) / sizeof(code_keywords[0]);
Keywords = code_keywords;
}
}
ppd = SetCommonOptions(num_options, options, 1);
@@ -646,8 +270,8 @@ TextMain(char *name, /* I - Name of filter */
*keyptr = '\0';
keyptr = keyword;
if (bsearch(&keyptr, Keywords, NumKeywords, sizeof(char *),
compare_keywords))
if (bsearch(&keyptr, Keywords, sizeof(Keywords) / sizeof(Keywords[0]),
sizeof(Keywords[0]), compare_keywords))
{
/*
* Put keywords in boldface...
@@ -692,8 +316,8 @@ TextMain(char *name, /* I - Name of filter */
*keyptr = '\0';
keyptr = keyword;
if (bsearch(&keyptr, Keywords, NumKeywords, sizeof(char *),
compare_keywords))
if (bsearch(&keyptr, Keywords, sizeof(Keywords) / sizeof(Keywords[0]),
sizeof(Keywords[0]), compare_keywords))
{
/*
* Put keywords in boldface...
@@ -746,8 +370,8 @@ TextMain(char *name, /* I - Name of filter */
*keyptr = '\0';
keyptr = keyword;
if (bsearch(&keyptr, Keywords, NumKeywords, sizeof(char *),
compare_keywords))
if (bsearch(&keyptr, Keywords, sizeof(Keywords) / sizeof(Keywords[0]),
sizeof(Keywords[0]), compare_keywords))
{
/*
* Put keywords in boldface...
@@ -856,8 +480,8 @@ TextMain(char *name, /* I - Name of filter */
keyptr = keyword;
if (!(attr & ATTR_ITALIC) &&
bsearch(&keyptr, Keywords, NumKeywords, sizeof(char *),
compare_keywords))
bsearch(&keyptr, Keywords, sizeof(Keywords) / sizeof(Keywords[0]),
sizeof(Keywords[0]), compare_keywords))
{
/*
* Put keywords in boldface...
@@ -893,8 +517,7 @@ TextMain(char *name, /* I - Name of filter */
cstring = -1;
attr |= ATTR_BLUE;
}
else if (ch == '*' && lastch == '/' && !cstring &&
PrettyPrint != PRETTY_SHELL)
else if (ch == '*' && lastch == '/' && !cstring)
{
/*
* Start a C-style comment...
@@ -903,8 +526,7 @@ TextMain(char *name, /* I - Name of filter */
ccomment = 1;
attr |= ATTR_ITALIC | ATTR_GREEN;
}
else if (ch == '/' && lastch == '/' && !cstring &&
PrettyPrint == PRETTY_CODE)
else if (ch == '/' && lastch == '/' && !cstring)
{
/*
* Start a C++-style comment...
@@ -912,16 +534,7 @@ TextMain(char *name, /* I - Name of filter */
attr |= ATTR_ITALIC | ATTR_GREEN;
}
else if (ch == '#' && !cstring && PrettyPrint != PRETTY_CODE)
{
/*
* Start a shell-style comment...
*/
attr |= ATTR_ITALIC | ATTR_GREEN;
}
else if (ch == '#' && column == 0 && !ccomment && !cstring &&
PrettyPrint == PRETTY_CODE)
else if (ch == '#' && column == 0 && !ccomment && !cstring)
{
/*
* Start a preprocessor command...
@@ -981,7 +594,7 @@ TextMain(char *name, /* I - Name of filter */
Page[line][column].attr |= ATTR_BOLD;
}
else if ((ch == '/' || ch == '*') && lastch == '/' &&
column < ColumnWidth && PrettyPrint != PRETTY_SHELL)
column < ColumnWidth)
{
/*
* Highlight first comment character...
+2 -9
Ver Arquivo
@@ -46,12 +46,6 @@
#define ATTR_GREEN 0x40
#define ATTR_BLUE 0x80
#define PRETTY_OFF 0
#define PRETTY_CODE 1
#define PRETTY_SHELL 2
#define PRETTY_PERL 3
#define PRETTY_HTML 4
/*
* Structures...
@@ -74,15 +68,14 @@ extern int WrapLines, /* Wrap text in lines */
PageColumns, /* Number of columns on a page */
ColumnGutter, /* Number of characters between text columns */
ColumnWidth, /* Width of each column */
PrettyPrint, /* Do pretty code formatting? */
PrettyPrint, /* Do pretty code formatting */
Copies; /* Number of copies to produce */
extern lchar_t **Page; /* Page characters */
extern int NumPages; /* Number of pages in document */
extern int CharsPerInch, /* Number of character columns per inch */
LinesPerInch, /* Number of lines per inch */
UTF8; /* Use UTF-8 encoding? */
extern int NumKeywords; /* Number of known keywords */
extern char **Keywords; /* List of known keywords... */
extern char *Keywords[]; /* List of known keywords... */
/*
+5 -5
Ver Arquivo
@@ -637,7 +637,7 @@ WriteProlog(char *title, /* I - Title of job */
*/
for (i = 0, num_fonts = 0; i < NumFonts; i ++)
for (j = PrettyPrint ? 2 : 1; j >= 0; j --)
for (j = 1 + PrettyPrint; j >= 0; j --)
{
for (k = 0; k < num_fonts; k ++)
if (strcmp(Fonts[i][j], fonts[k]) == 0)
@@ -717,13 +717,13 @@ WriteProlog(char *title, /* I - Title of job */
snprintf(filename, sizeof(filename), "%s/fonts/%s", datadir, fonts[i]);
if ((fp = fopen(filename, "rb")) != NULL)
{
while ((j = fread(line, 1, sizeof(line), fp)) > 0)
fwrite(line, 1, j, stdout);
while (fgets(line, sizeof(line), fp) != NULL)
fputs(line, stdout);
fclose(fp);
}
puts("\n%%EndResource");
puts("%%EndResource");
}
}
@@ -763,7 +763,7 @@ WriteProlog(char *title, /* I - Title of job */
puts("% Reencode fonts");
for (i = PrettyPrint ? 2 : 1; i >= 0; i --)
for (i = 1 + PrettyPrint; i >= 0; i --)
{
printf("/%s findfont\n", Fonts[0][i]);
puts("dup length 1 add dict begin\n"
-1
Ver Arquivo
@@ -52,7 +52,6 @@ all: $(CAT1) $(CAT5) $(CAT8)
#
clean:
$(RM) $(CAT1) $(CAT5) $(CAT8)
#
+5 -22
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: lpoptions.man 1337 2000-09-05 20:50:23Z mike $"
.\" "$Id: lpoptions.man 1231 2000-07-20 17:10:57Z mike $"
.\"
.\" lpoptions man page for the Common UNIX Printing System (CUPS).
.\"
@@ -21,7 +21,7 @@
.\" EMail: cups-info@cups.org
.\" WWW: http://www.cups.org
.\"
.TH lpoptions 1 "Common UNIX Printing System" "5 September 2000" "Easy Software Products"
.TH lpoptions 1 "Common UNIX Printing System" "10 May 2000" "Easy Software Products"
.SH NAME
lpoptions \- display or set printer options and defaults
.SH SYNOPSIS
@@ -39,21 +39,12 @@ lpoptions \- display or set printer options and defaults
.B lpoptions
[ -h
.I server
] [ -p
] -p
.I dest[/instance]
] -l
.br
.B lpoptions
[ -h
.I server
] [ -o
[ -o
.I option=value
] ... [ -o
.I option=value
] -p
.I dest[/instance]
] -r
.I option
]
.br
.B lpoptions
@@ -76,10 +67,6 @@ printer for the current user.
.br
Specifies the CUPS server to communicate with.
.TP 5
\-l
.br
Lists the printer specific options and their current settings.
.TP 5
\-o \fIoption=value\fR
.br
Specifies a new option for the named destination.
@@ -89,10 +76,6 @@ Specifies a new option for the named destination.
Sets the destination and instance, if specified, for any options that follow.
If the named instance does not exist then it is created.
.TP 5
\-r \fIoption\fR
.br
Removes the specified option for the named destination.
.TP 5
\-x \fIdest[/instance]\fR
.br
Removes the options for the named destination and instance, if specified.
@@ -112,5 +95,5 @@ http://localhost:631/documentation.html
.SH COPYRIGHT
Copyright 1993-2000 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: lpoptions.man 1337 2000-09-05 20:50:23Z mike $".
.\" End of "$Id: lpoptions.man 1231 2000-07-20 17:10:57Z mike $".
.\"
-1
Ver Arquivo
@@ -34,7 +34,6 @@ all: pdftops
clean:
$(RM) $(OBJS)
$(RM) libxpdf.a
$(RM) pdftops
+19 -227
Ver Arquivo
@@ -106,7 +106,6 @@ extern const char *cupsProfile;
private dev_proc_close_device(cups_close);
private dev_proc_get_initial_matrix(cups_get_matrix);
private int cups_get_params(gx_device *, gs_param_list *);
private dev_proc_map_cmyk_color(cups_map_cmyk_color);
private dev_proc_map_color_rgb(cups_map_color_rgb);
private dev_proc_map_rgb_color(cups_map_rgb_color);
private dev_proc_open_device(cups_open);
@@ -146,7 +145,7 @@ private gx_device_procs cups_procs =
gx_default_get_bits,
cups_get_params,
cups_put_params,
NULL, /* map_cmyk_color */
NULL,
NULL, /* get_xfont_procs */
NULL, /* get_xfont_device */
NULL, /* map_rgb_alpha_color */
@@ -598,149 +597,10 @@ cups_get_params(gx_device *pdev, /* I - Device info */
}
/*
* 'cups_map_cmyk_color()' - Map a CMYK color to a color index.
*
* This function is only called when a 4 or 6 color colorspace is
* selected for output. CMYK colors are *not* corrected but *are*
* density adjusted.
*/
private gx_color_index /* O - Color index */
cups_map_cmyk_color(gx_device *pdev, /* I - Device info */
gx_color_value c, /* I - Cyan value */
gx_color_value m, /* I - Magenta value */
gx_color_value y, /* I - Yellow value */
gx_color_value k) /* I - Black value */
{
gx_color_index i; /* Temporary index */
gx_color_value ic, im, iy, ik; /* Integral CMYK values */
#ifdef DEBUG
fprintf(stderr, "DEBUG: cups_map_cmyk_color(%08x, %d, %d, %d, %d)\n", pdev,
c, m, y, k);
#endif /* DEBUG */
/*
* Setup the color info data as needed...
*/
if (pdev->color_info.num_components == 0)
cups_set_color_info(pdev);
/*
* Density correct...
*/
c = cupsDensity[c];
m = cupsDensity[m];
y = cupsDensity[y];
k = cupsDensity[k];
ic = lut_rgb_color[c];
im = lut_rgb_color[m];
iy = lut_rgb_color[y];
ik = lut_rgb_color[k];
/*
* Convert the CMYK color to a color index...
*/
switch (cups->header.cupsColorSpace)
{
default :
switch (cups->header.cupsBitsPerColor)
{
case 1 :
i = (((((ic << 1) | im) << 1) | iy) << 1) | ik;
break;
case 2 :
i = (((((ic << 2) | im) << 2) | iy) << 2) | ik;
break;
case 4 :
i = (((((ic << 4) | im) << 4) | iy) << 4) | ik;
break;
case 8 :
i = (((((ic << 8) | im) << 8) | iy) << 8) | ik;
break;
}
break;
case CUPS_CSPACE_YMCK :
case CUPS_CSPACE_GMCK :
case CUPS_CSPACE_GMCS :
switch (cups->header.cupsBitsPerColor)
{
case 1 :
i = (((((iy << 1) | im) << 1) | ic) << 1) | ik;
break;
case 2 :
i = (((((iy << 2) | im) << 2) | ic) << 2) | ik;
break;
case 4 :
i = (((((iy << 4) | im) << 4) | ic) << 4) | ik;
break;
case 8 :
i = (((((iy << 8) | im) << 8) | ic) << 8) | ik;
break;
}
break;
case CUPS_CSPACE_KCMYcm :
if (cups->header.cupsBitsPerColor == 1)
{
if (ik)
i = 32;
else
i = 0;
if (ic && im)
i |= 17;
else if (ic && iy)
i |= 6;
else if (im && iy)
i |= 12;
else if (ic)
i |= 16;
else if (im)
i |= 8;
else if (iy)
i |= 4;
break;
}
case CUPS_CSPACE_KCMY :
switch (cups->header.cupsBitsPerColor)
{
case 1 :
i = (((((ik << 1) | ic) << 1) | im) << 1) | iy;
break;
case 2 :
i = (((((ik << 2) | ic) << 2) | im) << 2) | iy;
break;
case 4 :
i = (((((ik << 4) | ic) << 4) | im) << 4) | iy;
break;
case 8 :
i = (((((ik << 8) | ic) << 8) | im) << 8) | iy;
break;
}
break;
}
if (gs_log_errors > 1)
fprintf(stderr, "DEBUG: CMYK (%d,%d,%d,%d) -> CMYK %08.8x (%d,%d,%d,%d)\n",
c, m, y, k, i, ic, im, iy, ik);
return (i);
}
/*
* 'cups_map_color_rgb()' - Map a color index to an RGB color.
*/
private int
cups_map_color_rgb(gx_device *pdev, /* I - Device info */
gx_color_index color, /* I - Color index */
@@ -935,7 +795,6 @@ cups_map_rgb_color(gx_device *pdev, /* I - Device info */
gx_color_index i; /* Temporary index */
gx_color_value ic, im, iy, ik, mk; /* Integral CMYK values */
int tc, tm, ty; /* Temporary color values */
float kscale; /* K scaling value */
#ifdef DEBUG
@@ -1042,7 +901,10 @@ cups_map_rgb_color(gx_device *pdev, /* I - Device info */
}
break;
default :
case CUPS_CSPACE_K :
case CUPS_CSPACE_WHITE :
case CUPS_CSPACE_GOLD :
case CUPS_CSPACE_SILVER :
i = lut_rgb_color[gx_max_color_value - (r * 31 + g * 61 + b * 8) / 100];
break;
@@ -1098,10 +960,7 @@ cups_map_rgb_color(gx_device *pdev, /* I - Device info */
mk = max(ic, max(im, iy));
if (mk > ik)
{
kscale = (float)ik / (float)mk;
ik = ik * kscale * kscale;
}
ik = ik * ik / mk;
ic = lut_rgb_color[ic - ik];
im = lut_rgb_color[im - ik];
@@ -1139,10 +998,7 @@ cups_map_rgb_color(gx_device *pdev, /* I - Device info */
mk = max(ic, max(im, iy));
if (mk > ik)
{
kscale = (float)ik / (float)mk;
ik = ik * kscale * kscale;
}
ik = ik * ik / mk;
ic = lut_rgb_color[ic - ik];
im = lut_rgb_color[im - ik];
@@ -1205,10 +1061,7 @@ cups_map_rgb_color(gx_device *pdev, /* I - Device info */
mk = max(ic, max(im, iy));
if (mk > ik)
{
kscale = (float)ik / (float)mk;
ik = ik * kscale * kscale;
}
ik = ik * ik / mk;
ic = lut_rgb_color[ic - ik];
im = lut_rgb_color[im - ik];
@@ -1289,8 +1142,6 @@ cups_print_pages(gx_device_printer *pdev, /* I - Device info */
*dst; /* Bitmap data */
(void)fp; /* reference unused file pointer to prevent compiler warning */
#ifdef DEBUG
fprintf(stderr, "DEBUG: cups_print_pages(%08x, %08x, %d)\n", pdev, fp,
num_copies);
@@ -1441,8 +1292,6 @@ cups_put_params(gx_device *pdev, /* I - Device info */
float floatval; /* Floating point value */
gs_param_string stringval; /* String value */
gs_param_float_array arrayval; /* Float array value */
int old_depth; /* Old color depth */
gdev_prn_space_params sp; /* Space parameter data */
#ifdef DEBUG
@@ -1473,10 +1322,7 @@ cups_put_params(gx_device *pdev, /* I - Device info */
return (code); \
} \
else if (code == 0) \
{ \
fprintf(stderr, "DEBUG: Setting %s to %d...\n", sname, intval); \
cups->header.name = (type)intval; \
}
cups->header.name = (type)intval;
#define floatoption(name, sname) \
if ((code = param_read_float(plist, sname, &floatval)) < 0) \
@@ -1519,8 +1365,6 @@ cups_put_params(gx_device *pdev, /* I - Device info */
cups->header.name[i] = (unsigned)arrayval.data[i]; \
}
old_depth = pdev->color_info.depth;
stringoption(MediaClass, "MediaClass")
stringoption(MediaColor, "MediaColor")
stringoption(MediaType, "MediaType")
@@ -1547,8 +1391,12 @@ cups_put_params(gx_device *pdev, /* I - Device info */
booloption(Separations, "Separations")
booloption(TraySwitch, "TraySwitch")
booloption(Tumble, "Tumble")
intoption(cupsWidth, "cupsWidth", unsigned)
intoption(cupsHeight, "cupsHeight", unsigned)
intoption(cupsMediaType, "cupsMediaType", unsigned)
intoption(cupsBitsPerColor, "cupsBitsPerColor", unsigned)
intoption(cupsBitsPerPixel, "cupsBitsPerPixel", unsigned)
intoption(cupsBytesPerLine, "cupsBytesPerLine", unsigned)
intoption(cupsColorOrder, "cupsColorOrder", cups_order_t)
intoption(cupsColorSpace, "cupsColorSpace", cups_cspace_t)
intoption(cupsCompression, "cupsCompression", unsigned)
@@ -1558,16 +1406,6 @@ cups_put_params(gx_device *pdev, /* I - Device info */
cups_set_color_info(pdev);
if (old_depth != pdev->color_info.depth)
{
fputs("DEBUG: Reallocating memory for new color depth...\n", stderr);
sp = ((gx_device_printer *)pdev)->space_params;
if ((code = gdev_prn_reallocate_memory(pdev, &sp, pdev->width,
pdev->height)) < 0)
return (code);
}
/*
* Compute the page margins...
*/
@@ -1580,48 +1418,11 @@ cups_put_params(gx_device *pdev, /* I - Device info */
* accordingly.
*/
for (i = cups->ppd->num_sizes, size = cups->ppd->sizes;
i > 0;
i --, size ++)
if ((fabs(cups->PageSize[1] - size->length) < 18.0 &&
fabs(cups->PageSize[0] - size->width) < 18.0) ||
(fabs(cups->PageSize[0] - size->length) < 18.0 &&
fabs(cups->PageSize[1] - size->width) < 18.0))
break;
if (i == 0 && !cups->ppd->variable_sizes)
{
i = 1;
size = cups->ppd->sizes;
}
if (i > 0)
{
/*
* Standard size...
*/
fprintf(stderr, "DEBUG: size = %s\n", size->name);
margins[0] = size->left / 72.0;
margins[1] = size->bottom / 72.0;
margins[2] = (size->width - size->right) / 72.0;
margins[3] = (size->length - size->top) / 72.0;
}
else
{
/*
* Custom size...
*/
fputs("DEBUG: size = Custom\n", stderr);
for (i = 0; i < 4; i ++)
margins[i] = cups->ppd->custom_margins[i] / 72.0;
}
fprintf(stderr, "DEBUG: margins[] = [ %f %f %f %f ]\n",
margins[0], margins[1], margins[2], margins[3]);
size = cups->ppd->sizes;
margins[0] = size->left / 72.0;
margins[1] = size->bottom / 72.0;
margins[2] = (size->width - size->right) / 72.0;
margins[3] = (size->length - size->top) / 72.0;
}
else
{
@@ -1759,15 +1560,6 @@ cups_set_color_info(gx_device *pdev) /* I - Device info */
cups->color_info.dither_colors = 0;
}
/*
* Enable/disable CMYK color support...
*/
if (cups->color_info.num_components == 4)
cups->procs.map_cmyk_color = cups_map_cmyk_color;
else
cups->procs.map_cmyk_color = NULL;
/*
* Compute the lookup tables...
*/
+269
Ver Arquivo
@@ -0,0 +1,269 @@
/* Copyright (C) 1997, 1998 Aladdin Enterprises. All rights reserved.
This file is part of GNU Ghostscript.
GNU Ghostscript is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY. No author or distributor accepts responsibility
to anyone for the consequences of using it or for whether it serves any
particular purpose or works at all, unless he says so in writing. Refer
to the GNU General Public License for full details.
Everyone is granted permission to copy, modify and redistribute GNU
Ghostscript, but only under the conditions described in the GNU General
Public License. A copy of this license is supposed to have been given
to you along with GNU Ghostscript so you can know your rights and
responsibilities. It should be in a file named COPYING. Among other
things, the copyright notice and this notice must be preserved on all
copies.
Aladdin Enterprises supports the work of the GNU Project, but is not
affiliated with the Free Software Foundation or the GNU Project. GNU
Ghostscript, as distributed by Aladdin Enterprises, does not require any
GNU software to build or run it.
*/
/*$Id$ */
/* Enumerated attribute value definitions for PCL XL */
#ifndef gdevpxen_INCLUDED
# define gdevpxen_INCLUDED
typedef enum {
eClockWise = 0,
eCounterClockWise,
pxeArcDirection_next
} pxeArcDirection_t;
typedef enum {
eNoSubstitution = 0,
eVerticalSubstitution,
pxeCharSubModeArray_next
} pxeCharSubModeArray_t;
typedef enum {
eNonZeroWinding = 0,
eEvenOdd,
pxeClipMode_next,
pxeFillMode_next = pxeClipMode_next /* see pxeFillMode_t below */
} pxeClipMode_t;
typedef enum {
eInterior = 0,
eExterior,
pxeClipRegion_next
} pxeClipRegion_t;
typedef enum {
e1Bit = 0,
e4Bit,
e8Bit,
pxeColorDepth_next
} pxeColorDepth_t;
typedef enum {
eCRGB = 5, /* Note: for this enumeration, 0 is not a valid value */
pxeColorimetricColorSpace_next
} pxeColorimetricColorSpace_t; /* 2.0 */
typedef enum {
eDirectPixel = 0,
eIndexedPixel,
pxeColorMapping_next
} pxeColorMapping_t;
typedef enum {
eNoColorSpace = 0, /* Note: for this enumeration, 0 is not a valid value */
eGray,
eRGB,
eSRGB, /* 2.0 */
pxeColorSpace_next
} pxeColorSpace_t;
typedef enum {
eNoCompression = 0,
eRLECompression,
eJPEGCompression, /* 2.0 */
pxeCompressMode_next
} pxeCompressMode_t;
typedef enum {
eBinaryHighByteFirst = 0,
eBinaryLowByteFirst,
pxeDataOrg_next /* is this DataOrg or DataOrganization? */
} pxeDataOrg_t;
typedef enum {
eDefault = 0, /* bad choice of name! */
pxeDataSource_next
} pxeDataSource_t;
typedef enum {
eUByte = 0,
eSByte,
eUInt16,
eSInt16,
pxeDataType_next
} pxeDataType_t;
typedef enum {
eDownloaded = -1, /* Not a real value, indicates a downloaded matrix */
eDeviceBest = 0,
pxeDitherMatrix_next
} pxeDitherMatrix_t;
typedef enum {
eDuplexHorizontalBinding = 0,
eDuplexVerticalBinding,
pxeDuplexPageMode_next
} pxeDuplexPageMode_t;
typedef enum {
eFrontMediaSide = 0,
eBackMediaSide,
pxeDuplexPageSide_next
} pxeDuplexPageSide_t;
typedef enum {
/* Several pieces of code know that this is a bit mask. */
eNoReporting = 0,
eBackChannel,
eErrorPage,
eBackChAndErrPage,
eNWBackChannel, /* 2.0 */
eNWErrorPage, /* 2.0 */
eNWBackChAndErrPage, /* 2.0 */
pxeErrorReport_next
} pxeErrorReport_t;
typedef pxeClipMode_t pxeFillMode_t;
typedef enum {
eButtCap = 0,
eRoundCap,
eSquareCap,
eTriangleCap,
pxeLineCap_next
} pxeLineCap_t;
#define pxeLineCap_to_library\
{ gs_cap_butt, gs_cap_round, gs_cap_square, gs_cap_triangle }
typedef enum {
eMiterJoin = 0,
eRoundJoin,
eBevelJoin,
eNoJoin,
pxeLineJoin_next
} pxeLineJoin_t;
#define pxeLineJoin_to_library\
{ gs_join_miter, gs_join_round, gs_join_bevel, gs_join_none }
typedef enum {
eInch = 0,
eMillimeter,
eTenthsOfAMillimeter,
pxeMeasure_next
} pxeMeasure_t;
#define pxeMeasure_to_points { 72.0, 72.0 / 25.4, 72.0 / 254.0 }
typedef enum {
eDefaultDestination = 0,
eFaceDownBin, /* 2.0 */
eFaceUpBin, /* 2.0 */
eJobOffsetBin, /* 2.0 */
pxeMediaDestination_next
} pxeMediaDestination_t;
typedef enum {
eLetterPaper = 0,
eLegalPaper,
eA4Paper,
eExecPaper,
eLedgerPaper,
eA3Paper,
eCOM10Envelope,
eMonarchEnvelope,
eC5Envelope,
eDLEnvelope,
eJB4Paper,
eJB5Paper,
eB5Envelope,
eJPostcard,
eJDoublePostcard,
eA5Paper,
eA6Paper, /* 2.0 */
eJB6Paper, /* 2.0 */
pxeMediaSize_next
} pxeMediaSize_t;
/*
* Apply a macro (or procedure) to all known paper sizes.
* The arguments are:
* media size code, resolution for width/height, width, height.
*/
#define px_enumerate_media(m)\
m(eLetterPaper, 300, 2550, 3300)\
m(eLegalPaper, 300, 2550, 5300)\
m(eA4Paper, 300, 2480, 3507)\
m(eExecPaper, 300, 2175, 3150)\
m(eLedgerPaper, 300, 3300, 5100)\
m(eA3Paper, 300, 3507, 4960)\
m(eCOM10Envelope, 300, 1237, 2850)\
m(eMonarchEnvelope, 300, 1162, 2250)\
m(eC5Envelope, 300, 1913, 2704)\
m(eDLEnvelope, 300, 1299, 2598)\
m(eB5Envelope, 300, 2078, 2952)
typedef enum {
eDefaultSource = 0,
eAutoSelect,
eManualFeed,
eMultiPurposeTray,
eUpperCassette,
eLowerCassette,
eEnvelopeTray,
eThirdCassette, /* 2.0 */
pxeMediaSource_next
} pxeMediaSource_t;
/**** MediaType is not documented. ****/
typedef enum {
eDefaultType = 0,
pxeMediaType_next
} pxeMediaType_t;
typedef enum {
ePortraitOrientation = 0,
eLandscapeOrientation,
eReversePortrait,
eReverseLandscape,
pxeOrientation_next
} pxeOrientation_t;
typedef enum {
eTempPattern = 0,
ePagePattern,
eSessionPattern,
pxePatternPersistence_next
} pxePatternPersistence_t;
typedef enum {
eSimplexFrontSide = 0,
pxeSimplexPageMode_next
} pxeSimplexPageMode_t;
typedef enum {
eOpaque = 0,
eTransparent,
pxeTxMode_next
} pxeTxMode_t;
typedef enum {
eHorizontal = 0,
eVertical,
pxeWritingMode_next
} pxeWritingMode_t; /* 2.0 */
#endif /* gdevpxen_INCLUDED */
+2 -2
Ver Arquivo
@@ -22,7 +22,7 @@
% Ghostscript, as distributed by Aladdin Enterprises, does not require any
% GNU software to build or run it.
% $Id: gs_init.ps 1284 2000-08-14 20:17:17Z mike $
% $Id: gs_init.ps 956 2000-03-08 23:15:43Z mike $
% Initialization file for the interpreter.
% When this is run, systemdict is still writable.
@@ -84,7 +84,7 @@ true setpacking
<1a> cvn { } def
% Acquire the debugging flags.
/DEBUG true def
currentdict /DEBUG known /DEBUG exch def
/VMDEBUG
DEBUG {{print mark
systemdict /level2dict known
+28 -35
Ver Arquivo
@@ -21,7 +21,7 @@
% Ghostscript, as distributed by Aladdin Enterprises, does not require any
% GNU software to build or run it.
% $Id: gs_setpd.ps 1396 2000-09-29 17:42:56Z mike $
% $Id: gs_setpd.ps 1159 2000-06-26 15:50:18Z mike $
% The current implementation of setpagedevice has the following limitations:
% - It doesn't attempt to "interact with the user" for Policy = 2.
@@ -107,7 +107,7 @@ level2dict begin
dup type /booleantype eq
{ pop pop }
{ % This should never happen!
DEBUG { (Error in .trysetparams!\n) print pstack flush } if
(Error in .trysetparams!\n) print pstack flush
cleartomark pop pop pop
/.installpagedevice cvx /rangecheck signalerror
}
@@ -197,7 +197,6 @@ level2dict begin
% We have to deal specially with entries that the driver may change
% on its own.
/.dynamicppkeys mark
/PageSize dup % because it changes when PageSize is set
/PageCount dup
.dicttomark readonly def
/.makecurrentpagedevice % - .makecurrentpagedevice <dict>
@@ -282,27 +281,29 @@ level2dict begin
% Define the keys used in input attribute matching.
/.inputattrkeys [
%%%% MRS: Can't get Ghostscript to leave these alone, so we only
%%%% include PageSize here...
%%%% MRS - The current CUPS backend driver does not register any of
%%%% these attributes with GhostScript from the PPD file. As
%%%% a result, we must comment out everything but PageSize
%%%% which is processed differently from all other attributes.
% /PageSize /MediaColor /MediaWeight /MediaType /InsertSheet
/PageSize
% The following are documented in Adobe's supplement for v2017.
% /LeadingEdge /MediaClass
/PageSize
] readonly def
% Define other keys used in media selection.
/.inputselectionkeys [
%%%% MRS: Can't get Ghostscript to leave these alone, so we only
%%%% provide a dummy attribute here...
%%%% MRS - The current CUPS backend driver does not register any of
%%%% these attributes with GhostScript from the PPD file. As
%%%% a result, we must comment out everything.
% /MediaPosition /Orientation
/DummyInput
] readonly def
% Define the keys used in output attribute matching.
/.outputattrkeys [
%%%% MRS: Can't get Ghostscript to leave these alone, so we only
%%%% include a dummy attribute here...
%%%% MRS - The current CUPS backend driver does not register any of
%%%% these attributes with GhostScript from the PPD file. As
%%%% a result, we must comment out everything.
% /OutputType
/DummyOutput
] readonly def
% Define all the parameters that should always be copied to the merged
@@ -322,12 +323,10 @@ level2dict begin
% true iff the key/value pair should be presented to .putdeviceparams.
/.presentspecial mark
.dynamicppkeys { pop false } forall
% We must ignore an explicit request for PageSize,
% because media matching always handles this.
/PageSize false
/Name false
/OutputDevice false
/PageOffset false
/PageSize false
/InputAttributes false
.inputattrkeys
{ dup /PageSize eq
@@ -405,17 +404,11 @@ level2dict begin
% They are expected to consume the top 2 operands.
% NOTE: we currently treat all values other than 0, 1, or 7 (for PageSize)
% the same as 0, i.e., we signal an error.
% 0 { % Set errorinfo and signal a configurationerror.
% pop dup 4 index exch get 2 array astore
% $error /errorinfo 3 -1 roll put
% cleartomark
% /setpagedevice load /configurationerror signalerror
% } bind
%%%% MRS - The current CUPS backend driver does not register any of
%%%% these attributes with GhostScript from the PPD file. As
%%%% a result, we must allow all attributes and values.
0 { % For all attributes just impose the request.
pop 2 index exch 7 put
0 { % Set errorinfo and signal a configurationerror.
pop dup 4 index exch get 2 array astore
$error /errorinfo 3 -1 roll put
cleartomark
/setpagedevice load /configurationerror signalerror
} bind
1 { % Roll back the failed request to its previous status.
DEBUG { (Rolling back.\n) print pstack flush } if
@@ -487,9 +480,9 @@ DEBUG { (Rolling back.\n) print pstack flush } if
% -mark- key1 value1 ...
counttomark 5 add index .computemediasize
exch pop exch pop /PageSize exch
DEBUG { (Putting.\n) print pstack flush } if
(Putting.\n) print pstack flush
.putdeviceparamsonly
DEBUG { (Result of putting.\n) print pstack flush } if
(Result of putting.\n) print pstack flush
} bind def
% Compute the media size and initial matrix from a merged request (after
@@ -525,7 +518,7 @@ DEBUG { (Result of putting.\n) print pstack flush } if
% also handle the case where the current device
% is not a page device.
% Stack: mark <request> <current>
DEBUG { (Checking.\n) print pstack flush } if
(Checking.\n) print pstack flush
dup /OutputDevice .knownget
{ % Current device is a page device.
@@ -567,7 +560,7 @@ DEBUG { (Checking.\n) print pstack flush } if
% Construct a merged request from the actual request plus
% any keys that should always be propagated.
% Stack: mark <request> <orig>
DEBUG { (Merging.\n) print pstack flush } if
(Merging.\n) print pstack flush
exch 1 index length 1 index length add dict
.copiedkeys
@@ -594,7 +587,7 @@ DEBUG { (Merging.\n) print pstack flush } if
% Select input and output media.
% Stack: mark <orig> <request> <merged>
DEBUG { (Selecting.\n) print pstack flush } if
(Selecting.\n) print pstack flush
0 dict % <failed>
1 index /InputAttributes .knownget
@@ -611,7 +604,7 @@ DEBUG { (Selecting.\n) print pstack flush } if
% Construct the new device, and attempt to set its attributes.
% Stack: mark <orig> <request> <merged> <failed>
DEBUG { (Constructing.\n) print pstack flush } if
(Constructing.\n) print pstack flush
currentdevice .devicename 2 index /OutputDevice get eq
{ currentdevice }
@@ -627,7 +620,7 @@ DEBUG { (Constructing.\n) print pstack flush } if
{ % The request failed.
% Stack: ... <orig> <request> <merged> <failed> <device>
% <Policies> true mark <name> <errorname> ...
DEBUG { (Recovering.\n) print pstack flush } if
(Recovering.\n) print pstack flush
counttomark 4 add index
counttomark 2 idiv { dup 4 -2 roll put } repeat
pop pop pop
@@ -647,7 +640,7 @@ DEBUG { (Recovering.\n) print pstack flush } if
% The attempt succeeded. Install the new device.
% Stack: mark ... <merged> <failed> <device> <eraseflag>
DEBUG { (Installing.\n) print pstack flush } if
(Installing.\n) print pstack flush
pop 2 .endpage
{ 1 true .outputpage
@@ -698,7 +691,7 @@ DEBUG { (Installing.\n) print pstack flush } if
% Clean up, calling PolicyReport if needed.
% Stack: mark ... <failed> <merged>
DEBUG { (Finishing.\n) print pstack flush } if
(Finishing.\n) print pstack flush
exch dup length 0 ne
{ 1 index /Policies get /PolicyReport get
+19 -24
Ver Arquivo
@@ -21,7 +21,7 @@
% Ghostscript, as distributed by Aladdin Enterprises, does not require any
% GNU software to build or run it.
% $Id: gs_statd.ps 1395 2000-09-29 13:31:48Z mike $
% $Id: gs_statd.ps 1155 2000-06-23 14:48:50Z mike $
% This file provides statusdict, serverdict, and assorted LaserWriter
% operators, mostly for the benefit of poorly designed PostScript programs
% that 'know' they are running on a LaserWriter.
@@ -46,11 +46,11 @@ end
userdict begin
% Page sizes defined by Adobe documentation
/11x17 {792 1224 //.setpagesize exec} bind def % 11x17 portrait
/a3 {842 1191 //.setpagesize exec} bind def
/a3 {842 1190 //.setpagesize exec} bind def
/a4 {595 842 //.setpagesize exec} bind def
% a4small should be a4 with an ImagingBBox of [25 25 570 817].
/a4small /a4 load def
/b5 {516 729 //.setpagesize exec} bind def
/b5 {501 709 //.setpagesize exec} bind def
/ledger {1224 792 //.setpagesize exec} bind def % 11x17 landscape
/legal {612 1008 //.setpagesize exec} bind def
/letter {612 792 //.setpagesize exec} bind def
@@ -63,35 +63,30 @@ userdict begin
STRICT { (%END) .skipeof } if
% Other page sizes
% ISO standard paper sizes
/a0 {2384 3370 //.setpagesize exec} bind def
/a1 {1684 2384 //.setpagesize exec} bind def
/a2 {1191 1684 //.setpagesize exec} bind def
% /a3 {842 1191 //.setpagesize exec} bind def % defined by Adobe
/a0 {2380 3368 //.setpagesize exec} bind def
/a1 {1684 2380 //.setpagesize exec} bind def
/a2 {1190 1684 //.setpagesize exec} bind def
% /a3 {842 1190 //.setpagesize exec} bind def % defined by Adobe
% /a4 {595 842 //.setpagesize exec} bind def % defined by Adobe
/a5 {420 595 //.setpagesize exec} bind def
/a6 {297 420 //.setpagesize exec} bind def
/a5 {421 595 //.setpagesize exec} bind def
/a6 {297 421 //.setpagesize exec} bind def
/a7 {210 297 //.setpagesize exec} bind def
/a8 {148 210 //.setpagesize exec} bind def
/a9 {105 148 //.setpagesize exec} bind def
/a10 {73 105 //.setpagesize exec} bind def
/b0 {2920 4127 //.setpagesize exec} bind def
/b1 {2064 2920 //.setpagesize exec} bind def
/b2 {1460 2064 //.setpagesize exec} bind def
/b3 {1032 1460 //.setpagesize exec} bind def
/b4 {729 1032 //.setpagesize exec} bind def
% /b5 {516 729 //.setpagesize exec} bind def % defined by Adobe
/b6 {363 516 //.setpagesize exec} bind def
/b7 {258 363 //.setpagesize exec} bind def
/b8 {181 258 //.setpagesize exec} bind def
/b9 {127 181 //.setpagesize exec} bind def
/b10 {91 127 //.setpagesize exec} bind def
/c0 {2599 3676 //.setpagesize exec} bind def
/c1 {1837 2599 //.setpagesize exec} bind def
/a10 {74 105 //.setpagesize exec} bind def
/b0 {2836 4008 //.setpagesize exec} bind def
/b1 {2004 2836 //.setpagesize exec} bind def
/b2 {1418 2004 //.setpagesize exec} bind def
/b3 {1002 1418 //.setpagesize exec} bind def
/b4 {709 1002 //.setpagesize exec} bind def
% /b5 {501 709 //.setpagesize exec} bind def % defined by Adobe
/c0 {2600 3677 //.setpagesize exec} bind def
/c1 {1837 2600 //.setpagesize exec} bind def
/c2 {1298 1837 //.setpagesize exec} bind def
/c3 {918 1298 //.setpagesize exec} bind def
/c4 {649 918 //.setpagesize exec} bind def
/c5 {459 649 //.setpagesize exec} bind def
/c6 {324 459 //.setpagesize exec} bind def
/c6 {323 459 //.setpagesize exec} bind def
% U.S. CAD standard paper sizes
/archE {2592 3456 //.setpagesize exec} bind def
/archD {1728 2592 //.setpagesize exec} bind def
+2 -2
Ver Arquivo
@@ -292,9 +292,9 @@ gdev_write_input_media(int index, gs_param_dict * pdict,
if (code < 0)
return code;
}
/* code = finish_media(mdict.list, "MediaType", pim->MediaType);
code = finish_media(mdict.list, "MediaType", pim->MediaType);
if (code < 0)
return code;*/
return code;
return param_end_write_dict(pdict->list, key, &mdict);
}
+2 -2
Ver Arquivo
@@ -114,7 +114,7 @@ private long heap_available(P0());
gs_malloc_memory_t *
gs_malloc_memory_init(void)
{
gs_malloc_memory_t *mem = calloc(1, sizeof(gs_malloc_memory_t));
gs_malloc_memory_t *mem = malloc(sizeof(gs_malloc_memory_t));
mem->procs = gs_malloc_memory_procs;
mem->allocated = 0;
@@ -173,7 +173,7 @@ gs_heap_alloc_bytes(gs_memory_t * mem, uint size, client_name_t cname)
if (mmem->limit - added < mmem->used)
set_msg("exceeded limit");
else if ((ptr = (byte *) calloc(1, added)) == 0)
else if ((ptr = (byte *) malloc(added)) == 0)
set_msg("failed");
else {
gs_malloc_block_t *bp = (gs_malloc_block_t *) ptr;
+1 -1
Ver Arquivo
@@ -240,7 +240,7 @@ gs_realloc(void *old_ptr, size_t old_size, size_t new_size)
new_size = (new_size + 7) & ~7;
if (new_size) {
new_ptr = calloc(1, new_size);
new_ptr = malloc(new_size);
if (new_ptr == NULL)
return NULL;
} else
+6 -2
Ver Arquivo
@@ -52,8 +52,12 @@ extern void free();
#endif /* !__TURBOC__ */
/* (At least some versions of) Linux don't have a working realloc.... */
/* MRS - in order to make sure memory is initialized, always use gs_realloc() */
#define malloc__need_realloc
#ifdef linux
# define malloc__need_realloc
void *gs_realloc(P3(void *, size_t, size_t));
#else
# define gs_realloc(ptr, old_size, new_size) realloc(ptr, new_size)
#endif
#endif /* malloc__INCLUDED */
+3 -4
Ver Arquivo
@@ -96,8 +96,8 @@ main(int argc, /* I - Number of command-line arguments */
int num_options; /* Number of job options */
cups_option_t *options; /* Job options */
char gspath[2048]; /* Path to GS files... */
char fontpath[2048]; /* Path to GS fonts... */
const char *datadir; /* CUPS_DATADIR env variable */
const char *fontpath; /* CUPS_FONTPATH env variable */
/*
@@ -142,10 +142,8 @@ main(int argc, /* I - Number of command-line arguments */
if ((datadir = getenv("CUPS_DATADIR")) == NULL)
datadir = CUPS_DATADIR;
if ((fontpath = getenv("CUPS_FONTPATH")) == NULL)
fontpath = CUPS_FONTPATH;
snprintf(gspath, sizeof(gspath), "%s/pstoraster:%s", datadir, fontpath);
snprintf(gspath, sizeof(gspath), "%s/pstoraster:%s/fonts", datadir, datadir);
minst->lib_path.final = gspath;
gs_main_set_lib_paths(minst);
@@ -162,6 +160,7 @@ main(int argc, /* I - Number of command-line arguments */
define_string("OutputFile", "-");
snprintf(fontpath, sizeof(fontpath), "%s/fonts", datadir);
define_string("FONTPATH", fontpath);
/*
+3 -4
Ver Arquivo
@@ -67,10 +67,10 @@ install:
-$(MKDIR) $(LOGDIR)
$(CHMOD) ugo+rx $(LOGDIR)
-$(MKDIR) $(REQUESTS)
$(CHMOD) u+rwx,go-rwx $(REQUESTS)
$(CHMOD) u+rwx,go-a $(REQUESTS)
$(CHOWN) lp $(REQUESTS)
-$(MKDIR) $(REQUESTS)/tmp
$(CHMOD) u+rwx,go-rwx,+t $(REQUESTS)/tmp
$(CHMOD) u+rwx,go-a,+t $(REQUESTS)/tmp
$(CHOWN) lp $(REQUESTS)/tmp
@@ -80,8 +80,7 @@ install:
cupsd: $(CUPSDOBJS) libmime.a ../cups/$(LIBCUPS)
echo Linking $@...
$(CC) $(LDFLAGS) -o cupsd $(CUPSDOBJS) libmime.a \
$(LIBZ) $(LIBS) $(LIBMALLOC)
$(CC) $(LDFLAGS) -o cupsd $(CUPSDOBJS) libmime.a $(LIBZ) $(LIBS)
$(CUPSDOBJS): auth.h banners.h cert.h classes.h client.h conf.h \
cupsd.h dirsvc.h job.h mime.h printers.h \
+1 -1
Ver Arquivo
@@ -701,7 +701,7 @@ IsAuthorized(client_t *con) /* I - Connection */
DEBUG_puts("IsAuthorized: user not in group!");
return (HTTP_UNAUTHORIZED);
return (HTTP_FORBIDDEN);
}

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