--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/enscript/Makefile Wed Jan 23 12:17:32 2013 -0800
@@ -0,0 +1,85 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+#
+
+include ../../make-rules/shared-macros.mk
+
+COMPONENT_NAME= enscript
+COMPONENT_VERSION= 1.6.4
+COMPONENT_PROJECT_URL= http://www.gnu.org/software/enscript
+COMPONENT_SRC= $(COMPONENT_NAME)-$(COMPONENT_VERSION)
+COMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.gz
+COMPONENT_ARCHIVE_HASH= \
+ sha256:45299a4db47c9c08c3649d4f62b211ae79ef5143360c264a40371a728f6ad99b
+COMPONENT_ARCHIVE_URL= http://ftp.gnu.org/gnu/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
+COMPONENT_BUGDB= utility/enscript
+
+# Ruby enscript support
+COMPONENT_ARCHIVE_1= ruby-enscript.tar.gz
+COMPONENT_ARCHIVE_HASH_1= \
+ sha256:29c87c4cd5d36b221fd50ad0b2e35a2cc0e1422519bb7f41d400c61db117cff7
+COMPONENT_ARCHIVE_URL_1= http://neugierig.org/software/ruby/ruby-enscript.tar.gz
+
+# PHP enscript support
+COMPONENT_ARCHIVE_2= php.st
+COMPONENT_ARCHIVE_HASH_2= \
+ sha256:64d5b1ed1044202cda1ddcd591a966d1faff58d60156c4368d485f0405d7a9ee
+COMPONENT_ARCHIVE_URL_2= http://home.raxnet.net/downloads/viewcvs/php.st
+
+include ../../make-rules/prep.mk
+include ../../make-rules/configure.mk
+include ../../make-rules/ips.mk
+
+PATCH_LEVEL = 1
+
+# Get just the ruby enscript support file out of the downloaded tarball, and
+# move ruby.st and php.st into the correct directory for "gmake install".
+COMPONENT_PREP_ACTION = \
+ /usr/bin/tar xvf $(COMPONENT_ARCHIVE_1) ruby.st ; \
+ $(MV) php.st ruby.st $(SOURCE_DIR)/states/hl ;
+
+# There are patches that change a Makefile.am and configure.in
+COMPONENT_PREP_ACTION +=(cd $(@D); autoreconf -fiv);
+
+# Needed so that enscript can find the enscript.cfg file.
+CONFIGURE_OPTIONS += --sysconfdir=/etc
+
+CONFIGURE_OPTIONS += --with-media=Letter
+CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)"
+CONFIGURE_OPTIONS += LDFLAGS="$(LDFLAGS)"
+
+COMPONENT_POST_INSTALL_ACTION = \
+ $(LN) $(PROTOUSRBINDIR)/$(MACH64)/enscript \
+ $(PROTOUSRBINDIR)/$(MACH64)/nenscript
+
+# common targets
+build: $(BUILD_64)
+
+install: $(INSTALL_64)
+
+test: $(TEST_64)
+
+BUILD_PKG_DEPENDENCIES = $(BUILD_TOOLS)
+
+include ../../make-rules/depend.mk
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/enscript/enscript.license Wed Jan 23 12:17:32 2013 -0800
@@ -0,0 +1,343 @@
+------------------
+- enscript 1.6.4 -
+------------------
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ Appendix: 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
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ 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 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, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision 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, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This 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 Library General
+Public License instead of this License.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/enscript/enscript.p5m Wed Jan 23 12:17:32 2013 -0800
@@ -0,0 +1,262 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+#
+
+<transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
+set name=pkg.fmri \
+ value=pkg:/print/filter/enscript@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.summary value="A plain ASCII to PostScript converter"
+set name=pkg.description \
+ value="GNU enscript is a free replacement for Adobe's Enscript program. Enscript converts ASCII files to PostScript(TM) and spools generated PostScript output to the specified printer or saves it to a file. Enscript can be extended to handle different output media and includes many options for customizing printouts"
+set name=info.classification value=org.opensolaris.category.2008:System/Printing
+set name=info.upstream-url value=http://www.gnu.org/software/enscript
+set name=org.opensolaris.arc-caseid value=PSARC/2010/337
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+dir path=etc
+file path=etc/enscript.cfg
+dir path=usr
+dir path=usr/bin
+file usr/bin/$(MACH64)/diffpp path=usr/bin/diffpp
+file usr/bin/$(MACH64)/enscript path=usr/bin/enscript
+file usr/bin/$(MACH64)/mkafmmap path=usr/bin/mkafmmap
+file usr/bin/$(MACH64)/nenscript path=usr/bin/nenscript
+file usr/bin/$(MACH64)/over path=usr/bin/over
+file usr/bin/$(MACH64)/sliceprint path=usr/bin/sliceprint
+file usr/bin/$(MACH64)/states path=usr/bin/states
+dir path=usr/share
+dir path=usr/share/doc
+dir path=usr/share/doc/enscript
+dir path=usr/share/doc/enscript/docs
+file docs/FAQ.html path=usr/share/doc/enscript/docs/FAQ.html facet.doc.html=true
+dir path=usr/share/enscript
+file path=usr/share/enscript/88591.enc
+file path=usr/share/enscript/885910.enc
+file path=usr/share/enscript/88592.enc
+file path=usr/share/enscript/88593.enc
+file path=usr/share/enscript/88594.enc
+file path=usr/share/enscript/88595.enc
+file path=usr/share/enscript/88597.enc
+file path=usr/share/enscript/88599.enc
+file path=usr/share/enscript/a2ps.hdr
+dir path=usr/share/enscript/afm
+file path=usr/share/enscript/afm/agd.afm
+file path=usr/share/enscript/afm/agdo.afm
+file path=usr/share/enscript/afm/agw.afm
+file path=usr/share/enscript/afm/agwo.afm
+file path=usr/share/enscript/afm/bkd.afm
+file path=usr/share/enscript/afm/bkdi.afm
+file path=usr/share/enscript/afm/bkl.afm
+file path=usr/share/enscript/afm/bkli.afm
+file path=usr/share/enscript/afm/cob.afm
+file path=usr/share/enscript/afm/cobo.afm
+file path=usr/share/enscript/afm/com.afm
+file path=usr/share/enscript/afm/coo.afm
+file path=usr/share/enscript/afm/font.map
+file path=usr/share/enscript/afm/hv.afm
+file path=usr/share/enscript/afm/hvb.afm
+file path=usr/share/enscript/afm/hvbo.afm
+file path=usr/share/enscript/afm/hvc.afm
+file path=usr/share/enscript/afm/hvcb.afm
+file path=usr/share/enscript/afm/hvcbo.afm
+file path=usr/share/enscript/afm/hvcdo.afm
+file path=usr/share/enscript/afm/hvn.afm
+file path=usr/share/enscript/afm/hvnb.afm
+file path=usr/share/enscript/afm/hvnbo.afm
+file path=usr/share/enscript/afm/hvno.afm
+file path=usr/share/enscript/afm/hvo.afm
+file path=usr/share/enscript/afm/matrix.afm
+file path=usr/share/enscript/afm/matrix.pfa
+file path=usr/share/enscript/afm/ncb.afm
+file path=usr/share/enscript/afm/ncbi.afm
+file path=usr/share/enscript/afm/nci.afm
+file path=usr/share/enscript/afm/ncr.afm
+file path=usr/share/enscript/afm/pob.afm
+file path=usr/share/enscript/afm/pobi.afm
+file path=usr/share/enscript/afm/poi.afm
+file path=usr/share/enscript/afm/por.afm
+file path=usr/share/enscript/afm/sy.afm
+file path=usr/share/enscript/afm/tib.afm
+file path=usr/share/enscript/afm/tibi.afm
+file path=usr/share/enscript/afm/tii.afm
+file path=usr/share/enscript/afm/tir.afm
+file path=usr/share/enscript/afm/zcmi.afm
+file path=usr/share/enscript/afm/zd.afm
+file path=usr/share/enscript/ascii.enc
+file path=usr/share/enscript/asciidkno.enc
+file path=usr/share/enscript/asciifise.enc
+file path=usr/share/enscript/edd.hdr
+file path=usr/share/enscript/emacs.hdr
+file path=usr/share/enscript/enscript-color.hdr
+file path=usr/share/enscript/enscript.hdr
+file path=usr/share/enscript/enscript.pro
+file path=usr/share/enscript/frame.hdr
+dir path=usr/share/enscript/hl
+file path=usr/share/enscript/hl/ada.st
+file path=usr/share/enscript/hl/asm.st
+file path=usr/share/enscript/hl/awk.st
+file path=usr/share/enscript/hl/bash.st
+file path=usr/share/enscript/hl/c.st
+file path=usr/share/enscript/hl/c_comment.st
+file path=usr/share/enscript/hl/c_ppline.st
+file path=usr/share/enscript/hl/c_string.st
+file path=usr/share/enscript/hl/changelog.st
+file path=usr/share/enscript/hl/cpp.st
+file path=usr/share/enscript/hl/csh.st
+file path=usr/share/enscript/hl/default_faces.st
+file path=usr/share/enscript/hl/delphi.st
+file path=usr/share/enscript/hl/describe_languages.st
+file path=usr/share/enscript/hl/diff.st
+file path=usr/share/enscript/hl/diffs.st
+file path=usr/share/enscript/hl/diffu.st
+file path=usr/share/enscript/hl/dylan.st
+file path=usr/share/enscript/hl/eiffel.st
+file path=usr/share/enscript/hl/elisp.st
+file path=usr/share/enscript/hl/enscript.st
+file path=usr/share/enscript/hl/erlang.st
+file path=usr/share/enscript/hl/forth.st
+file path=usr/share/enscript/hl/fortran.st
+file path=usr/share/enscript/hl/fortran_pp.st
+file path=usr/share/enscript/hl/haskell.st
+file path=usr/share/enscript/hl/html.st
+file path=usr/share/enscript/hl/icon.st
+file path=usr/share/enscript/hl/idl.st
+file path=usr/share/enscript/hl/inf.st
+file path=usr/share/enscript/hl/java.st
+file path=usr/share/enscript/hl/javascript.st
+file path=usr/share/enscript/hl/ksh.st
+file path=usr/share/enscript/hl/lang_ansi.st
+file path=usr/share/enscript/hl/lang_enscript.st
+file path=usr/share/enscript/hl/lang_html.st
+file path=usr/share/enscript/hl/lang_overstrike.st
+file path=usr/share/enscript/hl/lang_rtf.st
+file path=usr/share/enscript/hl/lang_texinfo.st
+file path=usr/share/enscript/hl/lua.st
+file path=usr/share/enscript/hl/m4.st
+file path=usr/share/enscript/hl/mail.st
+file path=usr/share/enscript/hl/makefile.st
+file path=usr/share/enscript/hl/matlab.st
+file path=usr/share/enscript/hl/nroff.st
+file path=usr/share/enscript/hl/oberon2.st
+file path=usr/share/enscript/hl/objc.st
+file path=usr/share/enscript/hl/outline.st
+file path=usr/share/enscript/hl/oz.st
+file path=usr/share/enscript/hl/pascal.st
+file path=usr/share/enscript/hl/passthrough.st
+file path=usr/share/enscript/hl/perl.st
+file path=usr/share/enscript/hl/php.st
+file path=usr/share/enscript/hl/postscript.st
+file path=usr/share/enscript/hl/pyrex.st
+file path=usr/share/enscript/hl/python.st
+file path=usr/share/enscript/hl/rfc.st
+file path=usr/share/enscript/hl/ruby.st
+file path=usr/share/enscript/hl/scheme.st
+file path=usr/share/enscript/hl/sh.st
+file path=usr/share/enscript/hl/skill.st
+file path=usr/share/enscript/hl/smalltalk.st
+file path=usr/share/enscript/hl/sml.st
+file path=usr/share/enscript/hl/sql.st
+file path=usr/share/enscript/hl/states.st
+file path=usr/share/enscript/hl/style_a2ps.st
+file path=usr/share/enscript/hl/style_emacs.st
+file path=usr/share/enscript/hl/style_emacs_verbose.st
+file path=usr/share/enscript/hl/style_ifh.st
+file path=usr/share/enscript/hl/style_msvc.st
+file path=usr/share/enscript/hl/synopsys.st
+file path=usr/share/enscript/hl/tcl.st
+file path=usr/share/enscript/hl/tcsh.st
+file path=usr/share/enscript/hl/tex.st
+file path=usr/share/enscript/hl/vba.st
+file path=usr/share/enscript/hl/verilog.st
+file path=usr/share/enscript/hl/vhdl.st
+file path=usr/share/enscript/hl/vrml.st
+file path=usr/share/enscript/hl/wmlscript.st
+file path=usr/share/enscript/hl/zsh.st
+file path=usr/share/enscript/hp8.enc
+file path=usr/share/enscript/ibmpc.enc
+file path=usr/share/enscript/koi8.enc
+file path=usr/share/enscript/mac.enc
+file path=usr/share/enscript/mp.hdr
+file path=usr/share/enscript/ps.enc
+file path=usr/share/enscript/pslatin1.enc
+file path=usr/share/enscript/simple.hdr
+file path=usr/share/enscript/squeeze.hdr
+file path=usr/share/enscript/vms.enc
+dir path=usr/share/info
+file path=usr/share/info/enscript.info
+dir path=usr/share/locale
+dir path=usr/share/locale/ca
+dir path=usr/share/locale/ca/LC_MESSAGES
+file path=usr/share/locale/ca/LC_MESSAGES/enscript.mo
+dir path=usr/share/locale/da
+dir path=usr/share/locale/da/LC_MESSAGES
+file path=usr/share/locale/da/LC_MESSAGES/enscript.mo
+dir path=usr/share/locale/de
+dir path=usr/share/locale/de/LC_MESSAGES
+file path=usr/share/locale/de/LC_MESSAGES/enscript.mo
+dir path=usr/share/locale/en_GB
+dir path=usr/share/locale/en_GB/LC_MESSAGES
+file path=usr/share/locale/en_GB/LC_MESSAGES/enscript.mo
+dir path=usr/share/locale/es
+dir path=usr/share/locale/es/LC_MESSAGES
+file path=usr/share/locale/es/LC_MESSAGES/enscript.mo
+dir path=usr/share/locale/fi
+dir path=usr/share/locale/fi/LC_MESSAGES
+dir path=usr/share/locale/fr
+dir path=usr/share/locale/fr/LC_MESSAGES
+file path=usr/share/locale/fr/LC_MESSAGES/enscript.mo
+dir path=usr/share/locale/hr
+dir path=usr/share/locale/hr/LC_MESSAGES
+file path=usr/share/locale/hr/LC_MESSAGES/enscript.mo
+dir path=usr/share/locale/nl
+dir path=usr/share/locale/nl/LC_MESSAGES
+file path=usr/share/locale/nl/LC_MESSAGES/enscript.mo
+dir path=usr/share/locale/pt_BR
+dir path=usr/share/locale/pt_BR/LC_MESSAGES
+file path=usr/share/locale/pt_BR/LC_MESSAGES/enscript.mo
+dir path=usr/share/locale/ru
+dir path=usr/share/locale/ru/LC_MESSAGES
+file path=usr/share/locale/ru/LC_MESSAGES/enscript.mo
+dir path=usr/share/locale/sl
+dir path=usr/share/locale/sl/LC_MESSAGES
+file path=usr/share/locale/sl/LC_MESSAGES/enscript.mo
+dir path=usr/share/locale/sv
+dir path=usr/share/locale/sv/LC_MESSAGES
+file path=usr/share/locale/sv/LC_MESSAGES/enscript.mo
+dir path=usr/share/locale/tr
+dir path=usr/share/locale/tr/LC_MESSAGES
+file path=usr/share/locale/tr/LC_MESSAGES/enscript.mo
+dir path=usr/share/man
+dir path=usr/share/man/man1
+file path=usr/share/man/man1/diffpp.1
+file path=usr/share/man/man1/enscript.1
+file path=usr/share/man/man1/sliceprint.1
+file path=usr/share/man/man1/states.1
+license enscript.license license=GPLv2
+
+# enscript was previously in the 'desktop' consolidation. This optional
+# dependency is here to facilitate the safe transfer of the package to the
+# 'userland' consolidation.
+depend type=optional \
+ fmri=consolidation/desktop/[email protected]
+depend type=require fmri=developer/base-developer-utilities
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/enscript/patches/enscript-1.6.1-CAN-2004-1185.patch Wed Jan 23 12:17:32 2013 -0800
@@ -0,0 +1,24 @@
+diff -up enscript-1.6.4/src/psgen.c.CAN-2004-1185 enscript-1.6.4/src/psgen.c
+--- enscript-1.6.4/src/psgen.c.CAN-2004-1185 2008-08-08 11:18:06.000000000 +0200
++++ enscript-1.6.4/src/psgen.c 2008-08-08 11:17:57.000000000 +0200
+@@ -2386,9 +2386,11 @@ recognize_eps_file (Token *token)
+ MESSAGE (2, (stderr, "^@epsf=\"%s\"\n", token->u.epsf.filename));
+
+ i = strlen (token->u.epsf.filename);
++
++ /*
+ if (i > 0 && token->u.epsf.filename[i - 1] == '|')
+ {
+- /* Read EPS data from pipe. */
++ / * Read EPS data from pipe. * /
+ token->u.epsf.pipe = 1;
+ token->u.epsf.filename[i - 1] = '\0';
+ token->u.epsf.fp = popen (token->u.epsf.filename, "r");
+@@ -2401,6 +2403,7 @@ recognize_eps_file (Token *token)
+ }
+ }
+ else
++ */
+ {
+ char *filename;
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/enscript/patches/enscript-1.6.1-CAN-2004-1186.patch Wed Jan 23 12:17:32 2013 -0800
@@ -0,0 +1,14 @@
+--- enscript-1.6.1/src/psgen.c.CAN-2004-1186 2005-01-10 15:57:07.432740602 +0000
++++ enscript-1.6.1/src/psgen.c 2005-01-10 15:58:24.606016206 +0000
+@@ -1914,8 +1914,9 @@
+ else
+ {
+ ftail++;
+- strncpy (buf, fname, ftail - fname);
+- buf[ftail - fname] = '\0';
++ i = ftail - fname >= sizeof (buf)-1 ? sizeof (buf)-1 : ftail - fname;
++ strncpy (buf, fname, i);
++ buf[i] = '\0';
+ }
+
+ if (nup > 1)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/enscript/patches/enscript-1.6.1-config.patch Wed Jan 23 12:17:32 2013 -0800
@@ -0,0 +1,56 @@
+diff -up enscript-1.6.4/afm/Makefile.am.config enscript-1.6.4/afm/Makefile.am
+--- enscript-1.6.4/afm/Makefile.am.config 2003-03-05 08:26:16.000000000 +0100
++++ enscript-1.6.4/afm/Makefile.am 2009-11-30 14:38:34.410478926 +0100
+@@ -36,11 +36,11 @@ public_fonts = matrix.afm matrix.pfa
+ EXTRA_DIST = font.map $(default_afm) $(public_fonts)
+
+ install-data-local:
+- $(top_srcdir)/mkinstalldirs $(datadir)/enscript
+- $(top_srcdir)/mkinstalldirs $(datadir)/enscript/afm
++ $(top_srcdir)/mkinstalldirs $(DESTDIR)/$(datadir)/enscript
++ $(top_srcdir)/mkinstalldirs $(DESTDIR)/$(datadir)/enscript/afm
+ for f in $(EXTRA_DIST); do \
+- $(INSTALL_DATA) $(srcdir)/$$f $(datadir)/enscript/afm/$$f; \
++ $(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)/$(datadir)/enscript/afm/$$f; \
+ done
+
+ uninstall-local:
+- rm -rf $(datadir)/enscript/afm
++ rm -rf $(DESTDIR)/$(datadir)/enscript/afm
+diff -up enscript-1.6.4/lib/Makefile.am.config enscript-1.6.4/lib/Makefile.am
+--- enscript-1.6.4/lib/Makefile.am.config 2009-11-30 14:39:38.377977061 +0100
++++ enscript-1.6.4/lib/Makefile.am 2009-11-30 14:40:13.887977573 +0100
+@@ -38,12 +38,12 @@ CLEANFILES = enscript.cfg
+ all-local: enscript.cfg
+
+ install-data-local: enscript.cfg
+- $(top_srcdir)/mkinstalldirs $(sysconfdir)
+- if test -r $(sysconfdir)/enscript.cfg; then \
+- cp $(sysconfdir)/enscript.cfg $(sysconfdir)/enscript.cfg.old; \
++ $(top_srcdir)/mkinstalldirs $(DESTDIR)$(sysconfdir)
++ if test -r $(DESTDIR)$(sysconfdir)/enscript.cfg; then \
++ cp $(DESTDIR)$(sysconfdir)/enscript.cfg $(DESTDIR)$(sysconfdir)/enscript.cfg.old; \
+ else :; \
+ fi
+- $(INSTALL_DATA) enscript.cfg $(sysconfdir)/enscript.cfg
++ $(INSTALL_DATA) enscript.cfg $(DESTDIR)$(sysconfdir)/enscript.cfg
+
+ uninstall-local:
+ rm -f $(sysconfdir)/enscript.cfg
+diff -up enscript-1.6.4/states/hl/Makefile.am.config enscript-1.6.4/states/hl/Makefile.am
+--- enscript-1.6.4/states/hl/Makefile.am.config 2003-03-05 08:26:33.000000000 +0100
++++ enscript-1.6.4/states/hl/Makefile.am 2009-11-30 14:38:34.410478926 +0100
+@@ -45,10 +45,10 @@ states = $(misc) $(styles) $(languages)
+ EXTRA_DIST = $(states)
+
+ install-data-local:
+- $(top_srcdir)/mkinstalldirs $(datadir)/enscript
+- $(top_srcdir)/mkinstalldirs $(datadir)/enscript/hl
++ $(top_srcdir)/mkinstalldirs $(DESTDIR)/$(datadir)/enscript
++ $(top_srcdir)/mkinstalldirs $(DESTDIR)/$(datadir)/enscript/hl
+ for f in $(states); do \
+- $(INSTALL_DATA) $(srcdir)/$$f $(datadir)/enscript/hl/$$f; \
++ $(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)/$(datadir)/enscript/hl/$$f; \
+ done
+
+ uninstall-local:
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/enscript/patches/enscript-1.6.1-locale.patch Wed Jan 23 12:17:32 2013 -0800
@@ -0,0 +1,26 @@
+--- enscript-1.6.1/src/main.c.locale Mon Mar 18 11:23:14 2002
++++ enscript-1.6.1/src/main.c Mon Mar 18 11:24:08 2002
+@@ -912,9 +912,8 @@
+ * We want to change only messages (gs do not like decimals in 0,1
+ * format ;)
+ */
+-#if HAVE_LC_MESSAGES
+- setlocale (LC_MESSAGES, "");
+-#endif
++ setlocale (LC_ALL, "");
++ setlocale (LC_NUMERIC, "C");
+ #endif
+ #if ENABLE_NLS
+ bindtextdomain (PACKAGE, LOCALEDIR);
+--- enscript-1.6.1/src/psgen.c.locale Mon Mar 18 11:23:14 2002
++++ enscript-1.6.1/src/psgen.c Mon Mar 18 11:23:14 2002
+@@ -1103,7 +1103,8 @@
+ /* Get escape name. */
+ for (i = 0; i < sizeof (escname) - 1 && (ch = is_getc (is)) != EOF; i++)
+ {
+- if (!isalnum (ch))
++ if (!((ch >= '0' && ch <= '9') || (ch >= 'A' && ch <= 'Z') ||
++ (ch >= 'a' && ch <= 'z')))
+ {
+ is_ungetc (ch, is);
+ break;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/enscript/patches/enscript-1.6.4-hilight.patch Wed Jan 23 12:17:32 2013 -0800
@@ -0,0 +1,1255 @@
+04_hilight.dpatch from Debian's 1.6.4-7 patchset, with a few changes:
+o hilight *.xhtml as html
+o install php.st and ruby.st bits
+o patch Makefile.am too
+
+diff -Nru enscript-1.6.4.orig/states/hl/changelog.st enscript-1.6.4/states/hl/changelog.st
+--- enscript-1.6.4.orig/states/hl/changelog.st 2003-03-05 09:26:33.000000000 +0200
++++ enscript-1.6.4/states/hl/changelog.st 2006-01-09 22:02:28.000000000 +0200
+@@ -43,7 +43,7 @@
+ }
+
+ /* File descriptions without function names. */
+- /(^\t\* )([^ :]+)(:)/ {
++ /(^\t\* )([^:]+)(:)/ {
+ language_print ($1);
+
+ function_name_face (true);
+diff -Nru enscript-1.6.4.orig/states/hl/dylan.st enscript-1.6.4/states/hl/dylan.st
+--- enscript-1.6.4.orig/states/hl/dylan.st 1970-01-01 02:00:00.000000000 +0200
++++ enscript-1.6.4/states/hl/dylan.st 2006-01-09 22:02:28.000000000 +0200
+@@ -0,0 +1,124 @@
++/**
++ * Name: dylan
++ * Description: Dylan Programming Language template for Enscript.
++ * Author: Brent Fulgham <[email protected]>
++ * (based on the Scheme version by Markku Rossi <[email protected]>)
++ */
++
++dylan_mod_re =
++/* Definition Modifiers
++ (build-re '(abstract block concrete constant class domain exception exclude
++ export function functional generic handler import inherited inline
++ instance interface library macro method open primary sealed sideways
++ singleton slot subclass variable virtual))
++ */
++ /\b(subclass|abstract|block|c(on(crete|stant)|lass)|domain\
++|ex(c(eption|lude)|port)|f(unction(|al))|generic|handler\
++|i(n(herited|line|stance|terface)|mport)|library|m(acro|ethod)\
++|open|primary|sealed|si(deways|ngleton)|slot\
++|v(ariable|irtual))\b/;
++
++state dylan extends HighlightEntry
++{
++ BEGIN {
++ /*
++ * Modify regexp character syntax so that we can distinguish all
++ * dylan symbols.
++ */
++ extras = list ('!', '$', '%', '&', '*', '/', ':',
++ '=', '?', '~', '^', '.', '+', '-');
++ for (i = 0; i < length (extras); i = i + 1)
++ regexp_syntax (extras[i], 'w');
++ }
++
++ /* Modifiers */
++ dylan_mod_re {
++ reference_face (true);
++ language_print ($0);
++ reference_face (false);
++ }
++
++ /* Types */
++ /<\w+>/ {
++ type_face (true);
++ language_print ($0);
++ type_face (false);
++ }
++
++ /* Symbols */
++ /#\"/ {
++ string_face (true);
++ language_print ($0);
++ call (c_string);
++ string_face (false);
++ }
++
++ /* Comments. */
++ /\/\// {
++ comment_face (true);
++ language_print ($0);
++ call (eat_one_line);
++ comment_face (false);
++ }
++ /\/\*/ {
++ comment_face (true);
++ language_print ($0);
++ call (eat_one_line);
++ comment_face (false);
++ }
++
++ /* String constants. */
++ /\"/ {
++ string_face (true);
++ language_print ($0);
++ call (c_string);
++ string_face (false);
++ }
++
++ /* Character constants. */
++ /'.*'/ {
++ string_face (true);
++ language_print ($0);
++ string_face (false);
++ }
++
++ /* Keywords.
++ "=>" +
++ (build-re '(above afterwards begin below by case cleanup create
++ define end else elseif finally for from if in let local otherwise rename
++ select signal then to unless until use variable virtual when while
++ */
++ /=>|\b(a(bove|fterwards)|b(e(gin|low)|y)|c(ase|leanup|reate)\
++|define|else(|if)|end|f(inally|or|rom)|i[fn]|l(et|ocal)|otherwise\
++|rename|s(elect|ignal)|t(hen|o)|u(n(less|til)|se)|wh(en|ile))\b/ {
++ keyword_face (true);
++ language_print ($0);
++ keyword_face (false);
++ }
++
++ /* ':'-names, Emacs highlights these, so do we. */
++ /([ \t])([!\$%&\*\/:<=>\?~_^a-zA-Z0-9.+\-]*:)/ {
++ language_print ($1);
++ reference_face (true);
++ language_print ($2);
++ reference_face (false);
++ }
++
++ /* Function faces */
++ /([ \t]*)(\w+[^:])([ \t]*\([ \t]*)/ {
++ language_print ($1);
++ function_name_face(true);
++ face_on(face_bold_italic);
++ language_print ($2);
++ face_off(face_bold_italic);
++ function_name_face(false);
++ language_print ($3);
++ }
++}
++
++
++/*
++Local variables:
++mode: c
++End:
++*/
+diff -Nru enscript-1.6.4.orig/states/hl/eiffel.st enscript-1.6.4/states/hl/eiffel.st
+--- enscript-1.6.4.orig/states/hl/eiffel.st 1970-01-01 02:00:00.000000000 +0200
++++ enscript-1.6.4/states/hl/eiffel.st 2006-01-09 22:02:28.000000000 +0200
+@@ -0,0 +1,132 @@
++/**
++ * Name: eiffel
++ * Description: Eiffel programming language.
++ * Author: Julien Lemoine <[email protected]>
++ * Brent Fulgham <[email protected]>
++ */
++
++eiffel_types =
++/* Types */
++ /\b(ABSTRACT_(FRACTION|INTEGER)|ANY|AR(GUMENTS|RAY(|2|3|ED_COLLECTION))\
++|BASIC_(DIRECTORY|TIME)|BINARY_FILE_(READ|WRITE)|BIT_(N|STRING)|BOOLEAN\
++|CHARACTER(|_CONSTANTS)|CLOCK|COLLECTION(|2|3|_SORTER)|COMPARABLE\
++|COUNTER|DICTIONARY(|_NODE)|D(IRECTORY|OUBLE)|EXCEPTIONS|FILE(|_TOOLS)\
++|FIXED_ARRAY(|2|3)|GE(NERAL|N_RAND)|HASH(ABLE|_TABLE_SIZE)|INPUT_STREAM\
++|INTEGER(|_8|_16|_32|_64|_FRACTION|_GENERAL)\
++|ITERATOR(|_ON_(COLLECTION|DICTIONARY(_ITEMS|_KEYS)|LINKED_LIST|SET\
++|STRING|TWO_WAY_LINKED_LIST|UNICODE_STRING))\
++|LARGE(|_NEGATIVE|_POSITIVE)_INTEGER|LINK(|2|ED(_COLLECTION|_LIST))\
++|MATH_CONSTANTS|MEMO(|RY)|MICROSECOND_TIME|MINI_PARSER_BUFFER\
++|MIN_STAND|MUTABLE_BIG_INTEGER|NATIVE_ARRAY|NULL_(INPUT|OUTPUT)\
++|NUMBER(|_FRACTION|_TOOLS)|NUMERIC|OUTPUT_STREAM|PLATFORM|POINTER\
++|REAL|REVERSE_COLLECTION_SORTER|SAFE_EQUAL|SCOOP_UTILITIES|SET(|_NODE)\
++|SMALL_INTEGER|STD_(ERROR|FILE_(READ|READ_WRITE|WRITE)|INPUT(|_OUTPUT)\
++|OUTPUT|RAND)|STRING(|_HANDLER)|SYSTEM|TIME(|_IN_(ENGLISH|FRENCH|GERMAN\
++|ITALIAN|SOME_LANGUAGE|SPANISH))|TWO_WAY_LINKED_LIST\
++|UNICODE_STRING(|_HANDLER)|UTF8_PARSER)\b/;
++
++eiffel_keywords =
++/* Keywords */
++ /\b(agent|a(ll|lias)|and|as(|sign)|check|class|convert|create|Current|debug\
++|deferred|do|else(|if)|en(d|sure)|ex(panded|port|ternal)|False\
++|feature|fro(m|zen)|if|implies|in(dexing|fix|herit|spect|variant)\
++|is|like|local|loop|not|o(r|bsolete|ld|nce)|prefix|Precursor|pure\
++|re(define|ference|name|quire|scue|try)|Result|separate|then|True\
++|TUPLE|un(define|til)|creation)\b/;
++
++state eiffel extends HighlightEntry
++{
++
++ /* One line comments. */
++ /\-\-/ {
++ comment_face (true);
++ language_print ($0);
++ call (eat_one_line);
++ comment_face (false);
++ }
++
++ /* Keywords. */
++ eiffel_keywords {
++ keyword_face (true);
++ language_print ($0);
++ keyword_face (false);
++ }
++
++ /* Types. */
++ eiffel_types {
++ type_face (true);
++ language_print ($0);
++ type_face (false);
++ }
++
++ /* String constants. */
++ /\"/ {
++ string_face (true);
++ language_print ($0);
++ call (c_string);
++ string_face (false);
++ }
++
++ /* Character constants. */
++ /'.'|'\\\\.'/ {
++ string_face (true);
++ language_print ($0);
++ string_face (false);
++ }
++
++ /* Symbols, etc. */
++ /:=|==|<=|>=|=|!=|\/=|!|!!/ {
++ reference_face (true);
++ language_print ($0);
++ reference_face (false);
++ }
++
++ /* Type declarations */
++ /([ \t])*([a-zA-Z]+[, \ta-zA-Z0-9_]*):[^=]/ {
++ reference_face (true);
++ language_print ($0);
++ reference_face (false);
++ }
++
++
++ /*
++ * Function definitions, with args
++ * fct_name (args...) is
++ */
++ /^([ \t]*[a-zA-Z_][a-zA-Z_0-9]*[ \t]*)(\([ \t]*[ \ta-z,A-Z_0-9]+)(:[ \ta-zA-Z0-9_\[\]]+)?(\)[ \t]*)(:[ \ta-zA-Z0-9_\[\]]+)?([ \t]+is)[ \t]*$/ {
++ function_name_face (true);
++ face_on(face_bold_italic);
++ language_print ($1);
++ face_off(face_bold_italic);
++ function_name_face (false);
++ language_print ($2);
++ type_face (true);
++ language_print ($3);
++ type_face (false);
++ language_print ($4);
++ type_face (true);
++ language_print ($5);
++ type_face (false);
++ keyword_face (true);
++ language_print ($6);
++ keyword_face (false);
++ language_print ($7);
++ }
++
++ /*
++ * Function definitions, without args
++ * fct_name is
++ */
++ /^([ \t]*[a-zA-Z_][a-zA-Z_0-9]*)([ \t]*)(is)[ \t]*$/ {
++ function_name_face (true);
++ face_on(face_bold_italic);
++ language_print ($1);
++ face_off(face_bold_italic);
++ function_name_face (false);
++ language_print(" ");
++ keyword_face (true);
++ language_print ($3);
++ keyword_face (false);
++ }
++
++}
+diff -Nru enscript-1.6.4.orig/states/hl/enscript.st enscript-1.6.4/states/hl/enscript.st
+--- enscript-1.6.4.orig/states/hl/enscript.st 2003-03-05 10:31:31.000000000 +0200
++++ enscript-1.6.4/states/hl/enscript.st 2006-01-09 22:04:22.000000000 +0200
+@@ -474,24 +474,31 @@
+ /\.m$/ matlab;
+ /\.(mpl|mp|maple)$/ maple;
+ /\.(scm|scheme)$/ scheme;
++ /\.e$/ eiffel;
++ /\.erl$/ erlang;
+ /\b\.emacs$|\.el$/ elisp;
+ /\.ad(s|b|a)$/ ada;
+ /\.[Ss]$/ asm;
++ /\.sml$/ sml;
+ /\.st$/ states;
++ /\.lua$/ lua;
+ /(M|m)akefile.*/ makefile;
+ /\.(MOD|DEF|mi|md)$/ modula_2;
++ /\.oz$/ oz;
+ /\.tcl$/ tcl;
+ /\.(v|vh)$/ verilog;
+- /\.html?$/ html;
++ /\.x?html?$/ html;
+ /\bChangeLog$/ changelog;
+ /\.(vhd|vhdl)$/ vhdl;
+ /\.(scr|.syn|.synth)$/ synopsys;
+ /\.idl$/ idl;
+ /\.(hs|lhs|gs|lgs)$/ haskell;
+ /\.(pm|pl)$/ perl;
++ /\.php[34]?$/ php;
+ /\.(eps|EPS|ps|PS)$/ postscript;
+ /\.py$/ python;
+ /\.pyx$/ pyrex;
++ /\.rbw?$/ ruby;
+ /\.js$/ javascript;
+ /\.java$/ java;
+ /\.([Pp][Aa][Ss]|[Pp][Pp]|[Pp])$/ pascal;
+@@ -530,6 +537,10 @@
+ /-\*- [Ii][Dd][Ll] -\*-/ idl;
+ /-\*- [Pp][Ee][Rr][Ll] -\*-/ perl;
+ /^#![ \t]*\/.*\/perl/ perl;
++ /-\*- [Pp][Hh][Pp] -\*-/ php;
++ /^<\?php/ php;
++ /-\*- [Rr][Uu][Bb][Yy] -\*-/ ruby;
++ /^#![ \t]*\/.*\/ruby/ ruby;
+ /^From:/ mail;
+ /^#![ \t]*(\/usr)?\/bin\/[ngmt]?awk/ awk;
+ /^#![ \t]*(\/usr)?\/bin\/sh/ sh;
+diff -Nru enscript-1.6.4.orig/states/hl/erlang.st enscript-1.6.4/states/hl/erlang.st
+--- enscript-1.6.4.orig/states/hl/erlang.st 1970-01-01 02:00:00.000000000 +0200
++++ enscript-1.6.4/states/hl/erlang.st 2006-01-09 22:02:28.000000000 +0200
+@@ -0,0 +1,161 @@
++/**
++ * Name: erlang
++ * Description: Erlang programming language.
++ * Author: Sean Hinde
++ */
++
++
++/* Erlang atom: ([a-z][a-zA-Z0-9_]*|\'[^\n]*\') */
++
++state erlang extends HighlightEntry
++{
++ /* Comments */
++ /%/ {
++ comment_face (true);
++ language_print ($0);
++ call (eat_one_line);
++ comment_face (false);
++ }
++
++ /* String constants. */
++ /\"/ {
++ string_face (true);
++ language_print ($0);
++ call (c_string);
++ string_face (false);
++ }
++
++ /* Special -record(rec_name, {}). pre-processor case */
++ /(-record)(\([ \t]*)([a-z][a-zA-Z0-9_]*|\'[^\n]*\')/ {
++ reference_face (true);
++ language_print ($1);
++ reference_face (false);
++ language_print ($2);
++ type_face (true);
++ language_print ($3);
++ type_face (false);
++ }
++
++ /* Special -define(Alter, "Hello"). pre-processor case */
++ /(-define)(\([
++\t]*)([a-z][a-zA-Z0-9_]*|\'[^\n]*\'|[A-Z_][a-zA-Z0-9_]*)/ {
++ reference_face (true);
++ language_print ($1);
++ reference_face (false);
++ language_print ($2);
++ builtin_face (true);
++ language_print ($3);
++ builtin_face (false);
++ }
++
++ /* Pre-processor lines. */
++ /^-([a-z][a-zA-Z0-9_]*)/ {
++ reference_face (true);
++ language_print ($0);
++ reference_face (false);
++ }
++
++ /* Defines */
++ /(\?)([a-z][a-zA-Z0-9_]*|\'[^\n]*\'|[A-Z_][a-zA-Z0-9_]*)/ {
++ language_print ($1);
++ builtin_face (true);
++ language_print ($2);
++ builtin_face (false);
++ }
++
++ /* Records */
++ /(#)([a-z][a-zA-Z0-9_]*|\'[^\n]*\')/ {
++ language_print ($1);
++ type_face (true);
++ language_print ($2);
++ type_face (false);
++ }
++
++ /* Keywords.
++ '(after begin case try catch end fun if of receive when)
++ Regexp taken from emacs Erlang mode R9C
++ */
++ /\b(a(fter|ndalso)|begin|c(atch|ase)\
++|end|fun|if|o(f|relse)|receive|try|when\
++|query)\b/ {
++ keyword_face (true);
++ language_print ($0);
++ keyword_face (false);
++ }
++
++ /* Guards.
++ Regexp taken from emacs Erlang mode R9C
++ */
++ /\b((is_)*(atom|function|binary|constant|float\
++|integer|list|number|p(id|ort)\
++|re(ference|cord)|tuple))\b/ {
++ builtin_face (true);
++ language_print ($0);
++ builtin_face (false);
++ }
++
++ /* Built in functions */
++
++/\b(a(bs|live|pply|tom_to_list)\
++|binary_to_(list|term)\
++|concat_binary|d(ate|isconnect_node)\
++|e(lement|rase|xit)\
++|float(|_to_list)\
++|g(arbage_collect|et(|_keys)|roup_leader)\
++|h(alt|d)\
++|i(nte(ger_to_list|rnal_bif)|s_alive)\
++|l(ength|i(nk|st_to_(atom|binary|float|integer\
++|pid|tuple)))\
++|make_ref|no(de(|_(link|unlink)|s)|talive)\
++|open_port\
++|p(id_to_list|rocess(_(flag|info)|es)|ut)\
++|r(egister(|ed)|ound)\
++|s(e(lf|telement)|ize\
++|p(awn(|_link)|lit_binary)|tatistics)\
++|t(erm_to_binary|hrow|ime|l\
++|r(ace|unc)|uple_to_list)\
++|un(link|register)|whereis)\b/ {
++ keyword_face (true);
++ language_print ($0);
++ keyword_face (false);
++ }
++
++ /*
++ * Function definitions.
++ */
++ /^([a-z][a-zA-Z0-9_]*|'[^\n]*')/ {
++ function_name_face (true);
++ language_print ($1);
++ function_name_face (false);
++ language_print ($2);
++ }
++
++ /* Atom like strings */
++ /('[^\n]*')/ {
++ string_face (true);
++ language_print ($0);
++ string_face (false);
++ }
++
++ /* Characters */
++ /(\$.)/ {
++ string_face (true);
++ language_print ($0);
++ string_face (false);
++ }
++
++ /* Variable Names */
++ /* /([\{\(\,\[ \t]+)([A-Z_][a-zA-Z0-9_]*)/ { */
++ /([^a-z0-9_\"])([A-Z_][a-zA-Z0-9_]*)/ {
++ language_print ($1);
++ variable_name_face (true);
++ language_print ($2);
++ variable_name_face (false);
++ }
++}
++
++/*
++Local variables:
++mode: erlang
++End:
++*/
+diff -Nru enscript-1.6.4.orig/states/hl/forth.st enscript-1.6.4/states/hl/forth.st
+--- enscript-1.6.4.orig/states/hl/forth.st 1970-01-01 02:00:00.000000000 +0200
++++ enscript-1.6.4/states/hl/forth.st 2006-01-09 22:02:28.000000000 +0200
+@@ -0,0 +1,96 @@
++/**
++ * Name: forth
++ * Description: Forth Programming Language.
++ * Author: Brent Fulgham <[email protected]>
++ */
++
++forth_builtins =
++/* builtins */
++ /\b(abort|bye|c(atch|o(ld|ntext))|d(rop|up)|f(d(rop|up)|nip|o(r(get|th)|ver)|rot\
++|s(eal|wap)|tuck)|include|l(ink|oad)|n(ip|eeds)|o(rder|ver)|pick|ro(ll|t)|swap|t(hrow|uck)\
++|within|2(drop|nip|dup|over|tuck|swap|rot)|3dup|4dup\
++)\b/;
++
++forth_types =
++/* types */
++ /\b(base|c(ell|har)|decimal|float|hex)\b/;
++
++forth_keywords =
++/* keywords */
++ /\b(a(bs|gain|head|lso|nd)|begin|c(ase|onstant)|d(abs|efinitions|m(ax|in)|negate|o(|ne))\
++|e(lse|nd(|case|if|of)|xit)|f(a(bs|cos(|h)|log|sin(|h)|tan(|2|h))|cos(|h)|exp(|m1)|l(n(|p1)\
++|o(g|or)|s(in(|cos|h)|qrt)|tan(|h))|m(ax|in)|negate|or|round|sqrt)|h(ere|old)|i(f|nvert)\
++|l(eave|oop)|m(ax|in|od)|n(e(gate|xt)|ot)|o(f|nly|r)|r(epeat|oot)|s(eal|ign)|then\
++|un(til|loop)|v(ariable|oc(abulary|s))|while|xor\
++)\b/;
++
++state forth extends HighlightEntry
++{
++ /* Comments. */
++ /\\\\/ {
++ comment_face (true);
++ language_print ($0);
++ call (eat_one_line);
++ comment_face (false);
++ }
++
++ /* keywords. */
++ forth_keywords {
++ keyword_face (true);
++ language_print ($0);
++ keyword_face (false);
++ }
++
++ /* Types. */
++ forth_types {
++ type_face (true);
++ language_print ($0);
++ type_face (false);
++ }
++
++ /* Builtins support */
++ forth_builtins {
++ reference_face (true);
++ language_print ($0);
++ reference_face (false);
++ }
++
++ /* String constants. */
++ /\"/ {
++ string_face (true);
++ language_print ($0);
++ call (c_string);
++ string_face (false);
++ }
++
++ /* character constants. */
++ /'.'|'\\\\.'/ {
++ string_face (true);
++ language_print ($0);
++ string_face (false);
++ }
++
++ /* symbols, etc. */
++ />|>=|<=|<>|!|\+|\-|\^|\/|\*|\|/ {
++ reference_face (true);
++ language_print ($0);
++ reference_face (false);
++ }
++
++ /*
++ * function definitions, with args
++ * fct_name (args...) is
++ */
++ /^(:[ \t]+)([^ ^\t]+)([ \t]*)/ {
++ keyword_face (true);
++ language_print ($1);
++ keyword_face (false);
++ function_name_face (true);
++ face_on(face_bold_italic);
++ language_print ($2);
++ face_off(face_bold_italic);
++ function_name_face (false);
++ language_print ($3);
++ }
++}
++
+diff -Nru enscript-1.6.4.orig/states/hl/icon.st enscript-1.6.4/states/hl/icon.st
+--- enscript-1.6.4.orig/states/hl/icon.st 1970-01-01 02:00:00.000000000 +0200
++++ enscript-1.6.4/states/hl/icon.st 2006-01-09 22:02:28.000000000 +0200
+@@ -0,0 +1,93 @@
++/**
++ * Name: icon
++ * Description: Icon Programming Language.
++ * Author: Brent Fulgham <[email protected]>
++ */
++
++icon_builtins =
++/* Builtins */
++ /\b(break|create|default|fail|initial|l(ink|ocal)|not|s(tatic|uspend))\b/;
++
++icon_types =
++/* Types */
++ /\b(char|error|function|integer|proc|procedure|real|variable)\b/;
++
++icon_keywords =
++/* Keywords */
++ /\b(a(bs|cos|ny|rgs|sin|tan)|b(al|y)|c(a(llout|se)|enter|hdir|lose|o(llect|py|s)|set)\
++|d(e(lay|lete|tab|isplay|tor)|o)|e(lse|n(d|tab)|rrorclear|very|xit|xp)|f(ind|lush)\
++|get(|ch|che|env)|i(and|com|f|mage|nsert|or|shift|xor)|k(bhit|ey)|l(eft|ist|o(adfunc|g))\
++|m(a(ny|p|tch)|ember|ove)|n(ame|ext|umeric)|o(f|pen|rd)|p(op|os|ull|ush|ut)\
++|r(e(ad(|s)|move|name|p(eat|l)|turn|verse)|ight|tod|unerr)|s(ave|eek|eq|et|in|ort(|f)\
++|qrt|top|tring|ystem)|t(a(b(|le)|n)|hen|o|rim|ype)|u(ntil|pto)|w(h(ere|ile)|rite(|s))\
++)\b/;
++
++state icon extends HighlightEntry
++{
++ /* Comments. */
++ /#/ {
++ comment_face (true);
++ language_print ($0);
++ call (eat_one_line);
++ comment_face (false);
++ }
++
++ /* Keywords. */
++ icon_keywords {
++ keyword_face (true);
++ language_print ($0);
++ keyword_face (false);
++ }
++
++ /* Types. */
++ icon_types {
++ type_face (true);
++ language_print ($0);
++ type_face (false);
++ }
++
++ /* Structure support */
++ icon_builtins {
++ reference_face (true);
++ language_print ($0);
++ reference_face (false);
++ }
++
++ /* String constants. */
++ /\"/ {
++ string_face (true);
++ language_print ($0);
++ call (c_string);
++ string_face (false);
++ }
++
++ /* Character constants. */
++ /'.'|'\\\\.'/ {
++ string_face (true);
++ language_print ($0);
++ string_face (false);
++ }
++
++ /* Symbols, etc. */
++ />|>=|:=|<=|#|=+|!|::|\+|\-|\^|\/|\*|\|/ {
++ reference_face (true);
++ language_print ($0);
++ reference_face (false);
++ }
++
++ /*
++ * Function definitions, with args
++ * fct_name (args...) is
++ */
++ /([ \t]*procedure[ \t]+)(\w+)([ \t]*)/ {
++ keyword_face (true);
++ language_print ($1);
++ keyword_face (false);
++ function_name_face (true);
++ face_on(face_bold_italic);
++ language_print ($2);
++ face_off(face_bold_italic);
++ function_name_face (false);
++ language_print ($3);
++ }
++}
+diff -Nru enscript-1.6.4.orig/states/hl/lua.st enscript-1.6.4/states/hl/lua.st
+--- enscript-1.6.4.orig/states/hl/lua.st 1970-01-01 02:00:00.000000000 +0200
++++ enscript-1.6.4/states/hl/lua.st 2006-01-09 22:02:28.000000000 +0200
+@@ -0,0 +1,91 @@
++/**
++ * Name: lua
++ * Description: Lua Programming Language template for Enscript.
++ * Author: Brent Fulgham <[email protected]>
++ */
++
++lua_builtins =
++/* Builtins */
++ /\b(assert|call|foreach|globals|print|require|to(number|string))\b/;
++
++lua_keywords =
++/* Keywords */
++ /\b(and|break|do|e(nd|lse(|if))|f(alse|or|unction)|i(f|n)|local\
++|or|n(il|ot)|re(peat|turn)|t(hen|rue)|until|while\
++)\b/;
++
++state lua extends HighlightEntry
++{
++
++ /* One line comments. */
++ /\-\-|^#!/ {
++ comment_face (true);
++ language_print ($0);
++ call (eat_one_line);
++ comment_face (false);
++ }
++
++ /* Keywords. */
++ lua_keywords {
++ keyword_face (true);
++ language_print ($0);
++ keyword_face (false);
++ }
++
++ /* Types. */
++ lua_builtins {
++ type_face (true);
++ language_print ($0);
++ type_face (false);
++ }
++
++ /* String constants. */
++ /\"/ {
++ string_face (true);
++ language_print ($0);
++ call (c_string);
++ string_face (false);
++ }
++
++ /* Character constants. */
++ /'.'|'\\\\.'/ {
++ string_face (true);
++ language_print ($0);
++ string_face (false);
++ }
++
++ /* Symbols, etc. */
++ /+|-|\*|=|!=|==|<|>|<=|>=|~=|!/ {
++ reference_face (true);
++ language_print ($0);
++ reference_face (false);
++ }
++
++ /* Class references */
++ /([ \t])*([a-zA-Z]+[, \ta-zA-Z0-9_]*):[^=]/ {
++ reference_face (true);
++ language_print ($0);
++ reference_face (false);
++ }
++
++ /*
++ * Function definitions, with args
++ * function fct_name (args...)
++ */
++ /^([ \t]*function[ \t]+)([a-zA-Z_][a-zA-Z_:0-9]*)([ \t]*)(\([^)]*\)[ \t]*)[ \t]*$/ {
++ keyword_face (true);
++ language_print ($1);
++ keyword_face (false);
++ function_name_face (true);
++ face_on(face_bold_italic);
++ language_print ($2);
++ face_off(face_bold_italic);
++ function_name_face (false);
++ language_print(" ");
++ language_print ($3);
++ keyword_face (true);
++ language_print ($4);
++ keyword_face (false);
++ }
++
++}
+diff -Nru enscript-1.6.4.orig/states/hl/mail.st enscript-1.6.4/states/hl/mail.st
+--- enscript-1.6.4.orig/states/hl/mail.st 2003-03-05 09:26:33.000000000 +0200
++++ enscript-1.6.4/states/hl/mail.st 2006-01-09 22:02:28.000000000 +0200
+@@ -27,7 +27,7 @@
+ END {
+ comment_face (true);
+ }
+- /:/ {
++ /[ \t:]/ {
+ language_print ($0);
+ return;
+ }
+diff -Nru enscript-1.6.4.orig/states/hl/Makefile.am enscript-1.6.4/states/hl/Makefile.am
+--- enscript-1.6.4.orig/states/hl/Makefile.am 2003-03-05 09:26:33.000000000 +0200
++++ enscript-1.6.4/states/hl/Makefile.am 2006-01-09 22:06:23.000000000 +0200
+@@ -38,7 +38,8 @@
+ matlab.st nroff.st objc.st outline.st pascal.st passthrough.st perl.st \
+ postscript.st python.st pyrex.st rfc.st scheme.st sh.st skill.st \
+ sql.st states.st synopsys.st tcl.st tcsh.st tex.st vba.st verilog.st \
+-vhdl.st vrml.st wmlscript.st zsh.st
++vhdl.st vrml.st wmlscript.st zsh.st eiffel.st erlang.st dylan.st oz.st \
++lua.st oberon2.st icon.st smalltalk.st forth.st sml.st php.st ruby.st
+
+ states = $(misc) $(styles) $(languages) $(highlightings)
+
+diff -Nru enscript-1.6.4.orig/states/hl/Makefile.in enscript-1.6.4/states/hl/Makefile.in
+--- enscript-1.6.4.orig/states/hl/Makefile.in 2003-03-05 09:40:07.000000000 +0200
++++ enscript-1.6.4/states/hl/Makefile.in 2006-01-09 22:05:26.000000000 +0200
+@@ -188,7 +188,8 @@
+ matlab.st nroff.st objc.st outline.st pascal.st passthrough.st perl.st \
+ postscript.st python.st pyrex.st rfc.st scheme.st sh.st skill.st \
+ sql.st states.st synopsys.st tcl.st tcsh.st tex.st vba.st verilog.st \
+-vhdl.st vrml.st wmlscript.st zsh.st
++vhdl.st vrml.st wmlscript.st zsh.st eiffel.st erlang.st dylan.st oz.st \
++lua.st oberon2.st icon.st smalltalk.st forth.st sml.st php.st ruby.st
+
+
+ states = $(misc) $(styles) $(languages) $(highlightings)
+diff -Nru enscript-1.6.4.orig/states/hl/oberon2.st enscript-1.6.4/states/hl/oberon2.st
+--- enscript-1.6.4.orig/states/hl/oberon2.st 1970-01-01 02:00:00.000000000 +0200
++++ enscript-1.6.4/states/hl/oberon2.st 2006-01-09 22:02:28.000000000 +0200
+@@ -0,0 +1,111 @@
++/**
++ * Name: oberon2
++ * Description: Oberon 2 Programming Language.
++ * Author: Brent Fulgham <[email protected]>
++ */
++
++oberon2_builtins =
++/* Builtins */
++ /\b(CONST|IMPORT)\b/;
++
++oberon2_types =
++/* Types */
++ /\b(ARRAY|B(OOLEAN|YTE)|CHAR|INTEGER|LONG(|INT|REAL)|MODULE|NIL\
++|P(OINTER|ROCEDURE)|RE(AL|CORD)|SHORT(|INT))\b/;
++
++oberon2_keywords =
++/* Keywords */
++ /\b(A(BS|ND|SH)|BEGIN|C(A(P|SE)|HR)|D(O|EC|IV)\
++|E(LS(E|IF)|N(D|TIER)|X(CL|IT))|F(ALSE|OR)|HALT|I(F|S|N(|C(|L)))\
++|L(EN|OOP)|M(AX|IN|OD)|NEW|O(F|DD|R(|D))|S(ET|IZE)|T(HEN|O|RUE|YPE)\
++|UNTIL|RE(PEAT|TURN)|VAR|W(HILE|ITH))\b/;
++
++state oberon2_comment extends Highlight
++{
++ /\*\)/ {
++ language_print ($0);
++ return;
++ }
++}
++
++state oberon2 extends HighlightEntry
++{
++ /* Comments. */
++ /\(\*/ {
++ comment_face (true);
++ language_print ($0);
++ call (oberon2_comment);
++ comment_face (false);
++ }
++
++ /* Keywords. */
++ oberon2_keywords {
++ keyword_face (true);
++ language_print ($0);
++ keyword_face (false);
++ }
++
++ /* Types. */
++ oberon2_types {
++ type_face (true);
++ language_print ($0);
++ type_face (false);
++ }
++
++ /* Structure support */
++ oberon2_builtins {
++ reference_face (true);
++ language_print ($0);
++ reference_face (false);
++ }
++
++ /* String constants. */
++ /\"/ {
++ string_face (true);
++ language_print ($0);
++ call (c_string);
++ string_face (false);
++ }
++
++ /* Character constants. */
++ /'.'|'\\\\.'/ {
++ string_face (true);
++ language_print ($0);
++ string_face (false);
++ }
++
++ /* Symbols, etc. */
++ /\->|>|>=|:=|<=|#|=|!|::|\+|\-|\^|\/|\*|\|/ {
++ reference_face (true);
++ language_print ($0);
++ reference_face (false);
++ }
++
++ /*
++ * Function definitions, with args
++ * fct_name (args...) is
++ */
++ /([ \t]*PROCEDURE[ \t]+)(\w+)([ \t]*)/ {
++ keyword_face (true);
++ language_print ($1);
++ keyword_face (false);
++ function_name_face (true);
++ face_on(face_bold_italic);
++ language_print ($2);
++ face_off(face_bold_italic);
++ function_name_face (false);
++ language_print ($3);
++ }
++
++ /([ \t]*END[ \t]+)(\w+)([ \t]*[;\.])/ {
++ keyword_face (true);
++ language_print ($1);
++ keyword_face (false);
++ function_name_face (true);
++ face_on(face_bold_italic);
++ language_print ($2);
++ face_off(face_bold_italic);
++ function_name_face (false);
++ language_print ($3);
++ }
++}
+diff -Nru enscript-1.6.4.orig/states/hl/oz.st enscript-1.6.4/states/hl/oz.st
+--- enscript-1.6.4.orig/states/hl/oz.st 1970-01-01 02:00:00.000000000 +0200
++++ enscript-1.6.4/states/hl/oz.st 2006-01-09 22:02:28.000000000 +0200
+@@ -0,0 +1,89 @@
++/**
++ * Name: oz
++ * Description: Mozart/Oz Programming Language.
++ * Author: Brent Fulgham <[email protected]>
++ */
++
++oz_builtins =
++/* Builtins */
++ /\b(export|import|local|require)\b/;
++
++oz_types =
++/* Types */
++ /\b(attr|c(lass|atch)|f(eat|unctor)|nil|prop|raise|try)\b/;
++
++oz_keywords =
++/* Keywords */
++ /\b(at|c(ase|hoice|ond)|d(e(clare|fine)|o|is)|e(lse(|case|if|of)|nd)\
++|f(inally|or|rom|un)|i(f|n)|lock|meth|not|o(f|r)|p(repare|roc)|then\
++|thread)\b/;
++
++state oz extends HighlightEntry
++{
++
++ /* Comments. */
++ /%/ {
++ comment_face (true);
++ language_print ($0);
++ call (eat_one_line);
++ comment_face (false);
++ }
++
++ /* Keywords. */
++ oz_keywords {
++ keyword_face (true);
++ language_print ($0);
++ keyword_face (false);
++ }
++
++ /* Types. */
++ oz_types {
++ type_face (true);
++ language_print ($0);
++ type_face (false);
++ }
++
++ /* Structure support */
++ oz_builtins {
++ reference_face (true);
++ language_print ($0);
++ reference_face (false);
++ }
++
++ /* String constants. */
++ /\"/ {
++ string_face (true);
++ language_print ($0);
++ call (c_string);
++ string_face (false);
++ }
++
++ /* Character constants. */
++ /'.'|'\\\\.'/ {
++ string_face (true);
++ language_print ($0);
++ string_face (false);
++ }
++
++ /* Symbols, etc. */
++ /\.\.|=[=]|<\-|\\=|\|/ {
++ reference_face (true);
++ language_print ($0);
++ reference_face (false);
++ }
++
++ /*
++ * Function definitions, with args
++ * fct_name (args...) is
++ */
++ /([ \t]*\{)(\w+)([\. \t]*)/ {
++ language_print ($1);
++ function_name_face (true);
++ face_on(face_bold_italic);
++ language_print ($2);
++ face_off(face_bold_italic);
++ function_name_face (false);
++ language_print ($3);
++ }
++
++}
+diff -Nru enscript-1.6.4.orig/states/hl/perl.st enscript-1.6.4/states/hl/perl.st
+--- enscript-1.6.4.orig/states/hl/perl.st 2003-03-05 09:32:09.000000000 +0200
++++ enscript-1.6.4/states/hl/perl.st 2006-01-09 22:02:28.000000000 +0200
+@@ -60,6 +60,11 @@
+
+ state perl extends HighlightEntry
+ {
++ /* stuff after $# is a variable, not a comment */
++ /\$#\w+/ {
++ language_print ($0);
++ }
++
+ /* Comments. */
+ /#.*$/ {
+ comment_face (true);
+@@ -127,7 +132,6 @@
+
+ /* Variables */
+ /[$%@&]+\w+/ {
+- keyword_face (false);
+ language_print ($0);
+ }
+
+diff -Nru enscript-1.6.4.orig/states/hl/smalltalk.st enscript-1.6.4/states/hl/smalltalk.st
+--- enscript-1.6.4.orig/states/hl/smalltalk.st 1970-01-01 02:00:00.000000000 +0200
++++ enscript-1.6.4/states/hl/smalltalk.st 2006-01-09 22:02:28.000000000 +0200
+@@ -0,0 +1,80 @@
++/**
++ * Name: Smalltalk
++ * Description: Smalltalk Programming Language.
++ * Author: Brent Fulgham <[email protected]>
++ */
++
++smalltalk_keywords =
++/* Keywords */
++ /\b(class|false|inspect|isNil|new|nil|not(|Nil)|out|s(elf|uper)|true\
++|do|whileTrue|whileFalse|ifTrue|ifFalse|put|to|at|add|new\
++|for)\b/ ;
++
++state smalltalk_quot_string extends Highlight
++{
++ /\\\\./ {
++ language_print ($0);
++ }
++ /[\']/ {
++ language_print ($0);
++ return;
++ }
++}
++
++state smalltalk extends HighlightEntry
++{
++
++ /* Comments. */
++ /\"/ {
++ comment_face (true);
++ language_print ($0);
++ call (c_string);
++ comment_face (false);
++ }
++
++ /* Keywords. */
++ smalltalk_keywords {
++ keyword_face (true);
++ language_print ($0);
++ keyword_face (false);
++ }
++
++ /* Declarations */
++ /[ \t]*\|.*\|/ {
++ type_face (true);
++ language_print ($0);
++ type_face (false);
++ }
++
++ /* String constants. */
++ /[\']/ {
++ string_face (true);
++ language_print ($0);
++ call (smalltalk_quot_string);
++ string_face (false);
++ }
++
++ /* Symbols, etc. */
++ /:=|>|>=|==|<=|<>|=|!|::|@|\+|\-|\^|\/|\*|\||\[|\]/ {
++ reference_face (true);
++ language_print ($0);
++ reference_face (false);
++ }
++
++ /*
++ * Function definitions, with args
++ * fct_name (args...) is
++ */
++ /([ \t]*)(\w+)(:[ \t]*)/ {
++ keyword_face (true);
++ language_print ($1);
++ keyword_face (false);
++ function_name_face (true);
++ face_on(face_bold);
++ language_print ($2);
++ face_off(face_bold);
++ function_name_face (false);
++ language_print ($3);
++ }
++
++}
+diff -Nru enscript-1.6.4.orig/states/hl/sml.st enscript-1.6.4/states/hl/sml.st
+--- enscript-1.6.4.orig/states/hl/sml.st 1970-01-01 02:00:00.000000000 +0200
++++ enscript-1.6.4/states/hl/sml.st 2006-01-09 22:02:28.000000000 +0200
+@@ -0,0 +1,101 @@
++/**
++ * Name: sml
++ * Description: Standard ML Programming Language.
++ * Author: Brent Fulgham <[email protected]>
++ */
++
++sml_builtins =
++/* Builtins */
++ /\b(functor|lambda|s(ig(|nature)|truct(|ure))|NONE|SOME)\b/;
++
++sml_types =
++/* Types */
++ /\b(\'(a|b|c|d)|array|bool|char|int|list|real|string|unit|vector|word)\b/;
++
++sml_keywords =
++/* Keywords */
++ /\b(a(bs(traction|type)|nd(|also)|s|toi)|before|c(ase|oncat)|d(o|atatype)\
++|e(lse|nd|qtype|xception)|f(n|un(|sig))|handle|i(f|n(|clude|fix|fixr))\
++|l(et|ocal)|nonfix|o(|f|p(|en)|relse|verload)|print|r(aise|ec|ef)|sharing\
++|t(hen|ype)|val|w(h(ere|ile)|ith(|type)))\b/ ;
++
++state sml_comment extends Highlight
++{
++ /\*\)/ {
++ language_print ($0);
++ return;
++ }
++}
++
++state sml extends HighlightEntry
++{
++
++ /* Comments. */
++ /\(\*/ {
++ comment_face (true);
++ language_print ($0);
++ call (sml_comment);
++ comment_face (false);
++ }
++
++ /* Keywords. */
++ sml_keywords {
++ keyword_face (true);
++ language_print ($0);
++ keyword_face (false);
++ }
++
++ /* Types. */
++ sml_types {
++ type_face (true);
++ language_print ($0);
++ type_face (false);
++ }
++
++ /* Structure support */
++ sml_builtins {
++ reference_face (true);
++ language_print ($0);
++ reference_face (false);
++ }
++
++ /* String constants. */
++ /\"/ {
++ string_face (true);
++ language_print ($0);
++ call (c_string);
++ string_face (false);
++ }
++
++ /* Character constants. */
++ /'.'|'\\\\.'/ {
++ string_face (true);
++ language_print ($0);
++ string_face (false);
++ }
++
++ /* Symbols, etc. */
++ /:=|>|>=|==|<=|<>|=|!|::|@|\+|\-|\^|\/|\*|\||\b(quot|rem|div|mod\
++|hd|tl)\b/ {
++ reference_face (true);
++ language_print ($0);
++ reference_face (false);
++ }
++
++ /*
++ * Function definitions, with args
++ * fct_name (args...) is
++ */
++ /([ \t]*f[u]n[ \t]+)(\w+)([ \t]*)/ {
++ keyword_face (true);
++ language_print ($1);
++ keyword_face (false);
++ function_name_face (true);
++ face_on(face_bold_italic);
++ language_print ($2);
++ face_off(face_bold_italic);
++ function_name_face (false);
++ language_print ($3);
++ }
++
++}
+diff -Nru enscript-1.6.4.orig/states/hl/tcl.st enscript-1.6.4/states/hl/tcl.st
+--- enscript-1.6.4.orig/states/hl/tcl.st 2003-03-05 09:26:33.000000000 +0200
++++ enscript-1.6.4/states/hl/tcl.st 2006-01-09 22:02:28.000000000 +0200
+@@ -128,7 +128,7 @@
+ |e(ntry|of|rror|v(al|ent)|x(ec|it|pr))\
+ |f(blocked|configure|ile(|event|name)|lush|o(cus|nt|r(|each|mat))|rame)\
+ |g(ets|lob(|al)|r(ab|id))|history|i(f|mage|n(cr|fo|terp))|join\
+-|l(a(bel|ppend)|i(brary|n(dex|sert)|st(|box))|length|o(ad|se|wer)\
++|l(a(bel|ppend|st)|i(brary|n(dex|sert)|st(|box))|length|o(ad|se|wer)\
+ |r(ange|eplace)|s(earch|ort))\
+ |me(nu(|button)|ssage)|op(en|tion(|s))\
+ |p(ack(|age)|hoto|id|kg_mkIndex|lace|roc|uts|wd)\
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/enscript/patches/enscript-1.6.4-rh457719.patch Wed Jan 23 12:17:32 2013 -0800
@@ -0,0 +1,12 @@
+diff -up enscript-1.6.4/src/main.c.rh457719 enscript-1.6.4/src/main.c
+--- enscript-1.6.4/src/main.c.rh457719 2008-08-08 11:23:27.000000000 +0200
++++ enscript-1.6.4/src/main.c 2008-08-08 11:23:36.000000000 +0200
+@@ -2001,7 +2001,7 @@ handle_options (int argc, char *argv[])
+ int i;
+
+ c = getopt_long (argc, argv,
+- "#:123456789a:A:b:BcC::d:D:e::E::f:F:gGhH::i:I:jJ:kKlL:mM:n:N:o:Op:P:qrRs:S:t:T:u::U:vVW:X:zZ",
++ "#:123456789a:A:b:BcC::d:D:e::E::f:F:gGhH::i:I:jJ:kKlL:mM:n:N:o:Op:P:qrRs:S:t:T:u::U:vVw:W:X:zZ",
+ long_options, &option_index);
+
+ if (c == -1)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/enscript/patches/enscript-1.6.4-rh457720.patch Wed Jan 23 12:17:32 2013 -0800
@@ -0,0 +1,12 @@
+diff -up enscript-1.6.4/src/mkafmmap.c.rh457720 enscript-1.6.4/src/mkafmmap.c
+--- enscript-1.6.4/src/mkafmmap.c.rh457720 2008-08-08 11:33:47.000000000 +0200
++++ enscript-1.6.4/src/mkafmmap.c 2008-08-08 11:33:58.000000000 +0200
+@@ -139,7 +139,7 @@ main (int argc, char *argv[])
+ int option_index = 0;
+ int c;
+
+- c = getopt_long (argc, argv, "p:h", long_options, &option_index);
++ c = getopt_long (argc, argv, "p:hV", long_options, &option_index);
+ if (c == -1)
+ break;
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/enscript/patches/enscript-CVE-2008-3863+CVE-2008-4306.patch Wed Jan 23 12:17:32 2013 -0800
@@ -0,0 +1,90 @@
+--- enscript-1.6.4/src/psgen.c
++++ enscript-1.6.4/src/psgen.c 2008-10-29 10:43:08.512598143 +0100
+@@ -24,6 +24,7 @@
+ * Boston, MA 02111-1307, USA.
+ */
+
++#include <limits.h>
+ #include "gsint.h"
+
+ /*
+@@ -124,7 +125,7 @@ struct gs_token_st
+ double xscale;
+ double yscale;
+ int llx, lly, urx, ury; /* Bounding box. */
+- char filename[512];
++ char filename[PATH_MAX];
+ char *skipbuf;
+ unsigned int skipbuf_len;
+ unsigned int skipbuf_pos;
+@@ -135,11 +136,11 @@ struct gs_token_st
+ Color bgcolor;
+ struct
+ {
+- char name[512];
++ char name[PATH_MAX];
+ FontPoint size;
+ InputEncoding encoding;
+ } font;
+- char filename[512];
++ char filename[PATH_MAX];
+ } u;
+ };
+
+@@ -248,7 +249,7 @@ static int do_print = 1;
+ static int user_fontp = 0;
+
+ /* The user ^@font{}-defined font. */
+-static char user_font_name[256];
++static char user_font_name[PATH_MAX];
+ static FontPoint user_font_pt;
+ static InputEncoding user_font_encoding;
+
+@@ -978,7 +979,8 @@ large for page\n"),
+ FATAL ((stderr,
+ _("user font encoding can be only the system's default or `ps'")));
+
+- strcpy (user_font_name, token.u.font.name);
++ memset (user_font_name, 0, sizeof(user_font_name));
++ strncpy (user_font_name, token.u.font.name, sizeof(user_font_name) - 1);
+ user_font_pt.w = token.u.font.size.w;
+ user_font_pt.h = token.u.font.size.h;
+ user_font_encoding = token.u.font.encoding;
+@@ -1444,7 +1446,7 @@ read_special_escape (InputStream *is, To
+ buf[i] = ch;
+ if (i + 1 >= sizeof (buf))
+ FATAL ((stderr, _("too long argument for %s escape:\n%.*s"),
+- escapes[i].name, i, buf));
++ escapes[e].name, i, buf));
+ }
+ buf[i] = '\0';
+
+@@ -1452,7 +1454,8 @@ read_special_escape (InputStream *is, To
+ switch (escapes[e].escape)
+ {
+ case ESC_FONT:
+- strcpy (token->u.font.name, buf);
++ memset (token->u.font.name, 0, sizeof(token->u.font.name));
++ strncpy (token->u.font.name, buf, sizeof(token->u.font.name) - 1);
+
+ /* Check for the default font. */
+ if (strcmp (token->u.font.name, "default") == 0)
+@@ -1465,7 +1468,8 @@ read_special_escape (InputStream *is, To
+ FATAL ((stderr, _("malformed font spec for ^@font escape: %s"),
+ token->u.font.name));
+
+- strcpy (token->u.font.name, cp);
++ memset (token->u.font.name, 0, sizeof(token->u.font.name));
++ strncpy (token->u.font.name, cp, sizeof(token->u.font.name) - 1);
+ xfree (cp);
+ }
+ token->type = tFONT;
+@@ -1544,7 +1548,8 @@ read_special_escape (InputStream *is, To
+ break;
+
+ case ESC_SETFILENAME:
+- strcpy (token->u.filename, buf);
++ memset (token->u.filename, 0, sizeof(token->u.font.name));
++ strncpy (token->u.filename, buf, sizeof(token->u.filename) - 1);
+ token->type = tSETFILENAME;
+ break;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/enscript/patches/enscript-doublefree.patch Wed Jan 23 12:17:32 2013 -0800
@@ -0,0 +1,15 @@
+diff -up enscript-1.6.4/src/main.c.doublefree enscript-1.6.4/src/main.c
+--- enscript-1.6.4/src/main.c.doublefree 2008-08-08 11:10:07.000000000 +0200
++++ enscript-1.6.4/src/main.c 2008-08-08 11:11:51.000000000 +0200
+@@ -1714,8 +1714,9 @@ name width\theight\tllx\tlly
+ is_close (&is);
+ }
+
+- /* Clean up toc file. */
+- fclose (toc_fp);
++ else
++ /* Clean up toc file. */
++ fclose (toc_fp);
+ }
+
+ /* Give trailer a chance to dump itself. */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/enscript/patches/enscript-solaris-build.patch Wed Jan 23 12:17:32 2013 -0800
@@ -0,0 +1,16 @@
+diff -urN enscript-1.6.4/configure.in enscript-1.6.4.new/configure.in
+--- enscript-1.6.4/configure.in 2003-03-05 07:26:16.000000000 +0000
++++ enscript-1.6.4.new/configure.in 2011-01-28 13:53:00.246166007 +0000
+@@ -25,9 +25,9 @@
+ fi
+ )
+
+-if test "X$CC" = "X"; then
++#if test "X$CC" = "X"; then
+ AC_PROG_CC
+-fi
++#fi
+
+ AC_ISC_POSIX
+ AM_C_PROTOTYPES
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/enscript/patches/enscript-wrap_header.patch Wed Jan 23 12:17:32 2013 -0800
@@ -0,0 +1,121 @@
+--- enscript-1.6.1/lib/simple.hdr.wrap_header 1997-03-03 09:00:08.000000000 +0100
++++ enscript-1.6.1/lib/simple.hdr 2007-02-12 12:57:02.000000000 +0100
+@@ -1,50 +1,68 @@
+-%
+-% Default simple header.
+-% Copyright (c) 1995 Markku Rossi.
+-% Author: Markku Rossi <[email protected]>
+-%
+-
+-%
+-% This file is part of GNU enscript.
+-%
+-% 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.
+-%
+-
+-% -- code follows this line --
+-%Format: fmodstr $D{%a %b %d %H:%M:%S %Y}
+-%Format: pagenumstr $V$%
+-
+-/do_header { % print default simple header
+- gsave
+- d_header_x d_header_y HFpt_h 3 div add translate
+-
+- HF setfont
+- user_header_p {
+- 5 0 moveto user_header_left_str show
+-
+- d_header_w user_header_center_str stringwidth pop sub 2 div
+- 0 moveto user_header_center_str show
+-
+- d_header_w user_header_right_str stringwidth pop sub 5 sub
+- 0 moveto user_header_right_str show
+- } {
+- 5 0 moveto fname show
+- 45 0 rmoveto fmodstr show
+- 45 0 rmoveto pagenumstr show
+- } ifelse
+-
+- grestore
+-} def
++%
++% Default simple header.
++% Copyright (c) 1995 Markku Rossi.
++% Author: Markku Rossi <[email protected]>
++%
++% Modified: Chris Josefy, USA, MAY 2006
++% + Added line wrapping to header to work more like AIX enscript
++% + This assumes that one does not change the header font size from the default
++% + This also assumes that the line only wraps once
++
++%
++% This file is part of GNU enscript.
++%
++% 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.
++%
++
++% -- code follows this line --
++%Format: fmodstr $D{%a %b %d %H:%M:%S %Y}
++%Format: pagenumstr $V$%
++%HeaderHeight: 44
++
++/do_header { % print default simple header
++ gsave
++ d_header_x d_header_y HFpt_h 3 div add translate
++
++ HF setfont
++ user_header_p {
++ 5 0 moveto user_header_left_str show
++
++ d_header_w user_header_center_str stringwidth pop sub 2 div
++ 0 moveto user_header_center_str show
++
++ d_header_w user_header_right_str stringwidth pop sub 5 sub
++ 0 moveto user_header_right_str show
++ } {
++ fname length fmodstr length add pagenumstr length add 95 6 idiv add d_header_w 6 idiv le{
++ 5 0 moveto fname show
++ 45 0 rmoveto fmodstr show
++ 45 0 rmoveto pagenumstr show
++ } {
++ 5 0 moveto fmodstr show
++ 45 0 rmoveto pagenumstr show
++ fname length d_header_w 6 idiv idiv 1 add 10 mul 5 exch moveto
++ 1 1 fname length d_header_w 6 idiv idiv
++ {
++ dup fname exch 1 sub d_header_w 6 idiv mul d_header_w 6 idiv getinterval show
++ 5 exch 10 mul fname length d_header_w 6 idiv idiv 1 add 10 mul exch sub moveto
++ } for
++ 5 10 moveto
++ fname fname length d_header_w 6 idiv idiv d_header_w 6 idiv mul dup fname length exch sub getinterval show
++ }ifelse
++ }ifelse
++
++ grestore
++} def