Comparar commits

..

1 Commits

Autor SHA1 Mensagem Data
msweet 6a383a416a Import cups.org releases
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/tags/release-1.1.2@4306 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-10 18:56:23 +00:00
125 arquivos alterados com 13565 adições e 16058 exclusões
+1 -149
Ver Arquivo
@@ -1,154 +1,6 @@
CHANGES.txt - 09/18/2000
CHANGES.txt - 08/04/2000
------------------------
CHANGES IN CUPS v1.1.3
- Makefile fixes.
- RPM spec file changes.
- Documentation updates.
- Enabled pstoraster debug messages for everything
(only logged when LogLevel set to "debug"...)
- Changed the Input/OutputAttributes fix in
pstoraster so that it works on all platforms.
- The HP-GL/2 filter didn't set the right green
color value in encoded polylines or text.
- Updated the "fitplot" code to handle plot sizes
specified as "PSwidth,length" and "PSlength,width".
- Updated the Linux parallel and USB backends to open
the device files prior to looking in /proc for
autoprobe info. This makes sure that loadable device
driver modules are in fact loaded...
- Added new FilterLimit directive to limit the number
of processing jobs/filters on a system.
- set-job-attributes didn't change the job-state to
held/pending when the job-hold-until attribute was
specified.
- set-job-attributes didn't save the new job attributes.
- Now change the "requesting-user-name" attribute in
requests from remote systems to "remroot" when an
unauthenticated "root" user is sent. This can be
changed using the new RemoteRoot directive in
cupsd.conf.
- The cancel-job, hold-job, release-job, and restart-job
operations didn't log the authenticated username.
- The cups-lpd mini-daemon now checks for a
document-format option before forcing raw mode with
filter mode 'l'.
- The cups-lpd mini-daemon now supports "-o" options
on the command-line (passed by inetd) to set global
defaults for all print queues.
- The pstops filter assumed that a file with a Trailer
comment would also have an EOF comment.
- Added new cupsSetPasswordCB(), cupsSetServer(),
cupsSetUser(), and ippSetPort() functions to better
support client applications (especially GUIs...)
- The CUPS-add-class and CUPS-add-printer operations
didn't reset the printer-name attribute on remote
print queues that had to be renamed when a local
printer was defined with the same name.
- The lpoptions command now supports a "-r" option to
remove options for a printer or instance.
- The lpadmin and admin.cgi programs no longer allow
class and printer names to begin with a number; this
caused the command-line utilities to become confused.
- The Linux USB backend now looks for both the parallel
and usblp driver names in the device list.
- Added a new FontPath directive to cupsd.conf, and also
a "--with-fontpath" option for the configure script to
specify alternate font paths for pstoraster.
- The CUPS-move-job operation didn't update the
job-printer-uri attribute.
- The scheduler only looked up printers and classes by
name in IPP requests, instead of using the full URI.
This caused problems with KUPS and friends with
remote printers.
- The scheduler now handles better localization of
hostnames (e.g. server is host.foo.com, remote is
host.subfoo.foo.com, localized is not host.subfoo...)
- The scheduler logging functions now use a common
log file checking/rotation function (courtesy of
Crutcher Dunnavant at Red Hat)
- The scheduler could accept more client connections
than it allocated for if more than one Port or Listen
line was present in cupsd.conf.
- Other minor scheduler performance tweeks.
- The lpq and lprm commands didn't support the default
printer set using lpoptions.
- The lpoptions command now supports a "-l" option to
list the printer-specific options and their current
settings.
- The web printer and class lists now show a link to the
default printer or class at the top of the page.
- The text filter now supports pretty printing of shell
and perl scripts as well as C/C++ source files.
- The top and bottom margins were reversed for landscape
text printing.
- The lpq and lprm commands didn't understand printer
instances.
- The scheduler only selected on the first 100 file
descriptors instead of the maximum file descriptor
limit.
- The scheduler client, listener, and mainline functions
now share code to disable and enable monitoring for
new client connections.
- The imagetoraster filter didn't support all of the
required pagedevice parameters.
- The serial backend now checks for 100 serial ports
under Linux.
- The scheduler used sscanf() to pull out the remote
printer location, description, and make/model strings,
but if any of these options was empty then sscanf()
would stop processing.
- Added "debug2" log level to provide a little less
verbose debugging information at the "debug" level.
- The scheduler would crash if you stopped a printer
that was currently printing a job.
- The scheduler incorrectly allowed jobs in the cancelled,
aborted, or completed state to be cancelled.
- The image filters did not load TIFF images properly
for bottom-to-top and right-to-left orientations.
- Added new cupsEncodeOptions() function to encode
CUPS options as IPP job attributes.
- The IPP backend, LPD mini-daemon, client commands,
and CUPS API did not properly encode multiple
option values separated by commas.
- Added new scheduler malloc logging in debug mode
(provides summary of total arena size, allocated,
and free bytes once a minute)
- The EPM-based distributions didn't install the
correct symlinks for a few man pages.
- Fixed a memory leak in the scheduler - wasn't
freeing old filters when deleting or renaming
printers.
- The scheduler now queries the primary IP address
for the name of the server and maps any incoming
requests from that address to the server name.
This fixes web admin mapping problems from
server.domain.com to localhost.
- The web printer modify interface now remembers
the previous device and driver settings (except
for serial ports.)
- The job-k-octets attribute is now stored as part of
the job attributes; this preserves the information
after a job is completed when job file history is
turned off.
- Dropped option sub-group parsing code for the moment,
since many Xerox PPD files abuse this feature in PPD
files and don't follow the hierarchy rules.
- Added new wrapper code around options so that duplex
options for some HP printers don't prevent prints.
- Added support for Digital UNIX/Tru64 UNIX/OSF/1 format
for "lpstat -v" output.
- Now show the URI for remote printers instead of
/dev/null in "lpstat -v" output.
- Creating classes and adding printers to a class with
the lpadmin command didn't work.
- The banner pages and test page should now format
correctly in both portrait and landscape orientations.
- Updated banner page substitution so that { can appear
by itself without quoting.
CHANGES IN CUPS v1.1.2
- Makefile/configure fixes
-1
Ver Arquivo
@@ -63,7 +63,6 @@ INSTALL_SYSV = @INSTALL_SYSV@
LIBCUPS = @LIBCUPS@
LIBCUPSIMAGE = @LIBCUPSIMAGE@
LIBJPEG = @LIBJPEG@
LIBMALLOC = @LIBMALLOC@
LIBPNG = @LIBPNG@
LIBTIFF = @LIBTIFF@
LIBZ = @LIBZ@
+4 -12
Ver Arquivo
@@ -70,22 +70,14 @@ install:
(cd fonts; $(MAKE) $(MFLAGS) install)
echo Installing in locale...
(cd locale; $(MAKE) $(MFLAGS) install)
echo Installing in ppd...
(cd ppd; $(MAKE) $(MFLAGS) install)
echo Installing in templates...
(cd templates; $(MAKE) $(MFLAGS) install)
echo Installing startup script...
if test "x$INITDIR" != "x"; then \
$(MKDIR) $(prefix)/$(INITDIR)/init.d; \
$(RM) $(prefix)/$(INITDIR)/init.d/cups; \
$(INSTALL_SCRIPT) cups.sh $(prefix)/$(INITDIR)/init.d/cups; \
$(CHMOD) ugo+rx $(prefix)/$(INITDIR)/init.d/cups; \
$(MKDIR) $(prefix)/$(INITDIR)/rc0.d; \
$(RM) $(prefix)/$(INITDIR)/rc0.d/K00cups; \
ln -s $(INITDDIR)/cups $(prefix)/$(INITDIR)/rc0.d/K00cups; \
$(MKDIR) $(prefix)/$(INITDIR)/rc3.d; \
$(RM) $(prefix)/$(INITDIR)/rc3.d/S99cups; \
ln -s $(INITDDIR)/cups $(prefix)/$(INITDIR)/rc3.d/S99cups; \
$(INSTALL_SCRIPT) cups.sh $prefix/$INITDIR/init.d/cups; \
$(CHMOD) ugo+rx $prefix/$INITDIR/init.d/cups; \
ln -s $INITDDIR/cups $prefix/$INITDIR/rc0.d/K00cups; \
ln -s $INITDDIR/cups $prefix/$INITDIR/rc2.d/S99cups; \
fi
#
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
README - CUPS v1.1.3 - 09/18/2000
README - CUPS v1.1.2 - 08/04/2000
---------------------------------
INTRODUCTION
+1 -1
Ver Arquivo
@@ -41,7 +41,7 @@ all: $(TARGETS)
#
clean:
$(RM) $(OBJS) $(TARGETS) http
$(RM) $(OBJS) $(TARGETS)
#
+114 -7
Ver Arquivo
@@ -53,6 +53,11 @@ int /* O - Exit status */
main(int argc, /* I - Number of command-line arguments (6 or 7) */
char *argv[]) /* I - Command-line arguments */
{
int i; /* Looping var */
int n, n2; /* Attribute values */
char *option, /* Name of option */
*s; /* Pointer into option value */
const char *val; /* Pointer to option value */
int num_options; /* Number of printer options */
cups_option_t *options; /* Printer options */
char method[255], /* Method in URI */
@@ -86,8 +91,6 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
if (argc == 1)
{
char *s;
if ((s = strrchr(argv[0], '/')) != NULL)
s ++;
else
@@ -436,15 +439,119 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
options = NULL;
num_options = cupsParseOptions(argv[5], 0, &options);
if ((content_type = getenv("CONTENT_TYPE")) != NULL &&
strcasecmp(content_type, "application/vnd.cups-raw") == 0)
num_options = cupsAddOption("raw", "", num_options, &options);
if (cupsGetOption("raw", num_options, options) ||
((content_type = getenv("CONTENT_TYPE")) != NULL &&
strcasecmp(content_type, "application/vnd.cups-raw") == 0))
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE, "document-format",
NULL, "application/vnd.cups-raw");
else if ((val = cupsGetOption("document-format", num_options, options)) != NULL)
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE, "document-format",
NULL, val);
else
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE, "document-format",
NULL, "application/octet-stream");
if (copies_sup)
ippAddInteger(request, IPP_TAG_JOB, IPP_TAG_INTEGER, "copies", atoi(argv[4]));
cupsEncodeOptions(request, num_options, options);
cupsFreeOptions(num_options, options);
for (i = 0; i < num_options; i ++)
{
/*
* Skip the "raw" option - handled above...
*/
if (strcasecmp(options[i].name, "raw") == 0 ||
strcasecmp(options[i].name, "document-format") == 0)
continue;
/*
* See what the option value is; for compatibility with older interface
* scripts, we have to support single-argument options as well as
* option=value, option=low-high, and option=MxN.
*/
option = options[i].name;
val = options[i].value;
if (*val == '\0')
val = NULL;
if (val != NULL)
{
if (strcasecmp(val, "true") == 0 ||
strcasecmp(val, "on") == 0 ||
strcasecmp(val, "yes") == 0)
{
/*
* Boolean value - true...
*/
n = 1;
val = "";
}
else if (strcasecmp(val, "false") == 0 ||
strcasecmp(val, "off") == 0 ||
strcasecmp(val, "no") == 0)
{
/*
* Boolean value - false...
*/
n = 0;
val = "";
}
n = strtol(val, &s, 0);
}
else
{
if (strncasecmp(option, "no", 2) == 0)
{
option += 2;
n = 0;
}
else
n = 1;
s = "";
}
if (*s != '\0' && *s != '-' && (*s != 'x' || s == val))
/*
* String value(s)...
*/
ippAddString(request, IPP_TAG_JOB, IPP_TAG_KEYWORD, option, NULL, val);
else if (val != NULL)
{
/*
* Numeric value, range, or resolution...
*/
if (*s == '-')
{
n2 = strtol(s + 1, NULL, 0);
ippAddRange(request, IPP_TAG_JOB, option, n, n2);
}
else if (*s == 'x')
{
n2 = strtol(s + 1, &s, 0);
if (strcasecmp(s, "dpc") == 0)
ippAddResolution(request, IPP_TAG_JOB, option, IPP_RES_PER_CM, n, n2);
else if (strcasecmp(s, "dpi") == 0)
ippAddResolution(request, IPP_TAG_JOB, option, IPP_RES_PER_INCH, n, n2);
else
ippAddString(request, IPP_TAG_JOB, IPP_TAG_KEYWORD, option, NULL, val);
}
else
ippAddInteger(request, IPP_TAG_JOB, IPP_TAG_INTEGER, option, n);
}
else
/*
* Boolean value...
*/
ippAddBoolean(request, IPP_TAG_JOB, option, (char)n);
}
/*
* Now fill in the HTTP request stuff...
+19 -42
Ver Arquivo
@@ -275,8 +275,7 @@ list_devices(void)
#ifdef __linux
int i; /* Looping var */
int fd; /* File descriptor */
char device[255], /* Device filename */
probefile[255]; /* Probe filename */
char device[255]; /* Device filename */
FILE *probe; /* /proc/parport/n/autoprobe file */
char line[1024], /* Line from file */
*delim, /* Delimiter in file */
@@ -286,41 +285,9 @@ list_devices(void)
for (i = 0; i < 4; i ++)
{
/*
* First open the device to make sure the driver module is loaded...
*/
sprintf(device, "/dev/lp%d", i);
if ((fd = open(device, O_WRONLY)) >= 0)
close(fd);
else
sprintf(device, "/proc/parport/%d/autoprobe", i);
if ((probe = fopen(device, "r")) != NULL)
{
sprintf(device, "/dev/par%d", i);
if ((fd = open(device, O_WRONLY)) >= 0)
close(fd);
}
/*
* Then try looking at the probe file...
*/
sprintf(probefile, "/proc/parport/%d/autoprobe", i);
if ((probe = fopen(probefile, "r")) == NULL)
{
/*
* Linux 2.4 kernel has different path...
*/
sprintf(probefile, "/proc/sys/dev/parport/parport%d/autoprobe", i);
probe = fopen(probefile, "r");
}
if (probe != NULL)
{
/*
* Found a probe file!
*/
memset(make, 0, sizeof(make));
memset(model, 0, sizeof(model));
strcpy(model, "Unknown");
@@ -357,13 +324,23 @@ list_devices(void)
printf("direct parallel:/dev/lp%d \"%s\" \"Parallel Port #%d\"\n",
i, model, i + 1);
}
else if (fd >= 0)
else
{
/*
* No probe file, but we know the port is there...
*/
printf("direct parallel:%s \"Unknown\" \"Parallel Port #%d\"\n", device, i + 1);
sprintf(device, "/dev/lp%d", i);
if ((fd = open(device, O_WRONLY)) >= 0)
{
close(fd);
printf("direct parallel:%s \"Unknown\" \"Parallel Port #%d\"\n", device, i + 1);
}
else
{
sprintf(device, "/dev/par%d", i);
if ((fd = open(device, O_WRONLY)) >= 0)
{
close(fd);
printf("direct parallel:%s \"Unknown\" \"Parallel Port #%d\"\n", device, i + 1);
}
}
}
}
#elif defined(__sgi)
+1 -1
Ver Arquivo
@@ -396,7 +396,7 @@ list_devices(void)
char device[255]; /* Device filename */
for (i = 0; i < 100; i ++)
for (i = 0; i < 4; i ++)
{
sprintf(device, "/dev/ttyS%d", i);
if ((fd = open(device, O_WRONLY | O_NOCTTY | O_NDELAY)) >= 0)
+2 -25
Ver Arquivo
@@ -262,33 +262,15 @@ list_devices(void)
int i; /* Looping var */
int fd; /* File descriptor */
char device[255]; /* Device filename */
FILE *probe; /* /proc/bus/usb/devices file */
FILE *probe; /* /proc/parport/n/autoprobe file */
char line[1024], /* Line from file */
*delim, /* Delimiter in file */
make[IPP_MAX_NAME], /* Make from file */
model[IPP_MAX_NAME]; /* Model from file */
/*
* First try opening one of the USB devices to load the driver
* module as needed...
*/
if ((fd = open("/dev/usb/lp0", O_WRONLY)) >= 0)
close(fd); /* 2.3.x and 2.4.x */
else if ((fd = open("/dev/usblp0", O_WRONLY)) >= 0)
close(fd); /* 2.2.x */
/*
* Then look at the device list for the USB bus...
*/
if ((probe = fopen("/proc/bus/usb/devices", "r")) != NULL)
{
/*
* Scan the device list...
*/
i = 0;
memset(make, 0, sizeof(make));
@@ -323,8 +305,7 @@ list_devices(void)
strncpy(model, line + 12, sizeof(model) - 1);
}
else if (strncmp(line, "I:", 2) == 0 &&
(strstr(line, "Driver=printer") != NULL ||
strstr(line, "Driver=usblp") != NULL) &&
strstr(line, "Driver=printer") != NULL &&
make[0] && model[0])
{
/*
@@ -345,10 +326,6 @@ list_devices(void)
}
else
{
/*
* Just probe manually for USB devices...
*/
for (i = 0; i < 8; i ++)
{
sprintf(device, "/dev/usb/lp%d", i);
+1 -17
Ver Arquivo
@@ -65,13 +65,9 @@ main(int argc, /* I - Number of command-line arguments */
http_t *http; /* Connection to server */
const char *dest, /* Desired printer */
*user; /* Desired user */
char *instance; /* Printer instance */
int id, /* Desired job ID */
interval, /* Reporting interval */
longstatus; /* Show file details */
int num_dests; /* Number of destinations */
cups_dest_t *dests; /* Destinations */
/*
* Connect to the scheduler...
@@ -83,18 +79,12 @@ main(int argc, /* I - Number of command-line arguments */
* Check for command-line options...
*/
dest = NULL;
dest = cupsGetDefault();
user = NULL;
id = 0;
interval = 0;
longstatus = 0;
num_dests = cupsGetDests(&dests);
for (i = 0; i < num_dests; i ++)
if (dests[i].is_default)
dest = dests[i].name;
for (i = 1; i < argc; i ++)
if (argv[i][0] == '+')
interval = atoi(argv[i] + 1);
@@ -110,9 +100,6 @@ main(int argc, /* I - Number of command-line arguments */
i ++;
dest = argv[i];
}
if ((instance = strchr(dest, '/')) != NULL)
*instance = '\0';
break;
case 'l' : /* Long status */
@@ -121,8 +108,6 @@ main(int argc, /* I - Number of command-line arguments */
default :
fputs("Usage: lpq [-P dest] [-l] [+interval]\n", stderr);
httpClose(http);
cupsFreeDests(num_dests, dests);
return (1);
}
}
@@ -155,7 +140,6 @@ main(int argc, /* I - Number of command-line arguments */
* Close the connection to the server and return...
*/
cupsFreeDests(num_dests, dests);
httpClose(http);
return (0);
+2 -5
Ver Arquivo
@@ -123,17 +123,14 @@ main(int argc, /* I - Number of command-line arguments */
break;
case 'l' : /* Literal/raw */
num_options = cupsAddOption("raw", "", num_options, &options);
num_options = cupsParseOptions("raw", num_options, &options);
break;
case 'p' : /* Prettyprint */
num_options = cupsAddOption("prettyprint", "", num_options, &options);
num_options = cupsParseOptions("prettyprint", num_options, &options);
break;
case 'h' : /* Suppress burst page */
num_options = cupsAddOption("job-sheets", "none", num_options, &options);
break;
case 's' : /* Don't use symlinks */
break;
+1 -23
Ver Arquivo
@@ -50,14 +50,11 @@ main(int argc, /* I - Number of command-line arguments */
int i; /* Looping var */
int job_id; /* Job ID */
const char *dest; /* Destination printer */
char *instance; /* Pointer to instance name */
char uri[1024]; /* Printer or job URI */
ipp_t *request; /* IPP request */
ipp_t *response; /* IPP response */
ipp_op_t op; /* Operation */
cups_lang_t *language; /* Language */
int num_dests; /* Number of destinations */
cups_dest_t *dests; /* Destinations */
/*
@@ -66,16 +63,10 @@ main(int argc, /* I - Number of command-line arguments */
op = IPP_CANCEL_JOB;
job_id = 0;
dest = NULL;
dest = cupsGetDefault();
response = NULL;
http = NULL;
num_dests = cupsGetDests(&dests);
for (i = 0; i < num_dests; i ++)
if (dests[i].is_default)
dest = dests[i].name;
/*
* Open a connection to the server...
*/
@@ -83,7 +74,6 @@ main(int argc, /* I - Number of command-line arguments */
if ((http = httpConnect(cupsServer(), ippPort())) == NULL)
{
fputs("lprm: Unable to contact server!\n", stderr);
cupsFreeDests(num_dests, dests);
return (1);
}
@@ -103,15 +93,10 @@ main(int argc, /* I - Number of command-line arguments */
i ++;
dest = argv[i];
}
if ((instance = strchr(dest, '/')) != NULL)
*instance = '\0';
break;
default :
fprintf(stderr, "lprm: Unknown option \'%c\'!\n", argv[i][1]);
cupsFreeDests(num_dests, dests);
httpClose(http);
return (1);
}
else
@@ -211,8 +196,6 @@ main(int argc, /* I - Number of command-line arguments */
else
{
fputs("lprm: Unable to cancel job(s)!\n", stderr);
cupsFreeDests(num_dests, dests);
httpClose(http);
return (1);
}
}
@@ -226,14 +209,9 @@ main(int argc, /* I - Number of command-line arguments */
if (!cupsCancelJob(dest, 0))
{
fputs("lprm: Unable to cancel job(s)!\n", stderr);
cupsFreeDests(num_dests, dests);
httpClose(http);
return (1);
}
cupsFreeDests(num_dests, dests);
httpClose(http);
return (0);
}
+42 -123
Ver Arquivo
@@ -263,12 +263,9 @@ do_am_class(http_t *http, /* I - HTTP connection */
}
name = cgiGetVariable("PRINTER_NAME");
if (isdigit(*name))
ptr = name;
else
for (ptr = name; *ptr; ptr ++)
if (!isalnum(*ptr) && *ptr != '_')
break;
for (ptr = name; *ptr; ptr ++)
if (!isalnum(*ptr) && *ptr != '_')
break;
if (*ptr || ptr == name)
{
@@ -486,8 +483,7 @@ do_am_printer(http_t *http, /* I - HTTP connection */
ipp_attribute_t *attr, /* Current attribute */
*last; /* Last attribute */
ipp_t *request, /* IPP request */
*response, /* IPP response */
*oldinfo; /* Old printer information */
*response; /* IPP response */
ipp_status_t status; /* Request status */
const char *var; /* CGI variable */
char uri[HTTP_MAX_URI], /* Device or printer URI */
@@ -511,50 +507,48 @@ do_am_printer(http_t *http, /* I - HTTP connection */
};
if (modify)
{
/*
* Build an IPP_GET_PRINTER_ATTRIBUTES request, which requires the
* following attributes:
*
* attributes-charset
* attributes-natural-language
* printer-uri
*/
request = ippNew();
request->request.op.operation_id = IPP_GET_PRINTER_ATTRIBUTES;
request->request.op.request_id = 1;
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
snprintf(uri, sizeof(uri), "ipp://localhost/printers/%s",
cgiGetVariable("PRINTER_NAME"));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
NULL, uri);
/*
* Do the request and get back a response...
*/
oldinfo = cupsDoRequest(http, request, "/");
}
if (cgiGetVariable("PRINTER_LOCATION") == NULL)
{
if (modify)
{
/*
* Update the location and description of an existing printer...
* Build an IPP_GET_PRINTER_ATTRIBUTES request, which requires the
* following attributes:
*
* attributes-charset
* attributes-natural-language
* printer-uri
*/
if (oldinfo)
ippSetCGIVars(oldinfo, NULL, NULL);
request = ippNew();
request->request.op.operation_id = IPP_GET_PRINTER_ATTRIBUTES;
request->request.op.request_id = 1;
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
snprintf(uri, sizeof(uri), "ipp://localhost/printers/%s",
cgiGetVariable("PRINTER_NAME"));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
NULL, uri);
/*
* Do the request and get back a response...
*/
if ((response = cupsDoRequest(http, request, "/")) != NULL)
{
ippSetCGIVars(response, NULL, NULL);
ippDelete(response);
}
/*
* Update the location and description of an existing printer...
*/
cgiCopyTemplateLang(stdout, TEMPLATES, "modify-printer.tmpl", getenv("LANG"));
}
@@ -567,19 +561,13 @@ do_am_printer(http_t *http, /* I - HTTP connection */
cgiCopyTemplateLang(stdout, TEMPLATES, "add-printer.tmpl", getenv("LANG"));
}
if (oldinfo)
ippDelete(oldinfo);
return;
}
name = cgiGetVariable("PRINTER_NAME");
if (isdigit(*name))
ptr = name;
else
for (ptr = name; *ptr; ptr ++)
if (!isalnum(*ptr) && *ptr != '_')
break;
for (ptr = name; *ptr; ptr ++)
if (!isalnum(*ptr) && *ptr != '_')
break;
if (*ptr || ptr == name)
{
@@ -628,32 +616,10 @@ do_am_printer(http_t *http, /* I - HTTP connection */
* Let the user choose...
*/
if (oldinfo &&
(attr = ippFindAttribute(oldinfo, "device-uri", IPP_TAG_URI)) != NULL)
{
strncpy(uri, attr->values[0].string.text, sizeof(uri) - 1);
uri[sizeof(uri) - 1] = '\0';
if ((uriptr = strchr(uri, ':')) != NULL && strncmp(uriptr, "://", 3) == 0)
*uriptr = '\0';
cgiSetVariable("CURRENT_DEVICE_URI", uri);
}
cgiCopyTemplateLang(stdout, TEMPLATES, "choose-device.tmpl", getenv("LANG"));
}
else if (strchr(var, '/') == NULL)
{
if (oldinfo &&
(attr = ippFindAttribute(response, "device-uri", IPP_TAG_URI)) != NULL)
{
/*
* Set the current device URI for the form to the old one...
*/
if (strncmp(attr->values[0].string.text, var, strlen(var)) == 0)
cgiSetVariable("DEVICE_URI", attr->values[0].string.text);
}
/*
* User needs to set the full URI...
*/
@@ -685,50 +651,6 @@ do_am_printer(http_t *http, /* I - HTTP connection */
}
else if ((var = cgiGetVariable("PPD_NAME")) == NULL)
{
if (modify)
{
/*
* Get the PPD file...
*/
FILE *fp; /* PPD file */
char filename[1024]; /* PPD filename */
ppd_file_t *ppd; /* PPD information */
char buffer[1024]; /* Buffer */
int bytes; /* Number of bytes */
sprintf(uri, "/printers/%s.ppd", name);
cupsTempFile(filename, sizeof(filename));
if (httpGet(http, uri))
httpGet(http, uri);
while (httpUpdate(http) == HTTP_CONTINUE);
if ((fp = fopen(filename, "w")) != NULL)
{
while ((bytes = httpRead(http, buffer, sizeof(buffer))) > 0)
fwrite(buffer, 1, bytes, fp);
fclose(fp);
if ((ppd = ppdOpenFile(filename)) != NULL)
{
if (ppd->manufacturer)
cgiSetVariable("CURRENT_MAKE", ppd->manufacturer);
if (ppd->nickname)
cgiSetVariable("CURRENT_MAKE_AND_MODEL", ppd->nickname);
ppdClose(ppd);
}
}
else
httpFlush(http);
unlink(filename);
}
/*
* Build a CUPS_GET_PPDS request, which requires the following
* attributes:
@@ -882,9 +804,6 @@ do_am_printer(http_t *http, /* I - HTTP connection */
else
cgiCopyTemplateLang(stdout, TEMPLATES, "printer-added.tmpl", getenv("LANG"));
}
if (oldinfo)
ippDelete(oldinfo);
}
-59
Ver Arquivo
@@ -46,7 +46,6 @@ main(int argc, /* I - Number of command-line arguments */
http_t *http; /* Connection to the server */
ipp_t *request, /* IPP request */
*response; /* IPP response */
ipp_attribute_t *attr; /* IPP attribute */
ipp_status_t status; /* Operation status... */
char uri[HTTP_MAX_URI];
/* Printer URI */
@@ -99,64 +98,6 @@ main(int argc, /* I - Number of command-line arguments */
if (op == NULL || strcasecmp(op, "print-test-page") != 0)
{
/*
* Get the default destination...
*/
request = ippNew();
request->request.op.operation_id = CUPS_GET_DEFAULT;
request->request.op.request_id = 1;
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
if ((response = cupsDoRequest(http, request, "/")) != NULL)
{
if ((attr = ippFindAttribute(response, "printer-name", IPP_TAG_NAME)) != NULL)
cgiSetVariable("DEFAULT_NAME", attr->values[0].string.text);
if ((attr = ippFindAttribute(response, "printer-uri-supported", IPP_TAG_URI)) != NULL)
{
char method[HTTP_MAX_URI],
username[HTTP_MAX_URI],
hostname[HTTP_MAX_URI],
resource[HTTP_MAX_URI],
uri[HTTP_MAX_URI];
int port; /* URI data */
const char *server; /* Name of server */
/*
* Map localhost access to localhost...
*/
server = getenv("SERVER_NAME");
httpSeparate(attr->values[0].string.text, method, username,
hostname, &port, resource);
if (strcasecmp(hostname, server) == 0 &&
(strcmp(getenv("REMOTE_HOST"), "127.0.0.1") == 0 ||
strcmp(getenv("REMOTE_HOST"), "localhost") == 0 ||
strcmp(getenv("REMOTE_HOST"), server) == 0))
strcpy(hostname, "localhost");
/*
* Rewrite URI with HTTP address...
*/
snprintf(uri, sizeof(uri), "http://%s:%d%s", hostname, port,
resource);
cgiSetVariable("DEFAULT_URI", uri);
}
ippDelete(response);
}
/*
* Get the class info...
*/
+3 -4
Ver Arquivo
@@ -96,12 +96,12 @@ ippSetCGIVars(ipp_t *response, /* I - Response data to be copied... */
resource[HTTP_MAX_URI],
uri[HTTP_MAX_URI];
int port; /* URI data */
const char *server; /* Name of server */
char server[1024]; /* Name of server */
ippSetServerVersion();
server = getenv("SERVER_NAME");
strcpy(server, cupsServer());
for (attr = response->attrs;
attr && attr->group_tag == IPP_TAG_OPERATION;
@@ -206,8 +206,7 @@ ippSetCGIVars(ipp_t *response, /* I - Response data to be copied... */
if (strcasecmp(hostname, server) == 0 &&
(strcmp(getenv("REMOTE_HOST"), "127.0.0.1") == 0 ||
strcmp(getenv("REMOTE_HOST"), "localhost") == 0 ||
strcmp(getenv("REMOTE_HOST"), server) == 0))
strcmp(getenv("REMOTE_HOST"), "localhost") == 0))
strcpy(hostname, "localhost");
/*
-59
Ver Arquivo
@@ -46,7 +46,6 @@ main(int argc, /* I - Number of command-line arguments */
http_t *http; /* Connection to the server */
ipp_t *request, /* IPP request */
*response; /* IPP response */
ipp_attribute_t *attr; /* IPP attribute */
ipp_status_t status; /* Operation status... */
char uri[HTTP_MAX_URI];
/* Printer URI */
@@ -99,64 +98,6 @@ main(int argc, /* I - Number of command-line arguments */
if (op == NULL || strcasecmp(op, "print-test-page") != 0)
{
/*
* Get the default destination...
*/
request = ippNew();
request->request.op.operation_id = CUPS_GET_DEFAULT;
request->request.op.request_id = 1;
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
if ((response = cupsDoRequest(http, request, "/")) != NULL)
{
if ((attr = ippFindAttribute(response, "printer-name", IPP_TAG_NAME)) != NULL)
cgiSetVariable("DEFAULT_NAME", attr->values[0].string.text);
if ((attr = ippFindAttribute(response, "printer-uri-supported", IPP_TAG_URI)) != NULL)
{
char method[HTTP_MAX_URI],
username[HTTP_MAX_URI],
hostname[HTTP_MAX_URI],
resource[HTTP_MAX_URI],
uri[HTTP_MAX_URI];
int port; /* URI data */
const char *server; /* Name of server */
/*
* Map localhost access to localhost...
*/
server = getenv("SERVER_NAME");
httpSeparate(attr->values[0].string.text, method, username,
hostname, &port, resource);
if (strcasecmp(hostname, server) == 0 &&
(strcmp(getenv("REMOTE_HOST"), "127.0.0.1") == 0 ||
strcmp(getenv("REMOTE_HOST"), "localhost") == 0 ||
strcmp(getenv("REMOTE_HOST"), server) == 0))
strcpy(hostname, "localhost");
/*
* Rewrite URI with HTTP address...
*/
snprintf(uri, sizeof(uri), "http://%s:%d%s", hostname, port,
resource);
cgiSetVariable("DEFAULT_URI", uri);
}
ippDelete(response);
}
/*
* Get the printer info...
*/
+5 -29
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: cupsd.conf 1344 2000-09-06 18:32:40Z mike $"
# "$Id: cupsd.conf 1171 2000-06-27 21:15:41Z mike $"
#
# Sample configuration file for the Common UNIX Printing System (CUPS)
# scheduler.
@@ -111,13 +111,6 @@
#ErrorLog /var/log/cups/error_log
#
# FontPath: the path to locate all font files (currently only for pstoraster)
# By default /usr/share/cups/fonts.
#
#FontPath /usr/share/cups/fonts
#
# LogLevel: controls the number of messages logged to the ErrorLog
# file and can be one of the following:
@@ -177,13 +170,6 @@ LogLevel info
#RequestRoot /var/spool/cups
#
# RemoteRoot: the name of the user assigned to unauthenticated accesses
# from remote systems. By default "remroot".
#
#RemoteRoot remroot
#
# ServerBin: the root directory for the scheduler executables.
# By default /usr/lib/cups or /usr/lib32/cups (IRIX 6.5).
@@ -227,22 +213,12 @@ LogLevel info
#
# TempDir: the directory to put temporary files in. This directory must be
# writable by the user defined above! Defaults to "/var/spool/cups/tmp" or
# the value of the TMPDIR environment variable.
# writable by the user defined above! Defaults to "/var/tmp" or the value
# of the TMPDIR environment variable.
#
#TempDir /var/spool/cups/tmp
#TempDir /var/tmp
#
# FilterLimit: sets the maximum cost of all job filters that can be run
# at the same time. A limit of 0 means no limit. A typical job may need
# a filter limit of at least 200; limits less than the minimum required
# by a job force a single job to be printed at any time.
#
# The default limit is 0 (unlimited).
#
#FilterLimit 0
########
######## Network Options
@@ -562,5 +538,5 @@ Allow From 127.0.0.1
</Location>
#
# End of "$Id: cupsd.conf 1344 2000-09-06 18:32:40Z mike $".
# End of "$Id: cupsd.conf 1171 2000-06-27 21:15:41Z mike $".
#
+13 -16
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: mime.convs 1340 2000-09-06 13:53:00Z mike $"
# "$Id: mime.convs 1270 2000-08-03 18:05:22Z mike $"
#
# MIME converts file for the Common UNIX Printing System (CUPS).
#
@@ -41,26 +41,23 @@
# PostScript filters
#
#application/msword application/postscript 33 mswordtops
application/pdf application/postscript 33 pdftops
application/postscript application/vnd.cups-postscript 66 pstops
application/vnd.hp-HPGL application/postscript 66 hpgltops
image/* application/vnd.cups-postscript 66 imagetops
#text/html application/postscript 33 htmltops
application/x-cshell application/postscript 33 texttops
application/x-perl application/postscript 33 texttops
application/x-shell application/postscript 33 texttops
text/html application/postscript 33 texttops
text/plain application/postscript 33 texttops
application/vnd.cups-form application/vnd.cups-postscript 33 formtops
#application/msword application/postscript 50 mswordtops
application/pdf application/postscript 50 pdftops
application/postscript application/vnd.cups-postscript 50 pstops
application/vnd.hp-HPGL application/postscript 50 hpgltops
image/* application/vnd.cups-postscript 50 imagetops
#text/html application/postscript 50 htmltops
text/html application/postscript 50 texttops
text/plain application/postscript 50 texttops
application/vnd.cups-form application/vnd.cups-postscript 50 formtops
########################################################################
#
# Raster filters...
#
image/* application/vnd.cups-raster 100 imagetoraster
application/vnd.cups-postscript application/vnd.cups-raster 100 pstoraster
image/* application/vnd.cups-raster 50 imagetoraster
application/vnd.cups-postscript application/vnd.cups-raster 50 pstoraster
########################################################################
#
@@ -74,5 +71,5 @@ application/vnd.cups-postscript application/vnd.cups-raster 100 pstoraster
#*/* application/vnd.cups-raw 0 -
#
# End of "$Id: mime.convs 1340 2000-09-06 13:53:00Z mike $".
# End of "$Id: mime.convs 1270 2000-08-03 18:05:22Z mike $".
#
+2 -9
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: mime.types 1340 2000-09-06 13:53:00Z mike $"
# "$Id: mime.types 1270 2000-08-03 18:05:22Z mike $"
#
# MIME types file for the Common UNIX Printing System (CUPS).
#
@@ -110,13 +110,6 @@ image/x-bitmap bmp string(0,BM) && !printable(2,14)
text/html html htm printable(0,1024) +\
(string(0,"<HTML>") string(0,"<!DOCTYPE"))
application/x-cshell csh printable(0,1024) + string(0,#!) +\
(contains(2,80,/csh) contains(2,80,/tcsh))
application/x-perl pl printable(0,1024) + string(0,#!) +\
contains(2,80,/perl)
application/x-shell sh printable(0,1024) + string(0,#!) +\
(contains(2,80,/bash) contains(2,80,/ksh)\
contains(2,80,/sh) contains(2,80,/zsh))
text/plain txt printable(0,1024)
########################################################################
@@ -141,5 +134,5 @@ application/vnd.cups-raw
#application/octet-stream
#
# End of "$Id: mime.types 1340 2000-09-06 13:53:00Z mike $".
# End of "$Id: mime.types 1270 2000-08-03 18:05:22Z mike $".
#
+1 -9
Ver Arquivo
@@ -28,7 +28,7 @@
* Version of software...
*/
#define CUPS_SVERSION "CUPS v1.1.3"
#define CUPS_SVERSION "CUPS v1.1.2"
/*
* Where are files stored?
@@ -41,7 +41,6 @@
#define CUPS_REQUESTS "/var/spool/cups"
#define CUPS_LOGDIR "/var/logs/cups"
#define CUPS_DATADIR "/usr/share/cups"
#define CUPS_FONTPATH "/usr/share/cups/fonts"
/*
@@ -123,13 +122,6 @@
#undef HAVE_WAITPID
#undef HAVE_WAIT3
/*
* Do we have the mallinfo function and malloc.h?
*/
#undef HAVE_MALLINFO
#undef HAVE_MALLOC_H
/*
* End of "$Id$".
*/
+2 -30
Ver Arquivo
@@ -113,8 +113,6 @@ fi
AC_ARG_ENABLE(pam, [ --enable-pam turn on PAM support [default=yes]])
AC_ARG_WITH(fontpath, [ --with-fontpath set font path for pstoraster],fontpath="$withval",fontpath="")
dnl Checks for programs...
AC_PROG_AWK
AC_PROG_CC
@@ -144,23 +142,9 @@ dnl Architecture checks...
AC_C_BIGENDIAN
dnl Check for libraries...
AC_CHECK_LIB(c,crypt,LIBS="$LIBS")
if test "$ac_cv_lib_c_crypt" = "no"; then
AC_CHECK_LIB(crypt,crypt)
fi
AC_CHECK_LIB(c,crypt,LIBS="$LIBS",AC_CHECK_LIB(crypt,crypt))
AC_CHECK_HEADER(crypt.h, AC_DEFINE(HAVE_CRYPT_H))
AC_CHECK_LIB(sec,getspent)
LIBMALLOC=""
AC_CHECK_LIB(c,mallinfo,LIBS="$LIBS"; AC_DEFINE(HAVE_MALLINFO),LIBS="$LIBS")
if test "$ac_cv_lib_c_mallinfo" = "no"; then
AC_CHECK_LIB(malloc,mallinfo,
LIBS="$LIBS"
LIBMALLOC="-lmalloc"
AC_DEFINE(HAVE_MALLINFO),
LIBS="$LIBS")
fi
AC_SUBST(LIBMALLOC)
if test "$enable_pam" != "no"; then
OLDLIBS="$LIBS"
AC_CHECK_LIB(dl,dlopen)
@@ -231,11 +215,7 @@ LIBS="$SAVELIBS"
dnl Checks for header files.
AC_HEADER_STDC
AC_HEADER_DIRENT
AC_CHECK_HEADER(crypt.h,AC_DEFINE(HAVE_CRYPT_H))
AC_CHECK_HEADER(malloc.h,AC_DEFINE(HAVE_MALLOC_H))
AC_CHECK_HEADER(shadow.h,AC_DEFINE(HAVE_SHADOW_H))
AC_CHECK_HEADER(stddef.h,AC_DEFINE(HAVE_STDDEF_H))
AC_CHECK_HEADER(stdlib.h,AC_DEFINE(HAVE_STDLIB_H))
dnl Checks for string functions.
AC_CHECK_FUNCS(strdup)
@@ -409,11 +389,6 @@ if test "$mandir" = "\${prefix}/man" -a "$prefix" = "/"; then
fi
fi
dnl Fix "fontpath" variable...
if test "x$fontpath" = "x"; then
fontpath="$datadir/cups/fonts"
fi
dnl Setup manpage extensions...
case "$uname" in
FreeBSD* | NetBSD* | OpenBSD*)
@@ -549,9 +524,6 @@ CUPS_DOCROOT='${exec_prefix}/share/doc/cups'
AC_DEFINE_UNQUOTED(CUPS_DOCROOT, "$exec_prefix/share/doc/cups")
AC_SUBST(CUPS_DOCROOT)
dnl Set the CUPS_FONTPATH directory...
AC_DEFINE_UNQUOTED(CUPS_FONTPATH, "$fontpath")
AC_OUTPUT(Makedefs cups.sh)
dnl
+11 -13
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: cups.list 1368 2000-09-14 18:04:10Z mike $"
# "$Id: cups.list 1277 2000-08-04 14:53:49Z mike $"
#
# ESP Package Manager (EPM) file list for the Common UNIX Printing
# System (CUPS).
@@ -28,7 +28,7 @@
%vendor Easy Software Products
%license LICENSE.txt
%readme README.txt
%version 1.1.3
%version 1.1.2
%incompat printpro
%system all
@@ -311,12 +311,10 @@ f 0644 root sys $SERVERROOT/mime.types conf/mime.types
c 0644 root sys $SERVERROOT/printers.conf conf/printers.conf
%system linux
# Linux version needs PAM...
%requires /lib/libpam.so.0
d 0555 root sys $PAMDIR -
c 0644 root sys $PAMDIR/cups data/cups.pam
c 0644 root sys $PAMDIR/cups.suse data/cups.suse
%install if test -f /lib/security/pam_unix.so; then
%install mv $PAMDIR/cups.suse $PAMDIR/cups
%install fi
%system all
# Developer files
@@ -446,7 +444,7 @@ d 0555 root sys $MANDIR/man5 -
d 0555 root sys $MANDIR/man1m -
f 0444 root sys $MANDIR/man1m/accept.1m man/accept.man
l 0444 root sys $MANDIR/man1m/reject.1m accept.1m
l 0444 root sys $MANDIR/man1m/reject.1m accept.man
f 0444 root sys $MANDIR/man1/backend.1 man/backend.man
f 0444 root sys $MANDIR/man1/classes.conf.5 man/classes.conf.man
f 0444 root sys $MANDIR/man1m/cups-lpd.1m man/cups-lpd.man
@@ -454,7 +452,7 @@ f 0444 root sys $MANDIR/man1m/cups-polld.1m man/cups-polld.man
f 0444 root sys $MANDIR/man1m/cupsd.1m man/cupsd.man
f 0444 root sys $MANDIR/man5/cupsd.conf.5 man/cupsd.conf.man
f 0444 root sys $MANDIR/man1m/enable.1m man/enable.man
l 0444 root sys $MANDIR/man1m/disable.1m enable.1m
l 0444 root sys $MANDIR/man1m/disable.1m enable.man
f 0444 root sys $MANDIR/man1/filter.1 man/filter.man
f 0444 root sys $MANDIR/man1m/lpadmin.1m man/lpadmin.man
f 0444 root sys $MANDIR/man1m/lpc.1m man/lpc.man
@@ -466,7 +464,7 @@ f 0444 root sys $MANDIR/man1/lprm.1 man/lprm.man
f 0444 root sys $MANDIR/man1/lpr.1 man/lpr.man
f 0444 root sys $MANDIR/man1/lpstat.1 man/lpstat.man
f 0444 root sys $MANDIR/man1/lp.1 man/lp.man
l 0444 root sys $MANDIR/man1/cancel.1 lp.1
l 0444 root sys $MANDIR/man1/cancel.1 lp.man
f 0444 root sys $MANDIR/man5/mime.convs.5 man/mime.convs.man
f 0444 root sys $MANDIR/man5/mime.types.5 man/mime.types.man
f 0444 root sys $MANDIR/man5/printers.conf.5 man/printers.conf.man
@@ -477,7 +475,7 @@ d 0555 root sys $MANDIR/man5 -
d 0555 root sys $MANDIR/man8 -
f 0444 root sys $MANDIR/man8/accept.8 man/accept.man
l 0444 root sys $MANDIR/man8/reject.8 accept.8
l 0444 root sys $MANDIR/man8/reject.8 accept.man
f 0444 root sys $MANDIR/man1/backend.1 man/backend.man
f 0444 root sys $MANDIR/man1/classes.conf.5 man/classes.conf.man
f 0444 root sys $MANDIR/man8/cups-lpd.8 man/cups-lpd.man
@@ -485,7 +483,7 @@ f 0444 root sys $MANDIR/man8/cups-polld.8 man/cups-polld.man
f 0444 root sys $MANDIR/man8/cupsd.8 man/cupsd.man
f 0444 root sys $MANDIR/man5/cupsd.conf.5 man/cupsd.conf.man
f 0444 root sys $MANDIR/man8/enable.8 man/enable.man
l 0444 root sys $MANDIR/man8/disable.8 enable.8
l 0444 root sys $MANDIR/man8/disable.8 enable.man
f 0444 root sys $MANDIR/man1/filter.1 man/filter.man
f 0444 root sys $MANDIR/man8/lpadmin.8 man/lpadmin.man
f 0444 root sys $MANDIR/man8/lpc.8 man/lpc.man
@@ -497,7 +495,7 @@ f 0444 root sys $MANDIR/man1/lprm.1 man/lprm.man
f 0444 root sys $MANDIR/man1/lpr.1 man/lpr.man
f 0444 root sys $MANDIR/man1/lpstat.1 man/lpstat.man
f 0444 root sys $MANDIR/man1/lp.1 man/lp.man
l 0444 root sys $MANDIR/man1/cancel.1 lp.1
l 0444 root sys $MANDIR/man1/cancel.1 lp.man
f 0444 root sys $MANDIR/man5/mime.convs.5 man/mime.convs.man
f 0444 root sys $MANDIR/man5/mime.types.5 man/mime.types.man
f 0444 root sys $MANDIR/man5/printers.conf.5 man/printers.conf.man
@@ -507,5 +505,5 @@ f 0444 root sys $MANDIR/man5/printers.conf.5 man/printers.conf.man
i 0555 root sys cups cups.sh
#
# End of "$Id: cups.list 1368 2000-09-14 18:04:10Z mike $".
# End of "$Id: cups.list 1277 2000-08-04 14:53:49Z mike $".
#
+1 -1
Ver Arquivo
@@ -6,7 +6,7 @@
#
# Linux chkconfig stuff:
#
# chkconfig: 0235 99 00
# chkconfig: 02 99 00
# description: Startup/shutdown script for the Common UNIX \
# Printing System (CUPS).
#
+21 -42
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: cups.spec 1339 2000-09-06 12:38:12Z mike $"
# "$Id: cups.spec 1277 2000-08-04 14:53:49Z mike $"
#
# RPM "spec" file for the Common UNIX Printing System (CUPS).
#
@@ -26,16 +26,16 @@
Summary: Common Unix Printing System
Name: cups
Version: 1.1.3
Version: 1.1.2
Release: 0
Copyright: GPL
Group: System Environment/Daemons
Source: ftp://ftp.easysw.com/pub/cups/%{version}/cups-%{version}-source.tar.gz
Source: ftp://ftp.easysw.com/pub/cups/%version/cups-%version-source.tar.gz
Url: http://www.cups.org
Packager: Michael Sweet <mike@easysw.com>
Vendor: Easy Software Products
# use buildroot so as not to disturb the version already installed
BuildRoot: /var/tmp/%{name}-root
BuildRoot: /tmp/rpmbuild
Conflicts: lpr
%package devel
@@ -67,9 +67,6 @@ make
# RPM_BUILD_ROOT exists
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
mkdir -p $RPM_BUILD_ROOT/etc/rc.d/rc0.d
mkdir -p $RPM_BUILD_ROOT/etc/rc.d/rc3.d
mkdir -p $RPM_BUILD_ROOT/etc/rc.d/rc5.d
make prefix=$RPM_BUILD_ROOT \
exec_prefix=$RPM_BUILD_ROOT/usr \
@@ -123,52 +120,34 @@ rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
%dir /etc/cups
%config /etc/cups/*.conf
%dir /etc/cups/certs
%dir /etc/cups/interfaces
/etc/cups/certs
%config /etc/cups/classes.conf
%config /etc/cups/client.conf
%config /etc/cups/cupsd.conf
/etc/cups/interfaces
/etc/cups/mime.types
/etc/cups/mime.convs
%dir /etc/cups/ppd
%dir /etc/pam.d
/etc/cups/ppd
%config /etc/cups/printers.conf
/etc/pam.d/*
# RC dirs are a pain under Linux... Uncomment the appropriate ones if you
# don't use Red Hat or Mandrake...
/etc/rc.d/init.d/*
/etc/rc.d/rc0.d/*
/etc/rc.d/rc3.d/*
/etc/rc.d/rc5.d/*
#/etc/init.d/*
#/etc/rc0.d/*
#/etc/rc3.d/*
#/etc/rc5.d/*
#/sbin/rc.d/*
#/sbin/rc.d/rc0.d/*
#/sbin/rc.d/rc3.d/*
#/sbin/rc.d/rc5.d/*
/etc/init.d/*
/etc/rc0.d/*
/etc/rc2.d/*
/etc/rc.d/*
/usr/bin/*
/usr/lib/*.so*
%dir /usr/lib/cups
/usr/lib/cups/*
/usr/man/*
/usr/sbin/*
%dir /usr/share/cups
/usr/share/cups/*
%dir /usr/share/locale
/usr/share/locale/*
%attr(0700,lp,root) %dir /var/spool/cups
%attr(1700,lp,root) %dir/var/spool/cups/tmp
/usr/share/*
/usr/lib/cups/*
%attr(0700,lp,root) /var/spool/cups
%attr(1700,lp,root) /var/spool/cups/tmp
/sbin/init.d/*
%files devel
%dir /usr/include/cups
/usr/include/cups/*
/usr/lib/*.a
#
# End of "$Id: cups.spec 1339 2000-09-06 12:38:12Z mike $".
# End of "$Id: cups.spec 1277 2000-08-04 14:53:49Z mike $".
#
+3 -3
Ver Arquivo
@@ -59,7 +59,7 @@ all: $(TARGETS)
#
clean:
$(RM) $(OBJS) $(TARGETS) `basename $(LIBCUPS) .2`
$(RM) $(OBJS) $(TARGETS)
#
@@ -76,8 +76,8 @@ install: all
$(INSTALL_LIB) $(LIBCUPS) $(LIBDIR)
if test $(LIBCUPS) != "libcups.a" -a $(LIBCUPS) != "libcups.la"; then \
$(INSTALL_LIB) libcups.a $(LIBDIR); \
$(RM) `basename $(LIBDIR)/$(LIBCUPS) .2`; \
$(LN) $(LIBCUPS) `basename $(LIBDIR)/$(LIBCUPS) .2`; \
$(RM) `basename $(LIBCUPS) .2`; \
$(LN) $(LIBCUPS) `basename $(LIBCUPS) .2`; \
fi
+3 -9
Ver Arquivo
@@ -29,8 +29,8 @@
* Include necessary headers...
*/
# include "ipp.h"
# include "ppd.h"
# include <cups/ipp.h>
# include <cups/ppd.h>
/*
@@ -46,7 +46,7 @@ extern "C" {
* Constants...
*/
# define CUPS_VERSION 1.0103
# define CUPS_VERSION 1.0100
# define CUPS_DATE_ANY -1
@@ -75,7 +75,6 @@ enum /* Not a typedef'd enum so we can OR */
CUPS_PRINTER_LARGE = 0x4000, /* Can do D/E/A1/A0 */
CUPS_PRINTER_VARIABLE = 0x8000, /* Can do variable sizes */
CUPS_PRINTER_IMPLICIT = 0x10000, /* Implicit class */
CUPS_PRINTER_DEFAULT = 0x20000, /* Default printer on network */
CUPS_PRINTER_OPTIONS = 0xfffc /* ~(CLASS | REMOTE | IMPLICIT) */
};
@@ -126,8 +125,6 @@ extern void cupsSetDests(int num_dests, cups_dest_t *dests);
extern int cupsAddOption(const char *name, const char *value,
int num_options, cups_option_t **options);
extern void cupsEncodeOptions(ipp_t *ipp, int num_options,
cups_option_t *options);
extern void cupsFreeOptions(int num_options, cups_option_t *options);
extern const char *cupsGetOption(const char *name, int num_options,
cups_option_t *options);
@@ -138,9 +135,6 @@ extern int cupsMarkOptions(ppd_file_t *ppd, int num_options,
extern const char *cupsGetPassword(const char *prompt);
extern const char *cupsServer(void);
extern void cupsSetPasswordCB(const char *(*cb)(const char *));
extern void cupsSetServer(const char *server);
extern void cupsSetUser(const char *user);
extern const char *cupsUser(void);
# ifdef __cplusplus
-34
Ver Arquivo
@@ -156,17 +156,6 @@ ppdEmit(ppd_file_t *ppd, /* I - PPD file record */
for (i = 0; i < count; i ++)
if (section != PPD_ORDER_EXIT && section != PPD_ORDER_JCL)
{
/*
* Send wrapper commands to prevent printer errors for unsupported
* options...
*/
if (fputs("[{\n", fp) < 0)
{
free(choices);
return (-1);
}
/*
* Send DSC comments with option...
*/
@@ -221,12 +210,6 @@ ppdEmit(ppd_file_t *ppd, /* I - PPD file record */
free(choices);
return (-1);
}
if (fputs("} stopped cleartomark\n", fp) < 0)
{
free(choices);
return (-1);
}
}
else if (fputs(choices[i]->code, fp) < 0)
{
@@ -260,17 +243,6 @@ ppdEmitFd(ppd_file_t *ppd, /* I - PPD file record */
for (i = 0; i < count; i ++)
if (section != PPD_ORDER_EXIT && section != PPD_ORDER_JCL)
{
/*
* Send wrapper commands to prevent printer errors for unsupported
* options...
*/
if (write(fd, "[{\n", 3) < 1)
{
free(choices);
return (-1);
}
/*
* Send DSC comments with option...
*/
@@ -295,12 +267,6 @@ ppdEmitFd(ppd_file_t *ppd, /* I - PPD file record */
free(choices);
return (-1);
}
if (write(fd, "} stopped cleartomark\n", 22) < 1)
{
free(choices);
return (-1);
}
}
else if (write(fd, choices[i]->code, strlen(choices[i]->code)) < 1)
{
+1 -1
Ver Arquivo
@@ -47,7 +47,7 @@
# include <netinet/tcp.h>
# endif /* WIN32 || __EMX__ */
# include "md5.h"
# include <cups/md5.h>
/*
+4 -25
Ver Arquivo
@@ -44,7 +44,6 @@
* ippNew() - Allocate a new IPP request.
* ippPort() - Return the default IPP port number.
* ippRead() - Read data for an IPP request.
* ippSetPort() - Set the default port number.
* ippTimeToDate() - Convert from UNIX time to RFC 1903 format.
* ippWrite() - Write data for an IPP request.
* _ipp_add_attr() - Add a new attribute to the request.
@@ -66,13 +65,6 @@
#include <ctype.h>
/*
* Local globals...
*/
static int ipp_port = 0;
/*
* Local functions...
*/
@@ -1585,25 +1577,12 @@ ippPort(void)
struct servent *port; /* Port number info */
if (ipp_port)
return (ipp_port);
else if ((server_port = getenv("IPP_PORT")) != NULL)
return (ipp_port = atoi(server_port));
if ((server_port = getenv("IPP_PORT")) != NULL)
return (atoi(server_port));
else if ((port = getservbyname("ipp", NULL)) == NULL)
return (ipp_port = IPP_PORT);
return (IPP_PORT);
else
return (ipp_port = ntohs(port->s_port));
}
/*
* 'ippSetPort()' - Set the default port number.
*/
void
ippSetPort(int p) /* I - Port number to use */
{
ipp_port = p;
return (ntohs(port->s_port));
}
+1 -2
Ver Arquivo
@@ -30,7 +30,7 @@
* Include necessary headers...
*/
# include "http.h"
# include <cups/http.h>
/*
@@ -342,7 +342,6 @@ extern ipp_state_t ippRead(http_t *http, ipp_t *ipp);
extern const ipp_uchar_t *ippTimeToDate(time_t t);
extern ipp_state_t ippWrite(http_t *http, ipp_t *ipp);
extern int ippPort(void);
extern void ippSetPort(int p);
extern ipp_attribute_t *_ipp_add_attr(ipp_t *, int);
extern void _ipp_free_attr(ipp_attribute_t *);
+5 -275
Ver Arquivo
@@ -23,12 +23,11 @@
*
* Contents:
*
* cupsAddOption() - Add an option to an option array.
* cupsEncodeOptions() - Encode printer options into IPP attributes.
* cupsFreeOptions() - Free all memory used by options.
* cupsGetOption() - Get an option value.
* cupsParseOptions() - Parse options from a command-line argument.
* cupsMarkOptions() - Mark command-line options in a PPD file.
* cupsAddOption() - Add an option to an option array.
* cupsFreeOptions() - Free all memory used by options.
* cupsGetOption() - Get an option value.
* cupsParseOptions() - Parse options from a command-line argument.
* cupsMarkOptions() - Mark command-line options in a PPD file.
*/
/*
@@ -39,7 +38,6 @@
#include <stdlib.h>
#include <ctype.h>
#include "string.h"
#include "debug.h"
/*
@@ -102,274 +100,6 @@ cupsAddOption(const char *name, /* I - Name of option */
}
/*
* 'cupsEncodeOptions()' - Encode printer options into IPP attributes.
*/
void
cupsEncodeOptions(ipp_t *ipp, /* I - Request to add to */
int num_options, /* I - Number of options */
cups_option_t *options) /* I - Options */
{
int i, j; /* Looping vars */
int count; /* Number of values */
int n; /* Attribute value */
char *s, /* Pointer into option value */
*val, /* Pointer to option value */
*copy, /* Copy of option value */
*sep; /* Option separator */
ipp_attribute_t *attr; /* IPP job-id attribute */
DEBUG_printf(("cupsEncodeOptions(%p, %d, %p)\n", ipp, num_options, options));
if (ipp == NULL || num_options < 1 || options == NULL)
return;
/*
* Handle the document format stuff first...
*/
if ((val = (char *)cupsGetOption("document-format", num_options, options)) != NULL)
ippAddString(ipp, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE, "document-format",
NULL, val);
else if (cupsGetOption("raw", num_options, options))
ippAddString(ipp, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE, "document-format",
NULL, "application/vnd.cups-raw");
else
ippAddString(ipp, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE, "document-format",
NULL, "application/octet-stream");
/*
* Then add all other options...
*/
for (i = 0; i < num_options; i ++)
{
/*
* Skip document format options - handled above...
*/
if (strcasecmp(options[i].name, "raw") == 0 ||
strcasecmp(options[i].name, "document-format") == 0)
continue;
/*
* Count the number of values...
*/
for (count = 1, sep = options[i].value;
(sep = strchr(sep + 1, ',')) != NULL;
count ++);
DEBUG_printf(("cupsEncodeOptions: option = \'%s\', count = %d\n",
options[i].name, count));
if ((attr = _ipp_add_attr(ipp, count)) == NULL)
{
/*
* Ran out of memory!
*/
DEBUG_puts("cupsEncodeOptions: Ran out of memory for attributes!");
return;
}
attr->group_tag = IPP_TAG_JOB;
if ((attr->name = strdup(options[i].name)) == NULL)
{
/*
* Ran out of memory!
*/
DEBUG_puts("cupsEncodeOptions: Ran out of memory for name!");
return;
}
if (count > 1)
{
/*
* Make a copy of the value we can fiddle with...
*/
if ((copy = strdup(options[i].value)) == NULL)
{
/*
* Ran out of memory!
*/
DEBUG_puts("cupsEncodeOptions: Ran out of memory for value copy!");
return;
}
val = copy;
}
else
{
/*
* Since we have a single value, use the value directly...
*/
val = options[i].value;
copy = NULL;
}
/*
* See what the option value is; for compatibility with older interface
* scripts, we have to support single-argument options as well as
* option=value, option=low-high, option=MxN, and option=val1,val2,...,valN.
*/
if (*val == '\0')
{
/*
* Old-style System V boolean value...
*/
attr->value_tag = IPP_TAG_BOOLEAN;
if (strncasecmp(attr->name, "no", 2) == 0)
{
DEBUG_puts("cupsEncodeOptions: Added boolean false value...");
strcpy(attr->name, attr->name + 2);
attr->values[0].boolean = 0;
}
else
{
DEBUG_puts("cupsEncodeOptions: Added boolean true value...");
attr->values[0].boolean = 1;
}
}
else
{
/*
* Scan the value string for values...
*/
for (j = 0; *val != '\0'; val = sep, j ++)
{
/*
* Find the end of this value and mark it if needed...
*/
if ((sep = strchr(val, ',')) != NULL)
*sep++ = '\0';
else
sep = val + strlen(val);
/*
* See what kind of value it is...
*/
if (strcasecmp(val, "true") == 0 ||
strcasecmp(val, "on") == 0 ||
strcasecmp(val, "yes") == 0)
{
/*
* Boolean value - true...
*/
attr->value_tag = IPP_TAG_BOOLEAN;
attr->values[j].boolean = 1;
DEBUG_puts("cupsEncodeOptions: Added boolean true value...");
}
else if (strcasecmp(val, "false") == 0 ||
strcasecmp(val, "off") == 0 ||
strcasecmp(val, "no") == 0)
{
/*
* Boolean value - false...
*/
attr->value_tag = IPP_TAG_BOOLEAN;
attr->values[j].boolean = 0;
DEBUG_puts("cupsEncodeOptions: Added boolean false value...");
}
else
{
/*
* Number, range, resolution, or string...
*/
n = strtol(val, &s, 0);
if (*s != '\0' && *s != '-' && (*s != 'x' || s == val))
{
/*
* String value(s)...
*/
if ((attr->values[j].string.text = strdup(val)) == NULL)
{
/*
* Ran out of memory!
*/
DEBUG_puts("cupsEncodeOptions: Ran out of memory for string!");
return;
}
attr->value_tag = IPP_TAG_NAME;
DEBUG_printf(("cupsEncodeOptions: Added string value \'%s\'...\n", val));
}
else if (*s == '-')
{
attr->value_tag = IPP_TAG_RANGE;
attr->values[j].range.lower = n;
attr->values[j].range.upper = strtol(s + 1, NULL, 0);
DEBUG_printf(("cupsEncodeOptions: Added range option value %d-%d...\n",
n, attr->values[j].range.upper));
}
else if (*s == 'x')
{
attr->value_tag = IPP_TAG_RESOLUTION;
attr->values[j].resolution.xres = n;
attr->values[j].resolution.yres = strtol(s + 1, &s, 0);
if (strcasecmp(s, "dpc") == 0)
attr->values[j].resolution.units = IPP_RES_PER_CM;
else if (strcasecmp(s, "dpi") == 0)
attr->values[j].resolution.units = IPP_RES_PER_INCH;
else
{
if ((attr->values[j].string.text = strdup(val)) == NULL)
{
/*
* Ran out of memory!
*/
DEBUG_puts("cupsEncodeOptions: Ran out of memory for string!");
return;
}
attr->value_tag = IPP_TAG_NAME;
DEBUG_printf(("cupsEncodeOptions: Added string value \'%s\'...\n", val));
continue;
}
DEBUG_printf(("cupsEncodeOptions: Adding resolution option value %s...\n",
val));
}
else
{
attr->value_tag = IPP_TAG_INTEGER;
attr->values[j].integer = n;
DEBUG_printf(("cupsEncodeOptions: Adding integer option value %d...\n", n));
}
}
}
}
}
}
/*
* 'cupsFreeOptions()' - Free all memory used by options.
*/
+39
Ver Arquivo
@@ -1028,6 +1028,45 @@ ppdOpen(FILE *fp) /* I - File to read from */
}
else if (strcmp(keyword, "CloseGroup") == 0)
group = NULL;
else if (strcmp(keyword, "OpenSubGroup") == 0)
{
/*
* Open a new sub-group...
*/
DEBUG_printf(("group = %p, subgroup = %p\n", group, subgroup));
if (group == NULL || subgroup != NULL)
{
ppdClose(ppd);
safe_free(string);
return (NULL);
}
if (group->num_subgroups == 0)
subgroup = malloc(sizeof(ppd_group_t));
else
subgroup = realloc(group->subgroups,
(group->num_subgroups + 1) * sizeof(ppd_group_t));
if (subgroup == NULL)
{
ppdClose(ppd);
safe_free(string);
return (NULL);
}
group->subgroups = subgroup;
subgroup += group->num_subgroups;
group->num_subgroups ++;
memset(subgroup, 0, sizeof(ppd_group_t));
ppd_decode(string);
ppd_fix(string);
strncpy(subgroup->text, string, sizeof(subgroup->text) - 1);
}
else if (strcmp(keyword, "CloseSubGroup") == 0)
subgroup = NULL;
else if (strcmp(keyword, "OrderDependency") == 0 ||
strcmp(keyword, "NonUIOrderDependency") == 0)
{
+105 -202
Ver Arquivo
@@ -24,13 +24,9 @@
*
* Contents:
*
* cupsGetPassword() - Get a password from the user...
* cupsServer() - Return the hostname of the default server...
* cupsSetPasswordCB() - Set the password callback for CUPS.
* cupsSetServer() - Set the default server name...
* cupsSetUser() - Set the default user name...
* cupsUser() - Return the current users name.
* cups_get_password() - Get a password from the user...
* cupsUser() - Return the current users name.
* cupsGetPassword() - Get a password from the user...
* cupsServer() - Return the hostname of the default server...
*/
/*
@@ -38,173 +34,11 @@
*/
#include "cups.h"
#include "string.h"
#include <config.h>
#include <stdlib.h>
#include <ctype.h>
/*
* Local functions...
*/
static const char *cups_get_password(const char *prompt);
/*
* Local globals...
*/
static char cups_user[65] = "",
cups_server[256] = "";
static const char *(*cups_pwdcb)(const char *) = cups_get_password;
/*
* 'cupsGetPassword()' - Get a password from the user...
*/
const char * /* O - Password */
cupsGetPassword(const char *prompt) /* I - Prompt string */
{
return ((*cups_pwdcb)(prompt));
}
/*
* 'cupsServer()' - Return the hostname of the default server...
*/
const char * /* O - Server name */
cupsServer(void)
{
FILE *fp; /* client.conf file */
char *server; /* Pointer to server name */
const char *home; /* Home directory of user */
static char line[1024]; /* Line from file */
/*
* First see if we have already set the server name...
*/
if (!cups_server[0])
{
/*
* Then see if the CUPS_SERVER environment variable is set...
*/
if ((server = getenv("CUPS_SERVER")) == NULL)
{
/*
* Next check to see if we have a $HOME/.cupsrc or client.conf file...
*/
if ((home = getenv("HOME")) != NULL)
{
snprintf(line, sizeof(line), "%s/.cupsrc", home);
fp = fopen(line, "r");
}
else
fp = NULL;
if (fp == NULL)
{
if ((home = getenv("CUPS_SERVERROOT")) != NULL)
{
snprintf(line, sizeof(line), "%s/client.conf", home);
fp = fopen(line, "r");
}
else
fp = fopen(CUPS_SERVERROOT "/client.conf", "r");
}
server = "localhost";
if (fp != NULL)
{
/*
* Read the config file and look for a ServerName line...
*/
while (fgets(line, sizeof(line), fp) != NULL)
if (strncmp(line, "ServerName ", 11) == 0)
{
/*
* Got it! Drop any trailing newline and find the name...
*/
server = line + strlen(line) - 1;
if (*server == '\n')
*server = '\0';
for (server = line + 11; isspace(*server); server ++);
break;
}
fclose(fp);
}
}
/*
* Copy the server name over...
*/
strncpy(cups_server, server, sizeof(cups_server) - 1);
cups_server[sizeof(cups_server) - 1] = '\0';
}
return (cups_server);
}
/*
* 'cupsSetPasswordCB()' - Set the password callback for CUPS.
*/
void
cupsSetPasswordCB(const char *(*cb)(const char *)) /* I - Callback function */
{
if (cb == (const char *(*)(const char *))0)
cups_pwdcb = cups_get_password;
else
cups_pwdcb = cb;
}
/*
* 'cupsSetServer()' - Set the default server name...
*/
void
cupsSetServer(const char *server) /* I - Server name */
{
if (server)
{
strncpy(cups_server, server, sizeof(cups_server) - 1);
cups_server[sizeof(cups_server) - 1] = '\0';
}
else
cups_server[0] = '\0';
}
/*
* 'cupsSetUser()' - Set the default user name...
*/
void
cupsSetUser(const char *user) /* I - User name */
{
if (user)
{
strncpy(cups_user, user, sizeof(cups_user) - 1);
cups_user[sizeof(cups_user) - 1] = '\0';
}
else
cups_user[0] = '\0';
}
#if defined(WIN32) || defined(__EMX__)
/*
* WIN32 and OS/2 username and password stuff...
@@ -217,19 +51,16 @@ cupsSetUser(const char *user) /* I - User name */
const char * /* O - User name */
cupsUser(void)
{
if (!cups_user[0])
strcpy(cups_user, "WindowsUser");
return (cups_user);
return ("WindowsUser");
}
/*
* 'cups_get_password()' - Get a password from the user...
* 'cupsGetPassword()' - Get a password from the user...
*/
static const char * /* O - Password */
cups_get_password(const char *prompt) /* I - Prompt string */
const char * /* O - Password */
cupsGetPassword(const char *prompt) /* I - Prompt string */
{
return (NULL);
}
@@ -250,49 +81,121 @@ cupsUser(void)
struct passwd *pwd; /* User/password entry */
if (!cups_user[0])
{
/*
* Rewind the password file...
*/
/*
* Rewind the password file...
*/
setpwent();
setpwent();
/*
* Lookup the password entry for the current user.
*/
/*
* Lookup the password entry for the current user.
*/
if ((pwd = getpwuid(getuid())) == NULL)
strcpy(cups_user, "unknown"); /* Unknown user! */
else
{
/*
* Rewind the password file again and copy the username...
*/
if ((pwd = getpwuid(getuid())) == NULL)
return ("unknown"); /* Unknown user! */
setpwent();
/*
* Rewind the password file again and return the username...
*/
strncpy(cups_user, pwd->pw_name, sizeof(cups_user) - 1);
cups_user[sizeof(cups_user) - 1] = '\0';
}
}
setpwent();
return (cups_user);
return (pwd->pw_name);
}
/*
* 'cups_get_password()' - Get a password from the user...
* 'cupsGetPassword()' - Get a password from the user...
*/
static const char * /* O - Password */
cups_get_password(const char *prompt) /* I - Prompt string */
const char * /* O - Password */
cupsGetPassword(const char *prompt) /* I - Prompt string */
{
return (getpass(prompt));
}
#endif /* WIN32 || __EMX__ */
/*
* 'cupsServer()' - Return the hostname of the default server...
*/
const char * /* O - Server name */
cupsServer(void)
{
FILE *fp; /* client.conf file */
char *server; /* Pointer to server name */
const char *home; /* Home directory of user */
static char line[1024]; /* Line from file */
/*
* First see if the CUPS_SERVER environment variable is set...
*/
if ((server = getenv("CUPS_SERVER")) != NULL)
return (server);
/*
* Next check to see if we have a $HOME/.cupsrc or client.conf file...
*/
if ((home = getenv("HOME")) != NULL)
{
snprintf(line, sizeof(line), "%s/.cupsrc", home);
fp = fopen(line, "r");
}
else
fp = NULL;
if (fp == NULL)
{
if ((home = getenv("CUPS_SERVERROOT")) != NULL)
{
snprintf(line, sizeof(line), "%s/client.conf", home);
fp = fopen(line, "r");
}
else
fp = fopen(CUPS_SERVERROOT "/client.conf", "r");
}
if (fp == NULL)
return ("localhost");
/*
* Read the config file and look for a ServerName line...
*/
while (fgets(line, sizeof(line), fp) != NULL)
if (strncmp(line, "ServerName ", 11) == 0)
{
/*
* Got it! Drop any trailing newline and find the name...
*/
server = line + strlen(line) - 1;
if (*server == '\n')
*server = '\0';
for (server = line + 11; isspace(*server); server ++);
if (*server)
{
fclose(fp);
return (server);
}
}
/*
* Didn't see a ServerName line, so return "localhost"...
*/
fclose(fp);
return ("localhost");
}
/*
* End of "$Id$".
*/
+148 -14
Ver Arquivo
@@ -177,7 +177,6 @@ cupsDoFileRequest(http_t *http, /* I - HTTP connection to server */
nonce[HTTP_MAX_VALUE], /* nonce="xyz" string */
plain[255], /* Plaintext username:password */
encode[255]; /* Encoded username:password */
char prompt[1024]; /* Prompt string */
if (http == NULL || request == NULL || resource == NULL)
@@ -189,7 +188,7 @@ cupsDoFileRequest(http_t *http, /* I - HTTP connection to server */
return (NULL);
}
DEBUG_printf(("cupsDoFileRequest(%p, %08s, \'%s\', \'%s\')\n",
DEBUG_printf(("cupsDoFileRequest(%08x, %08s, \'%s\', \'%s\')\n",
http, request, resource, filename ? filename : "(null)"));
/*
@@ -309,10 +308,10 @@ cupsDoFileRequest(http_t *http, /* I - HTTP connection to server */
* Nope - get a password from the user...
*/
snprintf(prompt, sizeof(prompt), "Password for %s on %s? ", cupsUser(),
http->hostname);
printf("Authentication required for %s on %s...\n", cupsUser(),
http->hostname);
if ((password = cupsGetPassword(prompt)) != NULL)
if ((password = cupsGetPassword("UNIX Password: ")) != NULL)
{
/*
* Got a password; send it to the server...
@@ -688,7 +687,6 @@ cupsGetPPD(const char *name) /* I - Printer name */
plain[255], /* Plaintext username:password */
encode[255]; /* Encoded username:password */
http_status_t status; /* HTTP status from server */
char prompt[1024]; /* Prompt string */
static char filename[HTTP_MAX_URI]; /* Local filename */
@@ -833,10 +831,10 @@ cupsGetPPD(const char *name) /* I - Printer name */
* Nope, get a password from the user...
*/
snprintf(prompt, sizeof(prompt), "Password for %s on %s? ", cupsUser(),
cups_server->hostname);
printf("Authentication required for %s on %s...\n", cupsUser(),
cups_server->hostname);
if ((password = cupsGetPassword(prompt)) != NULL)
if ((password = cupsGetPassword("UNIX Password: ")) != NULL)
{
/*
* Got a password; send it to the server...
@@ -1030,7 +1028,7 @@ cupsPrintFile(const char *name, /* I - Printer or class name */
int num_options,/* I - Number of options */
cups_option_t *options) /* I - Options */
{
DEBUG_printf(("cupsPrintFile(\'%s\', \'%s\', %d, %p)\n",
DEBUG_printf(("cupsPrintFile(\'%s\', \'%s\', %d, %08x)\n",
printer, filename, num_options, options));
return (cupsPrintFiles(name, 1, &filename, title, num_options, options));
@@ -1050,6 +1048,9 @@ cupsPrintFiles(const char *name, /* I - Printer or class name */
cups_option_t *options) /* I - Options */
{
int i; /* Looping var */
int n, n2; /* Attribute values */
char *option, /* Name of option */
*s; /* Pointer into option value */
const char *val; /* Pointer to option value */
ipp_t *request; /* IPP request */
ipp_t *response; /* IPP response */
@@ -1061,7 +1062,7 @@ cupsPrintFiles(const char *name, /* I - Printer or class name */
int jobid; /* New job ID */
DEBUG_printf(("cupsPrintFiles(\'%s\', %d, %p, %d, %p)\n",
DEBUG_printf(("cupsPrintFiles(\'%s\', %d, %p, %d, %08x)\n",
printer, num_files, files, num_options, options));
if (name == NULL || num_files < 1 || files == NULL)
@@ -1105,6 +1106,20 @@ cupsPrintFiles(const char *name, /* I - Printer or class name */
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
NULL, uri);
/*
* Handle raw print files...
*/
if (cupsGetOption("raw", num_options, options))
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE, "document-format",
NULL, "application/vnd.cups-raw");
else if ((val = cupsGetOption("document-format", num_options, options)) != NULL)
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE, "document-format",
NULL, val);
else
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE, "document-format",
NULL, "application/octet-stream");
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME, "requesting-user-name",
NULL, cupsUser());
@@ -1112,10 +1127,129 @@ cupsPrintFiles(const char *name, /* I - Printer or class name */
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME, "job-name", NULL, title);
/*
* Then add all options...
* Then add all options on the command-line...
*/
cupsEncodeOptions(request, num_options, options);
for (i = 0; i < num_options; i ++)
{
/*
* Skip the "raw" option - handled above...
*/
if (strcasecmp(options[i].name, "raw") == 0 ||
strcasecmp(options[i].name, "document-format") == 0)
continue;
/*
* See what the option value is; for compatibility with older interface
* scripts, we have to support single-argument options as well as
* option=value, option=low-high, and option=MxN.
*/
option = options[i].name;
val = options[i].value;
if (*val == '\0')
val = NULL;
if (val != NULL)
{
if (strcasecmp(val, "true") == 0 ||
strcasecmp(val, "on") == 0 ||
strcasecmp(val, "yes") == 0)
{
/*
* Boolean value - true...
*/
n = 1;
val = "";
}
else if (strcasecmp(val, "false") == 0 ||
strcasecmp(val, "off") == 0 ||
strcasecmp(val, "no") == 0)
{
/*
* Boolean value - false...
*/
n = 0;
val = "";
}
n = strtol(val, &s, 0);
}
else
{
if (strncasecmp(option, "no", 2) == 0)
{
option += 2;
n = 0;
}
else
n = 1;
s = "";
}
if (*s != '\0' && *s != '-' && (*s != 'x' || s == val))
{
/*
* String value(s)...
*/
DEBUG_printf(("cupsPrintFile: Adding string option \'%s\' with value \'%s\'...\n",
option, val));
ippAddString(request, IPP_TAG_JOB, IPP_TAG_KEYWORD, option, NULL, val);
}
else if (val != NULL)
{
/*
* Numeric value, range, or resolution...
*/
if (*s == '-')
{
n2 = strtol(s + 1, NULL, 0);
ippAddRange(request, IPP_TAG_JOB, option, n, n2);
DEBUG_printf(("cupsPrintFile: Adding range option \'%s\' with value %d-%d...\n",
option, n, n2));
}
else if (*s == 'x')
{
n2 = strtol(s + 1, &s, 0);
if (strcasecmp(s, "dpc") == 0)
ippAddResolution(request, IPP_TAG_JOB, option, IPP_RES_PER_CM, n, n2);
else if (strcasecmp(s, "dpi") == 0)
ippAddResolution(request, IPP_TAG_JOB, option, IPP_RES_PER_INCH, n, n2);
else
ippAddString(request, IPP_TAG_JOB, IPP_TAG_KEYWORD, option, NULL, val);
DEBUG_printf(("cupsPrintFile: Adding resolution option \'%s\' with value %s...\n",
option, val));
}
else
{
ippAddInteger(request, IPP_TAG_JOB, IPP_TAG_INTEGER, option, n);
DEBUG_printf(("cupsPrintFile: Adding integer option \'%s\' with value %d...\n",
option, n));
}
}
else
{
/*
* Boolean value...
*/
DEBUG_printf(("cupsPrintFile: Adding boolean option \'%s\' with value %d...\n",
option, n));
ippAddBoolean(request, IPP_TAG_JOB, option, (char)n);
}
}
/*
* Do the request...
@@ -1277,7 +1411,7 @@ cupsTempFile(char *filename, /* I - Pointer to buffer */
* Format a string using the hex time values...
*/
snprintf(filename, len, "%s/%p%05x", tmpdir,
snprintf(filename, len, "%s/%08x%05x", tmpdir,
curtime.tv_sec, curtime.tv_usec);
/*
+1 -5
Ver Arquivo
@@ -94,11 +94,7 @@ install:
-if test "$(PAMDIR)" != ""; then \
$(MKDIR) $(PAMDIR); \
$(CHMOD) ugo+rx $(PAMDIR); \
if test -f /lib/security/pam_unix.so; then \
$(INSTALL_DATA) cups.suse $(PAMDIR)/cups; \
else \
$(INSTALL_DATA) cups.pam $(PAMDIR)/cups; \
fi \
$(INSTALL_DATA) cups.pam $(PAMDIR)/cups; \
fi
+25 -33
Ver Arquivo
@@ -22,28 +22,28 @@
% to third parties or copied or duplicated in any form, in whole or
% in part, without the prior written consent of Easy Software Products.
%
/CENTER { % Draw centered text
/CENTER \{ % Draw centered text
% (name) CENTER -
dup stringwidth pop % Get the width of the string
0.5 mul neg 0 rmoveto % Shift left 1/2 of the distance
show % Show the string
} bind def
/RIGHT { % Draw right-justified text
/RIGHT \{ % Draw right-justified text
% (name) RIGHT -
dup stringwidth pop % Get the width of the string
neg 0 rmoveto % Shift left the entire distance
show % Show the string
} bind def
/NUMBER { % Draw a number
/NUMBER \{ % Draw a number
% power n NUMBER -
1 index 1 eq { % power == 1?
1 index 1 eq \{ % power == 1?
round cvi exch pop % Convert "n" to integer
} {
} \{
1 index mul round exch div % Truncate extra decimal places
} ifelse
100 string cvs show % Convert to a string and show it...
} bind def
/CUPSLOGO { % Draw the CUPS logo
/CUPSLOGO \{ % Draw the CUPS logo
% height CUPSLOGO
% Start with a big C...
/Helvetica findfont 1 index scalefont setfont
@@ -61,14 +61,14 @@
dup 1.2 mul moveto
(System) show
} bind def
/ESPLOGO { % Draw the ESP logo
/ESPLOGO \{ % Draw the ESP logo
% height ESPLOGO
% Compute the size of the logo...
0 0
2 index 1.5 mul 3 index
% Do the "metallic" fill from 10% black to 40% black...
1 -0.001 0 {
1 -0.001 0 \{
dup % loopval
-0.15 mul % loopval * -0.15
0.9 add % 0.9 - loopval * 0.15
@@ -151,20 +151,14 @@ gsave
/pageWidth pageRight pageLeft sub def % pageWidth = pageRight - pageLeft
/pageHeight pageTop pageBottom sub def% pageHeight = pageTop - pageBottom
/boxWidth % width of text box
pageWidth pageHeight lt
{ pageWidth 54 mul }
{ pageHeight 42 mul }
ifelse def
newpath % Clear bounding path
% Create fonts...
/bigFont /Helvetica-Bold findfont % bigFont = Helvetica-Bold
pageHeight 3 mul scalefont def % size = pageHeight * 3 (nominally 33)
pageWidth 4 mul scalefont def % size = pageWidth * 4 (nominally 34)
/mediumFont /Helvetica findfont % mediumFont = Helvetica
pageHeight 1.5 mul scalefont def % size = pageHeight * 1.5 (nominally 16.5)
pageWidth 2 mul scalefont def % size = pageWidth * 2 (nominally 17)
% Offset page to account for lower-left margin...
pageLeft 72 mul
@@ -176,30 +170,28 @@ gsave
pageWidth 36 mul % Center of page
pageHeight 72 mul % Top of page
pageWidth -7 mul add % - 2 lines
pageWidth -9 mul add % - 1 line
moveto % Position text
bigFont setfont % Font
(Classified) CENTER % Show text centered
pageWidth 36 mul % Center of page
pageHeight 6 mul % Bottom of page
pageWidth 8 mul % Bottom of page
moveto % Position text
bigFont setfont % Font
(Classified) CENTER % Show text centered
% Job information box...
pageWidth 36 mul 9 add % x = pageWidth * 1/2 * 72 + 9
boxWidth 0.5 mul sub % x-= 1/2 box width
pageHeight 30 mul 9 sub % y = pageHeight * 1/2 * 72 - 9
boxWidth % w = box width
pageHeight 14 mul % h = pageHeight * 1/2 * 72
pageWidth 18 mul 9 add % x = pageWidth * 1/4 * 72 + 9
pageHeight 27 mul 9 sub % y = pageHeight * 3/8 * 72 - 9
pageWidth 36 mul % w = pageWidth * 1/2 * 72
pageHeight 18 mul % h = pageHeight * 1/4 * 72
0.5 setgray rectfill % Draw a shadow
pageWidth 36 mul % x = pageWidth * 1/2 * 72
boxWidth 0.5 mul sub % x-= 1/2 box width
pageHeight 30 mul % y = pageHeight * 1/4 * 72
boxWidth % w = box width
pageHeight 14 mul % h = pageHeight * 1/2 * 72
pageWidth 18 mul % x = pageWidth * 1/4 * 72
pageHeight 27 mul % y = pageHeight * 3/8 * 72
pageWidth 36 mul % w = pageWidth * 1/2 * 72
pageHeight 18 mul % h = pageHeight * 1/4 * 72
4 copy 1 setgray rectfill % Clear the box to white
0 setgray rectstroke % Draw a black box around it...
@@ -209,7 +201,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight 5 mul add % y += 2 lines
pageWidth 4 mul add % y += 2 lines
2 copy % Copy X & Y
moveto
(Job ID: ) RIGHT
@@ -218,7 +210,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight 2 mul add % y += 1 line
pageWidth 1 mul add % y += 1 line
2 copy % Copy X & Y
moveto
(Title: ) RIGHT
@@ -227,7 +219,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight -1 mul add % y -= 1 line
pageWidth -2 mul add % y -= 1 line
2 copy % Copy X & Y
moveto
(Requesting User: ) RIGHT
@@ -236,7 +228,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight -4 mul add % y -= 2 lines
pageWidth -5 mul add % y -= 2 lines
2 copy % Copy X & Y
moveto
(Billing Info: ) RIGHT
@@ -262,6 +254,6 @@ gsave
grestore
showpage
%
% End of "$Id: classified 1379 2000-09-18 17:12:42Z mike $".
% End of "$Id: classified 1075 2000-05-11 20:02:21Z mike $".
%
%%EOF
+25 -33
Ver Arquivo
@@ -22,28 +22,28 @@
% to third parties or copied or duplicated in any form, in whole or
% in part, without the prior written consent of Easy Software Products.
%
/CENTER { % Draw centered text
/CENTER \{ % Draw centered text
% (name) CENTER -
dup stringwidth pop % Get the width of the string
0.5 mul neg 0 rmoveto % Shift left 1/2 of the distance
show % Show the string
} bind def
/RIGHT { % Draw right-justified text
/RIGHT \{ % Draw right-justified text
% (name) RIGHT -
dup stringwidth pop % Get the width of the string
neg 0 rmoveto % Shift left the entire distance
show % Show the string
} bind def
/NUMBER { % Draw a number
/NUMBER \{ % Draw a number
% power n NUMBER -
1 index 1 eq { % power == 1?
1 index 1 eq \{ % power == 1?
round cvi exch pop % Convert "n" to integer
} {
} \{
1 index mul round exch div % Truncate extra decimal places
} ifelse
100 string cvs show % Convert to a string and show it...
} bind def
/CUPSLOGO { % Draw the CUPS logo
/CUPSLOGO \{ % Draw the CUPS logo
% height CUPSLOGO
% Start with a big C...
/Helvetica findfont 1 index scalefont setfont
@@ -61,14 +61,14 @@
dup 1.2 mul moveto
(System) show
} bind def
/ESPLOGO { % Draw the ESP logo
/ESPLOGO \{ % Draw the ESP logo
% height ESPLOGO
% Compute the size of the logo...
0 0
2 index 1.5 mul 3 index
% Do the "metallic" fill from 10% black to 40% black...
1 -0.001 0 {
1 -0.001 0 \{
dup % loopval
-0.15 mul % loopval * -0.15
0.9 add % 0.9 - loopval * 0.15
@@ -151,20 +151,14 @@ gsave
/pageWidth pageRight pageLeft sub def % pageWidth = pageRight - pageLeft
/pageHeight pageTop pageBottom sub def% pageHeight = pageTop - pageBottom
/boxWidth % width of text box
pageWidth pageHeight lt
{ pageWidth 54 mul }
{ pageHeight 42 mul }
ifelse def
newpath % Clear bounding path
% Create fonts...
/bigFont /Helvetica-Bold findfont % bigFont = Helvetica-Bold
pageHeight 3 mul scalefont def % size = pageHeight * 3 (nominally 33)
pageWidth 4 mul scalefont def % size = pageWidth * 4 (nominally 34)
/mediumFont /Helvetica findfont % mediumFont = Helvetica
pageHeight 1.5 mul scalefont def % size = pageHeight * 1.5 (nominally 16.5)
pageWidth 2 mul scalefont def % size = pageWidth * 2 (nominally 17)
% Offset page to account for lower-left margin...
pageLeft 72 mul
@@ -176,30 +170,28 @@ gsave
pageWidth 36 mul % Center of page
pageHeight 72 mul % Top of page
pageWidth -7 mul add % - 2 lines
pageWidth -9 mul add % - 1 line
moveto % Position text
bigFont setfont % Font
(Confidential) CENTER % Show text centered
pageWidth 36 mul % Center of page
pageHeight 6 mul % Bottom of page
pageWidth 8 mul % Bottom of page
moveto % Position text
bigFont setfont % Font
(Confidential) CENTER % Show text centered
% Job information box...
pageWidth 36 mul 9 add % x = pageWidth * 1/2 * 72 + 9
boxWidth 0.5 mul sub % x-= 1/2 box width
pageHeight 30 mul 9 sub % y = pageHeight * 1/2 * 72 - 9
boxWidth % w = box width
pageHeight 14 mul % h = pageHeight * 1/2 * 72
pageWidth 18 mul 9 add % x = pageWidth * 1/4 * 72 + 9
pageHeight 27 mul 9 sub % y = pageHeight * 3/8 * 72 - 9
pageWidth 36 mul % w = pageWidth * 1/2 * 72
pageHeight 18 mul % h = pageHeight * 1/4 * 72
0.5 setgray rectfill % Draw a shadow
pageWidth 36 mul % x = pageWidth * 1/2 * 72
boxWidth 0.5 mul sub % x-= 1/2 box width
pageHeight 30 mul % y = pageHeight * 1/4 * 72
boxWidth % w = box width
pageHeight 14 mul % h = pageHeight * 1/2 * 72
pageWidth 18 mul % x = pageWidth * 1/4 * 72
pageHeight 27 mul % y = pageHeight * 3/8 * 72
pageWidth 36 mul % w = pageWidth * 1/2 * 72
pageHeight 18 mul % h = pageHeight * 1/4 * 72
4 copy 1 setgray rectfill % Clear the box to white
0 setgray rectstroke % Draw a black box around it...
@@ -209,7 +201,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight 5 mul add % y += 2 lines
pageWidth 4 mul add % y += 2 lines
2 copy % Copy X & Y
moveto
(Job ID: ) RIGHT
@@ -218,7 +210,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight 2 mul add % y += 1 line
pageWidth 1 mul add % y += 1 line
2 copy % Copy X & Y
moveto
(Title: ) RIGHT
@@ -227,7 +219,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight -1 mul add % y -= 1 line
pageWidth -2 mul add % y -= 1 line
2 copy % Copy X & Y
moveto
(Requesting User: ) RIGHT
@@ -236,7 +228,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight -4 mul add % y -= 2 lines
pageWidth -5 mul add % y -= 2 lines
2 copy % Copy X & Y
moveto
(Billing Info: ) RIGHT
@@ -262,6 +254,6 @@ gsave
grestore
showpage
%
% End of "$Id: confidential 1379 2000-09-18 17:12:42Z mike $".
% End of "$Id: confidential 1075 2000-05-11 20:02:21Z mike $".
%
%%EOF
-2
Ver Arquivo
@@ -1,2 +0,0 @@
auth required /lib/security/pam_unix.so nullok shadow
account required /lib/security/pam_unix.so
+25 -33
Ver Arquivo
@@ -22,28 +22,28 @@
% to third parties or copied or duplicated in any form, in whole or
% in part, without the prior written consent of Easy Software Products.
%
/CENTER { % Draw centered text
/CENTER \{ % Draw centered text
% (name) CENTER -
dup stringwidth pop % Get the width of the string
0.5 mul neg 0 rmoveto % Shift left 1/2 of the distance
show % Show the string
} bind def
/RIGHT { % Draw right-justified text
/RIGHT \{ % Draw right-justified text
% (name) RIGHT -
dup stringwidth pop % Get the width of the string
neg 0 rmoveto % Shift left the entire distance
show % Show the string
} bind def
/NUMBER { % Draw a number
/NUMBER \{ % Draw a number
% power n NUMBER -
1 index 1 eq { % power == 1?
1 index 1 eq \{ % power == 1?
round cvi exch pop % Convert "n" to integer
} {
} \{
1 index mul round exch div % Truncate extra decimal places
} ifelse
100 string cvs show % Convert to a string and show it...
} bind def
/CUPSLOGO { % Draw the CUPS logo
/CUPSLOGO \{ % Draw the CUPS logo
% height CUPSLOGO
% Start with a big C...
/Helvetica findfont 1 index scalefont setfont
@@ -61,14 +61,14 @@
dup 1.2 mul moveto
(System) show
} bind def
/ESPLOGO { % Draw the ESP logo
/ESPLOGO \{ % Draw the ESP logo
% height ESPLOGO
% Compute the size of the logo...
0 0
2 index 1.5 mul 3 index
% Do the "metallic" fill from 10% black to 40% black...
1 -0.001 0 {
1 -0.001 0 \{
dup % loopval
-0.15 mul % loopval * -0.15
0.9 add % 0.9 - loopval * 0.15
@@ -151,20 +151,14 @@ gsave
/pageWidth pageRight pageLeft sub def % pageWidth = pageRight - pageLeft
/pageHeight pageTop pageBottom sub def% pageHeight = pageTop - pageBottom
/boxWidth % width of text box
pageWidth pageHeight lt
{ pageWidth 54 mul }
{ pageHeight 42 mul }
ifelse def
newpath % Clear bounding path
% Create fonts...
/bigFont /Helvetica-Bold findfont % bigFont = Helvetica-Bold
pageHeight 3 mul scalefont def % size = pageHeight * 3 (nominally 33)
pageWidth 4 mul scalefont def % size = pageWidth * 4 (nominally 34)
/mediumFont /Helvetica findfont % mediumFont = Helvetica
pageHeight 1.5 mul scalefont def % size = pageHeight * 1.5 (nominally 16.5)
pageWidth 2 mul scalefont def % size = pageWidth * 2 (nominally 17)
% Offset page to account for lower-left margin...
pageLeft 72 mul
@@ -176,30 +170,28 @@ gsave
pageWidth 36 mul % Center of page
pageHeight 72 mul % Top of page
pageWidth -7 mul add % - 2 lines
pageWidth -9 mul add % - 1 line
moveto % Position text
bigFont setfont % Font
(Secret) CENTER % Show text centered
pageWidth 36 mul % Center of page
pageHeight 6 mul % Bottom of page
pageWidth 8 mul % Bottom of page
moveto % Position text
bigFont setfont % Font
(Secret) CENTER % Show text centered
% Job information box...
pageWidth 36 mul 9 add % x = pageWidth * 1/2 * 72 + 9
boxWidth 0.5 mul sub % x-= 1/2 box width
pageHeight 30 mul 9 sub % y = pageHeight * 1/2 * 72 - 9
boxWidth % w = box width
pageHeight 14 mul % h = pageHeight * 1/2 * 72
pageWidth 18 mul 9 add % x = pageWidth * 1/4 * 72 + 9
pageHeight 27 mul 9 sub % y = pageHeight * 3/8 * 72 - 9
pageWidth 36 mul % w = pageWidth * 1/2 * 72
pageHeight 18 mul % h = pageHeight * 1/4 * 72
0.5 setgray rectfill % Draw a shadow
pageWidth 36 mul % x = pageWidth * 1/2 * 72
boxWidth 0.5 mul sub % x-= 1/2 box width
pageHeight 30 mul % y = pageHeight * 1/4 * 72
boxWidth % w = box width
pageHeight 14 mul % h = pageHeight * 1/2 * 72
pageWidth 18 mul % x = pageWidth * 1/4 * 72
pageHeight 27 mul % y = pageHeight * 3/8 * 72
pageWidth 36 mul % w = pageWidth * 1/2 * 72
pageHeight 18 mul % h = pageHeight * 1/4 * 72
4 copy 1 setgray rectfill % Clear the box to white
0 setgray rectstroke % Draw a black box around it...
@@ -209,7 +201,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight 5 mul add % y += 2 lines
pageWidth 4 mul add % y += 2 lines
2 copy % Copy X & Y
moveto
(Job ID: ) RIGHT
@@ -218,7 +210,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight 2 mul add % y += 1 line
pageWidth 1 mul add % y += 1 line
2 copy % Copy X & Y
moveto
(Title: ) RIGHT
@@ -227,7 +219,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight -1 mul add % y -= 1 line
pageWidth -2 mul add % y -= 1 line
2 copy % Copy X & Y
moveto
(Requesting User: ) RIGHT
@@ -236,7 +228,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight -4 mul add % y -= 2 lines
pageWidth -5 mul add % y -= 2 lines
2 copy % Copy X & Y
moveto
(Billing Info: ) RIGHT
@@ -262,6 +254,6 @@ gsave
grestore
showpage
%
% End of "$Id: secret 1379 2000-09-18 17:12:42Z mike $".
% End of "$Id: secret 1075 2000-05-11 20:02:21Z mike $".
%
%%EOF
+39 -31
Ver Arquivo
@@ -22,28 +22,28 @@
% to third parties or copied or duplicated in any form, in whole or
% in part, without the prior written consent of Easy Software Products.
%
/CENTER { % Draw centered text
/CENTER \{ % Draw centered text
% (name) CENTER -
dup stringwidth pop % Get the width of the string
0.5 mul neg 0 rmoveto % Shift left 1/2 of the distance
show % Show the string
} bind def
/RIGHT { % Draw right-justified text
/RIGHT \{ % Draw right-justified text
% (name) RIGHT -
dup stringwidth pop % Get the width of the string
neg 0 rmoveto % Shift left the entire distance
show % Show the string
} bind def
/NUMBER { % Draw a number
/NUMBER \{ % Draw a number
% power n NUMBER -
1 index 1 eq { % power == 1?
1 index 1 eq \{ % power == 1?
round cvi exch pop % Convert "n" to integer
} {
} \{
1 index mul round exch div % Truncate extra decimal places
} ifelse
100 string cvs show % Convert to a string and show it...
} bind def
/CUPSLOGO { % Draw the CUPS logo
/CUPSLOGO \{ % Draw the CUPS logo
% height CUPSLOGO
% Start with a big C...
/Helvetica findfont 1 index scalefont setfont
@@ -61,14 +61,14 @@
dup 1.2 mul moveto
(System) show
} bind def
/ESPLOGO { % Draw the ESP logo
/ESPLOGO \{ % Draw the ESP logo
% height ESPLOGO
% Compute the size of the logo...
0 0
2 index 1.5 mul 3 index
% Do the "metallic" fill from 10% black to 40% black...
1 -0.001 0 {
1 -0.001 0 \{
dup % loopval
-0.15 mul % loopval * -0.15
0.9 add % 0.9 - loopval * 0.15
@@ -151,39 +151,47 @@ gsave
/pageWidth pageRight pageLeft sub def % pageWidth = pageRight - pageLeft
/pageHeight pageTop pageBottom sub def% pageHeight = pageTop - pageBottom
/boxWidth % width of text box
pageWidth pageHeight lt
{ pageWidth 54 mul }
{ pageHeight 42 mul }
ifelse def
newpath % Clear bounding path
% Create fonts...
/bigFont /Helvetica-Bold findfont % bigFont = Helvetica-Bold
pageHeight 3 mul scalefont def % size = pageHeight * 3 (nominally 33)
pageWidth 4 mul scalefont def % size = pageWidth * 4 (nominally 34)
/mediumFont /Helvetica findfont % mediumFont = Helvetica
pageHeight 1.5 mul scalefont def % size = pageHeight * 1.5 (nominally 16.5)
pageWidth 2 mul scalefont def % size = pageWidth * 2 (nominally 17)
% Offset page to account for lower-left margin...
pageLeft 72 mul
pageBottom 72 mul
translate
% Draw the label at the top and bottom...
0 setgray % Color
pageWidth 36 mul % Center of page
pageHeight 72 mul % Top of page
pageWidth -9 mul add % - 1 line
moveto % Position text
bigFont setfont % Font
(Banner) CENTER % Show text centered
pageWidth 36 mul % Center of page
pageWidth 8 mul % Bottom of page
moveto % Position text
bigFont setfont % Font
(Banner) CENTER % Show text centered
% Job information box...
pageWidth 36 mul 9 add % x = pageWidth * 1/2 * 72 + 9
boxWidth 0.5 mul sub % x-= 1/2 box width
pageHeight 30 mul 9 sub % y = pageHeight * 1/2 * 72 - 9
boxWidth % w = box width
pageHeight 14 mul % h = pageHeight * 1/2 * 72
pageWidth 18 mul 9 add % x = pageWidth * 1/4 * 72 + 9
pageHeight 27 mul 9 sub % y = pageHeight * 3/8 * 72 - 9
pageWidth 36 mul % w = pageWidth * 1/2 * 72
pageHeight 18 mul % h = pageHeight * 1/4 * 72
0.5 setgray rectfill % Draw a shadow
pageWidth 36 mul % x = pageWidth * 1/2 * 72
boxWidth 0.5 mul sub % x-= 1/2 box width
pageHeight 30 mul % y = pageHeight * 1/4 * 72
boxWidth % w = box width
pageHeight 14 mul % h = pageHeight * 1/2 * 72
pageWidth 18 mul % x = pageWidth * 1/4 * 72
pageHeight 27 mul % y = pageHeight * 3/8 * 72
pageWidth 36 mul % w = pageWidth * 1/2 * 72
pageHeight 18 mul % h = pageHeight * 1/4 * 72
4 copy 1 setgray rectfill % Clear the box to white
0 setgray rectstroke % Draw a black box around it...
@@ -193,7 +201,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight 5 mul add % y += 2 lines
pageWidth 4 mul add % y += 2 lines
2 copy % Copy X & Y
moveto
(Job ID: ) RIGHT
@@ -202,7 +210,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight 2 mul add % y += 1 line
pageWidth 1 mul add % y += 1 line
2 copy % Copy X & Y
moveto
(Title: ) RIGHT
@@ -211,7 +219,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight -1 mul add % y -= 1 line
pageWidth -2 mul add % y -= 1 line
2 copy % Copy X & Y
moveto
(Requesting User: ) RIGHT
@@ -220,7 +228,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight -4 mul add % y -= 2 lines
pageWidth -5 mul add % y -= 2 lines
2 copy % Copy X & Y
moveto
(Billing Info: ) RIGHT
@@ -246,6 +254,6 @@ gsave
grestore
showpage
%
% End of "$Id: standard 1379 2000-09-18 17:12:42Z mike $".
% End of "$Id: standard 1075 2000-05-11 20:02:21Z mike $".
%
%%EOF
+27 -34
Ver Arquivo
@@ -213,22 +213,15 @@ gsave
/yResolution exch abs def % yResolution = abs(yres)
/xResolution exch abs def % xResolution = abs(xres)
% Figure out the sizes of things...
/wheelSize % size of wheels
pageWidth pageHeight lt
{ pageWidth 9 mul }
{ pageHeight 7 mul }
ifelse def
% Create fonts...
/bigFont /Helvetica-Bold findfont % bigFont = Helvetica-Bold
pageHeight 3 mul scalefont def % size = pageHeight * 3 (nominally 33)
pageWidth 4 mul scalefont def % size = pageWidth * 4 (nominally 34)
/mediumFont /Helvetica findfont % mediumFont = Helvetica
pageHeight 1.5 mul scalefont def % size = pageHeight * 1.5 (nominally 16.5)
pageWidth 2 mul scalefont def % size = pageWidth * 2 (nominally 17)
/smallFont /Times-Roman findfont % smallFont = Times-Roman
pageHeight scalefont def % size = pageHeight (nominally 11)
pageWidth 1.5 mul scalefont def % size = pageWidth * 1.5 (nominally 13)
% Offset page to account for lower-left margin...
pageLeft 72 mul
@@ -246,7 +239,7 @@ gsave
translate
% Size the wheel...
wheelSize
pageWidth 9 mul % radius = pageWidth * 1/8 * 72
% Draw the colors...
dup (C) exch 0 1 1 OCTANT 45 rotate
@@ -275,7 +268,7 @@ gsave
translate
% Size the wheel...
wheelSize
pageWidth 9 mul % radius = pageWidth * 1/8 * 72
% Loop at 1 degree increments
0 1 359 {
@@ -297,7 +290,7 @@ gsave
(1 Degree Radial Lines) CENTER % Show the text centered
% Imageable area...
pageHeight 15 mul % Height of imageable area
pageWidth 19.5 mul % Height of imageable area
pageWidth 4.5 mul % x = pageWidth * 1/16 * 72
pageHeight 35.5 mul % y = pageHeight * 1/2 * 72
@@ -326,7 +319,7 @@ gsave
smallFont setfont % Font
pageWidth 14 mul % x = pageWidth * 3/16 * 72
pageHeight 36 mul % y = pageWidth * 1/2 * 72
pageHeight -2 mul add % y -= 2 * smallFont height
pageWidth -3 mul add % y -= 2 * smallFont height
% Page Size inches
2 copy moveto % Move to x & y
@@ -337,7 +330,7 @@ gsave
(in) show % "in"
% Page Size millimeters
pageHeight sub % Move down...
pageWidth -1.5 mul add % Move down...
2 copy moveto % Move to x & y
10 pageWidth 25.4 mul NUMBER % pageWidth
@@ -346,7 +339,7 @@ gsave
(mm) show % "mm"
% Lower-left inches
pageHeight 2 mul sub % Move down...
pageWidth -3 mul add % Move down...
2 copy moveto % Move to x & y
(Lower-Left: ) RIGHT % Label
@@ -356,7 +349,7 @@ gsave
(in) show % "in"
% Lower-left millimeters
pageHeight sub % Move down...
pageWidth -1.5 mul add % Move down...
2 copy moveto % Move to x & y
10 pageLeft 25.4 mul NUMBER % pageLeft
@@ -365,7 +358,7 @@ gsave
(mm) show % "mm"
% Upper-right inches
pageHeight 2 mul sub % Move down...
pageWidth -3 mul add % Move down...
2 copy moveto % Move to x & y
(Upper-Right: ) RIGHT % Label
@@ -375,7 +368,7 @@ gsave
(in) show % "in"
% Upper-right millimeters
pageHeight sub % Move down...
pageWidth -1.5 mul add % Move down...
2 copy moveto % Move to x & y
10 pageRight 25.4 mul NUMBER % pageRight
@@ -384,7 +377,7 @@ gsave
(mm) show % "mm"
% Resolution dots-per-inch
pageHeight 2 mul sub % Move down...
pageWidth -3 mul add % Move down...
2 copy moveto % Move to x & y
(Resolution: ) RIGHT % Label
@@ -394,7 +387,7 @@ gsave
(dpi) show % "dpi"
% Resolution dots-per-meter
pageHeight sub % Move down...
pageWidth -1.5 mul add % Move down...
moveto % Move to x & y
1 xResolution 39.27 mul NUMBER % xResolution
@@ -403,7 +396,7 @@ gsave
(dpm) show % "dpm"
% Interpreter Information...
pageHeight 15 mul % Height of interpreter information
pageWidth 19.5 mul % Height of interpreter info
pageWidth 40.5 mul % x = pageWidth * 9/16 * 72
pageHeight 35.5 mul % y = pageHeight * 1/2 * 72
@@ -432,7 +425,7 @@ gsave
smallFont setfont % Font
pageWidth 49 mul % x = pageWidth * 11/16 * 72
pageHeight 36 mul % y = pageWidth * 1/2 * 72
pageHeight 2 mul sub % y -= 2 * smallFont height
pageWidth -3 mul add % y -= 2 * smallFont height
% Language level
2 copy moveto % Move to x & y
@@ -441,7 +434,7 @@ gsave
1 languagelevel NUMBER % Language level
% Version
pageHeight 2 mul sub % Move down...
pageWidth -3 mul add % Move down...
2 copy moveto % Move to x & y
(Version: ) RIGHT % Label
version show % Version
@@ -450,13 +443,13 @@ gsave
(\)) show % ")"
% Product
pageHeight 2 mul sub % Move down...
pageWidth -3 mul add % Move down...
2 copy moveto % Move to x & y
(Product: ) RIGHT % Label
product show % Product name
% Serial Number
pageHeight 2 mul sub % Move down...
pageWidth -3 mul add % Move down...
2 copy moveto % Move to x & y
(Serial #: ) RIGHT % Label
1 serialnumber NUMBER % S/N
@@ -470,28 +463,28 @@ gsave
% Draw the copyright notice at the bottom...
pageWidth 36 mul % Center of page
pageHeight 10 mul % Bottom of page
pageWidth 14 mul % Bottom of page
2 copy moveto % Position text
(Printed Using CUPS v1.1.x) CENTER % Show text centered
pageHeight 2 mul sub % Move down...
pageWidth 3 mul sub % Move down...
2 copy moveto % Position text
smallFont setfont % Font
(Copyright 1993-2000 Easy Software Products, All Rights Reserved.) CENTER
pageHeight sub % Move down...
pageWidth 1.5 mul sub % Move down...
2 copy moveto % Position text
(CUPS, and the CUPS logo are the trademark property of) CENTER
pageHeight sub % Move down...
pageWidth 1.5 mul sub % Move down...
2 copy moveto % Position text
(Easy Software Products, 44141 Airport View Drive, Suite 204,) CENTER
pageHeight sub % Move down...
pageWidth 1.5 mul sub % Move down...
2 copy moveto % Position text
(Hollywood, Maryland, 20636-3111, USA.) CENTER
% Then the CUPS logo....
gsave
pageWidth 4 mul
pageHeight 4 mul
pageWidth 6 mul
translate
pageWidth 9 mul CUPSLOGO
grestore
@@ -499,7 +492,7 @@ gsave
% And the ESP logo....
gsave
pageWidth 59 mul
pageHeight 4 mul
pageWidth 6 mul
translate
pageWidth 6 mul ESPLOGO
grestore
@@ -507,6 +500,6 @@ gsave
grestore
showpage
%
% End of "$Id: testprint.ps 1379 2000-09-18 17:12:42Z mike $".
% End of "$Id: testprint.ps 1260 2000-08-01 17:52:30Z mike $".
%
%%EOF
+25 -33
Ver Arquivo
@@ -22,28 +22,28 @@
% to third parties or copied or duplicated in any form, in whole or
% in part, without the prior written consent of Easy Software Products.
%
/CENTER { % Draw centered text
/CENTER \{ % Draw centered text
% (name) CENTER -
dup stringwidth pop % Get the width of the string
0.5 mul neg 0 rmoveto % Shift left 1/2 of the distance
show % Show the string
} bind def
/RIGHT { % Draw right-justified text
/RIGHT \{ % Draw right-justified text
% (name) RIGHT -
dup stringwidth pop % Get the width of the string
neg 0 rmoveto % Shift left the entire distance
show % Show the string
} bind def
/NUMBER { % Draw a number
/NUMBER \{ % Draw a number
% power n NUMBER -
1 index 1 eq { % power == 1?
1 index 1 eq \{ % power == 1?
round cvi exch pop % Convert "n" to integer
} {
} \{
1 index mul round exch div % Truncate extra decimal places
} ifelse
100 string cvs show % Convert to a string and show it...
} bind def
/CUPSLOGO { % Draw the CUPS logo
/CUPSLOGO \{ % Draw the CUPS logo
% height CUPSLOGO
% Start with a big C...
/Helvetica findfont 1 index scalefont setfont
@@ -61,14 +61,14 @@
dup 1.2 mul moveto
(System) show
} bind def
/ESPLOGO { % Draw the ESP logo
/ESPLOGO \{ % Draw the ESP logo
% height ESPLOGO
% Compute the size of the logo...
0 0
2 index 1.5 mul 3 index
% Do the "metallic" fill from 10% black to 40% black...
1 -0.001 0 {
1 -0.001 0 \{
dup % loopval
-0.15 mul % loopval * -0.15
0.9 add % 0.9 - loopval * 0.15
@@ -151,20 +151,14 @@ gsave
/pageWidth pageRight pageLeft sub def % pageWidth = pageRight - pageLeft
/pageHeight pageTop pageBottom sub def% pageHeight = pageTop - pageBottom
/boxWidth % width of text box
pageWidth pageHeight lt
{ pageWidth 54 mul }
{ pageHeight 42 mul }
ifelse def
newpath % Clear bounding path
% Create fonts...
/bigFont /Helvetica-Bold findfont % bigFont = Helvetica-Bold
pageHeight 3 mul scalefont def % size = pageHeight * 3 (nominally 33)
pageWidth 4 mul scalefont def % size = pageWidth * 4 (nominally 34)
/mediumFont /Helvetica findfont % mediumFont = Helvetica
pageHeight 1.5 mul scalefont def % size = pageHeight * 1.5 (nominally 16.5)
pageWidth 2 mul scalefont def % size = pageWidth * 2 (nominally 17)
% Offset page to account for lower-left margin...
pageLeft 72 mul
@@ -176,30 +170,28 @@ gsave
pageWidth 36 mul % Center of page
pageHeight 72 mul % Top of page
pageWidth -7 mul add % - 2 lines
pageWidth -9 mul add % - 1 line
moveto % Position text
bigFont setfont % Font
(Top Secret) CENTER % Show text centered
pageWidth 36 mul % Center of page
pageHeight 6 mul % Bottom of page
pageWidth 8 mul % Bottom of page
moveto % Position text
bigFont setfont % Font
(Top Secret) CENTER % Show text centered
% Job information box...
pageWidth 36 mul 9 add % x = pageWidth * 1/2 * 72 + 9
boxWidth 0.5 mul sub % x-= 1/2 box width
pageHeight 30 mul 9 sub % y = pageHeight * 1/2 * 72 - 9
boxWidth % w = box width
pageHeight 14 mul % h = pageHeight * 1/2 * 72
pageWidth 18 mul 9 add % x = pageWidth * 1/4 * 72 + 9
pageHeight 27 mul 9 sub % y = pageHeight * 3/8 * 72 - 9
pageWidth 36 mul % w = pageWidth * 1/2 * 72
pageHeight 18 mul % h = pageHeight * 1/4 * 72
0.5 setgray rectfill % Draw a shadow
pageWidth 36 mul % x = pageWidth * 1/2 * 72
boxWidth 0.5 mul sub % x-= 1/2 box width
pageHeight 30 mul % y = pageHeight * 1/4 * 72
boxWidth % w = box width
pageHeight 14 mul % h = pageHeight * 1/2 * 72
pageWidth 18 mul % x = pageWidth * 1/4 * 72
pageHeight 27 mul % y = pageHeight * 3/8 * 72
pageWidth 36 mul % w = pageWidth * 1/2 * 72
pageHeight 18 mul % h = pageHeight * 1/4 * 72
4 copy 1 setgray rectfill % Clear the box to white
0 setgray rectstroke % Draw a black box around it...
@@ -209,7 +201,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight 5 mul add % y += 2 lines
pageWidth 4 mul add % y += 2 lines
2 copy % Copy X & Y
moveto
(Job ID: ) RIGHT
@@ -218,7 +210,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight 2 mul add % y += 1 line
pageWidth 1 mul add % y += 1 line
2 copy % Copy X & Y
moveto
(Title: ) RIGHT
@@ -227,7 +219,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight -1 mul add % y -= 1 line
pageWidth -2 mul add % y -= 1 line
2 copy % Copy X & Y
moveto
(Requesting User: ) RIGHT
@@ -236,7 +228,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight -4 mul add % y -= 2 lines
pageWidth -5 mul add % y -= 2 lines
2 copy % Copy X & Y
moveto
(Billing Info: ) RIGHT
@@ -262,6 +254,6 @@ gsave
grestore
showpage
%
% End of "$Id: topsecret 1379 2000-09-18 17:12:42Z mike $".
% End of "$Id: topsecret 1075 2000-05-11 20:02:21Z mike $".
%
%%EOF
+25 -33
Ver Arquivo
@@ -22,28 +22,28 @@
% to third parties or copied or duplicated in any form, in whole or
% in part, without the prior written consent of Easy Software Products.
%
/CENTER { % Draw centered text
/CENTER \{ % Draw centered text
% (name) CENTER -
dup stringwidth pop % Get the width of the string
0.5 mul neg 0 rmoveto % Shift left 1/2 of the distance
show % Show the string
} bind def
/RIGHT { % Draw right-justified text
/RIGHT \{ % Draw right-justified text
% (name) RIGHT -
dup stringwidth pop % Get the width of the string
neg 0 rmoveto % Shift left the entire distance
show % Show the string
} bind def
/NUMBER { % Draw a number
/NUMBER \{ % Draw a number
% power n NUMBER -
1 index 1 eq { % power == 1?
1 index 1 eq \{ % power == 1?
round cvi exch pop % Convert "n" to integer
} {
} \{
1 index mul round exch div % Truncate extra decimal places
} ifelse
100 string cvs show % Convert to a string and show it...
} bind def
/CUPSLOGO { % Draw the CUPS logo
/CUPSLOGO \{ % Draw the CUPS logo
% height CUPSLOGO
% Start with a big C...
/Helvetica findfont 1 index scalefont setfont
@@ -61,14 +61,14 @@
dup 1.2 mul moveto
(System) show
} bind def
/ESPLOGO { % Draw the ESP logo
/ESPLOGO \{ % Draw the ESP logo
% height ESPLOGO
% Compute the size of the logo...
0 0
2 index 1.5 mul 3 index
% Do the "metallic" fill from 10% black to 40% black...
1 -0.001 0 {
1 -0.001 0 \{
dup % loopval
-0.15 mul % loopval * -0.15
0.9 add % 0.9 - loopval * 0.15
@@ -151,20 +151,14 @@ gsave
/pageWidth pageRight pageLeft sub def % pageWidth = pageRight - pageLeft
/pageHeight pageTop pageBottom sub def% pageHeight = pageTop - pageBottom
/boxWidth % width of text box
pageWidth pageHeight lt
{ pageWidth 54 mul }
{ pageHeight 42 mul }
ifelse def
newpath % Clear bounding path
% Create fonts...
/bigFont /Helvetica-Bold findfont % bigFont = Helvetica-Bold
pageHeight 3 mul scalefont def % size = pageHeight * 3 (nominally 33)
pageWidth 4 mul scalefont def % size = pageWidth * 4 (nominally 34)
/mediumFont /Helvetica findfont % mediumFont = Helvetica
pageHeight 1.5 mul scalefont def % size = pageHeight * 1.5 (nominally 16.5)
pageWidth 2 mul scalefont def % size = pageWidth * 2 (nominally 17)
% Offset page to account for lower-left margin...
pageLeft 72 mul
@@ -176,30 +170,28 @@ gsave
pageWidth 36 mul % Center of page
pageHeight 72 mul % Top of page
pageWidth -7 mul add % - 2 lines
pageWidth -9 mul add % - 1 line
moveto % Position text
bigFont setfont % Font
(Unclassified) CENTER % Show text centered
pageWidth 36 mul % Center of page
pageHeight 6 mul % Bottom of page
pageWidth 8 mul % Bottom of page
moveto % Position text
bigFont setfont % Font
(Unclassified) CENTER % Show text centered
% Job information box...
pageWidth 36 mul 9 add % x = pageWidth * 1/2 * 72 + 9
boxWidth 0.5 mul sub % x-= 1/2 box width
pageHeight 30 mul 9 sub % y = pageHeight * 1/2 * 72 - 9
boxWidth % w = box width
pageHeight 14 mul % h = pageHeight * 1/2 * 72
pageWidth 18 mul 9 add % x = pageWidth * 1/4 * 72 + 9
pageHeight 27 mul 9 sub % y = pageHeight * 3/8 * 72 - 9
pageWidth 36 mul % w = pageWidth * 1/2 * 72
pageHeight 18 mul % h = pageHeight * 1/4 * 72
0.5 setgray rectfill % Draw a shadow
pageWidth 36 mul % x = pageWidth * 1/2 * 72
boxWidth 0.5 mul sub % x-= 1/2 box width
pageHeight 30 mul % y = pageHeight * 1/4 * 72
boxWidth % w = box width
pageHeight 14 mul % h = pageHeight * 1/2 * 72
pageWidth 18 mul % x = pageWidth * 1/4 * 72
pageHeight 27 mul % y = pageHeight * 3/8 * 72
pageWidth 36 mul % w = pageWidth * 1/2 * 72
pageHeight 18 mul % h = pageHeight * 1/4 * 72
4 copy 1 setgray rectfill % Clear the box to white
0 setgray rectstroke % Draw a black box around it...
@@ -209,7 +201,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight 5 mul add % y += 2 lines
pageWidth 4 mul add % y += 2 lines
2 copy % Copy X & Y
moveto
(Job ID: ) RIGHT
@@ -218,7 +210,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight 2 mul add % y += 1 line
pageWidth 1 mul add % y += 1 line
2 copy % Copy X & Y
moveto
(Title: ) RIGHT
@@ -227,7 +219,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight -1 mul add % y -= 1 line
pageWidth -2 mul add % y -= 1 line
2 copy % Copy X & Y
moveto
(Requesting User: ) RIGHT
@@ -236,7 +228,7 @@ gsave
pageWidth 36 mul % x = pageWidth * 1/2 * 72
pageHeight 36 mul % y = pageHeight * 1/2 * 72
pageHeight -4 mul add % y -= 2 lines
pageWidth -5 mul add % y -= 2 lines
2 copy % Copy X & Y
moveto
(Billing Info: ) RIGHT
@@ -262,6 +254,6 @@ gsave
grestore
showpage
%
% End of "$Id: unclassified 1379 2000-09-18 17:12:42Z mike $".
% End of "$Id: unclassified 1075 2000-05-11 20:02:21Z mike $".
%
%%EOF
+1 -13
Ver Arquivo
@@ -79,7 +79,6 @@ WEBIMAGES = images/accept-jobs.gif \
images/printer-stopped.gif \
images/reject-jobs.gif \
images/release-job.gif \
images/restart-job.gif \
images/right.gif \
images/show-active.gif \
images/show-completed.gif \
@@ -209,18 +208,7 @@ sum-7x8.ps: sum.shtml
--size 7x8.5in --left 0.5in --right 0.25in \
--top 0.25in --bottom 0.25in --fontsize 10 --headfootsize 10 -f $@ sum.shtml
$(DOCUMENTS:.shtml=.html): \
glossary.shtml printing-overview.shtml \
references.shtml system-overview.shtml \
../LICENSE.html
$(DOCUMENTS:.shtml=.pdf): \
glossary.shtml printing-overview.shtml \
references.shtml system-overview.shtml \
../LICENSE.html
$(DOCUMENTS:.shtml=.ps): \
glossary.shtml printing-overview.shtml \
$(DOCUMENTS): glossary.shtml printing-overview.shtml \
references.shtml system-overview.shtml \
../LICENSE.html
+1 -1
Ver Arquivo
@@ -153,7 +153,7 @@ sections:
<UL>
<LI>CUPS-CMP-1.1: CUPS Configuration Management Plan </LI>
<LI>CUPS-IDD-1.1: CUPS System Interface Design Description </LI>
<LI>CUPS-IPP-1.1: CUPS Implementation of IPP </LI>
<LI>CUPS-IPP-1.1: CUPS Implmentation of IPP </LI>
<LI>CUPS-SAM-1.1.x: CUPS Software Administrators Manual </LI>
<LI>CUPS-SDD-1.1: CUPS Software Design Description </LI>
<LI>CUPS-SPM-1.1.x: CUPS Software Programming Manual </LI>
+123 -121
Ver Arquivo
@@ -1,6 +1,6 @@
%PDF-1.2
%âãÏÓ
1 0 obj<</Producer(htmldoc 1.8.8 Copyright 1997-2000 Easy Software Products, All Rights Reserved.)/CreationDate(D:20000824182222Z)/Title( CUPS Configuration Management Plan)/Author(Easy Software Products)>>endobj
1 0 obj<</Producer(htmldoc 1.8.8 Copyright 1997-2000 Easy Software Products, All Rights Reserved.)/CreationDate(D:20000731155313Z)/Title( CUPS Configuration Management Plan)/Author(Easy Software Products)>>endobj
2 0 obj<</Type/Encoding/Differences[ 32/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle/parenleft/parenright/asterisk/plus/comma/minus/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/grave/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde 128/Euro 130/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE 145/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe 159/Ydieresis/space/exclamdown/cent/sterling/currency/yen/brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]>>endobj
3 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier/Encoding 2 0 R>>endobj
4 0 obj<</Type/Font/Subtype/Type1/BaseFont/Times-Roman/Encoding 2 0 R>>endobj
@@ -306,12 +306,14 @@ endobj
xÚ+ä2T0BCc3JÎår
ár
á
äHendstream
endobj
156 0 obj
äHendstream
endobj
156 0 obj
31
endobj
157 0 obj<</Type/Page/Parent 150 0 R/Contents 158 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F4 4 0 R/F8 7 0 R/F9 8 0 R/Fc 9 0 R>>>>/Annots 14 0 R>>endobj
158 0 obj<</Length 159 0 R/Filter/FlateDecode>>stream
157 0 obj<</Type/Page/Parent 150 0 R/Contents 158 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F4 4 0 R/F8 7 0 R/F9 8 0 R/Fc 9 0 R>>>>/Annots 14 0 R>>endobj
VMoÛ8½çW zJ€µjÉŸÙ[§Y/šTk9Å|¡%ÊfC‰
IÙpýÎtì¸éb³„â ç½7Ã<_ÄÐÅŸF ô†W“ÅÅÇÏ×taQâÎp4†EqC–«†_-¾»Ýxäw;½~”¸ý(†YÁk+J3+TíCûÇ!4EC
]l„\Õ¥X·Ú…BÅj¶æ¦C#Y
…Ê[¿Òj+
@@ -710,122 +712,122 @@ xref
0000007876 00000 n
0000007981 00000 n
0000008086 00000 n
0000008713 00000 n
0000008816 00000 n
0000009120 00000 n
0000009225 00000 n
0000009330 00000 n
0000009434 00000 n
0000009539 00000 n
0000009644 00000 n
0000009748 00000 n
0000009853 00000 n
0000009958 00000 n
0000010062 00000 n
0000010167 00000 n
0000010272 00000 n
0000010376 00000 n
0000010477 00000 n
0000010509 00000 n
0000010541 00000 n
0000011261 00000 n
0000011309 00000 n
0000011357 00000 n
0000011405 00000 n
0000011453 00000 n
0000011502 00000 n
0000011551 00000 n
0000011600 00000 n
0000011649 00000 n
0000011698 00000 n
0000011747 00000 n
0000011796 00000 n
0000011845 00000 n
0000011894 00000 n
0000011943 00000 n
0000011992 00000 n
0000012041 00000 n
0000012090 00000 n
0000012139 00000 n
0000012188 00000 n
0000012237 00000 n
0000012286 00000 n
0000012335 00000 n
0000012384 00000 n
0000012433 00000 n
0000012482 00000 n
0000012531 00000 n
0000012580 00000 n
0000012629 00000 n
0000012678 00000 n
0000012727 00000 n
0000012776 00000 n
0000012825 00000 n
0000012874 00000 n
0000012923 00000 n
0000012972 00000 n
0000013021 00000 n
0000013070 00000 n
0000013119 00000 n
0000013168 00000 n
0000013217 00000 n
0000013266 00000 n
0000013315 00000 n
0000013364 00000 n
0000013413 00000 n
0000013462 00000 n
0000013511 00000 n
0000013560 00000 n
0000013609 00000 n
0000013658 00000 n
0000013707 00000 n
0000013756 00000 n
0000013805 00000 n
0000013854 00000 n
0000013903 00000 n
0000014164 00000 n
0000014316 00000 n
0000020676 00000 n
0000020698 00000 n
0000020793 00000 n
0000020895 00000 n
0000020915 00000 n
0000021069 00000 n
0000022130 00000 n
0000022151 00000 n
0000022264 00000 n
0000022452 00000 n
0000022473 00000 n
0000022627 00000 n
0000024026 00000 n
0000024048 00000 n
0000024161 00000 n
0000024354 00000 n
0000024375 00000 n
0000024506 00000 n
0000025117 00000 n
0000025138 00000 n
0000025251 00000 n
0000025441 00000 n
0000025462 00000 n
0000025593 00000 n
0000026594 00000 n
0000026615 00000 n
0000026728 00000 n
0000026930 00000 n
0000026951 00000 n
0000027091 00000 n
0000028109 00000 n
0000028130 00000 n
0000028243 00000 n
0000028442 00000 n
0000028463 00000 n
0000028603 00000 n
0000029270 00000 n
0000029291 00000 n
0000029404 00000 n
0000008191 00000 n
0000008296 00000 n
0000008401 00000 n
0000008506 00000 n
0000008610 00000 n
0000008713 00000 n
0000008816 00000 n
0000009120 00000 n
0000009225 00000 n
0000009330 00000 n
0000009434 00000 n
0000009539 00000 n
0000009644 00000 n
0000009748 00000 n
0000009853 00000 n
0000009958 00000 n
0000010062 00000 n
0000010167 00000 n
0000010272 00000 n
0000010376 00000 n
0000010477 00000 n
0000010509 00000 n
0000010541 00000 n
0000011261 00000 n
0000011309 00000 n
0000011357 00000 n
0000011405 00000 n
0000011453 00000 n
0000011502 00000 n
0000011551 00000 n
0000011600 00000 n
0000011649 00000 n
0000011698 00000 n
0000011747 00000 n
0000011796 00000 n
0000011845 00000 n
0000011894 00000 n
0000011943 00000 n
0000011992 00000 n
0000012041 00000 n
0000012090 00000 n
0000012139 00000 n
0000012188 00000 n
0000012237 00000 n
0000012286 00000 n
0000012335 00000 n
0000012384 00000 n
0000012433 00000 n
0000012482 00000 n
0000012531 00000 n
0000012580 00000 n
0000012629 00000 n
0000012678 00000 n
0000012727 00000 n
0000012776 00000 n
0000012825 00000 n
0000012874 00000 n
0000012923 00000 n
0000012972 00000 n
0000013021 00000 n
0000013070 00000 n
0000013119 00000 n
0000013168 00000 n
0000013217 00000 n
0000013266 00000 n
0000013315 00000 n
0000013364 00000 n
0000013413 00000 n
0000013462 00000 n
0000013511 00000 n
0000013560 00000 n
0000013609 00000 n
0000013658 00000 n
0000013707 00000 n
0000013756 00000 n
0000013805 00000 n
0000013854 00000 n
0000013903 00000 n
0000014164 00000 n
0000014316 00000 n
0000020676 00000 n
0000020698 00000 n
0000020793 00000 n
0000020895 00000 n
0000020915 00000 n
0000021069 00000 n
0000022130 00000 n
0000022151 00000 n
0000022264 00000 n
0000022452 00000 n
0000022473 00000 n
0000022627 00000 n
0000024028 00000 n
0000024050 00000 n
0000024163 00000 n
0000024356 00000 n
0000024377 00000 n
0000024508 00000 n
0000025119 00000 n
0000025140 00000 n
0000025253 00000 n
0000025443 00000 n
0000025464 00000 n
0000025595 00000 n
0000026596 00000 n
0000026617 00000 n
0000026730 00000 n
0000026932 00000 n
0000026953 00000 n
0000027093 00000 n
0000028111 00000 n
0000028132 00000 n
0000028245 00000 n
0000028444 00000 n
0000028465 00000 n
0000029618 00000 n
0000028605 00000 n
0000029272 00000 n
0000030901 00000 n
0000029293 00000 n
0000029406 00000 n
+1 -1
Ver Arquivo
@@ -127,7 +127,7 @@ following sections: </P>
<UL>
<LI>CUPS-CMP-1.1: CUPS Configuration Management Plan </LI>
<LI>CUPS-IDD-1.1: CUPS System Interface Design Description </LI>
<LI>CUPS-IPP-1.1: CUPS Implementation of IPP </LI>
<LI>CUPS-IPP-1.1: CUPS Implmentation of IPP </LI>
<LI>CUPS-SAM-1.1.x: CUPS Software Administrators Manual </LI>
<LI>CUPS-SDD-1.1: CUPS Software Design Description </LI>
<LI>CUPS-SPM-1.1.x: CUPS Software Programming Manual </LI>
+126 -124
Ver Arquivo
@@ -1,6 +1,6 @@
%PDF-1.2
%âãÏÓ
1 0 obj<</Producer(htmldoc 1.8.8 Copyright 1997-2000 Easy Software Products, All Rights Reserved.)/CreationDate(D:20000824182228Z)/Title( CUPS Interface Design Description)/Author(Easy Software Products)>>endobj
1 0 obj<</Producer(htmldoc 1.8.8 Copyright 1997-2000 Easy Software Products, All Rights Reserved.)/CreationDate(D:20000731155319Z)/Title( CUPS Interface Design Description)/Author(Easy Software Products)>>endobj
2 0 obj<</Type/Encoding/Differences[ 32/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle/parenleft/parenright/asterisk/plus/comma/minus/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/grave/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde 128/Euro 130/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE 145/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe 159/Ydieresis/space/exclamdown/cent/sterling/currency/yen/brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]>>endobj
3 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier/Encoding 2 0 R>>endobj
4 0 obj<</Type/Font/Subtype/Type1/BaseFont/Times-Roman/Encoding 2 0 R>>endobj
@@ -289,12 +289,14 @@ endobj
141 0 obj<</Type/Page/Parent 137 0 R/Contents 142 0 R/Resources<</ProcSet[/PDF/Text]>>>>endobj
142 0 obj<</Length 143 0 R/Filter/FlateDecode>>stream
xÚ+ä2T0BCc3JÎår
ár
á
äHendstream
ár
á
äHendstream
endobj
143 0 obj
31
endobj
31
144 0 obj<</Type/Page/Parent 137 0 R/Contents 145 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F4 4 0 R/F8 7 0 R/F9 8 0 R/Fc 10 0 R>>>>/Annots 15 0 R>>endobj
145 0 obj<</Length 146 0 R/Filter/FlateDecode>>stream
xÚ¥UMsÛ6½ëWìädÏT¬HQî-Ž\WÄaM9Óƒ. JˆA‚@©ê¯ï.…²âvšÉx†±_oß>,¿ bá_ ³ÆS(êÁíjðó¯7Œ`U¡e:›Ãª¼Š!/T˯WŸ5žyëpœF‰³G1,KÞXQ‰‚Y¡ïšB×dMÉuµDc¹®XÁ¡äFlúWhÑR$”ªèjÌ­V{´Z&$/¡Â'TJ×ÌšŸ æÆ°íÙkJ
ÚjVS}¬=ÀB5{‚§Cî`wÞ©ºÆrOË?!ÓI4[ÈÆòÖWoÞ=eù›õ5|âÚ,ì1ú–€$J=É)ôãžë½àò½[
@@ -753,125 +755,125 @@ xref
0000003263 00000 n
0000003350 00000 n
0000003435 00000 n
0000003909 00000 n
0000003975 00000 n
0000004060 00000 n
0000004126 00000 n
0000004211 00000 n
0000004277 00000 n
0000004362 00000 n
0000004428 00000 n
0000004513 00000 n
0000004607 00000 n
0000004708 00000 n
0000004793 00000 n
0000004894 00000 n
0000004979 00000 n
0000005080 00000 n
0000005164 00000 n
0000005202 00000 n
0000005289 00000 n
0000005374 00000 n
0000005461 00000 n
0000005546 00000 n
0000005577 00000 n
0000005643 00000 n
0000005728 00000 n
0000005784 00000 n
0000005866 00000 n
0000005897 00000 n
0000006001 00000 n
0000006106 00000 n
0000006211 00000 n
0000006316 00000 n
0000006420 00000 n
0000006525 00000 n
0000006630 00000 n
0000006734 00000 n
0000006839 00000 n
0000006944 00000 n
0000007049 00000 n
0000007154 00000 n
0000007259 00000 n
0000007364 00000 n
0000007469 00000 n
0000007574 00000 n
0000007679 00000 n
0000007784 00000 n
0000007889 00000 n
0000007994 00000 n
0000008099 00000 n
0000008204 00000 n
0000008309 00000 n
0000008413 00000 n
0000008518 00000 n
0000008623 00000 n
0000008728 00000 n
0000008833 00000 n
0000008938 00000 n
0000009043 00000 n
0000009148 00000 n
0000009253 00000 n
0000009358 00000 n
0000009463 00000 n
0000009567 00000 n
0000009671 00000 n
0000009776 00000 n
0000009881 00000 n
0000010164 00000 n
0000010196 00000 n
0000010228 00000 n
0000010758 00000 n
0000010806 00000 n
0000010854 00000 n
0000010903 00000 n
0000010952 00000 n
0000011001 00000 n
0000011050 00000 n
0000011099 00000 n
0000011148 00000 n
0000011197 00000 n
0000011246 00000 n
0000011295 00000 n
0000011344 00000 n
0000011393 00000 n
0000011442 00000 n
0000011491 00000 n
0000011540 00000 n
0000011589 00000 n
0000011638 00000 n
0000011687 00000 n
0000011736 00000 n
0000011785 00000 n
0000011834 00000 n
0000011883 00000 n
0000011932 00000 n
0000011981 00000 n
0000012030 00000 n
0000012079 00000 n
0000012128 00000 n
0000012177 00000 n
0000012226 00000 n
0000012275 00000 n
0000012324 00000 n
0000012373 00000 n
0000012422 00000 n
0000012471 00000 n
0000012520 00000 n
0000012569 00000 n
0000012618 00000 n
0000012667 00000 n
0000012976 00000 n
0000013128 00000 n
0000019489 00000 n
0000019511 00000 n
0000019606 00000 n
0000019708 00000 n
0000019728 00000 n
0000019883 00000 n
0000020911 00000 n
0000003522 00000 n
0000003607 00000 n
0000003673 00000 n
0000003758 00000 n
0000003824 00000 n
0000003909 00000 n
0000003975 00000 n
0000004060 00000 n
0000004126 00000 n
0000004211 00000 n
0000004277 00000 n
0000004362 00000 n
0000004428 00000 n
0000004513 00000 n
0000004607 00000 n
0000004708 00000 n
0000004793 00000 n
0000004894 00000 n
0000004979 00000 n
0000005080 00000 n
0000005164 00000 n
0000005202 00000 n
0000005289 00000 n
0000005374 00000 n
0000005461 00000 n
0000005546 00000 n
0000005577 00000 n
0000005643 00000 n
0000005728 00000 n
0000005784 00000 n
0000005866 00000 n
0000005897 00000 n
0000006001 00000 n
0000006106 00000 n
0000006211 00000 n
0000006316 00000 n
0000006420 00000 n
0000006525 00000 n
0000006630 00000 n
0000006734 00000 n
0000006839 00000 n
0000006944 00000 n
0000007049 00000 n
0000007154 00000 n
0000007259 00000 n
0000007364 00000 n
0000007469 00000 n
0000007574 00000 n
0000007679 00000 n
0000007784 00000 n
0000007889 00000 n
0000007994 00000 n
0000008099 00000 n
0000008204 00000 n
0000008309 00000 n
0000008413 00000 n
0000008518 00000 n
0000008623 00000 n
0000008728 00000 n
0000008833 00000 n
0000008938 00000 n
0000009043 00000 n
0000009148 00000 n
0000009253 00000 n
0000009358 00000 n
0000009463 00000 n
0000009567 00000 n
0000009671 00000 n
0000009776 00000 n
0000009881 00000 n
0000010164 00000 n
0000010196 00000 n
0000010228 00000 n
0000010758 00000 n
0000010806 00000 n
0000010854 00000 n
0000010903 00000 n
0000010952 00000 n
0000011001 00000 n
0000011050 00000 n
0000011099 00000 n
0000011148 00000 n
0000011197 00000 n
0000011246 00000 n
0000011295 00000 n
0000011344 00000 n
0000011393 00000 n
0000011442 00000 n
0000011491 00000 n
0000011540 00000 n
0000011589 00000 n
0000011638 00000 n
0000011687 00000 n
0000011736 00000 n
0000011785 00000 n
0000011834 00000 n
0000011883 00000 n
0000011932 00000 n
0000011981 00000 n
0000012030 00000 n
0000012079 00000 n
0000012128 00000 n
0000012177 00000 n
0000012226 00000 n
0000012275 00000 n
0000012324 00000 n
0000012373 00000 n
0000012422 00000 n
0000012471 00000 n
0000012520 00000 n
0000012569 00000 n
0000012618 00000 n
0000012667 00000 n
0000012976 00000 n
0000013128 00000 n
0000019489 00000 n
0000019511 00000 n
0000019606 00000 n
0000021045 00000 n
0000019708 00000 n
0000019728 00000 n
0000021252 00000 n
0000019883 00000 n
0000020911 00000 n
+1 -1
Ver Arquivo
@@ -233,7 +233,7 @@ EPSON printers are included that use these filters. </P>
<UL>
<LI>CUPS-CMP-1.1: CUPS Configuration Management Plan </LI>
<LI>CUPS-IDD-1.1: CUPS System Interface Design Description </LI>
<LI>CUPS-IPP-1.1: CUPS Implementation of IPP </LI>
<LI>CUPS-IPP-1.1: CUPS Implmentation of IPP </LI>
<LI>CUPS-SAM-1.1.x: CUPS Software Administrators Manual </LI>
<LI>CUPS-SDD-1.1: CUPS Software Design Description </LI>
<LI>CUPS-SPM-1.1.x: CUPS Software Programming Manual </LI>
+225 -223
Ver Arquivo
@@ -1,6 +1,6 @@
%PDF-1.2
%âãÏÓ
1 0 obj<</Producer(htmldoc 1.8.8 Copyright 1997-2000 Easy Software Products, All Rights Reserved.)/CreationDate(D:20000824182234Z)/Title( CUPS Implementation of IPP)/Author(Easy Software Products)>>endobj
1 0 obj<</Producer(htmldoc 1.8.8 Copyright 1997-2000 Easy Software Products, All Rights Reserved.)/CreationDate(D:20000731155326Z)/Title( CUPS Implementation of IPP)/Author(Easy Software Products)>>endobj
2 0 obj<</Type/Encoding/Differences[ 32/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle/parenleft/parenright/asterisk/plus/comma/minus/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/grave/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde 128/Euro 130/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE 145/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe 159/Ydieresis/space/exclamdown/cent/sterling/currency/yen/brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]>>endobj
3 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier/Encoding 2 0 R>>endobj
4 0 obj<</Type/Font/Subtype/Type1/BaseFont/Times-Roman/Encoding 2 0 R>>endobj
@@ -496,12 +496,14 @@ endobj
endobj
269 0 obj<</Type/Page/Parent 265 0 R/Contents 270 0 R/Resources<</ProcSet[/PDF/Text]>>>>endobj
270 0 obj<</Length 271 0 R/Filter/FlateDecode>>stream
xÚ+ä2T0BCc3JÎår
ár
á
xÚ+ä2T0BCc3JÎår
ár
á
äHendstream
endobj
271 0 obj
31
271 0 obj
endobj
272 0 obj<</Type/Page/Parent 265 0 R/Contents 273 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F4 4 0 R/F8 7 0 R/F9 8 0 R/Fc 9 0 R>>>>/Annots 20 0 R>>endobj
273 0 obj<</Length 274 0 R/Filter/FlateDecode>>stream
xÚµWMSã8½ó+ºæU¯íØùØ ,­&‹ÃÖrQl<ØVFIeý>I629°EU*²ž»ßë~j…'ùø hÒpDiur±8ùõ÷)…>-rìŒÆZd§%©Xó³Åw»ŒÝî`y¡Ý÷še¼ÖE^¤L¢vЈ‚ …†cod ‹‡BQ&Ò¦œÖR<WÄjO\>|C"'ýÀiVk.k®i. D®ïñEh‘Š’–§Ÿfóù§åá…td0EEµ.¹‰Ì3*, ¤†Ž¥ úYTàw7³º¸ÉVi^™¨ŸïæÉ^XïµêЋœêp÷ê·–»Á^-N|ÏG]ÍG`>n¯)Þ„â(ô|ª(šJnURâªÞ+ކ&¾!Ó«­…ÔlUr<k‰—lË%åBZAË0
@@ -1265,224 +1267,224 @@ xref
0000011697 00000 n
0000011801 00000 n
0000011906 00000 n
0000012541 00000 n
0000012647 00000 n
0000012753 00000 n
0000012859 00000 n
0000012965 00000 n
0000013071 00000 n
0000013177 00000 n
0000013283 00000 n
0000013389 00000 n
0000013495 00000 n
0000013601 00000 n
0000013707 00000 n
0000013813 00000 n
0000013919 00000 n
0000014025 00000 n
0000014131 00000 n
0000014237 00000 n
0000014343 00000 n
0000014449 00000 n
0000014555 00000 n
0000014661 00000 n
0000014766 00000 n
0000014870 00000 n
0000014973 00000 n
0000015348 00000 n
0000015454 00000 n
0000015560 00000 n
0000015666 00000 n
0000015772 00000 n
0000015878 00000 n
0000015984 00000 n
0000016090 00000 n
0000016196 00000 n
0000016302 00000 n
0000016408 00000 n
0000016514 00000 n
0000016620 00000 n
0000016726 00000 n
0000016832 00000 n
0000016937 00000 n
0000017043 00000 n
0000017149 00000 n
0000017303 00000 n
0000017337 00000 n
0000017371 00000 n
0000018889 00000 n
0000018938 00000 n
0000018987 00000 n
0000019036 00000 n
0000019085 00000 n
0000019134 00000 n
0000019183 00000 n
0000019232 00000 n
0000019281 00000 n
0000019330 00000 n
0000019379 00000 n
0000019428 00000 n
0000019477 00000 n
0000019526 00000 n
0000019575 00000 n
0000019624 00000 n
0000019673 00000 n
0000019722 00000 n
0000019771 00000 n
0000019820 00000 n
0000019869 00000 n
0000019918 00000 n
0000019967 00000 n
0000020016 00000 n
0000020065 00000 n
0000020114 00000 n
0000020163 00000 n
0000020212 00000 n
0000020261 00000 n
0000020310 00000 n
0000020359 00000 n
0000020408 00000 n
0000020457 00000 n
0000020506 00000 n
0000020555 00000 n
0000020604 00000 n
0000020653 00000 n
0000020702 00000 n
0000020751 00000 n
0000020800 00000 n
0000020849 00000 n
0000020898 00000 n
0000020947 00000 n
0000020996 00000 n
0000021045 00000 n
0000021094 00000 n
0000021143 00000 n
0000021192 00000 n
0000021241 00000 n
0000021290 00000 n
0000021339 00000 n
0000021388 00000 n
0000021437 00000 n
0000021486 00000 n
0000021535 00000 n
0000021584 00000 n
0000021633 00000 n
0000021682 00000 n
0000021731 00000 n
0000021780 00000 n
0000021829 00000 n
0000021878 00000 n
0000021927 00000 n
0000021976 00000 n
0000022025 00000 n
0000022074 00000 n
0000022123 00000 n
0000022172 00000 n
0000022221 00000 n
0000022270 00000 n
0000022319 00000 n
0000022368 00000 n
0000022417 00000 n
0000022466 00000 n
0000022515 00000 n
0000022564 00000 n
0000022613 00000 n
0000022662 00000 n
0000022711 00000 n
0000022760 00000 n
0000022809 00000 n
0000022858 00000 n
0000022907 00000 n
0000022956 00000 n
0000023005 00000 n
0000023054 00000 n
0000023103 00000 n
0000023152 00000 n
0000023201 00000 n
0000023250 00000 n
0000023299 00000 n
0000023348 00000 n
0000023397 00000 n
0000023446 00000 n
0000023495 00000 n
0000023544 00000 n
0000023593 00000 n
0000023642 00000 n
0000023691 00000 n
0000023740 00000 n
0000023789 00000 n
0000023838 00000 n
0000023887 00000 n
0000023936 00000 n
0000023985 00000 n
0000024034 00000 n
0000024083 00000 n
0000024132 00000 n
0000024181 00000 n
0000024570 00000 n
0000024722 00000 n
0000031073 00000 n
0000031095 00000 n
0000031190 00000 n
0000031292 00000 n
0000031312 00000 n
0000031466 00000 n
0000032673 00000 n
0000032695 00000 n
0000032808 00000 n
0000032989 00000 n
0000033010 00000 n
0000033164 00000 n
0000034563 00000 n
0000034585 00000 n
0000034698 00000 n
0000034884 00000 n
0000034905 00000 n
0000035054 00000 n
0000036282 00000 n
0000036304 00000 n
0000036426 00000 n
0000037461 00000 n
0000037482 00000 n
0000037631 00000 n
0000038584 00000 n
0000038605 00000 n
0000038754 00000 n
0000039486 00000 n
0000039507 00000 n
0000039656 00000 n
0000040585 00000 n
0000040606 00000 n
0000040755 00000 n
0000041660 00000 n
0000041681 00000 n
0000041812 00000 n
0000042540 00000 n
0000042561 00000 n
0000042701 00000 n
0000043538 00000 n
0000043559 00000 n
0000043699 00000 n
0000044497 00000 n
0000044518 00000 n
0000044649 00000 n
0000045548 00000 n
0000045569 00000 n
0000045700 00000 n
0000046312 00000 n
0000046333 00000 n
0000046473 00000 n
0000047253 00000 n
0000047274 00000 n
0000047405 00000 n
0000048230 00000 n
0000048251 00000 n
0000048391 00000 n
0000049236 00000 n
0000049257 00000 n
0000049388 00000 n
0000012012 00000 n
0000012118 00000 n
0000012224 00000 n
0000012330 00000 n
0000012435 00000 n
0000012541 00000 n
0000012647 00000 n
0000012753 00000 n
0000012859 00000 n
0000012965 00000 n
0000013071 00000 n
0000013177 00000 n
0000013283 00000 n
0000013389 00000 n
0000013495 00000 n
0000013601 00000 n
0000013707 00000 n
0000013813 00000 n
0000013919 00000 n
0000014025 00000 n
0000014131 00000 n
0000014237 00000 n
0000014343 00000 n
0000014449 00000 n
0000014555 00000 n
0000014661 00000 n
0000014766 00000 n
0000014870 00000 n
0000014973 00000 n
0000015348 00000 n
0000015454 00000 n
0000015560 00000 n
0000015666 00000 n
0000015772 00000 n
0000015878 00000 n
0000015984 00000 n
0000016090 00000 n
0000016196 00000 n
0000016302 00000 n
0000016408 00000 n
0000016514 00000 n
0000016620 00000 n
0000016726 00000 n
0000016832 00000 n
0000016937 00000 n
0000017043 00000 n
0000017149 00000 n
0000017303 00000 n
0000017337 00000 n
0000017371 00000 n
0000018889 00000 n
0000018938 00000 n
0000018987 00000 n
0000019036 00000 n
0000019085 00000 n
0000019134 00000 n
0000019183 00000 n
0000019232 00000 n
0000019281 00000 n
0000019330 00000 n
0000019379 00000 n
0000019428 00000 n
0000019477 00000 n
0000019526 00000 n
0000019575 00000 n
0000019624 00000 n
0000019673 00000 n
0000019722 00000 n
0000019771 00000 n
0000019820 00000 n
0000019869 00000 n
0000019918 00000 n
0000019967 00000 n
0000020016 00000 n
0000020065 00000 n
0000020114 00000 n
0000020163 00000 n
0000020212 00000 n
0000020261 00000 n
0000020310 00000 n
0000020359 00000 n
0000020408 00000 n
0000020457 00000 n
0000020506 00000 n
0000020555 00000 n
0000020604 00000 n
0000020653 00000 n
0000020702 00000 n
0000020751 00000 n
0000020800 00000 n
0000020849 00000 n
0000020898 00000 n
0000020947 00000 n
0000020996 00000 n
0000021045 00000 n
0000021094 00000 n
0000021143 00000 n
0000021192 00000 n
0000021241 00000 n
0000021290 00000 n
0000021339 00000 n
0000021388 00000 n
0000021437 00000 n
0000021486 00000 n
0000021535 00000 n
0000021584 00000 n
0000021633 00000 n
0000021682 00000 n
0000021731 00000 n
0000021780 00000 n
0000021829 00000 n
0000021878 00000 n
0000021927 00000 n
0000021976 00000 n
0000022025 00000 n
0000022074 00000 n
0000022123 00000 n
0000022172 00000 n
0000022221 00000 n
0000022270 00000 n
0000022319 00000 n
0000022368 00000 n
0000022417 00000 n
0000022466 00000 n
0000022515 00000 n
0000022564 00000 n
0000022613 00000 n
0000022662 00000 n
0000022711 00000 n
0000022760 00000 n
0000022809 00000 n
0000022858 00000 n
0000022907 00000 n
0000022956 00000 n
0000023005 00000 n
0000023054 00000 n
0000023103 00000 n
0000023152 00000 n
0000023201 00000 n
0000023250 00000 n
0000023299 00000 n
0000023348 00000 n
0000023397 00000 n
0000023446 00000 n
0000023495 00000 n
0000023544 00000 n
0000023593 00000 n
0000023642 00000 n
0000023691 00000 n
0000023740 00000 n
0000023789 00000 n
0000023838 00000 n
0000023887 00000 n
0000023936 00000 n
0000023985 00000 n
0000024034 00000 n
0000024083 00000 n
0000024132 00000 n
0000024181 00000 n
0000024570 00000 n
0000024722 00000 n
0000031073 00000 n
0000031095 00000 n
0000031190 00000 n
0000031292 00000 n
0000031312 00000 n
0000031466 00000 n
0000032673 00000 n
0000032695 00000 n
0000032808 00000 n
0000032989 00000 n
0000033010 00000 n
0000033164 00000 n
0000034565 00000 n
0000034587 00000 n
0000034700 00000 n
0000034886 00000 n
0000034907 00000 n
0000035056 00000 n
0000036284 00000 n
0000036306 00000 n
0000036428 00000 n
0000037463 00000 n
0000037484 00000 n
0000037633 00000 n
0000038586 00000 n
0000038607 00000 n
0000038756 00000 n
0000039488 00000 n
0000039509 00000 n
0000039658 00000 n
0000040587 00000 n
0000040608 00000 n
0000040757 00000 n
0000041662 00000 n
0000041683 00000 n
0000041814 00000 n
0000042542 00000 n
0000042563 00000 n
0000042703 00000 n
0000043540 00000 n
0000043561 00000 n
0000043701 00000 n
0000044499 00000 n
0000044520 00000 n
0000044651 00000 n
0000045550 00000 n
0000045571 00000 n
0000045702 00000 n
0000046314 00000 n
0000046335 00000 n
0000046475 00000 n
0000047255 00000 n
0000047276 00000 n
0000047407 00000 n
0000048232 00000 n
0000048253 00000 n
0000050074 00000 n
0000048393 00000 n
0000049238 00000 n
0000050927 00000 n
0000049259 00000 n
0000049390 00000 n
+1 -1
Ver Arquivo
@@ -7,7 +7,7 @@
<UL>
<LI>CUPS-CMP-1.1: CUPS Configuration Management Plan
<LI>CUPS-IDD-1.1: CUPS System Interface Design Description
<LI>CUPS-IPP-1.1: CUPS Implementation of IPP
<LI>CUPS-IPP-1.1: CUPS Implmentation of IPP
<LI>CUPS-SAM-1.1.x: CUPS Software Administrators Manual
<LI>CUPS-SDD-1.1: CUPS Software Design Description
<LI>CUPS-SPM-1.1.x: CUPS Software Programming Manual
+7 -49
Ver Arquivo
@@ -4,7 +4,7 @@
<TITLE> CUPS Software Administrators Manual</TITLE>
<META NAME="AUTHOR" CONTENT="Easy Software Products">
<META NAME="COPYRIGHT" CONTENT="Copyright 1997-2000, All Rights Reserved">
<META NAME="DOCNUMBER" CONTENT="CUPS-SAM-1.1.3">
<META NAME="DOCNUMBER" CONTENT="CUPS-SAM-1.1.1">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<STYLE>
BODY { font-family: serif; font-size: 11.0pt }
@@ -22,7 +22,7 @@ PRE { font-size: 9.0pt }
<BODY BGCOLOR="#ffffff">
<CENTER><A HREF="#CONTENTS"><IMG SRC="images/cups-large.gif" BORDER="0" WIDTH="100%"><BR>
<H1> CUPS Software Administrators Manual</H1></A><BR>
CUPS-SAM-1.1.3<BR>
CUPS-SAM-1.1.1<BR>
Easy Software Products<BR>
Copyright 1997-2000, All Rights Reserved<BR>
</CENTER>
@@ -128,7 +128,6 @@ Copyright 1997-2000, All Rights Reserved<BR>
<LI><A HREF="#Deny">Deny</A></LI>
<LI><A HREF="#DocumentRoot">DocumentRoot</A></LI>
<LI><A HREF="#ErrorLog">ErrorLog</A></LI>
<LI><A HREF="#FilterLimit">FilterLimit</A></LI>
<LI><A HREF="#Group">Group</A></LI>
<LI><A HREF="#HostNameLookups">HostNameLookups</A></LI>
<LI><A HREF="#ImplicitClasses">ImplicitClasses</A></LI>
@@ -146,7 +145,6 @@ Copyright 1997-2000, All Rights Reserved<BR>
<LI><A HREF="#PreserveJobHistory">PreserveJobHistory</A></LI>
<LI><A HREF="#PreserveJobFiles">PreserveJobFiles</A></LI>
<LI><A HREF="#Printcap">Printcap</A></LI>
<LI><A HREF="#RemoteRoot">RemoteRoot</A></LI>
<LI><A HREF="#RequestRoot">RequestRoot</A></LI>
<LI><A HREF="#RIPCache">RIPCache</A></LI>
<LI><A HREF="#ServerAdmin">ServerAdmin</A></LI>
@@ -247,7 +245,7 @@ Machine!</A></LI>
<H1 ALIGN="RIGHT"><A NAME="1">Preface</A></H1>
<P>This software administrators manual provides printer administration
information for the Common UNIX Printing System<SUP>TM</SUP> (&quot;CUPS<SUP>
TM</SUP>&quot;), version 1.1.3. </P>
TM</SUP>&quot;), version 1.1.1. </P>
<H2><A NAME="1_1">System Overview</A></H2>
<P>CUPS provides a portable printing layer for UNIX&reg;-based operating
systems. It has been developed by <A HREF="http://www.easysw.com">Easy
@@ -1040,7 +1038,6 @@ determine how the server operates: </P>
<LI><A HREF="#Deny"><CODE>Deny</CODE></A></LI>
<LI><A HREF="#DocumentRoot"><CODE>DocumentRoot</CODE></A></LI>
<LI><A HREF="#ErrorLog"><CODE>ErrorLog</CODE></A></LI>
<LI><A HREF="#FilterLimit"><CODE>FilterLimit</CODE></A></LI>
<LI><A HREF="#Group"><CODE>Group</CODE></A></LI>
<LI><A HREF="#HostNameLookups"><CODE>HostNameLookups</CODE></A></LI>
<LI><A HREF="#ImplicitClasses"><CODE>ImplicitClasses</CODE></A></LI>
@@ -1059,7 +1056,6 @@ determine how the server operates: </P>
<LI><A HREF="#PreserveJobFiles"><CODE>PreserveJobFiles</CODE></A></LI>
<LI><A HREF="#PreserveJobHistory"><CODE>PreserveJobHistory</CODE></A></LI>
<LI><A HREF="#Printcap"><CODE>Printcap</CODE></A></LI>
<LI><A HREF="#RemoteRoot"><CODE>RemoteRoot</CODE></A></LI>
<LI><A HREF="#RequestRoot"><CODE>RequestRoot</CODE></A></LI>
<LI><A HREF="#RIPCache"><CODE>RIPCache</CODE></A></LI>
<LI><A HREF="#ServerAdmin"><CODE>ServerAdmin</CODE></A></LI>
@@ -1601,28 +1597,6 @@ default error log file is <VAR>/var/log/cups/error_log</VAR>. </P>
to the system log instead of a plain file.
<!-- NEED 3in ---->
</P>
<H3><A NAME="FilterLimit">FilterLimit</A></H3>
<HR>
<H4>Examples</H4>
<UL>
<PRE>
FilterLimit 0
FilterLimit 200
FilterLimit 1000
</PRE>
</UL>
<H4>Description</H4>
<P>The <CODE>FilterLimit</CODE> directive sets the maximum cost of all
running job filters. It can be used to limit the number of filter
programs that are run on a server to minimize disk, memory, and CPU
resource problems. A limit of 0 disables filter limiting. </P>
<P>An average print to a non-PostScript printer needs a filter limit of
about 200. A PostScript printer needs about half that (100). Setting
the limit below these thresholds will effectively limit the scheduler
to printing a single job at any time. </P>
<P>The default limit is 0.
<!-- NEED 3in ---->
</P>
<H3><A NAME="Group">Group</A></H3>
<HR>
<H4>Examples</H4>
@@ -1957,22 +1931,6 @@ printcap file can then be used by applications that are hardcoded to
look at the printcap file for the available printers.
<!-- NEED 3in ---->
</P>
<H3><A NAME="RemoteRoot">RemoteRoot</A></H3>
<HR>
<H4>Examples</H4>
<UL>
<PRE>
RemoteRoot remroot
RemoteRoot root
</PRE>
</UL>
<H4>Description</H4>
<P>The <CODE>RemoteRoot</CODE> directive sets the username for
unauthenticated root requests from remote hosts. The default username
is <VAR>remroot</VAR>. Setting <CODE>RemoteRoot</CODE> to <VAR>root</VAR>
effectively disables this security mechanism.
<!-- NEED 3in ---->
</P>
<H3><A NAME="RequestRoot">RequestRoot</A></H3>
<HR>
<H4>Examples</H4>
@@ -2372,10 +2330,10 @@ Password again: <B>(password) ENTER</B> [password is not echoed]
<!-- NEW PAGE ---->
<H2><A NAME="PRINTER_ACCOUNTING">Printer Accounting</A></H2>
<P>ESP Print Pro maintains a log of all accesses, errors, and pages
that are printed. The log files are normally stored in the <VAR>
/var/log/cups</VAR> directory. You can change this by editing the <VAR>
/etc/cups/cupsd.conf</VAR> configuration file. </P>
<P>CUPS maintains a log of all accesses, errors, and pages that are </P>
<P>The log files are normally stored in the <VAR>/var/log/cups</VAR>
directory. You can change this by editing the <VAR>/etc/cups/cupsd.conf</VAR>
configuration file. </P>
<H3><A NAME="7_6_1">The access_log File</A></H3>
<P>The <VAR>access_log</VAR> file lists each HTTP resource that is
accessed by a web browser or CUPS/IPP client. Each line is in the
+2206 -2291
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+7 -53
Ver Arquivo
@@ -1,7 +1,7 @@
<HTML>
<HEAD>
<META NAME="COPYRIGHT" CONTENT="Copyright 1997-2000, All Rights Reserved">
<META NAME="DOCNUMBER" CONTENT="CUPS-SAM-1.1.3">
<META NAME="DOCNUMBER" CONTENT="CUPS-SAM-1.1.1">
<META NAME="Author" CONTENT="Easy Software Products">
<TITLE>CUPS Software Administrators Manual</TITLE>
</HEAD>
@@ -11,7 +11,7 @@
<P>This software administrators manual provides printer administration
information for the Common UNIX Printing System<SUP>TM</SUP>
("CUPS<SUP>TM</SUP>"), version 1.1.3.
("CUPS<SUP>TM</SUP>"), version 1.1.1.
<EMBED SRC="system-overview.shtml">
@@ -848,7 +848,6 @@ determine how the server operates:
<LI><A HREF="#Deny"><CODE>Deny</CODE></A>
<LI><A HREF="#DocumentRoot"><CODE>DocumentRoot</CODE></A>
<LI><A HREF="#ErrorLog"><CODE>ErrorLog</CODE></A>
<LI><A HREF="#FilterLimit"><CODE>FilterLimit</CODE></A>
<LI><A HREF="#Group"><CODE>Group</CODE></A>
<LI><A HREF="#HostNameLookups"><CODE>HostNameLookups</CODE></A>
<LI><A HREF="#ImplicitClasses"><CODE>ImplicitClasses</CODE></A>
@@ -873,7 +872,6 @@ determine how the server operates:
<LI><A HREF="#PreserveJobFiles"><CODE>PreserveJobFiles</CODE></A>
<LI><A HREF="#PreserveJobHistory"><CODE>PreserveJobHistory</CODE></A>
<LI><A HREF="#Printcap"><CODE>Printcap</CODE></A>
<LI><A HREF="#RemoteRoot"><CODE>RemoteRoot</CODE></A>
<LI><A HREF="#RequestRoot"><CODE>RequestRoot</CODE></A>
<LI><A HREF="#RIPCache"><CODE>RIPCache</CODE></A>
<LI><A HREF="#ServerAdmin"><CODE>ServerAdmin</CODE></A>
@@ -1538,33 +1536,6 @@ default error log file is <VAR>/var/log/cups/error_log</VAR>.
<P>The special name "syslog" can be used to send the error information
to the system log instead of a plain file.
<!-- NEED 3in -->
<H3><A NAME="FilterLimit">FilterLimit</A></H3>
<HR>
<H4>Examples</H4>
<UL><PRE>
FilterLimit 0
FilterLimit 200
FilterLimit 1000
</PRE></UL>
<H4>Description</H4>
<P>The <CODE>FilterLimit</CODE> directive sets the maximum cost
of all running job filters. It can be used to limit the number
of filter programs that are run on a server to minimize disk,
memory, and CPU resource problems. A limit of 0 disables filter
limiting.
<P>An average print to a non-PostScript printer needs a filter
limit of about 200. A PostScript printer needs about half that
(100). Setting the limit below these thresholds will effectively
limit the scheduler to printing a single job at any time.
<P>The default limit is 0.
<!-- NEED 3in -->
<H3><A NAME="Group">Group</A></H3>
<HR>
@@ -1963,24 +1934,6 @@ printcap file is written whenever a printer is added or removed. The
printcap file can then be used by applications that are hardcoded to
look at the printcap file for the available printers.
<!-- NEED 3in -->
<H3><A NAME="RemoteRoot">RemoteRoot</A></H3>
<HR>
<H4>Examples</H4>
<UL><PRE>
RemoteRoot remroot
RemoteRoot root
</PRE></UL>
<H4>Description</H4>
<P>The <CODE>RemoteRoot</CODE> directive sets the username for
unauthenticated root requests from remote hosts. The default
username is <VAR>remroot</VAR>. Setting <CODE>RemoteRoot</CODE>
to <VAR>root</VAR> effectively disables this security mechanism.
<!-- NEED 3in -->
<H3><A NAME="RequestRoot">RequestRoot</A></H3>
<HR>
@@ -2447,10 +2400,11 @@ Password again: <B>(password) ENTER</B> [password is not echoed]
<!-- NEW PAGE -->
<H2><A NAME="PRINTER_ACCOUNTING">Printer Accounting</A></H2>
<P>ESP Print Pro maintains a log of all accesses, errors, and
pages that are printed. The log files are normally stored in the
<VAR>/var/log/cups</VAR> directory. You can change this by
editing the <VAR>/etc/cups/cupsd.conf</VAR> configuration file.
<P>CUPS maintains a log of all accesses, errors, and pages that are
<P>The log files are normally stored in the <VAR>/var/log/cups</VAR>
directory. You can change this by editing the
<VAR>/etc/cups/cupsd.conf</VAR> configuration file.
<H3>The access_log File</H3>
+1 -1
Ver Arquivo
@@ -172,7 +172,7 @@ EPSON printers are included that use these filters. </P>
<UL>
<LI>CUPS-CMP-1.1: CUPS Configuration Management Plan </LI>
<LI>CUPS-IDD-1.1: CUPS System Interface Design Description </LI>
<LI>CUPS-IPP-1.1: CUPS Implementation of IPP </LI>
<LI>CUPS-IPP-1.1: CUPS Implmentation of IPP </LI>
<LI>CUPS-SAM-1.1.x: CUPS Software Administrators Manual </LI>
<LI>CUPS-SDD-1.1: CUPS Software Design Description </LI>
<LI>CUPS-SPM-1.1.x: CUPS Software Programming Manual </LI>
+138 -136
Ver Arquivo
@@ -1,6 +1,6 @@
%PDF-1.2
%âãÏÓ
1 0 obj<</Producer(htmldoc 1.8.8 Copyright 1997-2000 Easy Software Products, All Rights Reserved.)/CreationDate(D:20000824182250Z)/Title( CUPS Software Design Description)/Author(Easy Software Products)>>endobj
1 0 obj<</Producer(htmldoc 1.8.8 Copyright 1997-2000 Easy Software Products, All Rights Reserved.)/CreationDate(D:20000731155344Z)/Title( CUPS Software Design Description)/Author(Easy Software Products)>>endobj
2 0 obj<</Type/Encoding/Differences[ 32/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle/parenleft/parenright/asterisk/plus/comma/minus/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/grave/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde 128/Euro 130/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE 145/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe 159/Ydieresis/space/exclamdown/cent/sterling/currency/yen/brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]>>endobj
3 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier/Encoding 2 0 R>>endobj
4 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier-Oblique/Encoding 2 0 R>>endobj
@@ -385,12 +385,14 @@ endobj
xÚ+ä2T0BCc3JÎår
ár
á
äHendstream
endobj
211 0 obj
äHendstream
endobj
211 0 obj
31
endobj
212 0 obj<</Type/Page/Parent 205 0 R/Contents 213 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F4 5 0 R/F8 8 0 R/F9 9 0 R/Fc 10 0 R>>>>/Annots 15 0 R>>endobj
213 0 obj<</Length 214 0 R/Filter/FlateDecode>>stream
212 0 obj<</Type/Page/Parent 205 0 R/Contents 213 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F4 5 0 R/F8 8 0 R/F9 9 0 R/Fc 10 0 R>>>>/Annots 15 0 R>>endobj
xÚ¥UÛnÛ8}÷W ú”kÖ’¯Ù·¦Îf½hS5rŠ>ø…¦(›
%º$eÃýúÎr}iº(PذAÍ휙ÃÑ×N=ü$0N¡?Qunç×ÿÜ@Úƒy‰–Ñxóâ*¼ž Öd­Ýþ€¥ÁΘ²öªT‚{eêè:€$i]Ó1‘ë|­8Sú·
éÔª¦?aÕ†¡0¢©0l¬Ù*´ÀJÖÒr
ª.­BzÀ¯_KàV¬•—Â7˜Œ×S¨z¦$3ÀÒI?¢|kª
@@ -861,137 +863,137 @@ xref
0000015575 00000 n
0000015624 00000 n
0000015673 00000 n
0000015967 00000 n
0000016016 00000 n
0000016065 00000 n
0000016114 00000 n
0000016163 00000 n
0000016212 00000 n
0000016261 00000 n
0000016310 00000 n
0000016359 00000 n
0000016408 00000 n
0000016457 00000 n
0000016506 00000 n
0000016555 00000 n
0000016604 00000 n
0000016653 00000 n
0000016702 00000 n
0000016751 00000 n
0000016800 00000 n
0000016849 00000 n
0000016898 00000 n
0000016947 00000 n
0000016996 00000 n
0000017045 00000 n
0000017094 00000 n
0000017143 00000 n
0000017192 00000 n
0000017241 00000 n
0000017290 00000 n
0000017339 00000 n
0000017388 00000 n
0000017437 00000 n
0000017486 00000 n
0000017535 00000 n
0000017584 00000 n
0000017633 00000 n
0000017682 00000 n
0000017731 00000 n
0000017780 00000 n
0000017829 00000 n
0000017878 00000 n
0000017927 00000 n
0000017976 00000 n
0000018025 00000 n
0000018074 00000 n
0000018123 00000 n
0000018172 00000 n
0000018221 00000 n
0000018270 00000 n
0000018319 00000 n
0000018368 00000 n
0000018417 00000 n
0000018466 00000 n
0000018515 00000 n
0000018564 00000 n
0000018613 00000 n
0000018662 00000 n
0000018711 00000 n
0000018760 00000 n
0000018809 00000 n
0000019038 00000 n
0000019190 00000 n
0000025540 00000 n
0000025562 00000 n
0000025657 00000 n
0000025759 00000 n
0000025779 00000 n
0000025934 00000 n
0000026941 00000 n
0000026962 00000 n
0000027075 00000 n
0000027260 00000 n
0000027281 00000 n
0000027436 00000 n
0000028835 00000 n
0000028857 00000 n
0000028970 00000 n
0000029160 00000 n
0000029181 00000 n
0000029331 00000 n
0000030370 00000 n
0000030391 00000 n
0000030550 00000 n
0000031481 00000 n
0000031502 00000 n
0000031633 00000 n
0000032595 00000 n
0000032616 00000 n
0000032747 00000 n
0000033671 00000 n
0000033692 00000 n
0000033842 00000 n
0000034895 00000 n
0000034916 00000 n
0000035047 00000 n
0000035793 00000 n
0000035814 00000 n
0000035945 00000 n
0000037078 00000 n
0000037100 00000 n
0000037240 00000 n
0000038194 00000 n
0000038215 00000 n
0000038346 00000 n
0000038937 00000 n
0000038958 00000 n
0000039071 00000 n
0000039260 00000 n
0000039281 00000 n
0000039421 00000 n
0000040089 00000 n
0000040110 00000 n
0000040223 00000 n
0000040412 00000 n
0000040433 00000 n
0000040587 00000 n
0000042983 00000 n
0000043005 00000 n
0000043160 00000 n
0000044798 00000 n
0000044820 00000 n
0000044875 00000 n
0000044980 00000 n
0000045124 00000 n
0000045230 00000 n
0000045350 00000 n
0000045459 00000 n
0000045608 00000 n
0000045718 00000 n
0000045825 00000 n
0000015722 00000 n
0000015771 00000 n
0000015820 00000 n
0000015869 00000 n
0000015918 00000 n
0000015967 00000 n
0000016016 00000 n
0000016065 00000 n
0000016114 00000 n
0000016163 00000 n
0000016212 00000 n
0000016261 00000 n
0000016310 00000 n
0000016359 00000 n
0000016408 00000 n
0000016457 00000 n
0000016506 00000 n
0000016555 00000 n
0000016604 00000 n
0000016653 00000 n
0000016702 00000 n
0000016751 00000 n
0000016800 00000 n
0000016849 00000 n
0000016898 00000 n
0000016947 00000 n
0000016996 00000 n
0000017045 00000 n
0000017094 00000 n
0000017143 00000 n
0000017192 00000 n
0000017241 00000 n
0000017290 00000 n
0000017339 00000 n
0000017388 00000 n
0000017437 00000 n
0000017486 00000 n
0000017535 00000 n
0000017584 00000 n
0000017633 00000 n
0000017682 00000 n
0000017731 00000 n
0000017780 00000 n
0000017829 00000 n
0000017878 00000 n
0000017927 00000 n
0000017976 00000 n
0000018025 00000 n
0000018074 00000 n
0000018123 00000 n
0000018172 00000 n
0000018221 00000 n
0000018270 00000 n
0000018319 00000 n
0000018368 00000 n
0000018417 00000 n
0000018466 00000 n
0000018515 00000 n
0000018564 00000 n
0000018613 00000 n
0000018662 00000 n
0000018711 00000 n
0000018760 00000 n
0000018809 00000 n
0000019038 00000 n
0000019190 00000 n
0000025540 00000 n
0000025562 00000 n
0000025657 00000 n
0000025759 00000 n
0000025779 00000 n
0000025934 00000 n
0000026941 00000 n
0000026962 00000 n
0000027075 00000 n
0000027260 00000 n
0000027281 00000 n
0000027436 00000 n
0000028837 00000 n
0000028859 00000 n
0000028972 00000 n
0000029162 00000 n
0000029183 00000 n
0000029333 00000 n
0000030372 00000 n
0000030393 00000 n
0000030552 00000 n
0000031483 00000 n
0000031504 00000 n
0000031635 00000 n
0000032597 00000 n
0000032618 00000 n
0000032749 00000 n
0000033673 00000 n
0000033694 00000 n
0000033844 00000 n
0000034897 00000 n
0000034918 00000 n
0000035049 00000 n
0000035795 00000 n
0000035816 00000 n
0000035947 00000 n
0000037080 00000 n
0000037102 00000 n
0000037242 00000 n
0000038196 00000 n
0000038217 00000 n
0000038348 00000 n
0000038939 00000 n
0000038960 00000 n
0000039073 00000 n
0000039262 00000 n
0000039283 00000 n
0000039423 00000 n
0000040091 00000 n
0000040112 00000 n
0000040225 00000 n
0000040414 00000 n
0000040435 00000 n
0000040589 00000 n
0000042985 00000 n
0000043007 00000 n
0000043162 00000 n
0000044800 00000 n
0000044822 00000 n
0000044877 00000 n
0000044982 00000 n
0000045126 00000 n
0000045232 00000 n
0000045352 00000 n
0000046115 00000 n
0000045461 00000 n
0000045610 00000 n
0000046322 00000 n
0000045720 00000 n
0000045827 00000 n
+540 -763
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+7580 -7879
Ver Arquivo
Diff do arquivo suprimido porque uma ou mais linhas são muito longas
+3 -261
Ver Arquivo
@@ -1,7 +1,7 @@
<HTML>
<HEAD>
<META NAME="COPYRIGHT" CONTENT="Copyright 1997-2000, All Rights Reserved">
<META NAME="DOCNUMBER" CONTENT="CUPS-SPM-1.1.3">
<META NAME="DOCNUMBER" CONTENT="CUPS-SPM-1.1.1">
<META NAME="Author" CONTENT="Easy Software Products">
<TITLE>CUPS Software Programmers Manual</TITLE>
</HEAD>
@@ -10,7 +10,7 @@
<H1 ALIGN="RIGHT">Preface</H1>
<P>This software programmers manual provides software programming
information for the Common UNIX Printing System ("CUPS") Version 1.1.3.
information for the Common UNIX Printing System ("CUPS") Version 1.1.1.
<EMBED SRC="system-overview.shtml">
@@ -450,65 +450,6 @@ if (jobid == 0)
puts(cupsErrorString(cupsLastError()));
</PRE></UL>
<H3>Passwords and Authentication</H3>
<P>CUPS supports authentication of any request, including
submission of print jobs. The default mechanism for getting the
username and password is to use the login user and a password
from the console.
<P>To support other types of applications, in particular
Graphical User Interfaces ("GUIs"), the CUPS API provides
functions to set the default username and to register a callback
function that returns a password string.
<P>The <A HREF="cupsSetPasswordCB"><CODE>cupsSetPasswordCB()</CODE></A>
function is used to set a password callback in your program. Only one
function can be used at any time.
<P>The <A HREF="cupsSetUser"><CODE>cupsSetUser()</CODE></A> function sets
the current username for authentication. This function can be called by
your password callback function to change the current username as needed.
<P>The following example shows a simple password callback that gets a
username and password from the user:
<UL><PRE>
#include &lt;cups/cups.h&gt;
const char *
my_password_cb(const char *prompt)
{
char user[65];
puts(prompt);
/* Get a username from the user */
printf("Username: ");
if (fgets(user, sizeof(user), stdin) == NULL)
return (NULL);
/* Strip the newline from the string and set the user */
user[strlen(user) - 1] = '\0';
cupsSetUser(user);
/* Use getpass() to ask for the password... */
return (getpass("Password: "));
}
...
cupsSetPasswordCB(my_password_cb);
</PRE></UL>
<P>Similarly, a GUI interface could display the prompt string in a
window with input fields for the username and password. The username
should probably default to the value of
<A HREF="#cupsUser"><CODE>cupsUser()</CODE></A> to make things easier
on the user.
<H2>PPD Services</H2>
<P>CUPS includes functions to access and manipulate PostScript Printer
@@ -3318,9 +3259,6 @@ password = cupsGetPassword("Please enter a password:");
<P>
<A HREF="#cupsServer">cupsServer()</A>,
<A HREF="#cupsSetPasswordCB">cupsSetPasswordCB()</A>,
<A HREF="#cupsSetServer">cupsSetServer()</A>,
<A HREF="#cupsSetUser">cupsSetUser()</A>,
<A HREF="#cupsUser()">cupsUser()</A>
<!-- NEW PAGE --><H2><A NAME="cupsGetPPD">cupsGetPPD()</A></H2>
@@ -4491,160 +4429,8 @@ server = cupsServer();
<P>
<A HREF="#cupsGetPassword">cupsGetPassword()</A>,
<A HREF="#cupsSetPasswordCB">cupsSetPasswordCB()</A>,
<A HREF="#cupsSetServer">cupsSetServer()</A>,
<A HREF="#cupsSetUser">cupsSetUser()</A>,
<A HREF="#cupsUser">cupsUser()</A>
<!-- NEW PAGE --><H2><A NAME="cupsSetPasswordCB">cupsSetPasswordCB()</A></H2>
<H3>Usage</H3>
<PRE>
void
cupsSetPasswordCB(const char *(*cb)(const char *prompt));
</PRE>
<H3>Arguments</H3>
<CENTER><TABLE WIDTH="80%" BORDER>
<TR>
<TH>Argument</TH>
<TH>Description</TH>
</TR>
<TR>
<TD>cb</TD>
<TD>The password callback function.</TD>
</TR>
</TABLE></CENTER>
<H3>Description</H3>
<P><CODE>cupsSetPasswordCB()</CODE> sets the callback function to use when
asking the user for a password. The callback function must accept a single
character string pointer (the prompt string) and return <CODE>NULL</CODE>
if the user did not enter a password string or a pointer to the password
string otherwise.
<H3>Example</H3>
<PRE>
#include &lt;cups/cups.h&gt;
const char *
my_password_cb(const char *prompt)
{
return (getpass(prompt));
}
...
char *password;
...
cupsSetPasswordCB(my_password_cb);
password = cupsGetPassword("Please enter a password:");
</PRE>
<H3>See Also</H3>
<P>
<A HREF="#cupsServer">cupsServer()</A>,
<A HREF="#cupsSetServer">cupsSetServer()</A>,
<A HREF="#cupsSetUser">cupsSetUser()</A>,
<A HREF="#cupsUser()">cupsUser()</A>
<!-- NEW PAGE --><H2><A NAME="cupsSetServer">cupsSetServer()</A></H2>
<H3>Usage</H3>
<PRE>
void
cupsSetServer(const char *server);
</PRE>
<H3>Arguments</H3>
<CENTER><TABLE WIDTH="80%" BORDER>
<TR>
<TH>Argument</TH>
<TH>Description</TH>
</TR>
<TR>
<TD>server</TD>
<TD>The default server to use.</TD>
</TR>
</TABLE></CENTER>
<H3>Description</H3>
<P><CODE>cupsSetServer()</CODE> sets the default server to use for
the CUPS API. If the <CODE>server</CODE> argument is <CODE>NULL</CODE>,
the default server is used.
<H3>Example</H3>
<PRE>
#include &lt;cups/cups.h&gt;
cupsSetServer("foo.bar.com");
</PRE>
<H3>See Also</H3>
<P>
<A HREF="#cupsServer">cupsServer()</A>,
<A HREF="#cupsSetPasswordCB">cupsSetPasswordCB()</A>,
<A HREF="#cupsSetUser">cupsSetUser()</A>,
<A HREF="#cupsUser()">cupsUser()</A>
<!-- NEW PAGE --><H2><A NAME="cupsSetUser">cupsSetUser()</A></H2>
<H3>Usage</H3>
<PRE>
void
cupsSetUser(const char *user);
</PRE>
<H3>Arguments</H3>
<CENTER><TABLE WIDTH="80%" BORDER>
<TR>
<TH>Argument</TH>
<TH>Description</TH>
</TR>
<TR>
<TD>user</TD>
<TD>The user name string to use.</TD>
</TR>
</TABLE></CENTER>
<H3>Description</H3>
<P><CODE>cupsSetUser()</CODE> sets the default user name for authentication.
If the <CODE>user</CODE> argument is <CODE>NULL</CODE> then the current
login user is used.
<H3>Example</H3>
<PRE>
#include &lt;cups/cups.h&gt;
...
cupsSetUser("root");
</PRE>
<H3>See Also</H3>
<P>
<A HREF="#cupsServer">cupsServer()</A>,
<A HREF="#cupsSetPasswordCB">cupsSetPasswordCB()</A>,
<A HREF="#cupsSetServer">cupsSetServer()</A>,
<A HREF="#cupsUser()">cupsUser()</A>
<!-- NEW PAGE --><H2><A NAME="cupsTempFile">cupsTempFile()</A></H2>
<H3>Usage</H3>
@@ -7261,8 +7047,7 @@ http = httpConnect(cupsServer(), ippPort());
<H3>See Also</H3>
<A HREF="#cupsServer"><CODE>cupsServer()</CODE></A>,
<A HREF="#ippSetPort"><CODE>ippSetPort()</CODE></A>
<A HREF="#cupsServer"><CODE>cupsServer()</CODE></A>
<!-- NEW PAGE --><H2><A NAME="ippRead">ippRead()</A></H2>
@@ -7327,49 +7112,6 @@ if (status == IPP_DATA)
<A HREF="#ippWrite"><CODE>ippWrite()</CODE></A>
<!-- NEW PAGE --><H2><A NAME="ippSetPort">ippSetPort()</A></H2>
<H3>Usage</H3>
<PRE>
void
ippSetPort(int port);
</PRE>
<H3>Arguments</H3>
<CENTER><TABLE WIDTH="80%" BORDER>
<TR>
<TH>Argument</TH>
<TH>Description</TH>
</TR>
<TR>
<TD>port</TD>
<TD>The port number to use</TD>
</TR>
</TABLE></CENTER>
<H3>Description</H3>
<P>The <CODE>ippSetPort()</CODE> function sets the default IPP port number
for requests.
<H3>Example</H3>
<PRE>
#include &lt;cups/http.h>
#include &lt;cups/ipp.h>
...
ippSetPort(8631);
</PRE>
<H3>See Also</H3>
<A HREF="#ippPort"><CODE>ippPort()</CODE></A>
<!-- NEW PAGE --><H2><A NAME="ippTimeToDate">ippTimeToDate()</A></H2>
<H3>Usage</H3>
+1 -1
Ver Arquivo
@@ -89,7 +89,7 @@ following sections:</P>
<UL>
<LI>CUPS-CMP-1.1: CUPS Configuration Management Plan </LI>
<LI>CUPS-IDD-1.1: CUPS System Interface Design Description </LI>
<LI>CUPS-IPP-1.1: CUPS Implementation of IPP </LI>
<LI>CUPS-IPP-1.1: CUPS Implmentation of IPP </LI>
<LI>CUPS-SAM-1.1.x: CUPS Software Administrators Manual </LI>
<LI>CUPS-SDD-1.1: CUPS Software Design Description </LI>
<LI>CUPS-SPM-1.1.x: CUPS Software Programming Manual </LI>
BIN
Ver Arquivo
Arquivo binário não exibido.
+1 -1
Ver Arquivo
@@ -92,7 +92,7 @@ sections:</P>
<UL>
<LI>CUPS-CMP-1.1: CUPS Configuration Management Plan </LI>
<LI>CUPS-IDD-1.1: CUPS System Interface Design Description </LI>
<LI>CUPS-IPP-1.1: CUPS Implementation of IPP </LI>
<LI>CUPS-IPP-1.1: CUPS Implmentation of IPP </LI>
<LI>CUPS-SAM-1.1.x: CUPS Software Administrators Manual </LI>
<LI>CUPS-SDD-1.1: CUPS Software Design Description </LI>
<LI>CUPS-SPM-1.1.x: CUPS Software Programming Manual </LI>
BIN
Ver Arquivo
Arquivo binário não exibido.
+1 -1
Ver Arquivo
@@ -86,7 +86,7 @@ EPSON printers are included that use these filters. </P>
<UL>
<LI>CUPS-CMP-1.1: CUPS Configuration Management Plan </LI>
<LI>CUPS-IDD-1.1: CUPS System Interface Design Description </LI>
<LI>CUPS-IPP-1.1: CUPS Implementation of IPP </LI>
<LI>CUPS-IPP-1.1: CUPS Implmentation of IPP </LI>
<LI>CUPS-SAM-1.1.x: CUPS Software Administrators Manual </LI>
<LI>CUPS-SDD-1.1: CUPS Software Design Description </LI>
<LI>CUPS-SPM-1.1.x: CUPS Software Programming Manual </LI>
BIN
Ver Arquivo
Arquivo binário não exibido.
+3 -3
Ver Arquivo
@@ -4,7 +4,7 @@
<TITLE> CUPS Software Users Manual</TITLE>
<META NAME="AUTHOR" CONTENT="Easy Software Products">
<META NAME="COPYRIGHT" CONTENT="Copyright 1997-2000, All Rights Reserved">
<META NAME="DOCNUMBER" CONTENT="CUPS-SUM-1.1.3">
<META NAME="DOCNUMBER" CONTENT="CUPS-SUM-1.1.1">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<STYLE>
BODY { font-family: serif; font-size: 11.0pt }
@@ -22,7 +22,7 @@ PRE { font-size: 9.0pt }
<BODY BGCOLOR="#ffffff">
<CENTER><A HREF="#CONTENTS"><IMG SRC="images/cups-large.gif" BORDER="0" WIDTH="100%"><BR>
<H1> CUPS Software Users Manual</H1></A><BR>
CUPS-SUM-1.1.3<BR>
CUPS-SUM-1.1.1<BR>
Easy Software Products<BR>
Copyright 1997-2000, All Rights Reserved<BR>
</CENTER>
@@ -125,7 +125,7 @@ Copyright 1997-2000, All Rights Reserved<BR>
<HR>
<H1 ALIGN="RIGHT"><A NAME="1">Preface</A></H1>
<P>This software users manual describes how to use the Common UNIX
Printing System<SUP>TM</SUP> (&quot;CUPS<SUP>TM</SUP>&quot;) Version 1.1.3. </P>
Printing System<SUP>TM</SUP> (&quot;CUPS<SUP>TM</SUP>&quot;) Version 1.1.1. </P>
<H2><A NAME="1_1">System Overview</A></H2>
<P>CUPS provides a portable printing layer for UNIX&reg;-based operating
systems. It has been developed by <A HREF="http://www.easysw.com">Easy
+195 -200
Ver Arquivo
@@ -1,6 +1,6 @@
%PDF-1.2
%âãÏÓ
1 0 obj<</Producer(htmldoc 1.8.8 Copyright 1997-2000 Easy Software Products, All Rights Reserved.)/CreationDate(D:20000824182337Z)/Title( CUPS Software Users Manual)/Author(Easy Software Products)>>endobj
1 0 obj<</Producer(htmldoc 1.8.8 Copyright 1997-2000 Easy Software Products, All Rights Reserved.)/CreationDate(D:20000731155420Z)/Title( CUPS Software Users Manual)/Author(Easy Software Products)>>endobj
2 0 obj<</Type/Encoding/Differences[ 32/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle/parenleft/parenright/asterisk/plus/comma/minus/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/grave/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde 128/Euro 130/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE 145/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe 159/Ydieresis/space/exclamdown/cent/sterling/currency/yen/brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]>>endobj
3 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier/Encoding 2 0 R>>endobj
4 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier-Bold/Encoding 2 0 R>>endobj
@@ -343,10 +343,7 @@ h)
Wuáiè†X!dr¸Ñ˜ÄjøCýsȵèÝJ´§•¸rŽlH[âã‹:\…’K\[°'¢@Ø¢C­€]Ÿ«VrU×Ê=öEèà£ÃDïû¯´ùÖÕÌŸêsí¯#èùVž«áxåÛ-â;^WÈ\OÌɱonn0¾d=äª\ÝT”‚lˆ{ó€¼0ÚT¹WWojò$ ð\{–l lbÕ¹.¶*qeÝKž„‰×ñÒáÊY²Ñ˜×Ó{Šyq—KΈÚ{ÈhzªX¯üPy8Å:F—« »òúh9ÔNþnï5ùÒ*¹Ä€+“,¯ñª è¨Wo'ÍéŧñýGH©\SßËy°†ÇeŽæãvQ°2Ÿ,+çEQÁse¼(*t.a#‡s5–r*WÍçª>š^¸
vt6מÍ•4™¿peM/\œ¥ùp‰'óg®úÃÉ<–kÎ-‡Í‹ó·•Ü:\[æ»uîªßFwÒ²ßmµwpœOm›.Ò,²Î-ï\·u›þà,•\×FÍÕI¿\¹r¶ûRãkT§×ćk¥äjÔûËÛ}©4fÜkbÄኔ\¹zß¿h£¶W]nj¯‰;×NÁU
UPn9Ár­4áËNÅ•r¸RW6|ŒŽ¹Î«Ëë51áp%C®wшﲫÝÊ-§h®š+Vqõó¡¸g¯r~ô'/ÙÅlp\ëQ®Ó¿^òHjÁZv,¥Šk£tEr<Џ¨ëdÞ7ÛnlÌ\—᯻?"éx@·‰+×à¢Zr—Ûj{‡àꤥÈ]|Ëíé71âp
.7.y<€
£®[‘"K~­lâŽÃÕ¿(—óM
-áðì8—Ðpz®”ÃÕ¿¨7RNf™*Œj1\·Ùÿj®˜ÃÕ»¨ðTà¹b\Šã|f.ÅEußÁnßÊ#`ÂÃÄžk¨Šã|f.ÝÀT5_ŽÜp
×^­óŠã|®áE…ÒÁ&ŒJ[=Ì®9·r‡Çù\Ër¥#Bq­Q\µÚÕš8JqœÁ5¼HËU;â*”ñÆË- é5qxœÁ5¼(S:"×Ã%¢"ÎSÇù0\ƒ‹´\?Œê´áò;ô¼RqœÃ5¸¨[ývGסµœm”MçÃp
.7.y<€
£®[‘"K~­lâŽÃÕ¿(—óM
-áðì8—Ðpz®”ÃÕ¿¨7RNf™*Œj1\·Ùÿj®˜ÃÕ»¨ðTà¹b\Šã|f.ÅEußÁnßÊ#`ÂÃÄžk¨Šã|f.ÝÀT5_ŽÜp
×^­óŠã|®áE…ÒÁ&ŒJ[=Ì®9·r‡Çù\Ër¥#Bq­Q\µÚÕš8JqœÁ5¼HËU;â*”ñÆË- é5qxœÁ5¼(S:"×Ã%¢"ÎSÇù0\ƒ‹´\?Œê´áò;ô¼RqœÃ5¸¨[ývGסµœm”MçÃp
@@ -363,13 +360,11 @@ endobj
%°ß{ZÀ‘›ì ù=Å¡­´e&=@~¯thG„â‚¥Âèo‘ßoXÀQã¸÷}ô•±mç˜Á8lc®Á9æ½Qæ#/Á9°Üè–ã‚s`™±Åš3‡}€²×ÀXcV@éK`3ËÚ¬Þ€ò9°ÊÜX@=€ÀXa6.@l`3°½9êT˜ËÍ" mœ£ „m®gƒú¡€S˜ „A:ઢ©€ìÚ„>G˜ ‡bH}fv_ï\bAB/0Ò
-Vè׋‘Ã]‡+_Ž V˜È+ A,0
-V裥ÈaÜ媗#ˆ(Â
-g€M>kΩj-k€MœdY“½´¬ +ÈcX]>±rz‹€5D'V
œéöÔ1GNÀY™8樼A:©Ôï˜gB©œÇ ÜÏ™.H,8ޏÃtºc
wàÊêd†kÍÁ…Tú‰:,c=càÔ4Æ €?R§é°ŒÖÛNÓaÓ™_‚& :C¢Åqí±`»0ºk…äªé0‘qƒph­ ±÷UKó„ªY.´v†èuâ,øV­!zÕzìÓÝ ¹ð†èQ:j ÖÖãrfØ ¬OKüñÍPË%¢¹-±±’.h­
Ñ“&æV>¬­'BõÊXZ?Þ¹±´°öõ^†˜È,e \<1÷3–½í#×½{&ܸ¥rU¤ÍJÉ\"š LdöܹK0;¸)82i\o\´;¼•Ÿ'–‘P¬.t¬Â^¿¹1p1_uFÃÒÇàd}¡ãNSbé¥
*âƒ-ôéBäpÝåB} Â(»‚Ç¥€VÏP„#C̾:\ÕB")£œ· Å ÙHd.„Ð'TæB,ÝÄ‹u+_†pd8üƒȇ
B8j¤—Â!Gl#´A `1Û¨«>BðÌØå
h)‚¸ú,(ÖCéÑg­¡% ÇÜ ýŽhIÂ1ó3?ú•‚+~€áï€d¼s°=z @KŽy>rs˜y€Õø©bå™H*:sˆ‡–(30Ê&ÐúyÖ9eˆιÈQDs‘ƒ²ÔÄ9£Ò7”AÄžžQéI+Ò@½t>¥Ï)Mª’ζÚ&HšÔ¡9!"li¥åÚ‡kˆ´ål¨vc! »ô™ ±¢g83âžö¼nų¢ †®@žâÌcˆñqCË`3Ĉ9qx@Ë`iˆf(Í4€ó`¦Ÿ¬TÔ‡
-g€M>kΩj-k€MœdY“½´¬ +ÈcX]>±rz‹€5D'V
—XŒÒ¸°DôÖ!‰kvKÄgиš…X!•kæø—°MäšÕ)¹/T®9½3eû‰Ê5c`OJš#sÍ6Ähi/t®™†1±ŒÁ5Ï#îí2¸fbÔ,%=pÍ`sM®ôT9×ÄÚÁÈdr‰<\)´ášRY©Ã\®éÀx™dl.FÚÏ$ŽËšk¢ÉóÄ×þ9椰áòoŠü,M+.ß`ɧv\~UÑ&Yؒ˧ƒ¶Ê¶åòf—ŒoÍEΡö41qÏåcÚb™®î†Ë½,ÚŸ›pÂÕ
œéöÔ1GNÀY™8樼A:©Ôï˜gB©œÇ ÜÏ™.H,8ޏÃtºc
wàÊêd†kÍÁ…Tú‰:,c=càÔ4Æ €?R§é°ŒÖÛNÓaÓ™_‚& :C¢Åqí±`»0ºk…äªé0‘qƒph­ ±÷UKó„ªY.´v†èuâ,øV­!zÕzìÓÝ ¹ð†èQ:j ÖÖãrfØ ¬OKüñÍPË%¢¹-±±’.h­
Ñ“&æV>¬­'BõÊXZ?Þ¹±´°öõ^†˜È,e \<1÷3–½í#×½{&ܸ¥rU¤ÍJÉ\"š LdöܹK0;¸)82i\o\´;¼•Ÿ'–‘P¬.t¬Â^¿¹1p1_uFÃÒÇàd}¡ãNSbé¥
\EiW°/)áøf08Ô&[õ cœFwžÿf<[l2êR6WqÀúßtŽ*OôÛø\+Š¿S;‹añcq€‰‹ÙaQt_zî¬ñ¹‘‘«ˆ¸ÿ¥ó/9k·6\"â—{”56¼OßYqYtØqœ=šÌñ…Ie˜>˜¹l:ìŒöªÿì§Œý¹K.ê4Li¯ƒ~/ÛÌæqµ¶\Mä¦ÜÝo·Û/¯oåe»}È,?mcÍå¢ÃœSþ#†KȵqÀe'‰³tŽ+¼Û9á
@@ -1109,196 +1104,196 @@ xref
0000002259 00000 n
0000002342 00000 n
0000002419 00000 n
0000002180 00000 n
0000002259 00000 n
0000002342 00000 n
0000002419 00000 n
0000002501 00000 n
0000002586 00000 n
0000002645 00000 n
0000002697 00000 n
0000002782 00000 n
0000002834 00000 n
0000002918 00000 n
0000002949 00000 n
0000003053 00000 n
0000003157 00000 n
0000003261 00000 n
0000003365 00000 n
0000003469 00000 n
0000003521 00000 n
0000003626 00000 n
0000003730 00000 n
0000003761 00000 n
0000003812 00000 n
0000003897 00000 n
0000003921 00000 n
0000004026 00000 n
0000004130 00000 n
0000004161 00000 n
0000004217 00000 n
0000004302 00000 n
0000004352 00000 n
0000004437 00000 n
0000004468 00000 n
0000004521 00000 n
0000004606 00000 n
0000004662 00000 n
0000004747 00000 n
0000004806 00000 n
0000004890 00000 n
0000004928 00000 n
0000004980 00000 n
0000005065 00000 n
0000005089 00000 n
0000005193 00000 n
0000005298 00000 n
0000005403 00000 n
0000005508 00000 n
0000005613 00000 n
0000005718 00000 n
0000005822 00000 n
0000005927 00000 n
0000006032 00000 n
0000006137 00000 n
0000006242 00000 n
0000006347 00000 n
0000006452 00000 n
0000006557 00000 n
0000006662 00000 n
0000006766 00000 n
0000006871 00000 n
0000006976 00000 n
0000007081 00000 n
0000007186 00000 n
0000007291 00000 n
0000007396 00000 n
0000007501 00000 n
0000007605 00000 n
0000007710 00000 n
0000007815 00000 n
0000007920 00000 n
0000008025 00000 n
0000008130 00000 n
0000008235 00000 n
0000008340 00000 n
0000008445 00000 n
0000008550 00000 n
0000008655 00000 n
0000008760 00000 n
0000008865 00000 n
0000008970 00000 n
0000009075 00000 n
0000009180 00000 n
0000009285 00000 n
0000009390 00000 n
0000009494 00000 n
0000009597 00000 n
0000009700 00000 n
0000010025 00000 n
0000010130 00000 n
0000010235 00000 n
0000010340 00000 n
0000010444 00000 n
0000010549 00000 n
0000010654 00000 n
0000010760 00000 n
0000010865 00000 n
0000010970 00000 n
0000011075 00000 n
0000011180 00000 n
0000011285 00000 n
0000011390 00000 n
0000011495 00000 n
0000011600 00000 n
0000011705 00000 n
0000011810 00000 n
0000011916 00000 n
0000012022 00000 n
0000012128 00000 n
0000012234 00000 n
0000012339 00000 n
0000012444 00000 n
0000012640 00000 n
0000012674 00000 n
0000012708 00000 n
0000013674 00000 n
0000013723 00000 n
0000013772 00000 n
0000013821 00000 n
0000013870 00000 n
0000013919 00000 n
0000013968 00000 n
0000014017 00000 n
0000014066 00000 n
0000014115 00000 n
0000014164 00000 n
0000014213 00000 n
0000014262 00000 n
0000014311 00000 n
0000014360 00000 n
0000014409 00000 n
0000014458 00000 n
0000014507 00000 n
0000014556 00000 n
0000014605 00000 n
0000014654 00000 n
0000014703 00000 n
0000014752 00000 n
0000014801 00000 n
0000014850 00000 n
0000014899 00000 n
0000014948 00000 n
0000014997 00000 n
0000015046 00000 n
0000015095 00000 n
0000015144 00000 n
0000015193 00000 n
0000015242 00000 n
0000015291 00000 n
0000015340 00000 n
0000015389 00000 n
0000015438 00000 n
0000015487 00000 n
0000015536 00000 n
0000015585 00000 n
0000015634 00000 n
0000015683 00000 n
0000015732 00000 n
0000015781 00000 n
0000015830 00000 n
0000015879 00000 n
0000015928 00000 n
0000015977 00000 n
0000016026 00000 n
0000016075 00000 n
0000016124 00000 n
0000016173 00000 n
0000016222 00000 n
0000016271 00000 n
0000016320 00000 n
0000016369 00000 n
0000016418 00000 n
0000016467 00000 n
0000016516 00000 n
0000016565 00000 n
0000016614 00000 n
0000016663 00000 n
0000016712 00000 n
0000016761 00000 n
0000016810 00000 n
0000016859 00000 n
0000016908 00000 n
0000016957 00000 n
0000017006 00000 n
0000017411 00000 n
0000017565 00000 n
0000023915 00000 n
0000023937 00000 n
0000024032 00000 n
0000024134 00000 n
0000002501 00000 n
0000002586 00000 n
0000002645 00000 n
0000002697 00000 n
0000002782 00000 n
0000002834 00000 n
0000002918 00000 n
0000002949 00000 n
0000003053 00000 n
0000003157 00000 n
0000003261 00000 n
0000003365 00000 n
0000003469 00000 n
0000003521 00000 n
0000003626 00000 n
0000003730 00000 n
0000003761 00000 n
0000003812 00000 n
0000003897 00000 n
0000003921 00000 n
0000004026 00000 n
0000004130 00000 n
0000004161 00000 n
0000004217 00000 n
0000004302 00000 n
0000004352 00000 n
0000004437 00000 n
0000004468 00000 n
0000004521 00000 n
0000004606 00000 n
0000004662 00000 n
0000004747 00000 n
0000004806 00000 n
0000004890 00000 n
0000004928 00000 n
0000004980 00000 n
0000005065 00000 n
0000005089 00000 n
0000005193 00000 n
0000005298 00000 n
0000005403 00000 n
0000005508 00000 n
0000005613 00000 n
0000005718 00000 n
0000005822 00000 n
0000005927 00000 n
0000006032 00000 n
0000006137 00000 n
0000006242 00000 n
0000006347 00000 n
0000006452 00000 n
0000006557 00000 n
0000006662 00000 n
0000006766 00000 n
0000006871 00000 n
0000006976 00000 n
0000007081 00000 n
0000007186 00000 n
0000007291 00000 n
0000007396 00000 n
0000007501 00000 n
0000007605 00000 n
0000007710 00000 n
0000007815 00000 n
0000007920 00000 n
0000008025 00000 n
0000008130 00000 n
0000008235 00000 n
0000008340 00000 n
0000008445 00000 n
0000008550 00000 n
0000008655 00000 n
0000008760 00000 n
0000008865 00000 n
0000008970 00000 n
0000009075 00000 n
0000009180 00000 n
0000009285 00000 n
0000009390 00000 n
0000009494 00000 n
0000009597 00000 n
0000009700 00000 n
0000010025 00000 n
0000010130 00000 n
0000010235 00000 n
0000010340 00000 n
0000010444 00000 n
0000010549 00000 n
0000010654 00000 n
0000010760 00000 n
0000010865 00000 n
0000010970 00000 n
0000011075 00000 n
0000011180 00000 n
0000011285 00000 n
0000011390 00000 n
0000011495 00000 n
0000011600 00000 n
0000011705 00000 n
0000011810 00000 n
0000011916 00000 n
0000012022 00000 n
0000012128 00000 n
0000012234 00000 n
0000012339 00000 n
0000012444 00000 n
0000012640 00000 n
0000012674 00000 n
0000012708 00000 n
0000013674 00000 n
0000013723 00000 n
0000013772 00000 n
0000013821 00000 n
0000013870 00000 n
0000013919 00000 n
0000013968 00000 n
0000014017 00000 n
0000014066 00000 n
0000014115 00000 n
0000014164 00000 n
0000014213 00000 n
0000014262 00000 n
0000014311 00000 n
0000014360 00000 n
0000014409 00000 n
0000014458 00000 n
0000014507 00000 n
0000014556 00000 n
0000014605 00000 n
0000014654 00000 n
0000014703 00000 n
0000014752 00000 n
0000014801 00000 n
0000014850 00000 n
0000014899 00000 n
0000014948 00000 n
0000014997 00000 n
0000015046 00000 n
0000015095 00000 n
0000015144 00000 n
0000015193 00000 n
0000015242 00000 n
0000015291 00000 n
0000015340 00000 n
0000015389 00000 n
0000015438 00000 n
0000015487 00000 n
0000015536 00000 n
0000015585 00000 n
0000015634 00000 n
0000015683 00000 n
0000015732 00000 n
0000015781 00000 n
0000015830 00000 n
0000015879 00000 n
0000015928 00000 n
0000015977 00000 n
0000016026 00000 n
0000016075 00000 n
0000016124 00000 n
0000016173 00000 n
0000016222 00000 n
0000016271 00000 n
0000016320 00000 n
0000016369 00000 n
0000016418 00000 n
0000016467 00000 n
0000016516 00000 n
0000016565 00000 n
0000016614 00000 n
0000016663 00000 n
0000016712 00000 n
0000016761 00000 n
0000016810 00000 n
0000016859 00000 n
0000016908 00000 n
0000016957 00000 n
0000017006 00000 n
0000017411 00000 n
0000017565 00000 n
0000023915 00000 n
0000023937 00000 n
0000024032 00000 n
0000024134 00000 n
0000024154 00000 n
0000024301 00000 n
0000025205 00000 n
0000025226 00000 n
0000025420 00000 n
0000024301 00000 n
0000026543 00000 n
0000026565 00000 n
0000025228 00000 n
0000026707 00000 n
0000027133 00000 n
+2 -2
Ver Arquivo
@@ -2,7 +2,7 @@
<HEAD>
<META NAME="Description" CONTENT="Common UNIX Printing System Software Users Manual">
<META NAME="COPYRIGHT" CONTENT="Copyright 1997-2000, All Rights Reserved">
<META NAME="DOCNUMBER" CONTENT="CUPS-SUM-1.1.3">
<META NAME="DOCNUMBER" CONTENT="CUPS-SUM-1.1.1">
<META NAME="Author" CONTENT="Easy Software Products">
<TITLE>CUPS Software Users Manual</TITLE>
</HEAD>
@@ -11,7 +11,7 @@
<H1 ALIGN="RIGHT">Preface</H1>
<P>This software users manual describes how to use the Common UNIX Printing
System<SUP>TM</SUP> ("CUPS<SUP>TM</SUP>") Version 1.1.3.
System<SUP>TM</SUP> ("CUPS<SUP>TM</SUP>") Version 1.1.1.
<EMBED SRC="system-overview.shtml">
+1 -1
Ver Arquivo
@@ -110,7 +110,7 @@ following sections:</P>
<UL>
<LI>CUPS-CMP-1.1: CUPS Configuration Management Plan </LI>
<LI>CUPS-IDD-1.1: CUPS System Interface Design Description </LI>
<LI>CUPS-IPP-1.1: CUPS Implementation of IPP </LI>
<LI>CUPS-IPP-1.1: CUPS Implmentation of IPP </LI>
<LI>CUPS-SAM-1.1.x: CUPS Software Administrators Manual </LI>
<LI>CUPS-SDD-1.1: CUPS Software Design Description </LI>
<LI>CUPS-SPM-1.1.x: CUPS Software Programming Manual </LI>
+68 -66
Ver Arquivo
@@ -1,6 +1,6 @@
%PDF-1.2
%âãÏÓ
1 0 obj<</Producer(htmldoc 1.8.8 Copyright 1997-2000 Easy Software Products, All Rights Reserved.)/CreationDate(D:20000824182343Z)/Title( CUPS Software Version Description)/Author(Easy Software Products)>>endobj
1 0 obj<</Producer(htmldoc 1.8.8 Copyright 1997-2000 Easy Software Products, All Rights Reserved.)/CreationDate(D:20000731155427Z)/Title( CUPS Software Version Description)/Author(Easy Software Products)>>endobj
2 0 obj<</Type/Encoding/Differences[ 32/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle/parenleft/parenright/asterisk/plus/comma/minus/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/grave/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde 128/Euro 130/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE 145/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe 159/Ydieresis/space/exclamdown/cent/sterling/currency/yen/brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]>>endobj
3 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier/Encoding 2 0 R>>endobj
4 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier-Bold/Encoding 2 0 R>>endobj
@@ -229,12 +229,14 @@ endobj
110 0 obj<</Length 111 0 R/Filter/FlateDecode>>stream
xÚ+ä2T0BCc3JÎår
ár
á
äHendstream
endobj
á
äHendstream
endobj
111 0 obj
31
endobj
112 0 obj<</Type/Page/Parent 105 0 R/Contents 113 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F4 5 0 R/F8 8 0 R/F9 9 0 R/Fc 10 0 R>>>>/Annots 20 0 R>>endobj
endobj
113 0 obj<</Length 114 0 R/Filter/FlateDecode>>stream
xÚµV]s£6}ϯ¸³OÉLMƒ?ú–mêÎn–~‘AØly%ˆÇýõ=’°!NâÍL·ãÆBGºçÜ{tÅ÷3\ü<û4QRž]ÍÏ~ý}J¾Kó 3£ñ„æé¹Gq"6übþÍÌzc;;Žoæf)¯ê<ËV碲Ѐ<¯…úcg¤¡óu®H‰¬Þ2Éé‰K4¥\%2ßÔæ¿Hš{ÑFЧ3$yÁ™â”W™¥ÙŸðê5§kQ–>ÜÍþ¦Hæ P­tp„ô†–]¼S5/iqþáú!Š?,.èk¼—¢|'°¢|j—~ϧœo5öãüÌu\¤M?<ý¸¿¥`ä9
ßq©¤`¢#ÛQA±Mj—‹0êý5™N#£5[ï¬ *ØŽK£TË[øáh°DRB-$3e*‡f5­™¢%ç:&¥åŽL2ž–+:ÿÈÔîM9PèO b|'lZË+Ú;@Iï°´U®‡SÇØ(Þ—="mZ=çæî¹Q-tbJQsäEÕ¬J™L»¼(Q4°¢°ÕâU*$2Y¥Ô(TØ¡g)>r…6O[Þ¯fÍ0ÚŽX
/E^iÏÕ\f,áÊi7ðGÖfsRƇ3«x}0¡YDÚx³(Ò¾chòˆÃVl´Ñ7±´ü¿7¼ADšý 4ޏ›°Æ
@@ -478,67 +480,67 @@ xref
0000006419 00000 n
0000006524 00000 n
0000006629 00000 n
0000007259 00000 n
0000007364 00000 n
0000007469 00000 n
0000007573 00000 n
0000007678 00000 n
0000007783 00000 n
0000007887 00000 n
0000007992 00000 n
0000008097 00000 n
0000008310 00000 n
0000008342 00000 n
0000008374 00000 n
0000008762 00000 n
0000008810 00000 n
0000008858 00000 n
0000008906 00000 n
0000008954 00000 n
0000009002 00000 n
0000009050 00000 n
0000009098 00000 n
0000009146 00000 n
0000009194 00000 n
0000009242 00000 n
0000009290 00000 n
0000009338 00000 n
0000009386 00000 n
0000009434 00000 n
0000009482 00000 n
0000009530 00000 n
0000009578 00000 n
0000009626 00000 n
0000009674 00000 n
0000009722 00000 n
0000009770 00000 n
0000009818 00000 n
0000009866 00000 n
0000009914 00000 n
0000009963 00000 n
0000010012 00000 n
0000010061 00000 n
0000010110 00000 n
0000010159 00000 n
0000010340 00000 n
0000010492 00000 n
0000016844 00000 n
0000016866 00000 n
0000016961 00000 n
0000017063 00000 n
0000017083 00000 n
0000017238 00000 n
0000018412 00000 n
0000018434 00000 n
0000018547 00000 n
0000018734 00000 n
0000018755 00000 n
0000018910 00000 n
0000020309 00000 n
0000020331 00000 n
0000020444 00000 n
0000006734 00000 n
0000006839 00000 n
0000006944 00000 n
0000007049 00000 n
0000007154 00000 n
0000007259 00000 n
0000007364 00000 n
0000007469 00000 n
0000007573 00000 n
0000007678 00000 n
0000007783 00000 n
0000007887 00000 n
0000007992 00000 n
0000008097 00000 n
0000008310 00000 n
0000008342 00000 n
0000008374 00000 n
0000008762 00000 n
0000008810 00000 n
0000008858 00000 n
0000008906 00000 n
0000008954 00000 n
0000009002 00000 n
0000009050 00000 n
0000009098 00000 n
0000009146 00000 n
0000009194 00000 n
0000009242 00000 n
0000009290 00000 n
0000009338 00000 n
0000009386 00000 n
0000009434 00000 n
0000009482 00000 n
0000009530 00000 n
0000009578 00000 n
0000009626 00000 n
0000009674 00000 n
0000009722 00000 n
0000009770 00000 n
0000009818 00000 n
0000009866 00000 n
0000009914 00000 n
0000009963 00000 n
0000010012 00000 n
0000010061 00000 n
0000010110 00000 n
0000010159 00000 n
0000010340 00000 n
0000010492 00000 n
0000016844 00000 n
0000016866 00000 n
0000016961 00000 n
0000017063 00000 n
0000017083 00000 n
0000017238 00000 n
0000018412 00000 n
0000018434 00000 n
0000018547 00000 n
0000018734 00000 n
0000018755 00000 n
0000020656 00000 n
0000018910 00000 n
0000020311 00000 n
0000021776 00000 n
0000020333 00000 n
0000020446 00000 n
+3 -3
Ver Arquivo
@@ -51,7 +51,7 @@ all: $(TARGETS)
#
clean:
$(RM) $(OBJS) $(TARGETS) $(LIBCUPSIMAGE) `basename $(LIBCUPSIMAGE) .2`
$(RM) $(OBJS) $(TARGETS) $(LIBCUPSIMAGE)
#
@@ -71,8 +71,8 @@ install:
$(CHMOD) ugo+rx $(LIBDIR)
$(INSTALL_LIB) $(LIBCUPSIMAGE) $(LIBDIR)
-if test $(LIBCUPSIMAGE) != "libcupsimage.a" -a $(LIBCUPSIMAGE) != "libcupsimage.la"; then \
$(RM) `basename $(LIBDIR)/$(LIBCUPSIMAGE) .2`; \
$(LN) $(LIBCUPSIMAGE) `basename $(LIBDIR)/$(LIBCUPSIMAGE) .2`; \
$(RM) `basename $(LIBCUPSIMAGE) .2`; \
$(LN) $(LIBCUPSIMAGE) `basename $(LIBCUPSIMAGE) .2`; \
fi
+4 -4
Ver Arquivo
@@ -153,13 +153,13 @@ SetCommonOptions(int num_options, /* I - Number of options */
PageBottom = (float)atof(val);
break;
case 1 :
PageLeft = (float)atof(val);
PageRight = PageWidth - (float)atof(val);
break;
case 2 :
PageTop = PageLength - (float)atof(val);
break;
case 3 :
PageRight = PageWidth - (float)atof(val);
PageLeft = (float)atof(val);
break;
}
}
@@ -172,13 +172,13 @@ SetCommonOptions(int num_options, /* I - Number of options */
PageTop = PageLength - (float)atof(val);
break;
case 1 :
PageRight = PageWidth - (float)atof(val);
PageLeft = (float)atof(val);
break;
case 2 :
PageBottom = (float)atof(val);
break;
case 3 :
PageLeft = (float)atof(val);
PageRight = PageWidth - (float)atof(val);
break;
}
}
-6
Ver Arquivo
@@ -237,7 +237,6 @@ PC_pen_color(int num_params, /* I - Number of parameters */
{ 0.0, 1.0, 1.0 } /* Cyan */
};
if (num_params == 0)
{
for (i = 0; i <= PenCount; i ++)
@@ -277,11 +276,6 @@ PC_pen_color(int num_params, /* I - Number of parameters */
(ColorRange[1][1] - ColorRange[1][0]);
Pens[i].rgb[2] = (params[3].value.number - ColorRange[2][0]) /
(ColorRange[2][1] - ColorRange[2][0]);
fprintf(stderr, "DEBUG: Pen %d %.0f %.0f %.0f = %.3f %.3f %.3f\n",
i, params[1].value.number, params[2].value.number,
params[3].value.number, Pens[i].rgb[0], Pens[i].rgb[1],
Pens[i].rgb[2]);
}
if (PageDirty && i == PenNumber)
+1 -1
Ver Arquivo
@@ -319,7 +319,7 @@ LB_label(int num_params, /* I - Number of parameters */
Pens[CharPen].rgb[CharPen], Pens[CharPen].rgb[2],
Pens[CharPen].width * PenScaling);
Outputf("%.3f %.3f %.3f %.2f SP\n", Pens[PenNumber].rgb[0],
Pens[PenNumber].rgb[1], Pens[PenNumber].rgb[2],
Pens[PenNumber].rgb[PenNumber], Pens[PenNumber].rgb[2],
Pens[PenNumber].width * PenScaling);
}
+7 -4
Ver Arquivo
@@ -43,8 +43,6 @@
#include "hpgltops.h"
#define max(a,b) ((a) < (b) ? (b) : (a))
/*
* 'update_transform()' - Update the page transformation matrix as needed.
@@ -157,7 +155,12 @@ update_transform(void)
scaling = page_width / height;
if (FitPlot)
scaling *= max(page_width, page_height) / max(PlotSize[1], PlotSize[0]);
{
if (Rotation == 0 || Rotation == 180)
scaling *= page_width / PlotSize[1];
else
scaling *= page_width / PlotSize[0];
}
/*
* Offset for the current P1 location...
@@ -537,7 +540,7 @@ PS_plot_size(int num_params, /* I - Number of parameters */
* sends a two-argument PS command as documented in the
* HP-GL/2 Reference Manual from HP. Instead, applications
* send the width before the length, which causes all sorts
* of problems when scaling.
* of problems.
*
* Rather than fight it, we now look for them as width,length
* instead of length,width.
+1 -1
Ver Arquivo
@@ -387,7 +387,7 @@ PE_polyline_encoded(int num_params, /* I - Number of parameters */
PenNumber = (int)decode_number(&s, base_bits, 1.0);
if (PageDirty)
printf("%.3f %.3f %.3f %.2f SP\n", Pens[PenNumber].rgb[0],
Pens[PenNumber].rgb[1], Pens[PenNumber].rgb[2],
Pens[PenNumber].rgb[PenNumber], Pens[PenNumber].rgb[2],
Pens[PenNumber].width * PenScaling);
#ifdef DEBUG
+1 -1
Ver Arquivo
@@ -334,7 +334,7 @@ ImageRGBToCMYK(const ib_t *in, /* I - Input pixels */
k = min(c, min(m, y));
if ((km = max(c, max(m, y))) > k)
k = k * k * k / km / km;
k = k * k / km;
c -= k;
m -= k;
+52 -82
Ver Arquivo
@@ -69,7 +69,6 @@ ImageReadTIFF(image_t *img, /* IO - Image */
num_colors, /* Number of colors */
bpp, /* Bytes per pixel */
x, y, /* Current x & y */
row, /* Current row in image */
xstart, ystart, /* Starting x & y */
xdir, ydir, /* X & y direction */
xcount, ycount, /* X & Y counters */
@@ -178,35 +177,6 @@ ImageReadTIFF(image_t *img, /* IO - Image */
* Set the X & Y start and direction according to the image orientation...
*/
switch (orientation)
{
case ORIENTATION_TOPRIGHT :
fputs("DEBUG: orientation = top-right\n", stderr);
break;
case ORIENTATION_RIGHTTOP :
fputs("DEBUG: orientation = right-top\n", stderr);
break;
default :
case ORIENTATION_TOPLEFT :
fputs("DEBUG: orientation = top-left\n", stderr);
break;
case ORIENTATION_LEFTTOP :
fputs("DEBUG: orientation = left-top\n", stderr);
break;
case ORIENTATION_BOTLEFT :
fputs("DEBUG: orientation = bottom-left\n", stderr);
break;
case ORIENTATION_LEFTBOT :
fputs("DEBUG: orientation = left-bottom\n", stderr);
break;
case ORIENTATION_BOTRIGHT :
fputs("DEBUG: orientation = bottom-right\n", stderr);
break;
case ORIENTATION_RIGHTBOT :
fputs("DEBUG: orientation = right-bottom\n", stderr);
break;
}
switch (orientation)
{
case ORIENTATION_TOPRIGHT :
@@ -302,13 +272,13 @@ ImageReadTIFF(image_t *img, /* IO - Image */
* Row major order...
*/
for (y = ystart, ycount = img->ysize, row = 0;
for (y = ystart, ycount = img->ysize;
ycount > 0;
ycount --, y += ydir, row ++)
ycount --, y += ydir)
{
if (bits == 1)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
for (xcount = img->xsize, scanptr = scanline, p = in + xstart, bit = 128;
xcount > 0;
xcount --, p += pstep)
@@ -329,7 +299,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 2)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
for (xcount = img->xsize, scanptr = scanline, p = in + xstart, bit = 0xc0;
xcount > 0;
xcount --, p += pstep)
@@ -350,7 +320,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 4)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
for (xcount = img->xsize, scanptr = scanline, p = in + xstart, bit = 0xf0;
xcount > 0;
xcount --, p += pstep)
@@ -370,7 +340,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (xdir < 0 || zero || alpha)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
if (alpha)
{
@@ -410,7 +380,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
}
else
TIFFReadScanline(tif, in, row, 0);
TIFFReadScanline(tif, in, y, 0);
if (img->colorspace == IMAGE_WHITE)
{
@@ -450,13 +420,13 @@ ImageReadTIFF(image_t *img, /* IO - Image */
* Column major order...
*/
for (x = xstart, xcount = img->xsize, row = 0;
for (x = xstart, xcount = img->xsize;
xcount > 0;
xcount --, x += xdir, row ++)
xcount --, x += xdir)
{
if (bits == 1)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
for (ycount = img->ysize, scanptr = scanline, p = in + ystart, bit = 128;
ycount > 0;
ycount --, p += ydir)
@@ -477,7 +447,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 2)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
for (ycount = img->ysize, scanptr = scanline, p = in + ystart, bit = 0xc0;
ycount > 0;
ycount --, p += ydir)
@@ -499,7 +469,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 4)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
for (ycount = img->ysize, scanptr = scanline, p = in + ystart, bit = 0xf0;
ycount > 0;
ycount --, p += ydir)
@@ -519,7 +489,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (ydir < 0 || zero || alpha)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
if (alpha)
{
@@ -559,7 +529,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
}
else
TIFFReadScanline(tif, in, row, 0);
TIFFReadScanline(tif, in, x, 0);
if (img->colorspace == IMAGE_WHITE)
{
@@ -617,13 +587,13 @@ ImageReadTIFF(image_t *img, /* IO - Image */
* Row major order...
*/
for (y = ystart, ycount = img->ysize, row = 0;
for (y = ystart, ycount = img->ysize;
ycount > 0;
ycount --, y += ydir, row ++)
ycount --, y += ydir)
{
if (bits == 1)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
for (xcount = img->xsize, scanptr = scanline,
p = in + xstart * 3, bit = 128;
xcount > 0;
@@ -653,7 +623,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 2)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
for (xcount = img->xsize, scanptr = scanline,
p = in + xstart * 3, bit = 0xc0;
xcount > 0;
@@ -678,7 +648,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 4)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
for (xcount = img->xsize, scanptr = scanline,
p = in + 3 * xstart, bit = 0xf0;
xcount > 0;
@@ -704,7 +674,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
for (xcount = img->xsize, p = in + 3 * xstart, scanptr = scanline;
xcount > 0;
@@ -754,13 +724,13 @@ ImageReadTIFF(image_t *img, /* IO - Image */
* Column major order...
*/
for (x = xstart, xcount = img->xsize, row = 0;
for (x = xstart, xcount = img->xsize;
xcount > 0;
xcount --, x += xdir, row ++)
xcount --, x += xdir)
{
if (bits == 1)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
for (ycount = img->ysize, scanptr = scanline,
p = in + 3 * ystart, bit = 128;
ycount > 0;
@@ -790,7 +760,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 2)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
for (ycount = img->ysize, scanptr = scanline,
p = in + 3 * ystart, bit = 0xc0;
ycount > 0;
@@ -815,7 +785,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 4)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
for (ycount = img->ysize, scanptr = scanline,
p = in + 3 * ystart, bit = 0xf0;
ycount > 0;
@@ -841,7 +811,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
for (ycount = img->ysize, p = in + 3 * ystart, scanptr = scanline;
ycount > 0;
@@ -894,13 +864,13 @@ ImageReadTIFF(image_t *img, /* IO - Image */
* Row major order...
*/
for (y = ystart, ycount = img->ysize, row = 0;
for (y = ystart, ycount = img->ysize;
ycount > 0;
ycount --, y += ydir, row ++)
ycount --, y += ydir)
{
if (bits == 1)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
for (xcount = img->xsize, scanptr = scanline, p = in + xstart * 3, bit = 0xf0;
xcount > 0;
xcount --, p += pstep)
@@ -931,7 +901,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 2)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
for (xcount = img->xsize, scanptr = scanline, p = in + xstart * 3;
xcount > 0;
xcount --, p += pstep, scanptr ++)
@@ -946,7 +916,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 4)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
for (xcount = img->xsize, scanptr = scanline, p = in + xstart * 3;
xcount > 0;
xcount -= 2, p += 2 * pstep, scanptr += 3)
@@ -970,7 +940,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (xdir < 0 || alpha)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
if (alpha)
{
@@ -996,7 +966,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
}
else
TIFFReadScanline(tif, in, row, 0);
TIFFReadScanline(tif, in, y, 0);
if ((saturation != 100 || hue != 0) && bpp > 1)
ImageRGBAdjust(in, img->xsize, saturation, hue);
@@ -1039,13 +1009,13 @@ ImageReadTIFF(image_t *img, /* IO - Image */
* Column major order...
*/
for (x = xstart, xcount = img->xsize, row = 0;
for (x = xstart, xcount = img->xsize;
xcount > 0;
xcount --, x += xdir, row ++)
xcount --, x += xdir)
{
if (bits == 1)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
for (ycount = img->ysize, scanptr = scanline, p = in + ystart * 3, bit = 0xf0;
ycount > 0;
ycount --, p += pstep)
@@ -1076,7 +1046,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 2)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
for (ycount = img->ysize, scanptr = scanline, p = in + ystart * 3;
ycount > 0;
ycount --, p += pstep, scanptr ++)
@@ -1091,7 +1061,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 4)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
for (ycount = img->ysize, scanptr = scanline, p = in + ystart * 3;
ycount > 0;
ycount -= 2, p += 2 * pstep, scanptr += 3)
@@ -1115,7 +1085,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (ydir < 0 || alpha)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
if (alpha)
{
@@ -1141,7 +1111,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
}
else
TIFFReadScanline(tif, in, row, 0);
TIFFReadScanline(tif, in, x, 0);
if ((saturation != 100 || hue != 0) && bpp > 1)
ImageRGBAdjust(in, img->ysize, saturation, hue);
@@ -1191,13 +1161,13 @@ ImageReadTIFF(image_t *img, /* IO - Image */
* Row major order...
*/
for (y = ystart, ycount = img->ysize, row = 0;
for (y = ystart, ycount = img->ysize;
ycount > 0;
ycount --, y += ydir, row ++)
ycount --, y += ydir)
{
if (bits == 1)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
for (xcount = img->xsize, scanptr = scanline, p = in + xstart * 3, bit = 0xf0;
xcount > 0;
xcount --, p += pstep)
@@ -1237,7 +1207,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 2)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
for (xcount = img->xsize, scanptr = scanline, p = in + xstart * 3;
xcount > 0;
xcount --, p += pstep, scanptr ++)
@@ -1283,7 +1253,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 4)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
for (xcount = img->xsize, scanptr = scanline, p = in + xstart * 3;
xcount > 0;
xcount --, p += pstep, scanptr += 2)
@@ -1329,7 +1299,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, y, 0);
for (xcount = img->xsize, p = in + xstart * 3, scanptr = scanline;
xcount > 0;
@@ -1412,13 +1382,13 @@ ImageReadTIFF(image_t *img, /* IO - Image */
* Column major order...
*/
for (x = xstart, xcount = img->xsize, row = 0;
for (x = xstart, xcount = img->xsize;
xcount > 0;
xcount --, x += xdir, row ++)
xcount --, x += xdir)
{
if (bits == 1)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
for (ycount = img->ysize, scanptr = scanline, p = in + xstart * 3, bit = 0xf0;
ycount > 0;
ycount --, p += pstep)
@@ -1458,7 +1428,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 2)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
for (ycount = img->ysize, scanptr = scanline, p = in + xstart * 3;
ycount > 0;
ycount --, p += pstep, scanptr ++)
@@ -1504,7 +1474,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else if (bits == 4)
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
for (ycount = img->ysize, scanptr = scanline, p = in + xstart * 3;
ycount > 0;
ycount --, p += pstep, scanptr += 2)
@@ -1550,7 +1520,7 @@ ImageReadTIFF(image_t *img, /* IO - Image */
}
else
{
TIFFReadScanline(tif, scanline, row, 0);
TIFFReadScanline(tif, scanline, x, 0);
for (ycount = img->ysize, p = in + xstart * 3, scanptr = scanline;
ycount > 0;
+1 -8
Ver Arquivo
@@ -360,7 +360,7 @@ main(int argc, /* I - Number of command-line arguments */
header.cupsColorOrder = CUPS_ORDER_CHUNKED;
header.cupsColorSpace = CUPS_CSPACE_K;
if (ppd && ppd->patches)
if (ppd->patches)
exec_code(&header, ppd->patches);
if ((count = ppdCollect(ppd, PPD_ORDER_DOCUMENT, &choices)) > 0)
@@ -746,9 +746,6 @@ main(int argc, /* I - Number of command-line arguments */
header.Margins[0] = PageLeft;
header.Margins[1] = PageBottom;
fprintf(stderr, "DEBUG: PageSize = [%d %d]\n", header.PageSize[0],
header.PageSize[1]);
switch (Orientation)
{
case 0 :
@@ -1330,10 +1327,6 @@ exec_code(cups_page_header_t *header, /* I - Page header */
else if (strcmp(name, "cupsMediaPosition") == 0 || /* Compatibility */
strcmp(name, "MediaPosition") == 0)
header->MediaPosition = atoi(value);
else if (strcmp(name, "MediaClass") == 0)
strncpy(header->MediaClass, value, sizeof(header->MediaClass) - 1);
else if (strcmp(name, "MediaColor") == 0)
strncpy(header->MediaColor, value, sizeof(header->MediaColor) - 1);
else if (strcmp(name, "MediaType") == 0)
strncpy(header->MediaType, value, sizeof(header->MediaType) - 1);
else if (strcmp(name, "OutputType") == 0)
+7
Ver Arquivo
@@ -403,7 +403,14 @@ main(int argc, /* I - Number of command-line arguments */
}
}
else if (strcmp(line, "%%Trailer") == 0 && level == 0)
{
/*
* Assume that a file with a %%Trailer will likely also have %%EOF...
*/
saweof = 1;
break;
}
else
{
if (!sloworder)
+14 -401
Ver Arquivo
@@ -52,15 +52,7 @@ int NumPages = 0; /* Number of pages in document */
int CharsPerInch = 10; /* Number of character columns per inch */
int LinesPerInch = 6; /* Number of lines per inch */
int UTF8 = 0; /* Use UTF-8 encoding? */
int NumKeywords = 0; /* Number of known keywords */
char **Keywords = NULL; /* List of known keywords */
/*
* Local globals...
*/
static char *code_keywords[] = /* List of known C/C++ keywords... */
char *Keywords[] = /* List of known keywords... */
{
"and",
"and_eq",
@@ -128,344 +120,6 @@ static char *code_keywords[] = /* List of known C/C++ keywords... */
"while",
"xor",
"xor_eq"
},
*sh_keywords[] = /* List of known Boure/Korn/zsh/bash keywords... */
{
"alias",
"bg",
"break",
"case",
"cd",
"command",
"continue",
"do",
"done",
"echo",
"elif",
"else",
"esac",
"eval",
"exec",
"exit",
"export",
"fc",
"fg",
"fi",
"for",
"function",
"getopts",
"if",
"in",
"jobs",
"kill",
"let",
"limit",
"newgrp",
"print",
"pwd",
"read",
"readonly",
"return",
"select",
"set",
"shift",
"test",
"then",
"time",
"times",
"trap",
"typeset",
"ulimit",
"umask",
"unalias",
"unlimit",
"unset",
"until",
"wait",
"whence"
"while",
},
*csh_keywords[] = /* List of known csh/tcsh keywords... */
{
"alias",
"aliases",
"bg",
"bindkey",
"break",
"breaksw",
"builtins",
"case",
"cd",
"chdir",
"complete",
"continue",
"default",
"dirs",
"echo",
"echotc",
"else",
"end",
"endif",
"eval",
"exec",
"exit",
"fg",
"foreach",
"glob",
"goto",
"history",
"if",
"jobs",
"kill",
"limit",
"login",
"logout",
"ls",
"nice",
"nohup",
"notify",
"onintr",
"popd",
"pushd",
"pwd",
"rehash",
"repeat",
"set",
"setenv",
"settc",
"shift",
"source",
"stop",
"suspend",
"switch",
"telltc",
"then",
"time",
"umask",
"unalias",
"unbindkey",
"unhash",
"unlimit",
"unset",
"unsetenv",
"wait",
"where",
"which",
"while"
},
*perl_keywords[] = /* List of known perl keywords... */
{
"abs",
"accept",
"alarm",
"and",
"atan2",
"bind",
"binmode",
"bless",
"caller",
"chdir",
"chmod",
"chomp",
"chop",
"chown",
"chr",
"chroot",
"closdir",
"close",
"connect",
"continue",
"cos",
"crypt",
"dbmclose",
"dbmopen",
"defined",
"delete",
"die",
"do",
"dump",
"each",
"else",
"elsif",
"endgrent",
"endhostent",
"endnetent",
"endprotoent",
"endpwent",
"endservent",
"eof",
"eval",
"exec",
"exists",
"exit",
"exp",
"fcntl",
"fileno",
"flock",
"for",
"foreach",
"fork",
"format",
"formline",
"getc",
"getgrent",
"getgrgid",
"getgrnam",
"gethostbyaddr",
"gethostbyname",
"gethostent",
"getlogin",
"getnetbyaddr",
"getnetbyname",
"getnetent",
"getpeername",
"getpgrp",
"getppid",
"getpriority",
"getprotobyname",
"getprotobynumber",
"getprotoent",
"getpwent",
"getpwnam",
"getpwuid",
"getservbyname",
"getservbyport",
"getservent",
"getsockname",
"getsockopt",
"glob",
"gmtime",
"goto",
"grep",
"hex",
"if",
"import",
"index",
"int",
"ioctl",
"join",
"keys",
"kill",
"last",
"lc",
"lcfirst",
"length",
"link",
"listen",
"local",
"localtime",
"log",
"lstat",
"map",
"mkdir",
"msgctl",
"msgget",
"msgrcv",
"msgsend",
"my",
"next",
"no",
"not",
"oct",
"open",
"opendir",
"or",
"ord",
"pack",
"package",
"pipe",
"pop",
"pos",
"print",
"printf",
"push",
"quotemeta",
"rand",
"read",
"readdir",
"readlink",
"recv",
"redo",
"ref",
"rename",
"require",
"reset",
"return",
"reverse",
"rewinddir",
"rindex",
"rmdir",
"scalar",
"seek",
"seekdir",
"select",
"semctl",
"semget",
"semop",
"send",
"setgrent",
"sethostent",
"setnetent",
"setpgrp",
"setpriority",
"setprotoent",
"setpwent",
"setservent",
"setsockopt",
"shift",
"shmctl",
"shmget",
"shmread",
"shmwrite",
"shutdown",
"sin",
"sleep",
"socket",
"socketpair",
"sort",
"splice",
"split",
"sprintf",
"sqrt",
"srand",
"stat",
"study",
"sub",
"substr",
"symlink",
"syscall",
"sysread",
"sysseek",
"system",
"syswrite",
"tell",
"telldir",
"tie",
"tied",
"time",
"times"
"times",
"truncate",
"uc",
"ucfirst",
"umask",
"undef",
"unless",
"unlink",
"unpack",
"unshift",
"untie",
"until",
"use",
"utime",
"values",
"vec",
"wait",
"waitpid",
"wantarray",
"warn",
"while",
"write"
};
@@ -541,43 +195,13 @@ TextMain(char *name, /* I - Name of filter */
if ((val = cupsGetOption("prettyprint", num_options, options)) != NULL)
{
PrettyPrint = 1;
PageLeft = 72.0f;
PageRight = PageWidth - 36.0f;
PageBottom = PageBottom > 36.0f ? PageBottom : 36.0f;
PageTop = PageLength - 36.0f;
CharsPerInch = 12;
LinesPerInch = 8;
if ((val = getenv("CONTENT_TYPE")) == NULL)
{
PrettyPrint = PRETTY_CODE;
NumKeywords = sizeof(code_keywords) / sizeof(code_keywords[0]);
Keywords = code_keywords;
}
else if (strcasecmp(val, "application/x-cshell") == 0)
{
PrettyPrint = PRETTY_SHELL;
NumKeywords = sizeof(csh_keywords) / sizeof(csh_keywords[0]);
Keywords = csh_keywords;
}
else if (strcasecmp(val, "application/x-perl") == 0)
{
PrettyPrint = PRETTY_PERL;
NumKeywords = sizeof(perl_keywords) / sizeof(perl_keywords[0]);
Keywords = perl_keywords;
}
else if (strcasecmp(val, "application/x-shell") == 0)
{
PrettyPrint = PRETTY_SHELL;
NumKeywords = sizeof(sh_keywords) / sizeof(sh_keywords[0]);
Keywords = sh_keywords;
}
else
{
PrettyPrint = PRETTY_CODE;
NumKeywords = sizeof(code_keywords) / sizeof(code_keywords[0]);
Keywords = code_keywords;
}
}
ppd = SetCommonOptions(num_options, options, 1);
@@ -646,8 +270,8 @@ TextMain(char *name, /* I - Name of filter */
*keyptr = '\0';
keyptr = keyword;
if (bsearch(&keyptr, Keywords, NumKeywords, sizeof(char *),
compare_keywords))
if (bsearch(&keyptr, Keywords, sizeof(Keywords) / sizeof(Keywords[0]),
sizeof(Keywords[0]), compare_keywords))
{
/*
* Put keywords in boldface...
@@ -692,8 +316,8 @@ TextMain(char *name, /* I - Name of filter */
*keyptr = '\0';
keyptr = keyword;
if (bsearch(&keyptr, Keywords, NumKeywords, sizeof(char *),
compare_keywords))
if (bsearch(&keyptr, Keywords, sizeof(Keywords) / sizeof(Keywords[0]),
sizeof(Keywords[0]), compare_keywords))
{
/*
* Put keywords in boldface...
@@ -746,8 +370,8 @@ TextMain(char *name, /* I - Name of filter */
*keyptr = '\0';
keyptr = keyword;
if (bsearch(&keyptr, Keywords, NumKeywords, sizeof(char *),
compare_keywords))
if (bsearch(&keyptr, Keywords, sizeof(Keywords) / sizeof(Keywords[0]),
sizeof(Keywords[0]), compare_keywords))
{
/*
* Put keywords in boldface...
@@ -856,8 +480,8 @@ TextMain(char *name, /* I - Name of filter */
keyptr = keyword;
if (!(attr & ATTR_ITALIC) &&
bsearch(&keyptr, Keywords, NumKeywords, sizeof(char *),
compare_keywords))
bsearch(&keyptr, Keywords, sizeof(Keywords) / sizeof(Keywords[0]),
sizeof(Keywords[0]), compare_keywords))
{
/*
* Put keywords in boldface...
@@ -893,8 +517,7 @@ TextMain(char *name, /* I - Name of filter */
cstring = -1;
attr |= ATTR_BLUE;
}
else if (ch == '*' && lastch == '/' && !cstring &&
PrettyPrint != PRETTY_SHELL)
else if (ch == '*' && lastch == '/' && !cstring)
{
/*
* Start a C-style comment...
@@ -903,8 +526,7 @@ TextMain(char *name, /* I - Name of filter */
ccomment = 1;
attr |= ATTR_ITALIC | ATTR_GREEN;
}
else if (ch == '/' && lastch == '/' && !cstring &&
PrettyPrint == PRETTY_CODE)
else if (ch == '/' && lastch == '/' && !cstring)
{
/*
* Start a C++-style comment...
@@ -912,16 +534,7 @@ TextMain(char *name, /* I - Name of filter */
attr |= ATTR_ITALIC | ATTR_GREEN;
}
else if (ch == '#' && !cstring && PrettyPrint != PRETTY_CODE)
{
/*
* Start a shell-style comment...
*/
attr |= ATTR_ITALIC | ATTR_GREEN;
}
else if (ch == '#' && column == 0 && !ccomment && !cstring &&
PrettyPrint == PRETTY_CODE)
else if (ch == '#' && column == 0 && !ccomment && !cstring)
{
/*
* Start a preprocessor command...
@@ -981,7 +594,7 @@ TextMain(char *name, /* I - Name of filter */
Page[line][column].attr |= ATTR_BOLD;
}
else if ((ch == '/' || ch == '*') && lastch == '/' &&
column < ColumnWidth && PrettyPrint != PRETTY_SHELL)
column < ColumnWidth)
{
/*
* Highlight first comment character...
+2 -9
Ver Arquivo
@@ -46,12 +46,6 @@
#define ATTR_GREEN 0x40
#define ATTR_BLUE 0x80
#define PRETTY_OFF 0
#define PRETTY_CODE 1
#define PRETTY_SHELL 2
#define PRETTY_PERL 3
#define PRETTY_HTML 4
/*
* Structures...
@@ -74,15 +68,14 @@ extern int WrapLines, /* Wrap text in lines */
PageColumns, /* Number of columns on a page */
ColumnGutter, /* Number of characters between text columns */
ColumnWidth, /* Width of each column */
PrettyPrint, /* Do pretty code formatting? */
PrettyPrint, /* Do pretty code formatting */
Copies; /* Number of copies to produce */
extern lchar_t **Page; /* Page characters */
extern int NumPages; /* Number of pages in document */
extern int CharsPerInch, /* Number of character columns per inch */
LinesPerInch, /* Number of lines per inch */
UTF8; /* Use UTF-8 encoding? */
extern int NumKeywords; /* Number of known keywords */
extern char **Keywords; /* List of known keywords... */
extern char *Keywords[]; /* List of known keywords... */
/*
+5 -5
Ver Arquivo
@@ -637,7 +637,7 @@ WriteProlog(char *title, /* I - Title of job */
*/
for (i = 0, num_fonts = 0; i < NumFonts; i ++)
for (j = PrettyPrint ? 2 : 1; j >= 0; j --)
for (j = 1 + PrettyPrint; j >= 0; j --)
{
for (k = 0; k < num_fonts; k ++)
if (strcmp(Fonts[i][j], fonts[k]) == 0)
@@ -717,13 +717,13 @@ WriteProlog(char *title, /* I - Title of job */
snprintf(filename, sizeof(filename), "%s/fonts/%s", datadir, fonts[i]);
if ((fp = fopen(filename, "rb")) != NULL)
{
while ((j = fread(line, 1, sizeof(line), fp)) > 0)
fwrite(line, 1, j, stdout);
while (fgets(line, sizeof(line), fp) != NULL)
fputs(line, stdout);
fclose(fp);
}
puts("\n%%EndResource");
puts("%%EndResource");
}
}
@@ -763,7 +763,7 @@ WriteProlog(char *title, /* I - Title of job */
puts("% Reencode fonts");
for (i = PrettyPrint ? 2 : 1; i >= 0; i --)
for (i = 1 + PrettyPrint; i >= 0; i --)
{
printf("/%s findfont\n", Fonts[0][i]);
puts("dup length 1 add dict begin\n"
-1
Ver Arquivo
@@ -52,7 +52,6 @@ all: $(CAT1) $(CAT5) $(CAT8)
#
clean:
$(RM) $(CAT1) $(CAT5) $(CAT8)
#
+5 -22
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: lpoptions.man 1337 2000-09-05 20:50:23Z mike $"
.\" "$Id: lpoptions.man 1231 2000-07-20 17:10:57Z mike $"
.\"
.\" lpoptions man page for the Common UNIX Printing System (CUPS).
.\"
@@ -21,7 +21,7 @@
.\" EMail: cups-info@cups.org
.\" WWW: http://www.cups.org
.\"
.TH lpoptions 1 "Common UNIX Printing System" "5 September 2000" "Easy Software Products"
.TH lpoptions 1 "Common UNIX Printing System" "10 May 2000" "Easy Software Products"
.SH NAME
lpoptions \- display or set printer options and defaults
.SH SYNOPSIS
@@ -39,21 +39,12 @@ lpoptions \- display or set printer options and defaults
.B lpoptions
[ -h
.I server
] [ -p
] -p
.I dest[/instance]
] -l
.br
.B lpoptions
[ -h
.I server
] [ -o
[ -o
.I option=value
] ... [ -o
.I option=value
] -p
.I dest[/instance]
] -r
.I option
]
.br
.B lpoptions
@@ -76,10 +67,6 @@ printer for the current user.
.br
Specifies the CUPS server to communicate with.
.TP 5
\-l
.br
Lists the printer specific options and their current settings.
.TP 5
\-o \fIoption=value\fR
.br
Specifies a new option for the named destination.
@@ -89,10 +76,6 @@ Specifies a new option for the named destination.
Sets the destination and instance, if specified, for any options that follow.
If the named instance does not exist then it is created.
.TP 5
\-r \fIoption\fR
.br
Removes the specified option for the named destination.
.TP 5
\-x \fIdest[/instance]\fR
.br
Removes the options for the named destination and instance, if specified.
@@ -112,5 +95,5 @@ http://localhost:631/documentation.html
.SH COPYRIGHT
Copyright 1993-2000 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: lpoptions.man 1337 2000-09-05 20:50:23Z mike $".
.\" End of "$Id: lpoptions.man 1231 2000-07-20 17:10:57Z mike $".
.\"
-1
Ver Arquivo
@@ -34,7 +34,6 @@ all: pdftops
clean:
$(RM) $(OBJS)
$(RM) libxpdf.a
$(RM) pdftops
+19 -213
Ver Arquivo
@@ -106,7 +106,6 @@ extern const char *cupsProfile;
private dev_proc_close_device(cups_close);
private dev_proc_get_initial_matrix(cups_get_matrix);
private int cups_get_params(gx_device *, gs_param_list *);
private dev_proc_map_cmyk_color(cups_map_cmyk_color);
private dev_proc_map_color_rgb(cups_map_color_rgb);
private dev_proc_map_rgb_color(cups_map_rgb_color);
private dev_proc_open_device(cups_open);
@@ -146,7 +145,7 @@ private gx_device_procs cups_procs =
gx_default_get_bits,
cups_get_params,
cups_put_params,
NULL, /* map_cmyk_color */
NULL,
NULL, /* get_xfont_procs */
NULL, /* get_xfont_device */
NULL, /* map_rgb_alpha_color */
@@ -598,149 +597,10 @@ cups_get_params(gx_device *pdev, /* I - Device info */
}
/*
* 'cups_map_cmyk_color()' - Map a CMYK color to a color index.
*
* This function is only called when a 4 or 6 color colorspace is
* selected for output. CMYK colors are *not* corrected but *are*
* density adjusted.
*/
private gx_color_index /* O - Color index */
cups_map_cmyk_color(gx_device *pdev, /* I - Device info */
gx_color_value c, /* I - Cyan value */
gx_color_value m, /* I - Magenta value */
gx_color_value y, /* I - Yellow value */
gx_color_value k) /* I - Black value */
{
gx_color_index i; /* Temporary index */
gx_color_value ic, im, iy, ik; /* Integral CMYK values */
#ifdef DEBUG
fprintf(stderr, "DEBUG: cups_map_cmyk_color(%08x, %d, %d, %d, %d)\n", pdev,
c, m, y, k);
#endif /* DEBUG */
/*
* Setup the color info data as needed...
*/
if (pdev->color_info.num_components == 0)
cups_set_color_info(pdev);
/*
* Density correct...
*/
c = cupsDensity[c];
m = cupsDensity[m];
y = cupsDensity[y];
k = cupsDensity[k];
ic = lut_rgb_color[c];
im = lut_rgb_color[m];
iy = lut_rgb_color[y];
ik = lut_rgb_color[k];
/*
* Convert the CMYK color to a color index...
*/
switch (cups->header.cupsColorSpace)
{
default :
switch (cups->header.cupsBitsPerColor)
{
case 1 :
i = (((((ic << 1) | im) << 1) | iy) << 1) | ik;
break;
case 2 :
i = (((((ic << 2) | im) << 2) | iy) << 2) | ik;
break;
case 4 :
i = (((((ic << 4) | im) << 4) | iy) << 4) | ik;
break;
case 8 :
i = (((((ic << 8) | im) << 8) | iy) << 8) | ik;
break;
}
break;
case CUPS_CSPACE_YMCK :
case CUPS_CSPACE_GMCK :
case CUPS_CSPACE_GMCS :
switch (cups->header.cupsBitsPerColor)
{
case 1 :
i = (((((iy << 1) | im) << 1) | ic) << 1) | ik;
break;
case 2 :
i = (((((iy << 2) | im) << 2) | ic) << 2) | ik;
break;
case 4 :
i = (((((iy << 4) | im) << 4) | ic) << 4) | ik;
break;
case 8 :
i = (((((iy << 8) | im) << 8) | ic) << 8) | ik;
break;
}
break;
case CUPS_CSPACE_KCMYcm :
if (cups->header.cupsBitsPerColor == 1)
{
if (ik)
i = 32;
else
i = 0;
if (ic && im)
i |= 17;
else if (ic && iy)
i |= 6;
else if (im && iy)
i |= 12;
else if (ic)
i |= 16;
else if (im)
i |= 8;
else if (iy)
i |= 4;
break;
}
case CUPS_CSPACE_KCMY :
switch (cups->header.cupsBitsPerColor)
{
case 1 :
i = (((((ik << 1) | ic) << 1) | im) << 1) | iy;
break;
case 2 :
i = (((((ik << 2) | ic) << 2) | im) << 2) | iy;
break;
case 4 :
i = (((((ik << 4) | ic) << 4) | im) << 4) | iy;
break;
case 8 :
i = (((((ik << 8) | ic) << 8) | im) << 8) | iy;
break;
}
break;
}
if (gs_log_errors > 1)
fprintf(stderr, "DEBUG: CMYK (%d,%d,%d,%d) -> CMYK %08.8x (%d,%d,%d,%d)\n",
c, m, y, k, i, ic, im, iy, ik);
return (i);
}
/*
* 'cups_map_color_rgb()' - Map a color index to an RGB color.
*/
private int
cups_map_color_rgb(gx_device *pdev, /* I - Device info */
gx_color_index color, /* I - Color index */
@@ -935,7 +795,6 @@ cups_map_rgb_color(gx_device *pdev, /* I - Device info */
gx_color_index i; /* Temporary index */
gx_color_value ic, im, iy, ik, mk; /* Integral CMYK values */
int tc, tm, ty; /* Temporary color values */
float kscale; /* K scaling value */
#ifdef DEBUG
@@ -1042,7 +901,10 @@ cups_map_rgb_color(gx_device *pdev, /* I - Device info */
}
break;
default :
case CUPS_CSPACE_K :
case CUPS_CSPACE_WHITE :
case CUPS_CSPACE_GOLD :
case CUPS_CSPACE_SILVER :
i = lut_rgb_color[gx_max_color_value - (r * 31 + g * 61 + b * 8) / 100];
break;
@@ -1098,10 +960,7 @@ cups_map_rgb_color(gx_device *pdev, /* I - Device info */
mk = max(ic, max(im, iy));
if (mk > ik)
{
kscale = (float)ik / (float)mk;
ik = ik * kscale * kscale;
}
ik = ik * ik / mk;
ic = lut_rgb_color[ic - ik];
im = lut_rgb_color[im - ik];
@@ -1139,10 +998,7 @@ cups_map_rgb_color(gx_device *pdev, /* I - Device info */
mk = max(ic, max(im, iy));
if (mk > ik)
{
kscale = (float)ik / (float)mk;
ik = ik * kscale * kscale;
}
ik = ik * ik / mk;
ic = lut_rgb_color[ic - ik];
im = lut_rgb_color[im - ik];
@@ -1205,10 +1061,7 @@ cups_map_rgb_color(gx_device *pdev, /* I - Device info */
mk = max(ic, max(im, iy));
if (mk > ik)
{
kscale = (float)ik / (float)mk;
ik = ik * kscale * kscale;
}
ik = ik * ik / mk;
ic = lut_rgb_color[ic - ik];
im = lut_rgb_color[im - ik];
@@ -1289,8 +1142,6 @@ cups_print_pages(gx_device_printer *pdev, /* I - Device info */
*dst; /* Bitmap data */
(void)fp; /* reference unused file pointer to prevent compiler warning */
#ifdef DEBUG
fprintf(stderr, "DEBUG: cups_print_pages(%08x, %08x, %d)\n", pdev, fp,
num_copies);
@@ -1471,10 +1322,7 @@ cups_put_params(gx_device *pdev, /* I - Device info */
return (code); \
} \
else if (code == 0) \
{ \
fprintf(stderr, "DEBUG: Setting %s to %d...\n", sname, intval); \
cups->header.name = (type)intval; \
}
cups->header.name = (type)intval;
#define floatoption(name, sname) \
if ((code = param_read_float(plist, sname, &floatval)) < 0) \
@@ -1543,8 +1391,12 @@ cups_put_params(gx_device *pdev, /* I - Device info */
booloption(Separations, "Separations")
booloption(TraySwitch, "TraySwitch")
booloption(Tumble, "Tumble")
intoption(cupsWidth, "cupsWidth", unsigned)
intoption(cupsHeight, "cupsHeight", unsigned)
intoption(cupsMediaType, "cupsMediaType", unsigned)
intoption(cupsBitsPerColor, "cupsBitsPerColor", unsigned)
intoption(cupsBitsPerPixel, "cupsBitsPerPixel", unsigned)
intoption(cupsBytesPerLine, "cupsBytesPerLine", unsigned)
intoption(cupsColorOrder, "cupsColorOrder", cups_order_t)
intoption(cupsColorSpace, "cupsColorSpace", cups_cspace_t)
intoption(cupsCompression, "cupsCompression", unsigned)
@@ -1566,48 +1418,11 @@ cups_put_params(gx_device *pdev, /* I - Device info */
* accordingly.
*/
for (i = cups->ppd->num_sizes, size = cups->ppd->sizes;
i > 0;
i --, size ++)
if ((fabs(cups->PageSize[1] - size->length) < 18.0 &&
fabs(cups->PageSize[0] - size->width) < 18.0) ||
(fabs(cups->PageSize[0] - size->length) < 18.0 &&
fabs(cups->PageSize[1] - size->width) < 18.0))
break;
if (i == 0 && !cups->ppd->variable_sizes)
{
i = 1;
size = cups->ppd->sizes;
}
if (i > 0)
{
/*
* Standard size...
*/
fprintf(stderr, "DEBUG: size = %s\n", size->name);
margins[0] = size->left / 72.0;
margins[1] = size->bottom / 72.0;
margins[2] = (size->width - size->right) / 72.0;
margins[3] = (size->length - size->top) / 72.0;
}
else
{
/*
* Custom size...
*/
fputs("DEBUG: size = Custom\n", stderr);
for (i = 0; i < 4; i ++)
margins[i] = cups->ppd->custom_margins[i] / 72.0;
}
fprintf(stderr, "DEBUG: margins[] = [ %f %f %f %f ]\n",
margins[0], margins[1], margins[2], margins[3]);
size = cups->ppd->sizes;
margins[0] = size->left / 72.0;
margins[1] = size->bottom / 72.0;
margins[2] = (size->width - size->right) / 72.0;
margins[3] = (size->length - size->top) / 72.0;
}
else
{
@@ -1745,15 +1560,6 @@ cups_set_color_info(gx_device *pdev) /* I - Device info */
cups->color_info.dither_colors = 0;
}
/*
* Enable/disable CMYK color support...
*/
if (cups->color_info.num_components == 4)
cups->procs.map_cmyk_color = cups_map_cmyk_color;
else
cups->procs.map_cmyk_color = NULL;
/*
* Compute the lookup tables...
*/
+269
Ver Arquivo
@@ -0,0 +1,269 @@
/* Copyright (C) 1997, 1998 Aladdin Enterprises. All rights reserved.
This file is part of GNU Ghostscript.
GNU Ghostscript is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY. No author or distributor accepts responsibility
to anyone for the consequences of using it or for whether it serves any
particular purpose or works at all, unless he says so in writing. Refer
to the GNU General Public License for full details.
Everyone is granted permission to copy, modify and redistribute GNU
Ghostscript, but only under the conditions described in the GNU General
Public License. A copy of this license is supposed to have been given
to you along with GNU Ghostscript so you can know your rights and
responsibilities. It should be in a file named COPYING. Among other
things, the copyright notice and this notice must be preserved on all
copies.
Aladdin Enterprises supports the work of the GNU Project, but is not
affiliated with the Free Software Foundation or the GNU Project. GNU
Ghostscript, as distributed by Aladdin Enterprises, does not require any
GNU software to build or run it.
*/
/*$Id$ */
/* Enumerated attribute value definitions for PCL XL */
#ifndef gdevpxen_INCLUDED
# define gdevpxen_INCLUDED
typedef enum {
eClockWise = 0,
eCounterClockWise,
pxeArcDirection_next
} pxeArcDirection_t;
typedef enum {
eNoSubstitution = 0,
eVerticalSubstitution,
pxeCharSubModeArray_next
} pxeCharSubModeArray_t;
typedef enum {
eNonZeroWinding = 0,
eEvenOdd,
pxeClipMode_next,
pxeFillMode_next = pxeClipMode_next /* see pxeFillMode_t below */
} pxeClipMode_t;
typedef enum {
eInterior = 0,
eExterior,
pxeClipRegion_next
} pxeClipRegion_t;
typedef enum {
e1Bit = 0,
e4Bit,
e8Bit,
pxeColorDepth_next
} pxeColorDepth_t;
typedef enum {
eCRGB = 5, /* Note: for this enumeration, 0 is not a valid value */
pxeColorimetricColorSpace_next
} pxeColorimetricColorSpace_t; /* 2.0 */
typedef enum {
eDirectPixel = 0,
eIndexedPixel,
pxeColorMapping_next
} pxeColorMapping_t;
typedef enum {
eNoColorSpace = 0, /* Note: for this enumeration, 0 is not a valid value */
eGray,
eRGB,
eSRGB, /* 2.0 */
pxeColorSpace_next
} pxeColorSpace_t;
typedef enum {
eNoCompression = 0,
eRLECompression,
eJPEGCompression, /* 2.0 */
pxeCompressMode_next
} pxeCompressMode_t;
typedef enum {
eBinaryHighByteFirst = 0,
eBinaryLowByteFirst,
pxeDataOrg_next /* is this DataOrg or DataOrganization? */
} pxeDataOrg_t;
typedef enum {
eDefault = 0, /* bad choice of name! */
pxeDataSource_next
} pxeDataSource_t;
typedef enum {
eUByte = 0,
eSByte,
eUInt16,
eSInt16,
pxeDataType_next
} pxeDataType_t;
typedef enum {
eDownloaded = -1, /* Not a real value, indicates a downloaded matrix */
eDeviceBest = 0,
pxeDitherMatrix_next
} pxeDitherMatrix_t;
typedef enum {
eDuplexHorizontalBinding = 0,
eDuplexVerticalBinding,
pxeDuplexPageMode_next
} pxeDuplexPageMode_t;
typedef enum {
eFrontMediaSide = 0,
eBackMediaSide,
pxeDuplexPageSide_next
} pxeDuplexPageSide_t;
typedef enum {
/* Several pieces of code know that this is a bit mask. */
eNoReporting = 0,
eBackChannel,
eErrorPage,
eBackChAndErrPage,
eNWBackChannel, /* 2.0 */
eNWErrorPage, /* 2.0 */
eNWBackChAndErrPage, /* 2.0 */
pxeErrorReport_next
} pxeErrorReport_t;
typedef pxeClipMode_t pxeFillMode_t;
typedef enum {
eButtCap = 0,
eRoundCap,
eSquareCap,
eTriangleCap,
pxeLineCap_next
} pxeLineCap_t;
#define pxeLineCap_to_library\
{ gs_cap_butt, gs_cap_round, gs_cap_square, gs_cap_triangle }
typedef enum {
eMiterJoin = 0,
eRoundJoin,
eBevelJoin,
eNoJoin,
pxeLineJoin_next
} pxeLineJoin_t;
#define pxeLineJoin_to_library\
{ gs_join_miter, gs_join_round, gs_join_bevel, gs_join_none }
typedef enum {
eInch = 0,
eMillimeter,
eTenthsOfAMillimeter,
pxeMeasure_next
} pxeMeasure_t;
#define pxeMeasure_to_points { 72.0, 72.0 / 25.4, 72.0 / 254.0 }
typedef enum {
eDefaultDestination = 0,
eFaceDownBin, /* 2.0 */
eFaceUpBin, /* 2.0 */
eJobOffsetBin, /* 2.0 */
pxeMediaDestination_next
} pxeMediaDestination_t;
typedef enum {
eLetterPaper = 0,
eLegalPaper,
eA4Paper,
eExecPaper,
eLedgerPaper,
eA3Paper,
eCOM10Envelope,
eMonarchEnvelope,
eC5Envelope,
eDLEnvelope,
eJB4Paper,
eJB5Paper,
eB5Envelope,
eJPostcard,
eJDoublePostcard,
eA5Paper,
eA6Paper, /* 2.0 */
eJB6Paper, /* 2.0 */
pxeMediaSize_next
} pxeMediaSize_t;
/*
* Apply a macro (or procedure) to all known paper sizes.
* The arguments are:
* media size code, resolution for width/height, width, height.
*/
#define px_enumerate_media(m)\
m(eLetterPaper, 300, 2550, 3300)\
m(eLegalPaper, 300, 2550, 5300)\
m(eA4Paper, 300, 2480, 3507)\
m(eExecPaper, 300, 2175, 3150)\
m(eLedgerPaper, 300, 3300, 5100)\
m(eA3Paper, 300, 3507, 4960)\
m(eCOM10Envelope, 300, 1237, 2850)\
m(eMonarchEnvelope, 300, 1162, 2250)\
m(eC5Envelope, 300, 1913, 2704)\
m(eDLEnvelope, 300, 1299, 2598)\
m(eB5Envelope, 300, 2078, 2952)
typedef enum {
eDefaultSource = 0,
eAutoSelect,
eManualFeed,
eMultiPurposeTray,
eUpperCassette,
eLowerCassette,
eEnvelopeTray,
eThirdCassette, /* 2.0 */
pxeMediaSource_next
} pxeMediaSource_t;
/**** MediaType is not documented. ****/
typedef enum {
eDefaultType = 0,
pxeMediaType_next
} pxeMediaType_t;
typedef enum {
ePortraitOrientation = 0,
eLandscapeOrientation,
eReversePortrait,
eReverseLandscape,
pxeOrientation_next
} pxeOrientation_t;
typedef enum {
eTempPattern = 0,
ePagePattern,
eSessionPattern,
pxePatternPersistence_next
} pxePatternPersistence_t;
typedef enum {
eSimplexFrontSide = 0,
pxeSimplexPageMode_next
} pxeSimplexPageMode_t;
typedef enum {
eOpaque = 0,
eTransparent,
pxeTxMode_next
} pxeTxMode_t;
typedef enum {
eHorizontal = 0,
eVertical,
pxeWritingMode_next
} pxeWritingMode_t; /* 2.0 */
#endif /* gdevpxen_INCLUDED */
+2 -2
Ver Arquivo
@@ -22,7 +22,7 @@
% Ghostscript, as distributed by Aladdin Enterprises, does not require any
% GNU software to build or run it.
% $Id: gs_init.ps 1284 2000-08-14 20:17:17Z mike $
% $Id: gs_init.ps 956 2000-03-08 23:15:43Z mike $
% Initialization file for the interpreter.
% When this is run, systemdict is still writable.
@@ -84,7 +84,7 @@ true setpacking
<1a> cvn { } def
% Acquire the debugging flags.
/DEBUG true def
currentdict /DEBUG known /DEBUG exch def
/VMDEBUG
DEBUG {{print mark
systemdict /level2dict known
+32 -30
Ver Arquivo
@@ -21,7 +21,7 @@
% Ghostscript, as distributed by Aladdin Enterprises, does not require any
% GNU software to build or run it.
% $Id: gs_setpd.ps 1355 2000-09-10 16:46:41Z mike $
% $Id: gs_setpd.ps 1159 2000-06-26 15:50:18Z mike $
% The current implementation of setpagedevice has the following limitations:
% - It doesn't attempt to "interact with the user" for Policy = 2.
@@ -107,7 +107,7 @@ level2dict begin
dup type /booleantype eq
{ pop pop }
{ % This should never happen!
DEBUG { (Error in .trysetparams!\n) print pstack flush } if
(Error in .trysetparams!\n) print pstack flush
cleartomark pop pop pop
/.installpagedevice cvx /rangecheck signalerror
}
@@ -197,7 +197,6 @@ level2dict begin
% We have to deal specially with entries that the driver may change
% on its own.
/.dynamicppkeys mark
/PageSize dup % because it changes when PageSize is set
/PageCount dup
.dicttomark readonly def
/.makecurrentpagedevice % - .makecurrentpagedevice <dict>
@@ -282,18 +281,29 @@ level2dict begin
% Define the keys used in input attribute matching.
/.inputattrkeys [
/PageSize /MediaColor /MediaWeight /MediaType /InsertSheet
%%%% MRS - The current CUPS backend driver does not register any of
%%%% these attributes with GhostScript from the PPD file. As
%%%% a result, we must comment out everything but PageSize
%%%% which is processed differently from all other attributes.
% /PageSize /MediaColor /MediaWeight /MediaType /InsertSheet
% The following are documented in Adobe's supplement for v2017.
/LeadingEdge /MediaClass
% /LeadingEdge /MediaClass
/PageSize
] readonly def
% Define other keys used in media selection.
/.inputselectionkeys [
/MediaPosition /Orientation
%%%% MRS - The current CUPS backend driver does not register any of
%%%% these attributes with GhostScript from the PPD file. As
%%%% a result, we must comment out everything.
% /MediaPosition /Orientation
] readonly def
% Define the keys used in output attribute matching.
/.outputattrkeys [
/OutputType
%%%% MRS - The current CUPS backend driver does not register any of
%%%% these attributes with GhostScript from the PPD file. As
%%%% a result, we must comment out everything.
% /OutputType
] readonly def
% Define all the parameters that should always be copied to the merged
@@ -313,12 +323,10 @@ level2dict begin
% true iff the key/value pair should be presented to .putdeviceparams.
/.presentspecial mark
.dynamicppkeys { pop false } forall
% We must ignore an explicit request for PageSize,
% because media matching always handles this.
/PageSize false
/Name false
/OutputDevice false
/PageOffset false
/PageSize false
/InputAttributes false
.inputattrkeys
{ dup /PageSize eq
@@ -396,17 +404,11 @@ level2dict begin
% They are expected to consume the top 2 operands.
% NOTE: we currently treat all values other than 0, 1, or 7 (for PageSize)
% the same as 0, i.e., we signal an error.
% 0 { % Set errorinfo and signal a configurationerror.
% pop dup 4 index exch get 2 array astore
% $error /errorinfo 3 -1 roll put
% cleartomark
% /setpagedevice load /configurationerror signalerror
% } bind
%%%% MRS - The current CUPS backend driver does not register any of
%%%% these attributes with GhostScript from the PPD file. As
%%%% a result, we must allow all attributes and values.
0 { % For all attributes just impose the request.
pop 2 index exch 7 put
0 { % Set errorinfo and signal a configurationerror.
pop dup 4 index exch get 2 array astore
$error /errorinfo 3 -1 roll put
cleartomark
/setpagedevice load /configurationerror signalerror
} bind
1 { % Roll back the failed request to its previous status.
DEBUG { (Rolling back.\n) print pstack flush } if
@@ -478,9 +480,9 @@ DEBUG { (Rolling back.\n) print pstack flush } if
% -mark- key1 value1 ...
counttomark 5 add index .computemediasize
exch pop exch pop /PageSize exch
DEBUG { (Putting.\n) print pstack flush } if
(Putting.\n) print pstack flush
.putdeviceparamsonly
DEBUG { (Result of putting.\n) print pstack flush } if
(Result of putting.\n) print pstack flush
} bind def
% Compute the media size and initial matrix from a merged request (after
@@ -516,7 +518,7 @@ DEBUG { (Result of putting.\n) print pstack flush } if
% also handle the case where the current device
% is not a page device.
% Stack: mark <request> <current>
DEBUG { (Checking.\n) print pstack flush } if
(Checking.\n) print pstack flush
dup /OutputDevice .knownget
{ % Current device is a page device.
@@ -558,7 +560,7 @@ DEBUG { (Checking.\n) print pstack flush } if
% Construct a merged request from the actual request plus
% any keys that should always be propagated.
% Stack: mark <request> <orig>
DEBUG { (Merging.\n) print pstack flush } if
(Merging.\n) print pstack flush
exch 1 index length 1 index length add dict
.copiedkeys
@@ -585,7 +587,7 @@ DEBUG { (Merging.\n) print pstack flush } if
% Select input and output media.
% Stack: mark <orig> <request> <merged>
DEBUG { (Selecting.\n) print pstack flush } if
(Selecting.\n) print pstack flush
0 dict % <failed>
1 index /InputAttributes .knownget
@@ -602,7 +604,7 @@ DEBUG { (Selecting.\n) print pstack flush } if
% Construct the new device, and attempt to set its attributes.
% Stack: mark <orig> <request> <merged> <failed>
DEBUG { (Constructing.\n) print pstack flush } if
(Constructing.\n) print pstack flush
currentdevice .devicename 2 index /OutputDevice get eq
{ currentdevice }
@@ -618,7 +620,7 @@ DEBUG { (Constructing.\n) print pstack flush } if
{ % The request failed.
% Stack: ... <orig> <request> <merged> <failed> <device>
% <Policies> true mark <name> <errorname> ...
DEBUG { (Recovering.\n) print pstack flush } if
(Recovering.\n) print pstack flush
counttomark 4 add index
counttomark 2 idiv { dup 4 -2 roll put } repeat
pop pop pop
@@ -638,7 +640,7 @@ DEBUG { (Recovering.\n) print pstack flush } if
% The attempt succeeded. Install the new device.
% Stack: mark ... <merged> <failed> <device> <eraseflag>
DEBUG { (Installing.\n) print pstack flush } if
(Installing.\n) print pstack flush
pop 2 .endpage
{ 1 true .outputpage
@@ -689,7 +691,7 @@ DEBUG { (Installing.\n) print pstack flush } if
% Clean up, calling PolicyReport if needed.
% Stack: mark ... <failed> <merged>
DEBUG { (Finishing.\n) print pstack flush } if
(Finishing.\n) print pstack flush
exch dup length 0 ne
{ 1 index /Policies get /PolicyReport get
+2 -2
Ver Arquivo
@@ -292,9 +292,9 @@ gdev_write_input_media(int index, gs_param_dict * pdict,
if (code < 0)
return code;
}
/* code = finish_media(mdict.list, "MediaType", pim->MediaType);
code = finish_media(mdict.list, "MediaType", pim->MediaType);
if (code < 0)
return code;*/
return code;
return param_end_write_dict(pdict->list, key, &mdict);
}
+2 -2
Ver Arquivo
@@ -114,7 +114,7 @@ private long heap_available(P0());
gs_malloc_memory_t *
gs_malloc_memory_init(void)
{
gs_malloc_memory_t *mem = calloc(1, sizeof(gs_malloc_memory_t));
gs_malloc_memory_t *mem = malloc(sizeof(gs_malloc_memory_t));
mem->procs = gs_malloc_memory_procs;
mem->allocated = 0;
@@ -173,7 +173,7 @@ gs_heap_alloc_bytes(gs_memory_t * mem, uint size, client_name_t cname)
if (mmem->limit - added < mmem->used)
set_msg("exceeded limit");
else if ((ptr = (byte *) calloc(1, added)) == 0)
else if ((ptr = (byte *) malloc(added)) == 0)
set_msg("failed");
else {
gs_malloc_block_t *bp = (gs_malloc_block_t *) ptr;
+1 -1
Ver Arquivo
@@ -240,7 +240,7 @@ gs_realloc(void *old_ptr, size_t old_size, size_t new_size)
new_size = (new_size + 7) & ~7;
if (new_size) {
new_ptr = calloc(1, new_size);
new_ptr = malloc(new_size);
if (new_ptr == NULL)
return NULL;
} else
+6 -2
Ver Arquivo
@@ -52,8 +52,12 @@ extern void free();
#endif /* !__TURBOC__ */
/* (At least some versions of) Linux don't have a working realloc.... */
/* MRS - in order to make sure memory is initialized, always use gs_realloc() */
#define malloc__need_realloc
#ifdef linux
# define malloc__need_realloc
void *gs_realloc(P3(void *, size_t, size_t));
#else
# define gs_realloc(ptr, old_size, new_size) realloc(ptr, new_size)
#endif
#endif /* malloc__INCLUDED */
+3 -4
Ver Arquivo
@@ -96,8 +96,8 @@ main(int argc, /* I - Number of command-line arguments */
int num_options; /* Number of job options */
cups_option_t *options; /* Job options */
char gspath[2048]; /* Path to GS files... */
char fontpath[2048]; /* Path to GS fonts... */
const char *datadir; /* CUPS_DATADIR env variable */
const char *fontpath; /* CUPS_FONTPATH env variable */
/*
@@ -142,10 +142,8 @@ main(int argc, /* I - Number of command-line arguments */
if ((datadir = getenv("CUPS_DATADIR")) == NULL)
datadir = CUPS_DATADIR;
if ((fontpath = getenv("CUPS_FONTPATH")) == NULL)
fontpath = CUPS_FONTPATH;
snprintf(gspath, sizeof(gspath), "%s/pstoraster:%s", datadir, fontpath);
snprintf(gspath, sizeof(gspath), "%s/pstoraster:%s/fonts", datadir, datadir);
minst->lib_path.final = gspath;
gs_main_set_lib_paths(minst);
@@ -162,6 +160,7 @@ main(int argc, /* I - Number of command-line arguments */
define_string("OutputFile", "-");
snprintf(fontpath, sizeof(fontpath), "%s/fonts", datadir);
define_string("FONTPATH", fontpath);
/*
+3 -4
Ver Arquivo
@@ -67,10 +67,10 @@ install:
-$(MKDIR) $(LOGDIR)
$(CHMOD) ugo+rx $(LOGDIR)
-$(MKDIR) $(REQUESTS)
$(CHMOD) u+rwx,go-rwx $(REQUESTS)
$(CHMOD) u+rwx,go-a $(REQUESTS)
$(CHOWN) lp $(REQUESTS)
-$(MKDIR) $(REQUESTS)/tmp
$(CHMOD) u+rwx,go-rwx,+t $(REQUESTS)/tmp
$(CHMOD) u+rwx,go-a,+t $(REQUESTS)/tmp
$(CHOWN) lp $(REQUESTS)/tmp
@@ -80,8 +80,7 @@ install:
cupsd: $(CUPSDOBJS) libmime.a ../cups/$(LIBCUPS)
echo Linking $@...
$(CC) $(LDFLAGS) -o cupsd $(CUPSDOBJS) libmime.a \
$(LIBZ) $(LIBS) $(LIBMALLOC)
$(CC) $(LDFLAGS) -o cupsd $(CUPSDOBJS) libmime.a $(LIBZ) $(LIBS)
$(CUPSDOBJS): auth.h banners.h cert.h classes.h client.h conf.h \
cupsd.h dirsvc.h job.h mime.h printers.h \
+1 -1
Ver Arquivo
@@ -701,7 +701,7 @@ IsAuthorized(client_t *con) /* I - Connection */
DEBUG_puts("IsAuthorized: user not in group!");
return (HTTP_UNAUTHORIZED);
return (HTTP_FORBIDDEN);
}
+36 -44
Ver Arquivo
@@ -62,6 +62,7 @@ static int pipe_command(client_t *con, int infile, int *outfile, char *command,
void
AcceptClient(listener_t *lis) /* I - Listener socket */
{
int i; /* Looping var */
int val; /* Parameter value */
client_t *con; /* New client pointer */
unsigned address;/* Address of client */
@@ -71,13 +72,6 @@ AcceptClient(listener_t *lis) /* I - Listener socket */
DEBUG_printf(("AcceptClient(%08x) %d NumClients = %d\n",
lis, lis->fd, NumClients));
/*
* Make sure we don't have a full set of clients already...
*/
if (NumClients == MaxClients)
return;
/*
* Get a pointer to the next available client...
*/
@@ -119,21 +113,13 @@ AcceptClient(listener_t *lis) /* I - Listener socket */
else
host = NULL;
if (con->http.hostaddr.sin_addr.s_addr == ServerAddr.sin_addr.s_addr)
{
/*
* Map accesses from the same host to the server name.
*/
strncpy(con->http.hostname, ServerName, sizeof(con->http.hostname) - 1);
}
else if (host == NULL)
if (host == NULL)
sprintf(con->http.hostname, "%d.%d.%d.%d", (address >> 24) & 255,
(address >> 16) & 255, (address >> 8) & 255, address & 255);
else
strncpy(con->http.hostname, host->h_name, sizeof(con->http.hostname) - 1);
LogMessage(L_DEBUG, "AcceptClient() %d from %s:%d.", con->http.fd,
LogMessage(L_DEBUG, "accept() %d from %s:%d.", con->http.fd,
con->http.hostname, ntohs(con->http.hostaddr.sin_port));
/*
@@ -152,7 +138,11 @@ AcceptClient(listener_t *lis) /* I - Listener socket */
*/
if (NumClients == MaxClients)
PauseListening();
for (i = 0; i < NumListeners; i ++)
{
DEBUG_printf(("AcceptClient: Removing fd %d from InputSet...\n", Listeners[i].fd));
FD_CLR(Listeners[i].fd, &InputSet);
}
}
@@ -175,6 +165,7 @@ CloseAllClients(void)
void
CloseClient(client_t *con) /* I - Client to close */
{
int i; /* Looping var */
int status; /* Exit status of pipe command */
@@ -193,18 +184,24 @@ CloseClient(client_t *con) /* I - Client to close */
con->http.fd = 0;
}
for (i = 0; i < NumListeners; i ++)
{
DEBUG_printf(("CloseClient: Adding fd %d to InputSet...\n", Listeners[i].fd));
FD_SET(Listeners[i].fd, &InputSet);
}
if (con->pipe_pid != 0)
{
DEBUG_printf(("CloseClient: Removing fd %d from InputSet...\n", con->file));
FD_CLR(con->file, &InputSet);
}
/*
* If we have a data file open, close it...
*/
if (con->file)
{
/*
* Close the open data file...
*/
if (con->pipe_pid)
{
kill(con->pipe_pid, SIGKILL);
@@ -216,14 +213,6 @@ CloseClient(client_t *con) /* I - Client to close */
con->file = 0;
}
/*
* Re-enable new client connections if we are going back under the
* limit...
*/
if (NumClients == MaxClients)
ResumeListening();
/*
* Compact the list of clients as necessary...
*/
@@ -608,8 +597,8 @@ ReadClient(client_t *con) /* I - Client to read from */
* so check the length against any limits that are set...
*/
LogMessage(L_DEBUG2, "POST %s", con->uri);
LogMessage(L_DEBUG2, "CONTENT_TYPE = %s", con->http.fields[HTTP_FIELD_CONTENT_TYPE]);
LogMessage(L_DEBUG, "POST %s", con->uri);
LogMessage(L_DEBUG, "CONTENT_TYPE = %s", con->http.fields[HTTP_FIELD_CONTENT_TYPE]);
if (con->http.fields[HTTP_FIELD_CONTENT_LENGTH][0] &&
atoi(con->http.fields[HTTP_FIELD_CONTENT_LENGTH]) > MaxRequestSize &&
@@ -672,7 +661,7 @@ ReadClient(client_t *con) /* I - Client to read from */
if (con->options[0] == '/')
con->options ++;
LogMessage(L_DEBUG2, "ReadClient() %d command=\"%s\", options = \"%s\"",
LogMessage(L_DEBUG, "ReadClient() %d command=\"%s\", options = \"%s\"",
con->http.fd, con->command, con->options);
if (con->http.version <= HTTP_1_0)
@@ -808,7 +797,7 @@ ReadClient(client_t *con) /* I - Client to read from */
break;
case HTTP_POST_RECV :
LogMessage(L_DEBUG2, "ReadClient() %d con->data_encoding = %s, con->data_remaining = %d, con->file = %d",
LogMessage(L_DEBUG, "ReadClient() %d con->data_encoding = %s, con->data_remaining = %d, con->file = %d",
con->http.fd,
con->http.data_encoding == HTTP_ENCODE_CHUNKED ? "chunked" : "length",
con->http.data_remaining, con->file);
@@ -844,7 +833,7 @@ ReadClient(client_t *con) /* I - Client to read from */
fchmod(con->file, 0640);
fchown(con->file, User, Group);
LogMessage(L_DEBUG2, "ReadClient() %d REQUEST %s", con->http.fd,
LogMessage(L_DEBUG, "ReadClient() %d REQUEST %s", con->http.fd,
con->filename);
if (con->file < 0)
@@ -868,7 +857,7 @@ ReadClient(client_t *con) /* I - Client to read from */
{
con->bytes += bytes;
LogMessage(L_DEBUG2, "ReadClient() %d writing %d bytes",
LogMessage(L_DEBUG, "ReadClient() %d writing %d bytes",
con->http.fd, bytes);
if (write(con->file, line, bytes) < bytes)
@@ -1228,7 +1217,7 @@ WriteClient(client_t *con) /* I - Client connection */
*bufptr++ = '\0';
httpPrintf(HTTP(con), "%s\r\n", buf);
LogMessage(L_DEBUG2, "WriteClient() %d %s", con->http.fd, buf);
LogMessage(L_DEBUG, "WriteClient() %d %s", con->http.fd, buf);
/*
* Update buffer...
@@ -1330,7 +1319,7 @@ WriteClient(client_t *con) /* I - Client connection */
}
if (bytes >= 1024)
LogMessage(L_DEBUG2, "WriteClient() %d %d bytes", con->http.fd, bytes);
LogMessage(L_DEBUG, "WriteClient() %d %d bytes", con->http.fd, bytes);
con->http.activity = time(NULL);
@@ -1358,7 +1347,7 @@ check_if_modified(client_t *con, /* I - Client connection */
if (*ptr == '\0')
return (1);
LogMessage(L_DEBUG2, "check_if_modified() %d If-Modified-Since=\"%s\"",
LogMessage(L_DEBUG, "check_if_modified() %d If-Modified-Since=\"%s\"",
con->http.fd, ptr);
while (*ptr != '\0')
@@ -1382,7 +1371,7 @@ check_if_modified(client_t *con, /* I - Client connection */
}
}
LogMessage(L_DEBUG2, "check_if_modified() %d sizes=%d,%d dates=%d,%d",
LogMessage(L_DEBUG, "check_if_modified() %d sizes=%d,%d dates=%d,%d",
con->http.fd, size, filestats->st_size, date, filestats->st_mtime);
return ((size != filestats->st_size && size != 0) ||
@@ -1537,7 +1526,7 @@ get_file(client_t *con, /* I - Client connection */
status = stat(filename, filestats);
}
LogMessage(L_DEBUG2, "get_file() %d filename=%s size=%d",
LogMessage(L_DEBUG, "get_file() %d filename=%s size=%d",
con->http.fd, filename, status ? -1 : filestats->st_size);
if (status)
@@ -1567,7 +1556,8 @@ pipe_command(client_t *con, /* I - Client connection */
char argbuf[10240], /* Argument buffer */
*argv[100], /* Argument strings */
*envp[100]; /* Environment variables */
char lang[1024], /* LANG env variable */
char hostname[1024], /* Hostname string */
lang[1024], /* LANG env variable */
content_length[1024], /* CONTENT_LENGTH env variable */
content_type[1024], /* CONTENT_TYPE env variable */
ipp_port[1024], /* Default listen port */
@@ -1638,10 +1628,12 @@ pipe_command(client_t *con, /* I - Client connection */
* Setup the environment variables as needed...
*/
gethostname(hostname, sizeof(hostname) - 1);
sprintf(lang, "LANG=%s", con->language ? con->language->language : "C");
sprintf(ipp_port, "IPP_PORT=%d", ntohs(con->http.hostaddr.sin_port));
sprintf(server_port, "SERVER_PORT=%d", ntohs(con->http.hostaddr.sin_port));
snprintf(server_name, sizeof(server_name), "SERVER_NAME=%s", ServerName);
snprintf(server_name, sizeof(server_name), "SERVER_NAME=%s", hostname);
snprintf(remote_host, sizeof(remote_host), "REMOTE_HOST=%s", con->http.hostname);
snprintf(remote_user, sizeof(remote_user), "REMOTE_USER=%s", con->username);
snprintf(tmpdir, sizeof(tmpdir), "TMPDIR=%s", TempDir);
@@ -1739,7 +1731,7 @@ pipe_command(client_t *con, /* I - Client connection */
* Close extra file descriptors...
*/
for (fd = 3; fd < MaxFDs; fd ++)
for (fd = 3; fd < 1024; fd ++)
close(fd);
/*
-3
Ver Arquivo
@@ -73,7 +73,6 @@ VAR int NumClients VALUE(0);
/* Number of HTTP clients */
VAR client_t *Clients VALUE(NULL);
/* HTTP clients */
VAR struct sockaddr_in ServerAddr; /* Server IP address */
/*
@@ -83,10 +82,8 @@ VAR struct sockaddr_in ServerAddr; /* Server IP address */
extern void AcceptClient(listener_t *lis);
extern void CloseAllClients(void);
extern void CloseClient(client_t *con);
extern void PauseListening(void);
extern void ProcessIPPRequest(client_t *con);
extern int ReadClient(client_t *con);
extern void ResumeListening(void);
extern int SendCommand(client_t *con, char *command, char *options);
extern int SendError(client_t *con, http_status_t code);
extern int SendFile(client_t *con, http_status_t code, char *filename,
+6 -13
Ver Arquivo
@@ -92,8 +92,6 @@ static var_t variables[] =
{ "RIPCache", RIPCache, VAR_STRING, sizeof(RIPCache) },
{ "TempDir", TempDir, VAR_STRING, sizeof(TempDir) },
{ "Printcap", Printcap, VAR_STRING, sizeof(Printcap) },
{ "FontPath", FontPath, VAR_STRING, sizeof(FontPath) },
{ "RemoteRoot", RemoteRoot, VAR_STRING, sizeof(RemoteRoot) },
{ "HostNameLookups", &HostNameLookups, VAR_BOOLEAN, 0 },
{ "Timeout", &Timeout, VAR_INTEGER, 0 },
{ "KeepAlive", &KeepAlive, VAR_BOOLEAN, 0 },
@@ -108,8 +106,7 @@ static var_t variables[] =
{ "MaxLogSize", &MaxLogSize, VAR_INTEGER, 0 },
{ "MaxRequestSize", &MaxRequestSize, VAR_INTEGER, 0 },
{ "PreserveJobHistory", &JobHistory, VAR_BOOLEAN, 0 },
{ "PreserveJobFiles", &JobFiles, VAR_BOOLEAN, 0 },
{ "FilterLimit", &FilterLimit, VAR_INTEGER, 0 }
{ "PreserveJobFiles", &JobFiles, VAR_BOOLEAN, 0 }
};
#define NUM_VARS (sizeof(variables) / sizeof(variables[0]))
@@ -193,7 +190,7 @@ ReadConfiguration(void)
DeleteAllClasses();
gethostname(ServerName, sizeof(ServerName));
snprintf(ServerAdmin, sizeof(ServerAdmin), "root@%s", ServerName);
sprintf(ServerAdmin, "root@%s", ServerName);
strcpy(ServerRoot, CUPS_SERVERROOT);
strcpy(ServerBin, CUPS_SERVERBIN);
strcpy(RequestRoot, CUPS_REQUESTS);
@@ -203,8 +200,6 @@ ReadConfiguration(void)
strcpy(ErrorLog, CUPS_LOGDIR "/error_log");
strcpy(PageLog, CUPS_LOGDIR "/page_log");
strcpy(Printcap, "");
strcpy(FontPath, CUPS_FONTPATH);
strcpy(RemoteRoot, "remroot");
if ((language = DEFAULT_LANGUAGE) == NULL)
language = "en";
@@ -293,9 +288,9 @@ ReadConfiguration(void)
KeepAlive = TRUE;
KeepAliveTimeout = DEFAULT_KEEPALIVE;
ImplicitClasses = TRUE;
FilterLimit = 0;
FilterLevel = 0;
MaxClients = 100;
MaxLogSize = 1024 * 1024;
MaxRequestSize = 0;
@@ -425,7 +420,7 @@ ReadConfiguration(void)
snprintf(directory, sizeof(directory), "%s/model", DataDir);
LoadPPDs(directory);
snprintf(directory, sizeof(directory), "%s/backend", ServerBin);
sprintf(directory, "%s/backend", ServerBin);
LoadDevices(directory);
/*
@@ -984,9 +979,7 @@ read_configuration(FILE *fp) /* I - File to read from */
* Amount of logging to do...
*/
if (strcmp(value, "debug2") == 0)
LogLevel = L_DEBUG2;
else if (strcmp(value, "debug") == 0)
if (strcmp(value, "debug") == 0)
LogLevel = L_DEBUG;
else if (strcmp(value, "info") == 0)
LogLevel = L_INFO;

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