diff --git a/.gitignore b/.gitignore
index 03aa984..8978461 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
a2ps-4.14.tar.gz
i18n-fonts-0.1.tar.gz
+/a2ps-4.15.5.tar.gz
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..4432540
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,676 @@
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, 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
+them 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 prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. 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.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey 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;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If 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 convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU 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 that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ 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.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+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.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ Copyright (C)
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+.
+
diff --git a/a2ps-4.13-autoenc.patch b/a2ps-4.13-autoenc.patch
deleted file mode 100644
index 5e3e08f..0000000
--- a/a2ps-4.13-autoenc.patch
+++ /dev/null
@@ -1,40 +0,0 @@
---- a2ps-4.13.rh/src/main.c Fri Feb 23 17:39:02 2001
-+++ a2ps-4.13.euc/src/main.c Fri Feb 23 23:07:40 2001
-@@ -31,6 +31,8 @@
- /* */
- /************************************************************************/
- #include
-+#include
-+#include
-
- #include "a2ps.h"
- #include "argmatch.h"
-@@ -925,6 +927,7 @@
- main (int argc, char *argv[])
- {
- int argn;
-+ char *locale;
-
- /* Architecture specific initialization. */
- #ifdef __EMX__
-@@ -947,6 +950,9 @@
- setlocale (LC_CTYPE, "");
- setlocale (LC_PAPER, "");
-
-+ locale = setlocale (LC_ALL, "");
-+ /* fprintf(stderr, "locale : %s\n", locale); */
-+
- bindtextdomain (PACKAGE, LOCALEDIR);
- textdomain (PACKAGE);
-
-@@ -1013,6 +1019,10 @@
- yet read sheets. */
- sheets_map = sheets_map_new ();
- style_sheets = new_style_sheets ();
-+
-+ /* Process special case: Japanese Document */
-+ if (! strncmp (locale, "ja", 2) )
-+ job->requested_encoding_name = xstrdup ("euc-jp");
-
- /* Process the command line options. */
- argn = a2ps_handle_options (job, argc, argv);
diff --git a/a2ps-4.13-conf.patch b/a2ps-4.13-conf.patch
index 9504283..060aec6 100644
--- a/a2ps-4.13-conf.patch
+++ b/a2ps-4.13-conf.patch
@@ -1,26 +1,23 @@
-diff -up a2ps-4.14/configure.conf a2ps-4.14/configure
---- a2ps-4.14/configure.conf 2008-04-27 01:01:04.000000000 +0200
-+++ a2ps-4.14/configure 2008-04-27 01:04:12.000000000 +0200
-@@ -30758,9 +30758,13 @@ fi
- echo $ECHO_N "checking for PostScript fonts path... $ECHO_C" >&6; }
- # Try to find some PostScript fonts.
- # Find out if ghostscript is installed
-+# for ac_dir in /usr/local/ghostscript/fonts \
-+# /usr/local/share/ghostscript/fonts;
- ac_psfont_path=
--for ac_dir in /usr/local/ghostscript/fonts \
-- /usr/local/share/ghostscript/fonts;
-+for ac_dir in /usr/share/fonts/default/Type1 \
-+ /usr/share/fonts/default/ghostscript \
-+ /usr/share/X11/fonts/Type1 \
-+ /usr/share/fonts/culmus ;
- do
- if test "cd $ac_dir 2>/dev/null && echo *.afm"; then
- ac_psfont_path="$ac_psfont_path:$ac_dir";
-diff -up a2ps-4.14/configure.in.conf a2ps-4.14/configure.in
---- a2ps-4.14/configure.in.conf 2008-04-27 01:00:54.000000000 +0200
-+++ a2ps-4.14/configure.in 2008-04-27 01:03:52.000000000 +0200
-@@ -207,8 +207,10 @@ AC_MSG_CHECKING(for PostScript fonts pat
+diff -up a2ps-4.15/configure.ac.conf a2ps-4.15/configure.ac
+--- a2ps-4.15/configure.ac.conf 2023-03-08 09:09:29.694691191 +0100
++++ a2ps-4.15/configure.ac 2023-03-08 09:10:00.210882309 +0100
+@@ -153,8 +153,10 @@ AC_MSG_CHECKING(for PostScript fonts pat
+ # Try to find some PostScript fonts.
+ # Find out if ghostscript is installed
+ ac_psfont_path=
+-for ac_dir in /usr/local/ghostscript/fonts \
+- /usr/local/share/ghostscript/fonts;
++for ac_dir in /usr/share/fonts/default/Type1 \
++ /usr/share/fonts/default/ghostscript \
++ /usr/share/X11/fonts/Type1 \
++ /usr/share/fonts/culmus ;
+ do
+ if test "cd $ac_dir 2>/dev/null && echo *.afm"; then
+ ac_psfont_path="$ac_psfont_path:$ac_dir";
+diff -up a2ps-4.15/configure.conf a2ps-4.15/configure
+--- a2ps-4.15/configure.conf 2023-03-08 09:09:03.438526754 +0100
++++ a2ps-4.15/configure 2023-03-08 09:10:39.922131011 +0100
+@@ -38619,8 +38619,10 @@ printf %s "checking for PostScript fonts
# Try to find some PostScript fonts.
# Find out if ghostscript is installed
ac_psfont_path=
diff --git a/a2ps-4.13-etc.patch b/a2ps-4.13-etc.patch
index fa692ff..899c522 100644
--- a/a2ps-4.13-etc.patch
+++ b/a2ps-4.13-etc.patch
@@ -1,7 +1,7 @@
-diff -up a2ps-4.14/etc/a2ps_cfg.in.etc a2ps-4.14/etc/a2ps_cfg.in
---- a2ps-4.14/etc/a2ps_cfg.in.etc 2007-12-29 02:38:58.000000000 +0100
-+++ a2ps-4.14/etc/a2ps_cfg.in 2008-04-27 01:27:55.000000000 +0200
-@@ -73,6 +73,7 @@ LibraryPath: @libpath@
+diff -up a2ps-4.15/etc/a2ps_cfg.in.etc a2ps-4.15/etc/a2ps_cfg.in
+--- a2ps-4.15/etc/a2ps_cfg.in.etc 2023-01-31 22:58:17.000000000 +0100
++++ a2ps-4.15/etc/a2ps_cfg.in 2023-03-08 09:12:47.908932563 +0100
+@@ -56,6 +56,7 @@ LibraryPath: @libpath@
# It may be useful to extend it so that a2ps can see some
# TeX or X11 resources: it likes AFM files and PF[AB] files.
#AppendLibraryPath: foo
@@ -9,11 +9,11 @@ diff -up a2ps-4.14/etc/a2ps_cfg.in.etc a2ps-4.14/etc/a2ps_cfg.in
#################################################################
-diff -up a2ps-4.14/etc/Makefile.am.etc a2ps-4.14/etc/Makefile.am
---- a2ps-4.14/etc/Makefile.am.etc 2002-07-19 14:07:27.000000000 +0200
-+++ a2ps-4.14/etc/Makefile.am 2008-04-27 01:27:55.000000000 +0200
-@@ -2,7 +2,7 @@
- ## Makefile for a2ps' etc library directory.
+diff -up a2ps-4.15/etc/Makefile.am.etc a2ps-4.15/etc/Makefile.am
+--- a2ps-4.15/etc/Makefile.am.etc 2023-03-08 09:12:47.908932563 +0100
++++ a2ps-4.15/etc/Makefile.am 2023-03-08 09:15:31.573957559 +0100
+@@ -17,7 +17,7 @@
+ #
ogonkifydir=$(datadir)/ogonkify
-libpath = $(pkgdatadir)/sheets:$(pkgdatadir)/ps:$(pkgdatadir)/encoding:$(pkgdatadir)/afm:$(ogonkifydir)/afm:$(pkgdatadir)/ppd:$(pkgdatadir)/fonts:$(ogonkifydir)/fonts:$(pkgdatadir)
@@ -21,7 +21,7 @@ diff -up a2ps-4.14/etc/Makefile.am.etc a2ps-4.14/etc/Makefile.am
pkgdata_DATA = README
-@@ -40,7 +40,9 @@ DISTCLEANFILES = a2ps.cfg README
+@@ -55,7 +55,9 @@ DISTCLEANFILES = a2ps.cfg README
# Building the correct a2ps.cfg
a2ps.cfg: a2ps_cfg Makefile
@@ -30,30 +30,6 @@ diff -up a2ps-4.14/etc/Makefile.am.etc a2ps-4.14/etc/Makefile.am
+ -e "s!@apppath@!$(PSFONT_PATH)!" \
+ a2ps_cfg > a2ps.cfg
- # Building a time stamp to know the version.
+ # Building a timestamp to know the version.
README: README.in Makefile
-diff -up a2ps-4.14/etc/Makefile.in.etc a2ps-4.14/etc/Makefile.in
---- a2ps-4.14/etc/Makefile.in.etc 2007-12-29 04:28:07.000000000 +0100
-+++ a2ps-4.14/etc/Makefile.in 2008-04-27 01:30:55.000000000 +0200
-@@ -262,7 +262,7 @@ sysconfdir = @sysconfdir@
- target_alias = @target_alias@
- tex = @tex@
- ogonkifydir = $(datadir)/ogonkify
--libpath = $(pkgdatadir)/sheets:$(pkgdatadir)/ps:$(pkgdatadir)/encoding:$(pkgdatadir)/afm:$(ogonkifydir)/afm:$(pkgdatadir)/ppd:$(pkgdatadir)/fonts:$(ogonkifydir)/fonts:$(pkgdatadir)
-+libpath = $(sysconfdir)/$(PACKAGE):$(pkgdatadir)/sheets:$(pkgdatadir)/ps:$(pkgdatadir)/encoding:$(pkgdatadir)/afm:$(ogonkifydir)/afm:$(pkgdatadir)/ppd:$(pkgdatadir)/fonts:$(ogonkifydir)/fonts:$(pkgdatadir)
- pkgdata_DATA = README
- dsysconf = $(DESTDIR)$(sysconfdir)
- EXTRA_DIST = README.in
-@@ -482,7 +482,9 @@ uninstall-local:
-
- # Building the correct a2ps.cfg
- a2ps.cfg: a2ps_cfg Makefile
-- sed "s!@libpath@!$(libpath)!" a2ps_cfg > a2ps.cfg
-+ sed -e "s!@libpath@!$(libpath)!" \
-+ -e "s!@apppath@!$(PSFONT_PATH)!" \
-+ a2ps_cfg > a2ps.cfg
-
- # Building a time stamp to know the version.
- README: README.in Makefile
-diff -up a2ps-4.14/Makefile.am.etc a2ps-4.14/Makefile.am
-diff -up a2ps-4.14/Makefile.in.etc a2ps-4.14/Makefile.in
+diff -up a2ps-4.15/etc/Makefile.in.etc a2ps-4.15/etc/Makefile.in
diff --git a/a2ps-4.13-eucjp.patch b/a2ps-4.13-eucjp.patch
deleted file mode 100644
index e94834a..0000000
--- a/a2ps-4.13-eucjp.patch
+++ /dev/null
@@ -1,1417 +0,0 @@
-diff -up a2ps-4.14/config.h.in.euc a2ps-4.14/config.h.in
---- a2ps-4.14/config.h.in.euc 2007-12-29 04:28:05.000000000 +0100
-+++ a2ps-4.14/config.h.in 2008-04-27 10:39:24.000000000 +0200
-@@ -24,6 +24,9 @@
- /* Define if TIOCGWINSZ requires sys/ioctl.h */
- #undef GWINSZ_IN_SYS_IOCTL
-
-+/* Define if you want to support japanese */
-+#undef ENABLE_KANJI
-+
- /* Define to 1 if you have the `alarm' function. */
- #undef HAVE_ALARM
-
-diff -up a2ps-4.14/configure.euc a2ps-4.14/configure
---- a2ps-4.14/configure.euc 2008-04-27 10:39:24.000000000 +0200
-+++ a2ps-4.14/configure 2008-04-27 10:41:39.000000000 +0200
-@@ -1587,7 +1587,8 @@ Optional Packages:
- --with-medium=medium specify the default medium (A4, Letter, Legal, etc.)
- default=A4
- --with-encoding=enc specify the default encoding (ascii, latin1,
-- latin2... latin6, hp etc.) default=latin1
-+ latin2... latin6, euc-jp, hp etc.) default=latin1
-+ --enable-kanji support Japanese (default=yes)
-
- Some influential environment variables:
- CC C compiler command
-@@ -22521,7 +22522,7 @@ fi
-
- for ac_header in sys/time.h sys/stat.h sys/types.h sys/ioctl.h \
- math.h string.h strings.h stdlib.h unistd.h stdarg.h pwd.h malloc.h \
-- memory.h errno.h fcntl.h stdbool.h fnmatch.h
-+ memory.h errno.h fcntl.h stdbool.h fnmatch.h iconv.h
- do
- as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-@@ -30947,6 +30948,22 @@ fi
-
-
-
-+# Check whether --enable-kanji or --disable-kanji was given.
-+if test "${enable_kanji+set}" = set; then
-+ enableval="$enable_kanji"
-+ SUPPORT_KANJI=$enableval
-+else
-+ SUPPORT_KANJI=yes
-+fi
-+
-+if test "$SUPPORT_KANJI" = "yes"; then
-+ cat >> confdefs.h <<\EOF
-+#define ENABLE_KANJI 1
-+EOF
-+# ENCODING=euc-jp
-+fi
-+
-+
- ########################
- # Nice special printers
- ########################
-diff -up a2ps-4.14/configure.in.euc a2ps-4.14/configure.in
---- a2ps-4.14/configure.in.euc 2008-04-27 10:39:24.000000000 +0200
-+++ a2ps-4.14/configure.in 2008-04-27 10:39:24.000000000 +0200
-@@ -72,7 +72,7 @@ AC_HEADER_SYS_WAIT
- AC_HEADER_DIRENT
- AC_CHECK_HEADERS(sys/time.h sys/stat.h sys/types.h sys/ioctl.h \
- math.h string.h strings.h stdlib.h unistd.h stdarg.h pwd.h malloc.h \
-- memory.h errno.h fcntl.h stdbool.h fnmatch.h)
-+ memory.h errno.h fcntl.h stdbool.h fnmatch.h iconv.h)
-
- ## --------------------- ##
- ## Checks for typedefs. ##
-@@ -276,11 +276,23 @@ AC_SUBST(MEDIUM)
- #
- AC_ARG_WITH(encoding,
- AC_HELP_STRING([--with-encoding=enc],
-- [specify the default encoding (ascii, latin1, latin2... latin6, hp etc.) [default=latin1]]),
-+ [specify the default encoding (ascii, latin1, latin2... latin6, euc-jp, hp etc.) [default=latin1]]),
- ENCODING=$with_encoding,
- ENCODING=latin1)
- AC_SUBST(ENCODING)
-
-+#
-+# use libjcode
-+#
-+AC_ARG_ENABLE(kanji,
-+ [ --enable-kanji support Japanese/kanji (default: yes)],
-+ SUPPORT_KANJI=$enableval, SUPPORT_KANJI=yes)
-+if test "$SUPPORT_KANJI" = "yes"; then
-+ AC_DEFINE(ENABLE_KANJI)
-+ dnl ENCODING=euc-jp
-+fi
-+
-+
- ########################
- # Nice special printers
- ########################
-diff -up a2ps-4.14/encoding/encoding.map.euc a2ps-4.14/encoding/encoding.map
---- a2ps-4.14/encoding/encoding.map.euc 2007-12-29 02:39:21.000000000 +0100
-+++ a2ps-4.14/encoding/encoding.map 2008-04-27 10:39:24.000000000 +0200
-@@ -93,6 +93,12 @@ koi8r koi8
- koi8 koi8
- koi koi8
-
-+euc-jp euc-jp
-+eucjp euc-jp
-+japanese euc-jp
-+ja euc-jp
-+jp euc-jp
-+
- ########################################################################
- # Some architectures specific char sets
- ########################################################################
-diff -up /dev/null a2ps-4.14/encoding/euc-jp.edf
---- /dev/null 2008-04-27 11:55:27.307012118 +0200
-+++ a2ps-4.14/encoding/euc-jp.edf 2008-04-27 10:39:24.000000000 +0200
-@@ -0,0 +1,109 @@
-+# Description of the EUC-JP encoding
-+# Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana
-+# Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana
-+#
-+
-+#
-+# This file is part of a2ps.
-+#
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 2, or (at your option)
-+# any later version.
-+#
-+# This program 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 General Public License for more details.
-+#
-+# You should have received a copy of the GNU General Public License
-+# along with this program; see the file COPYING. If not, write to
-+# the Free Software Foundation, 59 Temple Place - Suite 330,
-+# Boston, MA 02111-1307, USA.
-+#
-+
-+Name: EUC-JP
-+
-+# This text is reproduced by a courtesy of Roman Czyborra
-+# http://czyborra.com/charsets/iso8859.html
-+Documentation
-+The EUC-JP character set, often simply referred to as Latin 1,
-+covers most West European languages, such as French, Spanish, Catalan,
-+Basque, Portuguese, Italian, Albanian, Rhaeto-Romanic, Dutch, German,
-+Danish, Swedish, Norwegian, Finnish, Faroese, Icelandic, Irish,
-+Scottish, and English, incidentally also Afrikaans and Swahili, thus
-+in effect also the entire American continent, Australia and the
-+southern two-thirds of Africa. The lack of the ligatures Dutch IJ,
-+French OE and ,,German`` quotation marks is considered tolerable.
-+
-+The lack of the new C=-resembling Euro currency symbol U+20AC has
-+opened the discussion of a new Latin0.
-+EndDocumentation
-+
-+# If there is an unknown font requested, use Courier
-+Default: Courier
-+
-+# Automatic spell checking :)
-+Substitute: Times Times-Roman
-+Substitute: Helvetica-Italic Helvetica-Oblique
-+Substitute: Helvetica-BoldItalic Helvetica-BoldOblique
-+
-+
-+# SlantFont for Japanese Italic Kanji font
-+# new font source font value
-+SlantFont: Ryumin-Light-EUC-H-Italic Ryumin-Light-EUC-H 0.2
-+SlantFont: GothicBBB-Medium-EUC-H-Italic GothicBBB-Medium-EUC-H 0.2
-+
-+# Compose font for japanese EUC code
-+# target font additional font width size rate
-+DefaultComposite: Ryumin-Light-EUC-H 1.0 1.1
-+
-+# 1:2 fixed
-+#DefaultComposite: Ryumin-Light-EUC-H 1.0 0.8333
-+
-+# 1:1 fixed
-+#DefaultComposite: Ryumin-Light-EUC-H 1.0 1.6666
-+
-+Composite: Helvetica GothicBBB-Medium-EUC-H 1.0 1.1
-+Composite: Helvetica-Oblique GothicBBB-Medium-EUC-H-Italic 1.0 1.1
-+Composite: Helvetica-Bold GothicBBB-Medium-EUC-H 1.0 1.1
-+Composite: Helvetica-BoldOblique GothicBBB-Medium-EUC-H-Italic 1.0 1.1
-+
-+Composite: Courier-Oblique Ryumin-Light-EUC-H-Italic 1.0 1.1
-+Composite: Courier-Bold GothicBBB-Medium-EUC-H 1.0 1.1
-+Composite: Courier-BoldOblique GothicBBB-Medium-EUC-H-Italic 1.0 1.1
-+Composite: Times-Bold GothicBBB-Medium-EUC-H 1.0 1.1
-+
-+Vector:
-+.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
-+.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
-+.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
-+.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
-+space exclam quotedbl numbersign dollar percent ampersand quoteright
-+parenleft parenright asterisk plus comma minus period slash
-+zero one two three four five six seven
-+eight nine colon semicolon less equal greater question
-+at A B C D E F G
-+H I J K L M N O
-+P Q R S T U V W
-+X Y Z bracketleft backslash bracketright asciicircum underscore
-+quoteleft a b c d e f g
-+h i j k l m n o
-+p q r s t u v w
-+x y z braceleft bar braceright asciitilde .notdef
-+.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
-+.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
-+.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
-+.notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
-+space exclamdown cent sterling currency yen brokenbar section
-+dieresis copyright ordfeminine guillemotleft logicalnot hyphen registered macron
-+degree plusminus twosuperior threesuperior acute mu paragraph bullet
-+cedilla onesuperior ordmasculine guillemotright onequarter onehalf threequarters questiondown
-+Agrave Aacute Acircumflex Atilde Adieresis Aring AE Ccedilla
-+Egrave Eacute Ecircumflex Edieresis Igrave Iacute Icircumflex Idieresis
-+Eth Ntilde Ograve Oacute Ocircumflex Otilde Odieresis multiply
-+Oslash Ugrave Uacute Ucircumflex Udieresis Yacute Thorn germandbls
-+agrave aacute acircumflex atilde adieresis aring ae ccedilla
-+egrave eacute ecircumflex edieresis igrave iacute icircumflex idieresis
-+eth ntilde ograve oacute ocircumflex otilde odieresis divide
-+oslash ugrave uacute ucircumflex udieresis yacute thorn ydieresis
-diff -up a2ps-4.14/encoding/Makefile.am.euc a2ps-4.14/encoding/Makefile.am
---- a2ps-4.14/encoding/Makefile.am.euc 2007-12-29 02:39:27.000000000 +0100
-+++ a2ps-4.14/encoding/Makefile.am 2008-04-27 10:39:24.000000000 +0200
-@@ -16,7 +16,7 @@ major_encodings = ascii.edf iso1.edf
- minor_encodings = \
- ms-cp1250.edf hp.edf mac.edf ibm-cp437.edf ibm-cp850.edf iso2.edf \
- iso3.edf iso4.edf iso5.edf iso7.edf iso9.edf iso10.edf iso13.edf \
--iso15.edf koi8.edf ms-cp1251.edf
-+iso15.edf koi8.edf ms-cp1251.edf euc-jp.edf
-
- if EXTENSIONS
- encodings_DATA = encoding.map $(major_encodings) $(minor_encodings)
-diff -up a2ps-4.14/encoding/Makefile.in.euc a2ps-4.14/encoding/Makefile.in
---- a2ps-4.14/encoding/Makefile.in.euc 2007-12-29 04:28:07.000000000 +0100
-+++ a2ps-4.14/encoding/Makefile.in 2008-04-27 10:39:24.000000000 +0200
-@@ -270,7 +270,7 @@ major_encodings = ascii.edf iso1.edf
- minor_encodings = \
- ms-cp1250.edf hp.edf mac.edf ibm-cp437.edf ibm-cp850.edf iso2.edf \
- iso3.edf iso4.edf iso5.edf iso7.edf iso9.edf iso10.edf iso13.edf \
--iso15.edf koi8.edf ms-cp1251.edf
-+iso15.edf koi8.edf ms-cp1251.edf euc-jp.edf
-
- @EXTENSIONS_FALSE@encodings_DATA = encoding.map $(major_encodings)
- @EXTENSIONS_TRUE@encodings_DATA = encoding.map $(major_encodings) $(minor_encodings)
-diff -up a2ps-4.14/lib/encoding.c.euc a2ps-4.14/lib/encoding.c
---- a2ps-4.14/lib/encoding.c.euc 2007-12-29 02:37:54.000000000 +0100
-+++ a2ps-4.14/lib/encoding.c 2008-04-27 10:39:24.000000000 +0200
-@@ -37,6 +37,9 @@
- #include "document.h"
- #include "quotearg.h"
- #include "strverscmp.h"
-+#ifdef ENABLE_KANJI
-+int use_jcode = false;
-+#endif
-
- /* Suffix of the Encoding Description Files */
- #define EDF_SUFFIX ".edf"
-@@ -389,15 +392,25 @@ font_entry_set_used (struct hash_table_s
- * Association of suffixes rules, and corresponding style sheet
- * (The hashing is upon `alias')
- */
-+struct slantfont_info {
-+ char * name;
-+ char * src;
-+ float raito;
-+};
-+
- struct encoding {
- char * key; /* e.g. latin1 */
- char * name; /* e.g. ISO Latin 1 */
-+ int composite_flag; /* flag for composite font */
- uchar * documentation; /* Useful pieces of text */
-
- char * default_font; /* When a font can't be used
- define the font to use */
- struct pair_htable * substitutes; /* e.g. in latin2, don't use
- * Courier, but Courier-Ogonki */
-+ struct pair_htable * composite;
-+
-+ struct slantfont_info slantfont[NB_FACES];
-
- char * vector[256]; /* Define the char set */
- struct darray * font_names_used;
-@@ -407,6 +420,9 @@ struct encoding {
- struct hash_table_s * fonts; /* Contains cells that are
- * 1. name of font, 2. int wx[256] */
- unsigned int * faces_wx[NB_FACES];
-+
-+ unsigned int composite_wx[NB_FACES]; /* fixed length font width*/
-+ float composite_raito[NB_FACES]; /* size raito of additonal and orinal font */
- };
-
- /*
-@@ -423,9 +439,12 @@ encoding_new (const char * key)
- res->name = NULL;
- res->default_font = NULL;
- res->documentation = NULL;
-+ res->composite_flag = false;
-
- /* Vector will be set by setup */
- res->substitutes = pair_table_new ();
-+ res->composite = pair_table_new ();
-+ res->slantfont[0].name = NULL;
- res->font_names_used = da_new ("List of font names", 10,
- da_linear, 10,
- (da_print_func_t) da_str_print,
-@@ -471,6 +490,34 @@ encoding_add_font_substitute (struct enc
- }
-
- /*
-+ * Add a composite font in the current encoding
-+ */
-+static void
-+encoding_add_composite_font (struct encoding * encoding,
-+ const char * orig, const char * subs,
-+ int wx, float raito)
-+{
-+ encoding->composite_flag = true;
-+ pair_add2 (encoding->composite, orig, subs, wx, raito);
-+}
-+
-+/*
-+ * Add a composite font in the current encoding
-+ */
-+static void
-+encoding_add_slant_font (struct encoding * encoding,
-+ const char * new, const char * src,
-+ float raito)
-+{
-+ static num = 0;
-+ encoding->slantfont[num].name = strdup(new);
-+ encoding->slantfont[num].src = strdup(src);
-+ encoding->slantfont[num].raito = raito;
-+ encoding->slantfont[num+1].name = NULL;
-+ num++;
-+}
-+
-+/*
- * When FONT_NAME is used with ENCODING, return the
- * real font name to use (e.g., in latin2, Courier-Ogonki
- * should be returned when asked for Courier).
-@@ -514,6 +561,77 @@ encoding_resolve_font_substitute (struct
- }
-
- message (msg_enc,
-+ (stderr, "In encoding %s, composite font for %s is resolved as %s\n",
-+ encoding->key, font_name, res));
-+ return res;
-+}
-+
-+/*
-+ * Get composite font size and raito
-+ */
-+static int
-+composite_font_info_get_wx(struct a2ps_job * job,
-+ struct encoding * encoding,
-+ const char * font_list)
-+{
-+ int wx= -1;
-+ char * font_list_copy;
-+ char * font_name;
-+ astrcpy (font_list_copy, font_list);
-+ font_name = strtok (font_list_copy, ",<>;");
-+
-+ wx = pair_get_wx (encoding->composite, font_name);
-+ if (wx<0)
-+ wx = pair_get_wx (encoding->composite, "default_composite__");
-+
-+ return wx;
-+}
-+
-+static float
-+composite_font_info_get_raito(struct a2ps_job * job,
-+ struct encoding * encoding,
-+ const char * font_list)
-+{
-+ float raito= -1;
-+ char * font_list_copy;
-+ char * font_name;
-+
-+ astrcpy (font_list_copy, font_list);
-+ font_name = strtok (font_list_copy, ",<>;");
-+
-+ raito = pair_get_raito (encoding->composite, font_name);
-+ if (raito<0)
-+ raito = pair_get_raito (encoding->composite, "default_composite__");
-+ return raito;
-+}
-+
-+const char *
-+encoding_resolve_composite_font (struct a2ps_job * job,
-+ struct encoding * encoding,
-+ const char * font_list)
-+{
-+ const char * res = NULL;
-+ char * font_list_copy;
-+ char * font_name;
-+
-+ astrcpy (font_list_copy, font_list);
-+ font_name = strtok (font_list_copy, ",<>;");
-+
-+ /* Find if there is a substitute for that font */
-+ res = pair_get (encoding->composite, font_name);
-+
-+ /* We've found nothing interesting. Last chance is the default
-+ * font */
-+ if (!res)
-+ {
-+ res = pair_get (encoding->composite, "default_composite__");
-+
-+ if (!res)
-+ error (1, 0, "Cannot find font %s, nor any composite font",
-+ font_name);
-+ }
-+
-+ message (msg_enc,
- (stderr, "In encoding %s, font %s is resolved as %s\n",
- encoding->key, font_name, res));
- return res;
-@@ -585,6 +703,12 @@ load_encoding_description_file (a2ps_job
- {
- token2 = GET_TOKEN (NULL);
- CHECK_TOKEN ();
-+#ifdef ENABLE_KANJI
-+ if( strcmp(token2, "EUC-JP")== 0)
-+ use_jcode = true;
-+ else
-+ use_jcode = false;
-+#endif
- encoding->name = xstrdup (token2);
- }
- else if (strequ (token, "Default:"))
-@@ -633,6 +757,66 @@ load_encoding_description_file (a2ps_job
- subs = token2;
- encoding_add_font_substitute (encoding, orig, subs);
- }
-+ else if (strequ (token, "DefaultComposite:"))
-+ {
-+ char * orig, * subs;
-+ int wx;
-+ float raito;
-+
-+ token2 = GET_TOKEN (NULL);
-+ CHECK_TOKEN ();
-+ subs = token2;
-+ token2 = GET_TOKEN (NULL);
-+ CHECK_TOKEN ();
-+ wx = (int)atof(token2)*1000;
-+ token2 = GET_TOKEN (NULL);
-+ CHECK_TOKEN ();
-+ raito = atof(token2);
-+ encoding_add_composite_font(encoding, "default_composite__",
-+ subs, wx, raito);
-+ }
-+ else if (strequ (token, "Composite:"))
-+ {
-+ char * orig, * subs;
-+ int wx;
-+ float raito;
-+
-+ token2 = GET_TOKEN (NULL);
-+ CHECK_TOKEN ();
-+ orig = token2;
-+ token2 = GET_TOKEN (NULL);
-+ CHECK_TOKEN ();
-+ subs = token2;
-+ token2 = GET_TOKEN (NULL);
-+ CHECK_TOKEN ();
-+ wx = (int)atof(token2)*1000;
-+ token2 = GET_TOKEN (NULL);
-+ CHECK_TOKEN ();
-+ raito = atof(token2);
-+ encoding_add_composite_font(encoding, orig, subs, wx, raito);
-+ }
-+ else if (strequ (token, "SlantFont:"))
-+ {
-+ char * new, * src;
-+ float raito;
-+ unsigned int num;
-+
-+ token2 = GET_TOKEN (NULL);
-+ CHECK_TOKEN ();
-+ new = token2;
-+ token2 = GET_TOKEN (NULL);
-+ CHECK_TOKEN ();
-+ src = token2;
-+ token2 = GET_TOKEN (NULL);
-+ CHECK_TOKEN ();
-+ raito = atof(token2);
-+ for (num = 0 ; encoding->slantfont[num].name ; num ++ );
-+ if (num > sizeof encoding->slantfont - 1){
-+ error_at_line (1, 0, fname, firstline,
-+ _("too many slant font: `%s'"), new);
-+ }
-+ encoding_add_slant_font(encoding, new, src, raito);
-+ }
- else
- error_at_line (1, 0, fname, firstline,
- _("invalid option `%s'"), quotearg (token));
-@@ -754,6 +938,15 @@ encoding_char_exists (struct encoding *
- }
-
- /*
-+ * Return the flag of composite flag
-+ */
-+int
-+encoding_get_composite_flag (struct encoding * enc)
-+{
-+ return enc->composite_flag;
-+}
-+
-+/*
- * Prepare the environment (a dictionary) for the support
- * of ENCODING, dump it into STREAM.
- *
-@@ -766,9 +959,11 @@ dump_encoding_setup (FILE * stream,
- struct encoding * encoding)
- {
- size_t i, nb;
-+ size_t ns;
- const char * real_font_name; /* After subsitution */
- char ** font_names = (char **) encoding->font_names_used->content;
-
-+
- /* How many fonts are there? */
- da_qsort (encoding->font_names_used);
- da_unique (encoding->font_names_used, (da_map_func_t) free);
-@@ -787,15 +982,46 @@ dump_encoding_setup (FILE * stream,
- * in the current ENCODING */
- nb = encoding->font_names_used->len;
-
-+ /* The number of slant fonts */
-+ for (i= 0, ns=0 ; encoding->slantfont[i].name ; i++ )
-+ ns++;
-+
- /* Create the dictionary and fill it */
- fprintf (stream, "%% Dictionary for %s support\n",
- encoding->name);
-- fprintf (stream, "/%sdict %d dict begin\n", encoding->key, nb);
-+ fprintf (stream, "/%sdict %d dict begin\n", encoding->key,
-+ (encoding->composite_flag == true)? nb+nb+ns:nb+ns);
- for (i = 0 ; i < nb ; i++)
- fprintf (stream, " /f%s %sEncoding /%s reencode_font\n",
- font_names [i],
- encoding->name,
- encoding_resolve_font_substitute (job, encoding, font_names [i]));
-+
-+ /* Slant font setting */
-+ for (i = 0 ; encoding->slantfont[i].name ; i++ )
-+ fprintf (stream, " /%s /%s %f slantfont definefont pop\n",
-+ encoding->slantfont[i].name,
-+ encoding->slantfont[i].src,
-+ encoding->slantfont[i].raito);
-+
-+ /*
-+ * Composite font setting.
-+ * If kanji font size is larger than alphabet character,
-+ * set base font size to kanji charactor size.
-+ */
-+ if (encoding->composite_flag == true) {
-+ for (i = 0 ; i < nb ; i++)
-+ fprintf (stream, " /f%s /f%s /%s %f %f false compositefont "
-+ "%f scalefont def\n",
-+ font_names [i],
-+ font_names [i],
-+ encoding_resolve_composite_font (job, encoding, font_names [i]),
-+ encoding->composite_raito[i],
-+ (encoding->composite_raito[i] > 1.0)?
-+ 0: (1-encoding->composite_raito[i])/2.0,
-+ (encoding->composite_raito[i] > 1.0)?
-+ 1.0/encoding->composite_raito[i]: 1.0 );
-+ }
- fputs ("currentdict end def\n", stream);
- }
-
-@@ -939,6 +1165,22 @@ encoding_build_faces_wx (a2ps_job * job,
- true_font_name,
- encoding->vector,
- encoding->faces_wx [face]);
-+
-+ if (encoding->composite_flag)
-+ {
-+ encoding->composite_raito[i] =
-+ composite_font_info_get_raito(job, encoding,
-+ job->face_eo_font [face]);
-+
-+ encoding->composite_wx[i] =
-+ composite_font_info_get_wx(job, encoding,
-+ job->face_eo_font [face]);
-+
-+ /* If kanji font size is larger than alphabet character,
-+ fit kanji charactor size to base font size */
-+ if (encoding->composite_raito[i] < 1.0)
-+ encoding->composite_wx[i] *= encoding->composite_raito[i];
-+ }
- }
- }
-
-@@ -1073,6 +1315,13 @@ char_WX (a2ps_job * job, uchar c)
- return 0; /* For -Wall */
- }
-
-+unsigned int
-+char_composite_WX (a2ps_job * job, uchar c)
-+{
-+ return (job->encoding->composite_wx[job->status->face]/
-+ job->encoding->composite_raito[job->status->face]);
-+}
-+
- /*
- * Returns the WX of a string (including M- and ^)
- */
-diff -up a2ps-4.14/lib/encoding.h.euc a2ps-4.14/lib/encoding.h
---- a2ps-4.14/lib/encoding.h.euc 2007-12-29 02:58:17.000000000 +0100
-+++ a2ps-4.14/lib/encoding.h 2008-04-27 10:39:24.000000000 +0200
-@@ -43,6 +43,7 @@ struct a2ps_job; /* Declared in jobs.h w
- */
- unsigned int char_WX PARAMS ((struct a2ps_job * job, uchar c));
- unsigned int string_WX PARAMS ((struct a2ps_job * job, uchar * string));
-+unsigned int char_composite_WX PARAMS ((struct a2ps_job * job, uchar c));
-
-
- /************************************************************************/
-@@ -56,6 +57,7 @@ void encoding_self_print PARAMS ((struct
- FILE * stream));
- int encoding_char_exists PARAMS ((struct encoding * enc,
- enum face_e face, uchar c));
-+int encoding_get_composite_flag (struct encoding * enc);
- struct encoding *
- get_encoding_by_alias PARAMS ((struct a2ps_job * job,
- char *string));
-@@ -71,6 +73,12 @@ const char * encoding_resolve_font_subst
- struct encoding * encoding,
- const char * font_name));
-
-+
-+const char * encoding_resolve_composite_font
-+ PARAMS ((struct a2ps_job * job,
-+ struct encoding * encoding,
-+ const char * font_name));
-+
- /*
- * Have a struct encoding determine the faces_wx
- */
-diff -up a2ps-4.14/lib/pair_ht.c.euc a2ps-4.14/lib/pair_ht.c
---- a2ps-4.14/lib/pair_ht.c.euc 2007-12-29 02:58:21.000000000 +0100
-+++ a2ps-4.14/lib/pair_ht.c 2008-04-27 10:39:24.000000000 +0200
-@@ -49,6 +49,8 @@ struct pair
- {
- char * key;
- char * value;
-+ float raito;
-+ int wx;
- };
-
- /*
-@@ -165,6 +167,37 @@ pair_add (struct hash_table_s * table,
- }
-
- /*
-+ * Add a pair, with your own allocation for them.
-+ * It KEY is yet used, override its value with VALUE
-+ */
-+void
-+pair_add2 (struct hash_table_s * table,
-+ const char * key, const char * value, int wx, float raito)
-+{
-+ struct pair * item, token;
-+
-+ token.key = (char *) key;
-+ item = (struct pair *) hash_find_item (table, &token);
-+
-+ if (item) {
-+ if (item->value)
-+ free (item->value);
-+ } else {
-+ item = XMALLOC (struct pair, 1);
-+ item->key = xstrdup(key);
-+ item->wx = wx;
-+ item->raito = raito;
-+ }
-+
-+ if (value)
-+ item->value = xstrdup (value);
-+ else
-+ item->value = NULL;
-+
-+ hash_insert (table, item);
-+}
-+
-+/*
- * Remove a pair and free it.
- * It KEY is yet used, override its value with VALUE
- */
-@@ -201,6 +234,34 @@ pair_get (struct hash_table_s * table, c
- return NULL;
- }
-
-+int
-+pair_get_wx (struct hash_table_s * table, const char * key)
-+{
-+ struct pair * item, token;
-+
-+ token.key = (char *) key;
-+ item = (struct pair *) hash_find_item (table, &token);
-+
-+ if (item)
-+ return item->wx;
-+ else
-+ return -1;
-+}
-+
-+float
-+pair_get_raito (struct hash_table_s * table, const char * key)
-+{
-+ struct pair * item, token;
-+
-+ token.key = (char *) key;
-+ item = (struct pair *) hash_find_item (table, &token);
-+
-+ if (item)
-+ return item->raito;
-+ else
-+ return -1;
-+}
-+
- /*
- * Return the content of the hash table, ordered
- */
-diff -up a2ps-4.14/lib/pair_ht.h.euc a2ps-4.14/lib/pair_ht.h
---- a2ps-4.14/lib/pair_ht.h.euc 2007-12-29 02:58:21.000000000 +0100
-+++ a2ps-4.14/lib/pair_ht.h 2008-04-27 10:39:24.000000000 +0200
-@@ -56,6 +56,10 @@ void pair_table_free PARAMS ((struct pai
- void pair_add PARAMS ((struct pair_htable * table,
- const char * key, const char * value));
-
-+void pair_add2 PARAMS ((struct pair_htable * table,
-+ const char * key, const char * value,
-+ int wx, float raito));
-+
- /*
- * The key and value of the matching item will be free'd
- * (No problem if KEY matches nothing)
-@@ -68,6 +72,10 @@ void pair_delete PARAMS ((struct pair_ht
- */
- char * pair_get PARAMS ((struct pair_htable * table,
- const char * key));
-+int pair_get_wx PARAMS ((struct pair_htable * table,
-+ const char * key));
-+float pair_get_raito PARAMS ((struct pair_htable * table,
-+ const char * key));
-
- void pair_table_list_short PARAMS ((struct pair_htable * table,
- FILE * stream));
-diff -up a2ps-4.14/lib/psgen.c.euc a2ps-4.14/lib/psgen.c
---- a2ps-4.14/lib/psgen.c.euc 2007-12-29 02:58:22.000000000 +0100
-+++ a2ps-4.14/lib/psgen.c 2008-04-27 10:39:24.000000000 +0200
-@@ -875,6 +875,7 @@ ps_print_char (a2ps_job * job, int c, en
- print:
- default:
- {
-+ static mb_flag= 0;
- uchar buf[256];
- int nchars;
- *buf = '\0';
-@@ -889,6 +890,29 @@ ps_print_char (a2ps_job * job, int c, en
- job->status->face_declared = false;
- }
-
-+ if (c > 127 && encoding_get_composite_flag (job->encoding) &&
-+ job->status->face != Symbol) {
-+ if (mb_flag) {
-+ nchars = ps_escape_char (job, mb_flag, buf) +
-+ ps_escape_char (job, c, buf);
-+ job->status->wx += char_composite_WX(job, c);
-+ job->status->column += nchars;
-+ if (line_full) {
-+ if (job->folding) {
-+ fold_line (job, new_face);
-+ job->status->column = nchars*2;
-+ job->status->wx = char_composite_WX(job, c);
-+ } else {
-+ job->status->is_in_cut = true;
-+ return;
-+ }
-+ }
-+ mb_flag = 0;
-+ } else {
-+ mb_flag = c;
-+ return;
-+ }
-+ } else {
- nchars = ps_escape_char (job, c, buf);
- job->status->wx += char_WX (job, c);
- job->status->column += nchars;
-@@ -902,8 +926,9 @@ ps_print_char (a2ps_job * job, int c, en
- return;
- }
- }
-+ }
- output (jdiv, "%s", buf);
-- job->status->chars++;
-+ job->status->chars+=nchars;
- }
- break;
- }
-diff -up a2ps-4.14/ps/base.ps.euc a2ps-4.14/ps/base.ps
---- a2ps-4.14/ps/base.ps.euc 2007-12-29 02:58:26.000000000 +0100
-+++ a2ps-4.14/ps/base.ps 2008-04-27 10:39:24.000000000 +0200
-@@ -153,7 +153,11 @@
- % Return the y size of the current font
- % - => fontsize
- /currentfontsize {
-- currentfont /FontMatrix get 3 get 1000 mul
-+ currentfont /FontType get 0 eq {
-+ currentfont /FontMatrix get 3 get
-+ }{
-+ currentfont /FontMatrix get 3 get 1000 mul
-+ } ifelse
- } bind def
-
- % reencode the font
-@@ -200,6 +204,144 @@
- end
- } bind def
-
-+% composite fonts for ASCII-EUC mixed string
-+% Version 1.2 1/31/1990
-+% Orignal Ken'ichi HANDA (handa@etl.go.jp)
-+% Modified Norio Katayama (katayama@rd.nacsis.ac.jp),1998
-+% Extend & Fix Koji Nakamaru (maru@on.cs.keio.ac.jp), 1999
-+% Anyone can freely copy, modify, distribute this program.
-+
-+/copyfont { % font-dic extra-entry-count copyfont font-dic
-+ 1 index maxlength add dict begin
-+ { 1 index /FID ne 2 index /UniqueID ne and
-+ {def} {pop pop} ifelse
-+ } forall
-+ currentdict
-+ end
-+} bind def
-+
-+/compositefont { % ASCIIFontName EUCFontName RomanScale RomanOffset Rot(T/F) compositefont font
-+ /RomanRotation exch def
-+ /RomanOffset exch def
-+ /RomanScale exch def
-+ userdict /fixeucfont_dict known not {
-+ userdict begin
-+ /fixeucfont_dict 2 dict begin
-+ /UpperByteEncoding [
-+ 16#00 1 16#20 { pop 0 } for
-+ 16#21 1 16#28 { 16#20 sub } for
-+ 16#29 1 16#2F { pop 0 } for
-+ 16#30 1 16#74 { 16#27 sub } for
-+ 16#75 1 16#FF { pop 0 } for
-+ ] def
-+ /LowerByteEncoding [
-+ 16#00 1 16#A0 { pop /.notdef } for
-+ 16#A1 1 16#FE { 16#80 sub 16 2 string cvrs
-+ (cXX) dup 1 4 -1 roll
-+ putinterval cvn } for
-+ /.notdef
-+ ] def
-+ currentdict
-+ end def
-+ end
-+ } if
-+ findfont dup /FontType get 0 eq {
-+ 14 dict begin
-+ %
-+ % 7+8 bit EUC font
-+ %
-+ 12 dict begin
-+ /EUCFont exch def
-+ /FontInfo (7+8 bit EUC font) readonly def
-+ /PaintType 0 def
-+ /FontType 0 def
-+ /FontMatrix matrix def
-+ % /FontName
-+ /Encoding fixeucfont_dict /UpperByteEncoding get def
-+ /FMapType 2 def
-+ EUCFont /WMode known
-+ { EUCFont /WMode get /WMode exch def }
-+ { /WMode 0 def } ifelse
-+ /FDepVector [
-+ EUCFont /FDepVector get 0 get
-+ [ 16#21 1 16#28 {} for 16#30 1 16#74 {} for ]
-+ {
-+ 13 dict begin
-+ /EUCFont EUCFont def
-+ /UpperByte exch 16#80 add def
-+ % /FontName
-+ /FontInfo (EUC lower byte font) readonly def
-+ /PaintType 0 def
-+ /FontType 3 def
-+ /FontMatrix matrix def
-+ /FontBBox {0 0 0 0} def
-+ /Encoding
-+ fixeucfont_dict /LowerByteEncoding get def
-+ % /UniqueID
-+ % /WMode
-+ /BuildChar {
-+ gsave
-+ exch dup /EUCFont get setfont
-+ /UpperByte get
-+ 2 string
-+ dup 0 4 -1 roll put
-+ dup 1 4 -1 roll put
-+ dup stringwidth setcharwidth
-+ 0 0 moveto show
-+ grestore
-+ } bind def
-+ currentdict
-+ end
-+ /lowerbytefont exch definefont
-+ } forall
-+ ] def
-+ currentdict
-+ end
-+ /eucfont exch definefont
-+ exch
-+ findfont 1 copyfont dup begin
-+ RomanRotation {
-+ /FontMatrix FontMatrix
-+ [ 0 RomanScale neg RomanScale 0 RomanOffset neg 0 ]
-+ matrix concatmatrix def
-+ }{
-+ /FontMatrix FontMatrix
-+ [ RomanScale 0 0 RomanScale 0 RomanOffset ] matrix concatmatrix
-+ def
-+ /CDevProc
-+ {pop pop pop pop 0 exch -1000 exch 2 div 880} def
-+ } ifelse
-+ end
-+ /asciifont exch definefont
-+ exch
-+ /FDepVector [ 4 2 roll ] def
-+ /FontType 0 def
-+ /WMode 0 def
-+ /FMapType 4 def
-+ /FontMatrix matrix def
-+ /Encoding [0 1] def
-+ /FontBBox {0 0 0 0} def
-+% /FontHeight 1.0 def % XXXX
-+ /FontHeight RomanScale 1.0 ge { RomanScale }{ 1.0 } ifelse def
-+ /Descent -0.3 def % XXXX
-+ currentdict
-+ end
-+ /tmpfont exch definefont
-+ pop
-+ /tmpfont findfont
-+ }{
-+ pop findfont 0 copyfont
-+ } ifelse
-+} def
-+
-+/slantfont { % FontName slant-degree slantfont font'
-+ exch findfont 1 copyfont begin
-+ [ 1 0 4 -1 roll 1 0 0 ] FontMatrix exch matrix concatmatrix
-+ /FontMatrix exch def
-+ currentdict
-+ end
-+} def
-+
- % Function print line number ( # -)
- /# {
- gsave
-diff -up /dev/null a2ps-4.14/README.eucJP
---- /dev/null 2008-04-27 11:55:27.307012118 +0200
-+++ a2ps-4.14/README.eucJP 2008-04-27 10:39:24.000000000 +0200
-@@ -0,0 +1,100 @@
-+a2ps euc-jp kanji supported patch:
-+by SATO Satoru
-+
-+These patches enables a2ps to support the files written in EUC-JP (and other
-+Japanese encodings). I only arranged patches created by FURUKAWA Yasuyuki,
-+KATAYAMA Yukio, and replaced libjcode by customized jcode.[ch] (by KITAME
-+Takuo).
-+
-+Notes from the orginal patch by FURUKAWA Yukihiro is follows.
-+(sorry, it is written in japanese only):
-+
-+a2ps 4.12¤Ç´Á»ú¤ò°õºþ¤¹¤ë¤¿¤á¤Î¥Ñ¥Ã¥Á
-+ ·ÄØæÂç³ØÂç³Ø±¡
-+ ¸ÅÀî ÂÙÇ·
-+
-+composite font ¤ò»È¤Ã¤Æ´Á»ú¤òɽ¼¨¤¹¤ë¤¿¤á¤Î¥Ñ¥Ã¥Á¤Ç¤¹¡£
-+composite font¤Ë¤Ï¡¢ÊÒ»³ µªÉפµ¤ó(¤Ï¤¸¤á¤ÆÆüËܸìghostscript¤òºîÀ®¤·¤¿
-+¿Í)¤Îfixeucfont ¤ò¥Ù¡¼¥¹¤Ëa2psÍѤË¿¾¯¼ê¤ò¤¤¤ì¤Æ¤ª¤ê¤Þ¤¹¡£¤³¤ì¤òÍøÍѤ¹
-+¤ë¤³¤È¤Ç¡¢2¥Ð¥¤¥ÈEUC¡ÜASCII¤Îʸ»úÎó¤ÎPostscript¤Î°·¤¤¤¬¤°¤Ã¤È´Êñ¤Ë¤Ê
-+¤ê¤Þ¤¹¡£
-+
-+¡üComposite¥Õ¥©¥ó¥È¤ÎÀßÄêÊýË¡¤Ë¤Ä¤¤¤Æ
-+ºÇÄã¸Â¤ÎÀßÄê¤Ï¥Ñ¥Ã¥Á¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤È¤ê¤¢¤¨¤ºÂç¾æÉפÀ¤È¤Ï»×¤¤¤Þ
-+¤¹¡£°ì±þ¥á¥â¤·¤Æ¤ª¤¤Þ¤¹¡£
-+
-+encoding¥Õ¥¡¥¤¥ë($prefix/share/a2ps/encoding/¤Î²¼¤Î¥Õ¥¡¥¤¥ë)¤Ë¤Ï
-+¡ØComposite:¡Ù¤ª¤è¤Ó¡¢¡ØDefaultComposite:¡Ù¤¬¿·¤¿¤Ë»ØÄê¤Ç¤¤Þ¤¹¡£¤¿¤È
-+¤¨¤Ð¡¢±Ñ¸ì¥Õ¥©¥ó¥È¤ËÂбþ¤¹¤ëEUC¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ÎÆüËܸì¥Õ¥©¥ó¥È¤ò½ñ¤¤
-+¤Æ¹Ô¤¤Þ¤¹¡£¤Þ¤¿¡¢¤³¤ÎºÝ¡¢¥Õ¥©¥ó¥ÈÉý¤ÈȾ³Ñ¤È´Á»ú¤ÎÈæ¤â»ØÄꤷ¤Ê¤¯¤Æ¤Ï¤Ê
-+¤ê¤Þ¤»¤ó¡£¼êÈ´¤¤Ë¤è¤Ã¤Æ¡¢´Á»ú¤Ï¸ÇÄêÉý¥Õ¥©¥ó¥È¤·¤«»ØÄꤷ¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£
-+
-+--------------------------------------------------
-+# ÆüËܸì¥Õ¥©¥ó¥È ¥Õ¥©¥ó²£Éý Ⱦ³Ñ¤È´Á»ú¤ÎÈæ
-+DefaultComposite: Ryumin-Light-EUC-H 1 1.1
-+# ±Ñ¸ì¥Õ¥©¥ó¥È ÆüËܸì¥Õ¥©¥ó¥È ¥Õ¥©¥ó²£Éý Ⱦ³Ñ¤È´Á»ú¤ÎÈæ
-+Composite: Helvetica GothicBBB-Medium-EUC-H 1 1.1
-+--------------------------------------------------
-+
-+¤Þ¤¿¡¢¤³¤ì¤À¤È¼ÐÂδÁ»ú¤¬¤Ê¤¯¡¢¤µ¤ß¤·¤¤¤Î¤Ç¡¢SlantFont¤ò»È¤¤¡¢¼ÐÂΤδÁ
-+»ú¥Õ¥©¥ó¥È¤âºîÀ®¤Ç¤¤Þ¤¹¡£
-+
-+--------------------------------------------------
-+# ¿·µ¬¼ÐÂÎÆüËܸì¥Õ¥©¥ó¥È̾ ¥½¡¼¥¹ÆüËܸì¥Õ¥©¥ó¥È ·¹¤ÅÙ
-+SlantFont: Ryumin-Light-EUC-H-Italic Ryumin-Light-EUC-H 0.2
-+--------------------------------------------------
-+
-+SlantFont¤ÇÀ¸À®¤·¤¿¼ÐÂÎ¥Õ¥©¥ó¥È¤ÏComposite¥Õ¥©¥ó¥È(Âè2°ú¿ô)¤ÇÍøÍѤǤ
-+¤Þ¤¹¡£
-+
-+¡ü¤³¤Î¥Ñ¥Ã¥Á¤Î¾ÜºÙ¥Ç¡¼¥¿
-+ ¡¦»Äǰ¤Ê¤¬¤é2¥Ð¥¤¥ÈEUC¥³¡¼¥É¤òÁ°Äó¤È¤·¤¿¥³¡¼¥Ç¥£¥ó¥°¤ò¤·¤Æ¤¤¤Þ¤¹¡£
-+ ¤½¤Î¤¿¤á¡¢¤¢¤Þ¤ê´Á»ú°Ê³°¤Î¸À¸ì¤ò¹Í¤¨¤Æ¤ª¤ê¤Þ¤»¤ó¡Ä¡£
-+ ¡¦ÁÒ¸÷ ·¯Ïº»á¤Îlibjcode¤ò»È¤Ã¤ÆÆâÉô¤ÇÆþÎÏ¥Õ¥¡¥¤¥ë¤Î´Á»ú¥¨¥ó¥³¡¼¥Ç¥£
-+ ¥ó¥°¤ò¤¹¤Ù¤ÆEUC¤ËÊÑ´¹¤·¤Æ½èÍý¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£¤¿¤À¤·¡¢¥ª¥ê¥¸
-+ ¥Ê¥ë¤Îlibjcode¤Ï¡¢SJIS¤ª¤è¤ÓEUC¤ÎȽÄ꤬´Å¤«¤Ã¤¿¤Î¤Ç¿¾¯¥«¥¹¥¿¥à¤·
-+ ¤Æ¤ª¤ê¤Þ¤¹¡£
-+ ¡¦¤Þ¤¿¡¢tex¤Îdelegate(contrib/texi2dvi4a2ps)Ãæ¡¢TeX¥É¥é¥¤¥Ð¤Ë¤ÏpTeX
-+ ¤È·è¤á¤¦¤Á¤·¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤¬¤¤¤ä¤Ê¤é¡¢Î㤨¤ÐNTT-jTeX¤ò»ÈÍѤ·¤¿¤¤¾ì
-+ ¹ç¡¢´Ä¶ÊÑ¿ôTEX¤Ë¡Øjtex¡Ù¤ò¡¢LATEX¤Ë¤Ï¡Øjlatex¡Ù¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£
-+ ¡¦compositefont¤òa2psÍѤË¿¾¯¥«¥¹¥¿¥Þ¥¤¥º¤·¤Æ¤¤¤Þ¤¹¤¬¡¢¥Õ¥©¥ó¥È¤Î¹â
-+ ¤µ¤Ê¤É¤Î¾ðÊó¤ò´°Á´¤Ë¸ÇÄê¤Ç·è¤áÂǤÁ¤·¤Æ¤¤¤ë²Õ½ê¤¬¤¢¤ê¤Þ¤¹(XXX¤Ç¥á¥â
-+ ¤·¤Æ¤¤¤Þ¤¹)¡£¤½¤Î¤¿¤á¤¢¤Þ¤ê±þÍÑÀ¤¬Ä㤤¤È»×¤¤¤Þ¤¹¡£
-+
-+¡üȾ³Ñ¤òÁ´³Ñ¤Î1/2¤ÎÂ礤µ¤Ë¤·¤¿¤¤
-+¥Ñ¥Ã¥Á¥Ç¥Õ¥©¥ë¥È¤Ç¤ÏÁ´³Ñʸ»ú¤ÈȾ³Ñʸ»ú¤ÎÂ礤µ¤Î¥Ð¥é¥ó¥¹¤Ï¡¢¸«¤¿´¶¤¸¤¬
-+(¸Ä¿ÍŪ¤Ê¥»¥ó¥¹¤Ç)°ÂÄꤹ¤ë¤è¤¦¤Ë¥Á¥å¡¼¥Ë¥ó¥°¤·¤Æ¤¤¤Þ¤¹¡£¤â¤·¡¢¥Æ¥¥¹¥È
-+¤Çɽ¤òºîÀ®¤·¤Æ¤¤¤Æ¡¢¤½¤Î¤¿¤á¡¢È¾³Ñʸ»ú¤òÁ´³Ñ¤Î¤Á¤ç¤¦¤ÉȾʬ¤Ë¤½¤í¤¨¤¿¤¤
-+¤È¤¤¤¦¾ì¹ç¤ÎÂнèÊýË¡¤ò½ñ¤¤¤Æ¤ª¤¤Þ¤¹¡£
-+
-+¥¤¥ó¥¹¥È¡¼¥ë¸å¡¢$prefix/share/a2ps/encoding/euc-jpÃæ¤Ë¡¢
-+
-+--------------------------------------------------
-+DefaultComposite: Ryumin-Light-EUC-H 1.0 1.1
-+--------------------------------------------------
-+
-+¤È¤¤¤¦¤Î¤¬¤¢¤ë¤È»×¤¤¤Þ¤¹¡£ºÇ¸å¤Î¡Ø1.1¡Ù¤ò¡Ø0.8342¡Ù¤¢¤¿¤ê¤ËÊѹ¹¤·¤Æ²¼
-+¤µ¤¤¡£¥Î¡¼¥Þ¥ë¸ÇÄêʸ»ú¤Ë´Ø¤·¤Æ¤Ï¤³¤ì¤Ç˾¤ß¤Î·ë²Ì¤¬ÆÀ¤é¤ì¤ë¤È»×¤¤¤Þ¤¹¡£
-+
-+¾¤ÎÂÀ»ú¥Õ¥©¥ó¥È¤Ê¤É¤â¡¢Î㤨¤Ð
-+
-+--------------------------------------------------
-+Composite: Courier-Bold GothicBBB-Medium-EUC-H 1.0 0.8342
-+--------------------------------------------------
-+
-+¤Î¤è¤¦¤ËÊѹ¹¤¹¤ì¤Ð¤¤¤¤¤È»×¤¤¤Þ¤¹¡£¤Ê¤ª¡¢Courier¤¬¤Ä¤«¤Ê¤¤¥Õ¥©¥ó¥È
-+(HelveticaÅù)¤Ï¤â¤È¤â¤È¥×¥í¥Ý¡¼¥·¥ç¥Ê¥ë¥Õ¥©¥ó¥È¤Ê¤Î¤Ç¡¢¸ÇÄêÉý¤Ë¤Ï¤Ç¤
-+¤Þ¤»¤ó¡£
-+
-+
-+
-+¡üºÆÇÛÉۤˤĤ¤¤Æ
-+¤Ê¤ó¤À¤«¤ó¤À¤¤¤Ã¤Æ¡¢¤³¤Î¥Ñ¥Ã¥Á¤Ï¡¢
-+
-+ÁÒ¸÷ ·¯Ïº¤µ¤ó¤Îlibjcode ¡Ü ÊÒ»³ µªÉפµ¤ó¤Îfixeucfont
-+
-+¤òÁȤ߹ç¤ï¤Æ¤Ç¤¤¿¤â¤Î¤Ç»ä¼«¿È¤Î¥³¡¼¥É¤Ï¼Â¤Ï¤Û¤È¤ó¤É¤¢¤ê¤Þ¤»¤ó¡Ä¡£
-+
-+»ä¼«¿È¤Î¥³¡¼¥É¤ÏºÆÇÛÉÕ¡¿²þ¤¤Ë´Ø¤·¤Æ¤Ê¤ó¤éÀ©¸Â¤òÀߤ±¤ë¤Ä¤â¤ê¤Ï¤¢¤ê¤Þ¤»
-+¤ó¡£¤¿¤À¤·¡¢»ä°Ê³°¤Î¥³¡¼¥É¤ÎÊý¤¬Â¿¤¤¤¿¤á¡¢°ì±þ¤½¤ì¤À¤±¤Ï¸æÎ»¾µ¤ª´ê¤¤Ã×
-+¤·¤Þ¤¹¡£
-diff -up a2ps-4.14/src/buffer.c.euc a2ps-4.14/src/buffer.c
---- a2ps-4.14/src/buffer.c.euc 2007-12-29 02:58:34.000000000 +0100
-+++ a2ps-4.14/src/buffer.c 2008-04-27 10:39:24.000000000 +0200
-@@ -41,6 +41,21 @@
- #include "argmatch.h"
- #include "buffer.h"
- #include
-+
-+#ifdef HAVE_CONFIG_H
-+# include
-+#endif
-+
-+#ifdef ENABLE_KANJI
-+# include
-+# include
-+# include
-+# include
-+# include
-+# include
-+extern use_jcode;
-+#endif
-+
-
- /****************************************************************/
- /* Handling of the various eol styles */
-@@ -526,3 +541,278 @@ buffer_test (const char *filename)
- buffer_release (&buffer);
- }
- #endif
-+
-+/**
-+ * from jcode.c by Takuo KITAME
-+ */
-+#ifdef ENABLE_KANJI
-+
-+enum {
-+ JCODE_ASCII,
-+ JCODE_EUC,
-+ JCODE_JIS,
-+ JCODE_SJIS,
-+ EUCORSJIS };
-+
-+#define ESC 0x1b
-+#define SS2 0x8e
-+
-+#define JCODE_LOCALE_EUC "ja", "ja_JP", "ja_JP.ujis", "ja_JP.EUC", "ja_JP.eucJP"
-+#define JCODE_LOCALE_JIS "ja_JP.JIS", "ja_JP.jis", "ja_JP.iso-2022-jp"
-+#define JCODE_LOCALE_SJIS "ja_JP.SJIS", "ja_JP.sjis"
-+
-+/****************************************************************************/
-+/* Japanese string code detector */
-+/****************************************************************************/
-+int
-+detect_kanji(unsigned char *str)
-+{
-+ int expected = JCODE_ASCII;
-+ register int c;
-+ int c1, c2;
-+ int euc_c = 0, sjis_c = 0;
-+ unsigned char *ptr = str;
-+
-+ while((c = (int)*ptr)!= '\0') {
-+ if(c == ESC) {
-+ if((c = (int)*(++ptr)) == '\0')
-+ break;
-+ if(c == '$') {
-+ if((c = (int)*(++ptr)) == '\0')
-+ break;
-+ if(c == 'B' || c == '@')
-+ return JCODE_JIS;
-+ }
-+ ptr++;
-+ continue;
-+ }
-+ if((c >= 0x81 && c <= 0x8d) || (c >= 0x8f && c <= 0x9f))
-+ return JCODE_SJIS;
-+
-+ if(c == SS2) {
-+ if((c = (int)*(++ptr)) == '\0')
-+ break;
-+ if((c >= 0x40 && c <= 0x7e) ||
-+ (c >= 0x80 && c <= 0xa0) ||
-+ (c >= 0xe0 && c <= 0xfc))
-+ return JCODE_SJIS;
-+ if(c >= 0xa1 && c <= 0xdf)
-+ break;
-+
-+ ptr++;
-+ continue;
-+ }
-+ if(c >= 0xa1 && c <= 0xdf) {
-+ if((c = (int)*(++ptr)) == '\0')
-+ break;
-+
-+ if (c >= 0xe0 && c <= 0xfe)
-+ return JCODE_EUC;
-+ if (c >= 0xa1 && c <= 0xdf) {
-+ expected = EUCORSJIS;
-+ ptr++;
-+ continue;
-+ }
-+#if 1
-+ if(c == 0xa0 || (0xe0 <= c && c <= 0xfe))
-+ return JCODE_EUC;
-+ else {
-+ expected = EUCORSJIS;
-+ ptr++;
-+ continue;
-+ }
-+#else
-+ if(c <= 0x9f)
-+ return JCODE_SJIS;
-+ if(c >= 0xf0 && c <= 0xfe)
-+ return JCODE_EUC;
-+#endif
-+
-+ if(c >= 0xe0 && c <= 0xef) {
-+ expected = EUCORSJIS;
-+ while(c >= 0x40) {
-+ if(c >= 0x81) {
-+ if(c <= 0x8d || (c >= 0x8f && c <= 0x9f))
-+ return JCODE_SJIS;
-+ else if(c >= 0xfd && c <= 0xfe) {
-+ return JCODE_EUC;
-+ }
-+ }
-+ if((c = (int)*(++ptr)) == '\0')
-+ break;
-+ }
-+ ptr++;
-+ continue;
-+ }
-+
-+ if(c >= 0xe0 && c <= 0xef) {
-+ if((c = (int)*(++ptr)) == '\0')
-+ break;
-+ if((c >= 0x40 && c <= 0x7e) || (c >= 0x80 && c <= 0xa0))
-+ return JCODE_SJIS;
-+ if(c >= 0xfd && c <= 0xfe)
-+ return JCODE_EUC;
-+ if(c >= 0xa1 && c <= 0xfc)
-+ expected = EUCORSJIS;
-+ }
-+ }
-+#if 1
-+ if (0xf0 <= c && c <= 0xfe)
-+ return JCODE_EUC;
-+#endif
-+ ptr++;
-+ }
-+
-+ ptr = str;
-+ c2 = 0;
-+ while((c1 = (int)*ptr++) != '\0') {
-+ if(((c2 > 0x80 && c2 < 0xa0) || (c2 >= 0xe0 && c2 < 0xfd)) &&
-+ ((c1 >= 0x40 && c1 < 0x7f) || (c1 >= 0x80 && c1 < 0xfd)))
-+ sjis_c++, c1 = *ptr++;
-+ c2 = c1;
-+ }
-+ if(sjis_c == 0)
-+ expected = JCODE_EUC;
-+ else {
-+ ptr = str, c2 = 0;
-+ while((c1 = (int)*ptr++) != '\0') {
-+ if((c2 > 0xa0 && c2 < 0xff) &&
-+ (c1 > 0xa0 && c1 < 0xff))
-+ euc_c++, c1 = *ptr++;
-+ c2 = c1;
-+ }
-+ if(sjis_c > euc_c)
-+ expected = JCODE_SJIS;
-+ else
-+ expected = JCODE_EUC;
-+ }
-+ return expected;
-+}
-+
-+int
-+int_detect_JCode(char *str)
-+{
-+ int detected;
-+
-+ if(!str)
-+ return 0;
-+
-+ detected = detect_kanji((unsigned char *)str);
-+
-+ if(detected == JCODE_ASCII)
-+ return JCODE_ASCII;
-+
-+ switch(detected) {
-+ case JCODE_EUC:
-+ return JCODE_EUC;
-+ break;
-+ case JCODE_JIS:
-+ return JCODE_JIS;
-+ break;
-+ case JCODE_SJIS:
-+ return JCODE_SJIS;
-+ break;
-+ default:
-+ return JCODE_ASCII;
-+ break;
-+ }
-+
-+ /* not reached */
-+ return 0;
-+}
-+
-+const char *
-+detect_JCode(char *str)
-+{
-+ int detected;
-+
-+ if(!str)
-+ return NULL;
-+
-+ detected = detect_kanji((unsigned char *)str);
-+
-+ if(detected == JCODE_ASCII)
-+ return "ASCII";
-+
-+ switch(detected) {
-+ case JCODE_EUC:
-+ return "EUC-JP";
-+ break;
-+ case JCODE_JIS:
-+ return "ISO-2022-JP";
-+ break;
-+ case JCODE_SJIS:
-+ return "SJIS";
-+ break;
-+ default:
-+ return "ASCII";
-+ break;
-+ }
-+
-+ /* not reached */
-+ return 0;
-+}
-+
-+char *
-+kanji_conv_auto(char *str, const char *dstset)
-+{
-+ unsigned char *buf, *ret;
-+ iconv_t cd;
-+ size_t insize = 0;
-+ size_t outsize = 0;
-+ size_t nconv = 0;
-+ char *inptr;
-+ char *outptr;
-+ char srcset[16];
-+
-+ if(!str)
-+ return NULL;
-+
-+ switch (int_detect_JCode(str)) {
-+ case JCODE_EUC:
-+ strcpy(srcset, "EUC-JP");
-+ break;
-+ case JCODE_JIS:
-+ strcpy(srcset, "ISO-2022-JP");
-+ break;
-+ case JCODE_SJIS:
-+ strcpy(srcset, "SJIS");
-+ break;
-+ default:
-+ return strdup(str);
-+ break;
-+ }
-+
-+ buf = (unsigned char *)malloc(strlen(str)* 4 + 1);
-+ if(!buf)
-+ return NULL;
-+
-+ insize = strlen(str);
-+ inptr = str;
-+ outsize = strlen(str) * 4 ;
-+ outptr = buf;
-+
-+ cd = iconv_open(dstset, srcset);
-+ if(cd == (iconv_t) -1) {
-+ if(errno == EINVAL)
-+ return strdup(str);
-+ }
-+
-+ nconv = iconv(cd, (const char **)&inptr, &insize, &outptr, &outsize);
-+ if(nconv == (size_t) -1) {
-+ if (errno == EINVAL)
-+ memmove (buf, inptr, insize);
-+ } else
-+ iconv(cd, NULL, NULL, &outptr, &outsize);
-+
-+ *outptr = '\0';
-+ iconv_close(cd);
-+
-+ ret = strdup(buf);
-+ free(buf);
-+
-+ return ret;
-+}
-+
-+#endif
-+
-diff -up a2ps-4.14/src/buffer.h.euc a2ps-4.14/src/buffer.h
---- a2ps-4.14/src/buffer.h.euc 2007-12-29 02:58:35.000000000 +0100
-+++ a2ps-4.14/src/buffer.h 2008-04-27 10:39:24.000000000 +0200
-@@ -104,4 +104,15 @@ void buffer_sample_get PARAMS ((buffer_t
- void buffer_save PARAMS ((buffer_t * buffer, const char * filename));
-
- #define buffer_is_empty(Buf) (Buf->curr >= Buf->len)
-+
-+
-+/**
-+ * from jcode.h by Takuo KITAME
-+ */
-+
-+char *kanji_conv_auto(char *str, const char *dstset);
-+
-+const char *detect_JCode(char *str);
-+int int_detect_JCode(char *str);
-+
- #endif
-diff -up a2ps-4.14/src/Makefile.am.euc a2ps-4.14/src/Makefile.am
---- a2ps-4.14/src/Makefile.am.euc 2007-12-29 02:36:09.000000000 +0100
-+++ a2ps-4.14/src/Makefile.am 2008-04-27 10:39:24.000000000 +0200
-@@ -33,13 +33,13 @@ DEFS = @DEFS@ -DLOCALEDIR=\"$(datadir)/l
- a2ps_SOURCES = main.c \
- read.c sshread.c ssheet.c select.c generate.c \
- delegate.c regex.c buffer.c versions.c ffaces.c \
--version-etc.c long-options.c \
-+version-etc.c long-options.c jcode.c \
- parsessh.y lexssh.l lexps.l sheets-map.l
-
- noinst_HEADERS = main.h \
- read.h sshread.h ssheet.h select.h generate.h \
- delegate.h regex.h buffer.h versions.h ffaces.h \
--version-etc.h long-options.h \
-+version-etc.h long-options.h jcode.h \
- yy2ssh.h lexps.h
-
- BUILT_SOURCES = parsessh.c parsessh.h
diff --git a/a2ps-4.13-glibcpaper.patch b/a2ps-4.13-glibcpaper.patch
index 23ab881..7030b73 100644
--- a/a2ps-4.13-glibcpaper.patch
+++ b/a2ps-4.13-glibcpaper.patch
@@ -1,25 +1,43 @@
---- a2ps-4.13/lib/jobs.c.glibcpaper Sat Jan 15 18:15:07 2000
-+++ a2ps-4.13/lib/jobs.c Tue Feb 20 18:44:48 2001
-@@ -138,6 +138,7 @@
+diff -up a2ps-4.15.3/doc/a2ps.texi.glibcpaper a2ps-4.15.3/doc/a2ps.texi
+--- a2ps-4.15.3/doc/a2ps.texi.glibcpaper 2023-04-25 15:55:46.783621115 +0200
++++ a2ps-4.15.3/doc/a2ps.texi 2023-04-25 16:01:07.004225790 +0200
+@@ -1359,6 +1359,12 @@ use output medium @var{medium}. See the
+ default; see the man page of @code{paper} for how this is configured.
+ The default paper size may also be requested explicitly with the name
+ @samp{libpaper}.
++
++The special @var{medium} @samp{_glibc} (which, in this Red Hat Linux
++version of @samp{a2ps}, is the default) means that you want the medium
++to be determined by the locale category @samp{LC_PAPER}. Note that this
++information is obtained from environment variables which may not be set
++up in non-interactive environments (such as in a cron job).
+ @end defvr
+
+ @defvr {Option} -r
+diff -up a2ps-4.15.3/liba2ps/jobs.c.glibcpaper a2ps-4.15.3/liba2ps/jobs.c
+--- a2ps-4.15.3/liba2ps/jobs.c.glibcpaper 2023-04-25 15:55:46.781621105 +0200
++++ a2ps-4.15.3/liba2ps/jobs.c 2023-04-25 15:56:51.340944620 +0200
+@@ -119,6 +119,7 @@ a2ps_job_new (void)
+ setlocale (LC_TIME, "");
setlocale (LC_MESSAGES, "");
- #endif
setlocale (LC_CTYPE, "");
+ setlocale (LC_PAPER, "");
bindtextdomain (PACKAGE, LOCALEDIR);
- textdomain (PACKAGE);
---- a2ps-4.13/lib/options.c.glibcpaper Tue Aug 31 13:42:41 1999
-+++ a2ps-4.13/lib/options.c Tue Feb 20 18:44:48 2001
-@@ -54,6 +54,8 @@
- #include "argv.h"
+ bindtextdomain (PACKAGE "-gnulib", LOCALEDIR);
+diff -up a2ps-4.15.3/liba2ps/options.c.glibcpaper a2ps-4.15.3/liba2ps/options.c
+--- a2ps-4.15.3/liba2ps/options.c.glibcpaper 2023-03-19 18:22:01.000000000 +0100
++++ a2ps-4.15.3/liba2ps/options.c 2023-04-25 15:57:18.942082933 +0200
+@@ -41,6 +41,8 @@
#include "quotearg.h"
#include "filalign.h"
+ #include "version-etc.h"
+#include
+#include
#define MAN_LINES 66 /* no lines for a man */
extern char *program_name;
-@@ -281,7 +283,8 @@
+@@ -267,7 +269,8 @@ a2ps_handle_options (a2ps_job * job, int
struct opt_optarg *opt_optarg_head = NULL;
struct opt_optarg *opt_optarg = NULL;
int res;
@@ -29,7 +47,7 @@
/* Reset optind so that getopt is reinitialized. */
optind = 0;
-@@ -545,7 +548,14 @@
+@@ -515,7 +518,14 @@ a2ps_handle_options (a2ps_job * job, int
break;
case 'M': /* select a medium */
@@ -45,36 +63,12 @@
break;
case 'n': /* n copies */
---- a2ps-4.13/src/main.c.glibcpaper Wed Jan 26 19:29:15 2000
-+++ a2ps-4.13/src/main.c Tue Feb 20 18:45:18 2001
-@@ -945,6 +945,7 @@
- setlocale (LC_MESSAGES, "");
- #endif
- setlocale (LC_CTYPE, "");
-+ setlocale (LC_PAPER, "");
-
- bindtextdomain (PACKAGE, LOCALEDIR);
- textdomain (PACKAGE);
---- a2ps-4.13/doc/a2ps.texi.glibcpaper Wed Jan 23 12:36:30 2002
-+++ a2ps-4.13/doc/a2ps.texi Wed Jan 23 12:40:08 2002
-@@ -1363,6 +1363,12 @@
- ask the library @code{libpaper} for the medium to use. This choice is
- valid only if @code{libpaper} was available when @pack{} was configured.
- See the man page of @code{paperconf} for more information.
-+
-+The special @var{medium} @samp{_glibc} (which, in this Red Hat Linux
-+version of @samp{a2ps}, is the default) means that you want the medium
-+to be determined by the locale category @samp{LC_PAPER}. Note that this
-+information is obtained from environment variables which may not be set
-+up in non-interactive environments (such as in a cron job).
- @end defvr
-
- @defvr {Option} -r
---- a2ps-4.13/man/a2ps.1.glibcpaper Wed Jan 23 12:42:36 2002
-+++ a2ps-4.13/man/a2ps.1 Wed Jan 23 12:45:05 2002
-@@ -60,6 +60,11 @@
+diff -up a2ps-4.15.3/man/a2ps.1.glibcpaper a2ps-4.15.3/man/a2ps.1
+--- a2ps-4.15.3/man/a2ps.1.glibcpaper 2023-04-25 15:55:46.783621115 +0200
++++ a2ps-4.15.3/man/a2ps.1 2023-04-25 16:01:48.946435970 +0200
+@@ -67,6 +67,11 @@ Sheets:
.TP
- \fB\-M\fR, \fB\-\-medium\fR=\fINAME\fR
+ \fB\-M\fR, \fB\-\-medium\fR=\fI\,NAME\/\fR
use output medium NAME
+
+The default behaviour is to use the locale category
@@ -84,3 +78,14 @@
.TP
\fB\-r\fR, \fB\-\-landscape\fR
print in landscape mode
+diff -up a2ps-4.15.3/src/main.c.glibcpaper a2ps-4.15.3/src/main.c
+--- a2ps-4.15.3/src/main.c.glibcpaper 2023-04-25 15:55:46.782621110 +0200
++++ a2ps-4.15.3/src/main.c 2023-04-25 15:57:45.302215028 +0200
+@@ -933,6 +933,7 @@ main (int argc, char *argv[])
+ setlocale (LC_TIME, "");
+ setlocale (LC_MESSAGES, "");
+ setlocale (LC_CTYPE, "");
++ setlocale (LC_PAPER, "");
+
+ bindtextdomain (PACKAGE, LOCALEDIR);
+ bindtextdomain (PACKAGE "-gnulib", LOCALEDIR);
diff --git a/a2ps-4.13-gnusource.patch b/a2ps-4.13-gnusource.patch
deleted file mode 100644
index 5e75fbb..0000000
--- a/a2ps-4.13-gnusource.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- a2ps-4.13/src/main.c.gnusource 2003-10-17 17:07:05.000000000 +0100
-+++ a2ps-4.13/src/main.c 2003-10-17 17:07:17.000000000 +0100
-@@ -30,6 +30,7 @@
- /* I n c l u d e f i l e s */
- /* */
- /************************************************************************/
-+#define _GNU_SOURCE
- #include
- #include
- #include
-@@ -105,7 +106,6 @@
- defined twice, see lib/confg.gperf, handling of `Options:'. */
-
- char *program_name;
--const char *program_invocation_name;
-
- /* Stores the data of liba2ps. */
-
diff --git a/a2ps-4.13-security.patch b/a2ps-4.13-security.patch
deleted file mode 100644
index cff6225..0000000
--- a/a2ps-4.13-security.patch
+++ /dev/null
@@ -1,65 +0,0 @@
---- a2ps-4.13/lib/routines.c.security Sat Oct 16 05:46:37 1999
-+++ a2ps-4.13/lib/routines.c Mon Feb 12 17:45:15 2001
-@@ -242,3 +242,50 @@
- /* Don't complain if you can't unlink. Who cares of a tmp file? */
- unlink (filename);
- }
-+
-+/*
-+ * Securely generate a temp file, and make sure it gets
-+ * deleted upon exit.
-+ */
-+static char ** tempfiles;
-+static unsigned ntempfiles;
-+
-+static void
-+cleanup_tempfiles()
-+{
-+ while (ntempfiles--)
-+ unlink(tempfiles[ntempfiles]);
-+}
-+
-+char *
-+safe_tempnam(const char *pfx)
-+{
-+ char *dirname, *filename;
-+ int fd;
-+
-+ if (!(dirname = getenv("TMPDIR")))
-+ dirname = "/tmp";
-+
-+ tempfiles = (char **) realloc(tempfiles,
-+ (ntempfiles+1) * sizeof(char *));
-+ if (tempfiles == NULL)
-+ return NULL;
-+
-+ filename = malloc(strlen(dirname) + strlen(pfx) + sizeof("/XXXXXX"));
-+ if (!filename)
-+ return NULL;
-+
-+ sprintf(filename, "%s/%sXXXXXX", dirname, pfx);
-+
-+ if ((fd = mkstemp(filename)) < 0) {
-+ free(filename);
-+ return NULL;
-+ }
-+ close(fd);
-+
-+ if (ntempfiles == 0)
-+ atexit(cleanup_tempfiles);
-+ tempfiles[ntempfiles++] = filename;
-+
-+ return filename;
-+}
---- a2ps-4.13/lib/routines.h.security Mon Oct 18 21:24:41 1999
-+++ a2ps-4.13/lib/routines.h Mon Feb 12 17:39:30 2001
-@@ -255,7 +255,8 @@
- /* If _STR_ is not defined, give it a tempname in _TMPDIR_ */
- #define tempname_ensure(Str) \
- do { \
-- (Str) = (Str) ? (Str) : tempnam (NULL, "a2_"); \
-+ (Str) = (Str) ? (Str) : safe_tempnam("a2_"); \
- } while (0)
-+char * safe_tempnam(const char *);
-
- #endif
diff --git a/a2ps-4.13b-attr.patch b/a2ps-4.13b-attr.patch
deleted file mode 100644
index c157604..0000000
--- a/a2ps-4.13b-attr.patch
+++ /dev/null
@@ -1,92 +0,0 @@
---- a2ps-4.13/lib/fonts.c.attr Wed Jan 9 14:41:27 2002
-+++ a2ps-4.13/lib/fonts.c Wed Jan 9 14:42:01 2002
-@@ -2173,7 +2173,7 @@
- * in the encoding specific dictionary
- */
- int
--font_is_to_reencode (PARAM_UNUSED struct a2ps_job * job, const char * key)
-+font_is_to_reencode (struct a2ps_job * job PARAM_UNUSED, const char * key)
- {
- return !strequ (key, "Symbol");
- }
---- a2ps-4.13/lib/lister.c.attr Wed Jan 9 14:41:30 2002
-+++ a2ps-4.13/lib/lister.c Wed Jan 9 14:42:28 2002
-@@ -333,7 +333,7 @@
- }
-
- void
--lister_fprint_vertical (struct lister * lister, PARAM_UNUSED FILE *unused,
-+lister_fprint_vertical (struct lister * lister, FILE *unused PARAM_UNUSED,
- void **items, size_t item_number,
- lister_width_t item_width_fn,
- lister_print_t item_print_fn)
-@@ -483,7 +483,7 @@
- /* FIXME: document */
-
- void
--lister_fprint_horizontal (struct lister * lister, PARAM_UNUSED FILE *unused,
-+lister_fprint_horizontal (struct lister * lister, FILE *unused PARAM_UNUSED,
- void **items, size_t item_number,
- lister_width_t item_width_fn,
- lister_print_t item_print_fn)
-@@ -577,7 +577,7 @@
- */
-
- void
--lister_fprint_separated (struct lister * lister,PARAM_UNUSED FILE *unused,
-+lister_fprint_separated (struct lister * lister,FILE *unused PARAM_UNUSED,
- void **items, size_t item_number,
- lister_width_t item_width_fn,
- lister_print_t item_print_fn)
---- a2ps-4.13/lib/media.c.attr Wed Jan 9 14:41:33 2002
-+++ a2ps-4.13/lib/media.c Wed Jan 9 14:42:35 2002
-@@ -190,7 +190,7 @@
-
- /* Is libpaper used? */
- bool
--a2ps_medium_libpaper_p (PARAM_UNUSED a2ps_job * job, const char * name)
-+a2ps_medium_libpaper_p (a2ps_job * job PARAM_UNUSED, const char * name)
- {
- return strequ (name, LIBPAPER_MEDIUM) ? true : false;
- }
---- a2ps-4.13/lib/pathwalk.c.attr Wed Jan 9 14:41:38 2002
-+++ a2ps-4.13/lib/pathwalk.c Wed Jan 9 14:42:47 2002
-@@ -425,14 +425,14 @@
- /* Helping functions for pw_glob. */
-
- static bool
--pw_filter_fnmatch (PARAM_UNUSED const char * dir, const char *file,
-+pw_filter_fnmatch (const char * dir PARAM_UNUSED, const char *file,
- const char *pattern)
- {
- return !fnmatch (pattern, file, 0);
- }
-
- static void
--pw_filter_da_append (PARAM_UNUSED const char * dir, const char *file,
-+pw_filter_da_append (const char * dir PARAM_UNUSED, const char *file,
- struct darray *da)
- {
- da_append (da, xstrdup (file));
---- a2ps-4.13/lib/routines.c.attr Wed Jan 9 14:41:42 2002
-+++ a2ps-4.13/lib/routines.c Wed Jan 9 14:42:54 2002
-@@ -235,7 +235,7 @@
- * Unlink the file FILENAME.
- */
- void
--unlink2 (PARAM_UNUSED void * dummy, const char * filename)
-+unlink2 (void * dummy PARAM_UNUSED, const char * filename)
- {
- message (msg_tool | msg_file, (stderr, "Unlinking file `%s'\n", filename));
-
---- a2ps-4.13/lib/fonts.l.attr Wed Jan 9 14:58:38 2002
-+++ a2ps-4.13/lib/fonts.l Wed Jan 9 14:58:52 2002
-@@ -585,7 +585,7 @@
- * in the encoding specific dictionary
- */
- int
--font_is_to_reencode (PARAM_UNUSED struct a2ps_job * job, const char * key)
-+font_is_to_reencode (struct a2ps_job * job PARAM_UNUSED, const char * key)
- {
- return !strequ (key, "Symbol");
- }
diff --git a/a2ps-4.13b-encoding.patch b/a2ps-4.13b-encoding.patch
index d4337b6..0b26e4a 100644
--- a/a2ps-4.13b-encoding.patch
+++ b/a2ps-4.13b-encoding.patch
@@ -1,39 +1,8 @@
---- a2ps-4.13/etc/a2ps-site.cfg.in.encoding 2000-01-15 23:39:36.000000000 +0000
-+++ a2ps-4.13/etc/a2ps-site.cfg.in 2002-08-05 10:22:20.000000000 +0100
-@@ -11,7 +11,7 @@
- #################################################################
-
- # Default encoding
--Options: --encoding=@ENCODING@
-+#Options: --encoding=@ENCODING@
-
- # Default medium
- Options: --medium=@MEDIUM@
---- a2ps-4.13/src/main.c.encoding 2002-08-05 10:22:20.000000000 +0100
-+++ a2ps-4.13/src/main.c 2002-08-05 10:22:20.000000000 +0100
-@@ -32,6 +32,7 @@
- /************************************************************************/
- #include
- #include
-+#include
- #include
-
- #include "a2ps.h"
-@@ -1021,9 +1022,8 @@
- sheets_map = sheets_map_new ();
- style_sheets = new_style_sheets ();
-
-- /* Process special case: Japanese Document */
-- if (! strncmp (locale, "ja", 2) )
-- job->requested_encoding_name = xstrdup ("euc-jp");
-+ /* Use locale to set default encoding. */
-+ job->requested_encoding_name = xstrdup (nl_langinfo (CODESET));
-
- /* Process the command line options. */
- argn = a2ps_handle_options (job, argc, argv);
---- a2ps-4.13/encoding/encoding.map.encoding 2002-08-05 10:22:20.000000000 +0100
-+++ a2ps-4.13/encoding/encoding.map 2002-08-05 10:38:55.000000000 +0100
-@@ -45,6 +45,7 @@
+diff --git a/encoding/encoding.map b/encoding/encoding.map
+index 926749e..7eb3873 100644
+--- a/encoding/encoding.map
++++ b/encoding/encoding.map
+@@ -45,6 +45,7 @@ us-ascii ascii
latin1 iso1
iso1 iso1
iso-8859-1 iso1
@@ -41,10 +10,45 @@
latin2 iso2
iso2 iso2
-@@ -128,3 +129,6 @@
+@@ -142,3 +143,6 @@ hp8 hp
# Apple' Macintosh
mac mac
macintosh mac
+
+# We don't handle UTF-8 at all yet. Sometimes latin1 will work...
+utf-8 iso1
+diff --git a/etc/a2ps-site.cfg.in b/etc/a2ps-site.cfg.in
+index 2bbcddd..f9f699d 100644
+--- a/etc/a2ps-site.cfg.in
++++ b/etc/a2ps-site.cfg.in
+@@ -11,7 +11,7 @@
+ #################################################################
+
+ # Default encoding
+-Options: --encoding=@ENCODING@
++#Options: --encoding=@ENCODING@
+
+ #################################################################
+ # 2) Your printers #
+diff --git a/src/main.c b/src/main.c
+index 32699ce..b015fb0 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -25,6 +25,7 @@
+ #include
+
+ #include
++#include
+ #include
+
+ #include "a2ps.h"
+@@ -989,6 +990,9 @@ main (int argc, char *argv[])
+ sheets_map = sheets_map_new ();
+ style_sheets = new_style_sheets ();
+
++ /* Use locale to set default encoding. */
++ job->requested_encoding_name = xstrdup (nl_langinfo (CODESET));
++
+ /* Process the command line options. */
+ argn = a2ps_handle_options (job, argc, argv);
+ switch (behavior) {
diff --git a/a2ps-4.13b-numeric.patch b/a2ps-4.13b-numeric.patch
index b7d0990..e6dbe77 100644
--- a/a2ps-4.13b-numeric.patch
+++ b/a2ps-4.13b-numeric.patch
@@ -1,10 +1,11 @@
---- a2ps-4.13/src/main.c.numeric Wed Jan 9 14:59:46 2002
-+++ a2ps-4.13/src/main.c Wed Jan 9 15:03:52 2002
-@@ -951,6 +951,7 @@
+diff -up a2ps-4.15.5/src/main.c.numeric a2ps-4.15.5/src/main.c
+--- a2ps-4.15.5/src/main.c.numeric 2023-07-25 13:51:15.682949214 +0200
++++ a2ps-4.15.5/src/main.c 2023-07-25 13:56:01.934924976 +0200
+@@ -927,6 +927,7 @@ main (int argc, char *argv[])
+ setlocale (LC_MESSAGES, "");
+ setlocale (LC_CTYPE, "");
setlocale (LC_PAPER, "");
-
- locale = setlocale (LC_ALL, "");
+ setlocale (LC_NUMERIC, "C");
- /* fprintf(stderr, "locale : %s\n", locale); */
bindtextdomain (PACKAGE, LOCALEDIR);
+ bindtextdomain (PACKAGE "-gnulib", LOCALEDIR);
diff --git a/a2ps-4.14-texinfo-nodes.patch b/a2ps-4.14-texinfo-nodes.patch
index 47c2001..a06fb2d 100644
--- a/a2ps-4.14-texinfo-nodes.patch
+++ b/a2ps-4.14-texinfo-nodes.patch
@@ -1,6 +1,84 @@
-diff -up a2ps-4.14/doc/regex.texi_old a2ps-4.14/doc/regex.texi
---- a2ps-4.14/doc/regex.texi_old 2002-03-04 19:46:24.000000000 +0100
-+++ a2ps-4.14/doc/regex.texi 2008-05-16 11:34:42.000000000 +0200
+diff -up a2ps-4.15.5/doc/a2ps.texi.nodes a2ps-4.15.5/doc/a2ps.texi
+--- a2ps-4.15.5/doc/a2ps.texi.nodes 2023-07-25 18:04:09.076935779 +0200
++++ a2ps-4.15.5/doc/a2ps.texi 2023-07-25 18:11:46.197081542 +0200
+@@ -342,11 +342,11 @@ Contributions
+
+ Frequently asked questions
+
+-* Why Does ...?:: Questions on Error
+-* How Can I ...?:: a2ps' How-To
+-* Please tell me...:: Existential Questions on a2ps
++* Why Does?:: Questions on Error
++* How Can I?:: a2ps' How-To
++* Please tell me:: Existential Questions on a2ps
+
+-Why Does...?
++Why Does?
+
+ * It Prints Nothing:: The printer issues nothing
+ * It Prints in Simplex:: While I asked for Duplex
+@@ -356,7 +356,7 @@ Why Does...?
+ * It Says my File is Binary:: And refuses to print it
+ * It Refuses to Change the Font Size::
+
+-How Can I ...?
++How Can I?
+
+ * Leave Room for Binding:: Specifying Margins
+ * Print stdin:: Using a2ps in a pipe chain
+@@ -365,7 +365,7 @@ How Can I ...?
+ * Pass Options to lpr:: Disable the banner
+ * Man Pages with Underlines:: Now it Prints With Italics
+
+-Please tell me...
++Please tell me
+
+ * Is a2ps Y2K compliant?:: Printing dates in short format
+ * Why not using yacc:: Why Using Style Sheets
+@@ -5841,13 +5841,13 @@ question about the options, etc. It has
+ suggestions, not to contact the authors.
+
+ @menu
+-* Why Does ...?:: Questions on Error
+-* How Can I ...?:: a2ps' How-To
+-* Please tell me...:: Existential Questions on a2ps
++* Why Does?:: Questions on Error
++* How Can I?:: a2ps' How-To
++* Please tell me:: Existential Questions on a2ps
+ @end menu
+
+-@node Why Does ...?
+-@section Why Does...?
++@node Why Does?
++@section Why Does?
+
+ Error related questions.
+
+@@ -6069,8 +6069,8 @@ Note that the `pure' options (no side-ef
+ virtual pages are @samp{--columns} and @samp{--rows}.
+
+ @c -----------------------------How can I ? ------------------------------
+-@node How Can I ...?
+-@section How Can I ...?
++@node How Can I?
++@section How Can I?
+
+ A mini how-to on @pack{}.
+
+@@ -6152,8 +6152,8 @@ Use @samp{a2ps --pro=ul}.
+
+
+ @c -------------------------- Please Tell me ? ------------------------------
+-@node Please tell me...
+-@section Please tell me...
++@node Please tell me
++@section Please tell me
+
+ Wondering something?
+
+diff -up a2ps-4.15.5/doc/regex.texi.nodes a2ps-4.15.5/doc/regex.texi
+--- a2ps-4.15.5/doc/regex.texi.nodes 2022-05-01 14:00:35.000000000 +0200
++++ a2ps-4.15.5/doc/regex.texi 2023-07-25 18:04:09.094935900 +0200
@@ -121,7 +121,7 @@ Regular Expression Syntax
* Syntax Bits::
@@ -28,7 +106,7 @@ diff -up a2ps-4.14/doc/regex.texi_old a2ps-4.14/doc/regex.texi
@section Predefined Syntaxes
If you're programming with Regex, you can set a pattern buffer's
-@@ -552,8 +552,8 @@ The predefined syntaxes--taken directly
+@@ -552,8 +552,8 @@ The predefined syntaxes--taken directly
| RE_NO_BK_VBAR | RE_UNMATCHED_RIGHT_PAREN_ORD)
@end example
@@ -48,81 +126,3 @@ diff -up a2ps-4.14/doc/regex.texi_old a2ps-4.14/doc/regex.texi
@section The Backslash Character
@cindex @samp{\}
-diff -up a2ps-4.14/doc/a2ps.texi_old a2ps-4.14/doc/a2ps.texi
---- a2ps-4.14/doc/a2ps.texi_old 2008-05-16 11:34:21.000000000 +0200
-+++ a2ps-4.14/doc/a2ps.texi 2008-05-16 11:42:11.000000000 +0200
-@@ -371,11 +371,11 @@ Contributions
-
- Frequently asked questions
-
--* Why Does ...?:: Questions on Error
--* How Can I ...?:: a2ps' How-To
--* Please tell me...:: Existential Questions on a2ps
-+* Why Does?:: Questions on Error
-+* How Can I?:: a2ps' How-To
-+* Please tell me:: Existential Questions on a2ps
-
--Why Does...?
-+Why Does?
-
- * It Prints Nothing:: The printer issues nothing
- * It Prints in Simplex:: While I asked for Duplex
-@@ -385,7 +385,7 @@ Why Does...?
- * It Says my File is Binary:: And refuses to print it
- * It Refuses to Change the Font Size::
-
--How Can I ...?
-+How Can I?
-
- * Leave Room for Binding:: Specifying Margins
- * Print stdin:: Using a2ps in a pipe chain
-@@ -395,7 +395,7 @@ How Can I ...?
- * Non PostScript Printers:: Using GhostScript
- * Man Pages with Underlines:: Now it Prints With Italics
-
--Please tell me...
-+Please tell me
-
- * Is a2ps Y2K compliant?:: Printing dates in short format
- * The Options Have Changed:: Respect The Users
-@@ -6198,13 +6198,13 @@ question about the options, etc. It has
- suggestions, not to contact the authors.
-
- @menu
--* Why Does ...?:: Questions on Error
--* How Can I ...?:: a2ps' How-To
--* Please tell me...:: Existential Questions on a2ps
-+* Why Does?:: Questions on Error
-+* How Can I?:: a2ps' How-To
-+* Please tell me:: Existential Questions on a2ps
- @end menu
-
--@node Why Does ...?
--@section Why Does...?
-+@node Why Does?
-+@section Why Does?
-
- Error related questions.
-
-@@ -6426,8 +6426,8 @@ Note that the `pure' options (no side-ef
- virtual pages are @samp{--columns} and @samp{--rows}.
-
- @c -----------------------------How can I ? ------------------------------
--@node How Can I ...?
--@section How Can I ...?
-+@node How Can I?
-+@section How Can I?
-
- A mini how-to on @pack{}.
-
-@@ -6561,8 +6561,8 @@ Use @samp{a2ps --pro=ul}.
-
-
- @c -------------------------- Please Tell me ? ------------------------------
--@node Please tell me...
--@section Please tell me...
-+@node Please tell me
-+@section Please tell me
-
- Wondering something?
-
diff --git a/a2ps-CVE-2014-0466.patch b/a2ps-CVE-2014-0466.patch
deleted file mode 100644
index b857019..0000000
--- a/a2ps-CVE-2014-0466.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up a2ps-4.14/contrib/fixps.in.CVE-2014-0466 a2ps-4.14/contrib/fixps.in
---- a2ps-4.14/contrib/fixps.in.CVE-2014-0466 2014-04-01 15:35:04.168904356 +0100
-+++ a2ps-4.14/contrib/fixps.in 2014-04-01 15:35:36.509060292 +0100
-@@ -389,7 +389,7 @@ if test $task != check; then
- eval "$command" ;;
- gs)
- $verbose "$program: making a full rewrite of the file ($gs)." >&2
-- $gs -q -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=- -c save pop -f $file ;;
-+ $gs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=- -c save pop -f $file ;;
- esac
- )
- fi
-diff -up a2ps-4.14/contrib/fixps.m4.CVE-2014-0466 a2ps-4.14/contrib/fixps.m4
---- a2ps-4.14/contrib/fixps.m4.CVE-2014-0466 2014-04-01 15:35:06.885917452 +0100
-+++ a2ps-4.14/contrib/fixps.m4 2014-04-01 15:35:48.748119336 +0100
-@@ -307,7 +307,7 @@ if test $task != check; then
- eval "$command" ;;
- gs)
- $verbose "$program: making a full rewrite of the file ($gs)." >&2
-- $gs -q -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=- -c save pop -f $file ;;
-+ $gs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=- -c save pop -f $file ;;
- esac
- )
- fi
diff --git a/a2ps-U.patch b/a2ps-U.patch
index 48c5a90..eff7118 100644
--- a/a2ps-U.patch
+++ b/a2ps-U.patch
@@ -9,14 +9,3 @@
| $a2ps -gEudiff $a2ps_options || exit 1
;;
esac
---- a2ps-4.13/contrib/pdiff.m4.U 2005-05-05 12:47:54.000000000 +0100
-+++ a2ps-4.13/contrib/pdiff.m4 2005-05-05 12:53:10.000000000 +0100
-@@ -100,7 +100,7 @@
- # We need the total number of lines
- lines=`wc -l $file1 $file2 | sed -n 3p`
- lines=`set -- $lines && echo $1`
-- $diff_prog $diff_options -$lines $file1 $file2 \
-+ $diff_prog $diff_options -U$lines $file1 $file2 \
- | $a2ps -gEudiff $a2ps_options || exit 1
- ;;
- esac
diff --git a/a2ps-aarch64.patch b/a2ps-aarch64.patch
deleted file mode 100644
index a55bf9f..0000000
--- a/a2ps-aarch64.patch
+++ /dev/null
@@ -1,1629 +0,0 @@
-diff -up a2ps-4.14/auxdir/config.guess.aarch64 a2ps-4.14/auxdir/config.guess
---- a2ps-4.14/auxdir/config.guess.aarch64 2007-12-29 03:28:06.000000000 +0000
-+++ a2ps-4.14/auxdir/config.guess 2013-04-29 13:13:51.035686658 +0100
-@@ -1,10 +1,10 @@
- #! /bin/sh
- # Attempt to guess a canonical system name.
- # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
--# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
--# Inc.
-+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-+# 2011, 2012 Free Software Foundation, Inc.
-
--timestamp='2007-07-22'
-+timestamp='2012-09-25'
-
- # This file is free software; you can redistribute it and/or modify it
- # under the terms of the GNU General Public License as published by
-@@ -17,9 +17,7 @@ timestamp='2007-07-22'
- # General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
--# along with this program; if not, write to the Free Software
--# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
--# 02110-1301, USA.
-+# along with this program; if not, see .
- #
- # As a special exception to the GNU General Public License, if you
- # distribute this file as part of a program that contains a
-@@ -27,16 +25,16 @@ timestamp='2007-07-22'
- # the same distribution terms that you use for the rest of that program.
-
-
--# Originally written by Per Bothner .
--# Please send patches to . Submit a context
--# diff and a properly formatted ChangeLog entry.
-+# Originally written by Per Bothner. Please send patches (context
-+# diff format) to and include a ChangeLog
-+# entry.
- #
- # This script attempts to guess a canonical system name similar to
- # config.sub. If it succeeds, it prints the system name on stdout, and
- # exits with 0. Otherwise, it exits with 1.
- #
--# The plan is that this can be called by configure scripts if you
--# don't specify an explicit build system type.
-+# You can get the latest version of this script from:
-+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
-
- me=`echo "$0" | sed -e 's,.*/,,'`
-
-@@ -56,7 +54,8 @@ version="\
- GNU config.guess ($timestamp)
-
- Originally written by Per Bothner.
--Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
- Free Software Foundation, Inc.
-
- This is free software; see the source for copying conditions. There is NO
-@@ -144,7 +143,7 @@ UNAME_VERSION=`(uname -v) 2>/dev/null` |
- case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- *:NetBSD:*:*)
- # NetBSD (nbsd) targets should (where applicable) match one or
-- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
-+ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
- # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
- # switched to ELF, *-*-netbsd* would select the old
- # object file format. This provides both forward
-@@ -170,7 +169,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
- arm*|i386|m68k|ns32k|sh3*|sparc|vax)
- eval $set_cc_for_build
- if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
-- | grep __ELF__ >/dev/null
-+ | grep -q __ELF__
- then
- # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
- # Return netbsd for either. FIX?
-@@ -180,7 +179,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
- fi
- ;;
- *)
-- os=netbsd
-+ os=netbsd
- ;;
- esac
- # The OS release
-@@ -201,6 +200,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
- # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "${machine}-${os}${release}"
- exit ;;
-+ *:Bitrig:*:*)
-+ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
-+ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
-+ exit ;;
- *:OpenBSD:*:*)
- UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
-@@ -223,7 +226,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
- ;;
- *5.*)
-- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
-+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
- ;;
- esac
- # According to Compaq, /usr/sbin/psrinfo has been available on
-@@ -269,7 +272,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
- # A Xn.n version is an unreleased experimental baselevel.
- # 1.2 uses "1.2" for uname -r.
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-- exit ;;
-+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
-+ exitcode=$?
-+ trap '' 0
-+ exit $exitcode ;;
- Alpha\ *:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # Should we change UNAME_MACHINE based on the output of uname instead
-@@ -295,12 +301,12 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
- echo s390-ibm-zvmoe
- exit ;;
- *:OS400:*:*)
-- echo powerpc-ibm-os400
-+ echo powerpc-ibm-os400
- exit ;;
- arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
- exit ;;
-- arm:riscos:*:*|arm:RISCOS:*:*)
-+ arm*:riscos:*:*|arm*:RISCOS:*:*)
- echo arm-unknown-riscos
- exit ;;
- SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
-@@ -324,14 +330,33 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
- case `/usr/bin/uname -p` in
- sparc) echo sparc-icl-nx7; exit ;;
- esac ;;
-+ s390x:SunOS:*:*)
-+ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-+ exit ;;
- sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
-+ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
-+ echo i386-pc-auroraux${UNAME_RELEASE}
-+ exit ;;
- i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
-- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-+ eval $set_cc_for_build
-+ SUN_ARCH="i386"
-+ # If there is a compiler, see if it is configured for 64-bit objects.
-+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
-+ # This test works for both compilers.
-+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
-+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-+ grep IS_64BIT_ARCH >/dev/null
-+ then
-+ SUN_ARCH="x86_64"
-+ fi
-+ fi
-+ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- sun4*:SunOS:6*:*)
- # According to config.sub, this is the proper way to canonicalize
-@@ -375,23 +400,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
- # MiNT. But MiNT is downward compatible to TOS, so this should
- # be no problem.
- atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
-- echo m68k-atari-mint${UNAME_RELEASE}
-+ echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
- atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
-- exit ;;
-+ exit ;;
- *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-- echo m68k-atari-mint${UNAME_RELEASE}
-+ echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
- milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-- echo m68k-milan-mint${UNAME_RELEASE}
-- exit ;;
-+ echo m68k-milan-mint${UNAME_RELEASE}
-+ exit ;;
- hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-- echo m68k-hades-mint${UNAME_RELEASE}
-- exit ;;
-+ echo m68k-hades-mint${UNAME_RELEASE}
-+ exit ;;
- *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-- echo m68k-unknown-mint${UNAME_RELEASE}
-- exit ;;
-+ echo m68k-unknown-mint${UNAME_RELEASE}
-+ exit ;;
- m68k:machten:*:*)
- echo m68k-apple-machten${UNAME_RELEASE}
- exit ;;
-@@ -461,8 +486,8 @@ EOF
- echo m88k-motorola-sysv3
- exit ;;
- AViiON:dgux:*:*)
-- # DG/UX returns AViiON for all architectures
-- UNAME_PROCESSOR=`/usr/bin/uname -p`
-+ # DG/UX returns AViiON for all architectures
-+ UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
- then
- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
-@@ -475,7 +500,7 @@ EOF
- else
- echo i586-dg-dgux${UNAME_RELEASE}
- fi
-- exit ;;
-+ exit ;;
- M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit ;;
-@@ -532,7 +557,7 @@ EOF
- echo rs6000-ibm-aix3.2
- fi
- exit ;;
-- *:AIX:*:[45])
-+ *:AIX:*:[4567])
- IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
- if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
- IBM_ARCH=rs6000
-@@ -575,52 +600,52 @@ EOF
- 9000/[678][0-9][0-9])
- if [ -x /usr/bin/getconf ]; then
- sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
-- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
-- case "${sc_cpu_version}" in
-- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
-- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
-- 532) # CPU_PA_RISC2_0
-- case "${sc_kernel_bits}" in
-- 32) HP_ARCH="hppa2.0n" ;;
-- 64) HP_ARCH="hppa2.0w" ;;
-+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
-+ case "${sc_cpu_version}" in
-+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
-+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
-+ 532) # CPU_PA_RISC2_0
-+ case "${sc_kernel_bits}" in
-+ 32) HP_ARCH="hppa2.0n" ;;
-+ 64) HP_ARCH="hppa2.0w" ;;
- '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
-- esac ;;
-- esac
-+ esac ;;
-+ esac
- fi
- if [ "${HP_ARCH}" = "" ]; then
- eval $set_cc_for_build
-- sed 's/^ //' << EOF >$dummy.c
-+ sed 's/^ //' << EOF >$dummy.c
-
-- #define _HPUX_SOURCE
-- #include
-- #include
--
-- int main ()
-- {
-- #if defined(_SC_KERNEL_BITS)
-- long bits = sysconf(_SC_KERNEL_BITS);
-- #endif
-- long cpu = sysconf (_SC_CPU_VERSION);
--
-- switch (cpu)
-- {
-- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
-- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
-- case CPU_PA_RISC2_0:
-- #if defined(_SC_KERNEL_BITS)
-- switch (bits)
-- {
-- case 64: puts ("hppa2.0w"); break;
-- case 32: puts ("hppa2.0n"); break;
-- default: puts ("hppa2.0"); break;
-- } break;
-- #else /* !defined(_SC_KERNEL_BITS) */
-- puts ("hppa2.0"); break;
-- #endif
-- default: puts ("hppa1.0"); break;
-- }
-- exit (0);
-- }
-+ #define _HPUX_SOURCE
-+ #include
-+ #include
-+
-+ int main ()
-+ {
-+ #if defined(_SC_KERNEL_BITS)
-+ long bits = sysconf(_SC_KERNEL_BITS);
-+ #endif
-+ long cpu = sysconf (_SC_CPU_VERSION);
-+
-+ switch (cpu)
-+ {
-+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
-+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
-+ case CPU_PA_RISC2_0:
-+ #if defined(_SC_KERNEL_BITS)
-+ switch (bits)
-+ {
-+ case 64: puts ("hppa2.0w"); break;
-+ case 32: puts ("hppa2.0n"); break;
-+ default: puts ("hppa2.0"); break;
-+ } break;
-+ #else /* !defined(_SC_KERNEL_BITS) */
-+ puts ("hppa2.0"); break;
-+ #endif
-+ default: puts ("hppa1.0"); break;
-+ }
-+ exit (0);
-+ }
- EOF
- (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
- test -z "$HP_ARCH" && HP_ARCH=hppa
-@@ -640,7 +665,7 @@ EOF
- # => hppa64-hp-hpux11.23
-
- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
-- grep __LP64__ >/dev/null
-+ grep -q __LP64__
- then
- HP_ARCH="hppa2.0w"
- else
-@@ -711,22 +736,22 @@ EOF
- exit ;;
- C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- echo c1-convex-bsd
-- exit ;;
-+ exit ;;
- C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
-- exit ;;
-+ exit ;;
- C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
-- exit ;;
-+ exit ;;
- C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-convex-bsd
-- exit ;;
-+ exit ;;
- C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- echo c4-convex-bsd
-- exit ;;
-+ exit ;;
- CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
-@@ -750,14 +775,14 @@ EOF
- exit ;;
- F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
- FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-- exit ;;
-+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-+ exit ;;
- 5000:UNIX_System_V:4.*:*)
-- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
-- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
-+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
- i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
-@@ -769,40 +794,51 @@ EOF
- echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
- exit ;;
- *:FreeBSD:*:*)
-- case ${UNAME_MACHINE} in
-- pc98)
-- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
-+ UNAME_PROCESSOR=`/usr/bin/uname -p`
-+ case ${UNAME_PROCESSOR} in
- amd64)
- echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
- *)
-- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
-+ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
- esac
- exit ;;
- i*:CYGWIN*:*)
- echo ${UNAME_MACHINE}-pc-cygwin
- exit ;;
-+ *:MINGW64*:*)
-+ echo ${UNAME_MACHINE}-pc-mingw64
-+ exit ;;
- *:MINGW*:*)
- echo ${UNAME_MACHINE}-pc-mingw32
- exit ;;
-+ i*:MSYS*:*)
-+ echo ${UNAME_MACHINE}-pc-msys
-+ exit ;;
- i*:windows32*:*)
-- # uname -m includes "-pc" on this system.
-- echo ${UNAME_MACHINE}-mingw32
-+ # uname -m includes "-pc" on this system.
-+ echo ${UNAME_MACHINE}-mingw32
- exit ;;
- i*:PW*:*)
- echo ${UNAME_MACHINE}-pc-pw32
- exit ;;
-- *:Interix*:[3456]*)
-- case ${UNAME_MACHINE} in
-+ *:Interix*:*)
-+ case ${UNAME_MACHINE} in
- x86)
- echo i586-pc-interix${UNAME_RELEASE}
- exit ;;
-- EM64T | authenticamd)
-+ authenticamd | genuineintel | EM64T)
- echo x86_64-unknown-interix${UNAME_RELEASE}
- exit ;;
-+ IA64)
-+ echo ia64-unknown-interix${UNAME_RELEASE}
-+ exit ;;
- esac ;;
- [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
- echo i${UNAME_MACHINE}-pc-mks
- exit ;;
-+ 8664:Windows_NT:*)
-+ echo x86_64-pc-mks
-+ exit ;;
- i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
-@@ -832,20 +868,68 @@ EOF
- i*86:Minix:*:*)
- echo ${UNAME_MACHINE}-pc-minix
- exit ;;
-- arm*:Linux:*:*)
-+ aarch64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
-+ aarch64_be:Linux:*:*)
-+ UNAME_MACHINE=aarch64_be
-+ echo ${UNAME_MACHINE}-unknown-linux-gnu
-+ exit ;;
-+ alpha:Linux:*:*)
-+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-+ EV5) UNAME_MACHINE=alphaev5 ;;
-+ EV56) UNAME_MACHINE=alphaev56 ;;
-+ PCA56) UNAME_MACHINE=alphapca56 ;;
-+ PCA57) UNAME_MACHINE=alphapca56 ;;
-+ EV6) UNAME_MACHINE=alphaev6 ;;
-+ EV67) UNAME_MACHINE=alphaev67 ;;
-+ EV68*) UNAME_MACHINE=alphaev68 ;;
-+ esac
-+ objdump --private-headers /bin/sh | grep -q ld.so.1
-+ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-+ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-+ exit ;;
-+ arm*:Linux:*:*)
-+ eval $set_cc_for_build
-+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
-+ | grep -q __ARM_EABI__
-+ then
-+ echo ${UNAME_MACHINE}-unknown-linux-gnu
-+ else
-+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
-+ | grep -q __ARM_PCS_VFP
-+ then
-+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi
-+ else
-+ echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
-+ fi
-+ fi
-+ exit ;;
- avr32*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- cris:Linux:*:*)
-- echo cris-axis-linux-gnu
-+ echo ${UNAME_MACHINE}-axis-linux-gnu
- exit ;;
- crisv32:Linux:*:*)
-- echo crisv32-axis-linux-gnu
-+ echo ${UNAME_MACHINE}-axis-linux-gnu
- exit ;;
- frv:Linux:*:*)
-- echo frv-unknown-linux-gnu
-+ echo ${UNAME_MACHINE}-unknown-linux-gnu
-+ exit ;;
-+ hexagon:Linux:*:*)
-+ echo ${UNAME_MACHINE}-unknown-linux-gnu
-+ exit ;;
-+ i*86:Linux:*:*)
-+ LIBC=gnu
-+ eval $set_cc_for_build
-+ sed 's/^ //' << EOF >$dummy.c
-+ #ifdef __dietlibc__
-+ LIBC=dietlibc
-+ #endif
-+EOF
-+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
-+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
- exit ;;
- ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
-@@ -856,74 +940,33 @@ EOF
- m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
-- mips:Linux:*:*)
-+ mips:Linux:*:* | mips64:Linux:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #undef CPU
-- #undef mips
-- #undef mipsel
-+ #undef ${UNAME_MACHINE}
-+ #undef ${UNAME_MACHINE}el
- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-- CPU=mipsel
-+ CPU=${UNAME_MACHINE}el
- #else
- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-- CPU=mips
-+ CPU=${UNAME_MACHINE}
- #else
- CPU=
- #endif
- #endif
- EOF
-- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-- /^CPU/{
-- s: ::g
-- p
-- }'`"
-- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
-- ;;
-- mips64:Linux:*:*)
-- eval $set_cc_for_build
-- sed 's/^ //' << EOF >$dummy.c
-- #undef CPU
-- #undef mips64
-- #undef mips64el
-- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-- CPU=mips64el
-- #else
-- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-- CPU=mips64
-- #else
-- CPU=
-- #endif
-- #endif
--EOF
-- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-- /^CPU/{
-- s: ::g
-- p
-- }'`"
-+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
- ;;
- or32:Linux:*:*)
-- echo or32-unknown-linux-gnu
-- exit ;;
-- ppc:Linux:*:*)
-- echo powerpc-unknown-linux-gnu
-+ echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
-- ppc64:Linux:*:*)
-- echo powerpc64-unknown-linux-gnu
-+ padre:Linux:*:*)
-+ echo sparc-unknown-linux-gnu
- exit ;;
-- alpha:Linux:*:*)
-- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-- EV5) UNAME_MACHINE=alphaev5 ;;
-- EV56) UNAME_MACHINE=alphaev56 ;;
-- PCA56) UNAME_MACHINE=alphapca56 ;;
-- PCA57) UNAME_MACHINE=alphapca56 ;;
-- EV6) UNAME_MACHINE=alphaev6 ;;
-- EV67) UNAME_MACHINE=alphaev67 ;;
-- EV68*) UNAME_MACHINE=alphaev68 ;;
-- esac
-- objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
-- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-+ parisc64:Linux:*:* | hppa64:Linux:*:*)
-+ echo hppa64-unknown-linux-gnu
- exit ;;
- parisc:Linux:*:* | hppa:Linux:*:*)
- # Look for CPU level
-@@ -933,14 +976,17 @@ EOF
- *) echo hppa-unknown-linux-gnu ;;
- esac
- exit ;;
-- parisc64:Linux:*:* | hppa64:Linux:*:*)
-- echo hppa64-unknown-linux-gnu
-+ ppc64:Linux:*:*)
-+ echo powerpc64-unknown-linux-gnu
-+ exit ;;
-+ ppc:Linux:*:*)
-+ echo powerpc-unknown-linux-gnu
- exit ;;
- s390:Linux:*:* | s390x:Linux:*:*)
- echo ${UNAME_MACHINE}-ibm-linux
- exit ;;
- sh64*:Linux:*:*)
-- echo ${UNAME_MACHINE}-unknown-linux-gnu
-+ echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
-@@ -948,78 +994,18 @@ EOF
- sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
-+ tile*:Linux:*:*)
-+ echo ${UNAME_MACHINE}-unknown-linux-gnu
-+ exit ;;
- vax:Linux:*:*)
- echo ${UNAME_MACHINE}-dec-linux-gnu
- exit ;;
- x86_64:Linux:*:*)
-- echo x86_64-unknown-linux-gnu
-+ echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
-- xtensa:Linux:*:*)
-- echo xtensa-unknown-linux-gnu
-+ xtensa*:Linux:*:*)
-+ echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
-- i*86:Linux:*:*)
-- # The BFD linker knows what the default object file format is, so
-- # first see if it will tell us. cd to the root directory to prevent
-- # problems with other programs or directories called `ld' in the path.
-- # Set LC_ALL=C to ensure ld outputs messages in English.
-- ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
-- | sed -ne '/supported targets:/!d
-- s/[ ][ ]*/ /g
-- s/.*supported targets: *//
-- s/ .*//
-- p'`
-- case "$ld_supported_targets" in
-- elf32-i386)
-- TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
-- ;;
-- a.out-i386-linux)
-- echo "${UNAME_MACHINE}-pc-linux-gnuaout"
-- exit ;;
-- coff-i386)
-- echo "${UNAME_MACHINE}-pc-linux-gnucoff"
-- exit ;;
-- "")
-- # Either a pre-BFD a.out linker (linux-gnuoldld) or
-- # one that does not give us useful --help.
-- echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
-- exit ;;
-- esac
-- # Determine whether the default compiler is a.out or elf
-- eval $set_cc_for_build
-- sed 's/^ //' << EOF >$dummy.c
-- #include
-- #ifdef __ELF__
-- # ifdef __GLIBC__
-- # if __GLIBC__ >= 2
-- LIBC=gnu
-- # else
-- LIBC=gnulibc1
-- # endif
-- # else
-- LIBC=gnulibc1
-- # endif
-- #else
-- #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-- LIBC=gnu
-- #else
-- LIBC=gnuaout
-- #endif
-- #endif
-- #ifdef __dietlibc__
-- LIBC=dietlibc
-- #endif
--EOF
-- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-- /^LIBC/{
-- s: ::g
-- p
-- }'`"
-- test x"${LIBC}" != x && {
-- echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
-- exit
-- }
-- test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
-- ;;
- i*86:DYNIX/ptx:4*:*)
- # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
- # earlier versions are messed up and put the nodename in both
-@@ -1027,11 +1013,11 @@ EOF
- echo i386-sequent-sysv4
- exit ;;
- i*86:UNIX_SV:4.2MP:2.*)
-- # Unixware is an offshoot of SVR4, but it has its own version
-- # number series starting with 2...
-- # I am not positive that other SVR4 systems won't match this,
-+ # Unixware is an offshoot of SVR4, but it has its own version
-+ # number series starting with 2...
-+ # I am not positive that other SVR4 systems won't match this,
- # I just have to hope. -- rms.
-- # Use sysv4.2uw... so that sysv4* matches it.
-+ # Use sysv4.2uw... so that sysv4* matches it.
- echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
- exit ;;
- i*86:OS/2:*:*)
-@@ -1048,7 +1034,7 @@ EOF
- i*86:syllable:*:*)
- echo ${UNAME_MACHINE}-pc-syllable
- exit ;;
-- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
-+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
- echo i386-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- i*86:*DOS:*:*)
-@@ -1063,7 +1049,7 @@ EOF
- fi
- exit ;;
- i*86:*:5:[678]*)
-- # UnixWare 7.x, OpenUNIX and OpenServer 6.
-+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
- case `/bin/uname -X | grep "^Machine"` in
- *486*) UNAME_MACHINE=i486 ;;
- *Pentium) UNAME_MACHINE=i586 ;;
-@@ -1091,10 +1077,13 @@ EOF
- exit ;;
- pc:*:*:*)
- # Left here for compatibility:
-- # uname -m prints for DJGPP always 'pc', but it prints nothing about
-- # the processor, so we play safe by assuming i386.
-- echo i386-pc-msdosdjgpp
-- exit ;;
-+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
-+ # the processor, so we play safe by assuming i586.
-+ # Note: whatever this is, it MUST be the same as what config.sub
-+ # prints for the "djgpp" host, or else GDB configury will decide that
-+ # this is a cross-build.
-+ echo i586-pc-msdosdjgpp
-+ exit ;;
- Intel:Mach:3*:*)
- echo i386-pc-mach3
- exit ;;
-@@ -1129,8 +1118,18 @@ EOF
- /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
- 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
-- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-- && { echo i486-ncr-sysv4; exit; } ;;
-+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-+ && { echo i486-ncr-sysv4; exit; } ;;
-+ NCR*:*:4.2:* | MPRAS*:*:4.2:*)
-+ OS_REL='.3'
-+ test -r /etc/.relid \
-+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
-+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
-+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
-+ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
-+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
- m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
- echo m68k-unknown-lynxos${UNAME_RELEASE}
- exit ;;
-@@ -1143,7 +1142,7 @@ EOF
- rs6000:LynxOS:2.*:*)
- echo rs6000-unknown-lynxos${UNAME_RELEASE}
- exit ;;
-- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
-+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
- echo powerpc-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- SM[BE]S:UNIX_SV:*:*)
-@@ -1163,10 +1162,10 @@ EOF
- echo ns32k-sni-sysv
- fi
- exit ;;
-- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-- # says
-- echo i586-unisys-sysv4
-- exit ;;
-+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-+ # says
-+ echo i586-unisys-sysv4
-+ exit ;;
- *:UNIX_System_V:4*:FTX*)
- # From Gerald Hewes .
- # How about differentiating between stratus architectures? -djm
-@@ -1192,11 +1191,11 @@ EOF
- exit ;;
- R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
- if [ -d /usr/nec ]; then
-- echo mips-nec-sysv${UNAME_RELEASE}
-+ echo mips-nec-sysv${UNAME_RELEASE}
- else
-- echo mips-unknown-sysv${UNAME_RELEASE}
-+ echo mips-unknown-sysv${UNAME_RELEASE}
- fi
-- exit ;;
-+ exit ;;
- BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
- echo powerpc-be-beos
- exit ;;
-@@ -1206,6 +1205,12 @@ EOF
- BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
- echo i586-pc-beos
- exit ;;
-+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
-+ echo i586-pc-haiku
-+ exit ;;
-+ x86_64:Haiku:*:*)
-+ echo x86_64-unknown-haiku
-+ exit ;;
- SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux${UNAME_RELEASE}
- exit ;;
-@@ -1233,6 +1238,16 @@ EOF
- *:Darwin:*:*)
- UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
- case $UNAME_PROCESSOR in
-+ i386)
-+ eval $set_cc_for_build
-+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-+ grep IS_64BIT_ARCH >/dev/null
-+ then
-+ UNAME_PROCESSOR="x86_64"
-+ fi
-+ fi ;;
- unknown) UNAME_PROCESSOR=powerpc ;;
- esac
- echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
-@@ -1248,7 +1263,10 @@ EOF
- *:QNX:*:4*)
- echo i386-pc-qnx
- exit ;;
-- NSE-?:NONSTOP_KERNEL:*:*)
-+ NEO-?:NONSTOP_KERNEL:*:*)
-+ echo neo-tandem-nsk${UNAME_RELEASE}
-+ exit ;;
-+ NSE-*:NONSTOP_KERNEL:*:*)
- echo nse-tandem-nsk${UNAME_RELEASE}
- exit ;;
- NSR-?:NONSTOP_KERNEL:*:*)
-@@ -1293,13 +1311,13 @@ EOF
- echo pdp10-unknown-its
- exit ;;
- SEI:*:*:SEIUX)
-- echo mips-sei-seiux${UNAME_RELEASE}
-+ echo mips-sei-seiux${UNAME_RELEASE}
- exit ;;
- *:DragonFly:*:*)
- echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
- exit ;;
- *:*VMS:*:*)
-- UNAME_MACHINE=`(uname -p) 2>/dev/null`
-+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
- case "${UNAME_MACHINE}" in
- A*) echo alpha-dec-vms ; exit ;;
- I*) echo ia64-dec-vms ; exit ;;
-@@ -1314,11 +1332,14 @@ EOF
- i*86:rdos:*:*)
- echo ${UNAME_MACHINE}-pc-rdos
- exit ;;
-+ i*86:AROS:*:*)
-+ echo ${UNAME_MACHINE}-pc-aros
-+ exit ;;
-+ x86_64:VMkernel:*:*)
-+ echo ${UNAME_MACHINE}-unknown-esx
-+ exit ;;
- esac
-
--#echo '(No uname command or uname output not recognized.)' 1>&2
--#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
--
- eval $set_cc_for_build
- cat >$dummy.c <
- printf ("m68k-sony-newsos%s\n",
- #ifdef NEWSOS4
-- "4"
-+ "4"
- #else
-- ""
-+ ""
- #endif
-- ); exit (0);
-+ ); exit (0);
- #endif
- #endif
-
-@@ -1474,9 +1495,9 @@ This script, last modified $timestamp, h
- the operating system you are using. It is advised that you
- download the most up to date version of the config scripts from
-
-- http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
-+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
- and
-- http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
-+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
-
- If the version you run ($0) is already up to date, please
- send the following data and any information you think might be
-diff -up a2ps-4.14/auxdir/config.sub.aarch64 a2ps-4.14/auxdir/config.sub
---- a2ps-4.14/auxdir/config.sub.aarch64 2007-12-29 03:28:06.000000000 +0000
-+++ a2ps-4.14/auxdir/config.sub 2013-04-29 13:13:51.037686671 +0100
-@@ -1,10 +1,10 @@
- #! /bin/sh
- # Configuration validation subroutine script.
- # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
--# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
--# Inc.
-+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-+# 2011, 2012 Free Software Foundation, Inc.
-
--timestamp='2007-06-28'
-+timestamp='2012-10-10'
-
- # This file is (in principle) common to ALL GNU software.
- # The presence of a machine in this file suggests that SOME GNU software
-@@ -21,9 +21,7 @@ timestamp='2007-06-28'
- # GNU General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
--# along with this program; if not, write to the Free Software
--# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
--# 02110-1301, USA.
-+# along with this program; if not, see .
- #
- # As a special exception to the GNU General Public License, if you
- # distribute this file as part of a program that contains a
-@@ -32,13 +30,16 @@ timestamp='2007-06-28'
-
-
- # Please send patches to . Submit a context
--# diff and a properly formatted ChangeLog entry.
-+# diff and a properly formatted GNU ChangeLog entry.
- #
- # Configuration subroutine to validate and canonicalize a configuration type.
- # Supply the specified configuration type as an argument.
- # If it is invalid, we print an error message on stderr and exit with code 1.
- # Otherwise, we print the canonical config type on stdout and succeed.
-
-+# You can get the latest version of this script from:
-+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
-+
- # This file is supposed to be the same for all GNU packages
- # and recognize all the CPU types, system types and aliases
- # that are meaningful with *any* GNU software.
-@@ -72,7 +73,8 @@ Report bugs and patches to substitutes, font_name);
-- if (!res)
-+ if (res)
-+ res = xstrdup (res);
-+ else
- /* No. Check if this font is supported */
- if (font_exists (job, font_name))
- /* Avoid returning sth alloca'd */
diff --git a/a2ps-define-texinfo-enc.patch b/a2ps-define-texinfo-enc.patch
deleted file mode 100644
index abfd32b..0000000
--- a/a2ps-define-texinfo-enc.patch
+++ /dev/null
@@ -1,10 +0,0 @@
-diff --git a/doc/a2ps.texi b/doc/a2ps.texi
-index 1b64234..59e0834 100644
---- a/doc/a2ps.texi
-+++ b/doc/a2ps.texi
-@@ -1,4 +1,5 @@
- \input texinfo @c -*- texinfo -*-
-+@documentencoding utf-8
- @c %**start of header
- @setfilename a2ps.info
- @settitle General Purpose PostScript Generating Utility
diff --git a/a2ps-external-libtool.patch b/a2ps-external-libtool.patch
deleted file mode 100644
index 5780160..0000000
--- a/a2ps-external-libtool.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up a2ps-4.14/configure.external-libtool a2ps-4.14/configure
---- a2ps-4.14/configure.external-libtool 2008-09-24 15:28:13.000000000 +0100
-+++ a2ps-4.14/configure 2008-09-24 15:28:13.000000000 +0100
-@@ -21864,7 +21864,8 @@ fi
- LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
-
- # Always use our own libtool.
--LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-+#LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-+LIBTOOL='/usr/bin/libtool'
-
- # Prevent multiple expansion
-
diff --git a/a2ps-format-security.patch b/a2ps-format-security.patch
deleted file mode 100644
index 3fbd034..0000000
--- a/a2ps-format-security.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-diff -up a2ps-4.14/lib/output.c.format-security a2ps-4.14/lib/output.c
---- a2ps-4.14/lib/output.c.format-security 2007-12-29 01:58:21.000000000 +0000
-+++ a2ps-4.14/lib/output.c 2014-04-03 18:24:35.259901356 +0100
-@@ -525,7 +525,7 @@ output_file (struct output * out, a2ps_j
- expand_user_string (job, FIRST_FILE (job),
- (const uchar *) "Expand: requirement",
- (const uchar *) token));
-- output (dest, expansion);
-+ output (dest, "%s", expansion);
- continue;
- }
-
-diff -up a2ps-4.14/lib/parseppd.y.format-security a2ps-4.14/lib/parseppd.y
---- a2ps-4.14/lib/parseppd.y.format-security 2007-12-29 01:58:21.000000000 +0000
-+++ a2ps-4.14/lib/parseppd.y 2014-04-03 18:24:35.259901356 +0100
-@@ -154,7 +154,7 @@ font_clause :
- void
- yyerror (const char *msg)
- {
-- error_at_line (1, 0, ppdfilename, ppdlineno, msg);
-+ error_at_line (1, 0, ppdfilename, ppdlineno, "%s", msg);
- }
-
- /*
-diff -up a2ps-4.14/lib/psgen.c.format-security a2ps-4.14/lib/psgen.c
---- a2ps-4.14/lib/psgen.c.format-security 2014-04-03 18:24:35.241901276 +0100
-+++ a2ps-4.14/lib/psgen.c 2014-04-03 18:24:35.259901356 +0100
-@@ -232,7 +232,7 @@ output_marker (a2ps_job * job, const cha
- default:
- *buf = '\0';
- ps_escape_char (job, cp[i], buf);
-- output (jdiv, (char *) buf);
-+ output (jdiv, "%s", (char *) buf);
- break;
- }
- }
-diff -up a2ps-4.14/src/parsessh.y.format-security a2ps-4.14/src/parsessh.y
---- a2ps-4.14/src/parsessh.y.format-security 2014-04-03 18:25:56.011259069 +0100
-+++ a2ps-4.14/src/parsessh.y 2014-04-03 18:26:04.725297585 +0100
-@@ -740,7 +740,7 @@ exception_def_opt:
- void
- yyerror (const char *msg)
- {
-- error_at_line (1, 0, sshfilename, sshlineno, msg);
-+ error_at_line (1, 0, sshfilename, sshlineno, "%s", msg);
- }
-
- /*
diff --git a/a2ps-forward-null.patch b/a2ps-forward-null.patch
index 792f39d..6aa308e 100644
--- a/a2ps-forward-null.patch
+++ b/a2ps-forward-null.patch
@@ -1,7 +1,7 @@
-diff -up a2ps-4.14/lib/pathwalk.c.forward-null a2ps-4.14/lib/pathwalk.c
---- a2ps-4.14/lib/pathwalk.c.forward-null 2011-08-10 16:06:53.185942197 +0100
-+++ a2ps-4.14/lib/pathwalk.c 2011-08-10 16:08:36.831030924 +0100
-@@ -348,12 +348,12 @@ xpw_find_included_file (char * const *pa
+diff -up a2ps-4.15.5/liba2ps/pathwalk.c.forward-null a2ps-4.15.5/liba2ps/pathwalk.c
+--- a2ps-4.15.5/liba2ps/pathwalk.c.forward-null 2023-07-25 18:17:35.906486748 +0200
++++ a2ps-4.15.5/liba2ps/pathwalk.c 2023-07-25 18:18:16.767767587 +0200
+@@ -335,12 +335,12 @@ xpw_find_included_file (char * const *pa
/* Relative. Give its root. */
dir = dir_name (including_file);
@@ -14,6 +14,6 @@ diff -up a2ps-4.14/lib/pathwalk.c.forward-null a2ps-4.14/lib/pathwalk.c
- name, suffix ? suffix : "");
+ sprintf (res, "%s%c%s%s", dir ? dir : "", DIRECTORY_SEPARATOR,
+ dir ? name : name + 1, suffix ? suffix : "");
- XFREE (dir);
if (stat (res, &statbuf) == 0)
return xstrdup (res);
+
diff --git a/a2ps-lm.patch b/a2ps-lm.patch
deleted file mode 100644
index b4d5908..0000000
--- a/a2ps-lm.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -up a2ps-4.14/lib/Makefile.am.lm a2ps-4.14/lib/Makefile.am
---- a2ps-4.14/lib/Makefile.am.lm 2007-12-29 01:38:03.000000000 +0000
-+++ a2ps-4.14/lib/Makefile.am 2012-04-04 09:25:00.709845857 +0100
-@@ -32,7 +32,7 @@ YFLAGS = -dtv
- GPERFFLAGS = -t -D -L ANSI-C
- BUILT_SOURCES = parseppd.c parseppd.h liba2ps.h confg.c
-
--liba2ps_la_LIBADD = @LTALLOCA@ @LTLIBOBJS@
-+liba2ps_la_LIBADD = @LTALLOCA@ @LTLIBOBJS@ -lm
- liba2ps_la_LDFLAGS = -version-info @LIBVERSION@
-
- liba2psheaders = encoding.h media.h jobs.h output.h \
-diff -up a2ps-4.14/lib/Makefile.in.lm a2ps-4.14/lib/Makefile.in
---- a2ps-4.14/lib/Makefile.in.lm 2012-04-04 09:25:25.091842586 +0100
-+++ a2ps-4.14/lib/Makefile.in 2012-04-04 09:25:32.889841559 +0100
-@@ -322,7 +322,7 @@ INCLUDES = -I$(top_builddir) -I$(top_bui
- # Use a struct, handle duplicates, produce ANSI-C
- GPERFFLAGS = -t -D -L ANSI-C
- BUILT_SOURCES = parseppd.c parseppd.h liba2ps.h confg.c
--liba2ps_la_LIBADD = @LTALLOCA@ @LTLIBOBJS@
-+liba2ps_la_LIBADD = @LTALLOCA@ @LTLIBOBJS@ -lm
- liba2ps_la_LDFLAGS = -version-info @LIBVERSION@
- liba2psheaders = encoding.h media.h jobs.h output.h \
- routines.h psgen.h prolog.h faces.h confg.h useropt.h \
-diff -up a2ps-4.14/Makefile.in.lm a2ps-4.14/Makefile.in
diff --git a/a2ps-mb.patch b/a2ps-mb.patch
index daa4ea3..b331f52 100644
--- a/a2ps-mb.patch
+++ b/a2ps-mb.patch
@@ -1,24 +1,14 @@
-diff -up a2ps-4.14/lib/psgen.c.mb a2ps-4.14/lib/psgen.c
---- a2ps-4.14/lib/psgen.c.mb 2008-09-24 15:29:30.000000000 +0100
-+++ a2ps-4.14/lib/psgen.c 2008-09-24 15:29:30.000000000 +0100
-@@ -96,7 +96,8 @@ ps_escape_char (a2ps_job * job, uchar c,
- /* Printable, but not 7bit clean caracters */
- if (encoding_char_exists (job->encoding, job->status->face, c)
- && ((0177 < c) || (c < 040))) {
-- sprintf ((char *)res, "%s\\%o", res, c);
-+ char *p = res + strlen (res);
-+ sprintf (p, "\\%o", c);
- return 1;
- }
-
-@@ -893,8 +894,8 @@ ps_print_char (a2ps_job * job, int c, en
- if (c > 127 && encoding_get_composite_flag (job->encoding) &&
- job->status->face != Symbol) {
- if (mb_flag) {
-- nchars = ps_escape_char (job, mb_flag, buf) +
-- ps_escape_char (job, c, buf);
-+ nchars = ps_escape_char (job, mb_flag, buf);
-+ nchars += ps_escape_char (job, c, buf);
- job->status->wx += char_composite_WX(job, c);
- job->status->column += nchars;
- if (line_full) {
+diff -up a2ps-4.15.5/liba2ps/psgen.c.mb a2ps-4.15.5/liba2ps/psgen.c
+--- a2ps-4.15.5/liba2ps/psgen.c.mb 2023-07-25 18:01:44.062963119 +0200
++++ a2ps-4.15.5/liba2ps/psgen.c 2023-07-25 18:03:37.883726559 +0200
+@@ -854,8 +854,8 @@ ps_print_char (a2ps_job * job, char c, e
+ if ((unsigned char) c > 127 && encoding_get_composite_flag (job->encoding) &&
+ job->status->face != Symbol) {
+ if (mb_flag) {
+- nchars = ps_escape_char (job, mb_flag, buf) +
+- ps_escape_char (job, (unsigned char) c, buf);
++ nchars = ps_escape_char (job, mb_flag, buf);
++ nchars += ps_escape_char (job, (unsigned char)c, buf);
+ job->status->wx += char_composite_WX(job);
+ job->status->column += nchars;
+ if (line_full) {
diff --git a/a2ps-overrun-dynamic.patch b/a2ps-overrun-dynamic.patch
index c50de44..d58bed3 100644
--- a/a2ps-overrun-dynamic.patch
+++ b/a2ps-overrun-dynamic.patch
@@ -1,7 +1,7 @@
-diff -up a2ps-4.14/lib/darray.c.overrun-dynamic a2ps-4.14/lib/darray.c
---- a2ps-4.14/lib/darray.c.overrun-dynamic 2011-08-10 16:16:49.607014904 +0100
-+++ a2ps-4.14/lib/darray.c 2011-08-10 16:17:10.965625881 +0100
-@@ -430,7 +430,7 @@ da_qsort (struct darray * arr)
+diff -up a2ps-4.15.5/liba2ps/darray.c.overrun-dynamic a2ps-4.15.5/liba2ps/darray.c
+--- a2ps-4.15.5/liba2ps/darray.c.overrun-dynamic 2022-06-11 22:16:14.000000000 +0200
++++ a2ps-4.15.5/liba2ps/darray.c 2023-07-25 18:23:24.509882456 +0200
+@@ -383,7 +383,7 @@ da_qsort (struct darray * arr)
jstack += 2;
/* Push pointers to larger subarry on stack.
* Process smaller subarrays now */
@@ -10,7 +10,7 @@ diff -up a2ps-4.14/lib/darray.c.overrun-dynamic a2ps-4.14/lib/darray.c
error (da_exit_error, 0, "da_qsort: QSORT_STACK too small (%d)",
QSORT_STACK);
if (ir - i + 1 >= j - l) {
-@@ -509,7 +509,7 @@ da_qsort_with_arg (struct darray * arr,
+@@ -461,7 +461,7 @@ da_qsort_with_arg (struct darray * arr,
jstack += 2;
/* Push pointers to larger subarry on stack.
* Process smaller subarrays now */
diff --git a/a2ps-overrun-static.patch b/a2ps-overrun-static.patch
index f8e592b..e3585fe 100644
--- a/a2ps-overrun-static.patch
+++ b/a2ps-overrun-static.patch
@@ -1,6 +1,6 @@
-diff -up a2ps-4.14/lib/metaseq.c.overrun-static a2ps-4.14/lib/metaseq.c
---- a2ps-4.14/lib/metaseq.c.overrun-static 2011-08-10 16:18:44.924915695 +0100
-+++ a2ps-4.14/lib/metaseq.c 2011-08-10 16:19:04.739555258 +0100
+diff -up a2ps-4.14/liba2ps/metaseq.c.overrun-static a2ps-4.14/liba2ps/metaseq.c
+--- a2ps-4.14/liba2ps/metaseq.c.overrun-static 2011-08-10 16:18:44.924915695 +0100
++++ a2ps-4.14/liba2ps/metaseq.c 2011-08-10 16:19:04.739555258 +0100
@@ -334,7 +334,7 @@ grow_user_string_obstack (struct obstack
{
/* `%D{}' format run date with strftime() */
diff --git a/a2ps-resource-leak.patch b/a2ps-resource-leak.patch
index d84d0cd..ab1830c 100644
--- a/a2ps-resource-leak.patch
+++ b/a2ps-resource-leak.patch
@@ -1,49 +1,45 @@
-diff -up a2ps-4.14/lib/encoding.c.resource-leak a2ps-4.14/lib/encoding.c
---- a2ps-4.14/lib/encoding.c.resource-leak 2011-08-10 16:02:26.244905923 +0100
-+++ a2ps-4.14/lib/encoding.c 2011-08-10 16:41:39.578353192 +0100
-@@ -554,7 +554,7 @@ encoding_resolve_font_substitute (struct
+diff -up a2ps-4.15.5/liba2ps/encoding.c.resource-leak a2ps-4.15.5/liba2ps/encoding.c
+--- a2ps-4.15.5/liba2ps/encoding.c.resource-leak 2023-07-25 18:30:14.422699484 +0200
++++ a2ps-4.15.5/liba2ps/encoding.c 2023-07-25 18:34:22.033401969 +0200
+@@ -479,7 +479,7 @@ encoding_resolve_font_substitute (struct
if (!res)
{
if (encoding->default_font)
-- res = encoding->default_font;
-+ res = xstrdup (encoding->default_font);
+- res = encoding->default_font;
++ res = xstrdup (encoding->default_font);
else
- error (1, 0, "Cannot find font %s, nor any substitute",
- font_name);
-@@ -976,6 +976,7 @@ dump_encoding_setup (FILE * stream,
- font_names [i]);
+ error (1, 0, "cannot find font %s, nor any substitute",
+ last_font_name);
+@@ -895,6 +895,7 @@ dump_encoding_setup (FILE * stream,
+ font_names [i]);
if (!font_is_to_reencode (job, real_font_name))
- da_remove_at (encoding->font_names_used, i, (da_map_func_t) free);
+ da_remove_at (encoding->font_names_used, i);
+ free (real_font_name);
}
/* The number of fonts that, finally, have to be encoded
-@@ -992,10 +993,16 @@ dump_encoding_setup (FILE * stream,
- fprintf (stream, "/%sdict %d dict begin\n", encoding->key,
- (encoding->composite_flag == true)? nb+nb+ns:nb+ns);
+@@ -911,10 +912,15 @@ dump_encoding_setup (FILE * stream,
+ fprintf (stream, "/%sdict %zu dict begin\n", encoding->key,
+ (encoding->composite_flag == true)? nb+nb+ns:nb+ns);
for (i = 0 ; i < nb ; i++)
-- fprintf (stream, " /f%s %sEncoding /%s reencode_font\n",
-- font_names [i],
-- encoding->name,
-- encoding_resolve_font_substitute (job, encoding, font_names [i]));
-+ {
-+ char *real_font = encoding_resolve_font_substitute (job, encoding,
-+ font_names [i]);
-+ fprintf (stream, " /f%s %sEncoding /%s reencode_font\n",
-+ font_names [i],
-+ encoding->name,
-+ real_font);
-+ free (real_font);
-+ }
-+
++ {
++ char *real_font = encoding_resolve_font_substitute (job, encoding,
++ font_names [i]);
+ fprintf (stream, " /f%s %sEncoding /%s reencode_font\n",
+ font_names [i],
+ encoding->name,
+- encoding_resolve_font_substitute (job, encoding, font_names [i]));
++ real_font);
++ free (real_font);
++ }
/* Slant font setting */
for (i = 0 ; encoding->slantfont[i].name ; i++ )
-@@ -1166,6 +1173,7 @@ encoding_build_faces_wx (a2ps_job * job,
- encoding->vector,
- encoding->faces_wx [face]);
+@@ -1075,6 +1081,7 @@ encoding_build_faces_wx (a2ps_job * job,
+ encoding->vector,
+ encoding->faces_wx [face]);
+ free (true_font_name);
if (encoding->composite_flag)
- {
- encoding->composite_raito[i] =
+ {
+ encoding->composite_ratio[i] =
diff --git a/a2ps-texi-comments.patch b/a2ps-texi-comments.patch
deleted file mode 100644
index 8ccf6f5..0000000
--- a/a2ps-texi-comments.patch
+++ /dev/null
@@ -1,17 +0,0 @@
---- a2ps-4.14/doc/a2ps.texi.texifail 2013-03-26 12:50:06.624762058 +0000
-+++ a2ps-4.14/doc/a2ps.texi 2013-03-26 14:44:10.204929702 +0000
-@@ -22,12 +22,12 @@
- @c `a2ps'. Avoid those quotes.
- @iftex
- @macro pack
--@code{@value{PACKAGE}}@c
-+@code{@value{PACKAGE}}
- @end macro
- @end iftex
- @ifnottex
- @macro pack
--@value{PACKAGE}@c
-+@value{PACKAGE}
- @end macro
- @end ifnottex
-
diff --git a/a2ps-wdiff.patch b/a2ps-wdiff.patch
index 7315336..dab05a6 100644
--- a/a2ps-wdiff.patch
+++ b/a2ps-wdiff.patch
@@ -1,23 +1,3 @@
---- a2ps-4.13/contrib/pdiff.m4.wdiff 2005-03-23 15:43:47.000000000 +0000
-+++ a2ps-4.13/contrib/pdiff.m4 2005-03-23 15:46:13.000000000 +0000
-@@ -15,7 +15,7 @@
- a2ps=${A2PS:-a2ps}
- a2ps_options=
- debug=
--diff_on=words
-+diff_on=lines
- diff_prog=${DIFF:-diff}
- diff_options='-u'
- file=
-@@ -40,8 +40,6 @@
- -h, --help display this help and exit
- -v, --version display version information and exit
- -q, --quiet don't print informational messages
-- -l, --lines search for line differences (\`diff')
-- -w, --words search for word differences (\`wdiff')
- -o, --output=FILE save the output in FILE
-
- Options for a2ps are given after \`--', for instance
--- a2ps-4.13/contrib/pdiff.in.wdiff 2005-03-23 15:43:50.000000000 +0000
+++ a2ps-4.13/contrib/pdiff.in 2005-03-23 15:46:16.000000000 +0000
@@ -29,7 +29,7 @@
diff --git a/a2ps.spec b/a2ps.spec
index 6fa3385..727bba9 100644
--- a/a2ps.spec
+++ b/a2ps.spec
@@ -1,95 +1,147 @@
Summary: Converts text and other types of files to PostScript
Name: a2ps
-Version: 4.14
-Release: 53%{?dist}
-License: GPLv3+
+Version: 4.15.5
+Release: 1%{?dist}
+# several files in afm/, lib/, liba2ps/, src/ - GPL3+
+# gnulib files in lib/ - LGPL-2.1+
+# several files in lib/ - LGPL-3+
+# Bison related files in src/ and liba2ps/ - GPL-3.0-or-later WITH Bison-exception-2.2
+# another gnulib files in /lib - LGPL2+
+License: GPL-3.0-or-later AND LGPL-2.1-or-later AND LGPL-3.0-or-later AND GPL-3.0-or-later WITH Bison-exception-2.2 AND LGPL-2.0-or-later
Url: http://www.gnu.org/software/a2ps/
Source0: http://ftp.gnu.org/gnu/a2ps/%{name}-%{version}.tar.gz
Source1: ftp://ftp.enst.fr/pub/unix/a2ps/i18n-fonts-0.1.tar.gz
+# the latest upstream version does not have COPYING file...
+# reported as https://savannah.gnu.org/bugs/index.php?64470
+# copied the GPL3+ COPYING file from the previous versions
+Source2: COPYING
-Patch0: a2ps-4.13-conf.patch
-Patch1: a2ps-4.13-etc.patch
-Patch2: a2ps-lm.patch
-Patch3: a2ps-4.13-security.patch
-Patch4: a2ps-4.13-glibcpaper.patch
-Patch5: a2ps-texi-comments.patch
-Patch6: a2ps-aarch64.patch
-Patch7: a2ps-sort.patch
-Patch8: a2ps-iso5-minus.patch
-Patch9: a2ps-perl.patch
-# EUC-JP support
-Patch10: a2ps-4.13-eucjp.patch
-Patch11: a2ps-4.13-autoenc.patch
-Patch12: a2ps-4.13b-attr.patch
-Patch13: a2ps-4.13b-numeric.patch
-Patch14: a2ps-4.13b-encoding.patch
-Patch15: a2ps-4.13b-tilde.patch
-Patch16: a2ps-bad-free.patch
-Patch17: a2ps-4.13-euckr.patch
-Patch18: a2ps-4.13-gnusource.patch
-Patch19: a2ps-format-security.patch
-Patch20: a2ps-4.13-hebrew.patch
-Patch26: a2ps-make-fonts-map.patch
-Patch28: a2ps-wdiff.patch
-Patch29: a2ps-U.patch
-Patch31: a2ps-mb.patch
-Patch34: a2ps-external-libtool.patch
-Patch35: a2ps-4.14-texinfo-nodes.patch
-Patch36: a2ps-forward-null.patch
-Patch37: a2ps-overrun-dynamic.patch
-Patch38: a2ps-overrun-static.patch
-Patch39: a2ps-resource-leak.patch
-Patch40: a2ps-CVE-2014-0466.patch
-Patch41: a2ps-define-texinfo-enc.patch
+Patch01: a2ps-4.13-conf.patch
+Patch02: a2ps-4.13-etc.patch
+Patch03: a2ps-4.13-glibcpaper.patch
+Patch04: a2ps-sort.patch
+Patch05: a2ps-iso5-minus.patch
+Patch06: a2ps-perl.patch
+Patch07: a2ps-4.13b-numeric.patch
+Patch08: a2ps-4.13b-encoding.patch
+Patch09: a2ps-4.13b-tilde.patch
+Patch10: a2ps-4.13-euckr.patch
+Patch11: a2ps-4.13-hebrew.patch
+Patch12: a2ps-make-fonts-map.patch
+Patch13: a2ps-wdiff.patch
+Patch14: a2ps-U.patch
+Patch15: a2ps-mb.patch
+Patch16: a2ps-4.14-texinfo-nodes.patch
+Patch17: a2ps-forward-null.patch
+Patch18: a2ps-overrun-dynamic.patch
+Patch19: a2ps-overrun-static.patch
+Patch20: a2ps-resource-leak.patch
+# most conversion rules are guarded by configure macros, so they
+# are not enabled if the specific binary is not present in buildroot
+# - thus to get full set of available rules there are lot of BuildRequires,
+# but most binaries are only as Recommends during runtime to provide a way
+# how to slim down the installation if needed.
+
+# parser for PPDs and SSH (style sheet) files
BuildRequires: bison
-BuildRequires: cups
+# bzip2 is checked during build as well
+BuildRequires: bzip2
+# for emacs support - configure scripts looks for emacs command during build
BuildRequires: emacs
+# for lexical scanning of postscript, ppds and style sheet (.ssh) files
BuildRequires: flex
-# gcc no longer in buildroot by default
+# written in C - gcc no longer in buildroot by default
BuildRequires: gcc
+# uses BDW Garbage Collector
+BuildRequires: gc-devel
+# for translations
BuildRequires: gettext
+# for ps2pdf - PDF output, pdf2ps - PDF delegation
+BuildRequires: ghostscript
+# bundles gnulib source library
+BuildRequires: gnulib-devel
+# used for generating hash function for configuration options
BuildRequires: gperf
-BuildRequires: groff
+# Perl parts of groff text processor - ROFF delegation for man pages
BuildRequires: groff-perl
-# instead of gv, xdg-open should certainly be used
-#BuildRequires: gv
+# for compressed delegations
+BuildRequires: gzip
+# generating manpages
+BuildRequires: help2man
+# for paper configs
+BuildRequires: libpaper-devel
+# used for building
BuildRequires: libtool
# make no longer in buildroot
BuildRequires: make
+# for getting version of bundled gnulib
+BuildRequires: perl-interpreter
+# tools for manipulating with postscript docs
BuildRequires: psutils
+# makeinfo for info documentation
BuildRequires: texinfo
+# for DVI files support, it's DVI driver for tex
BuildRequires: texlive-dvips
+# latex for LaTeX file support
BuildRequires: texlive-latex
+# tex for Tex File support
+BuildRequires: texlive-tex
%if 0%{?rhel} <= 8 || 0%{?fedora}
+# for convert binary - used for converting images to postscript
BuildRequires: ImageMagick
+# converting html files to postscript
BuildRequires: html2ps
%endif
-Requires: bzip2
+# bundles gnulib of certain version
+Provides: bundled(gnulib)%(perl -ne 'if($. == 1 and /\A(\d+)-(\d+)-(\d+)/) {print qq{ = $1$2$3}}' %{_defaultdocdir}/gnulib/ChangeLog 2>/dev/null)
+
+# used during runtime for delegation
+Recommends: bzip2
+# Perl parts of groff text processor - ROFF delegation for man pages
+Recommends: groff-perl
+# for compressed delegations
+Recommends: gzip
+# makeinfo for info documentation
+Recommends: texinfo
+# for DVI files support, it's DVI driver for tex
+Recommends: texlive-dvips
+# latex for LaTeX file support
+Recommends: texlive-latex
+# tex for Tex File support
+Recommends: texinfo-tex
+
+# a2ps-lpr-wrapper uses lp/lpr
+Requires: cups-client
# for hebrew support, path set.
# culmus-fonts
# And certainly other font sets for other languages may be needed
-Requires: emacs-filesystem >= %{_emacs_version}
+Requires: emacs-filesystem
Requires: file
-Requires: groff-perl
-Requires: gzip
+# for ps2pdf - PDF output, pdf2ps - PDF delegation
+Requires: ghostscript
+# postscript delegation
Requires: psutils
Requires: psutils-perl
+# set of recommended fonts, looks to be for postscript as well
Requires: texlive-collection-fontsrecommended
-Requires: texlive-dvips
-Requires: texlive-latex
-Requires: texinfo-tex
+
Requires(post): coreutils
%if 0%{?rhel} <= 8 || 0%{?fedora}
+# image delegations
Requires: ImageMagick
-Requires: html2ps
+# html delegations
+Recommends: html2ps
%endif
+# for emacs support
+Suggests: emacs
+
%description
The a2ps filter converts text and other types of files to PostScript.
A2ps has pretty-printing capabilities and includes support for a wide
@@ -101,89 +153,42 @@ and medias.
%setup -q -a 1
# use fedora postscript font paths
-%patch0 -p1 -b .conf
-
+%patch -P 01 -p1 -b .conf
# add /etc/a2ps in directories searched for config files
-%patch1 -p1 -b .etc
-
-# Link to libm in liba2ps (bug #809673).
-%patch2 -p1 -b .lm
-
-%patch3 -p1 -b .security
-%patch4 -p1 -b .glibcpaper
-
-# Fix texi build failure (bug #927633).
-%patch5 -p1 -b .texi-comments
-%patch6 -p1 -b .aarch64
-
-%patch7 -p1 -b .sort
-%patch8 -p1 -b .iso5-minus
-%patch9 -p1 -b .perl
-
-%patch10 -p1 -b .euc
-%patch11 -p1 -b .ae
-%patch12 -p1 -b .attr
-
+%patch -P 02 -p1 -b .etc
+%patch -P 03 -p1 -b .glibcpaper
+%patch -P 04 -p1 -b .sort
+%patch -P 05 -p1 -b .iso5-minus
+%patch -P 06 -p1 -b .perl
# Use C locale's decimal point style (bug #53715).
-%patch13 -p1 -b .numeric
-
+%patch -P 07 -p1 -b .numeric
# Use locale to determine a sensible default encoding (bug #64584).
-%patch14 -p1 -b .encoding
-
+%patch -P 08 -p1 -b .encoding
# Fix koi8 tilde (bug #66393).
-%patch15 -p1 -b .tilde
-
-# Avoid a bad free in the encoding handling logic (bug #954104).
-%patch16 -p1 -b .bad-free
-
+%patch -P 09 -p1 -b .tilde
# Add Korean resource file (bug #81421).
-%patch17 -p1 -b .euckr
-
-# Prevent strsignal segfaulting (bug #104970).
-%patch18 -p1 -b .gnusource
-
-# Prevent build failure with -Wformat-security (bug #1036979).
-%patch19 -p1 -b .format-security
-
+%patch -P 10 -p1 -b .euckr
# Hebrew support (bug #113191).
-%patch20 -p1 -b .hebrew
-
-# Use external libtool (bug #225235).
-%patch34 -p1 -b .external-libtool
-
+%patch -P 11 -p1 -b .hebrew
# Fix problems in make_fonts_map script (bug #142299). Patch from
# Michal Jaegermann.
-%patch26 -p1 -b .make-fonts-map
-
+%patch -P 12 -p1 -b .make-fonts-map
# Make pdiff default to not requiring wdiff (bug #68537).
-%patch28 -p1 -b .wdiff
-
+%patch -P 13 -p1 -b .wdiff
# Make pdiff use diff(1) properly (bug #156916).
-%patch29 -p1 -b .U
-
+%patch -P 14 -p1 -b .U
# Fixed multibyte handling (bug #212154).
-%patch31 -p1 -b .mb
-
+%patch -P 15 -p1 -b .mb
# Remove dots in node names, patch from Vitezslav Crhonek (Bug #445971)
-%patch35 -p1 -b .nodes
-
+%patch -P 16 -p1 -b .nodes
# Coverity fix (forward-null).
-%patch36 -p1 -b .forward-null
-
+%patch -P 17 -p1 -b .forward-null
# Coverity fix (overrun-dynamic).
-%patch37 -p1 -b .overrun-dynamic
-
+%patch -P 18 -p1 -b .overrun-dynamic
# Coverity fix (overrun-static).
-%patch38 -p1 -b .overrun-static
-
+%patch -P 19 -p1 -b .overrun-static
# Coverity fix (resource-leak).
-%patch39 -p1 -b .resource-leak
-
-# Invoke gs with the -dSAFER option in fixps (CVE-2014-0466, bug #1082411).
-%patch40 -p1 -b .CVE-2014-0466
-
-# new texinfo needs to have documentencoding defined (#1788165)
-%patch41 -p1 -b .define-texinfo-enc
+%patch -P 20 -p1 -b .resource-leak
for file in AUTHORS ChangeLog; do
iconv -f latin1 -t UTF-8 < $file > $file.utf8
@@ -191,26 +196,18 @@ for file in AUTHORS ChangeLog; do
mv $file.utf8 $file
done
+autoreconf -fi
+
mv doc/encoding.texi doc/encoding.texi.utf8
iconv -f KOI-8 -t UTF-8 doc/encoding.texi.utf8 -o doc/encoding.texi
# Fix reference to a2ps binary (bug #112930).
sed -i -e "s,/usr/local/bin,%{_bindir}," contrib/emacs/a2ps.el
-chmod -x lib/basename.c lib/xmalloc.c
-
-# restore timestamps of patched files
-touch -c -r configure.in.conf configure.in
-touch -c -r config.h.in.euc config.h.in
-touch -c -r configure.conf configure
-touch -c -r src/Makefile.am.euc src/Makefile.am
-touch -c -r etc/Makefile.am.etc etc/Makefile.am
-#touch -c -r fonts/Makefile.in src/Makefile.in lib/Makefile.in
-touch -c -r etc/Makefile.in.etc etc/Makefile.in
-
chmod 644 encoding/iso8.edf.hebrew
chmod 644 encoding/euc-kr.edf.euckr
+
%build
# preset the date in README.in to avoid the timestamp of the build time
sed -e "s!@date@!`date -r NEWS`!" etc/README.in > etc/README.in.tmp
@@ -237,6 +234,7 @@ find src lib -name '*.l' -exec touch {} \;
make %{?_smp_mflags}
+
%install
make DESTDIR=%{buildroot} install INSTALL='install -p'
@@ -253,14 +251,19 @@ install -p -m 0644 *.pfb %{buildroot}%{_datadir}/a2ps/fonts
popd
popd
-# Don't ship the library file or header (bug #203536).
-rm %{buildroot}%{_libdir}/*.{so,a,la}
-rm %{buildroot}%{_includedir}/*
-
rm -f %{buildroot}%{_infodir}/dir
+mkdir -p %{buildroot}%{_defaultlicensedir}/%{name}
+install -p -m 644 %{SOURCE2} %{buildroot}%{_defaultlicensedir}/%{name}/COPYING
+
+for lang in af be bg ca cs da de el eo es et eu fi fr ga gl hu it ja ka ko ms nb nl pl pt pt_BR ro ru rw sk sl sr sv tr uk vi zh_CN zh_TW
+do
+ mv %{buildroot}/usr/share/locale/$lang/LC_MESSAGES/a2ps{-gnulib,}.mo
+done
+
%find_lang %name
+
%post
%{?ldconfig}
(cd %{_datadir}/a2ps/afm;
@@ -273,19 +276,26 @@ exit 0
%ldconfig_postun
+
%files -f %{name}.lang
+%license COPYING
+%doc AUTHORS ChangeLog NEWS README TODO THANKS
%dir %{_sysconfdir}/a2ps
%config %{_sysconfdir}/a2ps.cfg
%config(noreplace) %{_sysconfdir}/a2ps-site.cfg
-%doc AUTHORS ChangeLog COPYING NEWS README TODO THANKS
-%{_bindir}/*
-%{_infodir}/a2ps.info*
-%{_infodir}/ogonkify.info*
-%{_infodir}/regex.info*
-%{_mandir}/*/*
+%{_bindir}/a2ps
+%{_bindir}/a2ps-lpr-wrapper
+%{_bindir}/card
+%{_bindir}/composeglyphs
+%{_bindir}/fixps
+%{_bindir}/lp2
+%{_bindir}/ogonkify
+%{_bindir}/pdiff
+%dir %{_datadir}/a2ps
+%dir %{_datadir}/a2ps/afm
+%{_datadir}/a2ps/afm/*.afm
# automatically regenerated at install and update time
%verify(not size mtime md5) %{_datadir}/a2ps/afm/fonts.map
-%{_datadir}/a2ps/afm/*.afm
%{_datadir}/a2ps/afm/make_fonts_map.sh
%{_datadir}/a2ps/README
%{_datadir}/a2ps/encoding
@@ -294,12 +304,25 @@ exit 0
%{_datadir}/a2ps/ps
%{_datadir}/a2ps/sheets
%{_datadir}/ogonkify/
-%dir %{_datadir}/a2ps/afm
-%dir %{_datadir}/a2ps
-%{_libdir}/*.so*
%{_emacs_sitelispdir}/%{name}
+%{_infodir}/a2ps.info*
+%{_infodir}/ogonkify.info*
+%{_infodir}/regex.info*
+%{_mandir}/man1/a2ps-lpr-wrapper.1.gz
+%{_mandir}/man1/a2ps.1.gz
+%{_mandir}/man1/card.1.gz
+%{_mandir}/man1/fixps.1.gz
+%{_mandir}/man1/lp2.1.gz
+%{_mandir}/man1/ogonkify.1.gz
+%{_mandir}/man1/pdiff.1.gz
%changelog
+* Thu Jul 27 2023 Zdenek Dohnal - 4.15.5-1
+- 2225694 - a2ps: FTBFS in Fedora rawhide/f39
+- 2189133 - a2ps: FTBFS in rawhide, 64-bit and C99 compatibility issues
+- 2176254 - a2ps-4.15.5 is available
+- SPDX migration done
+
* Wed Jul 19 2023 Fedora Release Engineering - 4.14-53
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
diff --git a/sources b/sources
index e950ddb..8d04650 100644
--- a/sources
+++ b/sources
@@ -1,2 +1 @@
-781ac3d9b213fa3e1ed0d79f986dc8c7 a2ps-4.14.tar.gz
-fee1456d0e6e94af4fc5b5a1bb9687b7 i18n-fonts-0.1.tar.gz
+SHA512 (a2ps-4.15.5.tar.gz) = e9953659139a46aed46e190d5485382a9e396ae8bbbe59edb78ab3110e7839a764e3cb6ff94f5f36e6e91fcaf85f6352376e0b4a0e0141f24e098fa334b5015e