Comparar commits

..

1 Commits

Autor SHA1 Mensagem Data
msweet 289f19a5d3 Import cups.org releases
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/tags/release-1.0.2@4306 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-10 18:56:23 +00:00
34 arquivos alterados com 1602 adições e 468 exclusões
+98
Ver Arquivo
@@ -0,0 +1,98 @@
CHANGES.txt - 11/04/1999
------------------------
CHANGES IN CUPS v1.0.2
- The HP-GL/2 filter didn't always scale the output
correctly.
- The HP-GL/2 filter now supports changing the page size
automatically when the "fitplot" option is not used.
- The cancel-job operation was expecting a resource name
of the form "/job/#" instead of "/jobs/#"; this
prevented the cancel and lprm commands from working.
- The backends didn't log pages when files were printed
using the "-oraw" option.
- The authorization code did not work with the Slackware
long shadow password package because its crypt() can
return NULL.
- The chunking code didn't work for reading the response
of a POST request.
- cupsGetPPD() now does authentication as needed.
- The N-up code in the PostScript filter didn't work
with some printers (grestoreall would restore the
default blank page and device settings).
- The N-up code in the PostScript filter didn't scale
the pages to fit within the imageable area of the
page.
- Wasn't doing an fchown() on the request files. This
caused problems when the default root account group
and CUPS group were not the same.
CHANGES IN CUPS v1.0.1
- Documentation updates.
- Fixed a bunch of possible buffer-overflow conditions.
- The scheduler now supports authentication using PAM.
- Updated the Italian message file.
- httpEncode64() didn't add an extra "=" if there was
only one byte in the last three-byte group.
- Now drop any trailing character set from the locale
string (e.g. "en_US.ISO_8859-1" becomes "en_US")
- Fixed "timezone" vs "tm_gmtoff" usage for BSD-based
operating systems.
- Updated IPP security so that "get" operations can be
done from any resource name; this allows the CGIs to
work with printer authentication enabled so long as
authentication isn't turned on for the whole "site".
- The IPP code didn't properly handle the "unsupported"
group; this caused problems with the HP JetDirect since
it doesn't seem to support the "copies" attribute.
- The HTTP chunking code was missing a CR LF pair at the
end of a 0-length chunk.
- The httpSeparate() function didn't handle embedded
usernames and passwords in the URI properly.
- Doing "lpadmin -p printer -E" didn't restart printing
if there were pending jobs.
- The cancel-job operation now requires either a
requesting-user-name attribute or an authenticated
username.
- The add-printer code did not report errors if the
interface script or PPD file could not be renamed.
- Request files are now created without world read
permissions.
- Added a cupsLastError() function to the CUPS API to
retrieve the IPP error code from the last request.
- Options are now case-insensitive.
- The lpq command now provides 10 characters for the
username instead of the original (Berkeley standard)
7.
- The cancel command needed a local CUPS server to work
(or the appropriate ServerName in cupsd.conf)
- The cancel and lprm commands didn't report the IPP
error if the job could not be cancelled.
- The lp and lpr commands didn't intercept SIGTERM to
remove temporary files when printing from stdin.
- The lp and lpr commands didn't report the IPP error if
the job could not be printed.
+21 -5
Ver Arquivo
@@ -1,4 +1,4 @@
README - CUPS v1.0.1 - 10/26/1999
README - CUPS v1.0.2 - 11/04/1999
---------------------------------
INTRODUCTION
@@ -46,7 +46,7 @@ the binary distributions from Easy Software Products:
- Digital UNIX (aka OSF1 aka Compaq Tru64 UNIX) 4.0 or higher
- HP-UX 10.20 or higher
- IRIX 5.3 or higher
- Linux 2.0 with glibc2 or higher (tested with RedHat 5.2)
- Linux 2.0 with glibc2 or higher
- Solaris 2.5 or higher (SPARC or Intel)
@@ -54,8 +54,9 @@ INSTALLING CUPS
We are currently distributing CUPS binary distributions in TAR format
with installation and removal scripts generated by our ESP Package
Manager (EPM) software, which is also included with the source
distribution.
Manager (EPM) software, which is available from:
http://www.easysw.com/epm
WARNING: Installing CUPS will overwrite your existing printing system.
Backup files are made by the installation script and restored by the
@@ -74,6 +75,20 @@ After asking you a few yes/no questions the CUPS software will be
installed and the scheduler will be started automatically.
READING THE DOCUMENTATION
Once you have installed the software you can access the documentation
(and a bunch of other stuff) on-line at:
http://localhost:631
If you're having trouble getting that far, the documentation is located
in the "/usr/share/cups/doc" directory in the binary distributions, and
under the "doc" directory in the source archives.
Please read the documentation before asking questions.
SETTING UP PRINTER QUEUES
CUPS works best with PPD (PostScript Printer Description) files. In a
@@ -150,7 +165,8 @@ REPORTING PROBLEMS
If you have problems, please send an email to cups-support@cups.org.
Include your operating system and version, compiler and version, and
any errors or problems you've run into.
any errors or problems you've run into. If you are running a version
of Linux, be sure to provide the Linux distribution you have, too.
OTHER RESOURCES
+22 -3
Ver Arquivo
@@ -133,8 +133,6 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
request->request.op.operation_id = IPP_PRINT_JOB;
request->request.op.request_id = 1;
snprintf(uri, sizeof(uri), "%s://%s:%d%s", method, hostname, port, resource);
language = cupsLangDefault();
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
@@ -144,13 +142,21 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
"attributes-natural-language", NULL,
language != NULL ? language->language : "C");
snprintf(uri, sizeof(uri), "%s://%s:%d%s", method, hostname, port, resource);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
NULL, uri);
fprintf(stderr, "DEBUG: printer-uri = \"%s\"\n", uri);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME, "requesting-user-name",
NULL, argv[2]);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME, "job-name", NULL, argv[3]);
fprintf(stderr, "DEBUG: requesting-user-name = \"%s\"\n", argv[2]);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME, "job-name", NULL,
argv[3]);
fprintf(stderr, "DEBUG: job-name = \"%s\"\n", argv[3]);
/*
* Handle options on the command-line...
@@ -362,8 +368,16 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
ippRead(http, response);
if (response->request.status.status_code > IPP_OK_CONFLICT)
{
ipp_attribute_t *attr;
fprintf(stderr, "ERROR: Print file was not accepted (%04x)!\n",
response->request.status.status_code);
for (attr = response->attrs; attr != NULL; attr = attr->next)
if (attr->name != NULL)
fprintf(stderr, "ERROR: attribute \"%s\"\n", attr->name);
}
else if ((job_id = ippFindAttribute(response, "job-id", IPP_TAG_INTEGER)) == NULL)
fputs("INFO: Print file accepted - job ID unknown.\n", stderr);
else
@@ -402,7 +416,12 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
*/
if (fp != stdin)
{
if (status == HTTP_OK)
fprintf(stderr, "PAGE: 1 %d\n", atoi(argv[4]));
fclose(fp);
}
/*
* Return the queue status...
+12 -2
Ver Arquivo
@@ -140,8 +140,17 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
* Queue the job...
*/
status = lpd_queue(hostname, resource + 1, filename,
argv[2] /* user */, atoi(argv[4]) /* copies */);
if (argc > 6)
{
status = lpd_queue(hostname, resource + 1, filename,
argv[2] /* user */, atoi(argv[4]) /* copies */);
if (!status)
fprintf(stderr, "PAGE: 1 %d\n", atoi(argv[4]));
}
else
status = lpd_queue(hostname, resource + 1, filename,
argv[2] /* user */, 1);
/*
* Remove the temporary file if necessary...
@@ -316,6 +325,7 @@ lpd_queue(char *hostname, /* I - Host to connect to */
while (copies > 0)
{
snprintf(cptr, sizeof(control) - (cptr - control), "ldfA%03.3d%s\n",
getpid() % 1000, localhost);
cptr += strlen(cptr);
+30 -13
Ver Arquivo
@@ -63,6 +63,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
*options; /* Pointer to options */
int port; /* Port number (not used) */
FILE *fp; /* Print file */
int copies; /* Number of copies to print */
int fd; /* Parallel device */
int error; /* Error code (if any) */
size_t nbytes, /* Number of bytes written */
@@ -83,7 +84,10 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
*/
if (argc == 6)
fp = stdin;
{
fp = stdin;
copies = 1;
}
else
{
/*
@@ -95,6 +99,8 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
perror("ERROR: unable to open print file");
return (1);
}
copies = atoi(argv[4]);
}
/*
@@ -143,23 +149,34 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
* Finally, send the print file...
*/
tbytes = 0;
while ((nbytes = fread(buffer, 1, sizeof(buffer), fp)) > 0)
while (copies > 0)
{
/*
* Write the print data to the printer...
*/
copies --;
if (write(fd, buffer, nbytes) < nbytes)
if (fp != stdin)
{
perror("ERROR: Unable to send print file to printer");
break;
fputs("PAGE: 1 1\n", stderr);
rewind(fp);
}
else
tbytes += nbytes;
if (argc > 6)
fprintf(stderr, "INFO: Sending print file, %u bytes...\n", tbytes);
tbytes = 0;
while ((nbytes = fread(buffer, 1, sizeof(buffer), fp)) > 0)
{
/*
* Write the print data to the printer...
*/
if (write(fd, buffer, nbytes) < nbytes)
{
perror("ERROR: Unable to send print file to printer");
break;
}
else
tbytes += nbytes;
if (argc > 6)
fprintf(stderr, "INFO: Sending print file, %u bytes...\n", tbytes);
}
}
/*
+30 -13
Ver Arquivo
@@ -66,6 +66,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
*ptr; /* Pointer into name or value */
int port; /* Port number (not used) */
FILE *fp; /* Print file */
int copies; /* Number of copies to print */
int fd; /* Parallel device */
int error; /* Error code (if any) */
size_t nbytes, /* Number of bytes written */
@@ -86,7 +87,10 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
*/
if (argc == 6)
fp = stdin;
{
fp = stdin;
copies = 1;
}
else
{
/*
@@ -98,6 +102,8 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
perror("ERROR: unable to open print file");
return (1);
}
copies = atoi(argv[4]);
}
/*
@@ -261,23 +267,34 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
* Finally, send the print file...
*/
tbytes = 0;
while ((nbytes = fread(buffer, 1, sizeof(buffer), fp)) > 0)
while (copies > 0)
{
/*
* Write the print data to the printer...
*/
copies --;
if (write(fd, buffer, nbytes) < nbytes)
if (fp != stdin)
{
perror("ERROR: Unable to send print file to printer");
break;
fputs("PAGE: 1 1\n", stderr);
rewind(fp);
}
else
tbytes += nbytes;
if (argc > 6)
fprintf(stderr, "INFO: Sending print file, %u bytes...\n", tbytes);
tbytes = 0;
while ((nbytes = fread(buffer, 1, sizeof(buffer), fp)) > 0)
{
/*
* Write the print data to the printer...
*/
if (write(fd, buffer, nbytes) < nbytes)
{
perror("ERROR: Unable to send print file to printer");
break;
}
else
tbytes += nbytes;
if (argc > 6)
fprintf(stderr, "INFO: Sending print file, %u bytes...\n", tbytes);
}
}
/*
+85 -63
Ver Arquivo
@@ -66,6 +66,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
username[255], /* Username info (not used) */
resource[1024]; /* Resource info (not used) */
FILE *fp; /* Print file */
int copies; /* Number of copies to print */
int port; /* Port number */
int fd; /* AppSocket */
int error; /* Error code (if any) */
@@ -93,7 +94,10 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
*/
if (argc == 6)
fp = stdin;
{
fp = stdin;
copies = 1;
}
else
{
/*
@@ -105,6 +109,8 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
perror("ERROR: unable to open print file");
return (1);
}
copies = atoi(argv[4]);
}
/*
@@ -135,91 +141,107 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
addr.sin_family = hostaddr->h_addrtype;
addr.sin_port = htons(port);
for (;;)
while (copies > 0)
{
if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
for (;;)
{
perror("ERROR: Unable to connect to printer");
return (1);
}
if (connect(fd, (struct sockaddr *)&addr, sizeof(addr)) < 0)
{
error = errno;
close(fd);
fd = -1;
if (error == ECONNREFUSED)
{
fprintf(stderr, "INFO: Network host \'%s\' is busy; will retry in 30 seconds...\n",
hostname);
sleep(30);
}
else
if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
{
perror("ERROR: Unable to connect to printer");
return (1);
return (1);
}
}
else
break;
}
/*
* Finally, send the print file...
*/
fputs("INFO: Connected to host, sending print job...\n", stderr);
tbytes = 0;
while ((nbytes = fread(buffer, 1, sizeof(buffer), fp)) > 0)
{
/*
* Write the print data to the printer...
*/
tbytes += nbytes;
bufptr = buffer;
while (nbytes > 0)
{
if ((wbytes = send(fd, bufptr, nbytes, 0)) < 0)
if (connect(fd, (struct sockaddr *)&addr, sizeof(addr)) < 0)
{
perror("ERROR: Unable to send print file to printer");
break;
}
error = errno;
close(fd);
fd = -1;
nbytes -= wbytes;
bufptr += wbytes;
if (error == ECONNREFUSED)
{
fprintf(stderr, "INFO: Network host \'%s\' is busy; will retry in 30 seconds...\n",
hostname);
sleep(30);
}
else
{
perror("ERROR: Unable to connect to printer");
return (1);
}
}
else
break;
}
/*
* Check for possible data coming back from the printer...
* Finally, send the print file...
*/
timeout.tv_sec = 0;
timeout.tv_usec = 0;
FD_ZERO(&input);
FD_SET(fd, &input);
if (select(fd + 1, &input, NULL, NULL, &timeout) > 0)
copies --;
if (fp != stdin)
{
fputs("PAGE: 1 1\n", stderr);
rewind(fp);
}
fputs("INFO: Connected to host, sending print job...\n", stderr);
tbytes = 0;
while ((nbytes = fread(buffer, 1, sizeof(buffer), fp)) > 0)
{
/*
* Grab the data coming back and spit it out to stderr...
* Write the print data to the printer...
*/
if ((nbytes = recv(fd, buffer, sizeof(buffer), 0)) > 0)
fprintf(stderr, "INFO: Received %u bytes of back-channel data!\n",
nbytes);
tbytes += nbytes;
bufptr = buffer;
while (nbytes > 0)
{
if ((wbytes = send(fd, bufptr, nbytes, 0)) < 0)
{
perror("ERROR: Unable to send print file to printer");
break;
}
nbytes -= wbytes;
bufptr += wbytes;
}
/*
* Check for possible data coming back from the printer...
*/
timeout.tv_sec = 0;
timeout.tv_usec = 0;
FD_ZERO(&input);
FD_SET(fd, &input);
if (select(fd + 1, &input, NULL, NULL, &timeout) > 0)
{
/*
* Grab the data coming back and spit it out to stderr...
*/
if ((nbytes = recv(fd, buffer, sizeof(buffer), 0)) > 0)
fprintf(stderr, "INFO: Received %u bytes of back-channel data!\n",
nbytes);
}
else if (argc > 6)
fprintf(stderr, "INFO: Sending print file, %u bytes...\n", tbytes);
}
else if (argc > 6)
fprintf(stderr, "INFO: Sending print file, %u bytes...\n", tbytes);
/*
* Close the socket connection...
*/
close(fd);
}
/*
* Close the socket connection and input file and return...
* Close the input file and return...
*/
close(fd);
if (fp != stdin)
fclose(fp);
+2 -2
Ver Arquivo
@@ -109,8 +109,8 @@ main(int argc, /* I - Number of command-line arguments */
puts("<AREA SHAPE=\"RECT\" COORDS=\"88,10,158,30\" HREF=\"/classes\" ALT=\"Current Printer Classes Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"170,10,210,30\" HREF=\"/jobs\" ALT=\"Current Jobs Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"222,10,354,30\" HREF=\"/documentation.html\" ALT=\"Read CUPS Documentation On-Line\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"366,10,442,30\" HREF=\"http://www.easysw.com/printpro/software.html\" ALT=\"Download the Current ESP Print Pro Software\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"454,10,530,30\" HREF=\"http://www.easysw.com/printpro/support.html\" ALT=\"Get Tech Support for Current ESP Print Pro\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"366,10,442,30\" HREF=\"http://www.easysw.com/software.html\" ALT=\"Download the Current ESP Print Pro Software\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"454,10,530,30\" HREF=\"http://www.easysw.com/support.html\" ALT=\"Get Tech Support for Current ESP Print Pro\">");
#else
puts("<AREA SHAPE=\"RECT\" COORDS=\"10,10,85,30\" HREF=\"/printers\" ALT=\"Current Printer Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"95,10,175,30\" HREF=\"/classes\" ALT=\"Current Printer Classes Status\">");
+2 -2
Ver Arquivo
@@ -109,8 +109,8 @@ main(int argc, /* I - Number of command-line arguments */
puts("<AREA SHAPE=\"RECT\" COORDS=\"88,10,158,30\" HREF=\"/classes\" ALT=\"Current Printer Classes Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"170,10,210,30\" HREF=\"jobs\" ALT=\"Current Jobs Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"222,10,354,30\" HREF=\"/documentation.html\" ALT=\"Read CUPS Documentation On-Line\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"366,10,442,30\" HREF=\"http://www.easysw.com/printpro/software.html\" ALT=\"Download the Current ESP Print Pro Software\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"454,10,530,30\" HREF=\"http://www.easysw.com/printpro/support.html\" ALT=\"Get Tech Support for Current ESP Print Pro\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"366,10,442,30\" HREF=\"http://www.easysw.com/software.html\" ALT=\"Download the Current ESP Print Pro Software\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"454,10,530,30\" HREF=\"http://www.easysw.com/support.html\" ALT=\"Get Tech Support for Current ESP Print Pro\">");
#else
puts("<AREA SHAPE=\"RECT\" COORDS=\"10,10,85,30\" HREF=\"/printers\" ALT=\"Current Printer Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"95,10,175,30\" HREF=\"/classes\" ALT=\"Current Printer Classes Status\">");
+2 -2
Ver Arquivo
@@ -109,8 +109,8 @@ main(int argc, /* I - Number of command-line arguments */
puts("<AREA SHAPE=\"RECT\" COORDS=\"88,10,158,30\" HREF=\"/classes\" ALT=\"Current Printer Classes Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"170,10,210,30\" HREF=\"/jobs\" ALT=\"Current Jobs Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"222,10,354,30\" HREF=\"/documentation.html\" ALT=\"Read CUPS Documentation On-Line\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"366,10,442,30\" HREF=\"http://www.easysw.com/printpro/software.html\" ALT=\"Download the Current ESP Print Pro Software\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"454,10,530,30\" HREF=\"http://www.easysw.com/printpro/support.html\" ALT=\"Get Tech Support for Current ESP Print Pro\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"366,10,442,30\" HREF=\"http://www.easysw.com/software.html\" ALT=\"Download the Current ESP Print Pro Software\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"454,10,530,30\" HREF=\"http://www.easysw.com/support.html\" ALT=\"Get Tech Support for Current ESP Print Pro\">");
#else
puts("<AREA SHAPE=\"RECT\" COORDS=\"10,10,85,30\" HREF=\"/printers\" ALT=\"Current Printer Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"95,10,175,30\" HREF=\"/classes\" ALT=\"Current Printer Classes Status\">");
+1 -1
Ver Arquivo
@@ -28,7 +28,7 @@
* Version of software...
*/
#define CUPS_SVERSION "CUPS v1.0.1"
#define CUPS_SVERSION "CUPS v1.0.2"
/*
* Where are files stored?
+317
Ver Arquivo
@@ -0,0 +1,317 @@
#
# "$Id: cups.list 775 1999-11-04 13:35:01Z mike $"
#
# ESP Package Manager (EPM) file list for the Common UNIX Printing
# System (CUPS).
#
# EPM can be found in the "epm" subdirectory of this distribution.
# Please report problems and fixes to "epm@easysw.com".
#
# Copyright 1997-1999 by Easy Software Products, all rights reserved.
#
# These coded instructions, statements, and computer programs are the
# property of Easy Software Products and are protected by Federal
# copyright law. Distribution and use rights are outlined in the file
# "LICENSE.txt" which should have been included with this file. If this
# file is missing or damaged please contact Easy Software Products
# at:
#
# Attn: CUPS Licensing Information
# Easy Software Products
# 44141 Airport View Drive, Suite 204
# Hollywood, Maryland 20636-3111 USA
#
# Voice: (301) 373-9603
# EMail: cups-info@cups.org
# WWW: http://www.cups.org
#
%product Common UNIX Printing System
%copyright 1993-1999 by Easy Software Products, All Rights Reserved.
%vendor Easy Software Products
%license LICENSE.cups
%readme README.cups
%version 1.0.2
%incompat printpro
%system all
# Server files
f 0555 root sys /var/cups/backend/ipp backend/ipp
l 0555 root sys /var/cups/backend/http ipp
f 4550 root sys /var/cups/backend/lpd backend/lpd
f 0555 root sys /var/cups/backend/parallel backend/parallel
f 0555 root sys /var/cups/backend/serial backend/serial
f 0555 root sys /var/cups/backend/socket backend/socket
f 0500 root sys /usr/sbin/cupsd scheduler/cupsd
f 0555 root sys /var/cups/cgi-bin/classes.cgi cgi-bin/classes.cgi
f 0555 root sys /var/cups/cgi-bin/jobs.cgi cgi-bin/jobs.cgi
f 0555 root sys /var/cups/cgi-bin/printers.cgi cgi-bin/printers.cgi
f 0555 root sys /var/cups/filter/pstoraster pstoraster/pstoraster
l 0555 root sys /var/cups/filter/pdftops pstoraster
f 0555 root sys /var/cups/filter/imagetops filter/imagetops
f 0555 root sys /var/cups/filter/pstops filter/pstops
f 0555 root sys /var/cups/filter/texttops filter/texttops
f 0555 root sys /var/cups/filter/rastertohp filter/rastertohp
f 0555 root sys /var/cups/filter/hpgltops filter/hpgltops
f 0555 root sys /var/cups/filter/imagetoraster filter/imagetoraster
# Admin commands
l 0555 root sys /usr/bin/disable /usr/sbin/accept
l 0555 root sys /usr/bin/enable /usr/sbin/accept
l 0555 root sys /usr/lib/accept /usr/sbin/accept
l 0555 root sys /usr/lib/lpadmin /usr/sbin/lpadmin
l 0555 root sys /usr/lib/reject accept
f 0555 root sys /usr/sbin/accept systemv/accept
f 0555 root sys /usr/sbin/esplicense license/esplicense
f 0555 root sys /usr/sbin/lpadmin systemv/lpadmin
f 0555 root sys /usr/sbin/lpc berkeley/lpc
l 0555 root sys /usr/sbin/reject accept
# User commands
f 0555 root sys /usr/bin/cancel systemv/cancel
f 0555 root sys /usr/bin/lp systemv/lp
f 0555 root sys /usr/bin/lpq berkeley/lpq
f 0555 root sys /usr/bin/lpr berkeley/lpr
f 0555 root sys /usr/bin/lprm berkeley/lprm
f 0555 root sys /usr/bin/lpstat systemv/lpstat
f 0555 root sys /usr/bin/lpwin gui/lpwin
# DSOs
%system hpux
f 0555 root sys /usr/lib/libcups.sl.1 cups/libcups.sl.1
l 0555 root sys /usr/lib/libcups.sl libcups.sl.1
f 0555 root sys /usr/lib/libcupsimage.sl.1 filter/libcupsimage.sl.1
l 0555 root sys /usr/lib/libcupsimage.sl libcupsimage.sl.1
%system irix-6.5
f 0555 root sys /usr/lib32/libcups.so.1 cups/libcups.so.1
l 0555 root sys /usr/lib32/libcups.so libcups.so.1
f 0555 root sys /usr/lib32/libcupsimage.so.1 filter/libcupsimage.so.1
l 0555 root sys /usr/lib32/libcupsimage.so libcupsimage.so.1
%system !irix-6.5 !hpux
f 0555 root sys /usr/lib/libcups.so.1 cups/libcups.so.1
l 0555 root sys /usr/lib/libcups.so libcups.so.1
f 0555 root sys /usr/lib/libcupsimage.so.1 filter/libcupsimage.so.1
l 0555 root sys /usr/lib/libcupsimage.so libcupsimage.so.1
%system all
# Directories
d 0755 root sys /var/cups/interfaces
d 0755 root sys /var/cups/logs
d 0755 root sys /var/cups/ppd
d 0755 root sys /var/cups/requests
# Data files
f 0444 root sys /usr/lib/locale/C/cups_C locale/C/cups_C
f 0444 root sys /usr/lib/locale/de/cups_de locale/de/cups_de
f 0444 root sys /usr/lib/locale/en/cups_en locale/en/cups_en
f 0444 root sys /usr/lib/locale/es/cups_es locale/es/cups_es
f 0444 root sys /usr/lib/locale/fr/cups_fr locale/fr/cups_fr
f 0444 root sys /usr/lib/locale/it/cups_it locale/it/cups_it
f 0444 root sys /usr/share/cups/data/8859-1 data/8859-1
f 0444 root sys /usr/share/cups/data/8859-14 data/8859-14
f 0444 root sys /usr/share/cups/data/8859-15 data/8859-15
f 0444 root sys /usr/share/cups/data/8859-2 data/8859-2
f 0444 root sys /usr/share/cups/data/8859-3 data/8859-3
f 0444 root sys /usr/share/cups/data/8859-4 data/8859-4
f 0444 root sys /usr/share/cups/data/8859-5 data/8859-5
f 0444 root sys /usr/share/cups/data/8859-6 data/8859-6
f 0444 root sys /usr/share/cups/data/8859-7 data/8859-7
f 0444 root sys /usr/share/cups/data/8859-8 data/8859-8
f 0444 root sys /usr/share/cups/data/8859-9 data/8859-9
f 0444 root sys /usr/share/cups/data/HPGLprolog data/HPGLprolog
f 0444 root sys /usr/share/cups/data/psglyphs data/psglyphs
f 0444 root sys /usr/share/cups/fonts/AvantGarde-Book fonts/AvantGarde-Book
f 0444 root sys /usr/share/cups/fonts/AvantGarde-BookOblique fonts/AvantGarde-BookOblique
f 0444 root sys /usr/share/cups/fonts/AvantGarde-Demi fonts/AvantGarde-Demi
f 0444 root sys /usr/share/cups/fonts/AvantGarde-DemiOblique fonts/AvantGarde-DemiOblique
f 0444 root sys /usr/share/cups/fonts/Bookman-Demi fonts/Bookman-Demi
f 0444 root sys /usr/share/cups/fonts/Bookman-DemiItalic fonts/Bookman-DemiItalic
f 0444 root sys /usr/share/cups/fonts/Bookman-Light fonts/Bookman-Light
f 0444 root sys /usr/share/cups/fonts/Bookman-LightItalic fonts/Bookman-LightItalic
f 0444 root sys /usr/share/cups/fonts/Courier fonts/Courier
f 0444 root sys /usr/share/cups/fonts/Courier-Bold fonts/Courier-Bold
f 0444 root sys /usr/share/cups/fonts/Courier-BoldOblique fonts/Courier-BoldOblique
f 0444 root sys /usr/share/cups/fonts/Courier-Oblique fonts/Courier-Oblique
f 0444 root sys /usr/share/cups/fonts/Helvetica fonts/Helvetica
f 0444 root sys /usr/share/cups/fonts/Helvetica-Bold fonts/Helvetica-Bold
f 0444 root sys /usr/share/cups/fonts/Helvetica-BoldOblique fonts/Helvetica-BoldOblique
f 0444 root sys /usr/share/cups/fonts/Helvetica-Narrow fonts/Helvetica-Narrow
f 0444 root sys /usr/share/cups/fonts/Helvetica-Narrow-Bold fonts/Helvetica-Narrow-Bold
f 0444 root sys /usr/share/cups/fonts/Helvetica-Narrow-BoldOblique fonts/Helvetica-Narrow-BoldOblique
f 0444 root sys /usr/share/cups/fonts/Helvetica-Narrow-Oblique fonts/Helvetica-Narrow-Oblique
f 0444 root sys /usr/share/cups/fonts/Helvetica-Oblique fonts/Helvetica-Oblique
f 0444 root sys /usr/share/cups/fonts/NewCenturySchlbk-Bold fonts/NewCenturySchlbk-Bold
f 0444 root sys /usr/share/cups/fonts/NewCenturySchlbk-BoldItalic fonts/NewCenturySchlbk-BoldItalic
f 0444 root sys /usr/share/cups/fonts/NewCenturySchlbk-Italic fonts/NewCenturySchlbk-Italic
f 0444 root sys /usr/share/cups/fonts/NewCenturySchlbk-Roman fonts/NewCenturySchlbk-Roman
f 0444 root sys /usr/share/cups/fonts/Palatino-Bold fonts/Palatino-Bold
f 0444 root sys /usr/share/cups/fonts/Palatino-BoldItalic fonts/Palatino-BoldItalic
f 0444 root sys /usr/share/cups/fonts/Palatino-Italic fonts/Palatino-Italic
f 0444 root sys /usr/share/cups/fonts/Palatino-Roman fonts/Palatino-Roman
f 0444 root sys /usr/share/cups/fonts/Symbol fonts/Symbol
f 0444 root sys /usr/share/cups/fonts/Times-Bold fonts/Times-Bold
f 0444 root sys /usr/share/cups/fonts/Times-BoldItalic fonts/Times-BoldItalic
f 0444 root sys /usr/share/cups/fonts/Times-Italic fonts/Times-Italic
f 0444 root sys /usr/share/cups/fonts/Times-Roman fonts/Times-Roman
f 0444 root sys /usr/share/cups/fonts/Utopia-Bold fonts/Utopia-Bold
f 0444 root sys /usr/share/cups/fonts/Utopia-BoldItalic fonts/Utopia-BoldItalic
f 0444 root sys /usr/share/cups/fonts/Utopia-Italic fonts/Utopia-Italic
f 0444 root sys /usr/share/cups/fonts/Utopia-Regular fonts/Utopia-Regular
f 0444 root sys /usr/share/cups/fonts/ZapfChancery-MediumItalic fonts/ZapfChancery-MediumItalic
f 0444 root sys /usr/share/cups/fonts/ZapfDingbats fonts/ZapfDingbats
f 0444 root sys /usr/share/cups/pstoraster/Fontmap pstoraster/Fontmap
f 0444 root sys /usr/share/cups/pstoraster/gs_l2img.ps pstoraster/gs_l2img.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_pfile.ps pstoraster/gs_pfile.ps
f 0444 root sys /usr/share/cups/pstoraster/pfbtogs.ps pstoraster/pfbtogs.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_wl1_e.ps pstoraster/gs_wl1_e.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_wl2_e.ps pstoraster/gs_wl2_e.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_wl5_e.ps pstoraster/gs_wl5_e.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_wan_e.ps pstoraster/gs_wan_e.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_pdf_e.ps pstoraster/gs_pdf_e.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_sym_e.ps pstoraster/gs_sym_e.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_std_e.ps pstoraster/gs_std_e.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_dbt_e.ps pstoraster/gs_dbt_e.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_mex_e.ps pstoraster/gs_mex_e.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_mro_e.ps pstoraster/gs_mro_e.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_iso_e.ps pstoraster/gs_iso_e.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_ksb_e.ps pstoraster/gs_ksb_e.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_ttf.ps pstoraster/gs_ttf.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_pdf.ps pstoraster/gs_pdf.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_ccfnt.ps pstoraster/gs_ccfnt.ps
f 0444 root sys /usr/share/cups/pstoraster/pdf_sec.ps pstoraster/pdf_sec.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_res.ps pstoraster/gs_res.ps
f 0444 root sys /usr/share/cups/pstoraster/pdf_base.ps pstoraster/pdf_base.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_btokn.ps pstoraster/gs_btokn.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_diskf.ps pstoraster/gs_diskf.ps
f 0444 root sys /usr/share/cups/pstoraster/pdf_2ps.ps pstoraster/pdf_2ps.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_init.ps pstoraster/gs_init.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_kanji.ps pstoraster/gs_kanji.ps
f 0444 root sys /usr/share/cups/pstoraster/pdf_draw.ps pstoraster/pdf_draw.ps
f 0444 root sys /usr/share/cups/pstoraster/pdf_font.ps pstoraster/pdf_font.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_type1.ps pstoraster/gs_type1.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_fonts.ps pstoraster/gs_fonts.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_statd.ps pstoraster/gs_statd.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_lev2.ps pstoraster/gs_lev2.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_typ42.ps pstoraster/gs_typ42.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_pdfwr.ps pstoraster/gs_pdfwr.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_cidfn.ps pstoraster/gs_cidfn.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_cmdl.ps pstoraster/gs_cmdl.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_dps1.ps pstoraster/gs_dps1.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_setpd.ps pstoraster/gs_setpd.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_cmap.ps pstoraster/gs_cmap.ps
f 0444 root sys /usr/share/cups/pstoraster/gs_fform.ps pstoraster/gs_fform.ps
f 0444 root sys /usr/share/cups/pstoraster/pdf_main.ps pstoraster/pdf_main.ps
f 0444 root sys /usr/share/cups/model/deskjet.ppd ppd/deskjet.ppd
f 0444 root sys /usr/share/cups/model/laserjet.ppd ppd/laserjet.ppd
# Config files
c 0644 root sys /var/cups/conf/classes.conf conf/classes.conf
c 0644 root sys /var/cups/conf/cupsd.conf conf/cupsd.conf
f 0644 root sys /var/cups/conf/mime.convs conf/mime.convs
f 0644 root sys /var/cups/conf/mime.types conf/mime.types
c 0644 root sys /var/cups/conf/printers.conf conf/printers.conf
# Dummy printcap file for Digital UNIX and Linux...
%system dunix linux
f 0644 root sys /etc/printcap conf/printcap
%system all
# Developer files
f 0444 root sys /usr/include/cups/cups.h cups/cups.h
f 0444 root sys /usr/include/cups/http.h cups/http.h
f 0444 root sys /usr/include/cups/ipp.h cups/ipp.h
f 0444 root sys /usr/include/cups/language.h cups/language.h
f 0444 root sys /usr/include/cups/mime.h cups/mime.h
f 0444 root sys /usr/include/cups/ppd.h cups/ppd.h
f 0444 root sys /usr/include/cups/raster.h cups/raster.h
%system irix-6.5
f 0444 root sys /usr/lib32/libcups.a cups/libcups.a
%system !irix-6.5
f 0444 root sys /usr/lib/libcups.a cups/libcups.a
%system all
# Documentation files
f 0444 root sys /usr/share/cups/doc/cmp.html doc/cmp.html
f 0444 root sys /usr/share/cups/doc/cmp.pdf doc/cmp.pdf
f 0444 root sys /usr/share/cups/doc/cupsdoc.css doc/cupsdoc.css
f 0444 root sys /usr/share/cups/doc/cups.css doc/cups.css
f 0444 root sys /usr/share/cups/doc/documentation.html doc/documentation.html
f 0444 root sys /usr/share/cups/doc/idd.html doc/idd.html
f 0444 root sys /usr/share/cups/doc/idd.pdf doc/idd.pdf
f 0444 root sys /usr/share/cups/doc/images/classes.gif doc/images/classes.gif
f 0444 root sys /usr/share/cups/doc/images/cups-bar.gif doc/images/cups-bar.gif
f 0444 root sys /usr/share/cups/doc/images/cups-block-diagram.gif doc/images/cups-block-diagram.gif
f 0444 root sys /usr/share/cups/doc/images/cups-large.gif doc/images/cups-large.gif
f 0444 root sys /usr/share/cups/doc/images/cups-medium.gif doc/images/cups-medium.gif
f 0444 root sys /usr/share/cups/doc/images/cups-small.gif doc/images/cups-small.gif
f 0444 root sys /usr/share/cups/doc/images/logo.gif doc/images/logo.gif
f 0444 root sys /usr/share/cups/doc/images/navbar.gif doc/images/navbar.gif
f 0444 root sys /usr/share/cups/doc/images/printer-idle.gif doc/images/printer-idle.gif
f 0444 root sys /usr/share/cups/doc/images/printer-processing.gif doc/images/printer-processing.gif
f 0444 root sys /usr/share/cups/doc/images/printer-stopped.gif doc/images/printer-stopped.gif
f 0444 root sys /usr/share/cups/doc/index.html doc/index.html
f 0444 root sys /usr/share/cups/doc/overview.html doc/overview.html
f 0444 root sys /usr/share/cups/doc/overview.pdf doc/overview.pdf
f 0444 root sys /usr/share/cups/doc/sam.html doc/sam.html
f 0444 root sys /usr/share/cups/doc/sam.pdf doc/sam.pdf
f 0444 root sys /usr/share/cups/doc/sdd.html doc/sdd.html
f 0444 root sys /usr/share/cups/doc/sdd.pdf doc/sdd.pdf
f 0444 root sys /usr/share/cups/doc/ssr.html doc/ssr.html
f 0444 root sys /usr/share/cups/doc/ssr.pdf doc/ssr.pdf
f 0444 root sys /usr/share/cups/doc/stp.html doc/stp.html
f 0444 root sys /usr/share/cups/doc/stp.pdf doc/stp.pdf
f 0444 root sys /usr/share/cups/doc/sum.html doc/sum.html
f 0444 root sys /usr/share/cups/doc/sum.pdf doc/sum.pdf
f 0444 root sys /usr/share/cups/doc/svd.html doc/svd.html
f 0444 root sys /usr/share/cups/doc/svd.pdf doc/svd.pdf
# Man pages
%system irix
f 0444 root sys /usr/share/catman/a_man/cat1/accept.z man/accept.z
l 0444 root sys /usr/share/catman/a_man/cat1/reject.z accept.z
f 0444 root sys /usr/share/catman/u_man/cat1/backend.z man/backend.z
f 0444 root sys /usr/share/catman/u_man/cat5/classes.conf.z man/classes.conf.z
f 0444 root sys /usr/share/catman/u_man/cat5/cupsd.conf.z man/cupsd.conf.z
f 0444 root sys /usr/share/catman/a_man/cat1/cupsd.z man/cupsd.z
f 0444 root sys /usr/share/catman/a_man/cat1/enable.z man/enable.z
l 0444 root sys /usr/share/catman/a_man/cat1/disable.z enable.z
f 0444 root sys /usr/share/catman/u_man/cat1/filter.z man/filter.z
f 0444 root sys /usr/share/catman/a_man/cat1/lpadmin.z man/lpadmin.z
f 0444 root sys /usr/share/catman/a_man/cat1/lpc.z man/lpc.z
f 0444 root sys /usr/share/catman/u_man/cat1/lprm.z man/lprm.z
f 0444 root sys /usr/share/catman/u_man/cat1/lpr.z man/lpr.z
f 0444 root sys /usr/share/catman/u_man/cat1/lpstat.z man/lpstat.z
f 0444 root sys /usr/share/catman/u_man/cat1/lp.z man/lp.z
l 0444 root sys /usr/share/catman/u_man/cat1/cancel.z lp.z
f 0444 root sys /usr/share/catman/u_man/cat5/mime.convs.z man/mime.convs.z
f 0444 root sys /usr/share/catman/u_man/cat5/mime.types.z man/mime.types.z
f 0444 root sys /usr/share/catman/u_man/cat5/printers.conf.z man/printers.conf.z
%system !irix
f 0444 root sys /usr/man/man8/accept.8 man/accept.8
l 0444 root sys /usr/man/man8/reject.8 accept.8
f 0444 root sys /usr/man/man1/backend.1 man/backend.1
f 0444 root sys /usr/man/man1/classes.conf.5 man/classes.conf.5
f 0444 root sys /usr/man/man8/cupsd.8 man/cupsd.8
f 0444 root sys /usr/man/man5/cupsd.conf.5 man/cupsd.conf.5
f 0444 root sys /usr/man/man8/enable.8 man/enable.8
l 0444 root sys /usr/man/man8/disable.8 enable.8
f 0444 root sys /usr/man/man1/filter.1 man/filter.1
f 0444 root sys /usr/man/man8/lpadmin.8 man/lpadmin.8
f 0444 root sys /usr/man/man8/lpc.8 man/lpc.8
f 0444 root sys /usr/man/man1/lprm.1 man/lprm.1
f 0444 root sys /usr/man/man1/lpr.1 man/lpr.1
f 0444 root sys /usr/man/man1/lpstat.1 man/lpstat.1
f 0444 root sys /usr/man/man1/lp.1 man/lp.1
l 0444 root sys /usr/man/man1/cancel.1 lp.1
f 0444 root sys /usr/man/man5/mime.convs.5 man/mime.convs.5
f 0444 root sys /usr/man/man5/mime.types.5 man/mime.types.5
f 0444 root sys /usr/man/man5/printers.conf.5 man/printers.conf.5
# Startup script
%system all
i 0555 root sys cups cups.sh
#
# End of "$Id: cups.list 775 1999-11-04 13:35:01Z mike $".
#
+4 -4
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: cups.spec 755 1999-10-26 20:40:13Z mike $"
# "$Id: cups.spec 775 1999-11-04 13:35:01Z mike $"
#
# RPM "spec" file for the Common UNIX Printing System (CUPS).
#
@@ -26,11 +26,11 @@
Summary: Common Unix Printing System
Name: cups
Version: 1.0.1
Version: 1.0.2
Release: 0
Copyright: GPL
Group: System Environment/Daemons
Source: ftp://ftp.easysw.com/pub/cups/1.0.1/cups-1.0.1-source.tar.gz
Source: ftp://ftp.easysw.com/pub/cups/1.0.2/cups-1.0.2-source.tar.gz
Url: http://www.cups.org
Packager: Michael Sweet <mike@easysw.com>
Vendor: Easy Software Products
@@ -130,5 +130,5 @@ rm -rf $RPM_BUILD_ROOT
/usr/include/cups/*
#
# End of "$Id: cups.spec 755 1999-10-26 20:40:13Z mike $".
# End of "$Id: cups.spec 775 1999-11-04 13:35:01Z mike $".
#
+17 -16
Ver Arquivo
@@ -687,12 +687,15 @@ httpRead(http_t *http, /* I - HTTP data */
return (0);
if (http->data_encoding == HTTP_ENCODE_CHUNKED &&
http->data_remaining <= 0 &&
(http->state == HTTP_GET_SEND || http->state == HTTP_POST_RECV ||
http->state == HTTP_POST_SEND || http->state == HTTP_PUT_RECV))
http->data_remaining <= 0)
{
DEBUG_puts("httpRead: Getting chunk length...");
if (httpGets(len, sizeof(len), http) == NULL)
{
DEBUG_puts("httpRead: Could not get length!");
return (0);
}
http->data_remaining = strtol(len, NULL, 16);
}
@@ -706,9 +709,7 @@ httpRead(http_t *http, /* I - HTTP data */
* data, go idle...
*/
if (http->data_encoding == HTTP_ENCODE_CHUNKED &&
(http->state == HTTP_GET_SEND || http->state == HTTP_POST_RECV ||
http->state == HTTP_POST_SEND || http->state == HTTP_PUT_RECV))
if (http->data_encoding == HTTP_ENCODE_CHUNKED)
httpGets(len, sizeof(len), http);
if (http->state == HTTP_POST_RECV)
@@ -750,9 +751,7 @@ httpRead(http_t *http, /* I - HTTP data */
if (http->data_remaining == 0)
{
if (http->data_encoding == HTTP_ENCODE_CHUNKED &&
(http->state == HTTP_GET_SEND || http->state == HTTP_POST_RECV ||
http->state == HTTP_POST_SEND || http->state == HTTP_PUT_RECV))
if (http->data_encoding == HTTP_ENCODE_CHUNKED)
httpGets(len, sizeof(len), http);
if (http->data_encoding != HTTP_ENCODE_CHUNKED)
@@ -787,9 +786,7 @@ httpWrite(http_t *http, /* I - HTTP data */
http->activity = time(NULL);
if (http->data_encoding == HTTP_ENCODE_CHUNKED &&
(http->state == HTTP_GET_SEND || http->state == HTTP_POST_RECV ||
http->state == HTTP_POST_SEND || http->state == HTTP_PUT_RECV))
if (http->data_encoding == HTTP_ENCODE_CHUNKED)
{
if (httpPrintf(http, "%x\r\n", length) < 0)
return (-1);
@@ -834,9 +831,7 @@ httpWrite(http_t *http, /* I - HTTP data */
http->data_remaining -= bytes;
}
if (http->data_encoding == HTTP_ENCODE_CHUNKED &&
(http->state == HTTP_GET_SEND || http->state == HTTP_POST_RECV ||
http->state == HTTP_POST_SEND || http->state == HTTP_PUT_RECV))
if (http->data_encoding == HTTP_ENCODE_CHUNKED)
if (httpPrintf(http, "\r\n") < 0)
return (-1);
@@ -1358,14 +1353,18 @@ httpEncode64(char *out, /* I - String to write to */
int /* O - Content length */
httpGetLength(http_t *http) /* I - HTTP data */
{
DEBUG_printf(("httpGetLength(%08x)\n", http));
if (strcasecmp(http->fields[HTTP_FIELD_TRANSFER_ENCODING], "chunked") == 0)
{
DEBUG_puts("httpGetLength: chunked request!");
http->data_encoding = HTTP_ENCODE_CHUNKED;
http->data_remaining = 0;
}
else
{
http->data_encoding = HTTP_ENCODE_LENGTH;
http->data_encoding = HTTP_ENCODE_LENGTH;
/*
* The following is a hack for HTTP servers that don't send a
@@ -1379,6 +1378,8 @@ httpGetLength(http_t *http) /* I - HTTP data */
http->data_remaining = 2147483647;
else
http->data_remaining = atoi(http->fields[HTTP_FIELD_CONTENT_LENGTH]);
DEBUG_printf(("httpGetLength: content_length = %d\n", http->data_remaining));
}
return (http->data_remaining);
+3 -3
Ver Arquivo
@@ -3,12 +3,12 @@
<TITLE>CUPS Software Administrators Manual</TITLE>
<META NAME="AUTHOR" CONTENT="Easy Software Products">
<META NAME="COPYRIGHT" CONTENT="Copyright 1997-1999, All Rights Reserved">
<META NAME="DOCNUMBER" CONTENT="CUPS-SAM-1.0.1">
<META NAME="DOCNUMBER" CONTENT="CUPS-SAM-1.0.2">
</HEAD>
<BODY>
<CENTER><A HREF=#contents><IMG SRC="images/cups-large.gif" BORDER=0><BR>
<H1>CUPS Software Administrators Manual</H1></A><BR>
CUPS-SAM-1.0.1<BR>
CUPS-SAM-1.0.2<BR>
Easy Software Products<BR>
Copyright 1997-1999, All Rights Reserved<BR>
</CENTER>
@@ -92,7 +92,7 @@ Copyright 1997-1999, All Rights Reserved<BR>
<HR>
<H1 ALIGN=RIGHT><A NAME=1>Preface</A></H1>
This software administrators manual provides printer administration
information for the Common UNIX Printing System (&quot;CUPS&quot;) Version 1.0.1.
information for the Common UNIX Printing System (&quot;CUPS&quot;) Version 1.0.2.
<H2><A NAME=1_1>System Overview</A></H2>
The Common UNIX Printing System provides a portable printing layer for
UNIX&reg; operating systems. It has been developed by Easy Software
+4 -5
Ver Arquivo
@@ -1,6 +1,6 @@
%PDF-1.2
%âãÏÓ
1 0 obj<</Producer(htmldoc 2.0b1 Copyright 1997-1999 Michael Sweet, All Rights Reserved.)/CreationDate(D:19991012190200Z)/Title(CUPS Software Administrators Manual)/Author(Easy Software Products)>>endobj
1 0 obj<</Producer(htmldoc 2.0b1 Copyright 1997-1999 Michael Sweet, All Rights Reserved.)/CreationDate(D:19991029131928Z)/Title(CUPS Software Administrators Manual)/Author(Easy Software Products)>>endobj
2 0 obj<</Type/Encoding/BaseEncoding/WinAnsiEncoding>>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
@@ -396,7 +396,7 @@ H
“ã¿DÝ<jåš÷Áª¥µ(N°JúF¥.ƒk–—¦f7\¡ê¨ Šó ,¥ÉTë2¸‚²¥t•=<ë_]{:­WÖepMJ_Ý
Wr<(”×…/-Hà)»BY—Ï•vÉN¬W'ïRpY§äsM]Õ6¿ú[ËÇ;I—\¢ ò4«NXx!³¦.Ë?Ÿn&ñ¤3®°¸
'*J2ž¸¡.kr|Q—I<_úg8©Åq‚¥å$mU]×ôø86O&è‡+9ýé˜å$mU]WP|t33®–ôÃã?gg2/ˆU\¸#¥¯KâÚÞÿ:>¦y§\Ý?ly
IÅM[ýx.q˜¤Û)¼ìŒ+Ô¥ãΔ³ºƒçZ>oûÉëθö‘àZ7NJÓH[—Ädhkéqg\‡³Îóµ:ÀÚeR<ɹ¶.‰ NÙ¯~Þ×1D¯õvÿÃëë*¹ê‰;Šä0_·î«;®B>H¥·Ñ“·9úb}]
IÅM[ýx.q˜¤Û)¼ìŒ+Ô¥ãΔ³ºƒçZ>oûÉëθö‘àZ7NJÓH[—Ädhkéqg\‡³Îóµ:ÀÚeR<ɹ¶.‰ NÙ¯~Þ×1D¯õvÿÃëë*¹ê‰;Šä0_·î«;®B>H¥·Ñ“·9úb}]
Wz0€ÕöƒÍ¸šÎõŠõJï%NêY´Úº®ìðÇ­[6äj:‡”÷8J‹ã¸µ.…KzǢϚ¹ŒÎ—¥6³TÔ²Zôu \ùÁ1ïþ¶;®J­×F2@Ô¥píóÎ-wÉUxÑV™Bõ#sºº®½cNw>¾K®§‹°µ\*U²ic]×Þ1§»úf\­y_÷¡jÖåCQ×Åû匷ÿï·pÙÈg{¸¨/jÍ"GU—À•ì,pç–»ç:õvZ ¥Ö¨º®½cÞ¹å>¸žDa¢4Mu \{Ǽsˆ\Øw‹¦ÍbÐT—À%Ÿ¼Ø¬/®Sâu;W¥.kï˜÷"ÙÈe½}•̲습\Mu)\œd§ýÓN¸ÊîZ7;uu)\ÉðÓ½c4äŠqû‡-\Mu)\Û‘N¼ã‹ê:ãš”lËoäÒÕ¥pÁþ2¬ßÆerïF”þY4ê|S]
W²¿Y31çZ6/¿æÅuÈTËÕT—•žœzg\Iq<W•¯©t¶©.…+;­¹Lî!îÛú·§C­¥–«©nK<_zÛ–,Ÿ
pÍ[ÏaO‡úÅbS]
@@ -414,9 +414,8 @@ endobj
| ê%è@N‰ǵ‚-Ý®)’+udÀdÈ
Â!72ÄÊO-
j¨V¹ gÉ·ÈÍ ±S­Ç>Ý9š oˆJGj`3¢¬ñJñ3íÒï<¾j¹¤7´%fFÒ¹±!v¤‰Âȇ‚ñ¤íÈ;£­P½3Ƴ¶ïœZ ûúN¦˜
e l<1û+–•é# ×¾»'|qNåJHfS;(š¹¤7˜ Í'Ø1r`RXøR°d*Ò¼ž3¸hß°)ßõ,…
¡XØ](X…¹*^Û1°±^µFÃÒÇ`e¡àNÖ}bé¥
lEiG°7=)aóa0XÔ&Sõ c5ÜF{žÿd<[ÌBêl®<ä€UéUnè_³æs%,.Ï¿¥Ãâ›â€6.æ€yÞyÜñ`5¯Z¹"[ð?:ÿ XÓ87á’¿œ£¬1»à}úÒˆË`À¶óì²Í˜T-ˇv.“Û£=ê?û&dîÜ‹º SäåcmÜäÃ"4y\¹)WæÙ)gç‹ÅâÍã¦<,¡á§Í¹l ˜õÒ–ÿˆá’rÍ-p™Iâ Ã…ãroÀ–V¸œ°ö­/Ûp!¹§6}Ć+]âZÛãJÇ5\h.ÖNGGÛäÊœášç6¹œÑzÜñžK†cÑxw gÑ q9!Øó^
e l<1û+–•é# ×¾»'|qNåJHfS;(š¹¤7˜ Í'Ø1r`RXøR°d*Ò¼ž3¸hß°)ßõ,…
¡XØ](X…¹*^Û1°±^µFÃÒÇ`e¡àNÖ}bé¥
lEiG°7=)aóa0XÔ&Sõ c5ÜF{žÿd<[ÌBêl®<ä€UéUnè_³æs%,.Ï¿¥Ãâ›â€6.æ€yÞyÜñ`5¯Z¹"[ð?:ÿ XÓ87á’¿œ£¬1»à}úÒˆË`À¶óì²Í˜T-ˇv.“Û£=ê?û&dîÜ‹º SäåcmÜäÃ"4y\¹)WæÙ)gç‹ÅâÍã¦<,¡á§Í¹l ˜õÒ–ÿˆá’rÍ-p™Iâ Ã…ãroÀ–V¸œ°ö­/Ûp!¹§6}Ć+]âZÛãJÇ5\h.ÖNGGÛäÊœášç6¹œÑzÜñžK†cÑxw gÑ q9!Øó^
Ò¸°DôÑ!‰kpKÄgи²‘X!•kàø—p€MäÔ)¹/T®!½3åø‰Ê5``OJš#s
6Åhi/t®¦1±ŒÁ5Ì#ží2¸™bÔ,%=pÍ`sõ®ôT9WÏÚÁÈdrIᮚpõ)ЬÔa.W`¼L26#í§ÇeÌÕÓbŒyãÀ€«ÿìs/R˜puoŠü,M#®®Á O͸ºUE“daC®.´Q´)Ww`fÉøÆ\äêŽ&ö¹ºX¶¦«Ûá²/‹æ÷&¬påÒ®-^š÷Èׯí
+2 -2
Ver Arquivo
@@ -1,7 +1,7 @@
<HTML>
<HEAD>
<META NAME="COPYRIGHT" CONTENT="Copyright 1997-1999, All Rights Reserved">
<META NAME="DOCNUMBER" CONTENT="CUPS-SAM-1.0.1">
<META NAME="DOCNUMBER" CONTENT="CUPS-SAM-1.0.2">
<META NAME="Author" CONTENT="Easy Software Products">
<TITLE>CUPS Software Administrators Manual</TITLE>
</HEAD>
@@ -10,7 +10,7 @@
<H1 ALIGN=RIGHT>Preface</H1>
This software administrators manual provides printer administration
information for the Common UNIX Printing System ("CUPS") Version 1.0.1.
information for the Common UNIX Printing System ("CUPS") Version 1.0.2.
<H2>System Overview</H2>
+5 -4
Ver Arquivo
@@ -3,12 +3,12 @@
<TITLE>CUPS Software Users Manual</TITLE>
<META NAME="AUTHOR" CONTENT="Easy Software Products">
<META NAME="COPYRIGHT" CONTENT="Copyright 1997-1999, All Rights Reserved">
<META NAME="DOCNUMBER" CONTENT="CUPS-SUM-1.0.1">
<META NAME="DOCNUMBER" CONTENT="CUPS-SUM-1.0.2">
</HEAD>
<BODY>
<CENTER><A HREF=#contents><IMG SRC="images/cups-large.gif" BORDER=0><BR>
<H1>CUPS Software Users Manual</H1></A><BR>
CUPS-SUM-1.0.1<BR>
CUPS-SUM-1.0.2<BR>
Easy Software Products<BR>
Copyright 1997-1999, All Rights Reserved<BR>
</CENTER>
@@ -70,7 +70,7 @@ Copyright 1997-1999, All Rights Reserved<BR>
<HR>
<H1 ALIGN=RIGHT><A NAME=1>Preface</A></H1>
This software users manual describes how to use the Common UNIX
Printing System (&quot;CUPS&quot;) Version 1.0.1.
Printing System (&quot;CUPS&quot;) Version 1.0.2.
<H2><A NAME=1_1>System Overview</A></H2>
The Common UNIX Printing System provides a portable printing layer for
UNIX&reg; operating systems. It has been developed by Easy Software
@@ -418,7 +418,8 @@ using the &quot;-o gamma=value&quot; option: </P>
</PRE>
</UL>
<P>Values greater than 1000 will lighten the print, while values less
than 1000 will darken it. </P>
than 1000 will darken it. The default gamma is 2200 which matches the
sRGB specification. </P>
<H2><A NAME=4_2>Text Options</A></H2>
<P>The following options apply when printing text files. </P>
<H3><A NAME=4_2_1>Setting the Number of Characters Per Inch</A></H3>
+120 -118
Ver Arquivo
@@ -1,6 +1,6 @@
%PDF-1.2
%âãÏÓ
1 0 obj<</Producer(htmldoc 2.0b1 Copyright 1997-1999 Michael Sweet, All Rights Reserved.)/CreationDate(D:19991026144719Z)/Title(CUPS Software Users Manual)/Author(Easy Software Products)>>endobj
1 0 obj<</Producer(htmldoc 2.0b1 Copyright 1997-1999 Michael Sweet, All Rights Reserved.)/CreationDate(D:19991029131930Z)/Title(CUPS Software Users Manual)/Author(Easy Software Products)>>endobj
2 0 obj<</Type/Encoding/BaseEncoding/WinAnsiEncoding>>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
@@ -114,15 +114,15 @@
109 0 obj<</Subtype/Link/Rect[177.9 277.2 194.1 290.2]/Border[0 0 0]/Dest[243 0 R/XYZ null 474 0]>>endobj
110 0 obj<</Subtype/Link/Rect[194.1 277.2 231.7 290.2]/Border[0 0 0]/Dest[243 0 R/XYZ null 474 0]>>endobj
111 0 obj<</Subtype/Link/Rect[231.7 277.2 278.7 290.2]/Border[0 0 0]/Dest[243 0 R/XYZ null 474 0]>>endobj
112 0 obj<</Subtype/Link/Rect[108.0 264.0 130.9 277.0]/Border[0 0 0]/Dest[243 0 R/XYZ null 353 0]>>endobj
113 0 obj<</Subtype/Link/Rect[130.9 264.0 165.8 277.0]/Border[0 0 0]/Dest[243 0 R/XYZ null 353 0]>>endobj
114 0 obj<</Subtype/Link/Rect[144.0 250.8 177.9 263.8]/Border[0 0 0]/Dest[243 0 R/XYZ null 259 0]>>endobj
115 0 obj<</Subtype/Link/Rect[177.9 250.8 194.1 263.8]/Border[0 0 0]/Dest[243 0 R/XYZ null 259 0]>>endobj
116 0 obj<</Subtype/Link/Rect[194.1 250.8 232.9 263.8]/Border[0 0 0]/Dest[243 0 R/XYZ null 259 0]>>endobj
117 0 obj<</Subtype/Link/Rect[232.9 250.8 244.8 263.8]/Border[0 0 0]/Dest[243 0 R/XYZ null 259 0]>>endobj
118 0 obj<</Subtype/Link/Rect[244.8 250.8 294.6 263.8]/Border[0 0 0]/Dest[243 0 R/XYZ null 259 0]>>endobj
119 0 obj<</Subtype/Link/Rect[294.6 250.8 312.0 263.8]/Border[0 0 0]/Dest[243 0 R/XYZ null 259 0]>>endobj
120 0 obj<</Subtype/Link/Rect[312.0 250.8 331.6 263.8]/Border[0 0 0]/Dest[243 0 R/XYZ null 259 0]>>endobj
112 0 obj<</Subtype/Link/Rect[108.0 264.0 130.9 277.0]/Border[0 0 0]/Dest[243 0 R/XYZ null 340 0]>>endobj
113 0 obj<</Subtype/Link/Rect[130.9 264.0 165.8 277.0]/Border[0 0 0]/Dest[243 0 R/XYZ null 340 0]>>endobj
114 0 obj<</Subtype/Link/Rect[144.0 250.8 177.9 263.8]/Border[0 0 0]/Dest[243 0 R/XYZ null 246 0]>>endobj
115 0 obj<</Subtype/Link/Rect[177.9 250.8 194.1 263.8]/Border[0 0 0]/Dest[243 0 R/XYZ null 246 0]>>endobj
116 0 obj<</Subtype/Link/Rect[194.1 250.8 232.9 263.8]/Border[0 0 0]/Dest[243 0 R/XYZ null 246 0]>>endobj
117 0 obj<</Subtype/Link/Rect[232.9 250.8 244.8 263.8]/Border[0 0 0]/Dest[243 0 R/XYZ null 246 0]>>endobj
118 0 obj<</Subtype/Link/Rect[244.8 250.8 294.6 263.8]/Border[0 0 0]/Dest[243 0 R/XYZ null 246 0]>>endobj
119 0 obj<</Subtype/Link/Rect[294.6 250.8 312.0 263.8]/Border[0 0 0]/Dest[243 0 R/XYZ null 246 0]>>endobj
120 0 obj<</Subtype/Link/Rect[312.0 250.8 331.6 263.8]/Border[0 0 0]/Dest[243 0 R/XYZ null 246 0]>>endobj
121 0 obj<</Subtype/Link/Rect[144.0 237.6 177.9 250.6]/Border[0 0 0]/Dest[246 0 R/XYZ null 782 0]>>endobj
122 0 obj<</Subtype/Link/Rect[177.9 237.6 194.1 250.6]/Border[0 0 0]/Dest[246 0 R/XYZ null 782 0]>>endobj
123 0 obj<</Subtype/Link/Rect[194.1 237.6 232.9 250.6]/Border[0 0 0]/Dest[246 0 R/XYZ null 782 0]>>endobj
@@ -334,8 +334,8 @@
187 0 obj<</D[243 0 R/XYZ null 782 null]>>endobj
188 0 obj<</D[243 0 R/XYZ null 610 null]>>endobj
189 0 obj<</D[243 0 R/XYZ null 474 null]>>endobj
190 0 obj<</D[243 0 R/XYZ null 353 null]>>endobj
191 0 obj<</D[243 0 R/XYZ null 259 null]>>endobj
190 0 obj<</D[243 0 R/XYZ null 340 null]>>endobj
191 0 obj<</D[243 0 R/XYZ null 246 null]>>endobj
192 0 obj<</D[246 0 R/XYZ null 782 null]>>endobj
193 0 obj<</D[246 0 R/XYZ null 685 null]>>endobj
194 0 obj<</D[246 0 R/XYZ null 589 null]>>endobj
@@ -387,8 +387,8 @@ ki
?UçŠN#éùV!ž+çxåóGøUxE\Qå*ýEAŽ}Ew€øèp‰ñ%&Wªà*§¢ÄdCŒº' àåpƒÑ¦¤É•+¸Êz“‘a€çŠX²Ñ°‰yÑä:Új…+,OXò"L>µ——`ÉF}bžnï)ÖÅe®jFTÔCF#ÐSÅjå³ÊÃ)ö1Ê\qŰÓRÿ-‡ÚÅßù½&o %—lp…ËË{HÕtÔ«·“|ÿâSÿr€+¤T®”)‡Ïå0YÝãêŽæýbR°2?$—àEQÎs…¼(Êu.i"‡så†rè*WÆçJ_š¹bvtè6WÄæ/Mæ\áK“Ã#gk~\òÅÉü+{q2嚄̗€sËîGóòðm%—›WÌ–ùrËê§ÞÅueÛï¼Û۸ΧŒ¶»i6Yç–×®ó¾M}r&J®%‡k©æ*ϤoO\‚í¾ÔøÕ©uqÎáš+¹rõùrÈv_j׺èq¸<%—PŸ;ð7mÔöªËM­uqÍáZ+¸Ò¦ÊÊ-ϰ\sMø²Vq®@Á6£e®ƒÁêrçj]œq¸fM®gÑð/“ÝÊ-h®µšËWqÕ¯ó¡¸wOr¾ó'áÑlp\V®ý=
¯ÒƒEÕ±$*®¥ÒUãQD£²“y>lT¸±ìæ:¾Þ8uøìU®”»8çp5epü8@mb¯\¥´”êŸs{ê]ô8\FÕC§c Â¨
†ëœF¤È’_(»¸æpÕ‰j`¾§   \žmç’®XÏp¸êj3eo–3@…Q†ëüEö¿šËçpÕÕ/žJ<—ß—â:_7—¢QVw°«m¹Lx83çjê†â:_7—î` Z/{v¸¤†+Rë¼â:‚«Ù(V:XÀ„QAa¢‡á)ç¶ÚÅæu>W³‘P:"×Å•©ýW¦‰£×ù\ÍFZ®ÌW¬Œ7ÏaH­‹Íë|®f£PéˆP\K —ôŠÜºNQ\çÃp5i¹R~UêÃñ+×èu¥â:†«Ñ¨\ýü‰(®Ma¸þZ*»Ø¸Î‡áj4Òr?Œ*Ô£ÙUmtñ(Ú4®z#®Í¨~ê'š.Ö¯ó¡¸ê´\±E®zuë×ùP\õFZ®ˆjƒÓlï7ºX¿Î‡âª7
kiª'.aËO4\¥PµÒÅÚu>Ÿk†äò×¥ŸýòqÛc©îbí:Ž«ÖH”»ÂÚá*å–ãöG îbí:ޫ֍G¥X® À­S
WéýPŠ.îE›ÊUmÕ#¢øÈåõË•µqU¯ó!¹wË]Œ°\ #®\ÏŸ‚JAäª6JëS%<pÉž¹¤æ‡â:’«Ú(«I¶ô°\K#®¢• 8\•F²š§Npå®j£°:ÁÄ‘«;÷pÝ#Wå:–«Ú(V$ão¹²q¹bW¥Qz>U>oòŽÎ•q¸*d¹—Ù)Þ0YVZà’®j#q>ÿzð\IŸ\åë|h®j£´q^éWÊáª6ªE‚bÏe²\Fq…í\9‡«Ú¨º2"'¸J×ùð\µF•¹6ú.Æ®j£jì¹:·7|C.á•·hꀟÊUkô¹¼XL‡á:½ @ÓEÉáª7z(mEXàr§<îó¿9¿¾“k*9°²|gº·Ù&—Û{à¯\¯\Sàš¿P®`š\á+×+×+×+×+ŽkñÊõÊÕ?—gε]ù ï•RêŽËõ°‡™é.¥îÈ\WõëkÕ—
kiª'.aËO4\¥PµÒÅÚu>Ÿk†äò×¥ŸýòqÛc©îbí:Ž«ÖH”»ÂÚá*å–ãöG îbí:ޫ֍G¥X® À­S
WéýPŠ.îE›ÊUmÕ#¢øÈåõË•µqU¯ó!¹wË]Œ°\ #®\ÏŸ‚JAäª6JëS%<pÉž¹¤æ‡â:’«Ú(«I¶ô°\K#®¢• 8\•F²š§Npå®j£°:ÁÄ‘«;÷pÝ#Wå:–«Ú(V$ão¹²q¹bW¥Qz>U>oòŽÎ•q¸*d¹—Ù)Þ0YVZà’®j#q>ÿzð\IŸ\åë|h®j£´q^éWÊáª6ªE‚bÏe²\Fq…í\9‡«Ú¨º2"'¸J×ùð\µF•¹6ú.Æ®j£jì¹:·7|C.á•·hꀟÊUkô¹¼XL‡á:½ @ÓEÉáª7z(mEXàr§<îó¿9¿¾“k*9°²|gº·Ù&—Û{à¯\¯\Sàš¿P®`š\á+×+×+×+×+ŽkñÊõÊÕ?—gε]ù ï•RêŽËõ°‡™é.¥îÈ\WõëkÕ—
•Þ0§¨«>
PŸTyŠ‹RÚÞs‰FúF5O¿|<Õ¬ËàÚT7C{âúÜ\ÑT_敟;>cnTur­«´.©8Qª¾Ð0=mñKÔÍ£N®å\ ZZ‹ò«¥oÔê2¸EejöêŽÊ <ÂJšL½.ƒ+¨ZJ/\ùóÁÓE¹nùÕµçÓze]׬òÑýp¥§ƒBy[úÐ’ž³+”uù\YŸ\qéÄ::{—’Ë:'ŸkꪶùÕŸZ=ÞIûä%çYuÖÀÒ ™5ui\þéøt;‰g½q…åm8QSú³ñ$-ui\³Ó㈻¸Lâùʯᬧ –U“´UuI\óÓãØ>™`®ôü¯S
T“´UuI\AùÑ-̸:ÒO¿Î/¶eY«¤tGJ_—ĵ»ÿuzLË^¹fº_ìxJIÅm[ýx.qœ¤»)¼î+Ô¥ãÏ”óLØ’ºƒçŠŽo÷—7½q&nœU¦‘¶.‰+>ÊÐÎÒ“Þ¸Žgu€µÏ¤x–sm]œ³_ý¢7®SˆÞèíá‹Â’/Ö×Ur5éq¾îÜW\¥|ZoãgosòÅúº®ìhÑî›qµë•ëUÞKœ6³hµu)\ùñŸ;·lÈÕv+ïqTÇIg]
@@ -404,10 +404,14 @@ endobj
ùÀÊ!é=ÖX9Q+p–ÛCÇ>3€³=2pÌ‘1 x“tP©˜g@©—œÇ Ü¿3\sp§épÆšîÀ•ÕÁ ×› ©ô
XÈzÆÀÿSÃ 3LþLfÀB^XlG8Ì€¥Lg
| $è@N‰ÇaÁÖn ×É•92`2äáPbí«–Æ 5T«\(Ì ±×…³ä[
f†Ø«ÖcŸîÍ…7Ä¥#3°(L
f†Ø«ÖcŸîÍ…7Ä¥#3°(L
ÑOFÖx¥x™Àöi‰Ÿ=¾j¹¤7¶%æFÒ…±!ö¤‰Âȇ‚ñ¤íÉ;£­P½3Ƴ¶ïœZ ûú^¦˜
e l<1û+–Èô‘‚…‰kß‹=>¸ r¥¤³©Í
È\Ò L†æì¹M0),|(X2i^/\´OØ–o––P,ì.”¬Â\oí˜ØX¯Z£aéã°²¿Pr'›!±ôR¶¢´ØÛ”°ý0,j“©z±Zn£ž-æ!õƒ6WrÀêßtŽ*wôÙð¹R—çßS‹añmq@sÀ<ï2éy°Ú×F\±Ç-ø/¬i\˜pI_.QÖ˜_ñþúÚˆË`ÀvóìºË™Tˇn.“; =éÿö]Èþ»KC.ê2Li×Oq“«Ðäq¦\¹g§\\®V«·OÛò¸Z]…†miÌecÀ¬—®üG —tkiËLG.—{¶¶ÂåÜ€uo}á¸äÔ† ÉE8µ¢ 6ô\EèׯW6­áBs±v:zÒøÄ&Wî ײ°ÉåŒÖãŽ7ð\2œŠÆÓ¸¸[8#ˆË éÀž÷R¸äd¬Æå€%¢I\£[">ë€Æ•OÄ
©\#Ç¿„l"ר–HÉ}¡ré)ÇOT®{RÒ™k´)FK{¡s4ň‰e ®q¦ñl—Á5Ê£fp¸(éch›kpí §Êñ¸ÖF “K
w¥Ð„kHQd¥s¹†ãe’±¹i?ƒ8.c®\CøgŸ{‘„«Sägi
f|jÆÕ¯*š$ rõé r M¹ú3KÆ7æ"çP÷´0±ÏÕDzÅ0]Ý—}Y4¿7a…«vmñÚ¼Gv¸¶¶hoÈf›Â®B^¹3X6¹,
È\Ò L†æì¹M0),|(X2i^/\´OØ–o––P,ì.”¬Â\oí˜ØX¯Z£aéã°²¿Pr'›!±ôR¶¢´ØÛ”°ý0,j“©z±Zn£ž-æ!õƒ6WrÀêßtŽ*wôÙð¹R—çßS‹añmq@sÀ<ï2éy°Ú×F\±Ç-ø/¬i\˜pI_.QÖ˜_ñþúÚˆË`ÀvóìºË™Tˇn.“; =éÿö]Èþ»KC.ê2Li×Oq“«Ðäq¦\¹g§\\®V«·OÛò¸Z]…†miÌecÀ¬—®üG —tkiËLG.—{¶¶ÂåÜ€uo}á¸äÔ† ÉE8µ¢ 6ô\EèׯW6­áBs±v:zÒøÄ&Wî ײ°ÉåŒÖãŽ7ð\2œŠÆÓ¸¸[8#ˆË éÀž÷R¸äd¬Æå€%¢I\£[">ë€Æ•OÄ
Ùå¦p«wÆ2øÖV_lrñS«T×özb—Ë ½‘º=&—Ì.U\²Ë·¶ûÐ1/Þ_õðž‹~¸¶å —ï_Þ÷òñ½qíG­Ã /VO}}vŸ\ûa»[]¨Çéú©ÏÏí›ë0p»««‹]¹\­®ŸžzÿÈA¸F(|ÿ&}ó ß¼ÿý'qûIÈ?‰ÛèÓÍ'qÝÜ ùãß<‹ü—?ýú?|ùI_úòUüá‡ÿþ퇟ÿVþç¶Õ½¸½ÝµúÝ|'ÞÝ~¸¹{nõ./þðîö&º¹ÛÕ|÷i÷û»‡¿šüðõ/ç¿
_~ùñ·?þúu_ïþÃÍÇÒúåþòå?þíßÝvîÓwï¶ÿ÷éïÄçŸÙî‡_EöÓ¶GÿûÓ»¦‰Ü¢ü?¬ïendstream
endobj
203 0 obj
@@ -524,14 +528,12 @@ endobj
xÚ­VÛnÛ8}÷W RÈ‘jÅ÷éîK»ÞFýF¢,v)KR6ü÷!%9±ã&ŠNhÍåÌ™3Cý?Ê`Œ?Læô[4£OùèÃçd³t y…Ïæ‹E:‡¼¼¼­µvBm€ÁÚ
å¹ý#ÿÆSȲhšLVÑô S{p{çyã`'¤„šm94Úrð5S ƒÛ2!ÙƒÄGŸrh·)ä5wƒ‘ƒ½80ïYQó²³%˜7›¤×”Wê‚É.1lC¨†Y&%— -`\϶þŠÎ‡Ìz‹@(·â~§íiøzžN)p®Ñ³ƒ΃®¹ö¯iw´\Jã<óO¹º„B7
SåÇÞxETÔ„¡š¾¸Œï!ÆÄ@RÂÝ×üîÛÓ˜ ùö@öà"1 Z•àŽø÷°×-ì˜òDãÓÂå ºPÎERa,'ò\ø¾h­å"Ò}Ô‰’W¬•~h2²]HæÜ3ÄÂz”Eïvàô1ˆN&'4ÿЉÛs%$W¬á/­m‡qý"Fû;@ZHÖ¿Dy˜ßg ûž{Oܰº³cü kh”ýÞ rP ¥A¥t8C‡=
SåÇÞxETÔ„¡š¾¸Œï!ÆÄ@RÂÝ×üîÛÓ˜ ùö@öà"1 Z•àŽø÷°×-ì˜òDãÓÂå ºPÎERa,'ò\ø¾h­å"Ò}Ô‰’W¬•~h2²]HæÜ3ÄÂz”Eïvàô1ˆN&'4ÿЉÛs%$W¬á/­m‡qý"Fû;@ZHÖ¿Dy˜ßg ûž{Oܰº³cü kh”ýÞ rP ¥A¥t8C‡=
ªk+l¤ Tgq¸xéRø[ïø–š‹ap!D‡#ýxÑ`Æ]ÍUÐ*y§.MTDŸ¢‡1÷¢h%‹„'f»éÄšOt÷.½s!&b0(㓪۰£
t¯‚7*OƒÄl®`†Óÿ‘ôf1£SÃKÁnþœýN˜Í àÕêÃõì@éþ˜`ÞžàÀïQµÌ»|4NÇx{ÐGFßþ‚éäÓg«ÙÀt1Æ¿ñ$ážî4]-#„ðd„n™Ý£Æ W%1K#UVáv\‡ªd¶|¨á%w…(¡à<ÎGÈç,]á|êb7CiúÛšÂ; ¬Çõez2‰1À0ŒëN™ð§H¤àV\Ðg§ñ“öõëuôÕ½wñn~<NýÐ]Ø…6ûp÷
¾QÜ
TÛ$E(ñ™u¼ßÞýÒúŒæ#AÇvßñ0ï«Vú™›XJæQ0ÝžBqiØpxÐá8{¿Ÿ›ªè:†;áh¿ÝÆØ7¹mùѺXvq²ù*Á|¹$ý Ç÷õ=ÜëÊ慨ïŽ^Šð=«e’Ü’h,®Çd¼¤ï&«Yº‚ñùw7G?Ï ñ endstream
ªk+l¤ Tgq¸xéRø[ïø–š‹ap!D‡#ýxÑ`Æ]ÍUÐ*y§.MTDŸ¢‡1÷¢h%‹„'f»éÄšOt÷.½s!&b0(㓪۰£
t¯‚7*OƒÄl®`†Óÿ‘ôf1£SÃKÁnþœýN˜Í àÕêÃõì@éþ˜`ÞžàÀïQµÌ»|4NÇx{ÐGFßþ‚éäÓg«ÙÀt1Æ¿ñ$ážî4]-#„ðd„n™Ý£Æ W%1K#UVáv\‡ªd¶|¨á%w…(¡à<ÎGÈç,]á|êb7CiúÛšÂ; ¬Çõez2‰1À0ŒëN™ð§H¤àV\Ðg§ñ“öõëuôÕ½wñn~<NýÐ]Ø…6ûp÷
¾QÜ
TÛ$E(ñ™u¼ßÞýÒúŒæ#AÇvßñ0ï«Vú™›XJæQ0ÝžBqiØpxÐá8{¿Ÿ›ªè:†;áh¿ÝÆØ7¹mùѺXvq²ù*Á|¹$ý Ç÷õ=ÜëÊ慨ïŽ^Šð=«e’Ü’h,®Çd¼¤ï&«Yº‚ñùw7G?Ï ñ endstream
endobj
910
230 0 obj
910
endobj
231 0 obj<</Type/Page/Parent 200 0 R/Contents 232 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 4 0 R/F6 6 0 R/F8 7 0 R/F9 8 0 R>>>>/Annots 15 0 R>>endobj
@@ -615,8 +617,8 @@ endobj
ïß;Ðy)t"
cWÛ­ç +àPÔùRhHµÊÑ‹Q0c ªR$2Ý‘)Cfå?dZdÜHUŒÖK¾ðp>ðV¨#O–9¢ý‡wpEoxÁÄ)ð6h•B€¾]°ð,³ Rúè\ñ
•—™0"ÛÑSg0dšâžeê¹òá
ïß;Ðy)t"
cWÛ­ç +àPÔùRhHµÊÑ‹Q0c ªR$2Ý‘)Cfå?dZdÜHUŒÖK¾ðp>ðV¨#O–9¢ý‡wpEoxÁÄ)ð6h•B€¾]°ð,³ Rúè\ñ
z¶CÆŽ<•ZâWäV—D/j<V¾ÛÆ~ÔŠ\–r(ðÏj1NÞ <ÖWJeu£,º'…’—r+²ŠDÁ§dƒœ
ûrÀÅl¸!ÆØ6ŒHG»³G.`ÛYcE`d† Có*
bËIdnm06Z)V½@îsþ(úéȸ^£MŒªèÒwy‰–­¶6´¥°Ñ¡uT§ÂüUéΩò£•ñ­®s°¾¨æ½IèÇäöjõ½®L+ã5Uãa•¡èû¶•ªd¼ÉÜn§l¾ñljñ¾IáPe“†&4ÞXoL#¢MMmC”8%Èä£h^Ò9Q…Ñ*£bÚ©Z3%2ñ$+ôò›
ŒÁÜÃóÝ¡ÚM=¼…¬„~œt.DÁs7-nî zd§OqL±b¾êœÃQÕ¢9F©¡¼  ¨ K†ôÑÊ4·ƒä4Ut›Ôðe6,תÎs®ñZqF°N°jP­_P÷JL€ÙÀJ¦©Ð¢‘½TN°©‹:ˆŸ¨2{6?k¹–Ï4£K×H1/š6KS?Ø/Úµ›Åóñì?î>â
|‹ñ^Ñ×aÐZÀý pÈÂ=˜½žõÀÑøàVÂ&sWãwbÕ„ï‚ÿRëÒÊÙrü[ÒžÒ¤á+¬&³­ŽdåÀãX9ð«†ËehSôQ QôÙ¸Ø×ݺãôKt¿ú¡˜n汄,x$! >MhÚ:¶ñ÷}îÒÐriH{»ù(F»cÙXðH6|šÍ$l5ï3¹ÜyËv
@@ -837,101 +839,101 @@ xref
0000011801 00000 n
0000011907 00000 n
0000012013 00000 n
0000011801 00000 n
0000011907 00000 n
0000012013 00000 n
0000012119 00000 n
0000012225 00000 n
0000012331 00000 n
0000012437 00000 n
0000012543 00000 n
0000012649 00000 n
0000012755 00000 n
0000012861 00000 n
0000012967 00000 n
0000013073 00000 n
0000013179 00000 n
0000013285 00000 n
0000013391 00000 n
0000013497 00000 n
0000013603 00000 n
0000013709 00000 n
0000013815 00000 n
0000013921 00000 n
0000014027 00000 n
0000014133 00000 n
0000014239 00000 n
0000014345 00000 n
0000014451 00000 n
0000014557 00000 n
0000014663 00000 n
0000014769 00000 n
0000014875 00000 n
0000014981 00000 n
0000015087 00000 n
0000015193 00000 n
0000015299 00000 n
0000015405 00000 n
0000015511 00000 n
0000015617 00000 n
0000015723 00000 n
0000015829 00000 n
0000015935 00000 n
0000016041 00000 n
0000016147 00000 n
0000017217 00000 n
0000017251 00000 n
0000017285 00000 n
0000017810 00000 n
0000017859 00000 n
0000017908 00000 n
0000017957 00000 n
0000018006 00000 n
0000018055 00000 n
0000018104 00000 n
0000018153 00000 n
0000018202 00000 n
0000018251 00000 n
0000018300 00000 n
0000018349 00000 n
0000018398 00000 n
0000018447 00000 n
0000018496 00000 n
0000018545 00000 n
0000018594 00000 n
0000018643 00000 n
0000018692 00000 n
0000018741 00000 n
0000018790 00000 n
0000018839 00000 n
0000018888 00000 n
0000018937 00000 n
0000018986 00000 n
0000019035 00000 n
0000019084 00000 n
0000019133 00000 n
0000019182 00000 n
0000019231 00000 n
0000019280 00000 n
0000019329 00000 n
0000019378 00000 n
0000019427 00000 n
0000019476 00000 n
0000019525 00000 n
0000019574 00000 n
0000019623 00000 n
0000019672 00000 n
0000019901 00000 n
0000020053 00000 n
0000026422 00000 n
0000026444 00000 n
0000026557 00000 n
0000026659 00000 n
0000026679 00000 n
0000026810 00000 n
0000027572 00000 n
0000012119 00000 n
0000012225 00000 n
0000012331 00000 n
0000012437 00000 n
0000012543 00000 n
0000012649 00000 n
0000012755 00000 n
0000012861 00000 n
0000012967 00000 n
0000013073 00000 n
0000013179 00000 n
0000013285 00000 n
0000013391 00000 n
0000013497 00000 n
0000013603 00000 n
0000013709 00000 n
0000013815 00000 n
0000013921 00000 n
0000014027 00000 n
0000014133 00000 n
0000014239 00000 n
0000014345 00000 n
0000014451 00000 n
0000014557 00000 n
0000014663 00000 n
0000014769 00000 n
0000014875 00000 n
0000014981 00000 n
0000015087 00000 n
0000015193 00000 n
0000015299 00000 n
0000015405 00000 n
0000015511 00000 n
0000015617 00000 n
0000015723 00000 n
0000015829 00000 n
0000015935 00000 n
0000016041 00000 n
0000016147 00000 n
0000017217 00000 n
0000017251 00000 n
0000017285 00000 n
0000017810 00000 n
0000017859 00000 n
0000017908 00000 n
0000017957 00000 n
0000018006 00000 n
0000018055 00000 n
0000018104 00000 n
0000018153 00000 n
0000018202 00000 n
0000018251 00000 n
0000018300 00000 n
0000018349 00000 n
0000018398 00000 n
0000018447 00000 n
0000018496 00000 n
0000018545 00000 n
0000018594 00000 n
0000018643 00000 n
0000018692 00000 n
0000018741 00000 n
0000018790 00000 n
0000018839 00000 n
0000018888 00000 n
0000018937 00000 n
0000018986 00000 n
0000019035 00000 n
0000019084 00000 n
0000019133 00000 n
0000019182 00000 n
0000019231 00000 n
0000019280 00000 n
0000019329 00000 n
0000019378 00000 n
0000019427 00000 n
0000019476 00000 n
0000019525 00000 n
0000019574 00000 n
0000019623 00000 n
0000019672 00000 n
0000019901 00000 n
0000020053 00000 n
0000026422 00000 n
0000026444 00000 n
0000026557 00000 n
0000026659 00000 n
0000026679 00000 n
0000026810 00000 n
0000027573 00000 n
0000027594 00000 n
0000027734 00000 n
0000028096 00000 n
0000028117 00000 n
0000028257 00000 n
0000029171 00000 n
0000028116 00000 n
0000029192 00000 n
0000029332 00000 n
+4 -3
Ver Arquivo
@@ -2,7 +2,7 @@
<HEAD>
<META NAME="Description" CONTENT="Common UNIX Printing System Software Users Manual">
<META NAME="COPYRIGHT" CONTENT="Copyright 1997-1999, All Rights Reserved">
<META NAME="DOCNUMBER" CONTENT="CUPS-SUM-1.0.1">
<META NAME="DOCNUMBER" CONTENT="CUPS-SUM-1.0.2">
<META NAME="Author" CONTENT="Easy Software Products">
<TITLE>CUPS Software Users Manual</TITLE>
</HEAD>
@@ -11,7 +11,7 @@
<H1 ALIGN=RIGHT>Preface</H1>
This software users manual describes how to use the Common UNIX Printing
System ("CUPS") Version 1.0.1.
System ("CUPS") Version 1.0.2.
<H2>System Overview</H2>
@@ -428,7 +428,8 @@ using the "-o gamma=value" option:
</PRE></UL>
<P>Values greater than 1000 will lighten the print, while values less
than 1000 will darken it.
than 1000 will darken it. The default gamma is 2200 which matches the
sRGB specification.
<H2>Text Options</H2>
+75 -32
Ver Arquivo
@@ -131,17 +131,16 @@ LA_line_attributes(int num_params, /* I - Number of parameters */
if (num_params == 0)
{
Outputf("3.0 setmiterlimit\n");
Outputf("0 setlinecap\n");
Outputf("0 setlinejoin\n");
MiterLimit = 3.0f;
LineCap = 0;
LineJoin = 0;
}
else for (i = 0; i < (num_params - 1); i += 2)
switch ((int)params[i].value.number)
{
case 1 :
Outputf("%d setlinecap\n",
params[i + 1].value.number == 1 ? 0 :
params[i + 1].value.number == 4 ? 1 : 2);
LineCap = params[i + 1].value.number == 1 ? 0 :
params[i + 1].value.number == 4 ? 1 : 2;
break;
case 2 :
switch ((int)params[i + 1].value.number)
@@ -149,21 +148,27 @@ LA_line_attributes(int num_params, /* I - Number of parameters */
case 1 :
case 2 :
case 3 :
Outputf("0 setlinejoin\n");
LineJoin = 0;
break;
case 5 :
Outputf("2 setlinejoin\n");
LineJoin = 2;
break;
default :
Outputf("1 setlinejoin\n");
LineJoin = 1;
break;
}
break;
case 3 :
Outputf("%f setmiterlimit\n",
1.0 + 0.5 * (params[i + 1].value.number - 1.0));
MiterLimit = 1.0 + 0.5 * (params[i + 1].value.number - 1.0);
break;
}
if (PageDirty)
{
printf("%.1f setmiterlimit\n", MiterLimit);
printf("%d setlinecap\n", LineCap);
printf("%d setlinejoin\n", LineJoin);
}
}
@@ -197,7 +202,7 @@ NP_number_pens(int num_params, /* I - Number of parameters */
if (num_params == 0)
PenCount = 8;
else if (num_params == 1)
else if (num_params == 1 && params[0].value.number <= 1024)
PenCount = (int)params[0].value.number;
else
fprintf(stderr, "WARNING: HP-GL/2 \'NP\' command with invalid number of parameters (%d)!\n",
@@ -206,7 +211,11 @@ NP_number_pens(int num_params, /* I - Number of parameters */
PC_pen_color(0, NULL);
for (i = 0; i <= PenCount; i ++)
Outputf("/W%d { DefaultPenWidth PenScaling mul setlinewidth } bind def\n", i);
Pens[i].width = PenWidth;
if (PageDirty)
for (i = 0; i <= PenCount; i ++)
printf("/W%d { DefaultPenWidth PenScaling mul setlinewidth } bind def\n", i);
}
@@ -235,26 +244,44 @@ PC_pen_color(int num_params, /* I - Number of parameters */
{
for (i = 0; i <= PenCount; i ++)
if (i < 8)
Outputf("/P%d { %.3f %.3f %.3f setrgbcolor } bind def\n",
i, standard_colors[i][0],
standard_colors[i][1], standard_colors[i][2]);
{
Pens[i].rgb[0] = standard_colors[i][0];
Pens[i].rgb[1] = standard_colors[i][1];
Pens[i].rgb[2] = standard_colors[i][2];
}
else
Outputf("/P%d { 0.0 0.0 0.0 setrgbcolor } bind def\n", i);
{
Pens[i].rgb[0] = 0.0f;
Pens[i].rgb[1] = 0.0f;
Pens[i].rgb[2] = 0.0f;
}
if (PageDirty)
for (i = 0; i <= PenCount; i ++)
Outputf("/P%d { %.3f %.3f %.3f setrgbcolor } bind def\n",
i, Pens[i].rgb[0], Pens[i].rgb[1], Pens[i].rgb[2]);
}
else if (num_params == 1)
else if (num_params == 1 || num_params == 4)
{
i = (int)params[0].value.number;
Outputf("/P%d { %.3f %.3f %.3f setrgbcolor } bind def\n",
i, standard_colors[i & 7][0], standard_colors[i & 7][1],
standard_colors[i & 7][2]);
if (num_params == 1)
{
Pens[i].rgb[0] = standard_colors[i & 7][0];
Pens[i].rgb[1] = standard_colors[i & 7][1];
Pens[i].rgb[2] = standard_colors[i & 7][2];
}
else
{
Pens[i].rgb[0] = params[1].value.number;
Pens[i].rgb[1] = params[2].value.number;
Pens[i].rgb[2] = params[3].value.number;
}
if (PageDirty)
Outputf("/P%d { %.3f %.3f %.3f setrgbcolor } bind def\n",
i, Pens[i].rgb[0], Pens[i].rgb[1], Pens[i].rgb[2]);
}
else if (num_params == 4)
Outputf("/P%d { %.3f %.3f %.3f setrgbcolor } bind def\n",
(int)params[0].value.number,
(params[1].value.number - ColorRange[0][0]) / ColorRange[0][1],
(params[2].value.number - ColorRange[1][0]) / ColorRange[1][1],
(params[3].value.number - ColorRange[2][0]) / ColorRange[2][1]);
else
fprintf(stderr, "WARNING: HP-GL/2 \'PC\' command with invalid number of parameters (%d)!\n",
num_params);
@@ -299,8 +326,18 @@ PW_pen_width(int num_params, /* I - Number of parameters */
}
if (num_params == 2)
Outputf("/W%d { %.1f PenScaling mul setlinewidth } bind def W%d\n",
(int)params[1].value.number, w, (int)params[1].value.number);
{
pen = (int)params[1].value.number;
Pens[pen].width = w;
if (PageDirty)
{
Outputf("/W%d { %.1f PenScaling mul setlinewidth } bind def\n", pen, w);
if (pen == PenNumber)
Outputf("W%d\n", PenNumber);
}
}
else if (num_params < 2)
{
/*
@@ -308,10 +345,16 @@ PW_pen_width(int num_params, /* I - Number of parameters */
*/
for (pen = 0; pen <= PenCount; pen ++)
Outputf("/W%d { %.1f PenScaling mul setlinewidth } bind def\n",
pen, w);
Pens[pen].width = w;
Outputf("W%d\n", PenNumber);
if (PageDirty)
{
for (pen = 0; pen <= PenCount; pen ++)
Outputf("/W%d { %.1f PenScaling mul setlinewidth } bind def\n",
pen, w);
Outputf("W%d\n", PenNumber);
}
}
else
fprintf(stderr, "WARNING: HP-GL/2 \'PW\' command with invalid number of parameters (%d)!\n",
+104 -46
Ver Arquivo
@@ -60,20 +60,16 @@ AD_define_alternate(int num_params, /* I - Number of parameters */
param_t *params) /* I - Parameters */
{
int i; /* Looping var */
int typeface, /* Typeface number */
posture, /* Posture number */
weight; /* Weight number */
float height; /* Height/size of font */
/*
* Set default font attributes...
*/
typeface = 48;
posture = 0;
weight = 0;
height = 11.5;
AlternateFont.typeface = 48;
AlternateFont.posture = 0;
AlternateFont.weight = 0;
AlternateFont.height = 11.5;
/*
* Loop through parameter value pairs...
@@ -83,16 +79,16 @@ AD_define_alternate(int num_params, /* I - Number of parameters */
switch ((int)params[i].value.number)
{
case 4 :
height = params[i + 1].value.number;
AlternateFont.height = params[i + 1].value.number;
break;
case 5 :
posture = (int)params[i + 1].value.number;
AlternateFont.posture = (int)params[i + 1].value.number;
break;
case 6 :
weight = (int)params[i + 1].value.number;
AlternateFont.weight = (int)params[i + 1].value.number;
break;
case 7 :
typeface = (int)params[i + 1].value.number;
AlternateFont.typeface = (int)params[i + 1].value.number;
break;
}
@@ -100,14 +96,22 @@ AD_define_alternate(int num_params, /* I - Number of parameters */
* Define the font...
*/
Outputf("/SA { /%s%s%s%s findfont %.1f scalefont setfont } def\n",
typeface == 48 ? "Courier" : "Helvetica",
(weight != 0 || posture != 0) ? "-" : "",
weight != 0 ? "Bold" : "",
posture != 0 ? "Oblique" : "",
height);
if (PageDirty)
printf("/SA {\n"
" /%s%s%s%s findfont\n"
" [ %f %f %f %f 0.0 0.0 ] makefont\n"
" setfont\n"
"} bind def\n",
AlternateFont.typeface == 48 ? "Courier" : "Helvetica",
(AlternateFont.weight != 0 || AlternateFont.posture != 0) ? "-" : "",
AlternateFont.weight != 0 ? "Bold" : "",
AlternateFont.posture != 0 ? "Oblique" : "",
AlternateFont.x * AlternateFont.height,
-AlternateFont.y * AlternateFont.height,
AlternateFont.y * AlternateFont.height,
AlternateFont.x * AlternateFont.height);
CharHeight[1] = height;
CharHeight[1] = AlternateFont.height;
}
@@ -171,12 +175,56 @@ void
DI_absolute_direction(int num_params, /* I - Number of parameters */
param_t *params) /* I - Parameters */
{
Outputf(CharFont == 0 ? "SS\n" : "SA\n");
if (CharFont)
{
if (num_params == 2)
{
AlternateFont.x = params[0].value.number;
AlternateFont.y = params[1].value.number;
}
if (num_params == 2)
Outputf("currentfont [ %f %f %f %f 0.0 0.0 ] makefont setfont\n",
params[0].value.number, -params[1].value.number,
params[1].value.number, params[0].value.number);
if (PageDirty)
{
printf("/SA {\n"
" /%s%s%s%s findfont\n"
" [ %f %f %f %f 0.0 0.0 ] makefont\n"
" setfont\n"
"} bind def\n",
AlternateFont.typeface == 48 ? "Courier" : "Helvetica",
(AlternateFont.weight != 0 || AlternateFont.posture != 0) ? "-" : "",
AlternateFont.weight != 0 ? "Bold" : "",
AlternateFont.posture != 0 ? "Oblique" : "",
AlternateFont.x * AlternateFont.height,
-AlternateFont.y * AlternateFont.height,
AlternateFont.y * AlternateFont.height,
AlternateFont.x * AlternateFont.height);
}
}
else
{
if (num_params == 2)
{
StandardFont.x = params[0].value.number;
StandardFont.y = params[1].value.number;
}
if (PageDirty)
{
printf("/SS {\n"
" /%s%s%s%s findfont\n"
" [ %f %f %f %f 0.0 0.0 ] makefont\n"
" setfont\n"
"} bind def\n",
StandardFont.typeface == 48 ? "Courier" : "Helvetica",
(StandardFont.weight != 0 || StandardFont.posture != 0) ? "-" : "",
StandardFont.weight != 0 ? "Bold" : "",
StandardFont.posture != 0 ? "Oblique" : "",
StandardFont.x * StandardFont.height,
-StandardFont.y * StandardFont.height,
StandardFont.y * StandardFont.height,
StandardFont.x * StandardFont.height);
}
}
}
@@ -249,7 +297,7 @@ LB_label(int num_params, /* I - Number of parameters */
return;
Outputf("gsave\n");
Outputf("currentmiterlimit 1.0 setmiterlimit\n");
Outputf("currentmiterlimit 1.0 \n");
Outputf("MP\n");
Outputf("%.3f %.3f MO\n", PenPosition[0], PenPosition[1]);
@@ -295,7 +343,9 @@ SA_select_alternate(int num_params, /* I - Number of parameters */
(void)num_params;
(void)params;
Outputf("SA\n");
if (PageDirty)
puts("SA");
CharFont = 1;
}
@@ -309,20 +359,18 @@ SD_define_standard(int num_params, /* I - Number of parameters */
param_t *params) /* I - Parameters */
{
int i; /* Looping var */
int typeface, /* Typeface number */
posture, /* Posture number */
weight; /* Weight number */
float height; /* Height/size of font */
/*
* Set default font attributes...
*/
typeface = 48;
posture = 0;
weight = 0;
height = 11.5;
StandardFont.typeface = 48;
StandardFont.posture = 0;
StandardFont.weight = 0;
StandardFont.height = 11.5;
StandardFont.x = 1.0;
StandardFont.y = 0.0;
/*
* Loop through parameter value pairs...
@@ -332,16 +380,16 @@ SD_define_standard(int num_params, /* I - Number of parameters */
switch ((int)params[i].value.number)
{
case 4 :
height = params[i + 1].value.number;
StandardFont.height = params[i + 1].value.number;
break;
case 5 :
posture = (int)params[i + 1].value.number;
StandardFont.posture = (int)params[i + 1].value.number;
break;
case 6 :
weight = (int)params[i + 1].value.number;
StandardFont.weight = (int)params[i + 1].value.number;
break;
case 7 :
typeface = (int)params[i + 1].value.number;
StandardFont.typeface = (int)params[i + 1].value.number;
break;
}
@@ -349,14 +397,22 @@ SD_define_standard(int num_params, /* I - Number of parameters */
* Define the font...
*/
Outputf("/SS { /%s%s%s%s findfont %.1f scalefont setfont } def\n",
typeface == 48 ? "Courier" : "Helvetica",
(weight != 0 || posture != 0) ? "-" : "",
weight != 0 ? "Bold" : "",
posture != 0 ? "Oblique" : "",
height);
if (PageDirty)
printf("/SS {\n"
" /%s%s%s%s findfont\n"
" [ %f %f %f %f 0.0 0.0 ] makefont\n"
" setfont\n"
"} bind def\n",
StandardFont.typeface == 48 ? "Courier" : "Helvetica",
(StandardFont.weight != 0 || StandardFont.posture != 0) ? "-" : "",
StandardFont.weight != 0 ? "Bold" : "",
StandardFont.posture != 0 ? "Oblique" : "",
StandardFont.x * StandardFont.height,
-StandardFont.y * StandardFont.height,
StandardFont.y * StandardFont.height,
StandardFont.x * StandardFont.height);
CharHeight[0] = height;
CharHeight[0] = StandardFont.height;
}
@@ -410,7 +466,9 @@ SS_select_standard(int num_params, /* I - Number of parameters */
(void)num_params;
(void)params;
Outputf("SS\n");
if (PageDirty)
puts("SS");
CharFont = 0;
}
+221 -52
Ver Arquivo
@@ -51,54 +51,153 @@
void
update_transform(void)
{
float width, /* Plot width */
height; /* Plot height */
float page_width, /* Actual page width in points */
page_length; /* Actual page length in points */
float page_width, /* Actual page width */
page_height; /* Actual page height */
float scaling; /* Scaling factor */
float left, right, /* Scaling window */
bottom, top;
float width, height; /* Scaling width and height */
float iw1[2], iw2[2]; /* Clipping window */
/*
* Get the page and input window sizes...
*/
width = IW2[0] - IW1[0];
height = IW2[1] - IW1[1];
if (FitPlot)
{
page_width = PageRight - PageLeft;
page_height = PageTop - PageBottom;
}
else
{
page_width = (P2[0] - P1[0]) * 72.0f / 1016.0f;
page_height = (P2[1] - P1[1]) * 72.0f / 1016.0f;
}
fprintf(stderr, "DEBUG: page_width = %.0f, page_height = %.0f\n",
page_width, page_height);
if (page_width == 0 || page_height == 0)
return;
/*
* Set the scaling window...
*/
switch (ScalingType)
{
case -1 : /* No user scaling */
left = P1[0];
bottom = P1[1];
right = P2[0];
top = P2[1];
break;
case 0 : /* Anisotropic (non-uniform) scaling */
left = Scaling1[0];
bottom = Scaling1[1];
right = Scaling2[0];
top = Scaling2[1];
break;
case 1 : /* Isotropic (uniform) scaling */
left = Scaling1[0];
bottom = Scaling1[1];
right = Scaling2[0];
top = Scaling2[1];
width = right - left;
height = top - bottom;
if (width == 0 || height == 0)
return;
if ((width * page_height) != (height * page_width))
{
scaling = height * page_width / page_height;
if (width < scaling)
{
width = scaling;
left = 0.5f * (left + right - width);
right = left + width;
}
else
{
height = width * page_height / page_width;
bottom = 0.5f * (bottom + top - height);
top = bottom + height;
}
}
break;
case 2 :
left = Scaling1[0];
bottom = Scaling1[1];
right = left + page_width * Scaling2[0];
top = bottom + page_height * Scaling2[1];
break;
}
width = right - left;
height = top - bottom;
if (width == 0 || height == 0)
return;
/*
* Scale the plot as needed...
* Rotate the plot as needed...
*/
if (FitPlot)
if (Rotation == 0 || Rotation == 180)
{
page_width = PageRight - PageLeft;
page_length = PageTop - PageBottom;
if (Rotation == 0 || Rotation == 180)
if ((width > height && page_width < page_height) ||
(width < height && page_width > page_height))
{
scaling = page_width / width;
if (scaling > (page_length / width))
scaling = page_length / width;
}
else
{
scaling = page_width / height;
if (scaling > (page_length / height))
scaling = page_length / height;
fputs("DEBUG: Automatically rotating the page...\n", stderr);
Rotation += 90;
}
}
else
{
page_width = PlotSize[0];
page_length = PlotSize[1];
if ((width > height && page_width > page_height) ||
(width < height && page_width < page_height))
{
fputs("DEBUG: Automatically rotating the page...\n", stderr);
Rotation = (Rotation + 90) % 360;
}
}
/*
* Scale the plot as needed...
*/
if (Rotation == 0 || Rotation == 180)
scaling = page_width / width;
else
scaling = page_width / height;
if (FitPlot)
{
if (Rotation == 0 || Rotation == 180)
scaling = page_width / width;
scaling *= page_width / PlotSize[1];
else
scaling = page_width / height;
scaling *= page_width / PlotSize[0];
}
/*
* Offset for the current P1 location...
*/
if (FitPlot)
{
left = 0;
bottom = 0;
}
else
{
left = P1[0] * 72.0f / 1016.0f;
bottom = P1[1] * 72.0f / 1016.0f;
}
/*
@@ -110,47 +209,69 @@ update_transform(void)
case 0 :
Transform[0][0] = scaling;
Transform[0][1] = 0.0;
Transform[0][2] = -IW1[0] * scaling;
Transform[0][2] = -left;
Transform[1][0] = 0.0;
Transform[1][1] = scaling;
Transform[1][2] = -IW1[1] * scaling;
Transform[1][2] = -bottom;
break;
case 90 :
Transform[0][0] = 0.0;
Transform[0][1] = -scaling;
Transform[0][2] = (height - IW1[0]) * scaling;
Transform[0][2] = PageLength - left;
Transform[1][0] = scaling;
Transform[1][1] = 0.0;
Transform[1][2] = -IW1[1] * scaling;
Transform[1][2] = -bottom;
break;
case 180 :
Transform[0][0] = -scaling;
Transform[0][1] = 0.0;
Transform[0][2] = (height - IW1[0]) * scaling;
Transform[0][2] = PageLength - left;
Transform[1][0] = 0.0;
Transform[1][1] = -scaling;
Transform[1][2] = (width - IW1[1]) * scaling;
Transform[1][2] = PageWidth - bottom;
break;
case 270 :
Transform[0][0] = 0.0;
Transform[0][1] = scaling;
Transform[0][2] = -IW1[0] * scaling;
Transform[0][2] = -left;
Transform[1][0] = -scaling;
Transform[1][1] = 0.0;
Transform[1][2] = (width - IW1[1]) * scaling;
Transform[1][2] = PageWidth - bottom;
break;
}
PenScaling = Transform[0][0] + Transform[0][1];
fprintf(stderr, "DEBUG: Transform = [ %.3f %.3f\n"
"DEBUG: %.3f %.3f\n"
"DEBUG: %.3f %.3f ]\n",
Transform[0][0], Transform[1][0], Transform[0][1],
Transform[1][1], Transform[0][2], Transform[1][2]);
if (WidthUnits)
PenScaling = page_width * scaling * 0.01f;
else
PenScaling = page_width / PageWidth * 72.0f / 25.4f;
if (PenScaling < 0.0)
PenScaling = -PenScaling;
if (PageDirty)
{
printf("/PenScaling %.3f def W%d\n", PenScaling, PenNumber);
if (IW1[0] != IW2[0] && IW1[1] != IW2[1])
{
iw1[0] = IW1[0] * 72.0f / 1016.0f;
iw1[1] = IW1[1] * 72.0f / 1016.0f;
iw2[0] = IW2[0] * 72.0f / 1016.0f;
iw2[1] = IW2[1] * 72.0f / 1016.0f;
printf("initclip MP %.3f %.3f MO %.3f %.3f LI %.3f %.3f LI %.3f %.3f LI CP clip\n",
iw1[0], iw1[1], iw1[0], iw2[1], iw2[0], iw2[1], iw2[0], iw1[1]);
}
}
}
@@ -219,7 +340,8 @@ IN_initialize(int num_params, /* I - Number of parameters */
PS_plot_size(0, NULL);
WU_width_units(0, NULL);
PW_pen_width(0, NULL);
SP_select_pen(0, NULL);
PenWidth = 1;
PenPosition[0] = PenPosition[1] = 0.0;
}
@@ -235,10 +357,10 @@ IP_input_absolute(int num_params, /* I - Number of parameters */
{
if (num_params == 0)
{
P1[0] = 0.0;
P1[1] = 0.0;
P2[0] = PlotSize[0] / 72.0f * 1016.0f;
P2[1] = PlotSize[1] / 72.0f * 1016.0f;
P1[0] = PageLeft / 72.0f * 1016.0f;
P1[1] = PageBottom / 72.0f * 1016.0f;
P2[0] = PageRight / 72.0f * 1016.0f;
P2[1] = PageTop / 72.0f * 1016.0f;
}
else if (num_params == 2)
{
@@ -262,6 +384,14 @@ IP_input_absolute(int num_params, /* I - Number of parameters */
IW2[0] = P2[0];
IW2[1] = P2[1];
if (ScalingType < 0)
{
Scaling1[0] = P1[0];
Scaling1[0] = P1[1];
Scaling2[0] = P2[0];
Scaling2[1] = P2[1];
}
update_transform();
}
@@ -303,6 +433,14 @@ IR_input_relative(int num_params, /* I - Number of parameters */
IW2[0] = P2[0];
IW2[1] = P2[1];
if (ScalingType < 0)
{
Scaling1[0] = P1[0];
Scaling1[0] = P1[1];
Scaling2[0] = P2[0];
Scaling2[1] = P2[1];
}
update_transform();
}
@@ -317,19 +455,44 @@ IW_input_window(int num_params, /* I - Number of parameters */
{
if (num_params == 0)
{
IW1[0] = P1[0];
IW1[1] = P1[1];
IW2[0] = P2[0];
IW2[1] = P2[1];
IW1[0] = PageLeft / 72.0f * 1016.0f;
IW1[1] = PageBottom / 72.0f * 1016.0f;
IW2[0] = PageRight / 72.0f * 1016.0f;
IW2[1] = PageTop / 72.0f * 1016.0f;
}
else if (num_params == 4)
{
IW1[0] = params[0].value.number;
IW1[1] = params[1].value.number;
IW2[0] = params[2].value.number;
IW2[1] = params[3].value.number;
if (ScalingType < 0)
{
IW1[0] = params[0].value.number;
IW1[1] = params[1].value.number;
IW2[0] = params[2].value.number;
IW2[1] = params[3].value.number;
}
else
{
IW1[0] = (Transform[0][0] * params[0].value.number +
Transform[0][1] * params[1].value.number +
Transform[0][2]) / 72.0f * 1016.0f;
IW1[1] = (Transform[1][0] * params[0].value.number +
Transform[1][1] * params[1].value.number +
Transform[1][2]) / 72.0f * 1016.0f;
IW2[0] = (Transform[0][0] * params[2].value.number +
Transform[0][1] * params[3].value.number +
Transform[0][2]) / 72.0f * 1016.0f;
IW2[1] = (Transform[1][0] * params[2].value.number +
Transform[1][1] * params[3].value.number +
Transform[1][2]) / 72.0f * 1016.0f;
}
fprintf(stderr, "DEBUG: IW%.0f,%.0f,%.0f,%.0f = [ %.0f %.0f %.0f %.0f ]\n",
params[0].value.number, params[1].value.number,
params[2].value.number, params[3].value.number,
IW1[0], IW1[1], IW2[0], IW2[1]);
}
update_transform();
}
@@ -368,13 +531,13 @@ PS_plot_size(int num_params, /* I - Number of parameters */
case 0 :
if (Rotation == 0 || Rotation == 180)
{
PlotSize[0] = PageRight - PageLeft;
PlotSize[1] = PageTop - PageBottom;
PlotSize[0] = PageWidth;
PlotSize[1] = PageLength;
}
else
{
PlotSize[0] = PageTop - PageBottom;
PlotSize[1] = PageRight - PageLeft;
PlotSize[0] = PageLength;
PlotSize[1] = PageWidth;
}
break;
case 1 :
@@ -450,7 +613,13 @@ SC_scale(int num_params, /* I - Number of parameters */
param_t *params) /* I - Parameters */
{
if (num_params == 0)
{
ScalingType = -1;
Scaling1[0] = P1[0];
Scaling1[0] = P1[1];
Scaling2[0] = P2[0];
Scaling2[1] = P2[1];
}
else if (num_params > 3)
{
Scaling1[0] = params[0].value.number;
@@ -461,7 +630,7 @@ SC_scale(int num_params, /* I - Number of parameters */
if (num_params > 4)
ScalingType = (int)params[4].value.number;
else
ScalingType = 0;
ScalingType = 1;
}
update_transform();
+7 -7
Ver Arquivo
@@ -128,7 +128,6 @@ main(int argc, /* I - Number of command-line arguments */
char *argv[]) /* I - Command-line arguments */
{
FILE *fp; /* Input file */
ppd_file_t *ppd; /* PPD file */
int num_params; /* Number of parameters */
param_t *params; /* Command parameters */
name_t *command, /* Command */
@@ -137,7 +136,6 @@ main(int argc, /* I - Number of command-line arguments */
cups_option_t *options; /* Print options */
const char *val; /* Option value */
int shading; /* -1 = black, 0 = grey, 1 = color */
float penwidth; /* Default pen width */
if (argc < 6 || argc > 7)
@@ -173,11 +171,13 @@ main(int argc, /* I - Number of command-line arguments */
options = NULL;
num_options = cupsParseOptions(argv[5], 0, &options);
if ((ppd = SetCommonOptions(num_options, options, 1)) != NULL)
ppdClose(ppd);
PPD = SetCommonOptions(num_options, options, 1);
PlotSize[0] = PageWidth;
PlotSize[1] = PageLength;
shading = 1;
penwidth = 1.0;
PenWidth = 1.0;
if ((val = cupsGetOption("blackplot", num_options, options)) != NULL)
shading = 0;
@@ -186,13 +186,13 @@ main(int argc, /* I - Number of command-line arguments */
FitPlot = 1;
if ((val = cupsGetOption("penwidth", num_options, options)) != NULL)
penwidth = (float)atof(val);
PenWidth = (float)atof(val);
/*
* Write the PostScript prolog and initialize the plotting "engine"...
*/
OutputProlog(argv[3], argv[2], shading, penwidth);
OutputProlog(argv[3], argv[2], shading);
IP_input_absolute(0, NULL);
+190 -5
Ver Arquivo
@@ -44,8 +44,7 @@
void
OutputProlog(char *title, /* I - Job title */
char *user, /* I - Username */
int shading, /* I - Type of shading */
float penwidth) /* I - Default pen width */
int shading) /* I - Type of shading */
{
FILE *prolog; /* Prolog file */
char line[255]; /* Line from prolog file */
@@ -73,7 +72,7 @@ OutputProlog(char *title, /* I - Job title */
puts("%%Orientation: Landscape");
puts("%%EndComments");
puts("%%BeginProlog");
printf("/DefaultPenWidth %.2f def\n", penwidth * 72.0 / 25.4);
printf("/DefaultPenWidth %.2f def\n", PenWidth * 72.0 / 25.4);
puts("3.0 setmiterlimit");
if (!shading) /* Black only */
puts("/setrgbcolor { pop pop pop } bind def");
@@ -124,6 +123,13 @@ Outputf(const char *format, /* I - Printf-style string */
{
va_list ap; /* Argument pointer */
int bytes; /* Number of bytes written */
float iw1[2], iw2[2]; /* Clipping window */
int i; /* Looping var */
ppd_size_t *size; /* Page size */
ppd_option_t *option; /* Page size option */
ppd_choice_t *choice; /* Page size choice */
float width, length; /* Page dimensions */
int landscape; /* Rotate for landscape orientation? */
/*
@@ -136,11 +142,179 @@ Outputf(const char *format, /* I - Printf-style string */
PageCount ++;
printf("%%%%Page: %d %d\n", PageCount, PageCount);
if (PPD != NULL && !FitPlot)
{
/*
* Set the page size for this page...
*/
if (Rotation == 0 || Rotation == 180)
{
width = PlotSize[0];
length = PlotSize[1];
}
else
{
width = PlotSize[1];
length = PlotSize[0];
}
landscape = 0;
/*
* Lookup the closest PageSize and set it...
*/
for (i = PPD->num_sizes, size = PPD->sizes; i > 0; i --, size ++)
if ((fabs(length - size->length) < 36.0 && size->width >= width) ||
(fabs(length - size->width) < 36.0 && size->length >= width))
break;
if (i == 0 && PPD->variable_sizes)
{
for (i = PPD->num_sizes, size = PPD->sizes; i > 0; i --, size ++)
if (strcasecmp(size->name, "custom") == 0)
break;
}
if (i > 0)
{
/*
* Found a matching size...
*/
option = ppdFindOption(PPD, "PageSize");
choice = ppdFindChoice(option, size->name);
puts("%%BeginPageSetup");
printf("%%%%BeginFeature: PageSize %s\n", size->name);
if (strcasecmp(size->name, "custom") == 0)
{
PageLeft = PPD->custom_margins[0];
PageRight = width - PPD->custom_margins[2];
PageWidth = width;
PageBottom = PPD->custom_margins[1];
PageTop = length - PPD->custom_margins[3];
PageLength = length;
printf("%.0f %.0f 0 0 0\n", width, length);
if (choice->code == NULL)
{
/*
* This can happen with certain buggy PPD files that don't include
* a CustomPageSize command sequence... We just use a generic
* Level 2 command sequence...
*/
puts("pop pop pop");
puts("<</PageSize[5 -2 roll]/ImagingBBox null>>setpagedevice\n");
}
else
{
/*
* Use the vendor-supplied command...
*/
printf("%s\n", choice->code);
}
}
else
{
if (choice->code)
printf("%s\n", choice->code);
if (fabs(length - size->width) < 36.0)
{
/*
* Do landscape orientation...
*/
PageLeft = size->bottom;
PageRight = size->top;
PageWidth = size->length;
PageBottom = size->left;
PageTop = size->right;
PageLength = size->width;
landscape = 1;
}
else
{
/*
* Do portrait orientation...
*/
PageLeft = size->left;
PageRight = size->right;
PageWidth = size->width;
PageBottom = size->bottom;
PageTop = size->top;
PageLength = size->length;
}
}
puts("%%EndFeature");
puts("%%EndSetup");
}
}
printf("/PenScaling %.3f def\n", PenScaling);
printf("/SA {\n"
" /%s%s%s%s findfont\n"
" [ %f %f %f %f 0.0 0.0 ] makefont\n"
" setfont\n"
"} bind def\n",
AlternateFont.typeface == 48 ? "Courier" : "Helvetica",
(AlternateFont.weight != 0 || AlternateFont.posture != 0) ? "-" : "",
AlternateFont.weight != 0 ? "Bold" : "",
AlternateFont.posture != 0 ? "Oblique" : "",
AlternateFont.x * AlternateFont.height,
-AlternateFont.y * AlternateFont.height,
AlternateFont.y * AlternateFont.height,
AlternateFont.x * AlternateFont.height);
printf("/SS {\n"
" /%s%s%s%s findfont\n"
" [ %f %f %f %f 0.0 0.0 ] makefont\n"
" setfont\n"
"} bind def\n",
StandardFont.typeface == 48 ? "Courier" : "Helvetica",
(StandardFont.weight != 0 || StandardFont.posture != 0) ? "-" : "",
StandardFont.weight != 0 ? "Bold" : "",
StandardFont.posture != 0 ? "Oblique" : "",
StandardFont.x * StandardFont.height,
-StandardFont.y * StandardFont.height,
StandardFont.y * StandardFont.height,
StandardFont.x * StandardFont.height);
if (CharFont)
puts("SA");
else
puts("SS");
printf("%.1f setmiterlimit\n", MiterLimit);
printf("%d setlinecap\n", LineCap);
printf("%d setlinejoin\n", LineJoin);
for (i = 0; i <= PenCount; i ++)
{
printf("/W%d { %.1f PenScaling mul setlinewidth } bind def\n", i,
Pens[i].width);
printf("/P%d { %.3f %.3f %.3f setrgbcolor } bind def\n",
i, Pens[i].rgb[0], Pens[i].rgb[1], Pens[i].rgb[2]);
}
puts("P1 W1");
puts("gsave");
if (Duplex && (PageCount & 1) == 0)
switch ((PageRotation / 90) & 3)
switch ((PageRotation / 90 + landscape) & 3)
{
case 0 :
printf("%.1f %.1f translate\n", PageWidth - PageRight, PageBottom);
@@ -157,7 +331,7 @@ Outputf(const char *format, /* I - Printf-style string */
break;
}
else
switch ((PageRotation / 90) & 3)
switch ((PageRotation / 90 + landscape) & 3)
{
case 0 :
printf("%.1f %.1f translate\n", PageLeft, PageBottom);
@@ -173,6 +347,17 @@ Outputf(const char *format, /* I - Printf-style string */
printf("%.1f %.1f translate\n", PageLength - PageTop, PageLeft);
break;
}
if (IW1[0] != IW2[0] && IW1[1] != IW2[1])
{
iw1[0] = IW1[0] * 72.0f / 1016.0f;
iw1[1] = IW1[1] * 72.0f / 1016.0f;
iw2[0] = IW2[0] * 72.0f / 1016.0f;
iw2[1] = IW2[1] * 72.0f / 1016.0f;
printf("initclip MP %.3f %.3f MO %.3f %.3f LI %.3f %.3f LI %.3f %.3f LI CP clip\n",
iw1[0], iw1[1], iw1[0], iw2[1], iw2[0], iw2[1], iw2[0], iw1[1]);
}
}
/*
+38 -2
Ver Arquivo
@@ -52,6 +52,31 @@ typedef struct
#define PARAM_STRING 2
/*
* Font information...
*/
typedef struct
{
int typeface, /* Typeface number */
posture, /* Posture number */
weight; /* Weight number */
float height; /* Height/size of font */
float x, y; /* X and Y direction/scaling */
} font_t;
/*
* Pen information...
*/
typedef struct
{
float rgb[3]; /* Pen color */
float width; /* Pen width */
} pen_t;
/*
* Globals...
*/
@@ -66,6 +91,8 @@ typedef struct
# define VALUE2(x,y)
#endif /* _HPGL_MAIN_C_ */
VAR ppd_file_t *PPD VALUE(NULL); /* PPD file */
VAR float P1[2], /* Lower-lefthand physical limit */
P2[2], /* Upper-righthand physical limit */
IW1[2], /* Window lower-lefthand limit */
@@ -78,9 +105,13 @@ VAR float Transform[2][3]; /* Transform matrix */
VAR int PageRotation VALUE(0); /* Page/plot rotation */
VAR char StringTerminator VALUE('\003'); /* Terminator for labels */
VAR font_t StandardFont, /* Standard font */
AlternateFont; /* Alternate font */
VAR float PenPosition[2] VALUE2(0.0f, 0.0f),
/* Current pen position */
PenScaling VALUE(1.0f); /* Pen width scaling factor */
PenScaling VALUE(1.0f), /* Pen width scaling factor */
PenWidth VALUE(1.0f); /* Default pen width */
VAR pen_t Pens[1024]; /* State of each pen */
VAR int PenMotion VALUE(0), /* 0 = absolute, 1 = relative */
PenNumber VALUE(1), /* Current pen number */
PenCount VALUE(8), /* Number of pens */
@@ -107,6 +138,11 @@ VAR float ColorRange[3][2] /* Range of color values */
#endif /* _HPGL_MAIN_C_ */
;
VAR int LineCap VALUE(0); /* Line capping */
VAR int LineJoin VALUE(0); /* Line joining */
VAR float MiterLimit VALUE(3.0f); /* Miter limit at joints */
/*
* Prototypes...
*/
@@ -187,7 +223,7 @@ extern void UL_user_line_type(int num_params, param_t *params);
extern void WU_width_units(int num_params, param_t *params);
/* hpgl-prolog.c */
extern void OutputProlog(char *title, char *user, int shading, float penwidth);
extern void OutputProlog(char *title, char *user, int shading);
extern void OutputTrailer(void);
extern int Outputf(const char *format, ...);
+31 -3
Ver Arquivo
@@ -165,6 +165,7 @@ main(int argc, /* I - Number of command-line arguments */
char *resolution, /* Output resolution */
*media_type; /* Media type */
ppd_profile_t *profile; /* Color profile */
ppd_profile_t userprofile; /* User-specified profile */
cups_raster_t *ras; /* Raster stream */
cups_page_header_t header; /* Page header */
int num_options; /* Number of print options */
@@ -386,7 +387,31 @@ main(int argc, /* I - Number of command-line arguments */
* Find a color profile matching the current options...
*/
if (ppd != NULL)
if ((val = cupsGetOption("profile", num_options, options)) != NULL)
{
profile = &userprofile;
sscanf(val, "%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f",
&(userprofile.density), &(userprofile.gamma),
userprofile.matrix[0] + 0, userprofile.matrix[0] + 1,
userprofile.matrix[0] + 2,
userprofile.matrix[1] + 0, userprofile.matrix[1] + 1,
userprofile.matrix[1] + 2,
userprofile.matrix[2] + 0, userprofile.matrix[2] + 1,
userprofile.matrix[2] + 2);
userprofile.density *= 0.001f;
userprofile.gamma *= 0.001f;
userprofile.matrix[0][0] *= 0.001f;
userprofile.matrix[0][1] *= 0.001f;
userprofile.matrix[0][2] *= 0.001f;
userprofile.matrix[1][0] *= 0.001f;
userprofile.matrix[1][1] *= 0.001f;
userprofile.matrix[1][2] *= 0.001f;
userprofile.matrix[2][0] *= 0.001f;
userprofile.matrix[2][1] *= 0.001f;
userprofile.matrix[2][2] *= 0.001f;
}
else if (ppd != NULL)
{
fprintf(stderr, "DEBUG: Searching for profile \"%s/%s\"...\n",
resolution, media_type);
@@ -412,10 +437,13 @@ main(int argc, /* I - Number of command-line arguments */
* If we found a color profile, use it!
*/
if (i < ppd->num_profiles)
ImageSetProfile(profile->density, profile->gamma, profile->matrix);
if (i >= ppd->num_profiles)
profile = NULL;
}
if (profile)
ImageSetProfile(profile->density, profile->gamma, profile->matrix);
/*
* Create a gamma/brightness LUT...
*/
+41 -19
Ver Arquivo
@@ -617,7 +617,7 @@ static void
end_nup(int number) /* I - Page number */
{
if (Flip || Orientation || NUp > 1)
puts("grestoreall");
puts("ESPsave restore");
switch (NUp)
{
@@ -702,14 +702,18 @@ start_nup(int number) /* I - Page number */
int x, y; /* Relative position of subpage */
float w, l, /* Width and length of subpage */
tx, ty; /* Translation values for subpage */
float pw, pl; /* Printable width and length of full page */
if (Flip || Orientation || NUp > 1)
puts("gsave");
puts("/ESPsave save def");
if (Flip)
printf("%.0f 0 translate -1 1 scale\n", PageWidth);
pw = PageRight - PageLeft;
pl = PageTop - PageBottom;
switch (Orientation)
{
case 1 : /* Landscape */
@@ -731,44 +735,49 @@ start_nup(int number) /* I - Page number */
if (Orientation & 1)
{
x = 1 - x;
w = PageLength;
w = pl;
l = w * PageLength / PageWidth;
if (l > (PageWidth * 0.5))
if (l > (pw * 0.5))
{
l = PageWidth * 0.5;
l = pw * 0.5;
w = l * PageWidth / PageLength;
}
tx = PageWidth * 0.5 - l;
ty = (PageLength - w) * 0.5;
tx = pw * 0.5 - l;
ty = (pl - w) * 0.5;
}
else
{
l = PageWidth;
l = pw;
w = l * PageWidth / PageLength;
if (w > (PageLength * 0.5))
if (w > (pl * 0.5))
{
w = PageLength * 0.5;
w = pl * 0.5;
l = w * PageLength / PageWidth;
}
tx = PageLength * 0.5 - w;
ty = (PageWidth - l) * 0.5;
tx = pl * 0.5 - w;
ty = (pw - l) * 0.5;
}
if (Duplex && (number & 2))
printf("%.0f %.0f translate\n", PageWidth - PageRight, PageBottom);
else
printf("%.0f %.0f translate\n", PageLeft, PageBottom);
if (Orientation & 1)
{
printf("0 %.0f translate -90 rotate\n", PageLength);
printf("0 %.0f translate -90 rotate\n", pl);
printf("%.0f %.0f translate %.3f %.3f scale\n",
ty, tx + l * x, w / PageWidth, l / PageLength);
ty, tx + l * x, w / pw, l / pl);
}
else
{
printf("%.0f 0 translate 90 rotate\n", PageWidth);
printf("%.0f 0 translate 90 rotate\n", pw);
printf("%.0f %.0f translate %.3f %.3f scale\n",
tx + w * x, ty, w / PageWidth, l / PageLength);
tx + w * x, ty, w / pw, l / pl);
}
printf("newpath\n"
@@ -783,10 +792,23 @@ start_nup(int number) /* I - Page number */
case 4 :
x = number & 1;
y = 1 - ((number & 2) != 0);
w = PageWidth * 0.5;
l = PageLength * 0.5;
printf("%.0f %.0f translate 0.5 0.5 scale\n", x * w, y * l);
w = pw * 0.5;
l = w * PageLength / PageWidth;
if (l > (pl * 0.5))
{
l = pl * 0.5;
w = l * PageWidth / PageLength;
}
if (Duplex && (number & 4))
printf("%.0f %.0f translate\n", PageWidth - PageRight, PageBottom);
else
printf("%.0f %.0f translate\n", PageLeft, PageBottom);
printf("%.0f %.0f translate %.3f %.3f scale\n", x * w, y * l,
w / PageWidth, l / PageLength);
printf("newpath\n"
"0 0 moveto\n"
"%.0f 0 lineto\n"
+57 -22
Ver Arquivo
@@ -62,6 +62,13 @@
#include <math.h>
/*
* Globals...
*/
extern const char *cupsProfile;
/*
* Macros...
*/
@@ -1441,6 +1448,7 @@ cups_set_color_info(gx_device *pdev) /* I - Device info */
{
int i, j, k; /* Looping vars */
float d, g; /* Density and gamma correction */
float m[3][3]; /* Color correction matrix */
char resolution[41]; /* Resolution string */
ppd_profile_t *profile; /* Color profile information */
@@ -1548,7 +1556,27 @@ cups_set_color_info(gx_device *pdev) /* I - Device info */
cupsHaveProfile = 0;
if (cups->ppd != NULL && cups->header.cupsBitsPerColor == 8)
if (cupsProfile && cups->header.cupsBitsPerColor == 8)
{
cupsHaveProfile = 1;
sscanf(cupsProfile, "%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f", &d, &g,
m[0] + 0, m[0] + 1, m[0] + 2,
m[1] + 0, m[1] + 1, m[1] + 2,
m[2] + 0, m[2] + 1, m[2] + 2);
d *= 0.001f;
g *= 0.001f;
m[0][0] *= 0.001f;
m[0][1] *= 0.001f;
m[0][2] *= 0.001f;
m[1][0] *= 0.001f;
m[1][1] *= 0.001f;
m[1][2] *= 0.001f;
m[2][0] *= 0.001f;
m[2][1] *= 0.001f;
m[2][2] *= 0.001f;
}
else if (cups->ppd != NULL && cups->header.cupsBitsPerColor == 8)
{
/*
* Find the appropriate color profile...
@@ -1581,32 +1609,39 @@ cups_set_color_info(gx_device *pdev) /* I - Device info */
cupsHaveProfile = 1;
for (i = 0; i < 3; i ++)
for (j = 0; j < 3; j ++)
for (k = 0; k <= gx_max_color_value; k ++)
{
cupsMatrix[i][j][k] = (int)((float)k * profile->matrix[i][j] + 0.5);
#ifdef DEBUG
if ((k & 4095) == 0)
fprintf(stderr, "DEBUG: cupsMatrix[%d][%d][%d] = %d\n",
i, j, k, cupsMatrix[i][j][k]);
#endif /* DEBUG */
}
d = profile->density;
g = profile->gamma;
memcpy(m, profile->matrix, sizeof(m));
}
}
if (cupsHaveProfile)
{
for (i = 0; i < 3; i ++)
for (j = 0; j < 3; j ++)
for (k = 0; k <= gx_max_color_value; k ++)
{
cupsMatrix[i][j][k] = (int)((float)k * m[i][j] + 0.5);
for (k = 0; k <= gx_max_color_value; k ++)
{
cupsDensity[k] = (int)((float)gx_max_color_value * d *
pow((float)k / (float)gx_max_color_value, g) +
0.5);
#ifdef DEBUG
if ((k & 4095) == 0)
fprintf(stderr, "DEBUG: cupsDensity[%d] = %d\n", k, cupsDensity[k]);
if ((k & 4095) == 0)
fprintf(stderr, "DEBUG: cupsMatrix[%d][%d][%d] = %d\n",
i, j, k, cupsMatrix[i][j][k]);
#endif /* DEBUG */
}
for (k = 0; k <= gx_max_color_value; k ++)
{
cupsDensity[k] = (int)((float)gx_max_color_value * d *
pow((float)k / (float)gx_max_color_value, g) +
0.5);
#ifdef DEBUG
if ((k & 4095) == 0)
fprintf(stderr, "DEBUG: cupsDensity[%d] = %d\n", k, cupsDensity[k]);
#endif /* DEBUG */
}
}
}
}
+22 -1
Ver Arquivo
@@ -39,18 +39,22 @@
* Include necessary headers...
*/
#include <cups/string.h>
#define bool bool_ /* (maybe not needed) */
#define uchar uchar_
#define uint uint_
#define ushort ushort_
#define ulong ulong_
#include <cups/cups.h>
#include <cups/string.h>
#include <stdlib.h>
#undef bool
#undef uchar
#undef uint
#undef ushort
#undef ulong
#include "ghost.h"
#include "imain.h"
#include "iminst.h"
@@ -59,6 +63,13 @@
#include "store.h"
/*
* Globals...
*/
const char *cupsProfile = NULL;
/*
* Local functions...
*/
@@ -81,6 +92,8 @@ main(int argc, /* I - Number of command-line arguments */
int exit_code; /* Exit code */
ref error_object; /* Error object */
char *content_type; /* CONTENT_TYPE environment variable */
int num_options; /* Number of job options */
cups_option_t *options; /* Job options */
/*
@@ -101,6 +114,14 @@ main(int argc, /* I - Number of command-line arguments */
gs_get_real_stdio(stdfiles);
/*
* Grab any job options...
*/
num_options = cupsParseOptions(argv[5], 0, &options);
cupsProfile = cupsGetOption("profile", num_options, options);
/*
* Initialize basic interpreter stuff and read from the named file or
* from stdin...
+13 -2
Ver Arquivo
@@ -270,6 +270,7 @@ IsAuthorized(client_t *con) /* I - Connection */
hostlen; /* Length of hostname */
struct passwd *pw; /* User password data */
struct group *grp; /* Group data */
char *pass; /* Encrypted password */
#ifdef HAVE_SHADOW_H
struct spwd *spw; /* Shadow password data */
#endif /* HAVE_SHADOW_H */
@@ -421,7 +422,11 @@ IsAuthorized(client_t *con) /* I - Connection */
endspent();
if (spw == NULL && strcmp(pw->pw_passwd, "x") == 0)
{ /* Don't allow blank passwords! */
LogMessage(LOG_WARN, "IsAuthorized: Username \"%s\" has no shadow password; access denied.",
con->username);
return (HTTP_UNAUTHORIZED); /* No such user or bad shadow file */
}
# ifdef DEBUG
if (spw != NULL)
@@ -447,7 +452,10 @@ IsAuthorized(client_t *con) /* I - Connection */
DEBUG_printf(("IsAuthorized: pw_passwd = %s, crypt = %s\n",
pw->pw_passwd, crypt(con->password, pw->pw_passwd)));
if (strcmp(pw->pw_passwd, crypt(con->password, pw->pw_passwd)) != 0)
pass = crypt(con->password, pw->pw_passwd);
if (pass == NULL ||
strcmp(pw->pw_passwd, crypt(con->password, pw->pw_passwd)) != 0)
{
# ifdef HAVE_SHADOW_H
if (spw != NULL)
@@ -455,7 +463,10 @@ IsAuthorized(client_t *con) /* I - Connection */
DEBUG_printf(("IsAuthorized: sp_pwdp = %s, crypt = %s\n",
spw->sp_pwdp, crypt(con->password, spw->sp_pwdp)));
if (strcmp(spw->sp_pwdp, crypt(con->password, spw->sp_pwdp)) != 0)
pass = crypt(con->password, spw->sp_pwdp);
if (pass == NULL ||
strcmp(spw->sp_pwdp, crypt(con->password, spw->sp_pwdp)) != 0)
return (HTTP_UNAUTHORIZED);
}
else
+1
Ver Arquivo
@@ -776,6 +776,7 @@ ReadClient(client_t *con) /* I - Client to read from */
snprintf(con->filename, sizeof(con->filename), "%s/requests/XXXXXX", ServerRoot);
con->file = mkstemp(con->filename);
fchmod(con->file, 0640);
fchown(con->file, User, Group);
LogMessage(LOG_DEBUG, "ReadClient() %d REQUEST %s", con->http.fd,
con->filename);
+19 -14
Ver Arquivo
@@ -287,7 +287,12 @@ ProcessIPPRequest(client_t *con) /* I - Client connection */
}
SendHeader(con, HTTP_OK, "application/ipp");
httpPrintf(HTTP(con), "Content-Length: %d\r\n\r\n", ippLength(con->response));
con->http.data_encoding = HTTP_ENCODE_LENGTH;
con->http.data_remaining = ippLength(con->response);
httpPrintf(HTTP(con), "Content-Length: %d\r\n\r\n",
con->http.data_remaining);
FD_SET(con->http.fd, &OutputSet);
}
@@ -324,7 +329,7 @@ accept_jobs(client_t *con, /* I - Client connection */
if (strncmp(con->uri, "/admin/", 7) != 0)
{
LogMessage(LOG_ERROR, "accept_jobs: admin request on bad resource \'%s\'!",
resource);
con->uri);
send_ipp_error(con, IPP_NOT_AUTHORIZED);
return;
}
@@ -396,7 +401,7 @@ add_class(client_t *con, /* I - Client connection */
if (strncmp(con->uri, "/admin/", 7) != 0)
{
LogMessage(LOG_ERROR, "add_class: admin request on bad resource \'%s\'!",
resource);
con->uri);
send_ipp_error(con, IPP_NOT_AUTHORIZED);
return;
}
@@ -621,7 +626,7 @@ add_printer(client_t *con, /* I - Client connection */
if (strncmp(con->uri, "/admin/", 7) != 0)
{
LogMessage(LOG_ERROR, "add_printer: admin request on bad resource \'%s\'!",
resource);
con->uri);
send_ipp_error(con, IPP_NOT_AUTHORIZED);
return;
}
@@ -901,7 +906,7 @@ cancel_all_jobs(client_t *con, /* I - Client connection */
if (strncmp(con->uri, "/admin/", 7) != 0)
{
LogMessage(LOG_ERROR, "cancel_all_jobs: admin request on bad resource \'%s\'!",
resource);
con->uri);
send_ipp_error(con, IPP_NOT_AUTHORIZED);
return;
}
@@ -977,11 +982,11 @@ cancel_job(client_t *con, /* I - Client connection */
*/
if (strncmp(con->uri, "/classes/", 9) != 0 &&
strncmp(con->uri, "/job/", 5) != 0 &&
strncmp(con->uri, "/jobs/", 5) != 0 &&
strncmp(con->uri, "/printers/", 10) != 0)
{
LogMessage(LOG_ERROR, "cancel_job: cancel request on bad resource \'%s\'!",
resource);
con->uri);
send_ipp_error(con, IPP_NOT_AUTHORIZED);
return;
}
@@ -1237,7 +1242,7 @@ delete_printer(client_t *con, /* I - Client connection */
if (strncmp(con->uri, "/admin/", 7) != 0)
{
LogMessage(LOG_ERROR, "delete_printer: admin request on bad resource \'%s\'!",
resource);
con->uri);
send_ipp_error(con, IPP_NOT_AUTHORIZED);
return;
}
@@ -1843,7 +1848,7 @@ print_job(client_t *con, /* I - Client connection */
strncmp(con->uri, "/printers/", 10) != 0)
{
LogMessage(LOG_ERROR, "print_job: cancel request on bad resource \'%s\'!",
resource);
con->uri);
send_ipp_error(con, IPP_NOT_AUTHORIZED);
return;
}
@@ -2088,7 +2093,7 @@ reject_jobs(client_t *con, /* I - Client connection */
if (strncmp(con->uri, "/admin/", 7) != 0)
{
LogMessage(LOG_ERROR, "reject_jobs: admin request on bad resource \'%s\'!",
resource);
con->uri);
send_ipp_error(con, IPP_NOT_AUTHORIZED);
return;
}
@@ -2194,7 +2199,7 @@ set_default(client_t *con, /* I - Client connection */
if (strncmp(con->uri, "/admin/", 7) != 0)
{
LogMessage(LOG_ERROR, "set_default: admin request on bad resource \'%s\'!",
resource);
con->uri);
send_ipp_error(con, IPP_NOT_AUTHORIZED);
return;
}
@@ -2270,7 +2275,7 @@ start_printer(client_t *con, /* I - Client connection */
if (strncmp(con->uri, "/admin/", 7) != 0)
{
LogMessage(LOG_ERROR, "start_printer: admin request on bad resource \'%s\'!",
resource);
con->uri);
send_ipp_error(con, IPP_NOT_AUTHORIZED);
return;
}
@@ -2357,7 +2362,7 @@ stop_printer(client_t *con, /* I - Client connection */
if (strncmp(con->uri, "/admin/", 7) != 0)
{
LogMessage(LOG_ERROR, "stop_printer: admin request on bad resource \'%s\'!",
resource);
con->uri);
send_ipp_error(con, IPP_NOT_AUTHORIZED);
return;
}
@@ -2500,7 +2505,7 @@ validate_job(client_t *con, /* I - Client connection */
strncmp(con->uri, "/printers/", 10) != 0)
{
LogMessage(LOG_ERROR, "validate_job: request on bad resource \'%s\'!",
resource);
con->uri);
send_ipp_error(con, IPP_NOT_AUTHORIZED);
return;
}
+2 -2
Ver Arquivo
@@ -277,7 +277,7 @@ show_accepting(http_t *http, /* I - HTTP connection to server */
for (attr = response->attrs; attr != NULL; attr = attr->next)
{
/*
* Skip leading attributes until we hit a job...
* Skip leading attributes until we hit a printer...
*/
while (attr != NULL && attr->group_tag != IPP_TAG_PRINTER)
@@ -287,7 +287,7 @@ show_accepting(http_t *http, /* I - HTTP connection to server */
break;
/*
* Pull the needed attributes from this job...
* Pull the needed attributes from this printer...
*/
printer = NULL;