summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwlemb <wlemb>2002-05-02 22:33:15 +0000
committerwlemb <wlemb>2002-05-02 22:33:15 +0000
commit93674538fa979932dba9dec721ef5051664b0952 (patch)
treeb416e6e09858fbaccf2daa75513302a1e4baacfb
parent7e109e6f5ae86f00b127ffb101abe0ca0a5d18ae (diff)
downloadgroff-93674538fa979932dba9dec721ef5051664b0952.tar.gz
* doc/fdl.texi: New file.
* doc/groff.texinfo: Include it. Define and use @copying. Starting with separating glyph, symbol, and character. * Makefile.in (EXEEXT): Set it. * src/*/Makefile.sub (PROG): Add $(EXEEXT) for all non-script programs. * src/include/nonposix.h: Define GS_NAME. * src/preproc/html/pre-html.cc (createAllPages): Use GS_NAME. Some preliminary changes for EMX support under OS/2. * src/preproc/pic/main.cc (main), src/roff/groff/pipeline.c: Add __EMX__ similar to __MSDOS__. * src/utils/indxbib/indxbib.cc (main) [__EMX__]: Use `unlink'.
-rw-r--r--ChangeLog22
-rw-r--r--Makefile.in1
-rw-r--r--doc/groff.texinfo1031
-rw-r--r--src/devices/grodvi/Makefile.sub2
-rw-r--r--src/devices/grohtml/Makefile.sub2
-rw-r--r--src/devices/grolbp/Makefile.sub2
-rw-r--r--src/devices/grolj4/Makefile.sub2
-rw-r--r--src/devices/grops/Makefile.sub2
-rw-r--r--src/devices/grotty/Makefile.sub2
-rw-r--r--src/include/nonposix.h3
-rw-r--r--src/preproc/eqn/Makefile.sub2
-rw-r--r--src/preproc/grn/Makefile.sub2
-rw-r--r--src/preproc/html/Makefile.sub2
-rw-r--r--src/preproc/html/pre-html.cc3
-rw-r--r--src/preproc/pic/Makefile.sub2
-rw-r--r--src/preproc/pic/main.cc8
-rw-r--r--src/preproc/refer/Makefile.sub2
-rw-r--r--src/preproc/soelim/Makefile.sub2
-rw-r--r--src/preproc/tbl/Makefile.sub2
-rw-r--r--src/roff/groff/Makefile.sub2
-rw-r--r--src/roff/groff/pipeline.c3
-rw-r--r--src/roff/troff/Makefile.sub2
-rw-r--r--src/utils/addftinfo/Makefile.sub2
-rw-r--r--src/utils/hpftodit/Makefile.sub2
-rw-r--r--src/utils/indxbib/Makefile.sub2
-rw-r--r--src/utils/indxbib/indxbib.cc5
-rw-r--r--src/utils/lkbib/Makefile.sub2
-rw-r--r--src/utils/lookbib/Makefile.sub2
-rw-r--r--src/utils/pfbtops/Makefile.sub2
-rw-r--r--src/utils/tfmtodit/Makefile.sub2
30 files changed, 405 insertions, 715 deletions
diff --git a/ChangeLog b/ChangeLog
index 60e86848..49aa344e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,25 @@
+2002-05-02 Werner LEMBERG <wl@gnu.org>
+
+ * doc/fdl.texi: New file.
+ * doc/groff.texinfo: Include it.
+ Define and use @copying.
+ Starting with separating glyph, symbol, and character.
+
+2002-04-27 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.in (EXEEXT): Set it.
+ * src/*/Makefile.sub (PROG): Add $(EXEEXT) for all non-script
+ programs.
+
+ * src/include/nonposix.h: Define GS_NAME.
+ * src/preproc/html/pre-html.cc (createAllPages): Use GS_NAME.
+
+ Some preliminary changes for EMX support under OS/2.
+
+ * src/preproc/pic/main.cc (main), src/roff/groff/pipeline.c: Add
+ __EMX__ similar to __MSDOS__.
+ * src/utils/indxbib/indxbib.cc (main) [__EMX__]: Use `unlink'.
+
2002-04-25 Werner LEMBERG <wl@gnu.org>
* doc/groff.texinfo: Integrated groff_out.man.
diff --git a/Makefile.in b/Makefile.in
index bc61f828..7192bbec 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -260,6 +260,7 @@ LDFLAGS=@LDFLAGS@
YACC=@YACC@
YACCFLAGS=-v
+EXEEXT=@EXEEXT@
LIBS=@LIBS@
LIBM=@LIBM@
RANLIB=@RANLIB@
diff --git a/doc/groff.texinfo b/doc/groff.texinfo
index 82af75b4..26f5b310 100644
--- a/doc/groff.texinfo
+++ b/doc/groff.texinfo
@@ -15,6 +15,32 @@
@c %**end of header (This is for running Texinfo on a region.)
+@smallbook
+
+@finalout
+
+
+@copying
+This manual documents GNU @code{troff} version 1.18.
+
+Copyright @copyright{} 1994-2000, 2001, 2002 Free Software Foundation, Inc.
+
+@quotation
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover texts being `A GNU Manual,''
+and with the Back-Cover Texts as in (a) below. A copy of the
+license is included in the section entitled `GNU Free Documentation
+License.''
+
+(a) The FSF's Back-Cover Text is: `You have freedom to copy and modify
+this GNU Manual, like GNU software. Copies published by the Free
+Software Foundation raise funds for GNU development.''
+@end quotation
+@end copying
+
+
@c We use the following indices:
@c
@c cindex: concepts
@@ -341,122 +367,35 @@
@dircategory Miscellaneous
@direntry
-* Groff: (groff). The GNU troff document formatting system.
+* Groff: (groff)The GNU troff document formatting system.
@end direntry
-@smallbook
-
-
-@iftex
-@finalout
-@end iftex
-
-
-@ifinfo
-This Info file documents GNU troff version 1.18.
-
-Published by the Free Software Foundation
-59 Temple Place, Suite 330
-Boston, MA 02111-1307 USA
-
-Copyright (C) 1994-2000, 2001, 2002 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of this
-manual provided the copyright notice and this permission notice are
-preserved on all copies.
-
-@ignore
-Permission is granted to process this file through TeX and print the
-results, provided the printed document carries copying permission notice
-identical to this one except for the removal of this paragraph (this
-paragraph not being relevant to the printed manual).
-
-@end ignore
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the
-entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation
-approved by the Foundation.
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that the
-section entitled ``GNU General Public License'' is included exactly as
-in the original, and provided that the entire resulting derived work is
-distributed under the terms of a permission notice identical to this
-one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that the section entitled ``GNU General Public License'' may be
-included in a translation approved by the Free Software Foundation
-instead of in the original English.
-@end ifinfo
-
-
@titlepage
@title groff
@subtitle The GNU implementation of @code{troff}
@subtitle Edition 1.18
@subtitle Spring 2002
@author by Trent A.@w{ }Fisher
-@author and Werner Lemberg
-
-@c Include the Distribution inside the titlepage environment so
-@c that headings are turned off. Headings on and off do not work.
+@author and Werner Lemberg (@email{bug-groff@@gnu.org})
@page
@vskip 0pt plus 1filll
-Copyright @copyright@w{ }1994-2000, 2001, 2002 Free Software
-Foundation,@w{ }Inc.
-@sp 2
-Version 1.18 of @code{groff}, @*
-Spring 2002
-@sp 2
-Published by the Free Software Foundation @*
-59 Temple Place, Suite 330 @*
-Boston, MA 02111-1307 USA
-
-
-Permission is granted to make and distribute verbatim copies of this
-manual provided the copyright notice and this permission notice are
-preserved on all copies.
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that the
-section entitled ``GNU General Public License'' is included exactly as
-in the original, and provided that the entire resulting derived work is
-distributed under the terms of a permission notice identical to this
-one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that the section entitled ``GNU General Public License'' may be
-included in a translation approved by the Free Software Foundation
-instead of in the original English.
-
-Cover art by Etienne Suvasa.
+@insertcopying
@end titlepage
-@page
+@contents
-@node Top, Copying, (dir), (dir)
@ifinfo
-This Info file documents groff version 1.18, the GNU implementation of
-the troff typesetting system.
+@node Top, Introduction, (dir), (dir)
+@top GNU troff
-This is an in-progress document; contributions, comments, or
-contributions are welcome. Send them to bug-groff@@gnu.org.
+@insertcopying
@end ifinfo
@menu
-* Copying::
* Introduction::
* Invoking groff::
* Tutorial for Macro Users::
@@ -466,6 +405,7 @@ contributions are welcome. Send them to bug-groff@@gnu.org.
* Output Devices::
* File formats::
* Installation::
+* Copying This Manual::
* Request Index::
* Escape Index::
* Operator Index::
@@ -480,406 +420,10 @@ contributions are welcome. Send them to bug-groff@@gnu.org.
-@node Copying, Introduction, Top, Top
-@cindex copying
-@unnumbered GNU GENERAL PUBLIC LICENSE
-@center Version 2, June 1991
-
-@display
-Copyright @copyright{}@w{ }1989, 1991 Free Software Foundation, Inc.
-59@w{ }Temple Place, Suite@w{ }330, Boston, MA@w{ }02111, USA
-
-Everyone is permitted to copy and distribute verbatim copies of this
-license document, but changing it is not allowed.
-@end display
-
-@unnumberedsec 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)@w{ }copyright the software,
-and (2)@w{ }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.
-
-@iftex
-@unnumberedsec TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-@end iftex
-@ifinfo
-@center TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-@end ifinfo
-
-@enumerate 0
-@item
-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.
-
-@item
-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.
-
-@item
-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@w{ }1 above, provided
-that you also meet all of these conditions:
-
-@enumerate a
-@item
-You must cause the modified files to carry prominent notices stating
-that you changed the files and the date of any change.
-
-@item
-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.
-
-@item
-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.)
-@end enumerate
-
-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.
-
-@item
-You may copy and distribute the Program (or a work based on it, under
-Section@w{ }2) in object code or executable form under the terms of
-Sections@w{ }1 and@w{ }2 above provided that you also do one of the
-following:
-
-@enumerate a
-@item
-Accompany it with the complete corresponding machine-readable source
-code, which must be distributed under the terms of Sections@w{ }1 and@w{
-}2 above on a medium customarily used for software interchange; or,
-
-@item
-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@w{ }1 and@w{ }2 above on a medium customarily used for software
-interchange; or,
-
-@item
-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@w{ }b above.)
-@end enumerate
-
-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.
-
-@item
-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.
-
-@item
-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.
-
-@item
-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.
-
-@item
-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.
-
-@item
-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.
-
-@item
-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.
-
-@item
-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.
-
-@iftex
-@heading NO WARRANTY
-@end iftex
-@ifinfo
-@center NO WARRANTY
-@end ifinfo
-
-@item
-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.
-
-@item
-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 enumerate
-
-@iftex
-@heading END OF TERMS AND CONDITIONS
-@end iftex
-@ifinfo
-@center END OF TERMS AND CONDITIONS
-@end ifinfo
-
-
-@page
-@unnumberedsec 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.
-
-@smallexample
-@var{one line to give the program's name and an idea of what it does.}
-Copyright (C) 19@var{yy} @var{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, USA.
-@end smallexample
-
-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:
-
-@smallexample
-Gnomovision version 69, Copyright (C) 19@var{yy} @var{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.
-@end smallexample
-
-The hypothetical commands @samp{show@w{ }w} and @samp{show@w{ }c} should
-show the appropriate parts of the General Public License. Of course,
-the commands you use may be called something other than @samp{show@w{
-}w} and @samp{show@w{ }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:
-
-@smallexample
-@group
-Yoyodyne, Inc., hereby disclaims all copyright interest
-in the program `Gnomovision' (which makes passes at compilers)
-written by James Hacker.
-
-@var{signature of Ty Coon}, 1 April 1989
-Ty Coon, President of Vice
-@end group
-@end smallexample
-
-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.
-
-
-
@c =====================================================================
@c =====================================================================
-@node Introduction, Invoking groff, Copying, Top
+@node Introduction, Invoking groff, Top, Top
@chapter Introduction
@cindex introduction
@@ -2079,7 +1623,7 @@ A variation of this is a bulleted list.
@Example
. Bulleted lists start with a bullet. It is possible
- to use other characters instead of the bullet.
+ to use other glyphs instead of the bullet.
@endExample
@@ -3223,7 +2767,7 @@ Prints all text following in the normal point size
The @code{.IP} macro handles duties for all lists.
@Defmac {IP, [@Var{marker} [@Var{width}]], ms}
-The @var{marker} is usually a bullet character (@code{\[bu]})
+The @var{marker} is usually a bullet glyph (@code{\[bu]})
for unordered lists, a number (or auto-incrementing number
register) for numbered lists, or a word or phrase for indented
(glossary-style) lists.
@@ -3661,8 +3205,8 @@ Specifies the location of a numbered footnote marker in the text.
Specifies the text of the footnote.
The default action is to create a numbered footnote;
you can create a symbolic footnote by specifying
-a @dfn{mark} character
-(such as @code{\[dg]} for the dagger character)
+a @dfn{mark} glyph
+(such as @code{\[dg]} for the dagger glyph)
in the body text and as an argument to the @code{FS} macro,
followed by the text of the footnote
and the @code{FE} macro.
@@ -3917,7 +3461,8 @@ Prints the full name of the month in dates.
The default is @samp{January}, @samp{February}, etc.
@endDefstr
-The following special characters are available:
+The following special characters are available@footnote{For an
+explanation what special characters are see @ref{Special Characters}.}:
@Defstr {-, ms}
Prints an em dash.
@@ -4321,9 +3866,9 @@ in @ref{Input Conventions}.)
@cindex @code{)}, at end of sentence
@cindex @code{]}, at end of sentence
@cindex @code{*}, at end of sentence
-In addition, the following characters or glyphs are treated
+In addition, the following characters and symbols are treated
transparently while handling end-of-sentence characters: @samp{"},
-@samp{'}, @samp{)}, @samp{]}, @samp{*}, @code{dg}, and @code{rq}.
+@samp{'}, @samp{)}, @samp{]}, @samp{*}, @code{\[dg]}, and @code{\[rq]}.
See the @code{cflags} request in @ref{Using Symbols}, for more details.
@@ -6470,17 +6015,18 @@ The current hyphenation space is available in the @code{.hys} read-only
number register.
@endDefreq
-@Defreq {shc, [@Var{char}]}
+@Defreq {shc, [@Var{glyph}]}
@cindex soft hyphen character, setting (@code{shc})
@cindex character, soft hyphen, setting (@code{shc})
@cindex glyph, soft hyphen (@code{hy})
@cindex soft hyphen glyph (@code{hy})
@cindex @code{char} request, and soft hyphen character
@cindex @code{tr} request, and soft hyphen character
-Set the soft hyphen character to @var{char}. If the argument is
-omitted, the soft hyphen character is set to the default character
-@code{\(hy} (this is the start-up value of @code{gtroff} also). The
-soft hyphen character is the character that is inserted when a word is
+Set the @dfn{soft hyphen character} to @var{glyph}.@footnote{@dfn{Soft
+hyphen character} is a misnomer since it is an output glyph.} If the
+argument is omitted, the soft hyphen character is set to the default
+glyph @code{\(hy} (this is the start-up value of @code{gtroff} also).
+The soft hyphen character is the glyph that is inserted when a word is
hyphenated at a line break. If the soft hyphen character does not
exist in the font of the character immediately preceding a potential
break point, then the line is not broken at that point. Neither
@@ -6792,14 +6338,17 @@ The @code{troff} version of the Plan@w{ }9 operating system uses
register @code{.S} for the same purpose.
@endDefreq
-@Defreq {tc, [@Var{fill-char}]}
+@Defreq {tc, [@Var{fill-glyph}]}
@cindex tab repetition character (@code{tc})
@cindex character, tab repetition (@code{tc})
+@cindex glyph, tab repetition (@code{tc})
Normally @code{gtroff} fills the space to the next tab stop with
whitespace. This can be changed with the @code{tc} request. With no
argument @code{gtroff} reverts to using whitespace, which is the
-default. The value of this @dfn{tab repetition} character is
-associated with the current environment (@pxref{Environments}).
+default. The value of this @dfn{tab repetition character} is
+associated with the current environment
+(@pxref{Environments}).@footnote{@dfn{Tab repetition character} is a
+misnomer since it is an output glyph.}
@endDefreq
@DefreqList {linetabs, n}
@@ -6855,7 +6404,7 @@ mode, and 0 in normal mode.
@cindex leaders
Sometimes it may may be desirable to use the @code{tc} request to fill a
-particular tab stop with a given character (for example dots in a table
+particular tab stop with a given glyph (for example dots in a table
of contents), but also normal tab stops on the rest of the line. For
this @code{gtroff} provides an alternate tab mechanism, called
@dfn{leaders} which does just that.
@@ -6863,7 +6412,7 @@ this @code{gtroff} provides an alternate tab mechanism, called
@cindex leader character
A leader character (character code@w{ }1) behaves similarly to a tab
character: It moves to the next tab stop. The only difference is that
-for this movement, the fill character defaults to a period character and
+for this movement, the fill glyph defaults to a period character and
not to space.
@Defesc {\\a, , , }
@@ -6874,14 +6423,16 @@ This escape is a non-interpreted leader character. In copy mode
character.
@endDefesc
-@Defreq {lc, [@Var{fill-char}]}
+@Defreq {lc, [@Var{fill-glyph}]}
@cindex leader repetition character (@code{lc})
@cindex character, leader repetition (@code{lc})
-Declare the leader character. Without an argument, leaders act the
-same as tabs (i.e., using whitespace for filling). @code{gtroff}'s
-start-up value is @samp{.}. The value of this @dfn{leader repetition}
-character is associated with the current environment
-(@pxref{Environments}).
+@cindex glyph, leader repetition (@code{lc})
+Declare the @dfn{leader repetition character}.@footnote{@dfn{Leader
+repetition character} is a misnomer since it is an output glyph.}
+Without an argument, leaders act the same as tabs (i.e., using
+whitespace for filling). @code{gtroff}'s start-up value is a dot
+(@samp{.}). The value of the leader repetition character is
+associated with the current environment (@pxref{Environments}).
@endDefreq
@cindex table of contents
@@ -6933,8 +6484,8 @@ Define a delimiting and a padding character for fields. If the latter
is missing, the padding character defaults to a space character. If
there is no argument at all, the field mechanism is disabled (which is
the default). Note that contrary to e.g.@: the tab repetition
-character, delimiting and padding characters are not associated to the
-current environment (@pxref{Environments}).
+character, delimiting and padding characters are @emph{not} associated
+to the current environment (@pxref{Environments}).
Example:
@@ -7128,17 +6679,16 @@ is swallowed while exexuting macro @code{foo}.
@endDefesc
A @dfn{translation} is a mapping of an input character to an output
-character. The default mappings are given in the font definition files
-for the specific output device (@pxref{Font Files}); all mappings (both
-with @code{tr} and in the font definition files) occur at output time,
-i.e., the input character gets assigned the metric information of the
-mapped output character.
+glyph. The mapping occurs at output time, i.e., the input character
+gets assigned the metric information of the mapped output character
+right before input tokens are converted to nodes (@pxref{Gtroff
+Internals}, for more on this process).
@DefreqList {tr, @Var{a}@Var{b}@Var{c}@Var{d}@dots{}}
@DefreqListEnd {trin, @Var{a}@Var{b}@Var{c}@Var{d}@dots{}}
-Translate character @var{a} to@w{ }@var{b}, character @var{c} to@w{
-}@var{d}, etc. If there is an odd number of arguments, the last one is
-translated to the space character.
+Translate character @var{a} to glyph@w{ }@var{b}, character @var{c} to
+glyph@w{ }@var{d}, etc. If there is an odd number of arguments, the
+last one is translated to an unstretchable space (@samp{\ }).
The @code{trin} request is identical to @code{tr},
but when you unformat a diversion with @code{asciify}
@@ -7160,11 +6710,11 @@ Some notes:
@cindex @code{char} request, and translations
@cindex special characters
@cindex character, special
-@cindex numbered character (@code{\N})
-@cindex character, numbered (@code{\N})
+@cindex numbered glyph (@code{\N})
+@cindex glyph, numbered (@code{\N})
Special characters (@code{\(@var{xx}}, @code{\[@var{xxx}]},
@code{\C'@var{xxx}'}, @code{\'}, @code{\`}, @code{\-}, @code{\_}),
-characters defined with the @code{char} request, and numbered characters
+glyphs defined with the @code{char} request, and numbered glyphs
(@code{\N'@var{xxx}'}) can be translated also.
@item
@@ -7175,7 +6725,7 @@ The @code{\e} escape can be translated also.
@cindex @code{\%}, and translations
@cindex @code{\~}, and translations
Characters can be mapped onto the @code{\%} and @code{\~} escapes (but
-@code{\%} and @code{\~} can't be mapped onto another character).
+@code{\%} and @code{\~} can't be mapped onto another glyph).
@item
@cindex backspace character, and translations
@@ -7199,7 +6749,7 @@ set with the @code{shc} request.
@item
@cindex @code{\&}, and translations
-The character pair @samp{@var{c}\&} (this is an arbitrary character@w{
+The pair @samp{@var{c}\&} (this is an arbitrary character@w{
}@var{c} followed by the zero width space character) maps this
character to nothing.
@@ -7220,8 +6770,8 @@ foo bar
@noindent
As shown in the example, the space character can't be the first
-character pair as an argument of @code{tr}. Additionally, it is not
-possible to map the space character to any other character; requests
+character/glyph pair as an argument of @code{tr}. Additionally, it is
+not possible to map the space character to any other glyph; requests
like @w{@samp{.tr aa x}} undo @w{@samp{.tr aa \&}} instead.
If justification is active, lines are justified in spite of the
@@ -7229,14 +6779,15 @@ If justification is active, lines are justified in spite of the
space character, between words).
@item
-After an output character has been constructed (this happens at the
-moment immediately before the character is appended to an output
-character list, either by direct output, in a macro, diversion, or
+After an output glyph has been constructed (this happens at the
+moment immediately before the glyph is appended to an output
+glyph list, either by direct output, in a macro, diversion, or
string), it is no longer affected by @code{tr}.
@item
-Translating undefined characters is possible also; @code{tr} does not
-check whether the characters in its argument are defined.
+Translating character to glyphs where one of them or both are
+undefined is possible also; @code{tr} does not check whether the
+entities in its argument do exist.
@xref{Gtroff Internals}.
@@ -8372,25 +7923,26 @@ groff -Tdvi -mec -man groff_char.7 > groff_char.dvi
@Defesc {\\C, ', xxx, '}
@cindex named character (@code{\C})
@cindex character, named (@code{\C})
-Typeset the character named @var{xxx}. Normally it is more convenient
-to use @code{\[@var{xxx}]}, but @code{\C} has the advantage that it is
-compatible with newer versions of @code{ditroff} and is available in
-compatibility mode.
+Typeset the glyph named @var{xxx}.@footnote{@code{\C} is actually a
+misnomer since it accesses an output glyph.} Normally it is more
+convenient to use @code{\[@var{xxx}]}, but @code{\C} has the advantage
+that it is compatible with newer versions of @acronym{AT&T}
+@code{troff} and is available in compatibility mode.
@endDefesc
@Defesc {\\N, ', n, '}
-@cindex numbered character (@code{\N})
-@cindex character, numbered (@code{\N})
+@cindex numbered glyph (@code{\N})
+@cindex glyph, numbered (@code{\N})
@cindex @code{char} request, used with @code{\N}
@cindex Unicode
-Typeset the character with code@w{ }@var{n} in the current font (this
-is @strong{not} the input character code). @var{n}@w{ }can be any
-integer. Most devices only have characters with codes between 0
-and@w{ }255; the Unicode output device uses codes in the range
-0--65535. If the current font does not contain a character with that
-code, special fonts are @emph{not} searched. The @code{\N} escape
-sequence can be conveniently used in conjunction with the @code{char}
-request:
+Typeset the glyph with code@w{ }@var{n} in the current font
+(@code{n}@w{ }is @strong{not} the input character code). The
+number @var{n}@w{ }can be any non-negative integer. Most devices
+only have glyphs with codes between 0 and@w{ }255; the Unicode
+output device uses codes in the range 0--65535. If the current
+font does not contain a glyph with that code, special fonts are
+@emph{not} searched. The @code{\N} escape sequence can be
+conveniently used in conjunction with the @code{char} request:
@Example
.char \[phone] \f[ZD]\N'37'
@@ -8398,11 +7950,11 @@ request:
@noindent
@pindex DESC
-@cindex unnamed characters
-@cindex characters, unnamed
-The code of each character is given in the fourth column in the font
+@cindex unnamed glyphs
+@cindex glyphs, unnamed
+The code of each glyph is given in the fourth column in the font
description file after the @code{charset} command. It is possible to
-include unnamed characters in the font description file by using a
+include unnamed glyphs in the font description file by using a
name of @samp{---}; the @code{\N} escape sequence is the only way to
use these.
@endDefesc
@@ -8425,35 +7977,39 @@ This is a backslash followed by @acronym{ASCII} character @code{0x60}
This is the same as @code{\[-]}, the minus sign in the current font.
@endDefesc
-@c XXX should be `glyph', not `character'
-
@Defreq {cflags, n c1 c2 @dots{}}
+@cindex glyph properties (@code{cflags})
@cindex character properties (@code{cflags})
+@cindex properties of glyphs (@code{cflags})
@cindex properties of characters (@code{cflags})
-Each character has certain properties associated with it. These
-properties can be modified with the @code{cflags} request. The first
-argument is the sum of the desired flags and the remaining
-arguments are the characters to have those properties. It is possible
-to omit the spaces between the characters.
+Input characters and symbols have certain properties associated
+with it.@footnote{Note that the output glyphs themselves don't have
+such properties. For @code{gtroff}, a glyph is a numbered box with
+a given width, depth, and height, nothing else. All manipulations
+with the @code{cflags} request work on the input level.} These
+properties can be modified with the @code{cflags} request. The
+first argument is the sum of the desired flags and the remaining
+arguments are the characters or symbols to have those properties.
+It is possible to omit the spaces between the characters or symbols.
@table @code
@item 1
@cindex end-of-sentence characters
@cindex characters, end-of-sentence
-the character ends sentences (initially characters @samp{.?!} have this
-property)
+The character ends sentences (initially characters @samp{.?!} have this
+property).
@item 2
@cindex hyphenating characters
@cindex characters, hyphenation
-lines can be broken before the character (initially no characters have
-this property)
+Lines can be broken before the character (initially no characters have
+this property).
@item 4
@cindex @code{hy} glyph, and @code{cflags}
@cindex @code{em} glyph, and @code{cflags}
-lines can be broken after the character (initially the characters
-@samp{-\(hy\(em} have this property)
+Lines can be broken after the character (initially the character
+@samp{-} and the symbols @samp{\(hy} and @samp{\(em} have this property).
@item 8
@cindex overlapping characters
@@ -8461,13 +8017,13 @@ lines can be broken after the character (initially the characters
@cindex @code{ul} glyph, and @code{cflags}
@cindex @code{rn} glyph, and @code{cflags}
@cindex @code{ru} glyph, and @code{cflags}
-the character overlaps horizontally (initially the characters
-@samp{\(ul\(rn\(ru} have this property)
+The character overlaps horizontally (initially the symbols
+@samp{\(ul\(rn\(ru} have this property).
@item 16
@cindex @code{br} glyph, and @code{cflags}
-the character overlaps vertically (initially character @samp{\(br} has
-this property)
+The character overlaps vertically (initially symbol @samp{\(br} has
+this property).
@item 32
@cindex transparent characters
@@ -8479,12 +8035,13 @@ this property)
@cindex @code{*}, at end of sentence
@cindex @code{dg} glyph, at end of sentence
@cindex @code{rq} glyph, at end of sentence
-an end-of-sentence character followed by any number of characters with
+An end-of-sentence character followed by any number of characters with
this property is treated as the end of a sentence if followed by a
newline or two spaces; in other words the character is
@dfn{transparent} for the purposes of end-of-sentence recognition --
this is the same as having a zero space factor in @TeX{} (initially
-characters @samp{"')]*\(dg\(rq} have this property).
+characters @samp{"')]*} and the symbols @samp{\(dg\(rq} have this
+property).
@end table
@endDefreq
@@ -8493,6 +8050,10 @@ characters @samp{"')]*\(dg\(rq} have this property).
@cindex defining character (@code{char})
@cindex character, defining (@code{char})
@cindex creating new characters (@code{char})
+@cindex defining symbol (@code{char})
+@cindex symbol, defining (@code{char})
+@cindex defining glyph (@code{char})
+@cindex glyph, defining (@code{char})
@cindex escape character, while defining character
@cindex character, escape, while defining character
@cindex @code{tr} request, and character definitions
@@ -8504,8 +8065,8 @@ characters @samp{"')]*\(dg\(rq} have this property).
@cindex @code{\&}, and character definitions
@cindex @code{\e}, and character definitions
@cindex @code{hcode} request, and character definitions
-Define a new character@w{ }@var{c} to be @var{string} (which can be
-empty). Every time character@w{ }@var{c} needs to be printed,
+Define a new glyph@w{ }@var{c} to be @var{string} (which can be
+empty). Every time glyph@w{ }@var{c} needs to be printed,
@var{string} is processed in a temporary environment and the result is
wrapped up into a single object. Compatibility mode is turned off and
the escape character is set to @samp{\} while @var{string} is being
@@ -8513,21 +8074,21 @@ processed. Any emboldening, constant spacing or track kerning is
applied to this object rather than to individual characters in
@var{string}.
-A character defined by this request can be used just
-like a normal character provided by the output device. In particular,
+A glyph defined by this request can be used just
+like a normal glyph provided by the output device. In particular,
other characters can be translated to it with the @code{tr} or
@code{trin} requests; it can be made the leader character by the
-@code{lc} request; repeated patterns can be drawn with the character
+@code{lc} request; repeated patterns can be drawn with the glyph
using the @code{\l} and @code{\L} escape sequences; words containing
-the character can be hyphenated correctly if the @code{hcode} request
-is used to give the character a hyphenation code.
+the glyph can be hyphenated correctly if the @code{hcode} request
+is used to give the glyph's symbol a hyphenation code.
There is a special anti-recursion
-feature: Use of character within the character's definition is handled
-like normal characters not defined with @code{char}.
+feature: Use of symbol within the symbol's definition is handled
+like normal characters and symbols not defined with @code{char}.
Note that the @code{tr} and @code{trin} requests take precedence if
-@code{char} accesses the same character.
+@code{char} accesses the same symbol.
@Example
.tr XY
@@ -8541,7 +8102,7 @@ X
@result{} Z
@endExample
-The @code{fchar} request defines a fallback character:
+The @code{fchar} request defines a fallback glyph:
@code{gtroff} only checks for characters defined with @code{fchar}
if it cannot find the glyph in the current font.
@code{gtroff} carries out this test before checking special fonts.
@@ -10703,7 +10264,7 @@ text completely.
Set the current line thickness to @var{n}@w{ }machine units. A value of
zero selects the smallest available line thickness. A negative value
makes the line thickness proportional to the current point size (this is
-the default behaviour of @code{ditroff}).
+the default behaviour of @acronym{AT&T} @code{troff}).
@end table
@endDefesc
@@ -11434,7 +10995,7 @@ Disable or enable output depending on the value of @var{num}:
@table @samp
@item \O0
-Disable any ditroff glyphs from being emitted to the device driver,
+Disable any glyphs from being emitted to the device driver,
provided that the escape occurs at the outer level (see @code{\O3} and
@code{\O4}).
@@ -11576,6 +11137,20 @@ Read in the specified @var{file} and
includes it in place of the @code{so} request. This is quite useful for
large documents, e.g.@: keeping each chapter in a separate file.
@xref{gsoelim}, for more information.
+
+Since @code{gtroff} replaces the @code{so} request with the contents
+of @code{file}, it makes a difference whether the data is terminated with
+a newline or not: Assuming that file @file{xxx} contains the word
+@samp{foo} without a final newline, this
+
+@Example
+This is
+.so xxx
+bar
+@endExample
+
+@noindent
+yields @samp{This is foobar}.
@endDefreq
@Defreq {pso, command}
@@ -11589,12 +11164,14 @@ and includes it in place of the @code{pso} request.
This request causes an error if used in safer mode (which is the default).
Use @code{groff}'s or @code{troff}'s @option{-U} option to activate unsafe
mode.
+
+The comment regarding a final newline for the @code{so} request is valid
+for @code{pso} also.
@endDefreq
@Defreq {mso, file}
-Identical to the @code{so} request except that @code{gtroff}
-searches for the specified
-@var{file} in the same directories as macro files for the
+Identical to the @code{so} request except that @code{gtroff} searches for
+the specified @var{file} in the same directories as macro files for the
the @option{-m} command line option. If the file name to be included
has the form @file{@var{name}.tmac} and it isn't found, @code{mso} tries
to include @file{tmac.@var{name}} and vice versa.
@@ -13924,7 +13501,7 @@ x stop
This output can be fed into @code{grotty} to get a formatted text
document.
-@item @code{AT&T} @code{troff} output
+@item @acronym{AT&T} @code{troff} output
Since a computer monitor has a very low resolution compared to modern
printers the intermediate output for the X@w{ }devices can use the
jump-and-write command with its 2-digit displacements.
@@ -14039,9 +13616,11 @@ follow quite naturally.
@cindex files, font
The @code{gtroff} font format is roughly a superset of the
-@code{ditroff} font format. Unlike the @code{ditroff} font format,
-there is no associated binary format; all files are text files. The
-font files for device @var{name} are stored in a directory
+@code{ditroff} font format (as used in later versions of @acronym{AT&T}
+@code{troff} and its descendants). Unlike the @code{ditroff} font
+format, there is no associated binary format; all files are text
+files.@footnote{Plan@w{ }9 @code{troff} has also abandoned the binary
+format.} The font files for device @var{name} are stored in a directory
@file{dev@var{name}}. There are two types of file: a device description
file called @file{DESC} and for each font@w{ }@var{f} a font file
called@w{ }@file{@var{f}}.
@@ -14060,7 +13639,9 @@ called@w{ }@file{@var{f}}.
@cindex format of font description file
@pindex DESC@r{ file format}
-The @file{DESC} file can contain the following types of line:
+The @file{DESC} file can contain the following types of line. Except
+for the @code{charset} keyword which must comes last (if at all), the
+order of the lines is not important.
@table @code
@item res @var{n}
@@ -14087,17 +13668,34 @@ One scaled point is equal to one point/@var{n}. The arguments to the
Quantities in the font files are given in machine units for fonts whose
point size is @var{n}@w{ }scaled points.
+@item prepro @var{program}
+@kindex prepro
+Call @var{program} as a preprocessor. Currently, this keyword is used
+by @code{groff} with option @option{-Thtml} only.
+
+@item postpro @var{program}
+@kindex postpro
+Call @var{program} as a postprocessor. For example, the line
+
+@Example
+postpro grodvi
+@endExample
+
+@noindent
+in the file @file{devdvi/DESC} makes @code{groff} call @code{grodvi}
+if option @option{-Tdvi} is given (and @option{-Z} isn't used).
+
@item tcommand
@kindex tcommand
This means that the postprocessor can handle the @samp{t} and @samp{u}
-output commands.
+intermediate output commands.
@item sizes @var{s1} @var{s2} @dots{} @var{sn} 0
@kindex sizes
This means that the device has fonts at @var{s1}, @var{s2}, @dots{}
-@var{sn} scaled points. The list of sizes must be terminated by a@w{
-}0. Each @var{si} can also be a range of sizes @var{m}-@var{n}. The
-list can extend over more than one line.
+@var{sn} scaled points. The list of sizes must be terminated by@w{ }0
+(this is digit zero). Each @var{si} can also be a range of sizes
+@var{m}-@var{n}. The list can extend over more than one line.
@item styles @var{S1} @var{S2} @dots{} @var{Sm}
@kindex styles
@@ -14109,36 +13707,63 @@ The first @var{m}@w{ }font positions are associated with styles
Fonts @var{F1} @dots{} @var{Fn} are mounted in the font positions
@var{m}+1, @dots{}, @var{m}+@var{n} where @var{m} is the number of
styles. This command may extend over more than one line. A font name
-of@var{ }0 means no font is mounted on the corresponding font position.
+of@w{ }0 means no font is mounted on the corresponding font position.
@item family @var{fam}
@kindex family
The default font family is @var{fam}.
+@item use_charnames_in_special
+@kindex use_charnames_in_special
+This command indicates that @code{gtroff} should encode named
+characters inside special commands. Currently, this is only used
+by the @acronym{HTML} output device. @xref{Postprocessor Access}.
+
+@item pass_filenames
+@kindex pass_filenames
+Tell @code{gtroff} to emit the name of the source file currently
+being processed. This is achieved by the intermediate output command
+@samp{F}. Currently, this is only used by the @acronym{HTML} output
+device.
+
+@item print @var{program}
+@kindex print
+Use @var{program} as a spooler program for printing. If omitted,
+the @option{-l} and @option{-L} options of @code{groff} are ignored.
+
@item charset
@kindex charset
This line and everything following in the file are ignored. It is
allowed for the sake of backwards compatibility.
@end table
-The @code{res}, @code{unitwidth}, @code{fonts} and @code{sizes} lines
+The @code{res}, @code{unitwidth}, @code{fonts}, and @code{sizes} lines
are mandatory. Other commands are ignored by @code{gtroff} but may be
used by postprocessors to store arbitrary information about the device
in the @file{DESC} file.
-@c XXX add other commands resp. xrefs to output devices
-@c XXX add obsolete commands
+@kindex spare1
+@kindex spare2
+@kindex biggestfont
+Here a list of obsolete keywords which are recognized by @code{groff}
+but completely ignored: @code{spare1}, @code{spare2},
+@code{biggestfont}.
+
@c ---------------------------------------------------------------------
@node Font File Format, , DESC File Format, Font Files
@subsection Font File Format
@cindex font file, format
+@cindex font description file, format
@cindex format of font files
+@cindex format of font description files
-A font file has two sections. The first section is a sequence of lines
-each containing a sequence of blank delimited words; the first word in
-the line is a key, and subsequent words give a value for that key.
+A @dfn{font file}, also (and probably better) called a @dfn{font
+description file}, has two sections. The first section is a sequence
+of lines each containing a sequence of blank delimited words; the first
+word in the line is a key, and subsequent words give a value for that
+key.
@table @code
@item name @var{f}
@@ -14151,21 +13776,22 @@ The normal width of a space is@w{ }@var{n}.
@item slant @var{n}
@kindex slant
-The characters of the font have a slant of @var{n}@w{ }degrees.
+The glyphs of the font have a slant of @var{n}@w{ }degrees.
(Positive means forward.)
@item ligatures @var{lig1} @var{lig2} @dots{} @var{lign} [0]
@kindex ligatures
-Characters @var{lig1}, @var{lig2}, @dots{}, @var{lign} are ligatures;
+Glyphs @var{lig1}, @var{lig2}, @dots{}, @var{lign} are ligatures;
possible ligatures are @samp{ff}, @samp{fi}, @samp{fl}, @samp{ffi} and
@samp{ffl}. For backwards compatibility, the list of ligatures may be
terminated with a@w{ }0. The list of ligatures may not extend over more
than one line.
@item special
+@cindex special fonts
@kindex special
-The font is special; this means that when a character is requested that
-is not present in the current font, it is searched for in any
+The font is @dfn{special}; this means that when a glyph is requested
+that is not present in the current font, it is searched for in any
special fonts that are mounted.
@end table
@@ -14185,70 +13811,94 @@ subsection. These subsections can appear in any order. Each
subsection starts with a word on a line by itself.
@kindex charset
-The word @code{charset} starts the character set subsection. The
-@code{charset} line is followed by a sequence of lines. Each line gives
-information for one character. A line comprises a number of fields
-separated by blanks or tabs. The format is
+The word @code{charset} starts the character set
+subsection.@footnote{This keyword is misnamed since it starts a list
+of ordered glyphs, not characters.} The @code{charset} line is
+followed by a sequence of lines. Each line gives information for one
+glyph. A line comprises a number of fields separated by blanks or
+tabs. The format is
-@c XXX fix it for new HTML additions
-
-@Example
-@var{name} @var{metrics} @var{type} @var{code} @var{comment}
-@endExample
+@quotation
+@var{name} @var{metrics} @var{type} @var{code}
+[@var{entity-name}] [@code{--} @var{comment}]
+@end quotation
@cindex 8-bit input
@cindex input, 8-bit
-@cindex accessing unnamed characters with @code{\N}
-@cindex unnamed characters, accessing with @code{\N}
+@cindex accessing unnamed glyphs with @code{\N}
+@cindex unnamed glyphs, accessing with @code{\N}
@cindex characters, unnamed, accessing with @code{\N}
+@cindex glyphs, unnamed, accessing with @code{\N}
@kindex ---
@noindent
-@var{name} identifies the character: If @var{name} is a single
-character@w{ }@var{c} then it corresponds to the @code{gtroff} input
-character@w{ }@var{c}; if it is of the form @samp{\@var{c}} where @var{c}
-is a single character, then it corresponds to the @code{gtroff} input
-character@w{ }\@var{c}; otherwise it corresponds to the groff input
-character @samp{\[@var{name}]}. (If it is exactly two characters
-@var{xx} it can be entered as @samp{\(@var{xx}}.) @code{gtroff}
-supports 8-bit characters; however some utilities have difficulties with
-eight-bit characters. For this reason, there is a convention that the
-name @samp{char@var{n}} is equivalent to the single character whose code
-is@w{ }@var{n}. For example, @samp{char163} would be equivalent to the
-character with code@w{ }163 which is the pounds sterling sign in @w{ISO
-Latin-1} character set. The name @samp{---} is special and indicates
-that the character is unnamed; such characters can only be used by means
-of the @code{\N} escape sequence in @code{gtroff}.
-
-@c XXX input encodings vs. output encodings
-
-The @var{type} field gives the character type:
+@var{name} identifies the glyph name@footnote{The distinction between
+input, characters, and output, glyphs, is not clearly separated in the
+terminology of @code{groff} (and this manual isn't precise either
+currently); for example, the @code{char} request should be called
+@code{glyph} since it defines an output entity.}: If @var{name} is a
+single character@w{ }@var{c} then it corresponds to the @code{gtroff}
+input character@w{ }@var{c}; if it is of the form @samp{\@var{c}}
+where @var{c} is a single character, then it corresponds to the
+special character @code{\[@var{c}]}; otherwise it corresponds to the
+groff input character @samp{\[@var{name}]}. If it is exactly two
+characters @var{xx} it can be entered as @samp{\(@var{xx}}. Note
+that single-letter special characters can't be accessed as
+@samp{\@var{c}}; the only exception is @samp{\-} which is identical
+to @code{\[-]}.
+
+@code{gtroff} supports 8-bit input characters; however some utilities
+have difficulties with eight-bit characters. For this reason, there is
+a convention that the entity name @samp{char@var{n}} is equivalent to
+the single input character whose code is@w{ }@var{n}. For example,
+@samp{char163} would be equivalent to the character with code@w{ }163
+which is the pounds sterling sign in the @w{ISO Latin-1} character set.
+You shouldn't use @samp{char@var{n}} entities in font description files
+since they are related to input, not output. Otherwise, you get
+hard-coded connections between input and output encoding which
+prevents use of different (input) character sets.
+
+The name @samp{---} is special and indicates that the glyph is
+unnamed; such glyphs can only be used by means of the @code{\N}
+escape sequence in @code{gtroff}.
+
+The @var{type} field gives the glyph type:
@table @code
@item 1
-the character has an descender, for example, `p';
+the glyph has a descender, for example, @samp{p};
@item 2
-the character has an ascender, for example, `b';
+the glyph has an ascender, for example, @samp{b};
@item 3
-the character has both an ascender and a descender, for example, `('.
+the glyph has both an ascender and a descender, for example, @samp{(}.
@end table
The @var{code} field gives the code which the postprocessor uses to
-print the character. The character can also be input to @code{gtroff}
-using this code by means of the @code{\N} escape sequence. The code can
-be any integer. If it starts with @samp{0} it is interpreted as
+print the glyph. The glyph can also be input to @code{gtroff}
+using this code by means of the @code{\N} escape sequence. @var{code}
+can be any integer. If it starts with @samp{0} it is interpreted as
octal; if it starts with @samp{0x} or @samp{0X} it is interpreted as
hexadecimal.
-Anything on the line after the @var{code} field is ignored.
+The @var{entity-name} field gives an @acronym{ASCII} string
+identifying the glyph which the postprocessor uses to print the
+@code{gtroff} glyph @var{name}. This field is optional and has been
+introduced so that the @acronym{HTML} device driver can encode its
+character set. For example, the character @samp{\[Po]} is
+represented as @samp{&pound;} in @acronym{HTML} 4.0.
+
+Anything on the line after the @var{entity-name} field resp.@: after
+@samp{--} will be ignored.
The @var{metrics} field has the form:
-@Example
-@var{width}[,@var{height}[,@var{depth}[,@var{italic_correction}
- [,@var{left_italic_correction}[,@var{subscript_correction}]]]]]
-@endExample
+@display
+@group
+@var{width}[@code{,}@var{height}[@code{,}@var{depth}[@code{,}@var{italic-correction}
+ [@code{,}@var{left-italic-correction}[@code{,}@var{subscript-correction}]]]]]
+@end group
+@end display
@noindent
There must not be any spaces between these subfields (it has been split
@@ -14256,22 +13906,21 @@ here into two lines for better legibility only). Missing subfields are
assumed to be@w{ }0. The subfields are all decimal integers. Since
there is no associated binary format, these values are not required to
fit into a variable of type @samp{char} as they are in @code{ditroff}.
-The @var{width} subfield gives the width of the character. The
-@var{height} subfield gives the height of the character (upwards is
-positive); if a character does not extend above the baseline, it should
-be given a zero height, rather than a negative height. The @var{depth}
-subfield gives the depth of the character, that is, the distance below
-the lowest point below the baseline to which the character extends
-(downwards is positive); if a character does not extend below above the
-baseline, it should be given a zero depth, rather than a negative depth.
-The @var{italic_correction} subfield gives the amount of space that
-should be added after the character when it is immediately to be
-followed by a character from a roman font. The
-@var{left_italic_correction} subfield gives the amount of space that
-should be added before the character when it is immediately to be
-preceded by a character from a roman font. The
-@var{subscript_correction} gives the amount of space that should be
-added after a character before adding a subscript. This should be less
+The @var{width} subfield gives the width of the glyph. The @var{height}
+subfield gives the height of the glyph (upwards is positive); if a
+glyph does not extend above the baseline, it should be given a zero
+height, rather than a negative height. The @var{depth} subfield gives
+the depth of the glyph, that is, the distance from the baseline to the
+lowest point below the baseline to which the glyph extends (downwards is
+positive); if a glyph does not extend below the baseline, it should be
+given a zero depth, rather than a negative depth. The
+@var{italic-correction} subfield gives the amount of space that should
+be added after the glyph when it is immediately to be followed by a
+glyph from a roman font. The @var{left-italic-correction} subfield
+gives the amount of space that should be added before the glyph when it
+is immediately to be preceded by a glyph from a roman font. The
+@var{subscript-correction} gives the amount of space that should be
+added after a glyph before adding a subscript. This should be less
than the italic correction.
A line in the @code{charset} section can also have the format
@@ -14281,7 +13930,7 @@ A line in the @code{charset} section can also have the format
@endExample
@noindent
-This indicates that @var{name} is just another name for the character
+This indicates that @var{name} is just another name for the glyph
mentioned in the preceding line.
@kindex kernpairs
@@ -14293,17 +13942,16 @@ sequence of lines of the form:
@endExample
@noindent
-This means that when character @var{c1} appears next to character
-@var{c2} the space between them should be increased by@w{ }@var{n}.
-Most entries in the kernpairs section have a negative value for@w{
-}@var{n}.
+This means that when glyph @var{c1} appears next to character @var{c2}
+the space between them should be increased by@w{ }@var{n}. Most
+entries in the kernpairs section have a negative value for@w{ }@var{n}.
@c =====================================================================
@c =====================================================================
-@node Installation, Request Index, File formats, Top
+@node Installation, Copying This Manual, File formats, Top
@chapter Installation
@cindex installation
@@ -14314,8 +13962,22 @@ Most entries in the kernpairs section have a negative value for@w{
@c =====================================================================
@c =====================================================================
-@node Request Index, Escape Index, Installation, Top
-@chapter Request Index
+@node Copying This Manual, Request Index, Installation, Top
+@appendix Copying This Manual
+
+@menu
+* GNU Free Documentation License:: License for copying this manual.
+@end menu
+
+@include fdl.texi
+
+
+
+@c =====================================================================
+@c =====================================================================
+
+@node Request Index, Escape Index, Copying This Manual, Top
+@appendix Request Index
Requests appear without the leading control character (normally either
@samp{.} or @samp{'}).
@@ -14328,7 +13990,7 @@ Requests appear without the leading control character (normally either
@c =====================================================================
@node Escape Index, Operator Index, Request Index, Top
-@chapter Escape Index
+@appendix Escape Index
Any escape sequence @code{\@var{X}} with @var{X} not in the list below
emits a warning, printing character @var{X}.
@@ -14341,7 +14003,7 @@ emits a warning, printing character @var{X}.
@c =====================================================================
@node Operator Index, Register Index, Escape Index, Top
-@chapter Operator Index
+@appendix Operator Index
@printindex op
@@ -14351,7 +14013,7 @@ emits a warning, printing character @var{X}.
@c =====================================================================
@node Register Index, Macro Index, Operator Index, Top
-@chapter Register Index
+@appendix Register Index
The macro package or program a specific register belongs to is appended in
brackets.
@@ -14369,7 +14031,7 @@ of any length can be accessed as @samp{\n[xxx]}.
@c =====================================================================
@node Macro Index, String Index, Register Index, Top
-@chapter Macro Index
+@appendix Macro Index
The macro package a specific macro belongs to is appended in brackets.
They appear without the leading control character (normally @samp{.}).
@@ -14382,7 +14044,7 @@ They appear without the leading control character (normally @samp{.}).
@c =====================================================================
@node String Index, Glyph Name Index, Macro Index, Top
-@chapter String Index
+@appendix String Index
The macro package or program a specific string belongs to is appended in
brackets.
@@ -14401,7 +14063,7 @@ of any length can be accessed as @samp{\*[xxx]}.
@c =====================================================================
@node Glyph Name Index, Font File Keyword Index, String Index, Top
-@chapter Glyph Name Index
+@appendix Glyph Name Index
A glyph name @code{xx} consisting of exactly two characters can be
accessed as @samp{\(xx}. Glyph names @code{xxx} of any length can be
@@ -14415,7 +14077,7 @@ accessed as @samp{\[xxx]}.
@c =====================================================================
@node Font File Keyword Index, Program and File Index, Glyph Name Index, Top
-@chapter Font File Keyword Index
+@appendix Font File Keyword Index
@printindex ky
@@ -14425,7 +14087,7 @@ accessed as @samp{\[xxx]}.
@c =====================================================================
@node Program and File Index, Concept Index, Font File Keyword Index, Top
-@chapter Program and File Index
+@appendix Program and File Index
@printindex pg
@@ -14435,12 +14097,9 @@ accessed as @samp{\[xxx]}.
@c =====================================================================
@node Concept Index, , Program and File Index, Top
-@chapter Concept Index
+@appendix Concept Index
@printindex cp
-
-@summarycontents
-@contents
@bye
diff --git a/src/devices/grodvi/Makefile.sub b/src/devices/grodvi/Makefile.sub
index 0e5d32ca..a0dcdf17 100644
--- a/src/devices/grodvi/Makefile.sub
+++ b/src/devices/grodvi/Makefile.sub
@@ -1,4 +1,4 @@
-PROG=grodvi
+PROG=grodvi$(EXEEXT)
MAN1=grodvi.n
XLIBS=$(LIBDRIVER) $(LIBGROFF)
MLIB=$(LIBM)
diff --git a/src/devices/grohtml/Makefile.sub b/src/devices/grohtml/Makefile.sub
index 10f28ce1..be1a305a 100644
--- a/src/devices/grohtml/Makefile.sub
+++ b/src/devices/grohtml/Makefile.sub
@@ -1,4 +1,4 @@
-PROG=post-grohtml
+PROG=post-grohtml$(EXEEXT)
MAN1=grohtml.n
XLIBS=$(LIBDRIVER) $(LIBGROFF)
MLIB=$(LIBM)
diff --git a/src/devices/grolbp/Makefile.sub b/src/devices/grolbp/Makefile.sub
index d60008b2..d5c82aa5 100644
--- a/src/devices/grolbp/Makefile.sub
+++ b/src/devices/grolbp/Makefile.sub
@@ -1,4 +1,4 @@
-PROG=grolbp
+PROG=grolbp$(EXEEXT)
MAN1=grolbp.n
XLIBS=$(LIBDRIVER) $(LIBGROFF)
MLIB=$(LIBM)
diff --git a/src/devices/grolj4/Makefile.sub b/src/devices/grolj4/Makefile.sub
index bbb0cff0..08073598 100644
--- a/src/devices/grolj4/Makefile.sub
+++ b/src/devices/grolj4/Makefile.sub
@@ -1,4 +1,4 @@
-PROG=grolj4
+PROG=grolj4$(EXEEXT)
MAN1=grolj4.n
XLIBS=$(LIBDRIVER) $(LIBGROFF)
MLIB=$(LIBM)
diff --git a/src/devices/grops/Makefile.sub b/src/devices/grops/Makefile.sub
index 4182527d..dff973b5 100644
--- a/src/devices/grops/Makefile.sub
+++ b/src/devices/grops/Makefile.sub
@@ -1,4 +1,4 @@
-PROG=grops
+PROG=grops$(EXEEXT)
MAN1=grops.n
XLIBS=$(LIBDRIVER) $(LIBGROFF)
MLIB=$(LIBM)
diff --git a/src/devices/grotty/Makefile.sub b/src/devices/grotty/Makefile.sub
index 91d3908c..e08d2334 100644
--- a/src/devices/grotty/Makefile.sub
+++ b/src/devices/grotty/Makefile.sub
@@ -1,4 +1,4 @@
-PROG=grotty
+PROG=grotty$(EXEEXT)
MAN1=grotty.n
XLIBS=$(LIBDRIVER) $(LIBGROFF)
MLIB=$(LIBM)
diff --git a/src/include/nonposix.h b/src/include/nonposix.h
index e5e688f5..8180b672 100644
--- a/src/include/nonposix.h
+++ b/src/include/nonposix.h
@@ -135,3 +135,6 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef NULL_DEV
# define NULL_DEV "/dev/null"
#endif
+#ifndef GS_NAME
+# define GS_NAME "gs"
+#endif
diff --git a/src/preproc/eqn/Makefile.sub b/src/preproc/eqn/Makefile.sub
index 20421e1c..945a8425 100644
--- a/src/preproc/eqn/Makefile.sub
+++ b/src/preproc/eqn/Makefile.sub
@@ -1,4 +1,4 @@
-PROG=eqn
+PROG=eqn$(EXEEXT)
MAN1=eqn.n neqn.n
XLIBS=$(LIBGROFF)
OBJS=\
diff --git a/src/preproc/grn/Makefile.sub b/src/preproc/grn/Makefile.sub
index ffa0ad20..97e34136 100644
--- a/src/preproc/grn/Makefile.sub
+++ b/src/preproc/grn/Makefile.sub
@@ -1,4 +1,4 @@
-PROG=grn
+PROG=grn$(EXEEXT)
MAN1=grn.n
MLIB=$(LIBM)
XLIBS=$(LIBGROFF)
diff --git a/src/preproc/html/Makefile.sub b/src/preproc/html/Makefile.sub
index 5b14c2aa..41f3c372 100644
--- a/src/preproc/html/Makefile.sub
+++ b/src/preproc/html/Makefile.sub
@@ -1,4 +1,4 @@
-PROG=pre-grohtml
+PROG=pre-grohtml$(EXEEXT)
# MAN1=pre-grohtml.n
MAN1=
XLIBS=$(LIBGROFF)
diff --git a/src/preproc/html/pre-html.cc b/src/preproc/html/pre-html.cc
index 8e63c41b..84697589 100644
--- a/src/preproc/html/pre-html.cc
+++ b/src/preproc/html/pre-html.cc
@@ -765,8 +765,9 @@ static int createAllPages (void)
}
s = make_message("echo showpage | "
- "gs%s %s -q -dSAFER -sDEVICE=%s -r%d %s"
+ "%s%s %s -q -dSAFER -sDEVICE=%s -r%d %s"
"-sOutputFile=%s/%%d %s -",
+ GS_NAME,
EXE_EXT,
gsPaper,
image_device,
diff --git a/src/preproc/pic/Makefile.sub b/src/preproc/pic/Makefile.sub
index f1e29273..ec4251f9 100644
--- a/src/preproc/pic/Makefile.sub
+++ b/src/preproc/pic/Makefile.sub
@@ -1,4 +1,4 @@
-PROG=pic
+PROG=pic$(EXEEXT)
MAN1=pic.n
XLIBS=$(LIBGROFF)
MLIB=$(LIBM)
diff --git a/src/preproc/pic/main.cc b/src/preproc/pic/main.cc
index e0a1d813..124cbd55 100644
--- a/src/preproc/pic/main.cc
+++ b/src/preproc/pic/main.cc
@@ -476,7 +476,7 @@ void usage(FILE *stream)
#endif
}
-#ifdef __MSDOS__
+#if defined(__MSDOS__) || defined(__EMX__)
static char *fix_program_name(char *arg, char *dflt)
{
if (!arg)
@@ -499,13 +499,13 @@ static char *fix_program_name(char *arg, char *dflt)
*p = 'a' + (*p - 'A');
return prog;
}
-#endif /* __MSDOS__ */
+#endif /* __MSDOS__ || __EMX__ */
int main(int argc, char **argv)
{
-#ifdef __MSDOS__
+#if defined(__MSDOS__) || defined(__EMX__)
argv[0] = fix_program_name(argv[0], "pic");
-#endif /* __MSDOS__ */
+#endif /* __MSDOS__ || __EMX__ */
program_name = argv[0];
static char stderr_buf[BUFSIZ];
setbuf(stderr, stderr_buf);
diff --git a/src/preproc/refer/Makefile.sub b/src/preproc/refer/Makefile.sub
index 1631b5e3..5ed5ec53 100644
--- a/src/preproc/refer/Makefile.sub
+++ b/src/preproc/refer/Makefile.sub
@@ -1,4 +1,4 @@
-PROG=refer
+PROG=refer$(EXEEXT)
MAN1=refer.n
XLIBS=$(LIBBIB) $(LIBGROFF)
MLIB=$(LIBM)
diff --git a/src/preproc/soelim/Makefile.sub b/src/preproc/soelim/Makefile.sub
index 77007e25..cf50df18 100644
--- a/src/preproc/soelim/Makefile.sub
+++ b/src/preproc/soelim/Makefile.sub
@@ -1,4 +1,4 @@
-PROG=soelim
+PROG=soelim$(EXEEXT)
MAN1=soelim.n
XLIBS=$(LIBGROFF)
OBJS=soelim.o
diff --git a/src/preproc/tbl/Makefile.sub b/src/preproc/tbl/Makefile.sub
index 224baffc..d4c0d994 100644
--- a/src/preproc/tbl/Makefile.sub
+++ b/src/preproc/tbl/Makefile.sub
@@ -1,4 +1,4 @@
-PROG=tbl
+PROG=tbl$(EXEEXT)
MAN1=tbl.n
XLIBS=$(LIBGROFF)
OBJS=\
diff --git a/src/roff/groff/Makefile.sub b/src/roff/groff/Makefile.sub
index 42ae221c..db2464c9 100644
--- a/src/roff/groff/Makefile.sub
+++ b/src/roff/groff/Makefile.sub
@@ -1,4 +1,4 @@
-PROG=groff
+PROG=groff$(EXEEXT)
MAN1=groff.n
XLIBS=$(LIBGROFF)
MLIB=$(LIBM)
diff --git a/src/roff/groff/pipeline.c b/src/roff/groff/pipeline.c
index 03fda1ae..96f61db2 100644
--- a/src/roff/groff/pipeline.c
+++ b/src/roff/groff/pipeline.c
@@ -99,7 +99,8 @@ static char *i_to_a P((int));
via temporary files... */
#if defined(__MSDOS__) \
- || (defined(_WIN32) && !defined(_UWIN) && !defined(__CYGWIN__))
+ || (defined(_WIN32) && !defined(_UWIN) && !defined(__CYGWIN__)) \
+ || defined(__EMX__)
#include <process.h>
#include <fcntl.h>
diff --git a/src/roff/troff/Makefile.sub b/src/roff/troff/Makefile.sub
index e883959d..47e1b56e 100644
--- a/src/roff/troff/Makefile.sub
+++ b/src/roff/troff/Makefile.sub
@@ -1,4 +1,4 @@
-PROG=troff
+PROG=troff$(EXEEXT)
MAN1=troff.n
XLIBS=$(LIBGROFF)
MLIB=$(LIBM)
diff --git a/src/utils/addftinfo/Makefile.sub b/src/utils/addftinfo/Makefile.sub
index 23848d54..6892a812 100644
--- a/src/utils/addftinfo/Makefile.sub
+++ b/src/utils/addftinfo/Makefile.sub
@@ -1,4 +1,4 @@
-PROG=addftinfo
+PROG=addftinfo$(EXEEXT)
MAN1=addftinfo.n
XLIBS=$(LIBGROFF)
OBJS=\
diff --git a/src/utils/hpftodit/Makefile.sub b/src/utils/hpftodit/Makefile.sub
index f5ff13e4..ea6d0b59 100644
--- a/src/utils/hpftodit/Makefile.sub
+++ b/src/utils/hpftodit/Makefile.sub
@@ -1,4 +1,4 @@
-PROG=hpftodit
+PROG=hpftodit$(EXEEXT)
MAN1=hpftodit.n
XLIBS=$(LIBGROFF)
MLIB=$(LIBM)
diff --git a/src/utils/indxbib/Makefile.sub b/src/utils/indxbib/Makefile.sub
index f45a7a79..057556e1 100644
--- a/src/utils/indxbib/Makefile.sub
+++ b/src/utils/indxbib/Makefile.sub
@@ -1,4 +1,4 @@
-PROG=indxbib
+PROG=indxbib$(EXEEXT)
MAN1=indxbib.n
XLIBS=$(LIBBIB) $(LIBGROFF)
MLIB=$(LIBM)
diff --git a/src/utils/indxbib/indxbib.cc b/src/utils/indxbib/indxbib.cc
index 0cc6c7ce..9fced937 100644
--- a/src/utils/indxbib/indxbib.cc
+++ b/src/utils/indxbib/indxbib.cc
@@ -1,5 +1,5 @@
// -*- C++ -*-
-/* Copyright (C) 1989-1992, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1989-1992, 2000, 2001, 2002 Free Software Foundation, Inc.
Written by James Clark (jjc@jclark.com)
This file is part of groff.
@@ -285,6 +285,9 @@ int main(int argc, char **argv)
strcpy(index_file, basename);
strcat(index_file, INDEX_SUFFIX);
#ifdef HAVE_RENAME
+#ifdef __EMX__
+ unline(index_file);
+#endif /* __EMX__ */
if (rename(temp_index_file, index_file) < 0) {
#ifdef __MSDOS__
// RENAME could fail on plain MSDOS filesystems because
diff --git a/src/utils/lkbib/Makefile.sub b/src/utils/lkbib/Makefile.sub
index 8f31e10f..d9aadb75 100644
--- a/src/utils/lkbib/Makefile.sub
+++ b/src/utils/lkbib/Makefile.sub
@@ -1,4 +1,4 @@
-PROG=lkbib
+PROG=lkbib$(EXEEXT)
MAN1=lkbib.n
XLIBS=$(LIBBIB) $(LIBGROFF)
MLIB=$(LIBM)
diff --git a/src/utils/lookbib/Makefile.sub b/src/utils/lookbib/Makefile.sub
index 91b14045..ae2d4716 100644
--- a/src/utils/lookbib/Makefile.sub
+++ b/src/utils/lookbib/Makefile.sub
@@ -1,4 +1,4 @@
-PROG=lookbib
+PROG=lookbib$(EXEEXT)
MAN1=lookbib.n
XLIBS=$(LIBBIB) $(LIBGROFF)
MLIB=$(LIBM)
diff --git a/src/utils/pfbtops/Makefile.sub b/src/utils/pfbtops/Makefile.sub
index f731ff57..f6fa93de 100644
--- a/src/utils/pfbtops/Makefile.sub
+++ b/src/utils/pfbtops/Makefile.sub
@@ -1,4 +1,4 @@
-PROG=pfbtops
+PROG=pfbtops$(EXEEXT)
MAN1=pfbtops.n
OBJS=pfbtops.o
CSRCS=$(srcdir)/pfbtops.c
diff --git a/src/utils/tfmtodit/Makefile.sub b/src/utils/tfmtodit/Makefile.sub
index 057bb3e6..c2e09ae1 100644
--- a/src/utils/tfmtodit/Makefile.sub
+++ b/src/utils/tfmtodit/Makefile.sub
@@ -1,4 +1,4 @@
-PROG=tfmtodit
+PROG=tfmtodit$(EXEEXT)
MAN1=tfmtodit.n
XLIBS=$(LIBGROFF)
MLIB=$(LIBM)