Comparar commits

..

1 Commits

Autor SHA1 Mensagem Data
msweet ed7523132b Import cups.org releases
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/tags/release-1.0b3@4306 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-10 18:56:23 +00:00
43 arquivos alterados com 2097 adições e 1521 exclusões
+337 -220
Ver Arquivo
@@ -5,265 +5,382 @@
<BODY BGCOLOR=#ffffff>
<H1 ALIGN=CENTER><FONT FACE="Arial,HELVETICA">Aladdin Free Public License</FONT></H1>
<H2 ALIGN="CENTER">Common UNIX Printing System License Agreement</H2>
<P ALIGN=CENTER>(Version 6, June 17, 1997)</P>
<P ALIGN="CENTER">Copyright 1997-1999 by Easy Software Products<BR>
44141 AIRPORT VIEW DR STE 204<BR>
HOLLYWOOD, MARYLAND 20636-3111 USA<BR>
<BR>
Voice: +1.301.373.9603<BR>
Email: cups-info@cups.org<BR>
WWW: http://www.cups.org
<P ALIGN=CENTER>Copyright &copy; 1994, 1995, 1997 Aladdin Enterprises,<BR><BR>
Menlo Park, California, U.S.A. All rights reserved.</P>
<H3>Introduction</H3>
<BLOCKQUOTE>
NOTE: This License is not the same as any of the GNU Licenses published
by the Free Software Foundation. Its terms are substantially different
from those of the GNU Licenses. If you are familiar with the GNU
Licenses, please read this license with extra care.
<P>The Common UNIX Printing System<SUP>TM</SUP>, or CUPS<SUP>TM</SUP>,
is provided under the GNU General Public License, Version 2. A copy of
this license follows this introduction.
<P>For those not familiar with the GNU General Public License, the license
basically allows you to:
<UL>
<LI>Use the CUPS software at no charge.
<LI>Distribute verbatim copies of the software in source or
binary form.
<LI>Sell verbatim copies of the software for a media fee, or
sell support for the software.
<LI>Distribute or sell printer drivers and filters that use the
CUPS API so long as source code is made available under the GPL.
</UL>
<P>What this license <B>does not</B> allow you to do is make changes or
add features to CUPS and then sell a binary distribution without source
code. You have to provide source for any new drivers, changes, or
additions to the software, and all code must be provided under the GPL.
<P>Also, since we have trademarked the Common UNIX Printing System, CUPS,
and CUPS logo, you may not release a derivative product using those names
without permission from Easy Software Products.
<H3>Binary Distribution Rights</H3>
<P>Easy Software Products also sells rights to the CUPS source code
under a binary distribution license for vendors that are unable to
release source code for their drivers or additions and modifications to
CUPS under the GPL. For pricing information please contact us at the
address shown above.
<P>The Common UNIX Printing System utilizes GNU GhostScript 4.03 to
convert PostScript files into a stream of raster images. For binary
distribution licensing of this software, please contact:
<BLOCKQUOTE>Miles Jones<BR>
Director of Marketing<BR>
Artifex Software Inc.<BR>
454 Las Gallinas Ave., Suite 108<BR>
San Rafael, CA 94903 USA<BR>
Voice: +1.415.492.9861<BR>
Fax: +1.415.492.9862<BR>
EMail: info@arsoft.com
</BLOCKQUOTE>
<P>Aladdin Enterprises hereby grants to anyone the permission to apply
this License to their own work, as long as the entire License
(including the above notices and this paragraph) is copied with no
changes, additions, or deletions except for changing the first
paragraph of Section 0 to include a suitable description of the work to
which the license is being applied and of the person or entity that
holds the copyright in the work, and, if the License is being applied
to a work created in a country other than the United States, replacing
the first paragraph of Section 6 with an appropriate reference to the
laws of the appropriate country.</P>
<H3>Support</H3>
<H2><FONT FACE="Arial,HELVETICA">0. Subject Matter</FONT></H2>
<P>Easy Software Products sells software support for distributors and
resellers of CUPS. Support for users of CUPS is available from Easy
Software Products through our ESP Print software.
This License applies to the Common UNIX Printing System ("PROGRAM").
The Common UNIX Printing System is a copyrighted work whose copyright
is held by Easy Software Products (the "LICENSOR"). The Common UNIX
Printing System, CUPS, and the CUPS logo are the trademark property of
Easy Software Products.
<H3>Trademarks</H3>
<P>A "work based on the PROGRAM" means either the PROGRAM or any
derivative work of the PROGRAM, as defined in the United States
Copyright Act of 1976, such as a translation or a modification.
<P>The Common UNIX Printing System, CUPS, and the CUPS logo are the
trademark property of Easy Software Products. Any derivative of this
software may not use any of these trademarks without the expressed
written consent of Easy Software Products.
<P>BY MODIFYING OR DISTRIBUTING THE PROGRAM (OR ANY WORK BASED ON THE
PROGRAM), YOU INDICATE YOUR ACCEPTANCE OF THIS LICENSE TO DO SO, AND
ALL ITS TERMS AND CONDITIONS FOR COPYING, DISTRIBUTING OR MODIFYING THE
PROGRAM OR WORKS BASED ON IT. NOTHING OTHER THAN THIS LICENSE GRANTS
YOU PERMISSION TO MODIFY OR DISTRIBUTE THE PROGRAM OR ITS DERIVATIVE
WORKS. THESE ACTIONS ARE PROHIBITED BY LAW. IF YOU DO NOT ACCEPT THESE
TERMS AND CONDITIONS, DO NOT MODIFY OR DISTRIBUTE THE PROGRAM.
<H2 ALIGN="CENTER">GNU General Public License</H2>
<H2><FONT FACE="Arial,HELVETICA">1. Licenses</FONT></H2>
<P ALIGN="CENTER">Version 2, June 1991<BR>
<BR>
Copyright 1989, 1991 Free Software Foundation, Inc.<BR>
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
LICENSOR hereby grants you the following rights, provided that you comply
with all of the restrictions set forth in this License and provided,
further, that you distribute an unmodified copy of this License with the
PROGRAM:
<P ALIGN="CENTER">Everyone is permitted to copy and distribute verbatim
copies of this license document, but changing it is not allowed.
<OL TYPE=a>
<H3>Preamble</H3>
<LI>You may copy and distribute literal (i.e., verbatim) copies
of the PROGRAM's source code as you receive it throughout the
world, in any medium.<BR><BR>
<P>The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
<LI>You may modify the PROGRAM, create works based on the
PROGRAM and distribute copies of such throughout the world, in
any medium.<BR><BR>
<P>When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
<P>To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
<P>For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
<P>We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
<P>Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
<P>Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
<P>The precise terms and conditions for copying, distribution and
modification follow.
<H3>GNU GENERAL PUBLIC LICENSE<BR>
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</H3>
<OL START="0">
<LI>This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
<P>Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
<LI>You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
<P>You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
<LI>You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
<OL TYPE="a">
<LI>You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
<LI>You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
<LI>if the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
</OL>
<H2><FONT FACE="Arial,HELVETICA">2. Restrictions</FONT></H2>
<P>These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
This license is subject to the following restrictions:
<P>Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
<OL TYPE=a>
<P>In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
<LI>Distribution of the PROGRAM or any work based on the
PROGRAM by a commercial organization to any third party is
prohibited if any payment is made in connection with such
distribution, whether directly (as in payment for a copy of the
PROGRAM) or indirectly (as in payment for some service related
to the PROGRAM, or payment for some product or service that
includes a copy of the PROGRAM "without charge"; these are only
examples, and not an exhaustive enumeration of prohibited
activities). The following methods of distribution involving
payment shall not in and of themselves be a violation of this
restriction:<BR><BR>
<LI>You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
<OL TYPE=i>
<OL TYPE="a">
<LI>Posting the PROGRAM on a public access information
storage and retrieval service for which a fee is
received for retrieving information (such as an on-line
service), provided that the fee is not
content-dependent (i.e., the fee would be the same for
retrieving the same volume of information consisting of
random data) and that access to the service and to the
PROGRAM is available independent of any other product
or service. An example of a service that does not fall
under this section is an on-line service that is
operated by a company and that is only available to
customers of that company. (This is not an exhaustive
enumeration.)<BR><BR>
<LI>Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
<LI>Distributing the PROGRAM on removable
computer-readable media, provided that the files
containing the PROGRAM are reproduced entirely and
verbatim on such media, that all information on such
media be redistributable for non-commercial purposes
without charge, and that such media are distributed by
themselves (except for accompanying documentation)
independent of any other product or service. Examples
of such media include CD-ROM, magnetic tape, and
optical storage media. (This is not intended to be an
exhaustive list.) An example of a distribution that
does not fall under this section is a CD-ROM included
in a book or magazine. (This is not an exhaustive
enumeration.)<BR><BR>
<LI>Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
</OL>
<LI>Activities other than copying, distribution and
modification of the PROGRAM are not subject to this License and
they are outside its scope. Functional use (running) of the
PROGRAM is not restricted, and any output produced through the
use of the PROGRAM is subject to this license only if its
contents constitute a work based on the PROGRAM (independent of
having been made by running the PROGRAM).<BR><BR>
<LI>You must meet all of the following conditions with respect to any work
that you distribute or publish that in whole or in part contains or is
derived from the PROGRAM or any part thereof ("the Work"):<BR><BR>
<OL TYPE=i>
<LI>If you have modified the PROGRAM, you must cause
the Work to carry prominent notices stating that you
have modified the PROGRAM's files and the date of any
change;<BR><BR>
<LI>You must cause the Work to be licensed as a whole
and at no charge to all third parties under the terms
of this License;<BR><BR>
<LI>If the Work normally reads commands interactively
when run, you must cause it, at each time the Work
commences operation, to print or display an
announcement including an appropriate copyright notice
and a notice that there is no warranty (or else, saying
that you provide a warranty). Such notice must also
state that users may redistribute the Work only under
the conditions of this License and tell the user how to
view the copy of this License included with the Work.
(Exceptions: if the PROGRAM is interactive but normally
prints or displays such an announcement only at the
request of a user, such as in an "About box", the Work
is required to print or display the notice only under
the same circumstances; if the PROGRAM itself is
interactive but does not normally print such an
announcement, the Work is not required to print an
announcement.);<BR><BR>
<LI>You must accompany the Work with the complete
corresponding machine-readable source code, delivered
on a medium customarily used for software interchange.
The source code for a work means the preferred form of
the work for making modifications to it. For an
executable work, complete source code means all the
source code for all modules it contains, plus any
associated interface definition files, plus the scripts
used to control compilation and installation of the
executable code. If you distribute with the Work any
component that is normally distributed (in either
source or binary form) with the major components
(compiler, kernel, and so on) of the operating system
on which the executable runs, you must also distribute
the source code of that component if you have it and
are allowed to do so;<BR><BR>
<LI>If you distribute any written or printed material
at all with the Work, such material must include either
a written copy of this License, or a prominent written
indication that the Work is covered by this License and
written instructions for printing and/or displaying the
copy of the License on the distribution medium;<BR><BR>
<LI>You may not impose any further restrictions on the
recipient's exercise of the rights granted herein.<BR><BR>
</OL>
<LI>Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
</OL>
If distribution of executable or object code is made by offering the
equivalent ability to copy from a designated place, then offering
equivalent ability to copy the source code from the same place counts
as distribution of the source code, even though third parties are not
compelled to copy the source code along with the object code.
<P>The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
<H2><FONT FACE="Arial,HELVETICA">3. Reservation of Rights</FONT></H2>
<P>If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
No rights are granted to the PROGRAM except as expressly set forth
herein. You may not copy, modify, sublicense, or distribute the PROGRAM
except as expressly provided under this License. Any attempt otherwise
to copy, modify, sublicense or distribute the PROGRAM is void, and will
automatically terminate your rights under this License. However,
parties who have received copies, or rights, from you under this
License will not have their licenses terminated so long as such parties
remain in full compliance.
<LI>You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
<H2><FONT FACE="Arial,HELVETICA">4. Other Restrictions</FONT></H2>
<LI>You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
If the distribution and/or use of the PROGRAM is restricted in certain
countries for any reason, LICENSOR may add an explicit geographical
distribution limitation excluding those countries, so that distribution
is permitted only in or among countries not thus excluded. In such
case, this License incorporates the limitation as if written in the
body of this License.
<LI>Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
<H2><FONT FACE="Arial,HELVETICA">5. Limitations</FONT></H2>
<LI>If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
THE PROGRAM IS PROVIDED TO YOU "AS IS", WITHOUT WARRANTY. THERE IS NO
WARRANTY FOR THE PROGRAM, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS
WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
<P>If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
<P>IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL LICENSOR, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING
ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT
OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED
BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY
OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF
THE POSSIBILITY OF SUCH DAMAGES.
<P>It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
<H2><FONT FACE="Arial,HELVETICA">6. General</FONT></H2>
<P>This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
This License is governed by the laws of the State of Maryland, U.S.A.,
excluding choice of law rules.
<LI>If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
<P>If any part of this License is found to be in conflict with the law,
that part shall be interpreted in its broadest meaning consistent with
the law, and no other parts of the License shall be affected.
<LI>The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
<P>For United States Government users, the PROGRAM is provided with
RESTRICTED RIGHTS. If you are a unit or agency of the United States
Government or are acquiring the Software for any such unit or agency,
the following apply:
<P>Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
<BLOCKQUOTE>
If the unit or agency is the Department of Defense ("DOD"), the
Software and its documentation are classified as "commercial computer
software" and "commercial computer software documentation" respectively
and, pursuant to DFAR Section 227.7202, the Government is acquiring the
Software and its documentation in accordance with the terms of this
License. If the unit or agency is other than DOD, the Software and its
documentation are classified as "commercial computer software" and
"commercial computer software documentation" respectively and, pursuant
to FAR Section 12.212, the Government is acquiring the Software and its
documentation in accordance with the terms of this License.
</BLOCKQUOTE>
<LI>If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
</OL>
<H3>NO WARRANTY</H3>
<OL START="11">
<LI>BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
<LI>IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
</OL>
<H3>END OF TERMS AND CONDITIONS</H3>
</BODY>
</HTML>
+293 -184
Ver Arquivo
@@ -1,223 +1,332 @@
Aladdin Free Public License
Common UNIX Printing System License Agreement
(Version 6, June 17, 1997)
Copyright 1997-1999 by Easy Software Products
44141 AIRPORT VIEW DR STE 204
HOLLYWOOD, MARYLAND 20636-3111 USA
Copyright © 1994, 1995, 1997 Aladdin Enterprises,
Voice: +1.301.373.9603
Email: cups-info@cups.org
WWW: http://www.cups.org
Menlo Park, California, U.S.A. All rights reserved.
Introduction
NOTE: This License is not the same as any of the GNU Licenses
published by the Free Software Foundation. Its terms are
substantially different from those of the GNU Licenses. If you are
familiar with the GNU Licenses, please read this license with
extra care.
The Common UNIX Printing SystemTM, or CUPSTM, is provided under the GNU
General Public License, Version 2. A copy of this license follows this
introduction.
Aladdin Enterprises hereby grants to anyone the permission to apply this
License to their own work, as long as the entire License (including the
above notices and this paragraph) is copied with no changes, additions, or
deletions except for changing the first paragraph of Section 0 to include a
suitable description of the work to which the license is being applied and
of the person or entity that holds the copyright in the work, and, if the
License is being applied to a work created in a country other than the
United States, replacing the first paragraph of Section 6 with an
appropriate reference to the laws of the appropriate country.
For those not familiar with the GNU General Public License, the license
basically allows you to:
0. Subject Matter
* Use the CUPS software at no charge.
* Distribute verbatim copies of the software in source or binary form.
* Sell verbatim copies of the software for a media fee, or sell support
for the software.
* Distribute or sell printer drivers and filters that use the CUPS API so
long as source code is made available under the GPL.
This License applies to the Common UNIX Printing System ("PROGRAM"). The
Common UNIX Printing System is a copyrighted work whose copyright is held by
Easy Software Products (the "LICENSOR"). The Common UNIX Printing System,
CUPS, and the CUPS logo are the trademark property of Easy Software
Products.
What this license does not allow you to do is make changes or add features
to CUPS and then sell a binary distribution without source code. You have to
provide source for any new drivers, changes, or additions to the software,
and all code must be provided under the GPL.
A "work based on the PROGRAM" means either the PROGRAM or any derivative
work of the PROGRAM, as defined in the United States Copyright Act of 1976,
such as a translation or a modification.
Also, since we have trademarked the Common UNIX Printing System, CUPS, and
CUPS logo, you may not release a derivative product using those names
without permission from Easy Software Products.
BY MODIFYING OR DISTRIBUTING THE PROGRAM (OR ANY WORK BASED ON THE PROGRAM),
YOU INDICATE YOUR ACCEPTANCE OF THIS LICENSE TO DO SO, AND ALL ITS TERMS AND
CONDITIONS FOR COPYING, DISTRIBUTING OR MODIFYING THE PROGRAM OR WORKS BASED
ON IT. NOTHING OTHER THAN THIS LICENSE GRANTS YOU PERMISSION TO MODIFY OR
DISTRIBUTE THE PROGRAM OR ITS DERIVATIVE WORKS. THESE ACTIONS ARE PROHIBITED
BY LAW. IF YOU DO NOT ACCEPT THESE TERMS AND CONDITIONS, DO NOT MODIFY OR
DISTRIBUTE THE PROGRAM.
Binary Distribution Rights
1. Licenses
Easy Software Products also sells rights to the CUPS source code under a
binary distribution license for vendors that are unable to release source
code for their drivers or additions and modifications to CUPS under the GPL.
For pricing information please contact us at the address shown above.
LICENSOR hereby grants you the following rights, provided that you comply
with all of the restrictions set forth in this License and provided,
further, that you distribute an unmodified copy of this License with the
PROGRAM:
The Common UNIX Printing System utilizes GNU GhostScript 4.03 to convert
PostScript files into a stream of raster images. For binary distribution
licensing of this software, please contact:
a. You may copy and distribute literal (i.e., verbatim) copies of the
PROGRAM's source code as you receive it throughout the world, in any
medium.
Miles Jones
Director of Marketing
Artifex Software Inc.
454 Las Gallinas Ave., Suite 108
San Rafael, CA 94903 USA
Voice: +1.415.492.9861
Fax: +1.415.492.9862
EMail: info@arsoft.com
b. You may modify the PROGRAM, create works based on the PROGRAM and
distribute copies of such throughout the world, in any medium.
Support
2. Restrictions
Easy Software Products sells software support for distributors and resellers
of CUPS. Support for users of CUPS is available from Easy Software Products
through our ESP Print software.
This license is subject to the following restrictions:
Trademarks
a. Distribution of the PROGRAM or any work based on the PROGRAM by a
commercial organization to any third party is prohibited if any payment
is made in connection with such distribution, whether directly (as in
payment for a copy of the PROGRAM) or indirectly (as in payment for
some service related to the PROGRAM, or payment for some product or
service that includes a copy of the PROGRAM "without charge"; these are
only examples, and not an exhaustive enumeration of prohibited
activities). The following methods of distribution involving payment
shall not in and of themselves be a violation of this restriction:
The Common UNIX Printing System, CUPS, and the CUPS logo are the trademark
property of Easy Software Products. Any derivative of this software may not
use any of these trademarks without the expressed written consent of Easy
Software Products.
i. Posting the PROGRAM on a public access information storage and
retrieval service for which a fee is received for retrieving
information (such as an on-line service), provided that the fee is
not content-dependent (i.e., the fee would be the same for
retrieving the same volume of information consisting of random
data) and that access to the service and to the PROGRAM is
available independent of any other product or service. An example
of a service that does not fall under this section is an on-line
service that is operated by a company and that is only available
to customers of that company. (This is not an exhaustive
enumeration.)
GNU General Public License
ii. Distributing the PROGRAM on removable computer-readable media,
provided that the files containing the PROGRAM are reproduced
entirely and verbatim on such media, that all information on such
media be redistributable for non-commercial purposes without
charge, and that such media are distributed by themselves (except
for accompanying documentation) independent of any other product
or service. Examples of such media include CD-ROM, magnetic tape,
and optical storage media. (This is not intended to be an
exhaustive list.) An example of a distribution that does not fall
under this section is a CD-ROM included in a book or magazine.
(This is not an exhaustive enumeration.)
Version 2, June 1991
b. Activities other than copying, distribution and modification of the
PROGRAM are not subject to this License and they are outside its scope.
Functional use (running) of the PROGRAM is not restricted, and any
output produced through the use of the PROGRAM is subject to this
license only if its contents constitute a work based on the PROGRAM
(independent of having been made by running the PROGRAM).
Copyright 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
c. You must meet all of the following conditions with respect to any work
that you distribute or publish that in whole or in part contains or is
derived from the PROGRAM or any part thereof ("the Work"):
Everyone is permitted to copy and distribute verbatim copies of this license
document, but changing it is not allowed.
i. If you have modified the PROGRAM, you must cause the Work to carry
prominent notices stating that you have modified the PROGRAM's
files and the date of any change;
Preamble
ii. You must cause the Work to be licensed as a whole and at no charge
to all third parties under the terms of this License;
The licenses for most software are designed to take away your freedom to
share and change it. By contrast, the GNU General Public License is intended
to guarantee your freedom to share and change free software--to make sure
the software is free for all its users. This General Public License applies
to most of the Free Software Foundation's software and to any other program
whose authors commit to using it. (Some other Free Software Foundation
software is covered by the GNU Library General Public License instead.) You
can apply it to your programs, too.
iii. If the Work normally reads commands interactively when run, you
must cause it, at each time the Work commences operation, to print
or display an announcement including an appropriate copyright
notice and a notice that there is no warranty (or else, saying
that you provide a warranty). Such notice must also state that
users may redistribute the Work only under the conditions of this
License and tell the user how to view the copy of this License
included with the Work. (Exceptions: if the PROGRAM is interactive
but normally prints or displays such an announcement only at the
request of a user, such as in an "About box", the Work is required
to print or display the notice only under the same circumstances;
if the PROGRAM itself is interactive but does not normally print
such an announcement, the Work is not required to print an
announcement.);
When we speak of free software, we are referring to freedom, not price. Our
General Public Licenses are designed to make sure that you have the freedom
to distribute copies of free software (and charge for this service if you
wish), that you receive source code or can get it if you want it, that you
can change the software or use pieces of it in new free programs; and that
you know you can do these things.
iv. You must accompany the Work with the complete corresponding
machine-readable source code, delivered on a medium customarily
used for software interchange. The source code for a work means
the preferred form of the work for making modifications to it. For
an executable work, complete source code means all the source code
for all modules it contains, plus any associated interface
definition files, plus the scripts used to control compilation and
installation of the executable code. If you distribute with the
Work any component that is normally distributed (in either source
or binary form) with the major components (compiler, kernel, and
so on) of the operating system on which the executable runs, you
must also distribute the source code of that component if you have
it and are allowed to do so;
To protect your rights, we need to make restrictions that forbid anyone to
deny you these rights or to ask you to surrender the rights. These
restrictions translate to certain responsibilities for you if you distribute
copies of the software, or if you modify it.
v. If you distribute any written or printed material at all with the
Work, such material must include either a written copy of this
License, or a prominent written indication that the Work is
covered by this License and written instructions for printing
and/or displaying the copy of the License on the distribution
medium;
For example, if you distribute copies of such a program, whether gratis or
for a fee, you must give the recipients all the rights that you have. You
must make sure that they, too, receive or can get the source code. And you
must show them these terms so they know their rights.
vi. You may not impose any further restrictions on the recipient's
exercise of the rights granted herein.
We protect your rights with two steps: (1) copyright the software, and (2)
offer you this license which gives you legal permission to copy, distribute
and/or modify the software.
If distribution of executable or object code is made by offering the
equivalent ability to copy from a designated place, then offering equivalent
ability to copy the source code from the same place counts as distribution
of the source code, even though third parties are not compelled to copy the
source code along with the object code.
Also, for each author's protection and ours, we want to make certain that
everyone understands that there is no warranty for this free software. If
the software is modified by someone else and passed on, we want its
recipients to know that what they have is not the original, so that any
problems introduced by others will not reflect on the original authors'
reputations.
3. Reservation of Rights
Finally, any free program is threatened constantly by software patents. We
wish to avoid the danger that redistributors of a free program will
individually obtain patent licenses, in effect making the program
proprietary. To prevent this, we have made it clear that any patent must be
licensed for everyone's free use or not licensed at all.
No rights are granted to the PROGRAM except as expressly set forth herein.
You may not copy, modify, sublicense, or distribute the PROGRAM except as
expressly provided under this License. Any attempt otherwise to copy,
modify, sublicense or distribute the PROGRAM is void, and will automatically
terminate your rights under this License. However, parties who have received
copies, or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
The precise terms and conditions for copying, distribution and modification
follow.
4. Other Restrictions
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
If the distribution and/or use of the PROGRAM is restricted in certain
countries for any reason, LICENSOR may add an explicit geographical
distribution limitation excluding those countries, so that distribution is
permitted only in or among countries not thus excluded. In such case, this
License incorporates the limitation as if written in the body of this
License.
1. This License applies to any program or other work which contains a
notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
5. Limitations
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of running
the Program is not restricted, and the output from the Program is
covered only if its contents constitute a work based on the Program
(independent of having been made by running the Program). Whether that
is true depends on what the Program does.
2. You may copy and distribute verbatim copies of the Program's source
code as you receive it, in any medium, provided that you conspicuously
and appropriately publish on each copy an appropriate copyright notice
and disclaimer of warranty; keep intact all the notices that refer to
this License and to the absence of any warranty; and give any other
recipients of the Program a copy of this License along with the
Program.
THE PROGRAM IS PROVIDED TO YOU "AS IS", WITHOUT WARRANTY. THERE IS NO
WARRANTY FOR THE PROGRAM, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE ENTIRE
RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD
THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
3. You may modify your copy or copies of the Program or any portion of it,
thus forming a work based on the Program, and copy and distribute such
modifications or work under the terms of Section 1 above, provided that
you also meet all of these conditions:
a. You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b. You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c. if the modified program normally reads commands interactively when
run, you must cause it, when started running for such interactive
use in the most ordinary way, to print or display an announcement
including an appropriate copyright notice and a notice that there
is no warranty (or else, saying that you provide a warranty) and
that users may redistribute the program under these conditions,
and telling the user how to view a copy of this License.
(Exception: if the Program itself is interactive but does not
normally print such an announcement, your work based on the
Program is not required to print an announcement.)
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
LICENSOR, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM
AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR
DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES
OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
6. General
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
This License is governed by the laws of the State of Maryland, U.S.A.,
excluding choice of law rules.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of a
storage or distribution medium does not bring the other work under the
scope of this License.
4. You may copy and distribute the Program (or a work based on it, under
Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a. Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software
interchange; or,
b. Accompany it with a written offer, valid for at least three years,
to give any third party, for a charge no more than your cost of
physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c. Accompany it with the information you received as to the offer to
distribute corresponding source code. (This alternative is allowed
only for noncommercial distribution and only if you received the
program in object code or executable form with such an offer, in
accord with Subsection b above.)
If any part of this License is found to be in conflict with the law, that
part shall be interpreted in its broadest meaning consistent with the law,
and no other parts of the License shall be affected.
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to control
compilation and installation of the executable. However, as a special
exception, the source code distributed need not include anything that
is normally distributed (in either source or binary form) with the
major components (compiler, kernel, and so on) of the operating system
on which the executable runs, unless that component itself accompanies
the executable.
For United States Government users, the PROGRAM is provided with RESTRICTED
RIGHTS. If you are a unit or agency of the United States Government or are
acquiring the Software for any such unit or agency, the following apply:
If distribution of executable or object code is made by offering access
to copy from a designated place, then offering equivalent access to
copy the source code from the same place counts as distribution of the
source code, even though third parties are not compelled to copy the
source along with the object code.
5. You may not copy, modify, sublicense, or distribute the Program except
as expressly provided under this License. Any attempt otherwise to
copy, modify, sublicense or distribute the Program is void, and will
automatically terminate your rights under this License. However,
parties who have received copies, or rights, from you under this
License will not have their licenses terminated so long as such parties
remain in full compliance.
6. You are not required to accept this License, since you have not signed
it. However, nothing else grants you permission to modify or distribute
the Program or its derivative works. These actions are prohibited by
law if you do not accept this License. Therefore, by modifying or
distributing the Program (or any work based on the Program), you
indicate your acceptance of this License to do so, and all its terms
and conditions for copying, distributing or modifying the Program or
works based on it.
7. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further restrictions
on the recipients' exercise of the rights granted herein. You are not
responsible for enforcing compliance by third parties to this License.
8. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent license
would not permit royalty-free redistribution of the Program by all
those who receive copies directly or indirectly through you, then the
only way you could satisfy both it and this License would be to refrain
entirely from distribution of the Program.
If the unit or agency is the Department of Defense ("DOD"), the
Software and its documentation are classified as "commercial
computer software" and "commercial computer software
documentation" respectively and, pursuant to DFAR Section
227.7202, the Government is acquiring the Software and its
documentation in accordance with the terms of this License. If the
unit or agency is other than DOD, the Software and its
documentation are classified as "commercial computer software" and
"commercial computer software documentation" respectively and,
pursuant to FAR Section 12.212, the Government is acquiring the
Software and its documentation in accordance with the terms of
this License.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made generous
contributions to the wide range of software distributed through that
system in reliance on consistent application of that system; it is up
to the author/donor to decide if he or she is willing to distribute
software through any other system and a licensee cannot impose that
choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
9. If the distribution and/or use of the Program is restricted in certain
countries either by patents or by copyrighted interfaces, the original
copyright holder who places the Program under this License may add an
explicit geographical distribution limitation excluding those
countries, so that distribution is permitted only in or among countries
not thus excluded. In such case, this License incorporates the
limitation as if written in the body of this License.
10. The Free Software Foundation may publish revised and/or new versions of
the General Public License from time to time. Such new versions will be
similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Program does not specify a version
number of this License, you may choose any version ever published by
the Free Software Foundation.
11. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the
author to ask for permission. For software which is copyrighted by the
Free Software Foundation, write to the Free Software Foundation; we
sometimes make exceptions for this. Our decision will be guided by the
two goals of preserving the free status of all derivatives of our free
software and of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH
YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
NECESSARY SERVICING, REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR
DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL
DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM
(INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED
INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF
THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR
OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
+14 -116
Ver Arquivo
@@ -4,21 +4,18 @@
</HEAD>
<BODY>
<H1>README - CUPS v1.0b1</H1>
<H1>README - CUPS v1.0b3</H1>
<H2>Contents</H2>
<UL>
<LI><A HREF="#intro">Introduction</A>
<LI><A HREF="#require">Requirements</A>
<LI><A HREF="#compile">Compiling CUPS</A>
<LI><A HREF="#config">Configuring the Software</A>
<LI><A HREF="#run">Running the Software</A>
<LI><A HREF="#use">Using the Software</A>
<LI><A HREF="#use">Using CUPS</A>
<LI><A HREF="#known">Known Problems</A>
<LI><A HREF="#report">Reporting Problems</A>
<LI><A HREF="#resources">Other Resources</A>
<LI><A HREF="#license">Legal Stuff</A>
<LI><A HREF="#legal">Legal Stuff</A>
</UL>
<H2><A NAME="intro">Introduction</A></H2>
@@ -58,128 +55,29 @@ nroff-like package.
<P>The documentation is formatted using the HTMLDOC software (again, not
needed unless you make changes.)
<H2><A NAME="compile">Compiling CUPS</A></H2>
<H2><A NAME="use">Using CUPS</A></H2>
CUPS uses GNU autoconf to configure the makefiles and source code for your
system. To configure CUPS for your system type:
<P>Pre-compiled binary distributions are available for CUPS from our
web site at
<A HREF="http://www.cups.org/software.html">http://www.cups.org/software.html</A>.
If you'd like to build CUPS from the source, please read the Software
Administrator's Manual.
<UL><PRE>
% ./configure ENTER
</PRE></UL>
The default installation will put the CUPS software in the <CODE>/usr</CODE>
and <CODE>/var</CODE> directories on your system, which will overwrite any
existing printing commands on your system. To install the CUPS software in
another location use the <CODE>--prefix</CODE> option:
<UL><PRE>
% ./configure --prefix=/usr/local ENTER
</PRE></UL>
Once you have configured things, just type:
<UL><PRE>
% make ENTER
</PRE></UL>
to build the software.
<H2><A NAME="install">Installing the Software</A></H2>
To install the software type:
<UL><PRE>
% make install ENTER
</PRE></UL>
<H2><A NAME="config">Configuring the Software</A></H2>
Before you run CUPS for the first time you'll need to edit the CUPS
configuration files which are normally located in /var/cups/conf.
<UL>
The <CODE>cupsd.conf</CODE> file configures all of the
"global" server settings and access control. The default
settings are usually appropriate for most environments.
<P>The <CODE>printers.conf</CODE> file configures each printer
queue. You'll need to add a listing for each printer on your
system.
<P>The <CODE>classes.conf</CODE> file configures each printer
class. You'll need to add a listing for each printer class you
want.
<P>The <CODE>mime.types</CODE> file defines all of the
recognized file types. You don't normally have to edit this
file.
<P>The <CODE>mime.convs</CODE> file defines all of the file
conversion filters. You don't normally have to edit this file.
</UL>
In addition to the files in the /var/cups/conf directory, you'll also need
to copy PPD files for each printer to the /var/cups/ppd directory. If you
don't have a PPD file for your printer, the drivers will still work, just
with reduced functionality.
<H2><A NAME="run">Running the Software</A></H2>
Once you have configured the software you can start the CUPS daemon by
typing:
<UL><PRE>
% /usr/sbin/cupsd &amp; ENTER
</PRE></UL>
<H2><A NAME="use">Using the Software</A></H2>
Once you have installed the software, you can use the normal lp or lpr
commands to print jobs. If you installed the software under /usr then
you shouldn't have to reconfigure any applications to recognize the new
printing system.
<P>One of the advantages of CUPS is that you don't always have to send
PostScript or Text files to your printers. If you have a JPEG file, you
can just type "lp filename.jpg" and CUPS will handle converting it for
you!
<P>You can monitor the status of jobs via the lpstat command or with your
web browser by pointing it at "http://localhost:631".
<P>Once you have installed CUPS, the Software Administrator's Manual and
Software User's Manual are excellent places to start setting things up.
<H2><A NAME="known">Known Problems</A></H2>
The following known problems are being worked on and should be resolved for
the second beta release of CUPS:
the fourth beta release of CUPS:
<UL>
<LI>Documentation is not completed.
<LI>The lpadmin command is currently not provided.
<LI>The lpq command is currently not provided.
<LI>The lpc command currently only supports the help and status
commands.
<LI>While both GNU GhostScript and the CUPS image RIP are
provided, no sample raster printer driver is provided. The
final release of CUPS will include a PCL printer driver.
<LI>Automatic classing is currently not supported.
<LI>The CUPS server should disable core dumps by filters, backends,
and CGI programs.
<LI>The CUPS server should increase the FD limit to the maximum
allowed on the system.
<LI>The CUPS server should close stdin, stdout, and stderr and
run in the background ("daemon" mode...)
<LI>The class and job CGIs are currently not provided.
</UL>
@@ -220,9 +118,9 @@ and the Common UNIX Printing System are the trademark property of Easy Software
Products.
<P>CUPS is provided under the terms of the
<A HREF="LICENSE.html">Aladdin Free Public License</A>
<A HREF="LICENSE.html">GNU General Public License</A>
which is located in the files "LICENSE.html" and "LICENSE.txt". For commercial
licensing information, please contact:
support and "binary-only" licensing information, please contact:
<UL>
Attn: CUPS Licensing Information
+18 -97
Ver Arquivo
@@ -1,19 +1,16 @@
README - CUPS v1.0b1
README - CUPS v1.0b3
CONTENTS
Contents
* Introduction
* Requirements
* Compiling CUPS
* Configuring the Software
* Running the Software
* Using the Software
* Using CUPS
* Known Problems
* Reporting Problems
* Other Resources
* Legal Stuff
INTRODUCTION
Introduction
The Common UNIX Printing System provides a portable printing layer for UNIX®
operating systems. It has been developed by Easy Software Products to
@@ -33,7 +30,7 @@ CUPS also includes a customized version of GNU GhostScript (currently based
off GNU GhostScript 4.03) and an image file RIP that can be used to support
non-PostScript printers.
REQUIREMENTS
Requirements
You'll need an ANSI C compiler to build CUPS on your system. As its name
implies, CUPS is designed to run on the UNIX operating system, however the
@@ -49,98 +46,22 @@ nroff-like package.
The documentation is formatted using the HTMLDOC software (again, not needed
unless you make changes.)
COMPILING CUPS
Using CUPS
CUPS uses GNU autoconf to configure the makefiles and source code for your
system. To configure CUPS for your system type:
Pre-compiled binary distributions are available for CUPS from our web site
at http://www.cups.org/software.html. If you'd like to build CUPS from the
source, please read the Software Administrator's Manual.
% ./configure ENTER
Once you have installed CUPS, the Software Administrator's Manual and
Software User's Manual are excellent places to start setting things up.
The default installation will put the CUPS software in the /usr and /var
directories on your system, which will overwrite any existing printing
commands on your system. To install the CUPS software in another location
use the --prefix option:
% ./configure --prefix=/usr/local ENTER
Once you have configured things, just type:
% make ENTER
to build the software.
INSTALLING THE SOFTWARE
To install the software type:
% make install ENTER
CONFIGURING THE SOFTWARE
Before you run CUPS for the first time you'll need to edit the CUPS
configuration files which are normally located in /var/cups/conf.
The cupsd.conf file configures all of the "global" server settings and
access control. The default settings are usually appropriate for most
environments.
The printers.conf file configures each printer queue. You'll need to
add a listing for each printer on your system.
The classes.conf file configures each printer class. You'll need to add
a listing for each printer class you want.
The mime.types file defines all of the recognized file types. You don't
normally have to edit this file.
The mime.convs file defines all of the file conversion filters. You
don't normally have to edit this file.
In addition to the files in the /var/cups/conf directory, you'll also need
to copy PPD files for each printer to the /var/cups/ppd directory. If you
don't have a PPD file for your printer, the drivers will still work, just
with reduced functionality.
RUNNING THE SOFTWARE
Once you have configured the software you can start the CUPS daemon by
typing:
% /usr/sbin/cupsd & ENTER
USING THE SOFTWARE
Once you have installed the software, you can use the normal lp or lpr
commands to print jobs. If you installed the software under /usr then you
shouldn't have to reconfigure any applications to recognize the new printing
system.
One of the advantages of CUPS is that you don't always have to send
PostScript or Text files to your printers. If you have a JPEG file, you can
just type "lp filename.jpg" and CUPS will handle converting it for you!
You can monitor the status of jobs via the lpstat command or with your web
browser by pointing it at "http://localhost:631".
KNOWN PROBLEMS
Known Problems
The following known problems are being worked on and should be resolved for
the second beta release of CUPS:
the fourth beta release of CUPS:
* Documentation is not completed.
* The lpadmin command is currently not provided.
* The lpq command is currently not provided.
* The lpc command currently only supports the help and status commands.
* While both GNU GhostScript and the CUPS image RIP are provided, no
sample raster printer driver is provided. The final release of CUPS
will include a PCL printer driver.
* Automatic classing is currently not supported.
* The CUPS server should disable core dumps by filters, backends, and CGI
programs.
* The CUPS server should increase the FD limit to the maximum allowed on
the system.
* The CUPS server should close stdin, stdout, and stderr and run in the
background ("daemon" mode...)
* The class and job CGIs are currently not provided.
CUPS has been built and tested on the following operating systems:
@@ -154,13 +75,13 @@ CUPS has been built and tested on the following operating systems:
The client libraries and filters have been successfully compiled under
Microsoft Windows using Visual C++ 6.0.
REPORTING PROBLEMS
Reporting Problems
If you have problems, please send an email to cups-support@cups.org. Include
your operating system and version, compiler and version, and any errors or
problems you've run into.
OTHER RESOURCES
Other Resources
See the CUPS web site at "http://www.cups.org" for other site links.
@@ -169,15 +90,15 @@ You can subscribe to the CUPS mailing list by sending a message containing
problems, questions, and improvements to the CUPS software. New releases of
CUPS are announced to this list as well.
LEGAL STUFF
Legal Stuff
CUPS is Copyright 1993-1999 by Easy Software Products. CUPS, the CUPS logo,
and the Common UNIX Printing System are the trademark property of Easy
Software Products.
CUPS is provided under the terms of the Aladdin Free Public License which is
CUPS is provided under the terms of the GNU General Public License which is
located in the files "LICENSE.html" and "LICENSE.txt". For commercial
licensing information, please contact:
support and "binary-only" licensing information, please contact:
Attn: CUPS Licensing Information
Easy Software Products
+11 -2
Ver Arquivo
@@ -24,8 +24,8 @@
include ../Makedefs
TARGETS = lpc lpr lprm
OBJS = lpc.o lpr.o lprm.o
TARGETS = lpc lpq lpr lprm
OBJS = lpc.o lpq.o lpr.o lprm.o
#
# Make all targets...
@@ -59,6 +59,15 @@ lpc: lpc.o ../cups/libcups.a
lpc.o: ../cups/cups.h ../Makedefs
#
# lpq
#
lpq: lpq.o ../cups/libcups.a
$(CC) $(LDFLAGS) -o lpq lpq.o $(LIBS)
lpq.o: ../cups/cups.h ../Makedefs
#
# lpr
#
+9 -9
Ver Arquivo
@@ -225,7 +225,7 @@ show_status(http_t *http, /* I - HTTP connection to server */
/* Printer URI */
DEBUG_printf(("show_printers(%08x, %08x)\n", http, dests));
DEBUG_printf(("show_status(%08x, %08x)\n", http, dests));
if (http == NULL)
return;
@@ -257,7 +257,7 @@ show_status(http_t *http, /* I - HTTP connection to server */
if ((response = cupsDoRequest(http, request, "/printers/")) != NULL)
{
DEBUG_puts("show_printers: request succeeded...");
DEBUG_puts("show_status: request succeeded...");
/*
* Loop through the printers returned in the list and display
@@ -397,15 +397,15 @@ show_status(http_t *http, /* I - HTTP connection to server */
language = cupsLangDefault();
attr = ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL,
cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL,
cupsLangEncoding(language));
attr = ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL,
language->language);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL,
language->language);
sprintf(printer_uri, "http://localhost/printers/%s", printer);
sprintf(printer_uri, "ipp://localhost/printers/%s", printer);
attr = ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI,
"printer-uri", NULL, printer_uri);
+366
Ver Arquivo
@@ -0,0 +1,366 @@
/*
* "$Id$"
*
* "lpq" command for the Common UNIX Printing System (CUPS).
*
* Copyright 1997-1999 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
* copyright law. Distribution and use rights are outlined in the file
* "LICENSE.txt" which should have been included with this file. If this
* file is missing or damaged please contact Easy Software Products
* at:
*
* Attn: CUPS Licensing Information
* Easy Software Products
* 44141 Airport View Drive, Suite 204
* Hollywood, Maryland 20636-3111 USA
*
* Voice: (301) 373-9603
* EMail: cups-info@cups.org
* WWW: http://www.cups.org
*
* Contents:
*
*/
/*
* Include necessary headers...
*/
/*
* Include necessary headers...
*/
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <cups/cups.h>
#include <cups/language.h>
#include <cups/debug.h>
/*
* Local functions...
*/
static int show_jobs(http_t *, char *, char *, int, int);
/*
* 'main()' - Parse options and commands.
*/
int
main(int argc, /* I - Number of command-line arguments */
char *argv[]) /* I - Command-line arguments */
{
int i; /* Looping var */
http_t *http; /* Connection to server */
char *dest, /* Desired printer */
*user; /* Desired user */
int id, /* Desired job ID */
interval, /* Reporting interval */
longstatus; /* Show file details */
/*
* Connect to the scheduler...
*/
http = httpConnect("localhost", ippPort());
/*
* Check for command-line options...
*/
dest = NULL;
user = NULL;
id = 0;
interval = 0;
longstatus = 0;
for (i = 1; i < argc; i ++)
if (argv[i][0] == '+')
interval = atoi(argv[i] + 1);
else if (argv[i][0] == '-')
{
switch (argv[i][1])
{
case 'P' : /* Printer */
if (argv[i][2])
dest = argv[i] + 2;
else
{
i ++;
dest = argv[i];
}
break;
case 'l' : /* Long status */
longstatus = 1;
break;
default :
fputs("Usage: lpq [-P dest] [-l] [+interval]\n", stderr);
return (1);
}
}
else if (isdigit(argv[i][0]))
id = atoi(argv[i]);
else
user = argv[i];
/*
* Show the status in a loop...
*/
for (;;)
{
i = show_jobs(http, dest, user, id, longstatus);
if (i && interval)
sleep(interval);
else
break;
}
/*
* Close the connection to the server and return...
*/
httpClose(http);
return (0);
}
/*
* 'show_jobs()' - Show printers.
*/
static int /* O - Number of jobs in queue */
show_jobs(http_t *http, /* I - HTTP connection to server */
char *dest, /* I - Destination */
char *user, /* I - User */
int id, /* I - Job ID */
int longstatus) /* I - 1 if long report desired */
{
ipp_t *request, /* IPP Request */
*response; /* IPP Response */
ipp_attribute_t *attr; /* Current attribute */
cups_lang_t *language; /* Default language */
char *jobdest, /* Pointer into job-printer-uri */
*jobuser, /* Pointer to job-originating-user-name */
*jobname; /* Pointer to job-name */
ipp_jstate_t jobstate; /* job-state */
int jobid, /* job-id */
jobsize, /* job-k-octets */
jobpriority, /* job-priority */
jobcount, /* Number of jobs */
rank; /* Rank of job */
char resource[1024]; /* Resource string */
static char *ranks[10] = /* Ranking strings */
{
"th",
"st",
"nd",
"rd",
"th",
"th",
"th",
"th",
"th",
"th"
};
DEBUG_printf(("show_jobs(%08x, %08x, %08x, %d, %d)\n", http, dest, user, id,
longstatus));
if (http == NULL)
return (0);
/*
* Build an IPP_GET_JOBS or IPP_GET_JOB_ATTRIBUTES request, which requires
* the following attributes:
*
* attributes-charset
* attributes-natural-language
* job-uri or printer-uri
* [
*/
request = ippNew();
request->request.op.operation_id = id ? IPP_GET_JOB_ATTRIBUTES : IPP_GET_JOBS;
request->request.op.request_id = 1;
language = cupsLangDefault();
attr = ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
attr = ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
if (dest == NULL)
{
if (id)
sprintf(resource, "ipp://localhost/jobs/%d", id);
else
strcpy(resource, "ipp://localhost/jobs");
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "job-uri",
NULL, resource);
}
else
{
sprintf(resource, "ipp://localhost/printers/%s", dest);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "job-uri",
NULL, resource);
}
if (user)
{
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
"requesting-user-name", NULL, user);
ippAddBoolean(request, IPP_TAG_OPERATION, "my-jobs", 1);
}
/*
* Do the request and get back a response...
*/
if (!longstatus)
puts("Rank\tPri Owner Job Files Total Size");
jobcount = 0;
if ((response = cupsDoRequest(http, request, "/jobs/")) != NULL)
{
rank = 1;
/*
* Loop through the job list and display them...
*/
for (attr = response->attrs; attr != NULL; attr = attr->next)
{
/*
* Skip leading attributes until we hit a job...
*/
while (attr != NULL && attr->group_tag != IPP_TAG_JOB)
attr = attr->next;
if (attr == NULL)
break;
/*
* Pull the needed attributes from this job...
*/
jobid = 0;
jobsize = 0;
jobpriority = 50;
jobstate = IPP_JOB_PENDING;
jobname = "untitled";
jobuser = NULL;
jobdest = NULL;
while (attr != NULL && attr->group_tag == IPP_TAG_JOB)
{
if (strcmp(attr->name, "job-id") == 0 &&
attr->value_tag == IPP_TAG_INTEGER)
jobid = attr->values[0].integer;
if (strcmp(attr->name, "job-k-octets") == 0 &&
attr->value_tag == IPP_TAG_INTEGER)
jobsize = attr->values[0].integer * 1024;
if (strcmp(attr->name, "job-priority") == 0 &&
attr->value_tag == IPP_TAG_INTEGER)
jobpriority = attr->values[0].integer;
if (strcmp(attr->name, "job-state") == 0 &&
attr->value_tag == IPP_TAG_ENUM)
jobstate = (ipp_jstate_t)attr->values[0].integer;
if (strcmp(attr->name, "job-printer-uri") == 0 &&
attr->value_tag == IPP_TAG_URI)
if ((jobdest = strrchr(attr->values[0].string.text, '/')) != NULL)
jobdest ++;
if (strcmp(attr->name, "job-originating-user-name") == 0 &&
attr->value_tag == IPP_TAG_NAME)
jobuser = attr->values[0].string.text;
if (strcmp(attr->name, "job-name") == 0 &&
attr->value_tag == IPP_TAG_NAME)
jobname = attr->values[0].string.text;
attr = attr->next;
}
/*
* See if we have everything needed...
*/
if (jobdest == NULL || jobid == 0)
{
if (attr == NULL)
break;
else
continue;
}
jobcount ++;
/*
* Display the job...
*/
if (longstatus)
{
puts("");
if (jobstate == IPP_JOB_PROCESSING)
printf("%s: active\t\t\t\t ", jobuser);
else
{
printf("%s: %d%s\t\t\t\t ", jobuser, rank, ranks[rank % 10]);
rank ++;
}
printf("[job %03dlocalhost]\n", jobid);
printf("\t%-33s%d bytes\n", jobname, jobsize);
}
else
{
if (jobstate == IPP_JOB_PROCESSING)
printf("active\t");
else
{
printf("%d%s\t", rank, ranks[rank % 10]);
rank ++;
}
printf(" %-5d%-7.7s%-7d%-19s%d bytes\n", jobpriority, jobuser, jobid,
jobname, jobsize);
}
if (attr == NULL)
break;
}
ippDelete(response);
}
return (jobcount);
}
/*
* End of "$Id$".
*/
+2 -2
Ver Arquivo
@@ -146,7 +146,7 @@ main(int argc, /* I - Number of command-line arguments */
if (dest)
{
sprintf(uri, "http://localhost/printers/%s", dest);
sprintf(uri, "ipp://localhost/printers/%s", dest);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI,
"printer-uri", NULL, uri);
ippAddInteger(request, IPP_TAG_OPERATION, IPP_TAG_INTEGER, "job-id",
@@ -154,7 +154,7 @@ main(int argc, /* I - Number of command-line arguments */
}
else
{
sprintf(uri, "http://localhost/jobs/%d", job_id);
sprintf(uri, "ipp://localhost/jobs/%d", job_id);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "job-uri", NULL,
uri);
}
+17 -4
Ver Arquivo
@@ -29,14 +29,27 @@ AC_PREFIX_DEFAULT(/usr)
dnl Clear default debugging options and set normal optimization by
dnl default unless the user asks for debugging specifically.
dnl CFLAGS="${CFLAGS:=}"
dnl CXXFLAGS="${CXXFLAGS:=}"
dnl OPTIM="-O"
dnl AC_SUBST(OPTIM)
dnl AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging [default=no]],
dnl if eval "test x$enable_debug = xyes"; then
dnl OPTIM="-g"
dnl fi)
dnl Clear default debugging options and set debugging by
dnl default unless the user asks for no debugging specifically.
CFLAGS="${CFLAGS:=}"
CXXFLAGS="${CXXFLAGS:=}"
OPTIM="-O"
OPTIM="-g"
AC_SUBST(OPTIM)
AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging [default=no]],
if eval "test x$enable_debug = xyes"; then
OPTIM="-g"
AC_ARG_ENABLE(debug, [ --disable-debug turn off debugging [default=no]],
if eval "test x$disable_debug = xyes"; then
OPTIM="-O"
fi)
dnl Checks for programs...
+16 -6
Ver Arquivo
@@ -59,9 +59,10 @@ static void ppd_default(ppd_option_t *o);
int /* O - Number of conflicts found */
ppdConflicts(ppd_file_t *ppd) /* I - PPD to check */
{
int i, j, /* Looping variables */
int i, j, k, /* Looping variables */
conflicts; /* Number of conflicts */
ppd_const_t *c; /* Current constraint */
ppd_group_t *g, *sg; /* Groups */
ppd_option_t *o1, *o2; /* Options */
ppd_choice_t *c1, *c2; /* Choices */
@@ -69,8 +70,22 @@ ppdConflicts(ppd_file_t *ppd) /* I - PPD to check */
if (ppd == NULL)
return (0);
/*
* Clear all conflicts...
*/
conflicts = 0;
for (i = ppd->num_groups, g = ppd->groups; i > 0; i --, g ++)
{
for (j = g->num_options, o1 = g->options; j > 0; j --, o1 ++)
o1->conflicted = 0;
for (j = g->num_subgroups, sg = g->subgroups; j > 0; j --, sg ++)
for (k = sg->num_options, o1 = sg->options; k > 0; k --, o1 ++)
o1->conflicted = 0;
}
/*
* Loop through all of the UI constraints and flag any options
* that conflict...
@@ -149,11 +164,6 @@ ppdConflicts(ppd_file_t *ppd) /* I - PPD to check */
o1->conflicted = 1;
o2->conflicted = 1;
}
else
{
o1->conflicted = 0;
o2->conflicted = 0;
}
}
/*
+7
Ver Arquivo
@@ -311,6 +311,13 @@ cupsMarkOptions(ppd_file_t *ppd, /* I - PPD file */
conflict = 1;
}
}
else if (strcmp(options->name, "resolution") == 0)
{
if (ppdMarkOption(ppd, "Resolution", options->value))
conflict = 1;
if (ppdMarkOption(ppd, "JCLResolution", options->value))
conflict = 1;
}
else if (ppdMarkOption(ppd, options->name, options->value))
conflict = 1;
+218 -34
Ver Arquivo
@@ -40,6 +40,10 @@
* ppdOpenFile() - Read a PPD file into memory.
* ppd_read() - Read a line from a PPD file, skipping comment lines
* as necessary.
* compare_strings() - Compare two strings.
* compare_groups() - Compare two groups.
* compare_options() - Compare two options.
* compare_choices() - Compare two choices.
*/
/*
@@ -75,6 +79,10 @@
* Local functions...
*/
static int compare_strings(char *s, char *t);
static int compare_groups(ppd_group_t *g0, ppd_group_t *g1);
static int compare_options(ppd_option_t *o0, ppd_option_t *o1);
static int compare_choices(ppd_choice_t *c0, ppd_choice_t *c1);
static int ppd_read(FILE *fp, char *keyword, char *option,
char *text, char **string);
static void ppd_decode(char *string);
@@ -773,40 +781,36 @@ ppdOpen(FILE *fp) /* I - File to read from */
if (subgroup != NULL)
option = ppd_get_option(subgroup, name);
else
else if (group == NULL)
{
if (strcmp(name, "Collate") != 0 &&
strcmp(name, "Duplex") != 0 &&
strcmp(name, "InputSlot") != 0 &&
strcmp(name, "ManualFeed") != 0 &&
strcmp(name, "MediaType") != 0 &&
strcmp(name, "MediaColor") != 0 &&
strcmp(name, "MediaWeight") != 0 &&
strcmp(name, "OutputBin") != 0 &&
strcmp(name, "OutputMode") != 0 &&
strcmp(name, "OutputOrder") != 0 &&
strcmp(name, "PageSize") != 0 &&
strcmp(name, "PageRegion") != 0)
group = ppd_get_group(ppd, "Extra");
else
group = ppd_get_group(ppd, "General");
if (group == NULL)
{
if (strcmp(name, "Collate") != 0 &&
strcmp(name, "Duplex") != 0 &&
strcmp(name, "InputSlot") != 0 &&
strcmp(name, "ManualFeed") != 0 &&
strcmp(name, "MediaType") != 0 &&
strcmp(name, "MediaColor") != 0 &&
strcmp(name, "MediaWeight") != 0 &&
strcmp(name, "OutputBin") != 0 &&
strcmp(name, "OutputMode") != 0 &&
strcmp(name, "OutputOrder") != 0 &&
strcmp(name, "PageSize") != 0 &&
strcmp(name, "PageRegion") != 0)
group = ppd_get_group(ppd, "Printer");
else
group = ppd_get_group(ppd, "General");
if (group == NULL)
{
ppdClose(ppd);
free(string);
return (NULL);
}
option = ppd_get_option(group, name);
group = NULL;
ppdClose(ppd);
free(string);
return (NULL);
}
else
option = ppd_get_option(group, name);
option = ppd_get_option(group, name);
group = NULL;
}
else
option = ppd_get_option(group, name);
if (option == NULL)
{
@@ -826,7 +830,19 @@ ppdOpen(FILE *fp) /* I - File to read from */
else
option->ui = PPD_UI_PICKONE;
strcpy(option->text, text);
if (text[0])
strcpy(option->text, text);
else
{
if (strcmp(name, "PageSize") == 0)
strcpy(option->text, "Media Size");
else if (strcmp(name, "MediaType") == 0)
strcpy(option->text, "Media Type");
else if (strcmp(name, "InputSlot") == 0)
strcpy(option->text, "Media Source");
else
strcpy(option->text, name);
}
option->section = PPD_ORDER_ANY;
}
@@ -903,6 +919,7 @@ ppdOpen(FILE *fp) /* I - File to read from */
if (strchr(string, '/') != NULL) /* Just show human readable text */
strcpy(string, strchr(string, '/') + 1);
ppd_decode(string);
group = ppd_get_group(ppd, string);
}
else if (strcmp(keyword, "CloseGroup") == 0)
@@ -1072,13 +1089,17 @@ ppdOpen(FILE *fp) /* I - File to read from */
if (constraint->choice1[0] == '*')
{
strcpy(constraint->choice2, constraint->option2);
strcpy(constraint->option2, constraint->choice1 + 1);
constraint->choice1[0] = '\0';
}
else if (constraint->option2[0] == '*')
strcpy(constraint->option2, constraint->option2 + 1);
else
{
if (constraint->option2[0] == '*')
strcpy(constraint->option2, constraint->option2 + 1);
constraint->choice2[0] = '\0';
constraint->choice2[0] = '\0';
}
break;
case 4 : /* Two options, two choices... */
@@ -1149,24 +1170,48 @@ ppdOpen(FILE *fp) /* I - File to read from */
* Set the option back-pointer for each choice...
*/
qsort(ppd->groups, ppd->num_groups, sizeof(ppd_group_t),
(int (*)(const void *, const void *))compare_groups);
for (i = ppd->num_groups, group = ppd->groups;
i > 0;
i --, group ++)
{
qsort(group->options, group->num_options, sizeof(ppd_option_t),
(int (*)(const void *, const void *))compare_options);
for (j = group->num_options, option = group->options;
j > 0;
j --, option ++)
{
qsort(option->choices, option->num_choices, sizeof(ppd_choice_t),
(int (*)(const void *, const void *))compare_choices);
for (k = 0; k < option->num_choices; k ++)
option->choices[k].option = (void *)option;
}
qsort(group->subgroups, group->num_subgroups, sizeof(ppd_group_t),
(int (*)(const void *, const void *))compare_groups);
for (j = group->num_subgroups, subgroup = group->subgroups;
j > 0;
j --, subgroup ++)
{
qsort(subgroup->options, subgroup->num_options, sizeof(ppd_option_t),
(int (*)(const void *, const void *))compare_options);
for (k = group->num_options, option = group->options;
k > 0;
k --, option ++)
{
qsort(option->choices, option->num_choices, sizeof(ppd_choice_t),
(int (*)(const void *, const void *))compare_choices);
for (m = 0; m < option->num_choices; m ++)
option->choices[m].option = (void *)option;
}
}
}
return (ppd);
@@ -1245,6 +1290,147 @@ ppdOpenFile(char *filename) /* I - File to read from */
}
/*
* 'compare_strings()' - Compare two strings.
*/
int /* O - Result of comparison */
compare_strings(char *s, /* I - First string */
char *t) /* I - Second string */
{
int diff, /* Difference between digits */
digits; /* Number of digits */
/*
* Loop through both strings, returning only when a difference is
* seen. Also, compare whole numbers rather than just characters, too!
*/
while (*s && *t)
{
if (isdigit(*s) && isdigit(*t))
{
/*
* Got a number; start by skipping leading 0's...
*/
while (*s == '0')
s ++;
while (*t == '0')
t ++;
/*
* Skip equal digits...
*/
while (isdigit(*s) && *s == *t)
{
s ++;
t ++;
}
/*
* Bounce out if *s and *t aren't both digits...
*/
if (!isdigit(*s) || !isdigit(*t))
continue;
if (*s < *t)
diff = -1;
else
diff = 1;
/*
* Figure out how many more digits there are...
*/
digits = 0;
while (isdigit(*s))
{
digits ++;
s ++;
}
while (isdigit(*t))
{
digits --;
t ++;
}
/*
* Return if the number or value of the digits is different...
*/
if (digits < 0)
return (-1);
else if (digits > 0)
return (1);
else
return (diff);
}
else if (tolower(*s) < tolower(*t))
return (-1);
else if (tolower(*s) > tolower(*t))
return (1);
else
{
s ++;
t ++;
}
}
/*
* Return the results of the final comparison...
*/
if (*s)
return (1);
else if (*t)
return (-1);
else
return (0);
}
/*
* 'compare_groups()' - Compare two groups.
*/
static int /* O - Result of comparison */
compare_groups(ppd_group_t *g0, /* I - First group */
ppd_group_t *g1) /* I - Second group */
{
return (compare_strings(g0->text, g1->text));
}
/*
* 'compare_options()' - Compare two options.
*/
static int /* O - Result of comparison */
compare_options(ppd_option_t *o0,/* I - First option */
ppd_option_t *o1)/* I - Second option */
{
return (compare_strings(o0->text, o1->text));
}
/*
* 'compare_choices()' - Compare two choices.
*/
static int /* O - Result of comparison */
compare_choices(ppd_choice_t *c0,/* I - First choice */
ppd_choice_t *c1)/* I - Second choice */
{
return (compare_strings(c0->text, c1->text));
}
/*
* 'ppd_read()' - Read a line from a PPD file, skipping comment lines as
* necessary.
@@ -1495,8 +1681,6 @@ ppd_decode(char *string) /* I - String to decode */
}
/*
* End of "$Id$".
*/
+6 -1
Ver Arquivo
@@ -129,8 +129,13 @@ typedef enum
CUPS_CSPACE_CMYK, /* Cyan, magenta, yellow, black */
CUPS_CSPACE_YMCK, /* Yellow, magenta, cyan, black */
CUPS_CSPACE_KCMY, /* Black, cyan, magenta, yellow */
CUPS_CSPACE_KCMYcm /* Black, cyan, magenta, yellow, *
CUPS_CSPACE_KCMYcm, /* Black, cyan, magenta, yellow, *
* light-cyan, light-magenta */
CUPS_CSPACE_GMCK, /* Gold, magenta, yellow, black */
CUPS_CSPACE_GMCS, /* Gold, magenta, yellow, silver */
CUPS_CSPACE_WHITE, /* White ink (as black) */
CUPS_CSPACE_GOLD, /* Gold foil */
CUPS_CSPACE_SILVER /* Silver foil */
} cups_cspace_t;
+4 -1
Ver Arquivo
@@ -202,6 +202,9 @@ operator := &quot;+&quot; | [ logical AND ]
&quot;!&quot; [ unary NOT ]
</PRE>
</UL>
<P>The <CODE>int</CODE> and <CODE>short</CODE> rules match look for
integers in network byte order (a.k.a. big-endian) with the
most-significant byte first. </P>
<H3><A NAME=3_3_2>3.3.2 mime.convs</A></H3>
<P>The mime.types file defines the recognized file filters and consists
of 1 or more lines of ASCII text. Comment lines start with the pound
@@ -227,7 +230,7 @@ source/type cost program
</UL>
<P>The destination type is assumed to the printer's type. If a printer
supports the source type directly the special filter program &quot;-&quot; may be
used. </P>
specified. </P>
<H4>3.4.1.2 cupsManualCopies</H4>
<P>This boolean attribute notifies the RIP filters that the destination
printer does not support copy generation in hardware. The default value
+153 -146
Ver Arquivo
@@ -1,6 +1,6 @@
%PDF-1.2
%âãÏÓ
1 0 obj<</Producer(htmldoc 2.0b1 Copyright 1997-1999 Michael Sweet, All Rights Reserved.)/CreationDate(D:19990521210311Z)/Title(DRAFT - CUPS Interface Design Description)/Author(Easy Software Products)>>endobj
1 0 obj<</Producer(htmldoc 2.0b1 Copyright 1997-1999 Michael Sweet, All Rights Reserved.)/CreationDate(D:19990611133720Z)/Title(DRAFT - CUPS Interface Design Description)/Author(Easy Software Products)>>endobj
2 0 obj<</Type/Encoding/BaseEncoding/WinAnsiEncoding>>endobj
3 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier/Encoding 2 0 R>>endobj
4 0 obj<</Type/Font/Subtype/Type1/BaseFont/Times-Roman/Encoding 2 0 R>>endobj
@@ -10,27 +10,27 @@
8 0 obj<</Type/Font/Subtype/Type1/BaseFont/Helvetica-Bold/Encoding 2 0 R>>endobj
9 0 obj<</Type/Font/Subtype/Type1/BaseFont/Symbol>>endobj
10 0 obj<</S/URI/URI(http://partners.adobe.com/supportservice/devrelations/PDFS/TN/5003.PPD_Spec_v4.3.pdf)>>endobj
11 0 obj<</Subtype/Link/Rect[336.6 205.2 368.7 216.2]/Border[0 0 0]/A 10 0 R>>endobj
11 0 obj<</Subtype/Link/Rect[336.6 152.4 368.7 163.4]/Border[0 0 0]/A 10 0 R>>endobj
12 0 obj<</S/URI/URI(http://partners.adobe.com/supportservice/devrelations/PDFS/TN/5003.PPD_Spec_v4.3.pdf)>>endobj
13 0 obj<</Subtype/Link/Rect[368.7 205.2 414.8 216.2]/Border[0 0 0]/A 12 0 R>>endobj
13 0 obj<</Subtype/Link/Rect[368.7 152.4 414.8 163.4]/Border[0 0 0]/A 12 0 R>>endobj
14 0 obj<</S/URI/URI(http://partners.adobe.com/supportservice/devrelations/PDFS/TN/5003.PPD_Spec_v4.3.pdf)>>endobj
15 0 obj<</Subtype/Link/Rect[414.8 205.2 448.1 216.2]/Border[0 0 0]/A 14 0 R>>endobj
15 0 obj<</Subtype/Link/Rect[414.8 152.4 448.1 163.4]/Border[0 0 0]/A 14 0 R>>endobj
16 0 obj<</S/URI/URI(http://partners.adobe.com/supportservice/devrelations/PDFS/TN/5003.PPD_Spec_v4.3.pdf)>>endobj
17 0 obj<</Subtype/Link/Rect[448.1 205.2 493.4 216.2]/Border[0 0 0]/A 16 0 R>>endobj
17 0 obj<</Subtype/Link/Rect[448.1 152.4 493.4 163.4]/Border[0 0 0]/A 16 0 R>>endobj
18 0 obj<</S/URI/URI(http://partners.adobe.com/supportservice/devrelations/PDFS/TN/5003.PPD_Spec_v4.3.pdf)>>endobj
19 0 obj<</Subtype/Link/Rect[36.0 192.0 68.7 203.0]/Border[0 0 0]/A 18 0 R>>endobj
19 0 obj<</Subtype/Link/Rect[36.0 139.2 68.7 150.2]/Border[0 0 0]/A 18 0 R>>endobj
20 0 obj<</S/URI/URI(http://partners.adobe.com/supportservice/devrelations/PDFS/TN/5003.PPD_Spec_v4.3.pdf)>>endobj
21 0 obj<</Subtype/Link/Rect[68.7 192.0 122.8 203.0]/Border[0 0 0]/A 20 0 R>>endobj
21 0 obj<</Subtype/Link/Rect[68.7 139.2 122.8 150.2]/Border[0 0 0]/A 20 0 R>>endobj
22 0 obj<</S/URI/URI(http://partners.adobe.com/supportservice/devrelations/PDFS/TN/5003.PPD_Spec_v4.3.pdf)>>endobj
23 0 obj<</Subtype/Link/Rect[122.8 192.0 142.6 203.0]/Border[0 0 0]/A 22 0 R>>endobj
23 0 obj<</Subtype/Link/Rect[122.8 139.2 142.6 150.2]/Border[0 0 0]/A 22 0 R>>endobj
24 0 obj<</S/URI/URI(http://partners.adobe.com/supportservice/devrelations/PDFS/TN/5003.PPD_Spec_v4.3.pdf)>>endobj
25 0 obj<</Subtype/Link/Rect[142.6 192.0 177.2 203.0]/Border[0 0 0]/A 24 0 R>>endobj
25 0 obj<</Subtype/Link/Rect[142.6 139.2 177.2 150.2]/Border[0 0 0]/A 24 0 R>>endobj
26 0 obj<</S/URI/URI(http://partners.adobe.com/supportservice/devrelations/PDFS/TN/5003.PPD_Spec_v4.3.pdf)>>endobj
27 0 obj<</Subtype/Link/Rect[177.2 192.0 238.0 203.0]/Border[0 0 0]/A 26 0 R>>endobj
27 0 obj<</Subtype/Link/Rect[177.2 139.2 238.0 150.2]/Border[0 0 0]/A 26 0 R>>endobj
28 0 obj<</S/URI/URI(http://partners.adobe.com/supportservice/devrelations/PDFS/TN/5003.PPD_Spec_v4.3.pdf)>>endobj
29 0 obj<</Subtype/Link/Rect[238.0 192.0 275.5 203.0]/Border[0 0 0]/A 28 0 R>>endobj
29 0 obj<</Subtype/Link/Rect[238.0 139.2 275.5 150.2]/Border[0 0 0]/A 28 0 R>>endobj
30 0 obj<</S/URI/URI(http://partners.adobe.com/supportservice/devrelations/PDFS/TN/5003.PPD_Spec_v4.3.pdf)>>endobj
31 0 obj<</Subtype/Link/Rect[275.5 192.0 289.3 203.0]/Border[0 0 0]/A 30 0 R>>endobj
31 0 obj<</Subtype/Link/Rect[275.5 139.2 289.3 150.2]/Border[0 0 0]/A 30 0 R>>endobj
32 0 obj[11 0 R
13 0 R
15 0 R
@@ -304,19 +304,19 @@
216 0 obj<</Subtype/Link/Rect[157.2 514.8 178.6 527.8]/Border[0 0 0]/Dest[427 0 R/XYZ null 249 0]>>endobj
217 0 obj<</Subtype/Link/Rect[144.0 501.6 168.8 514.6]/Border[0 0 0]/Dest[430 0 R/XYZ null 782 0]>>endobj
218 0 obj<</Subtype/Link/Rect[168.8 501.6 219.8 514.6]/Border[0 0 0]/Dest[430 0 R/XYZ null 782 0]>>endobj
219 0 obj<</Subtype/Link/Rect[144.0 488.4 168.8 501.4]/Border[0 0 0]/Dest[430 0 R/XYZ null 454 0]>>endobj
220 0 obj<</Subtype/Link/Rect[168.8 488.4 222.2 501.4]/Border[0 0 0]/Dest[430 0 R/XYZ null 454 0]>>endobj
221 0 obj<</Subtype/Link/Rect[108.0 475.2 124.5 488.2]/Border[0 0 0]/Dest[430 0 R/XYZ null 331 0]>>endobj
222 0 obj<</Subtype/Link/Rect[124.5 475.2 172.5 488.2]/Border[0 0 0]/Dest[430 0 R/XYZ null 331 0]>>endobj
223 0 obj<</Subtype/Link/Rect[172.5 475.2 205.2 488.2]/Border[0 0 0]/Dest[430 0 R/XYZ null 331 0]>>endobj
224 0 obj<</Subtype/Link/Rect[205.2 475.2 259.2 488.2]/Border[0 0 0]/Dest[430 0 R/XYZ null 331 0]>>endobj
225 0 obj<</Subtype/Link/Rect[259.2 475.2 280.6 488.2]/Border[0 0 0]/Dest[430 0 R/XYZ null 331 0]>>endobj
226 0 obj<</Subtype/Link/Rect[144.0 462.0 168.8 475.0]/Border[0 0 0]/Dest[430 0 R/XYZ null 224 0]>>endobj
227 0 obj<</Subtype/Link/Rect[168.8 462.0 199.0 475.0]/Border[0 0 0]/Dest[430 0 R/XYZ null 224 0]>>endobj
228 0 obj<</Subtype/Link/Rect[199.0 462.0 250.0 475.0]/Border[0 0 0]/Dest[430 0 R/XYZ null 224 0]>>endobj
229 0 obj<</Subtype/Link/Rect[250.0 462.0 261.3 475.0]/Border[0 0 0]/Dest[430 0 R/XYZ null 224 0]>>endobj
230 0 obj<</Subtype/Link/Rect[261.3 462.0 284.3 475.0]/Border[0 0 0]/Dest[430 0 R/XYZ null 224 0]>>endobj
231 0 obj<</Subtype/Link/Rect[284.3 462.0 305.7 475.0]/Border[0 0 0]/Dest[430 0 R/XYZ null 224 0]>>endobj
219 0 obj<</Subtype/Link/Rect[144.0 488.4 168.8 501.4]/Border[0 0 0]/Dest[430 0 R/XYZ null 401 0]>>endobj
220 0 obj<</Subtype/Link/Rect[168.8 488.4 222.2 501.4]/Border[0 0 0]/Dest[430 0 R/XYZ null 401 0]>>endobj
221 0 obj<</Subtype/Link/Rect[108.0 475.2 124.5 488.2]/Border[0 0 0]/Dest[430 0 R/XYZ null 278 0]>>endobj
222 0 obj<</Subtype/Link/Rect[124.5 475.2 172.5 488.2]/Border[0 0 0]/Dest[430 0 R/XYZ null 278 0]>>endobj
223 0 obj<</Subtype/Link/Rect[172.5 475.2 205.2 488.2]/Border[0 0 0]/Dest[430 0 R/XYZ null 278 0]>>endobj
224 0 obj<</Subtype/Link/Rect[205.2 475.2 259.2 488.2]/Border[0 0 0]/Dest[430 0 R/XYZ null 278 0]>>endobj
225 0 obj<</Subtype/Link/Rect[259.2 475.2 280.6 488.2]/Border[0 0 0]/Dest[430 0 R/XYZ null 278 0]>>endobj
226 0 obj<</Subtype/Link/Rect[144.0 462.0 168.8 475.0]/Border[0 0 0]/Dest[430 0 R/XYZ null 171 0]>>endobj
227 0 obj<</Subtype/Link/Rect[168.8 462.0 199.0 475.0]/Border[0 0 0]/Dest[430 0 R/XYZ null 171 0]>>endobj
228 0 obj<</Subtype/Link/Rect[199.0 462.0 250.0 475.0]/Border[0 0 0]/Dest[430 0 R/XYZ null 171 0]>>endobj
229 0 obj<</Subtype/Link/Rect[250.0 462.0 261.3 475.0]/Border[0 0 0]/Dest[430 0 R/XYZ null 171 0]>>endobj
230 0 obj<</Subtype/Link/Rect[261.3 462.0 284.3 475.0]/Border[0 0 0]/Dest[430 0 R/XYZ null 171 0]>>endobj
231 0 obj<</Subtype/Link/Rect[284.3 462.0 305.7 475.0]/Border[0 0 0]/Dest[430 0 R/XYZ null 171 0]>>endobj
232 0 obj<</Subtype/Link/Rect[108.0 448.8 124.5 461.8]/Border[0 0 0]/Dest[436 0 R/XYZ null 800 0]>>endobj
233 0 obj<</Subtype/Link/Rect[124.5 448.8 171.2 461.8]/Border[0 0 0]/Dest[436 0 R/XYZ null 800 0]>>endobj
234 0 obj<</Subtype/Link/Rect[171.2 448.8 235.7 461.8]/Border[0 0 0]/Dest[436 0 R/XYZ null 800 0]>>endobj
@@ -634,9 +634,9 @@
373 0 obj<</D[427 0 R/XYZ null 619 null]>>endobj
374 0 obj<</D[427 0 R/XYZ null 249 null]>>endobj
375 0 obj<</D[430 0 R/XYZ null 782 null]>>endobj
376 0 obj<</D[430 0 R/XYZ null 454 null]>>endobj
377 0 obj<</D[430 0 R/XYZ null 331 null]>>endobj
378 0 obj<</D[430 0 R/XYZ null 224 null]>>endobj
376 0 obj<</D[430 0 R/XYZ null 401 null]>>endobj
377 0 obj<</D[430 0 R/XYZ null 278 null]>>endobj
378 0 obj<</D[430 0 R/XYZ null 171 null]>>endobj
379 0 obj<</D[436 0 R/XYZ null 800 null]>>endobj
380 0 obj<</D[436 0 R/XYZ null 547 null]>>endobj
381 0 obj<</D[436 0 R/XYZ null 215 null]>>endobj
@@ -778,25 +778,32 @@ endobj
áÒw³P04TIS046V072PIÑp rt QÐUp
VðÌ+I-JKLNUpI-ÎLÏQÉE™%™ùyš!Y\º ºPF 3=30ßP!89¿ ÂÈV!õendstream
endobj
420 0 obj
120
endobj
421 0 obj<</Type/Page/Parent 408 0 R/Contents 422 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F4 4 0 R/F8 7 0 R/F9 8 0 R/Fc 9 0 R>>>>>>endobj
420 0 obj
120
endobj
421 0 obj<</Type/Page/Parent 408 0 R/Contents 422 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F4 4 0 R/F8 7 0 R/F9 8 0 R/Fc 9 0 R>>>>>>endobj
422 0 obj<</Length 423 0 R/Filter/FlateDecode>>stream
xÚ­•AsÚ0…ïüŠ=’™ØÁ†`Ãé0S&69qQ­5¨cKT“òï+!C ¥âf|°Á«ï­´ïÁ÷Vs…ÐíC^µ>e­‡§È
ó¦õ £íX Dž£ºË¾¹’G?vEÞcì»2?€ñ2Ia"ò]…\Íw zuywà÷my¶A(DYŠ7Æ×n!=_L<êRøº½1_k†œ×à0öCð¾keö#¸Tn[o<O¼Àï ÞXð‚­wÒéÍ 'k´lHJÂ/ù¦ñ k$þŸM&gðt¯4V0ãeAr„ *¶æö–K¶}?[$ÒÑÜJø?Ž"¢ÐoD"ŒhÅ8SÚìEHe÷²#eþåŽôi=™_C'R¬%©*k‚Æ]§‹kèódzoì»R7àfÉ5n†ª©EÒåæ·Tø?c{\Ǿªõöo“{O°ç¢cbY§8„g½AyбúÇsÁ½‹+°-|d†gÓé‚nù½ûcÀΜov74†b\Û~Vm*I¡Ww7ç,I3QÊ,‘”ð¼== “Qà{iš±§<ÔöH8…L®n6è‰5«¶åáWËèóŽQlÆ™ Šå¡¡+bŽ0W7Ocó
îá ãèÆ`]D°241×"µ·ãzQí½0
¡~ý§éÅ`„Í«®ý<ÍZ/­Ÿ²6Úbendstream
endobj
423 0 obj
529
ó¦õ £íX Dž£ºË¾¹’G?vEÞcì»2?€ñ2Ia"ò]…\Íw zuywà÷my¶A(DYŠ7Æ×n!=_L<êRøº½1_k†œ×à0öCð¾keö#¸Tn[o<O¼Àï ÞXð‚­wÒéÍ 'k´lHJÂ/ù¦ñ k$þŸM&gðt¯4V0ãeAr„ *¶æö–K¶}?[$ÒÑÜJø?Ž"¢ÐoD"ŒhÅ8SÚìEHe÷²#eþåŽôi=™_C'R¬%©*k‚Æ]§‹kèódzoì»R7àfÉ5n†ª©EÒåæ·Tø?c{\Ǿªõöo“{O°ç¢cbY§8„g½AyбúÇsÁ½‹+°-|d†gÓé‚nù½ûcÀΜov74†b\Û~Vm*I¡Ww7ç,I3QÊ,‘”ð¼== “Qà{iš±§<ÔöH8…L®n6è‰5«¶åáWËèóŽQlÆ™ Šå¡¡+bŽ0W7Ocó
endobj
424 0 obj<</Type/Page/Parent 408 0 R/Contents 425 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F8 7 0 R>>>>>>endobj
425 0 obj<</Length 426 0 R/Filter/FlateDecode>>stream
xÚ-‹Á
423 0 obj
529
endobj
424 0 obj<</Type/Page/Parent 408 0 R/Contents 425 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F8 7 0 R>>>>>>endobj
425 0 obj<</Length 426 0 R/Filter/FlateDecode>>stream
xÚ-‹Á
Â0DïûsÔC´›”êµZ Þ´® q#ŒšöÿшÌÀ03¼71ª¯®)öÚ-û5˜!ìV¶‚\gÝÐöƒíùpÂ>MšÃÅ+:ã-•ð9¾¦øLs¹“) ù“uYjË‹¿n1hЬÉëX®Ð‘>H.#ùendstream
endobj
426 0 obj
123
endobj
427 0 obj<</Type/Page/Parent 408 0 R/Contents 428 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F4 4 0 R/F8 7 0 R/F9 8 0 R/Fc 9 0 R>>>>>>endobj
428 0 obj<</Length 429 0 R/Filter/FlateDecode>>stream
VÑn0}ÏW\õ©•
$!d{ÚªVŠ´jBß"MޱO`˜m¶t_¿k „ШÝP_\¸çÜ˹ǧý9 `Š?,C˜E@óɧdòîaÁ
426 0 obj
Žo¢å’ôzki˜’$sN(Ó7ÉW»ðcWí-bßÕû܈"‹aà <ˆ¬EÌ!šúÙÊl}r`@»zõÜÖCʸ ä¤,…ÜÃŽ™ßŒIˆ½0'ˆ"S0Èò$ØàˆbvìÌüÐö•$g)TÚR[ôzó´A.¢RU¾C¼›!^¨ºfÀ|O衞h!µÐFCÁ¡*Á."Èl
:ÜÜ­×`ر¥°ugæwv$)£"GáÝ8úC=JvB¡ƒµÏ¥}>h|.óözzœNí¬Ó#çÛ›ÛNHÍp˜tÐ⥺Í{Çsb²\þƒàƒ„ð™È}Eö켑µ¥g¶°á‘T™¸Ç~A5³ŒQ#
Yë‰ZCδFí´!¦c~Ã"»g(v=¶NÑFÙã­JýýÊ~v½UHS7ë­K\!µLÌßû
ŠÉ«ÛæÈ™¡þöfÐþ²½¬7ÐŽy¡Xg0èYª! #§vÒ9¦v™H™4v ýÒÐöKv ¯DÏñ­hµF@+¥Ÿ=ƒB‹ì¥øƒ¥¿HV!Ê÷Þ-’6‹ cüŽnm-á|Óוöˆ¦Bœãz\îÅÿ…ºðâx±ò‚q°pl66[ŒƒEã`Ëq°‘{[\÷H)ƒZKÏù·ŸEM0ڈѥŒ¥6Ü-lƒ©5>¬yÿ¹·¨(”¥.\H¤·¶òbl»[בœr¹*SbXÚwMO¸½Ïö×^!Þé×3yëÇû7òøîéëÆré:…j€KeŒTñÔýýD™¸ØWŠØnÇ'¾8~õ?y<õWX‡5õ&î“É·É__ˆ–endstream
@@ -981,9 +988,9 @@ endobj
§»ŸýYy- tz®¯Nµå"ùÕú%Œ$endstream
endobj
465 0 obj
ÇáéýúÌU‚«™ëáûJÝÌzæ¬óø
ñ]5
⃋ø Šw]ûB>Uâ»ÖQ½
864
endobj
466 0 obj<</Type/Page/Parent 408 0 R/Contents 467 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F8 7 0 R>>>>>>endobj
467 0 obj<</Length 468 0 R/Filter/FlateDecode>>stream
xÚ-ŒÁ
‚@„ïûsÔƒ¶«’zèºB^*ý½ RÛ
@@ -1448,110 +1455,110 @@ xref
0000028956 00000 n
0000029062 00000 n
0000029168 00000 n
0000028426 00000 n
0000028532 00000 n
0000028638 00000 n
0000028744 00000 n
0000028850 00000 n
0000028956 00000 n
0000029062 00000 n
0000029168 00000 n
0000029274 00000 n
0000029380 00000 n
0000029486 00000 n
0000029592 00000 n
0000029698 00000 n
0000029804 00000 n
0000029910 00000 n
0000030016 00000 n
0000030122 00000 n
0000030228 00000 n
0000030334 00000 n
0000030440 00000 n
0000030546 00000 n
0000030652 00000 n
0000030758 00000 n
0000030864 00000 n
0000030970 00000 n
0000031076 00000 n
0000031182 00000 n
0000031288 00000 n
0000031394 00000 n
0000031500 00000 n
0000031606 00000 n
0000031712 00000 n
0000031818 00000 n
0000031924 00000 n
0000032030 00000 n
0000032136 00000 n
0000032242 00000 n
0000032348 00000 n
0000032454 00000 n
0000032560 00000 n
0000032666 00000 n
0000032769 00000 n
0000032872 00000 n
0000032975 00000 n
0000033079 00000 n
0000033181 00000 n
0000033284 00000 n
0000034654 00000 n
0000034758 00000 n
0000034863 00000 n
0000034967 00000 n
0000035072 00000 n
0000035122 00000 n
0000035156 00000 n
0000035190 00000 n
0000035785 00000 n
0000035834 00000 n
0000035883 00000 n
0000035932 00000 n
0000035981 00000 n
0000036030 00000 n
0000036079 00000 n
0000036128 00000 n
0000036177 00000 n
0000036226 00000 n
0000036275 00000 n
0000036324 00000 n
0000036373 00000 n
0000036422 00000 n
0000036471 00000 n
0000036520 00000 n
0000036569 00000 n
0000036618 00000 n
0000036667 00000 n
0000036716 00000 n
0000036765 00000 n
0000036814 00000 n
0000036863 00000 n
0000036912 00000 n
0000036961 00000 n
0000037010 00000 n
0000037059 00000 n
0000037108 00000 n
0000037157 00000 n
0000037206 00000 n
0000037255 00000 n
0000037304 00000 n
0000037353 00000 n
0000037402 00000 n
0000037451 00000 n
0000037500 00000 n
0000037549 00000 n
0000037598 00000 n
0000037647 00000 n
0000037696 00000 n
0000037745 00000 n
0000037794 00000 n
0000037843 00000 n
0000037892 00000 n
0000037941 00000 n
0000038218 00000 n
0000038370 00000 n
0000029274 00000 n
0000029380 00000 n
0000029486 00000 n
0000029592 00000 n
0000029698 00000 n
0000029804 00000 n
0000029910 00000 n
0000030016 00000 n
0000030122 00000 n
0000030228 00000 n
0000030334 00000 n
0000030440 00000 n
0000030546 00000 n
0000030652 00000 n
0000030758 00000 n
0000030864 00000 n
0000030970 00000 n
0000031076 00000 n
0000031182 00000 n
0000031288 00000 n
0000031394 00000 n
0000031500 00000 n
0000031606 00000 n
0000031712 00000 n
0000031818 00000 n
0000031924 00000 n
0000032030 00000 n
0000032136 00000 n
0000032242 00000 n
0000032348 00000 n
0000032454 00000 n
0000032560 00000 n
0000032666 00000 n
0000032769 00000 n
0000032872 00000 n
0000032975 00000 n
0000033079 00000 n
0000033181 00000 n
0000033284 00000 n
0000034654 00000 n
0000034758 00000 n
0000034863 00000 n
0000034967 00000 n
0000035072 00000 n
0000035122 00000 n
0000035156 00000 n
0000035190 00000 n
0000035785 00000 n
0000035834 00000 n
0000035883 00000 n
0000035932 00000 n
0000035981 00000 n
0000036030 00000 n
0000036079 00000 n
0000036128 00000 n
0000036177 00000 n
0000036226 00000 n
0000036275 00000 n
0000036324 00000 n
0000036373 00000 n
0000036422 00000 n
0000036471 00000 n
0000036520 00000 n
0000036569 00000 n
0000036618 00000 n
0000036667 00000 n
0000036716 00000 n
0000036765 00000 n
0000036814 00000 n
0000036863 00000 n
0000036912 00000 n
0000036961 00000 n
0000037010 00000 n
0000037059 00000 n
0000037108 00000 n
0000037157 00000 n
0000037206 00000 n
0000037255 00000 n
0000037304 00000 n
0000037353 00000 n
0000037402 00000 n
0000037451 00000 n
0000037500 00000 n
0000037549 00000 n
0000037598 00000 n
0000037647 00000 n
0000037696 00000 n
0000037745 00000 n
0000037794 00000 n
0000037843 00000 n
0000037892 00000 n
0000037941 00000 n
0000038218 00000 n
0000038370 00000 n
0000044766 00000 n
0000044788 00000 n
0000044901 00000 n
0000045003 00000 n
0000045023 00000 n
0000045163 00000 n
0000046071 00000 n
0000046092 00000 n
0000046205 00000 n
0000046396 00000 n
0000046417 00000 n
0000045003 00000 n
0000046557 00000 n
0000047157 00000 n
+5 -1
Ver Arquivo
@@ -156,6 +156,9 @@ operator := "+" | [ logical AND ]
"!" [ unary NOT ]
</PRE></UL>
<P>The <CODE>int</CODE> and <CODE>short</CODE> rules match look for integers
in network byte order (a.k.a. big-endian) with the most-significant byte first.
<H3>mime.convs</H3>
<P>The mime.types file defines the recognized file filters and consists
@@ -188,7 +191,8 @@ source/type cost program
</PRE></UL>
<P>The destination type is assumed to the printer's type. If a printer
supports the source type directly the special filter program "-" may be used.
supports the source type directly the special filter program "-" may be
specified.
<H4>cupsManualCopies</H4>
+3 -3
Ver Arquivo
@@ -418,7 +418,7 @@ Listen 127.0.0.1:631
</UL>
<P>instead of the <CODE>Port</CODE> directive. </P>
<P>If you want to limit access to a specific network/subnet, make sure
you specific only the network address and not your system's network
you specify only the network address and not your system's network
address! </P>
<H3><A NAME=5_1_3>BrowsePort</A></H3>
<P>The <CODE>BrowsePort</CODE> directive controls which port is
@@ -605,9 +605,9 @@ the file type based upon the contents of the file instead. </P>
to string </LI>
<LI><CODE>char(offset,value)</CODE> - True if byte is identical </LI>
<LI><CODE>short(offset,value)</CODE> - True if 16-bit integer is
identical </LI>
identical (network or &quot;big-endian&quot; byte order) </LI>
<LI><CODE>int(offset,value)</CODE> - True if 32-bit integer is
identical </LI>
identical (network or &quot;big-endian&quot; byte order) </LI>
<LI><CODE>locale(&quot;string&quot;)</CODE> - True if current locale matches
string </LI>
</UL>
+92 -93
Ver Arquivo
@@ -1,6 +1,6 @@
%PDF-1.2
%âãÏÓ
1 0 obj<</Producer(htmldoc 2.0b1 Copyright 1997-1999 Michael Sweet, All Rights Reserved.)/CreationDate(D:19990521210317Z)/Title(DRAFT - CUPS Software Administrators Manual)/Author(Easy Software Products)>>endobj
1 0 obj<</Producer(htmldoc 2.0b1 Copyright 1997-1999 Michael Sweet, All Rights Reserved.)/CreationDate(D:19990611133723Z)/Title(DRAFT - CUPS Software Administrators Manual)/Author(Easy Software Products)>>endobj
2 0 obj<</Type/Encoding/BaseEncoding/WinAnsiEncoding>>endobj
3 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier/Encoding 2 0 R>>endobj
4 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier-Oblique/Encoding 2 0 R>>endobj
@@ -118,7 +118,7 @@
109 0 obj<</Subtype/Link/Rect[108.0 132.0 127.9 145.0]/Border[0 0 0]/Dest[237 0 R/XYZ null 612 0]>>endobj
110 0 obj<</Subtype/Link/Rect[127.9 132.0 163.9 145.0]/Border[0 0 0]/Dest[237 0 R/XYZ null 612 0]>>endobj
111 0 obj<</Subtype/Link/Rect[144.0 118.8 195.0 131.8]/Border[0 0 0]/Dest[237 0 R/XYZ null 492 0]>>endobj
112 0 obj<</Subtype/Link/Rect[144.0 105.6 197.5 118.6]/Border[0 0 0]/Dest[240 0 R/XYZ null 700 0]>>endobj
112 0 obj<</Subtype/Link/Rect[144.0 105.6 197.5 118.6]/Border[0 0 0]/Dest[240 0 R/XYZ null 686 0]>>endobj
113 0 obj<</Subtype/Link/Rect[72.0 79.2 80.2 92.2]/Border[0 0 0]/Dest[243 0 R/XYZ null 818 0]>>endobj
114 0 obj<</Subtype/Link/Rect[80.2 79.2 89.3 92.2]/Border[0 0 0]/Dest[243 0 R/XYZ null 818 0]>>endobj
115 0 obj<</Subtype/Link/Rect[89.3 79.2 126.2 92.2]/Border[0 0 0]/Dest[243 0 R/XYZ null 818 0]>>endobj
@@ -290,7 +290,7 @@
172 0 obj<</D[237 0 R/XYZ null 683 null]>>endobj
173 0 obj<</D[237 0 R/XYZ null 612 null]>>endobj
174 0 obj<</D[237 0 R/XYZ null 492 null]>>endobj
175 0 obj<</D[240 0 R/XYZ null 700 null]>>endobj
175 0 obj<</D[240 0 R/XYZ null 686 null]>>endobj
176 0 obj<</D[243 0 R/XYZ null 818 null]>>endobj
177 0 obj<</D[243 0 R/XYZ null 429 null]>>endobj
178 0 obj<</D[243 0 R/XYZ null 337 null]>>endobj
@@ -489,11 +489,14 @@ endobj
VÎO+)O,JUpLÉÍÌË,.)J,É/*VðMÌ+MÌÑ ÉâÒ…hÖ…ê¶[…Àü Ò¼¼Ì¼t…’ŒT¸a %®!\\„‚)%endstream
endobj
212 0 obj
131
endobj
131
endobj
213 0 obj<</Type/Page/Parent 182 0 R/Contents 214 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F2 4 0 R/F4 5 0 R/F6 7 0 R/F8 8 0 R/F9 9 0 R>>>>>>endobj
214 0 obj<</Length 215 0 R/Filter/FlateDecode>>stream
UQoÚ0~çWœ*Më¤H`ö¶UìaZ'ZÒ½»±·‰íÚˆ¿³—5´ë„D¿»ï¾ûÎyd0Æ_³&TÍà[9}_@¶€rƒÿ(fS(éåRXi.,ÓpÓ²–Á5&ì§òASÈ2J*LÇC,wÜ@µ#Ê!)7Uk 3°“°¥ 4’òÍ1"(PV3Ë@¹Rðä
޲Õ`ŽÆ²fÊ!ÇÏù+8Æj‹XŒA­m¸€+Ù4˜ñ%¹p¶ˆgCpÜ/;èKÈ%T!º–ã¸8êŠéÔ
²76ðÅ«‰åHÛóh`£eËu‰Òš æÛ@:Ùd˜;:k.ªÿ%„Š’Ú z°ö’Àï@€‹m'R,•·îx-+bÔÅž÷=jÕü¾_‡rÍ*+õ±Ç• ¬A(È
UQoÚ0~çWœ*Më¤H`ö¶UìaZ'ZÒ½»±·‰íÚˆ¿³—5´ë„D¿»ï¾ûÎyd0Æ_³&TÍà[9}_@¶€rƒÿ(fS(éåRXi.,ÓpÓ²–Á5&ì§òASÈ2J*LÇC,wÜ@µ#Ê!)7Uk 3°“°¥ 4’òÍ1"(PV3Ë@¹Rðä
Rh¤a¿R þüñõ÷çHýêIs~ô_SÿJ©ëÜèÚ[ɽuf5oÏß»ˆ³Ã™^Ý­Ö~¾†7ª>‚n_Õ럸ÝyØEª.@*g…/1ÅÂI¸qÛö,gT7s/ NcœªÎ#8Cä{Áãù~öŠäãîûàŸ>FÙžW¬ÍcjHWoB•¢=Ü)Ë_åò¶w)äÅãÏ⯩p³ï™=04:®¿_$ÔqOj¼gˆŽ1RǥɋӾ‡BEœÂ AN³¤A—%¡UnÖY>늙¾åŸ»£Ú1aÂ]Ô
ŠÁ
ým†p'¼±%RÕým3IoA\?ÑV¾²»œ·p{|…´g>"†¥ipË÷,ÜtçIdÿÑzÏÚƒŒéÏOûý‰)ôv–úùBŸ"’®æá ÓmÞü¯
ÊÃßû&Lçãá"xbáÞ—åàfð¤ZÜçendstream
@@ -529,14 +532,10 @@ endobj
! {¹Ì$
™CÛYu*k
Ž]×´hÇ>½ 9”vðÁÇD&q0áans}eüó•*²
! {¹Ì$
™CÛYu*k
Ž]×´hÇ>½ 9”vðÁÇD&q0áans}eüó•*²
¾ >\Ð&¬!‹†|HŽP:Š“¼×ìÈÞe>-endstream
endobj
¾ >\Ð&¬!‹†|HŽP:Š“¼×ìÈÞe>-endstream
endobj
224 0 obj
endobj
141
endobj
225 0 obj<</Type/Page/Parent 182 0 R/Contents 226 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 5 0 R/F8 8 0 R/F9 9 0 R>>>>>>endobj
226 0 obj<</Length 227 0 R/Filter/FlateDecode>>stream
@@ -637,7 +636,7 @@ endobj
endobj
248 0 obj
1010
250 0 obj<</Length 251 0 R/Filter/FlateDecode>>stream
endobj
249 0 obj<</Type/Page/Parent 182 0 R/Contents 250 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 5 0 R/F6 7 0 R/F8 8 0 R/F9 9 0 R>>>>>>endobj
250 0 obj<</Length 251 0 R/Filter/FlateDecode>>stream
xÚ•UQo›@ ~ϯðž–j…I“’·nm¤VªÔ­ìi¦ Éu—»”;†òïks švY"ˆ}öçÏŸÍó „¿!L#M ]>'ƒ³y á¹I޶ÉtêO ɆɊÆ-ù/©—0’Ÿ$Oè;†0tžÞ(Þ{:cЇíÁî™!ä¤0ÖgéªNvÅ,†+ VƒM!”å…×ä$…âje™P½9äZJ] µ¡r]¬™ZÍZ ±Q6,Ð GtŸ
@@ -876,87 +875,87 @@ xref
0000014869 00000 n
0000014918 00000 n
0000014967 00000 n
0000015114 00000 n
0000015163 00000 n
0000015212 00000 n
0000015261 00000 n
0000015310 00000 n
0000015359 00000 n
0000015408 00000 n
0000015457 00000 n
0000015506 00000 n
0000015555 00000 n
0000015604 00000 n
0000015653 00000 n
0000015702 00000 n
0000015751 00000 n
0000015800 00000 n
0000015849 00000 n
0000015898 00000 n
0000015947 00000 n
0000015996 00000 n
0000016045 00000 n
0000016094 00000 n
0000016143 00000 n
0000016192 00000 n
0000016241 00000 n
0000016290 00000 n
0000016339 00000 n
0000016388 00000 n
0000016437 00000 n
0000016486 00000 n
0000016535 00000 n
0000016584 00000 n
0000016633 00000 n
0000016682 00000 n
0000016731 00000 n
0000016780 00000 n
0000016829 00000 n
0000016878 00000 n
0000016927 00000 n
0000016976 00000 n
0000017253 00000 n
0000017405 00000 n
0000023797 00000 n
0000023819 00000 n
0000023932 00000 n
0000024034 00000 n
0000024054 00000 n
0000024185 00000 n
0000024954 00000 n
0000024975 00000 n
0000025116 00000 n
0000025494 00000 n
0000025515 00000 n
0000025655 00000 n
0000026569 00000 n
0000026590 00000 n
0000026730 00000 n
0000028121 00000 n
0000028143 00000 n
0000028297 00000 n
0000029199 00000 n
0000029220 00000 n
0000029374 00000 n
0000030301 00000 n
0000030322 00000 n
0000030471 00000 n
0000031182 00000 n
0000031203 00000 n
0000031316 00000 n
0000031518 00000 n
0000031539 00000 n
0000031697 00000 n
0000032447 00000 n
0000032468 00000 n
0000032626 00000 n
0000033678 00000 n
0000033699 00000 n
0000033857 00000 n
0000034654 00000 n
0000034675 00000 n
0000015016 00000 n
0000015065 00000 n
0000015114 00000 n
0000015163 00000 n
0000015212 00000 n
0000015261 00000 n
0000015310 00000 n
0000015359 00000 n
0000015408 00000 n
0000015457 00000 n
0000015506 00000 n
0000015555 00000 n
0000015604 00000 n
0000015653 00000 n
0000015702 00000 n
0000015751 00000 n
0000015800 00000 n
0000015849 00000 n
0000015898 00000 n
0000015947 00000 n
0000015996 00000 n
0000016045 00000 n
0000016094 00000 n
0000016143 00000 n
0000016192 00000 n
0000016241 00000 n
0000016290 00000 n
0000016339 00000 n
0000016388 00000 n
0000016437 00000 n
0000016486 00000 n
0000016535 00000 n
0000016584 00000 n
0000016633 00000 n
0000016682 00000 n
0000016731 00000 n
0000016780 00000 n
0000016829 00000 n
0000016878 00000 n
0000016927 00000 n
0000016976 00000 n
0000017253 00000 n
0000017405 00000 n
0000023797 00000 n
0000023819 00000 n
0000023932 00000 n
0000024034 00000 n
0000024054 00000 n
0000024185 00000 n
0000024954 00000 n
0000024975 00000 n
0000025116 00000 n
0000025494 00000 n
0000025515 00000 n
0000025655 00000 n
0000026569 00000 n
0000026590 00000 n
0000026730 00000 n
0000028121 00000 n
0000028143 00000 n
0000028297 00000 n
0000029199 00000 n
0000029220 00000 n
0000029374 00000 n
0000030301 00000 n
0000030322 00000 n
0000030471 00000 n
0000031182 00000 n
0000031203 00000 n
0000031316 00000 n
0000031518 00000 n
0000031539 00000 n
0000031697 00000 n
0000032447 00000 n
0000032468 00000 n
0000032626 00000 n
0000033678 00000 n
0000033699 00000 n
0000033857 00000 n
0000034654 00000 n
0000034675 00000 n
0000034788 00000 n
0000035161 00000 n
0000035000 00000 n
0000035021 00000 n
+3 -3
Ver Arquivo
@@ -413,7 +413,7 @@ Listen 127.0.0.1:631
<P>instead of the <CODE>Port</CODE> directive.
<P>If you want to limit access to a specific network/subnet, make sure you
specific only the network address and not your system's network address!
specify only the network address and not your system's network address!
<H3>BrowsePort</H3>
@@ -677,10 +677,10 @@ the file type based upon the contents of the file instead.
<LI><CODE>char(offset,value)</CODE> - True if byte is identical
<LI><CODE>short(offset,value)</CODE> - True if 16-bit integer
is identical
is identical (network or "big-endian" byte order)
<LI><CODE>int(offset,value)</CODE> - True if 32-bit integer is
identical
identical (network or "big-endian" byte order)
<LI><CODE>locale("string")</CODE> - True if current locale
matches string
+7 -4
Ver Arquivo
@@ -110,6 +110,8 @@ main(int argc, /* I - Number of command-line arguments */
g = 1.0;
b = 1.0;
Copies = atoi(argv[4]);
options = NULL;
num_options = cupsParseOptions(argv[5], 0, &options);
@@ -118,9 +120,6 @@ main(int argc, /* I - Number of command-line arguments */
ppdMarkDefaults(ppd);
cupsMarkOptions(ppd, num_options, options);
if ((val = cupsGetOption("copies", num_options, options)) != NULL)
Copies = atoi(val);
if ((val = cupsGetOption("multiple-document-handling", num_options, options)) != NULL)
{
/*
@@ -245,12 +244,16 @@ main(int argc, /* I - Number of command-line arguments */
puts("%!");
if (ppd != NULL && ppd->patches != NULL)
puts(ppd->patches);
ppdEmit(ppd, stdout, PPD_ORDER_DOCUMENT);
ppdEmit(ppd, stdout, PPD_ORDER_ANY);
ppdEmit(ppd, stdout, PPD_ORDER_PROLOG);
if (g != 1.0 || b != 1.0)
printf("{ neg 1 add %.3f exp neg 1 add %.3f mul } bind settransfer\n", g, b);
printf("{ neg 1 add dup 0 lt { pop 1 } { %.3f exp neg 1 add } "
"ifelse %.3f mul } bind settransfer\n", g, b);
if (Copies > 1 && !slowcollate)
{
+11 -4
Ver Arquivo
@@ -114,7 +114,7 @@ int Floyd4x4[4][4] =
ib_t OnPixels[256], /* On-pixel LUT */
OffPixels[256]; /* Off-pixel LUT */
int Planes[] = /* Number of planes for each colorspace */
{ 1, 3, 4, 1, 3, 3, 4, 4, 4, 6 };
{ 1, 3, 4, 1, 3, 3, 4, 4, 4, 6, 4, 4, 1, 1, 1 };
/*
@@ -214,6 +214,8 @@ main(int argc, /* I - Number of command-line arguments */
g = 1.0;
b = 1.0;
Copies = atoi(argv[4]);
options = NULL;
num_options = cupsParseOptions(argv[5], 0, &options);
@@ -222,9 +224,6 @@ main(int argc, /* I - Number of command-line arguments */
ppdMarkDefaults(ppd);
cupsMarkOptions(ppd, num_options, options);
if ((val = cupsGetOption("copies", num_options, options)) != NULL)
Copies = atoi(val);
if ((val = cupsGetOption("multiple-document-handling", num_options, options)) != NULL)
{
/*
@@ -325,6 +324,9 @@ main(int argc, /* I - Number of command-line arguments */
break;
case CUPS_CSPACE_K :
case CUPS_CSPACE_WHITE :
case CUPS_CSPACE_GOLD :
case CUPS_CSPACE_SILVER :
primary = IMAGE_BLACK;
secondary = IMAGE_BLACK;
header.cupsBitsPerPixel = header.cupsBitsPerColor;
@@ -713,6 +715,9 @@ main(int argc, /* I - Number of command-line arguments */
yerr0, yerr1, r0, r1);
break;
case CUPS_CSPACE_K :
case CUPS_CSPACE_WHITE :
case CUPS_CSPACE_GOLD :
case CUPS_CSPACE_SILVER :
format_K(&header, row, y, plane, z->xsize, z->ysize,
yerr0, yerr1, r0, r1);
break;
@@ -729,6 +734,8 @@ main(int argc, /* I - Number of command-line arguments */
yerr0, yerr1, r0, r1);
break;
case CUPS_CSPACE_YMCK :
case CUPS_CSPACE_GMCK :
case CUPS_CSPACE_GMCS :
format_YMCK(&header, row, y, plane, z->xsize, z->ysize,
yerr0, yerr1, r0, r1);
break;
+7 -4
Ver Arquivo
@@ -129,6 +129,8 @@ main(int argc, /* I - Number of command-line arguments */
g = 1.0;
b = 1.0;
Copies = atoi(argv[4]);
ppd = ppdOpenFile(getenv("PPD"));
options = NULL;
@@ -145,9 +147,6 @@ main(int argc, /* I - Number of command-line arguments */
if ((val = cupsGetOption("page-set", num_options, options)) != NULL)
PageSet = val;
if ((val = cupsGetOption("copies", num_options, options)) != NULL)
Copies = atoi(val);
if ((val = cupsGetOption("multiple-document-handling", num_options, options)) != NULL)
{
/*
@@ -242,6 +241,9 @@ main(int argc, /* I - Number of command-line arguments */
puts(line);
if (ppd != NULL && ppd->patches != NULL)
puts(ppd->patches);
ppdEmit(ppd, stdout, PPD_ORDER_DOCUMENT);
ppdEmit(ppd, stdout, PPD_ORDER_ANY);
ppdEmit(ppd, stdout, PPD_ORDER_PROLOG);
@@ -253,7 +255,8 @@ main(int argc, /* I - Number of command-line arguments */
"end");
if (g != 1.0 || b != 1.0)
printf("{ neg 1 add %.3f exp neg 1 add %.3f mul } bind settransfer\n", g, b);
printf("{ neg 1 add dup 0 lt { pop 1 } { %.3f exp neg 1 add } "
"ifelse %.3f mul } bind settransfer\n", g, b);
if (Copies > 1 && (!Collate || !slowcollate))
printf("/#copies %d def\n", Copies);
+7 -3
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: accept.8 327 1999-05-14 17:03:06Z mike $"
.\" "$Id: accept.8 380 1999-06-10 16:15:04Z mike $"
.\"
.\" accept/reject man page for the Common UNIX Printing System (CUPS).
.\"
@@ -29,7 +29,11 @@ accept/reject \- accept/reject jobs sent to a destination
destination(s)
.br
.B reject
.I [ -r [ reason ] ]
[ -h
.I server
] [ -r [
.I reason
] ]
destination(s)
.SH DESCRIPTION
\fBaccept\fR instructs the printing system to accept print jobs to the
@@ -49,5 +53,5 @@ CUPS Software Administrator's Manual
.SH COPYRIGHT
Copyright 1993-1999 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: accept.8 327 1999-05-14 17:03:06Z mike $".
.\" End of "$Id: accept.8 380 1999-06-10 16:15:04Z mike $".
.\"
+7 -5
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: enable.8 327 1999-05-14 17:03:06Z mike $"
.\" "$Id: enable.8 380 1999-06-10 16:15:04Z mike $"
.\"
.\" enable/disable man page for the Common UNIX Printing System (CUPS).
.\"
@@ -29,9 +29,11 @@ disable, disable \- stop/start printers and classes
destination(s)
.br
.B disable
.I [ \-c ]
.I [ \-r [ reason ] ]
destination(s)
[ \-c ] [ -h
.I server
] [ \-r [
.I reason
] ] destination(s)
.SH DESCRIPTION
\fBenable\fR starts the named printers or classes.
.LP
@@ -58,5 +60,5 @@ CUPS Software Administrator's Manual
Copyright 1993-1999 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: enable.8 327 1999-05-14 17:03:06Z mike $".
.\" End of "$Id: enable.8 380 1999-06-10 16:15:04Z mike $".
.\"
+5 -3
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: lp.1 343 1999-05-20 16:16:48Z mike $"
.\" "$Id: lp.1 380 1999-06-10 16:15:04Z mike $"
.\"
.\" lp/cancel man page for the Common UNIX Printing System (CUPS).
.\"
@@ -41,7 +41,9 @@ cancel \- cancel jobs
]
.br
.B cancel
[ \-a ] [
[ \-a ] [ -h
.I server
] [
.I id
] [
.I destination
@@ -63,5 +65,5 @@ CUPS Software User's Manual
.SH COPYRIGHT
Copyright 1993-1999 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: lp.1 343 1999-05-20 16:16:48Z mike $".
.\" End of "$Id: lp.1 380 1999-06-10 16:15:04Z mike $".
.\"
+11 -5
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: lpadmin.8 343 1999-05-20 16:16:48Z mike $"
.\" "$Id: lpadmin.8 380 1999-06-10 16:15:04Z mike $"
.\"
.\" lpadmin man page for the Common UNIX Printing System (CUPS).
.\"
@@ -26,16 +26,22 @@
lpadmin \- configure cups printers and classes
.SH SYNOPSIS
.B lpadmin
\-d
[ -h
.I server
] \-d
.I destination
.br
.B lpadmin
\-p
[ -h
.I server
] \-p
.I printer
.I option(s)
.br
.B lpadmin
\-x
[ -h
.I server
] \-x
.I destination
.SH DESCRIPTION
\fBlpadmin\fR configures printer and class queues provided by CUPS. It can also
@@ -109,5 +115,5 @@ CUPS Software Administrator's Manual
.SH COPYRIGHT
Copyright 1993-1999 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: lpadmin.8 343 1999-05-20 16:16:48Z mike $".
.\" End of "$Id: lpadmin.8 380 1999-06-10 16:15:04Z mike $".
.\"
+21 -4
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: lpstat.1 327 1999-05-14 17:03:06Z mike $"
.\" "$Id: lpstat.1 380 1999-06-10 16:15:04Z mike $"
.\"
.\" lpstat man page for the Common UNIX Printing System (CUPS).
.\"
@@ -26,17 +26,34 @@
lpstat \- print cups status information
.SH SYNOPSIS
.B lpstat
[ -a [
.I destination(s)
] ] [ -c [
.I class(es)
] ] [ -d ] [ -h
.I server
] [ -o [
.I destination(s)
] ] [ -p [
.I printer(s)
] ] [ -r ] [ -s ] [ -t ] [ -u [
.I user(s)
] ] [ -v [
.I printer(s)
] ]
.SH DESCRIPTION
\fBlpstat\fR
\fBlpstat\fR displays status information about the current classes, jobs, and
printers. When run with no arguments, \fBlpstat\fR will list jobs queued by
the user.
.SH COMPATIBILITY
Unlike the System V printing system, CUPS allows printer names to contain
any printable character except SPACE and TAB. Also, printer and class names are
\fBnot\fR case-sensitive.
\fBnot\fR case-sensitive.
.SH SEE ALSO
cancel(1), lp(1),
CUPS Software User's Manual
.SH COPYRIGHT
Copyright 1993-1999 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: lpstat.1 327 1999-05-14 17:03:06Z mike $".
.\" End of "$Id: lpstat.1 380 1999-06-10 16:15:04Z mike $".
.\"
+2 -1
Ver Arquivo
@@ -52,6 +52,7 @@
*UIConstraints: *PageSize A4 *InputSlot Envelope
*UIConstraints: *PageSize A5 *InputSlot Envelope
*UIConstraints: *PageSize B5 *InputSlot Envelope
*UIConstraints: *Resolution 600dpi *ColorModel CMYK
*OpenUI *PageSize/Media Size: PickOne
*OrderDependency: 10 AnySetup *PageSize
@@ -137,7 +138,7 @@
*Resolution 600dpi/600 DPI: "<</HWResolution[600 600]/cupsColorSpace 3>>setpagedevice"
*CloseUI: *Resolution
*OpenUI *ColorModel/Output ColorModel: PickOne
*OpenUI *ColorModel/Output Mode: PickOne
*OrderDependency: 10 AnySetup *ColorModel
*DefaultColorModel: CMYK
*ColorModel CMYK/Color: "<</cupsColorOrder 1/cupsColorSpace 8/cupsCompression 2>>setpagedevice"
+1 -1
Ver Arquivo
@@ -125,7 +125,7 @@
*OpenUI *Resolution/Output Resolution: PickOne
*OrderDependency: 20 AnySetup *Resolution
*DefaultResolution: 600dpi
*DefaultResolution: 300dpi
*Resolution 150dpi/150 DPI: "<</HWResolution[150 150]/cupsColorOrder 0/cupsColorSpace 3/cupsCompression 2>>setpagedevice"
*Resolution 300dpi/300 DPI: "<</HWResolution[300 300]/cupsColorOrder 0/cupsColorSpace 3/cupsCompression 2>>setpagedevice"
*Resolution 600dpi/600 DPI: "<</HWResolution[600 600]/cupsColorOrder 0/cupsColorSpace 3/cupsCompression 2>>setpagedevice"
-482
Ver Arquivo
@@ -1,482 +0,0 @@
GNU LIBRARY GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the library GPL. It is
numbered 2 because it goes with version 2 of the ordinary GPL.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Library General Public License, applies to some
specially designated Free Software Foundation software, and to any
other libraries whose authors decide to use it. You can use it for
your libraries, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if
you distribute copies of the library, or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link a program with the library, you must provide
complete object files to the recipients so that they can relink them
with the library, after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
Our method of protecting your rights has two steps: (1) copyright
the library, and (2) offer you this license which gives you legal
permission to copy, distribute and/or modify the library.
Also, for each distributor's protection, we want to make certain
that everyone understands that there is no warranty for this free
library. If the library is modified by someone else and passed on, we
want its recipients to know that what they have is not the original
version, so that any problems introduced by others will not reflect on
the original authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that companies distributing free
software will individually obtain patent licenses, thus in effect
transforming the program into proprietary software. To prevent this,
we have made it clear that any patent must be licensed for everyone's
free use or not licensed at all.
Most GNU software, including some libraries, is covered by the ordinary
GNU General Public License, which was designed for utility programs. This
license, the GNU Library General Public License, applies to certain
designated libraries. This license is quite different from the ordinary
one; be sure to read it in full, and don't assume that anything in it is
the same as in the ordinary license.
The reason we have a separate public license for some libraries is that
they blur the distinction we usually make between modifying or adding to a
program and simply using it. Linking a program with a library, without
changing the library, is in some sense simply using the library, and is
analogous to running a utility program or application program. However, in
a textual and legal sense, the linked executable is a combined work, a
derivative of the original library, and the ordinary General Public License
treats it as such.
Because of this blurred distinction, using the ordinary General
Public License for libraries did not effectively promote software
sharing, because most developers did not use the libraries. We
concluded that weaker conditions might promote sharing better.
However, unrestricted linking of non-free programs would deprive the
users of those programs of all benefit from the free status of the
libraries themselves. This Library General Public License is intended to
permit developers of non-free programs to use free libraries, while
preserving your freedom as a user of such programs to change the free
libraries that are incorporated in them. (We have not seen how to achieve
this as regards changes in header files, but we have achieved it as regards
changes in the actual functions of the Library.) The hope is that this
will lead to faster development of free libraries.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, while the latter only
works together with the library.
Note that it is possible for a library to be covered by the ordinary
General Public License rather than by this special one.
GNU LIBRARY GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library which
contains a notice placed by the copyright holder or other authorized
party saying it may be distributed under the terms of this Library
General Public License (also called "this License"). Each licensee is
addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also compile or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
c) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
d) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the source code distributed need not include anything that is normally
distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Library General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!
+1
Ver Arquivo
@@ -140,6 +140,7 @@ arch.h: genarch
pstoraster: $(OBJS) ../Makedefs ../cups/libcups.a
$(CC) $(LDFLAGS) -o pstoraster $(OBJS) $(IMGLIBS)
gdevcups.o: ../cups/raster.h
$(OBJS): arch.h ../config.h ../Makedefs
gconf.o iconf.o gscdef.o: gconfig.h
+16 -2
Ver Arquivo
@@ -461,6 +461,9 @@ cups_map_color_rgb(gx_device *pdev, /* I - Device info */
switch (cups->header.cupsColorSpace)
{
case CUPS_CSPACE_K :
case CUPS_CSPACE_WHITE :
case CUPS_CSPACE_GOLD :
case CUPS_CSPACE_SILVER :
prgb[0] =
prgb[1] =
prgb[2] = lut_color_rgb[c3];
@@ -531,6 +534,8 @@ cups_map_color_rgb(gx_device *pdev, /* I - Device info */
break;
case CUPS_CSPACE_YMCK :
case CUPS_CSPACE_GMCK :
case CUPS_CSPACE_GMCS :
k = lut_color_rgb[c3];
divk = gx_max_color_value - k;
if (divk == 0)
@@ -683,6 +688,9 @@ cups_map_rgb_color(gx_device *pdev, /* I - Device info */
break;
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;
@@ -838,6 +846,8 @@ cups_map_rgb_color(gx_device *pdev, /* I - Device info */
break;
case CUPS_CSPACE_YMCK :
case CUPS_CSPACE_GMCK :
case CUPS_CSPACE_GMCS :
ic = gx_max_color_value - r;
im = gx_max_color_value - g;
iy = gx_max_color_value - b;
@@ -1451,6 +1461,9 @@ cups_set_color_info(gx_device *pdev) /* I - Device info */
default :
case CUPS_CSPACE_W :
case CUPS_CSPACE_K :
case CUPS_CSPACE_WHITE :
case CUPS_CSPACE_GOLD :
case CUPS_CSPACE_SILVER :
cups->header.cupsBitsPerPixel = cups->header.cupsBitsPerColor;
cups->color_info.depth = cups->header.cupsBitsPerPixel;
cups->color_info.num_components = 1;
@@ -1486,6 +1499,8 @@ cups_set_color_info(gx_device *pdev) /* I - Device info */
case CUPS_CSPACE_CMYK :
case CUPS_CSPACE_YMCK :
case CUPS_CSPACE_KCMY :
case CUPS_CSPACE_GMCK :
case CUPS_CSPACE_GMCS :
if (cups->header.cupsColorOrder != CUPS_ORDER_CHUNKED)
cups->header.cupsBitsPerPixel = cups->header.cupsBitsPerColor;
else
@@ -1496,8 +1511,7 @@ cups_set_color_info(gx_device *pdev) /* I - Device info */
break;
}
if (cups->header.cupsColorSpace != CUPS_CSPACE_W &&
cups->header.cupsColorSpace != CUPS_CSPACE_K)
if (cups->color_info.num_components > 1)
{
cups->color_info.max_gray = (1 << cups->header.cupsBitsPerColor) - 1;
cups->color_info.max_color = (1 << cups->header.cupsBitsPerColor) - 1;
+49
Ver Arquivo
@@ -543,6 +543,28 @@ ReadClient(client_t *con) /* I - Client to read from */
break;
case HTTP_POST_RECV :
/*
* See if the POST request includes a Content-Length field, and if
* so check the length against any limits that are set...
*/
if (con->http.fields[HTTP_FIELD_CONTENT_LENGTH][0] &&
atoi(con->http.fields[HTTP_FIELD_CONTENT_LENGTH]) > MaxRequestSize &&
MaxRequestSize > 0)
{
/*
* Request too large...
*/
if (!SendError(con, HTTP_REQUEST_TOO_LARGE))
{
CloseClient(con);
return (0);
}
break;
}
/*
* See what kind of POST request this is; for IPP requests the
* content-type field will be "application/ipp"...
@@ -804,8 +826,35 @@ ReadClient(client_t *con) /* I - Client to read from */
{
if (con->file)
{
fstat(con->file, &filestats);
close(con->file);
con->file = 0;
if (filestats.st_size > MaxRequestSize &&
MaxRequestSize > 0)
{
/*
* Request is too big; remove it and send an error...
*/
unlink(con->filename);
if (con->request)
{
/*
* Delete any IPP request data...
*/
ippDelete(con->request);
con->request = NULL;
}
if (!SendError(con, HTTP_REQUEST_TOO_LARGE))
{
CloseClient(con);
return (0);
}
}
}
if (con->request)
+91 -4
Ver Arquivo
@@ -147,6 +147,8 @@ StopBrowsing(void)
void
UpdateBrowseList(void)
{
int i; /* Looping var */
int len; /* Length of name string */
int bytes; /* Number of bytes left */
char packet[1540]; /* Broadcast packet */
cups_ptype_t type; /* Printer type */
@@ -158,8 +160,11 @@ UpdateBrowseList(void)
resource[HTTP_MAX_URI]; /* Resource portion of URI */
int port; /* Port portion of URI */
char name[IPP_MAX_NAME], /* Name of printer */
*ptr; /* Pointer into hostname */
printer_t *p; /* Printer information */
*hptr, /* Pointer into hostname */
*sptr; /* Pointer into ServerName */
printer_t *p, /* Printer information */
*pclass, /* Printer class */
*first; /* First printer in class */
/*
@@ -199,8 +204,12 @@ UpdateBrowseList(void)
type |= CUPS_PRINTER_REMOTE;
if ((ptr = strchr(host, '.')) != NULL)
*ptr = '\0';
hptr = strchr(host, '.');
sptr = strchr(ServerName, '.');
if (hptr != NULL && sptr != NULL &&
strcasecmp(hptr, sptr) == 0)
*hptr = '\0';
if (type & CUPS_PRINTER_CLASS)
{
@@ -269,6 +278,84 @@ UpdateBrowseList(void)
p->state = state;
p->accepting = state != IPP_PRINTER_STOPPED;
p->browse_time = time(NULL);
/*
* Do auto-classing if needed...
*/
if (ImplicitClasses)
{
/*
* Loop through all available printers and create classes as needed...
*/
for (p = Printers, len = 0; p != NULL; p = p->next)
{
/*
* Skip classes...
*/
if (p->type & CUPS_PRINTER_CLASS)
{
len = 0;
continue;
}
/*
* If len == 0, get the length of this printer name up to the "@"
* sign (if any).
*/
if (len > 0 &&
strncasecmp(p->name, name + 3, len) == 0 &&
(p->name[len] == '\0' || p->name[len] == '@'))
{
/*
* We have more than one printer with the same name; see if
* we have a class, and if this printer is a member...
*/
if ((pclass = FindClass(name)) == NULL)
pclass = AddClass(name);
if (first != NULL)
{
for (i = 0; i < pclass->num_printers; i ++)
if (pclass->printers[i] == first)
break;
if (i >= pclass->num_printers)
AddPrinterToClass(pclass, first);
first = NULL;
}
for (i = 0; i < pclass->num_printers; i ++)
if (pclass->printers[i] == p)
break;
if (i >= pclass->num_printers)
AddPrinterToClass(pclass, p);
}
else
{
/*
* First time around; just get name length and mark it as first
* in the list...
*/
if ((hptr = strchr(p->name, '@')) != NULL)
len = hptr - p->name;
else
len = strlen(p->name);
strcpy(name, "Any");
strncpy(name + 3, p->name, len);
name[len + 3] = '\0';
first = p;
}
}
}
}
+34 -4
Ver Arquivo
@@ -194,8 +194,10 @@ CheckJobs(void)
{
DEBUG_printf(("CheckJobs: current->dest = \'%s\'\n", current->dest));
if ((printer = FindPrinter(current->dest)) == NULL)
if (FindClass(current->dest) != NULL)
printer = FindAvailablePrinter(current->dest);
else
printer = FindPrinter(current->dest);
if (printer == NULL && FindClass(current->dest) == NULL)
{
@@ -317,6 +319,7 @@ StartJob(int id, /* I - Job ID */
DEBUG_puts("StartJob: found job in list.");
current->state = IPP_JOB_PROCESSING;
current->status = 0;
current->printer = printer;
printer->job = current;
SetPrinterState(printer, IPP_PRINTER_PROCESSING);
@@ -332,6 +335,14 @@ StartJob(int id, /* I - Job ID */
filters = mimeFilter(MimeDatabase, current->filetype,
printer->filetype, &num_filters);
if (num_filters == 0)
{
LogMessage(LOG_ERROR, "Unable to convert file to printable format for job %s-%d!",
printer->name, current->id);
CancelJob(current->id);
return;
}
/*
* Building the options string is harder than it needs to be, but
* for the moment we need to pass strings for command-line args and
@@ -663,7 +674,11 @@ StopJob(int id)
{
DEBUG_puts("StopJob: job state is \'processing\'.");
SetPrinterState(current->printer, IPP_PRINTER_IDLE);
if (current->status)
SetPrinterState(current->printer, IPP_PRINTER_STOPPED);
else
SetPrinterState(current->printer, IPP_PRINTER_IDLE);
current->state = IPP_JOB_STOPPED;
current->printer->job = NULL;
current->printer = NULL;
@@ -791,9 +806,24 @@ UpdateJob(job_t *job) /* I - Job to check */
DEBUG_printf(("UpdateJob: job %d is complete.\n", job->id));
FD_CLR(job->pipe, &InputSet);
job->printer->state_message[0] = '\0';
if (job->status)
{
/*
* Job had errors; stop it...
*/
CancelJob(job->id);
StopJob(job->id);
}
else
{
/*
* Job printed successfully; cancel it...
*/
job->printer->state_message[0] = '\0';
CancelJob(job->id);
}
}
}
+1
Ver Arquivo
@@ -41,6 +41,7 @@ typedef struct job_str
ipp_t *attrs; /* Job attributes */
int pipe; /* Status pipe for this job */
int procs[MAX_FILTERS + 2]; /* Process IDs, 0 terminated */
int status; /* Status code from filters */
printer_t *printer; /* Printer this job is assigned to */
} job_t;
+23 -28
Ver Arquivo
@@ -35,6 +35,7 @@
#define _MAIN_C_
#include "cupsd.h"
#include <sys/resource.h>
/*
@@ -64,6 +65,7 @@ main(int argc, /* I - Number of command-line arguments */
listener_t *lis; /* Current listener */
time_t activity; /* Activity timer */
struct timeval timeout; /* select() timeout */
struct rlimit limit; /* Runtime limit */
#ifdef HAVE_SIGACTION
struct sigaction action; /* Actions for POSIX signals */
#endif /* HAVE_SIGACTION */
@@ -105,6 +107,24 @@ main(int argc, /* I - Number of command-line arguments */
putenv("TZ=GMT");
tzset();
#ifndef DEBUG
/*
* Disable core dumps...
*/
getrlimit(RLIMIT_CORE, &limit);
limit.rlim_cur = 0;
setrlimit(RLIMIT_CORE, &limit);
#endif /* DEBUG */
/*
* Set the maximum number of files...
*/
getrlimit(RLIMIT_NOFILE, &limit);
limit.rlim_cur = limit.rlim_max;
setrlimit(RLIMIT_NOFILE, &limit);
/*
* Catch hangup and child signals and ignore broken pipes...
*/
@@ -336,37 +356,12 @@ sigchld_handler(int sig) /* I - Signal number */
if (status)
{
/*
* A fatal error occurred, so stop the printer until the problem
* can be resolved...
* A fatal error occurred; save the exit status so we know to stop
* the printer when all of the filters finish...
*/
StopPrinter(job->printer);
job->status = status;
}
else
{
/*
* OK return status; see if all processes are complete...
*/
for (i = 0; job->procs[i]; i ++)
if (job->procs[i] > 0)
break;
if (job->procs[i])
return; /* Still have active processes left */
/*
* OK, this was the last process; cancel the job...
*/
DEBUG_printf(("sigcld_handler: job %d is completed.\n", job->id));
job->printer->state_message[0] = '\0';
CancelJob(job->id);
CheckJobs();
}
break;
}
}
+6
Ver Arquivo
@@ -843,6 +843,12 @@ SetPrinterAttrs(printer_t *p) /* I - Printer to setup */
ppdClose(ppd);
}
else if (access(filename, 0) == 0)
{
LogMessage(LOG_ERROR, "PPD file for %s cannot be loaded!", p->name);
AddPrinterFilter(p, "application/vnd.cups-postscript 0 -");
}
ippAddIntegers(p->attrs, IPP_TAG_PRINTER, IPP_TAG_ENUM,
"finishings-supported", num_finishings, (int *)finishings);
+1 -1
Ver Arquivo
@@ -88,7 +88,7 @@ lp.o: ../cups/cups.h ../Makedefs
#
lpadmin: lpadmin.o ../cups/libcups.a
$(CC) $(LDFLAGS) -o lpadmin lpadmin.o $(LIBS)
$(CC) $(LDFLAGS) -o lpadmin lpadmin.o $(IMGLIBS)
lpadmin.o: ../cups/cups.h ../Makedefs
+21 -1
Ver Arquivo
@@ -96,6 +96,26 @@ main(int argc, /* I - Number of command-line arguments */
if (argv[i][0] == '-')
switch (argv[i][1])
{
case 'h' : /* Connect to host */
if (http != NULL)
httpClose(http);
if (argv[i][2] != '\0')
http = httpConnect(argv[i] + 2, ippPort());
else
{
i ++;
http = httpConnect(argv[i], ippPort());
}
if (http == NULL)
{
fputs(argv[0], stderr);
perror(": Unable to connect to server");
return (1);
}
break;
case 'r' : /* Reason for cancellation */
if (argv[i][2] != '\0')
reason = argv[i] + 2;
@@ -165,7 +185,7 @@ main(int argc, /* I - Number of command-line arguments */
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
sprintf(uri, "http://%s:%d/printers/%s", hostname, ippPort(), printer);
sprintf(uri, "ipp://%s:%d/printers/%s", hostname, ippPort(), printer);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI,
"printer-uri", NULL, uri);
+39 -3
Ver Arquivo
@@ -49,7 +49,8 @@ main(int argc, /* I - Number of command-line arguments */
http_t *http; /* HTTP connection to server */
int i; /* Looping var */
int job_id; /* Job ID */
char *dest; /* Destination printer */
char *dest, /* Destination printer */
*host; /* Host name */
char name[255]; /* Printer name */
char uri[1024]; /* Printer or job URI */
ipp_t *request; /* IPP request */
@@ -88,6 +89,24 @@ main(int argc, /* I - Number of command-line arguments */
op = IPP_PURGE_JOBS;
break;
case 'h' : /* Connect to host */
httpClose(http);
if (argv[i][2] != '\0')
http = httpConnect(argv[i] + 2, ippPort());
else
{
i ++;
http = httpConnect(argv[i], ippPort());
}
if (http == NULL)
{
perror("cancel: Unable to connect to server");
return (1);
}
break;
default :
fprintf(stderr, "cancel: Unknown option \'%c\'!\n", argv[i][1]);
return (1);
@@ -111,6 +130,23 @@ main(int argc, /* I - Number of command-line arguments */
sscanf(argv[i], "%[^-]-%d", name, &job_id);
if (job_id)
op = IPP_CANCEL_JOB;
if ((host = strchr(name, '@')) != NULL)
{
/*
* Reconnect to the named host...
*/
httpClose(http);
*host++ = '\0';
if ((http = httpConnect(host, ippPort())) == NULL)
{
perror("cancel: Unable to connect to server");
return (1);
}
}
}
/*
@@ -137,7 +173,7 @@ main(int argc, /* I - Number of command-line arguments */
if (dest)
{
sprintf(uri, "http://localhost/printers/%s", dest);
sprintf(uri, "ipp://localhost/printers/%s", dest);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI,
"printer-uri", NULL, uri);
ippAddInteger(request, IPP_TAG_OPERATION, IPP_TAG_INTEGER, "job-id",
@@ -145,7 +181,7 @@ main(int argc, /* I - Number of command-line arguments */
}
else
{
sprintf(uri, "http://localhost/jobs/%d", job_id);
sprintf(uri, "ipp://localhost/jobs/%d", job_id);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "job-uri", NULL,
uri);
}
+107 -3
Ver Arquivo
@@ -45,6 +45,9 @@
#include <cups/language.h>
#include <cups/debug.h>
#include <config.h>
#ifdef HAVE_LIBZ
# include <zlib.h>
#endif /* HAVE_LIBZ */
/*
@@ -72,6 +75,7 @@ main(int argc, /* I - Number of command-line arguments */
int i; /* Looping var */
http_t *http; /* Connection to server */
char *printer, /* Destination printer */
*host, /* Pointer to hostname */
filename[1024]; /* Model filename */
@@ -117,6 +121,24 @@ main(int argc, /* I - Number of command-line arguments */
i = argc;
break;
case 'h' : /* Connect to host */
httpClose(http);
if (argv[i][2] != '\0')
http = httpConnect(argv[i] + 2, ippPort());
else
{
i ++;
http = httpConnect(argv[i], ippPort());
}
if (http == NULL)
{
perror("lpadmin: Unable to connect to server");
return (1);
}
break;
case 'i' : /* Use the specified interface script */
if (printer == NULL)
{
@@ -161,6 +183,22 @@ main(int argc, /* I - Number of command-line arguments */
i ++;
printer = argv[i];
}
if ((host = strchr(printer, '@')) != NULL)
{
/*
* printer@host - reconnect to the named host...
*/
httpClose(http);
*host++ = '\0';
if ((http = httpConnect(host, ippPort())) == NULL)
{
perror("lpadmin: Unable to connect to server");
return (1);
}
}
break;
case 'r' : /* Remove printer from class */
@@ -206,6 +244,22 @@ main(int argc, /* I - Number of command-line arguments */
printer = argv[i];
}
if ((host = strchr(printer, '@')) != NULL)
{
/*
* printer@host - reconnect to the named host...
*/
httpClose(http);
*host++ = '\0';
if ((http = httpConnect(host, ippPort())) == NULL)
{
perror("lpadmin: Unable to connect to server");
return (1);
}
}
delete_printer(http, printer);
i = argc;
break;
@@ -275,9 +329,9 @@ main(int argc, /* I - Number of command-line arguments */
{
puts("Usage:");
puts("");
puts(" lpadmin -d destination");
puts(" lpadmin -x destination");
puts(" lpadmin -p printer [-c add-class] [-i interface] [-m model]");
puts(" lpadmin [-h server] -d destination");
puts(" lpadmin [-h server] -x destination");
puts(" lpadmin [-h server] -p printer [-c add-class] [-i interface] [-m model]");
puts(" [-r remove-class] [-v device] [-D description]");
puts(" [-P ppd-file]");
puts("");
@@ -777,8 +831,49 @@ set_printer_file(http_t *http, /* I - Server connection */
*response; /* IPP Response */
cups_lang_t *language; /* Default language */
char uri[HTTP_MAX_URI]; /* URI for printer/class */
#ifdef HAVE_LIBZ
char tempfile[1024]; /* Temporary filename */
FILE *fp; /* Temporary file */
gzFile *gz; /* GZIP'd file */
char buffer[8192]; /* Copy buffer */
int bytes; /* Bytes in buffer */
/*
* See if the file is gzip'd; if so, unzip it to a temporary file and
* send the uncompressed file.
*/
if (strcmp(file + strlen(file) - 3, ".gz") == 0)
{
/*
* Yes, the file is compressed; uncompress to a temp file...
*/
if ((fp = fopen(tmpnam(tempfile), "wb")) == NULL)
{
perror("lpadmin: Unable to create temporary file");
return;
}
if ((gz = gzopen(file, "rb")) == NULL)
{
perror("lpadmin: Unable to open file");
fclose(fp);
unlink(tempfile);
return;
}
while ((bytes = gzread(gz, buffer, sizeof(buffer))) > 0)
fwrite(buffer, bytes, 1, fp);
fclose(fp);
gzclose(gz);
file = tempfile;
}
#endif /* HAVE_LIBZ */
/*
* Build a CUPS_ADD_PRINTER request, which requires the following
* attributes:
@@ -814,6 +909,15 @@ set_printer_file(http_t *http, /* I - Server connection */
fputs("lpadmin: Unable to set interface script or PPD file!\n", stderr);
else
ippDelete(response);
#ifdef HAVE_LIBZ
/*
* Remove the temporary file as needed...
*/
if (file == tempfile)
unlink(tempfile);
#endif /* HAVE_LIBZ */
}
+55 -37
Ver Arquivo
@@ -104,6 +104,24 @@ main(int argc, /* I - Number of command-line arguments */
show_default(http);
break;
case 'h' : /* Connect to host */
httpClose(http);
if (argv[i][2] != '\0')
http = httpConnect(argv[i] + 2, ippPort());
else
{
i ++;
http = httpConnect(argv[i], ippPort());
}
if (http == NULL)
{
perror("lpstat: Unable to connect to server");
return (1);
}
break;
case 'o' : /* Show jobs by destination */
if (argv[i][2] != '\0')
show_jobs(http, argv[i] + 2, NULL);
@@ -230,11 +248,11 @@ show_accepting(http_t *http, /* I - HTTP connection to server */
language = cupsLangDefault();
attr = ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
attr = ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
/*
* Do the request and get back a response...
@@ -408,11 +426,11 @@ show_classes(http_t *http, /* I - HTTP connection to server */
language = cupsLangDefault();
attr = ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
attr = ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
/*
* Do the request and get back a response...
@@ -572,11 +590,11 @@ show_default(http_t *http) /* I - HTTP connection to server */
language = cupsLangDefault();
attr = ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
attr = ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
/*
* Do the request and get back a response...
@@ -633,11 +651,11 @@ show_devices(http_t *http, /* I - HTTP connection to server */
language = cupsLangDefault();
attr = ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
attr = ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
/*
* Do the request and get back a response...
@@ -808,14 +826,14 @@ show_jobs(http_t *http, /* I - HTTP connection to server */
language = cupsLangDefault();
attr = ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
attr = ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
attr = ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "job-uri",
NULL, "http://localhost/jobs/");
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "job-uri",
NULL, "ipp://localhost/jobs/");
/*
* Do the request and get back a response...
@@ -1033,11 +1051,11 @@ show_printers(http_t *http, /* I - HTTP connection to server */
language = cupsLangDefault();
attr = ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
attr = ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
/*
* Do the request and get back a response...
@@ -1180,20 +1198,20 @@ show_printers(http_t *http, /* I - HTTP connection to server */
language = cupsLangDefault();
attr = ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL,
cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL,
cupsLangEncoding(language));
attr = ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL,
language->language);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL,
language->language);
sprintf(printer_uri, "http://localhost/printers/%s", printer);
attr = ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI,
"printer-uri", NULL, printer_uri);
sprintf(printer_uri, "ipp://localhost/printers/%s", printer);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI,
"printer-uri", NULL, printer_uri);
attr = ippAddInteger(request, IPP_TAG_OPERATION, IPP_TAG_INTEGER,
"limit", 1);
ippAddInteger(request, IPP_TAG_OPERATION, IPP_TAG_INTEGER,
"limit", 1);
if ((jobs = cupsDoRequest(http, request, "/jobs/")) != NULL)
{