1MANIFEST 
2
3Last update: 26 May 2005
4
5This file is part of groff, the GNU roff type-setting system.
6
7Copyright (C) 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
8written by Bernd Warken <bwarken@mayn.de>
9maintained by Werner Lemberg <wl@gnu.org>
10
11Permission is granted to copy, distribute and/or modify this document
12under the terms of the GNU Free Documentation License, Version 1.1 or
13any later version published by the Free Software Foundation; with the
14Invariant Sections being this .ig-section and AUTHORS, with no
15Front-Cover Texts, and with no Back-Cover Texts.
16
17A copy of the Free Documentation License is included as a file called
18FDL in the main directory of the groff source package.
19
20########################################################################
21
22This file gives an overview of the directories and the main files of
23the groff source distribution.
24
25
261) The top directory.
27
28  BUG-REPORT    A template for bug-reports.
29  ChangeLog     Log of the changes in the different groff versions.
30  COPYING       The GNU General Public License (GPL).
31  FDL           The Free Documentation License (FDL).
32  INSTALL       Information on compiling and installing groff.
33  INSTALL.gen   Generic information on configuration and compiling.
34  LICENSE       Licensing information.
35  MANIFEST      The file you are reading.
36  MORE.STUFF    Useful stuff in other packages.
37  NEWS          Recent user-visible changes in groff.
38  PROBLEMS      Tips to handle known critical situations.
39  PROJECTS      Long-term additions to groff.
40  README        Availability and contact information for groff.
41  README.MinGW  Build information for MinGW.
42  TODO          Things planned for future groff versions.
43
44  All other files in the top directory are related to the configuration,
45  compilation, and install processes.  
46
47
482) The directory structure
49
50./arch          Data that is special for different architectures.
51  djgpp         Data special for the 32-bit DOS compiler djgpp.
52  misc          Data needed for various platforms.
53
54./contrib       Part of groff, but maintained by other people.
55  eqn2graph     Convert equations created with EQN into different
56                graphical formats.
57  gdiffmk       An improved implementation of the diffmk command to mark
58                differences between groff/nroff/troff files.
59  grap2graph    Convert grap diagraps into different graphical formats.
60  groffer       A wrapper to conveniently view roff files.
61  mm            The groff mm macro package.
62  mom           The groff mom macro package.
63  pdfmark       A package to add PDF marks to groff documents, together
64                with a shell script (pdfroff) for easy creation of PDF
65                documents.
66  pic2graph     Convert PIC diagrams into different graphical formats.
67
68./doc           Manuals and tutorials to groff aspects.
69
70./font          Device information and fonts.
71  devX100       100dpi device for X Window System.
72  devX100-12    100dpi device with narrower font (for 12pt base font).
73  devX75        75dpi device for X Window System.
74  devX75-12     75dpi device with narrower font (for 12pt base font).
75  devascii      Text device for ASCII output.
76  devcp1047     EBCDIC device.
77  devdvi        TeX DVI device.
78  devhtml       HTML device.
79  devlatin1     Text device for latin-1 (ISO 8859-1) output.
80  devlbp        Device for Canon CAPSL laser printers.
81  devlj4        Device for HP Laserjet 4, PCL 5, and compatible printers.
82  devps         PostScript device.
83  devutf8       Text device for Unicode output.
84
85./man           Some groff manual pages of more general character.
86
87./src           Everything written in programming languages.
88
89./src/devices   The postprocessors.
90  grodvi        TeX DVI output.
91  grohtml       HTML output.
92  grolbp        Canon printers.
93  grolj4        HP Laserjet 4, PCL 5, and compatible printers.
94  grops         PostScript output.
95  grotty        Text output.
96  xditview      A groff (pre)viewer for the X Window system.
97
98./src/include   The *.h C/C++ include files.
99
100./src/libs      C++ code common to several parts of the groff sources.
101  libbib        Library of bibliographic functions.
102  libdriver     Parser for intermediate output and postprocessor code.
103  libgroff      Library for general support functions used everywhere.
104  libxutil      Utility functions for xditview and xtotroff.
105  snprintf      An implementation of snprintf() and friends.
106
107./src/preproc   Preprocessors.
108  eqn           Mathematical formulae.
109  grn           Gremlin pictures.
110  html          The preprocessor part of grohtml.
111  pic           Diagram drawer.
112  refer         Bibliographic references.
113  soelim        File inclusion using tmac path.
114  tbl           Tables.
115
116./src/roff      Front-end programs.
117  groff         Wrapper around troff.  This is the main user program.
118  grog          Guess groff command line options.
119  nroff         Emulate classical nroff text formatter.
120  troff         Main roff formatter program.
121
122./src/utils     Utility programs around groff.
123  addftinfo     Add information to old troff font files for use with groff.
124  afmtodit      Create font description files for the PostScript device.
125  hpftodit      Create font description files for the LJ4 device.
126  indxbib       Make inverted index for bibliographic databases.
127  lkbib         Search bibliographic databases.
128  lookbib       Interactively search bibliographic databases.
129  pfbtops       Translate a PostScript font in PFB format to PFA.
130  tfmtodit      Create font description files for TeX DVI device.
131  xtotroff      Create font description files for xditview.
132
133./tmac          Macro files.
134
135
1363) Documentation
137
138The groff documentation is scattered upon several places.
139
140- The main directory contains documents related to the groff source.
141  The README file contains the information needed to get the groff
142  package, report bugs, and contact the developers.
143
144- The man-page of each program (section 1) is kept in the source
145  directory of the program.
146
147- The man-pages for the other sections are found in `src/man'.
148
149- Documentation in other formats are located in the `doc' directory,
150  including the groff info file, tutorials, and manuals.
151
152
1534) The roff parser
154
155The parsing of the roff language is done by troff.  The input is converted
156to tokens in `src/roff/troff/input.cpp' and transformed into `nodes' by
157`src/roff/troff/env.cpp' and `src/roff/troff/node.cpp'.  From these, the
158intermediate output is generated (also in `node.cpp').
159
160
1615) Postprocessing
162
163The parser for the intermediate output and the postprocessing is in
164`src/libs/libdriver/input.cpp'.  This is used by all postprocessors.
165