A try at the new rule for block column allocation is now enabled by
[s-roff.git] / ChangeLog
blob4d0c5910ffdb1dd3f965b7eea51af7fc126a7027
1 2007-02-09  Eric S. Raymond  <esr@snark.thyrsus.com>
3         * src/preproc/tbl/table.cpp, src/preproc/tbl/table.h: A try at the
4         new rule for block column allocation is now enabled by the new
5         "experimental" flag.  It doesn't work right as yet; there appears
6         to be some error in the computation of 3avail, the available line
7         length.  The purpose of this patch is (a) to make experimenting
8         with other formulas easy, and (b) leave the infrastructure for
9         flag 'experimental' in place for future experiments.  Do not
10         document any behavior associated with this flag!
12         * src/preproc/tbl/table.cpp: New table::count_block_colums()
13         method counts columns in the table that have T{ T} entries.
14         Requires the new parent field in the table_entry class.  Not
15         yet used for anything.
16         
17         * src/preproc/tbl/table.cpp: Initializers for table_entry()
18         and all its subclasses now receive a pointer to their parent
19         table and use it to set a parent field in the instance.  This 
20         changes no behavior in itself, because the parent field 
21         is not yet used for anything.  But there are plans.
23 2007-02-08  Zhao, Yu (William)  <yzhao2@alcatel-lucent.com>
25         * src/devices/grodvi/dvi.cpp (draw_dvi_printer::draw) <'e'>: Set
26         line thickness.
28 2007-02-08  Werner LEMBERG  <wl@gnu.org>
30         * man/groff_out.man (offset): Make it work reliably.
32 2007-02-07  Eric S. Raymond  <esr@snark.thyrsus.com>
34         * man/groff_out.man: Simplify some font changes so \fP is less
35         likely to do something surprising.
36         
37         * man/groff_out.man: We can simplify the command macros still
38         further if we stop trying to hide structural requests inside them. 
39         Also, fix some instances of \} at start of line without a dot, and
40         make some font changes explicit in strings.
41         
42         * man/groff_out.man: Cleanup -- remove now-unneeded uses of .do and
43         .cp.
44         
45         * man/groff_out.man: Final step: Reduce x-command, get rid of eo/ec
46         calls and fix macros to do without them.  File should now be
47         viewer-portable.
48         
49         * man/groff_out.man: Fourth step: Eliminate use of eqn in favor of
50         micromotions that produce the same visual result and can be lifted
51         to XML-DocBook.
52         
53         * man/groff_out.man: Third step: Reduce Da-comand, fix a
54         call-sequence bug in the original.
55         
56         * man/groff_out.man: Second step: Reduce D-commmand and D-command+,
57         move font-change escapes to portable form.
59         * man/groff_out.man: First step in macro simplification; eliminate
60         list1..n, simplify .offset and .index_offset so they no longer
61         require groff-specific features or eqn (instead, use troff
62         micromotions for subscripting).
64 2007-02-06  Eric S. Raymond  <esr@snark.thyrsus.com>
66         * src/preproc/eqn/eqn.man: Minor corrections.
68         * chem.man, pdfroff.man, ditroff.man, groff_diff.man, groff.man,
69         groff_out.man, groff_tmac.man, roff.man, groff.man, grog.man,
70         an-ext.tmac, groff_man.man, groff_man.n, groff_trace.man: Change
71         .UR/.UE and .MT/.ME so the start macro no longer takes a second
72         argument that is pasted to the end of the generated text.  Instead,
73         the end macro takes an argument that does the same thing.
75 2007-02-05  Eric S. Raymond  <esr@snark.thyrsus.com>
77         * src/preproc/eqn/lex.cpp, src/preproc/eqn/eqn.man:
78         By popular demand, make ... set three lower dots again
79         and introduce a new predefined macro 'cdots' to set
80         three centered dots.
82 2007-02-05  Werner LEMBERG  <wl@gnu.org>
84         * src/preproc/eqn/eqn.man: Revised.
86         * src/preproc/eqn/text.cpp (map, special_char_boc::output): Use
87         `const'.
88         (spacing_type): Fix typo.
89         (special_to_entity): Use `const'.
90         Remove unused variable.
91         * src/preproc/eqn/other.cpp (font_box::output): Use `const'.
93 2007-02-05  Eric S. Raymond  <esr@snark.thyrsus.com>
95         * src/devices/grotty/grotty.man: \m[] and \M[] aren't portable,
96         which is a shame as the effect was cute.
98 2007-02-04  Eric S. Raymond  <esr@snark.thyrsus.com>
100         * man/groff_tmac.man, man/groff_diff.man: Portability conversion;
101         rip out over-elaborate macrology, use .EX/.EE and .UR/.UE where
102         possible, remove preamble declarations and macros that are no
103         longer needed.  Conversion checked using the protocol described in
104         tmac/TESTING-HINTS.
106 2007-02-03  Werner LEMBERG  <wl@gnu.org>
108         * tmac/an-old.tmac (LP, IP, HP): Use .ns to suppress additional
109         vertical space.
111 2007-02-03  Eric S. Raymond  <esr@snark.thyrsus.com>
113         * tmac/groff_man.man: Documented the extension macros, and 
114         added portability advice.
116         * MORE.STUFF: More-stuff entries for doclifter and pic2plot.
119         Add support for MathML output to eqn.  
121         The strategy used is very simple and relies on the fact that the box
122         models of eqn and Presentation MathML differ in only trivial ways. 
123         It leaves the grammar and existing internal object structures
124         unchanged.  A new global, `output_format', is defined as an
125         enumerated type with values {troff, mathml}.  Most of the functions
126         and methods that emit actual output acquire a top-level conditional,
127         dispatching on this global, which has one arm for troff mode and one
128         for MathML mode.  In most cases the MathML arm is drastically
129         simpler.
131         (This strategy could be easily generalized to support other output
132         formats.  TeX is a possibility that leaps to mind.)
134         The only even moderately tricky changes are in the lexer.  Some of
135         the predefined macros used constructs like `up', `down', `fwd',
136         `back', and `vcenter' that have no equivalents in MathML.  I
137         attacked this problem in these ways:
139         1. I eliminated three uses of `back' to compose characters in favor
140            of using equivalent groff specials `\(<<', `\(>>', and `\(<>'
141            that did not exist when these macros were written.  (This will be
142            a quality improvement for troff users.)
144         2. I eliminated one use of `vcenter' by using \\(md.  (Likewise...)
146         3. I then split the table of pre-definitions in three; one large
147            common table and two small troff-specific and MathML-specific
148            tables.  Use of troff-only operations (up, down, back, fwd,
149            vcenter) is now confined to the former.  The latter now uses
150            `size big' and drops out the explicit positioning operations,
151            counting on MathML processors to do them.
153         POTENTIAL TROUBLE SPOTS:
155         Here are notes for reviewers on places I'm not 100% sure I've done
156         the right thing:
158         * In the process of preparing the troff table, I translated three
159           definitions (dot_def, dotdot_def, and utilde def) that previously
160           used explicit \v escapes to use `up' and `down' instead.  I
161           modeled the new definitions on the way `vec' and `dyad' work, but
162           it's possible I got something subtle wrong.
164         * I'm not certain the MathML implementation of font_box::output() is
165           right, because I don't quite get what the switcheroo between
166           `current_roman_font' and `old_roman_font' is supposed to
167           accomplish.  It does seem to generare good MathML, though.
169         Finally, I made one purely cosmetic change in `text.cpp'; I replaced
170         with an enum some magic numbers for spacing types that I thought
171         were too ugly to live.
173         REMAINING ISSUES:
175         The entirety of eqn is translated when `-TMathML' is specified, 
176         with the following exceptions...
178         Limitations that cannot be fixed include non-support for special,
179         up/down/fwd/back, and vcenter.
181         Limitations that might be fixable include non-support for mark and
182         lineup.  I will investigate further, but if these can be implemented
183         at all it's going to be in a very complicated and nasty way.
185         The way character boxes are output means that each digit of a
186         multi-digit number gets its own <mn></mn> tag pair in the MathHTML. 
187         While this is not technically wrong for Presentation MathML, it is
188         ugly and inefficient.  Fixing this will require implementing a
189         little state machine in the `text.cpp' output method.
191         * src/preproc/eqn/box.cpp, src/preproc/eqn/delim.cpp, 
192         src/preproc/eqn/eqn.h, src/preproc/eqn/eqn.man, 
193         src/preproc/eqn/lex.cpp, src/preproc/eqn/limit.cpp,
194         src/preproc/eqn/list.cpp, src/preproc/eqn/main.cpp, 
195         src/preproc/eqn/other.cpp, src/preproc/eqn/over.cpp, 
196         src/preproc/eqn/pile.cpp, src/preproc/eqn/script.cpp,
197         src/preproc/eqn/sqrt.cpp, src/preproc/eqn/text.cpp,
198         src/preproc/eqn/eqn.man: MathML output mode.
200         * NEWS: Document it.
202 2007-02-02  Eric S. Raymond  <esr@snark.thyrsus.com>
204         * src/roff/groff/groff.man: Converted to use .SY/.OP/.YS
205         and for cross-viewer portability.  Conversion checked 
206         using the protocol described in tmac/TESTING-HINTS.
208 2007-02-02  Werner LEMBERG  <wl@gnu.org>
210         * tmac/an-ext.tmac (ME): Don't use `\:'.
212         * contrib/chem/chem.man, contrib/groffer/roff2.man,
213         src/roff/grog/grog.man: Further refinements and normalizations.
215 2007-02-02  Eric S. Raymond  <esr@snark.thyrsus.com>
217         * contrib/groffer/roff2.man, contrib/chem/chem.man, 
218         src/roff/grog/grog.man: Converted to use .SY/.OP/.YS
219         and for cross-viewer portability.  Conversion checked 
220         using the protocol described in tmac/TESTING-HINTS.
222 2007-02-01  Eric S. Raymond  <esr@thyrsus.com>
224         * tmac/TESTING-HINTS: Added.
226 2007-02-01  Eric S. Raymond  <esr@thyrsus.com>
228         Enable the support for Bell archaisms on .SC, so the `-r bell'
229         switch is no longer needed to format old AT&T papers like
230         the EQN user guide.
232         * tmac/s.tmac (.SC, .UC, .P1, .P2): Updated.
234         * tmac/groff_ms.man, doc/groff.texinfo, NEWS: Updated.
236 2007-02-01  Eric S. Raymond  <esr@thyrsus.com>
238         Add some Bell labs extensions to the -ms macros.
240         * tmac/s.tmac (.SC, .UC, .P1, .P2) [bell]: New macros.
242         * tmac/groff_ms.man, doc/groff.texinfo, NEWS: Document `-r bell'.
244 2007-01-30  Werner LEMBERG  <wl@gnu.org>
246         * tmac/an-ext.tmac (\n[EX]): Rename to \n[mX].
247         (\n[mH]): New register (set if grohtml is used).
248         (\n[SY]): Rename to \n[mS].
249         (\n[a]): Rename to \n[mA].
250         (\n[i]): Rename to \n[mI].
251         (mU): New auxiliary input trap macro.
252         (UR, UE): Replace stub with real definition.
253         (URL): Remove.
254         (MT, ME): New macros.
255         (MTO): Remove.
256         (EX, EE): Don't insert vertical space.
257         Use a register to store (and restore) the current font.
259         * man/ditroff.man, man/groff_diff.man, man/roff.man: Revised, based
260         on patches from Eric Raymond.
261         Fix URL addresses.
262         * contrib/pdfmark/pdfroff.man: Updated.
264 2007-01-22  Gaius Mulley  <gaius@glam.ac.uk>
266         * tmac/an-old.tmac (an-trap, HP): Make `HP' work as expected.
268 2007-01-22  Werner LEMBERG  <wl@gnu.org>
270         * tmac/an-ext.tmac: Protect against being sourced twice.
271         (URL, EE): Use always two backslashes.
272         (MTO): New macro.
274 2007-01-21  Werner LEMBERG  <wl@gnu.org>
276         * contrib/pdfmark/pdfroff.man: Revised, based on a patch from Eric
277         Raymond.  It now uses the new macros from an-ext.tmac.  This is the
278         first of a series of man patches which Eric has contributed.
280 2007-01-16  Werner LEMBERG  <wl@gnu.org>
282         * tmac/an-ext.tmac: Remove code for grodvi.
283         (SY): Fix typos.
284         Don't insert empty line.
285         (URL, TQ): Fix typos.
287 2007-01-14  Werner LEMBERG  <wl@gnu.org>
289         * tmac/an-ext.tmac: New file, containing extension macros
290         for -man.  See discussion on the groff mailing list for
291         background information.
292         * tmac/an-old.tmac: Load an-ext.tmac.
293         Decorate .ds and as with comment escapes where appropriate.
294         * tmac/Makefile.sub (NORMALFILES): Add an-ext.tmac.
296 2007-01-05  Werner LEMBERG  <wl@gnu.org>
298         * src/preproc/tbl/tbl.man: Document .T# and \n[TW].
300 2007-01-04  Gaius Mulley  <gaius@glam.ac.uk>
302         Make -me macros ready for grohtml.
304         * tmac/e.tmac: Load devtag.tmac.
305         (need_eo_h, need_eo_tl, need_tl): New registers.
306         (check_need_title, (x-html, )x-html, xp-html): New macros.
307         (@h, hl, ip, @p, sh, (b, (l, EQ, EN, TS, TE, PS, PE, GS, GE, r, i,
308         b, rb, bi, bx, (x, )x, xp): Adapt for use with grohtml.
309         (bp): Rename to @b only if output device is not html.
311 2007-01-01  Werner LEMBERG  <wl@gnu.org>
313         * man/groff_font.man: Document empty lines.
315         * src/utils/afmtodit/afmtodit.pl: Always print a header comment at
316         the very beginning of the output.
317         [!$opt_x]: Fix typo.
319         * font/devps/*: Regenerate font definition files.
321 2007-01-01  Werner LEMBERG  <wl@gnu.org>
323         * font/devps/generate/Makefile (AFMTODIT): Use -c flag.
325         * font/devps/*: Regenerate font definition files.
327 2006-12-31  Werner LEMBERG  <wl@gnu.org>
329         * Makefile.in (oldfontdir): New variable.
330         (MDEFINES): Add $(oldfontdir).
331         (uninstall_dirs): Remove `current' link.
332         Remove $(oldfontdir).
334         * Makefile.comm (oldfontsubdir): New variable.
335         (install_dev): Install files collected in $(OLDDEVFILES) into
336         $(oldfontsubdir).
337         (uninstall_dev): Remove data in $(oldfontsubdir).
338         (.man.n): Handle @OLDFONTDIR@.
340         * src/devices/grodvi/grodvi.man, src/devices/grohtml/grohtml.man,
341         src/devices/grolbp/grolbp.man, src/devices/grolj4/grolj4.man,
342         src/devices/grotty/grotty.man, src/devices/xditview/gxditview.man:
343         Document GROFF_FONT_PATH.
345         * src/devices/grops/grops.man: Document GROFF_FONT_PATH and
346         old font description files.
348         * font/devps/Makefile.sub (OLDDISTFILES, OLDDEVFILES): New
349         variables.
351         * font/devps/old/*: New directory, holding the previous version
352         of the 35 Adobe core font description files.
354         * font/devps/*: Regenerated the 35 Adobe core fonts, using the
355         Adobe-Core35_AFMs-229.tar.bz2 bundle from ftp.dante.de.
357         * NEWS: Document font update.
359 2006-12-31  Werner LEMBERG  <wl@gnu.org>
361         * font/devps/generate/Makefile (symbolsl.afm): Use $(srcdir).
363         * Makefile.comm (fonts): New (empty) target.
364         * Makefile.in (TARGETS): Add `fonts'.
366         * MANIFEST: Add `chem'.
368         * doc/groff.texinfo (Changing Fonts): Font translations with .ftr
369         can't be chained.
371 2006-12-26  Werner LEMBERG  <wl@gnu.org>
373         * src/preproc/grn/hdb.cpp: Include gprint.h later.  From NetBSD.
375 2006-12-19  Werner LEMBERG  <wl@gnu.org>
377         Add support for German.  For activation, simply use -mde or -mden
378         (for traditional and new orthgraphy, respectively) as the last
379         macro package.
381         * tmac/de.tmac, tmac/den.tmac, tmac/hyphen.det, tmac/hyphen.den,
382         tmac/hyphenex.det: New files, partly taken from CTAN.
383         * LICENSES: Updated list of hyphenation patterns.
384         * man/groff_tmac.man: Mention de.tmac and den.tmac.
385         * NEWS: Updated.
387 2006-12-11  Werner LEMBERG  <wl@gnu.org>
389         Support up to 32 macro arguments in pic (and up to 16 on EBCDIC
390         hosts).
392         * src/preproc/pic/lex.cpp (ARG1): Redefine.  Update all users.
393         (MAX_ARG): New macro.  Use it everywhere to replace hard-coded
394         limit of 9 arguments.
395         (process_body): Handle argument numbers with more than a single
396         digit.
397         (interpolate_macro_with_args): Protect against exceeding number of
398         arguments.
400         * NEWS, src/preproc/pic/pic.man, doc/pic.ms: Document it.
402 2006-12-10  Werner LEMBERG  <wl@gnu.org>
404         * Makefile.in (site.exp, docheck): Commented out.  Not working
405         currently.
406         (check): Just emit dummy message.
408 2006-12-08  Werner LEMBERG  <wl@gnu.org>
410         During installation, create soft link from <version> to `current' in
411         <datadir>/groff.
413         * Makefile.comm (install): Renamed to...
414         (do_install): This.
415         (prefix_must_exist): Removed.  Code moved to Makefile.in.
417         * Makefile.in (TARGETS): Remove `install'.
419         (install): New target which first creates the directory given by
420         --prefix, then calling `make' to do the installation, and finishing
421         with the creation of the soft link.
423 2006-11-21  Werner LEMBERG  <wl@gnu.org>
425         * doc/Makefile.sub (uninstall_sub): Fix names for info files.
427 2006-11-18  Werner LEMBERG  <wl@gnu.org>
429         * man/roff.man, doc/groff.texinfo: Improve history of roff, based on
430         information from Tom Van Vleck <thvv@multicians.org>.
432 2006-11-16  Werner LEMBERG  <wl@gnu.org>
434         * tmac/62bit.tmac: New macro package.
435         * tmac/Makefile.sub (NORMALFILES): Add it.
436         * NEWS: Document it.
438         * tmac/trace.tmac: Protect against being loaded again.
439         (nr): Always show result.
441         * doc/groff.texinfo (Input Encodings): Document latin-5.
443         * man/grof_tmac.man: Document sv, latinX, cp1047, 60bit, ec.
445 2006-11-13  Werner LEMBERG  <wl@gnu.org>
447         * doc/groff.texinfo (Page Location Traps) [.wh]: Give more details
448         on negative trap positions.
450 2006-11-10  Werner LEMBERG  <wl@gnu.org>
452         * Makefile.comm (.man.n): Handle @DATASUBDIR@.
454 2006-11-09  Werner LEMBERG  <wl@gnu.org>
456         * INSTALL: Move information about external installation from
457         INSTALL.gen into this file.
458         Updated.
460         * INSTALL.gen: Update to new version (from texinfo CVS).
462 2006-11-09  Bernd Warken
464         * INSTALL.gen: Extend the file by information on `external
465         installation'.  Reorder the installation instruction as `normal
466         installation'. 
468 2006-11-08  Werner LEMBERG  <wl@gnu.org>
470         * doc/Makefile.sub (install_data): Take care of proper paths while
471         installing info files.  Bug reported by Bernd Warken.
473 2006-11-06  Bernd Warken
475         * src/roff/grog/grog.pl: Rewrite.
476         - Call by `#! /usr/bin/env perl'.  That isn't replaced.
477         - Rename usage() to version().
478         - Use warnings.
479         - For `use strict', start all global variables with an upper case
480         character.  Use `my' for all variables.  Use several new variables.
481         - Add option `-h'.
482         - Add copyright to GPL and Emacs comment.
483         - Handle several `-m*' options.
484         - Fix handling of `-ms' and `-mm'.  Add .TL and .NH.
485         - Allow options after file names.
486         - Allow only one `-' parameter (standard input).
487         - Add option abbreviations.
488         - Expand the usage information.
489         - Add `chem'.
490         - Add single quote "'" as additional first character and allow
491         arbitrary space after the first character.
493         * src/roff/grog/grog.sh: Rewrite.
494         - Remove option `-e' of `sed'.
495         - Allow file names with space characters.
496         - Add option `-h'.
497         - Add copyright to GPL.
498         - Handle several `-m*' options.
499         - Fix handling of `-ms' and `-mm'.  Add .TL and .NH.
500         - Allow options after file names.
501         - Allow only one `-' parameter (standard input).
502         - Add option abbreviations.
503         - Expand the usage information.
504         - Add `chem'.
505         - Add single quote "'" as additional first character and allow
506         arbitrary space after the first character.
508         * src/roff/grog/Makefile.sub:
509         - Add copyright to GPL.
510         - Remove `grog:'.  Move `grog.old:' to `grog:' in order to have a
511         fair chance to choose between the shell version and the Perl
512         version of `grog'.  This is now again comparable to grog in groff
513         version 1.10.
515         * src/roff/grog/grog.man: Rewrite.
516         - Move the license to GPL.
517         - New sections: OPTIONS, DETAILS, EXAMPLES, COPYING.
518         - Take over some setup and macros from `groffer'.
519         - Add information on options.
521 2006-10-28  Werner LEMBERG  <wl@gnu.org>
523         * tmac/trace.tmac: Improve tracing of `.nr'.
524         Trace `.substring' also.
526         * NEWS: Updated.
528 2006-10-28  Bernd Warken
530         * man/roff.man, src/roff/groff/groff.man: Add `chem', fix position
531         of groff development site, fix fonts.
533         * News: Add information on `chem' and `groffer'.
535 2006-10-26  Bernd Warken
537         * Makefile.in (OTHERDIRS, NOMAKEDIRS): Add `chem' bundle.
539 2006-10-26  Werner LEMBERG  <wl@gnu.org>
541         Add `\%^' escape to handle the parameters to a macro as a string
542         argument.
544         * src/roff/troff/input.h (DOUBLE_QUOTE): New special character.
546         * src/roff/troff/input.cpp (input_iterator, input_stack,
547         macro_iterator): Add `space_follows_arg' member function.
548         (macro_iterator::add_arg): Add parameter to set the `space_follows'
549         flag.
550         (arg_list): Add member `space_follows'.
551         Update constructor and all callers.
552         (decode_args): Store discarded double quotes.
553         (interpolate_args): Handle DOUBLE_QUOTE.
554         Add `\%^' escape.
555         (get_copy, token::next, composite_glyph_name): Handle DOUBLE_QUOTE.
557         * tmac/trace.tmac: Trace .nr, .ds, .ds1, .as, .as1.
559         * docs/groff.texinfo (Parameters), man/groff.man,
560         man/groff_diff.man, NEWS: Document it.
562 2006-10-24  Bernd Warken
564         * Makefile.in (NOMAKEDIRS): Add groffer subdirectories.
566 2006-10-24  Werner LEMBERG  <wl@gnu.org>
568         * tmac/groff_trace.man: Mention problem with `\\\\'.
570 2006-10-23  Werner LEMBERG  <wl@gnu.org>
572         * doc/groff.texinfo (Expressions): Improve documentation of `!'.
574         * tmac/trace.tmac (return): Don't call `substring'.
576 2006-09-10  Werner LEMBERG  <wl@gnu.org>
578         * src/roff/troff/input.cpp (read_size): Revert previous change
579         w.r.t. `\s-[-...]'.
581         * doc/groff.texinfo (Fractional Size Types): Clarify syntax of \s.
583 2006-09-09  Werner LEMBERG  <wl@gnu.org>
585         * src/roff/troff/input.cpp (read_size): Fix `\s[-\n[.s]]' so that it
586         behave the same as `\s-[\n[.s]]' (this is, emit a warning and set
587         point size to 1).  Reported by Gunnar Ritter.
588         Also catch `\s-[-...]' and friends (causing an error).
590 2006-09-06  Werner LEMBERG  <wl@gnu.org>
592         * src/roff/troff/env.cpp (environment::do_break): Insert zero-width
593         space only if there is no previous space.  This fixes a bug which
594         caused unwanted filling of the last line in a paragraph.  Thanks to
595         Gunnar Ritter for an analysis.
597 2006-09-03  Werner LEMBERG  <wl@gnu.org>
599         * src/roff/groff/groff.cpp (main): Pass -U flag to pic also.
600         Reported by Jennifer Sayers <jenjen@isu.usyd.edu.au>.
602 2006-09-01  Nick Stoughton  <nick@msbit.com>
603             Werner LEMBERG  <wl@gnu.org>
605         Add a request `pev' to print environment information (similar to
606         `pnr' and `ptr' to print number registers and traps).
608         * src/roff/troff/env.h (environment): Add member function print_env.
610         * src/roff/troff/env.cpp: (environment::print_env): New function to
611         print a given environment state.
612         (print_env): New global function to iterate through the
613         environments, printing each one.
614         (init_env_requests): Register `pev'.
616         * doc/groff.texinfo (Debugging), man/groff.man, man/groff_diff.man,
617         NEWS: Document `pev' request.
619 2006-09-01  Bernd Warken
621         * src/preproc/soelim/soelim.cpp (usage): Fix option argument of
622         `-I' to `dir'.
624 2006-09-01  Werner LEMBERG  <wl@gnu.org>
626         * src/preproc/pic/main.cpp (usage): Add missing options.
628 2006-08-25  Werner LEMBERG  <wl@gnu.org>
630         * src/preproc/soelim/soelim.man: Document how to insert `\' and ` '
631         in file names.
633 2006-08-19  Werner LEMBERG  <wl@gnu.org>
635         * configure: Regenerated.
637 2006-08-18  Keith Marshall  <keith.d.marshall@ntlworld.com>
639         * m4/groff.m4 (GROFF_MAKEINFO): Correct `makeinfo version testing
640         logic; it previously caused an `expr' syntax error, if no version of
641         `makinfo' was present.  Also, remove dependency on `makeinfo' in VPATH
642         builds, if an up to date `groff.info' is present in either `builddir'
643         or in `srcdir'.
645 2006-08-12  Tadziu Hoffmann  <hoffmann@usm.uni-muenchen.de>
647         * font/devps/prologue.ps: Add BPhook.
649         * src/devices/grops/grops.man: Document BPHook.
650         Reorder some sections for better readability.
652 2006-08-12  Werner LEMBERG  <wl@gnu.org>
654         * src/include/lib.h (getlocale): New macro.
655         (setlocale, LC_ALL, LC_CTYPE) [!HAVE_SETLOCALE]: Define, as
656         suggested by Bruno.
658         * src/preproc/preconv/preconv.cpp (main): Use getlocale.
660 2006-08-11  Werner LEMBERG  <wl@gnu.org>
662         Add new flag to .cflags to enable hyphenation without looking at
663         hcode values.
665         * src/roff/troff/charinfo.h (charinfo): New enumeration value
666         `IGNORE_HCODES'.
667         New member function `ignore_hcodes'.
669         * src/roff/troff/node.cpp (break_char_node::add_self,
670         node::add_char): Updated.
672         * doc/groff.texinfo, man/groff_diff.man, NEWS: Document it.
674 2006-08-09  Werner LEMBERG  <wl@gnu.org>
676         Support composite Unicode characters again.  Reported by Colin.
678         * font/devhtml/R.proto: Renamed to...
679         * font/devhtml/R.in: This.
681         * font/devutf8/R.proto: Renamed to...
682         * font/devutf8/R.in: This.
683         Add `charset' line.
685         * font/make-Rproto: New script.
686         * font/devhtml/R.proto, font/devutf8/R.proto: Generated.
688 2006-07-26  Werner LEMBERG  <wl@gnu.org>
690         * README: Fix description of CVS access.  Reported by Joachim.
692 2006-07-11  Werner LEMBERG  <wl@gnu.org>
694         Add a request `.fzoom' and a number register `.zoom' to magnify
695         fonts.
697         * src/include/font.h (font): Add member variable `zoom'.
698         Add member functions `set_zoom' and `get_zoom'.
699         Remove `static' attribute from `scale' member function.
701         * src/libs/libgroff/font.cpp (font::font): Updated.
702         (scale_round): New version with three parameters to handle zoom
703         factor.
704         (font::scale, font::get_width): Handle zoom factor.
705         (font::set_zoom, font::get_zoom): New functions.
706         (font::load): Handle `zoom' while computing `space_width'.
708         * src/roff/troff/env.h: Declare `env_get_zoom'.
709         (environment): Add member function `get_zoom'.
711         * src/roff/troff/env.cpp (environment::get_zoom): New function.
712         (init_env_requests): Initialize `.zoom' register.
714         * src/roff/troff/node.cpp (font_info): New member functions
715         `set_zoom' and `get_zoom'.
716         (tfont): New member function `get_zoom'.
717         (env_get_zoom): New function.
718         (troff_output_file::set_font): Handle zoom factor.
719         (font_zoom_request): New function.
720         (init_node_requests): Initialize `fzoom' request.
722         * docs/groff.texinfo (Changing Fonts), man/groff.man,
723         man/groff_diff.man, NEWS: Document `fzoom' request and `.zoom'
724         register.
726         * src/roff/troff/TODO: Updated.
728 2006-07-10  Werner LEMBERG  <wl@gnu.org>
730         * doc/groff.texinfo (Drawing Requests): Improve documentation of
731         \D'P ...'.
733 2006-07-02  Werner LEMBERG  <wl@gnu.org>
735         * man/groff_tmac.man: Document usage of .PSPIC within diversions.
737 2006-07-01  Werner LEMBERG  <wl@gnu.org>
739         * tmac/pspic.tmac: Make .PSPIC work for all devices.
740         Print image file name for devices which don't support PS image
741         inclusion.
742         Handle multiple inclusions.
743         Add lots of comments.
745         * tmac/dvi.tmac, tmac/html.tmac, tmac/ps.tmac: Don't load
746         pspic.tmac.
748         * tmac/troffrc: Load pspic.tmac.
750         * man/groff_tmac.man: Update .PSPIC documentation.
752         * NEWS: Updated.
754 2006-06-29  Werner LEMBERG  <wl@gnu.org>
756         * src/roff/troff/input.cpp (interpolate_macro):
757         s/probably/possibly/, as suggested by Keith.
759 2006-06-28  Werner LEMBERG  <wl@gnu.org>
761         Add support for \D'p...' to grotty.
763         * src/devices/grotty/grotty.cpp (tty_printer::draw): Move most of
764         its code to...
765         (tty_printer::line): This function.
766         (tty_printer::draw): Rewritten; just call either draw_line or
767         draw_polygon.
768         (tty_printer::draw_line, tty_printer::draw_polygon): New functions.
770         * src/devices/grotty/grotty.man, NEWS: Document it.
772 2006-06-27  Werner LEMBERG  <wl@gnu.org>
774         * src/preproc/refer/command.h (have_bibliography): New variable
775         declaration.
777         * src/preproc/refer/command.cpp (bibliography_command): Set
778         `have_bibliography'.
780         * src/preproc/refer/refer.cpp: Initialize `have_bibliography'.
781         (output_references): Emit warning only if `have_bibliography' is
782         set.
784 2006-06-15  Michail Vidiassov  <master@iaas.msu.ru>
786         * fonts/devps/Makefile.sub (DISTFILES): Add freeeuro.afm.
787         * fonts/devps/generate/Makefile (clean): Don't remove symbolsl.afm
788         and zapfdr.afm.
790 2006-06-15  Werner LEMBERG  <wl@gnu.org>
792         * src/preproc/tbl/tbl.man: Document limitations of .TS/.TE within a
793         macro (as suggested by Tadziu Hoffmann).
795 2006-06-12  Werner LEMBERG  <wl@gnu.org>
797         * src/preproc/tbl/tbl.man: Add example for use of .TS/.TE within a
798         macro (as suggested by Tadziu Hoffmann).
800 2006-06-05  Werner LEMBERG  <wl@gnu.org>
802         * tmac/strip.sed: Strip `\#' also.
804         * doc/groff.texinfo (Operators in Conditionals): Document usage of
805         \? for string comparison.
807 2006-06-04  Werner LEMBERG  <wl@gnu.org>
809         * doc/groff.texinfo: Add more index entries for copy-in mode.
810         (Changing Fonts) <.ft>: Document that a font definition file must
811         not be called `DESC'.
813 2006-05-31  Werner LEMBERG  <wl@gnu.org>
815         * src/roff/troff/input.cpp (token::next) <\N>: Catch negative values
816         here.
818         * doc/Makefile.sub (EXAMPLEFILES): Move gnu.eps to...
819         (PROCESSEDEXAMPLEFILES): Here.
821 2006-05-30  Werner LEMBERG  <wl@gnu.org>
823         * src/libs/libgroff/font.cpp (font::load): Reject fonts called
824         `DESC'.
825         Reduce number of false positives for `.if F ...' conditionals.
826         Improve warning messages.
828 2006-05-29  Werner LEMBERG  <wl@gnu.org>
830         * tmac/Makefile.sub: Add copyright notice.
831         (NORMALFILES): Add man.tmac and ms.tmac.
832         (SPECIALFILES): Remove man.tmac and ms.tmac.
833         (CLEANADD): Remove man.tmac-sed and ms.tmac-sed.
834         (install_data, uninstall_sub): Don't handle man.tmac and ms.tmac
835         specially.
836         (stamp-sed): Don't handle man.tmac and ms.tmac.
837         Remove obsolete components in sed's regexp.
839         * doc/Makefile.sub (EXAMPLEFILES): Add gnu.eps.
841         * Makefile.in (OTHERDIRS, NOMAKEDIRS): Add hdtbl.
843 2006-05-28  Werner LEMBERG  <wl@gnu.org>
845         * doc/groff.texinfo (History): Correct death circumstances of Joe
846         Ossanna.
848 2006-05-27  Werner LEMBERG  <wl@gnu.org>
850         * tmac/an-old.tmac (an-do-tag): Simplify.
852 2006-05-26  Werner LEMBERG  <wl@gnu.org>
854         * tmac/an-old.tmac (an-do-tag): Make margin characters work.
855         (an-header, an-p-footer): Use named environment.
857         * src/roff/troff/env.cpp (environment::copy): Copy margin character
858         node.
860 2006-05-21  Werner LEMBERG  <wl@gnu.org>
862         * tmac/trace.tmac (de1): Fix serious typo (.di -> .do) and minor
863         omissions.
865 2006-05-11  Keith Marshall  <keith.d.marshall@ntlworld.com>
867         * src/roff/groff/groff.man: Remove superfluous word `intermediate'.
869 2006-05-10  Keith Marshall  <keith.d.marshall@ntlworld.com>
871         * src/roff/groff/groff.man: Update copyright notice.
872         Improved wording to describe effect of `-Z' option.
874 2006-05-06  Werner LEMBERG  <wl@gnu.org>
876         * tmac/www.tmac: Decorate `.ds' with trailing `\"' where missing.
877         Normalize handling of `"' in arguments.
878         (PIMG): Remove debug message.
879         Simplify code.
881 2006-05-05  Werner LEMBERG  <wl@gnu.org>
883         * src/devices/grohtml/post-html.cpp (page::add_and_encode): Don't
884         swallow character immediately after `\[...]'.
885         Simplify code.
887 2006-05-02  Gaius Mulley  <gaius@glam.ac.uk>
889         * tmac/www.tmac (PIMG): Fix the HTML device specific components.
891 2006-05-02  Larry Kollar  <kollar@alltel.net>
893         * tmac/www.tmac (PIMG): Really default to `-C' if the alignment
894         option is missing.
896 2006-04-30  Michail Vidiassov  <master@iaas.msu.ru>
898         * src/utils/afmtodit/afmtodit.pl: New option `-c' to add font
899         information as a comment in output.
900         * src/utils/afmtodit/afmtodit.man, NEWS: Document it.
902 2006-04-26  Werner LEMBERG  <wl@gnu.org>
904         * src/devices/grohtml/post-html.cpp (html_printer::~html_printer):
905         Handle current_paragraph only if it is non-NULL.
907         * src/libs/libdriver/input.cpp (parse_x_command <'F'>, do_file
908         <'F'>): Use `get_extended_arg' to behave as documented.  Reported by
909         Bill Ward <william.a.ward.jr@erdc.usace.army.mil>.
912         Surround the (pseudo) file name for the .pso request with `<' and
913         `>'.
915         * src/roff/troff/node.cpp (real_output_file, troff_output_file): Add
916         second parameter to `really_put_filename' and `put_filename'.
917         (troff_output_file::really_put_filename): Emit `<' and `>' around
918         filename if second argument is set.
919         * src/roff/troff/node.h: Updated.
921         * src/roff/troff/input.cpp (file_iterator::file_iterator,
922         file_iterator::set_location): Update to changes in node.cpp.
924 2006-04-25  Tetsurou Okazaki  <okazaki@FreeBSD.org>
926         * src/preproc/preconv/preconv.cpp (do_file): Fix conditional
927         preprocessor expression (I18N -> HAVE_ICONV).
928         (main): Fix handling of option `-h'.
929         Fix conditional preprocessor expression.
931 2006-04-04  Werner LEMBERG  <wl@gnu.org>
933         Implement new number register `.br' which is set to 1 if a macro has
934         been called as .foo and to 0 if called as 'bar.  This is useful for
935         -mtrace so that requests can be reliably traced too.
937         * src/roff/troff/input.cpp (input_iterator): Add virtual function
938         `get_break_flag'.
939         (macro_iterator): Add `with_break' member and `get_break_flag'
940         function.
941         Update constructors.
942         (input_stack): Add function `get_break_flag'.
943         (break_flag_reg): New number register class.
944         (input_init_requests): Register `.br'.
946         * src/roff/troff/TODO: Updated.
948         * tmac/trace.tmac: s/!!sp/!!!sp/.
949         Modify definitions of `de', `de1', `am', and `am1' to use \n[.br].
951         * docs/groff.texinfo (Requests), man/groff.man, man/groff_diff.man,
952         NEWS: Document it.
954 2006-03-29  Werner LEMBERG  <wl@gnu.org>
956         * src/devices/grops/ps.cpp: s/must not/should not/ in warning
957         messages where appropriate.
959 2006-03-28  Werner LEMBERG  <wl@gnu.org>
961         * configure.ac: Call AC_PROG_EGREP.
962         * configure: Regenerated.
964         * Makefile.in (EGREP): New variable.
965         (MDEFINES): Add $(EGREP).
967         * src/roff/grog/grog.sh: Treat .TH between .TS and .TE properly
968         (bug reported by Robert Goulding <Goulding.2@nd.edu>).
969         Use @EGREP@.
971         * src/roff/grog/Makefile.sub (grog, grog.old): Use $(EGREP).
973 2006-03-27  Werner LEMBERG  <wl@gnu.org>
975         Add two requests `.device' and `.devicem' which are equivalent to
976         `\X' and `\Y', respectively.
978         * src/roff/troff/input.cpp (device_request, device_macro_request):
979         New functions.
980         (init_input_requests): Register them.
982         * doc/groff.texinfo (Postprocessor Access), man/groff_diff.man,
983         man/groff.man, NEWS: Document them.
985 2006-03-27  Gaius Mulley  <gaius@glam.ac.uk>
987         * src/roff/troff/input.cpp (encode_char): Emit special characters
988         for -Thtml as `\[...]'.
989         * src/devices/grohtml/post-html.cpp (page::add_and_encode): Updated.
991         * doc/groff.texinfo (Postprocessor Access) <\X>: Updated.
993 2006-03-27  Werner LEMBERG  <wl@gnu.org>
995         * tmac/Makefile.sub (NORMALFILES, SPECIALFILES): Add various missing
996         files.
998 2006-03-26  Werner LEMBERG  <wl@gnu.org>
1000         * doc/groff.texinfo (Writing Macros): More documentation on
1001         end-of-macro symbol of `.de'.
1002         (Diversions): Minor addition to `.di' description.
1004         * src/devices/grops/grops.man: Some clarifications regarding
1005         insertion of PostScript snippets.
1007 2006-03-25  Michail Vidiassov  <master@iaas.msu.ru>
1009         Add rules to generate `symbolsl.afm'.
1011         * fonts/devps/generate/zapfdr.sed,
1012         fonts/devps/generate/symbolsl.awk: New files.
1014         * fonts/devps/generate/Makefile (symbolfont, PRINTAFM): New
1015         variables.
1016         (SS, clean): Updated.
1017         (freeeuro.afm): Use $(srcdir).
1018         (symbolsl.afm): New rule.
1019         (zapfdr.afm): Use zapfdr.sed.
1021 2006-03-22  Dwight Aplevich  <aplevich@uwaterloo.ca>
1023         * src/preproc/pic/pic.y (expr <INT>): Fix code.
1025 2006-03-22  Jörgen Grahn <jgrahn@algonet.se>
1027         * tmac/sv.tmac: Add missing translations and activate support for
1028         other macro packages.
1030 2006-03-21  Francis GUDIN  <fgudin@nerim.net>
1032         * tmac/doc-syms (Dx): New macro to identify DragonFly.
1033         (doc-str-St--ieee1275-94, doc-str-St--isoC-amd1,
1034         doc-str-St--isoC-tcor1, doc-str-St--isoC-tcor2): New standard
1035         strings.
1036         (doc-operating-system-FreeBSD-5.5, doc-operating-system-FreeBSD-7.0,
1037         doc-operating-system-NetBSD-1.6.3, doc-operating-system-NetBSD-4.0
1038         doc-operating-system-DragonFly-*): New operating system strings.
1040         * tmac/groff_mdoc.man, NEWS: Document `Dx'.
1042 2006-03-21  Werner LEMBERG  <wl@gnu.org>
1044         * src/preproc/pic/pic.y (object_spec THEN): For compatibility with
1045         both DWB pic and dpic, make
1047           right;
1048           line then down;
1050         equal to
1052           right;
1053           line right then down;
1055         instead of
1057           right;
1058           line 0 then down;
1060         * doc/pic.ms: Document this.
1062 2006-03-20  Werner LEMBERG  <wl@gnu.org>
1064         * doc/pic.ms: With permission of Eric Raymond, put it under the
1065         GPL.
1067         * NEWS: Updated.
1069 2006-03-19  Werner LEMBERG  <wl@gnu.org>
1071         * src/preproc/pic/pic.y (expr <INT>): Really return integer part.
1073         * src/preproc/pic/objects.cpp (object_spec::make_line): Handle `at'
1074         attribute in combination with `with'.  Bug reported by Jennifer
1075         Sayers <jenjen@mail.usyd.edu.au>.
1077 2006-03-19  Miklos Somogyi  <msom@netspace.net.au>
1079         * doc/groff.texinfo (Manipulating Spacing): Improve documentation of
1080         `.sp'.
1082 2006-03-18  Werner LEMBERG  <wl@gnu.org>
1084         * LICENSE: Renamed to...
1085         * LICENSES: This.  Collect all licensing information in this file.
1086         * tmac/README, src/libs/snprintf/README: Removed.
1088         * src/devices/grops/grops.man: Add section how to install fonts.
1090         * src/utils/xtotroff/xtotroff.c: Add GPL.
1092 2006-03-17  Werner LEMBERG  <wl@gnu.org>
1094         * Makefile.comm (.y.cpp): Fix #line arguments in output.
1096 2006-03-13  Werner LEMBERG  <wl@gnu.org>
1098         * src/preproc/tbl/tbl.man: Mention default length of text blocks.
1100         * tmac/doc-common (Os): Add more Darwin versions.
1101         * tmac/groff_mdoc.man: Document them.
1103         * doc/groff.texinfo (Operators in Conditionals): Mention that `c'
1104         works with \N'...' also.
1105         * man/groff_diff.man: Ditto.  Remove use of future tense where
1106         possible.
1108 2006-03-12  Michail Vidiassov  <master@iaas.msu.ru>
1110         * fonts/devps/generate/make-zapfdr, fonts/devps/symbolsl.ps,
1111         fonts/devps/zapfdr.ps: Add `%%EndComments' line.
1113 2006-03-10  Larry Kollar  <kollar@alltel.net>
1115         * doc/groff.texinfo (Headers and footers): Document PT, HD, and BT.
1117 2006-03-10  Werner LEMBERG  <wl@gnu.org>
1119         * src/devices/grops/ps.cpp (ps_printer::do_exec, ps_printer::do_def,
1120         ps_printer::do_mdef): Overlong lines now cause a warning message,
1121         not an error.
1123 2006-03-09  Werner LEMBERG  <wl@gnu.org>
1125         * font/devps/generate/make-zapfdr: New script for generating
1126         `zapfdr.ps'.
1128 2006-03-08  Werner LEMBERG  <wl@gnu.org>
1130         * doc/groff.css (pre): Fix `background-color' value.
1132 2006-03-04  Larry Kollar  <kollar@alltel.net>
1134         * tmac/groff_ms.man: Document PT, HD, and BT.
1136 2006-03-04  Werner LEMBERG  <wl@gnu.org>
1138         * src/roff/troff/node.cpp (make_glyph_node): Improve warning message
1139         for single-letter glyph names.
1141 2006-03-02  Werner LEMBERG  <wl@gnu.org>
1143         * tmac/sv.tmac: New file; currently holding only the Swedish strings
1144         for -mm.
1145         * tmac/hyphen.sv: New hyphenation pattern file for Swedish, taken
1146         from CTAN.
1147         * tmac/README: Updated.
1149 2006-02-27  Werner LEMBERG  <wl@gnu.org>
1151         * tmac/trans.tmac (Liec, Letdate, Letns!14): Add it (for -mm).
1152         * tmac/fr.tmac: Add French translations.
1154         * tmac/composite.tmac: Add entry for `:'.
1156 2006-02-26  Werner LEMBERG  <wl@gnu.org>
1158         * doc/Makefile.sub (HTMLEXAMPLEFILESALL): New variable.
1159         (CLEANADD): Use it.
1160         (install_html, uninstall_sub): Updated.
1162 2006-02-26  Bruno Haible  <bruno@clisp.org>
1164         Introduce Unicode fonts.
1166         * font/devhtml/DESC.proto: Mark as unicode.
1167         * font/devhtml/R.proto: Remove all charset entries that are already
1168         in glyphuni.cpp.
1169         * font/devutf8/DESC.proto: Mark as unicode.
1170         * font/devutf8/R.proto: Remove all charset entries.
1171         * src/include/font.h (font): New static field `is_unicode'.
1172         Change order of fields.
1173         * src/libs/libgroff/font.cpp: Include unicode.h.
1174         (font::font): Update for changed order of fields.
1175         (font::contains, font::get_width, font::get_height, font::get_depth,
1176         font::get_italic_correction, font::get_left_italic_correction,
1177         font::get_subscript_correction, font::get_character_type,
1178         font::get_code, font::get_special_device_encoding): Handle both the
1179         explicitly enumerated glyphs and use general code for Unicode fonts.
1180         (font::load): Make the charset section optional when the font is
1181         declared unicode.
1182         (font::load_desc): Recognize the `unicode' attribute.
1183         * src/libs/libgroff/fontfile.cpp (font::is_unicode): New variable.
1185 2006-02-26  Claudio Fontana  <claudio@gnu.org>
1187         * Makefile.in: Add comment about DESTDIR.
1189         * Makefile.sub: Add DESTDIR to install and uninstall targets
1190         to support staged installations.
1191         * Makefile.comm: Likewise.
1192         * doc/Makefile.sub: Likewise.
1193         * contrib/eqn2graph/Makefile.sub: Likewise.
1194         * contrib/gdiffmk/Makefile.sub: Likewise.
1195         * contrib/grap2graph/Makefile.sub: Likewise.
1196         * contrib/pic2graph/Makefile.sub: Likewise.
1197         * src/devices/xditview/Makefile.sub: Likewise.
1198         * src/preproc/eqn/Makefile.sub: Likewise.
1199         * src/roff/grog/Makefile.sub: Likewise.
1200         * src/roff/nroff/Makefile.sub: Likewise.
1201         * src/utils/afmtodit/Makefile.sub: Likewise.
1202         * src/utils/indxbib/Makefile.sub: Likewise.
1203         * tmac/Makefile.sub: Likewise.
1205 2006-02-24  Werner LEMBERG  <wl@gnu.org>
1207         * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list): Use entry
1208         for \-.
1209         Remove commented out entries for \' and \` (there are no such glyph
1210         names).
1212         * src/libs/libgroff/uniglyph.cpp (unicode_to_glyph_list): Remove
1213         commented out entries for \' and \`.
1216         * */*: s/legal/valid/ where appropriate.
1218 2006-06-23  Werner LEMBERG  <wl@gnu.org>
1220         * font/devhtml/R.proto, font/devutf8/R.proto: Remove incorrect \'
1221         and \` entries.
1223 2006-02-22  Werner LEMBERG  <wl@gnu.org>
1225         Remove all remaining traces from the `shc' glyph.
1227         * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list),
1228         src/libs/libgroff/uniglyph.cpp (unicode_to_glyph_list): Remove
1229         entry for `shc'.
1231         * font/devlatin1/R.proto, font/devcp1046/R.proto: Replace `shc'
1232         entry with unnamed glyph.
1234         * tmac/html/tmac: Remove `shc' entry from call to `.cflags'.
1236         * src/preproc/preconv/preconv.cpp (unicode_entity): Handle U+00AD
1237         specially.
1239 2006-02-22  Bruno Haible  <bruno@clisp.org>
1241         Concretize the `glyph' datatype.
1243         * src/include/font.h (glyph): Remove class.
1244         (glyph): Renamed from struct `glyphinfo'.
1245         (glyph_to_index): New inline function.
1246         (glyph_to_name): Make extern, not inline.
1247         (glyph_to_number): Update.
1248         (font): Use `glyph *' instead of `glyph'.
1250         * src/libs/libgroff/nametoindex.cpp (charinfo): Inherit from class
1251         `glyph'.  Make `name' field public.
1252         (character_indexer, number_to_glyph, name_to_glyph): Use `glyph *'
1253         instead of `glyph'.
1254         (glyph_to_name): Renamed from `glyph::glyph_name'.
1256         * src/roff/troff/charinfo.h (charinfo): Inherit from class `glyph'.
1257         Use `glyph *' instead of `glyph'.
1259         * src/roff/troff/input.cpp (name_to_glyph, number_to_glyph): Use
1260         `glyph *' instead of `glyph'.
1261         (glyph_to_name): Renamed from `glyph::glyph_name'.
1263         * src/libs/libgroff/font.cpp: Use `glyph *' instead of `glyph',
1264         and `glyph_to_index' instead of `glyph::glyph_index'.
1266         * src/include/printer.h (printer): Use `glyph *' instead of `glyph'.
1267         * src/libs/libdriver/printer.cpp: Likewise.
1268         * src/devices/grodvi/dvi.cpp: Likewise.
1269         * src/devices/grohtml/post-html.cpp: Likewise.
1270         * src/devices/grolbp/lbp.cpp: Likewise.
1271         * src/devices/grolj4/lj4.cpp: Likewise.
1272         * src/devices/grops/ps.cpp: Likewise.
1273         * src/devices/grotty/tty.cpp: Likewise.
1275 2006-02-22  Werner LEMBERG  <wl@gnu.org>
1277         * font/devdvi/generate/tc.map: Add `sr' glyph.
1278         * font/devdvi/*TC: Regenerated.
1280         * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list): Use entry
1281         for `sqrt'.
1283 2006-02-21  Werner LEMBERG  <wl@gnu.org>
1285         * man/groff_char.man: Explain `***' marker.
1287 2006-02-17  Bruno Haible  <bruno@clisp.org>
1289         * src/libs/libgroff/nametoindex.cpp (character_indexer): Rename
1290         methods and fields from *_index to *_glyph.
1291         (character_indexer::named_char_glyph): Test for `charNNN' name
1292         here...
1293         (name_to_glyph): ... not here.
1295 2006-02-17  Bruno Haible  <bruno@clisp.org>
1297         * src/include/font.h (name_to_glyph): Renamed from
1298         font::name_to_index.
1299         (number_to_glyph): Renamed from font::number_to_index.
1300         (glyph_to_name): Renamed from font::index_to_name.
1301         (glyph_to_number): Renamed from font::index_to_number.
1302         * src/libs/libgroff/nametoindex.cpp: Likewise.
1303         * src/roff/troff/charinfo.h (charinfo::as_glyph): Renamed from
1304         charinfo::get_index.
1306         * src/roff/troff/input.cpp: All callers changed.
1307         * src/roff/troff/node.cpp: Likewise.
1308         * src/libs/libgroff/font.cpp: Likewise.
1309         * src/devices/grops/ps.cpp: Likewise.
1310         * src/devices/grohtml/post-html.cpp: Likewise.
1311         * src/libs/libdriver/printer.cpp: Likewise.
1313 2006-02-17  Werner LEMBERG  <wl@gnu.org>
1315         * src/include/ptable.h, src/include/itable.h
1316         (NEXT_PTABLE_SIZE_DEFINED): Use it to avoid multiple declaration
1317         of external symbol `next_ptable_size' (used by both header files).
1319 2006-02-15  Bruno Haible  <bruno@clisp.org>
1321         * src/include/font.h (glyphinfo): New class.
1322         (glyph): Change internal representation.
1323         Change constructor signature.
1324         New method glyph::glyph_number().
1325         (glyph::glyph, glyph glyph::undefined_glyph, glyph::glyph_index,
1326         glyph::operator==, glyph::operator!=): Update.
1327         (font::index_to_name, font::index_to_number): New functions.
1329         * src/include/itable.h: New file, based on src/include/ptable.h.
1331         * src/libs/libgroff/nametoindex.cpp: Include itable.h.
1332         (class charinfo): New class.
1333         (class character_indexer): Change table result type from `int' to
1334         `class charinfo'.
1335         Add table with integer key.
1336         (character_indexer::character_indexer): Update.
1337         (character_indexer::ascii_char_index): Update.
1338         (character_indexer::numbered_char_index): Use NULL as name, not a
1339         string starting with a space.
1340         (character_indexer::named_char_index): Update.
1341         (font::number_to_index, font::name_to_index): Remove no-op cast.
1342         (glyph::glyph_name): New method.
1343         * src/roff/troff/charinfo.h (class charinfo): Inherit from class
1344         glyphinfo.
1345         (NUMBERED): Remove flag bit.
1346         (charinfo::numbered, charinfo::get_index): Update.
1348         * src/roff/troff/input.cpp (charinfo::charinfo): Update.
1349         (charinfo::set_number, charinfo::get_number): Update.
1350         (glyph::glyph_name): New method.
1352 2006-02-15  Werner LEMBERG  <wl@gnu.org>
1354         * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list): Fix
1355         entries for `>>', `<<', `*f', and `+f'.  Reported by Bruno.
1357 2006-02-13  Werner LEMBERG  <wl@gnu.org>
1359         * font/devps/prologue.ps (RE): Check `UniqueID' also, similar to
1360         dvips.
1362 2006-02-11  Werner LEMBERG  <wl@gnu.org>
1364         * src/include/font.h: s/glyph_t/glyph/.
1365         Update all callers.
1367         * src/devices/grotty/tty.cpp: s/glyph/tty_glyph/.
1368         s/output_character_t/output_character/.
1370 2006-02-11  Bruno Haible  <bruno@clisp.org>
1372         New accessor method glyph_t::glyph_name().
1374         * src/include/ptable.h (declare_ptable): Add a return value to the
1375         `define' method, and declare a `lookupassoc' method.
1376         (implement_ptable): Return the stored key in `define'.  Implement
1377         lookupassoc.
1378         * src/include/font.h (glyph_t): Add `name' field.  Add an argument
1379         to the constructor.
1380         (glyph_t::glyph_name): New method.
1382         * src/libs/libgroff/nametoindex.cpp (character_indexer): Change
1383         return type of methods and field member type to glyph_t.
1384         (character_indexer::character_indexer): Update.
1385         (character_indexer::ascii_char_index): Allocate a name for the
1386         glyph.
1387         Return a glyph_t with name.
1388         (character_indexer::numbered_char_index): Return a glyph_t without a
1389         name.
1390         (character_indexer::named_char_index): Return a glyph_t with a name.
1391         (font::number_to_index, font::name_to_index): Update.
1393         * src/roff/troff/input.cpp (charinfo::charinfo): Use the symbol as
1394         the glyph's name.
1396 2006-02-11  Bruno Haible  <bruno@clisp.org>
1398         * src/devices/grotty/tty.cpp (output_character_t): New type.
1399         (tty_printer::make_bold, tty_printer::add_char,
1400         tty_printer::put_char): Change argument type to output_character_t.
1401         (crossings): Change element type to output_character_t.
1403 2006-02-11  Bruno Haible  <bruno@clisp.org>
1405         Make the glyph data type abstract.
1407         * src/include/font.h (glyph_t): New class.
1408         (name_to_index, number_to_index): Change return type to glyph_t.
1409         (font::contains, font::get_width, font::get_height, font::get_depth,
1410         font::get_character_type, font::get_kern, font::get_skew,
1411         font::get_italic_correction, font::get_left_italic_correction,
1412         font::get_subscript_correction, font::get_code,
1413         font::get_special_device_encoding, font::add_entry,
1414         font::copy_entry, font::add_kern, font::hash_kern): Change argument
1415         type to glyph_t.
1417         * src/libs/libgroff/font.cpp (font_kern_list): Change members
1418         type and constructor argument types to glyph_t.
1419         (font::contains, font::get_width, font::get_height, font::get_depth,
1420         font::get_character_type, font::get_kern, font::get_skew,
1421         font::get_italic_correction, font::get_left_italic_correction,
1422         font::get_subscript_correction, font::get_code,
1423         font::get_special_device_encoding, font::add_entry,
1424         font::copy_entry, font::add_kern, font::hash_kern): Change argument
1425         type to glyph_t.
1426         (font::load): Use glyph_t variables.
1428         * src/libs/libgroff/nametoindex.cpp (name_to_index,
1429         number_to_index): Change return type to glyph_t.
1431         * src/roff/troff/charinfo.h (charinfo::index): Change type to
1432         glyph_t.
1433         (charinfo::get_index): Change return type to glyph_t.
1435         * src/roff/troff/env.cpp: Include font.h.
1437         * src/roff/troff/node.cpp: Include font.h before charinfo.h.
1439         * src/roff/troff/input.cpp: Include font.h before charinfo.h.
1440         (charinfo::charinfo): Update.
1441         (name_to_index, number_to_index): Change return type to glyph_t.
1443         * src/include/printer.h (printer::set_char_and_width): Change return
1444         type to glyph_t.
1446         * src/libs/libdriver/printer.cpp (printer::set_char_and_width):
1447         Change return type to glyph_t.
1449         * src/devices/grodvi/dvi.cpp (dvi_printer::set_char): Change
1450         argument type to glyph_t.
1452         * src/devices/grohtml/post-html.cpp (page::add_and_encode): Update.
1453         (html_printer::space_glyph): Renamed from space_char_index.
1454         (html_printer::add_to_sbuf, html_printer::sbuf_continuation,
1455         html_printer::overstrike, html_printer::set_char): Change argument
1456         type to glyph_t.
1457         (html_printer::set_char_and_width): Change return type to glyph_t.
1459         * src/devices/grolbp/lbp.cpp (lbp_printer::set_char): Change
1460         argument type to glyph_t.
1462         * src/devices/grolj4/lj4.cpp (lj4_printer::set_char): Change
1463         argument type to glyph_t.
1465         * src/devices/grops/ps.cpp (ps_printer::space_glyph): Renamed from
1466         space_char_index.
1467         (ps_printer::set_subencoding, ps_printer::set_char): Change argument
1468         type to glyph_t.
1470         * src/devices/grotty/tty.cpp (tty_printer::set_char): Change
1471         argument type to glyph_t.
1473 2006-02-11  Bruno Haible  <bruno@clisp.org>
1475         * src/roff/troff/input.cpp (font::name_to_index): Never return a
1476         negative value.
1478         * src/libs/libgroff/font.cpp (font::load): Remove failure tests for
1479         font::name_to_index.
1481 2006-02-10  Werner LEMBERG  <wl@gnu.org>
1483         * doc/groff.texinfo (Assigning Formats): Number registers are always
1484         interpolated.
1485         Apply some rephrasing, contributed by Michael Burt.
1487 2006-02-07  Werner LEMBERG  <wl@gnu.org>
1489         * tmac/fr.tmac <ms>: Set `HY' register.
1491 2006-02-07  Werner LEMBERG  <wl@gnu.org>
1493         Add framework for simple adaptation of the main macro packages (mm,
1494         me, ms, mom) to different locales.  In particular, add support for
1495         French.  For activation, simply use `-mfr' as the last macro
1496         package.  This feature has been contributed by Fabrice Ménard
1497         <menard.fabrice@wanadoo.fr>.
1499         * tmac/fr.tmac, tmac/trans.tmac, tmac/hyphen.fr, tmac/LOCALIZATION:
1500         New files.
1501         * tmac/README: Mention hyphen.fr.
1502         * man/groff_tmac.man: Mention fr.tmac.
1503         * NEWS: Updated.
1505 2006-01-27  Werner LEMBERG  <wl@gnu.org>
1507         * man/groff_font.man: Updated documentation of `entity_name' field.
1508         Avoid future tense.
1510 2006-01-27  Bruno Haible  <bruno@clisp.org>
1512         * font/devhtml/R.proto: Remove the entity names from the font's
1513         special_encoding_encoding column.
1514         * src/devices/grohtml/post-html.cpp (get_html_entity): New function,
1515         handling the entity names here.
1516         (get_html_translation): Use it.  Change return type to `const
1517         char *'.
1518         (page::add_and_encode): Update, removing a useless cast.
1520 2006-01-26  Werner LEMBERG  <wl@gnu.org>
1522         This change is based on a patch by Bruno Haible <bruno@clisp.org>.
1524         * src/include/device.h: Add comments.
1525         * src/include/font.h: Add comments.
1526         * src/include/unicode.h: Likewise.
1527         * src/include/ptable.h, src/libs/libgroff/ptable.cpp: Likewise.
1529 2006-01-26  Keith Marshall  <keith.d.marshall@ntlworld.com>
1531         Suppress `.st' request emission by `grn'.
1533         * src/preproc/grn/main.cpp (USE_ST_REQUEST): New macro.
1534         (conv): Use it.
1536 2006-01-22  Werner LEMBERG  <wl@gnu.org>
1538         * install-sh: New version; taken from texinfo CVS.
1540 2006-01-21  Werner LEMBERG  <wl@gnu.org>
1542         * src/preproc/preconv/preconv.cpp (main): Set program_name.  Bug
1543         reported by Alexander E. Patrakov <patrakov@ums.usu.ru>.
1545 2006-01-19  Bruno Haible  <bruno@clisp.org>
1547         Let `make -k install' install more files.
1549         * Makefile.in (MAKE_K_FLAG): New variable.  Use it everywhere where
1550         $(MAKE) and $(MDEFINES) are used.
1551         (CPROGDIRS): Remove $(XPROGDIRS).  Treat $(XPROGDIRS) like
1552         $(CPROGDIRS) everywhere.
1553         ($(DEVDIRS) $(XDEVDIRS) $(OTHERDEVDIRS) $(TTYDEVDIRS)): Don't depend
1554         on $(XPROGDIRS).
1555         ($(OTHERDIRS)): Likewise.
1558         * src/devices/grohtml/post-html.cpp (get_html_translation): Remove
1559         failure test for font::name_to_index -- it can never fail.
1561 2006-01-19  Werner LEMBERG  <wl@gnu.org>
1563         * src/devices/grops/grops.man: Fix section on creating EPS files.
1564         Don't use future time in manual.
1565         Other minor fixes.
1567 2006-01-15  Gaius Mulley  <gaius@glam.ac.uk>
1569         * tmac/www.tmac: New macro LINKSTYLE which allows users to set
1570         various typographical URL attributes for non-HTML devices.
1572         * tmac/groff_www.man: Document LINKSTYLE.
1574 2006-01-11  Werner LEMBERG  <wl@gnu.org>
1576         * configure.ac: Test for getc_unlocked (needed for localcharset).
1577         * configure, src/include/config.hin: Regenerated.
1579         * src/libs/libgroff/Makefile.sub (EXTRA_CFLAGS): Define
1580         ENABLE_RELOCATABLE.
1582         * src/libs/libgroff/relocatable.h: New dummy header file for
1583         localcharset.c.
1585         * src/libs/libgroff/localcharset.c: Updated to (unchanged) CVS
1586         gnulib version.
1588 2006-01-10  Bruno Haible  <bruno@clisp.org>
1590         Work around unportability of nl_langinfo(CODESET).
1592         * m4/glibc21.m4: New file, from gnulib.
1593         * Makefile.sub (M4MACROS): Add m4/glibc21.m4.
1594         * configure.ac: Also test for stddef.h, and invoke jm_GLIBC21.
1595         * Makefile.in (HOST, GLIBC21): New variables.
1596         (MDEFINES): Pass them to subdirectories.
1597         * src/include/relocate.h (relocatep): Define with C linkage.
1598         * src/include/localcharset.h: New file, from gnulib.
1599         * src/libs/libgroff/localcharset.c: New file, from gnulib with a
1600         modification for relocate().
1601         * src/libs/libgroff/config.charset: New file, from gnulib.
1602         * src/libs/libgroff/ref-add.sin: New file, from gnulib.
1603         * src/libs/libgroff/ref-del.sin: New file, from gnulib.
1604         * src/libs/libgroff/Makefile.sub (EXTRA_CFLAGS): Also define LIBDIR.
1605         (OBJS): Add localcharset.o.
1606         (CSRCS): Add localcharset.c.
1607         (all): Add dependencies to charset.alias, ref-add.sed, ref-del.sed.
1608         (charset.alias): New rule.
1609         (PACKAGE): New variable.
1610         (ref-add.sed, ref-del.sed): New rules.
1611         (MKINSTALLDIRS): New variable.
1612         (install_data): Depend on install_charset_data.
1613         (install_charset_data): New rule for creating or updating
1614         charset.alias.
1615         (uninstall_sub): Depend on uninstall_charset_data.
1616         (uninstall_charset_data): New rule for uninstalling or updating
1617         charset.alias.
1618         * src/preproc/preconv/preconv.cpp: Include localcharset.h instead
1619         of <langinfo.h>.
1620         (main): Initialize default_encoding from locale_charset() instead of
1621         nl_langinfo(CODESET).
1623         * aclocal.m4, configure, src/include/config.hin: Regenerated.
1625 2006-01-10  Werner LEMBERG  <wl@gnu.org>
1627         * src/preproc/preconv/preconv.cpp (conversion_iconv): Use
1628         ICONV_CONST in call to iconv.  Reported by Robert Goulding.
1630 2006-01-07  Werner LEMBERG  <wl@gnu.org>
1632         * fonts/devps/generate/freeeuro.sfd: Run auto-hinter with recent
1633         fontforge version.
1634         Bump font version to 001.001.
1636         * fonts/devps/generate/Makefile (freeeuro.afm, freeeuro.pfa):
1637         Call fontforge, not pfaedit.
1639         * fonts/devps/freeeuro.afm, fonts/devps/freeeuro.pfa: Regenerated.
1641 2006-01-05  Ruslan Ermilov  <ru@FreeBSD.org>
1643         * tmac/doc-common: Add new FreeBSD and NetBSD versions.
1644         * tmac/groff_mdoc.man: Updated.
1646 2006-01-05  Werner LEMBERG  <wl@gnu.org>
1648         * src/preproc/preconv/preconv.cpp: s/debug/debug_flag/.
1649         (raw_flag): New global variable.
1650         (do_file): Use .lf to set file name (if `raw_flag' isn't set).
1651         Don't pass BOM to `conversion_utf8'.
1652         (usage): Updated.
1653         (main): Handle `-r' command line switch to set `raw_flag'.
1654         (get_BOM): Fix encodings in `BOM_table'.
1656         * src/preproc/preconv/preconv.man: New file.  Not complete yet.
1657         * src/preproc/proconv/Makefile.sub (MAN1): New variable.
1659 2006-01-04  Werner LEMBERG  <wl@gnu.org>
1661         * src/preproc/preconv/preconv.cpp (emacs_to_mime): As suggested by
1662         Bruno, comment out most encodings to support only a small set of
1663         coding tags, thus reducing potential problems with legacy encodings
1664         and character sets in the future.
1665         Add many XEmacs coding tags (now commented out).
1666         Add `cp1047'.
1667         (check_encoding_tag): Renamed to...
1668         (check_coding_tag): This.
1669         (get_BOM): Return encoding as specified by BOM.
1670         Test for UTF32-LE too.
1671         (do_file): Don't check for coding tag if a BOM has been found.
1673 2006-01-03  Bruno Haible  <bruno@clisp.org>
1675         * m4/groff.m4: Renamed from aclocal.m4.
1676         * m4/codeset.m4: New file, from gnulib.
1677         * m4/iconv.m4: New file, from gnulib.
1678         * m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4: New files, from
1679         gnulib.
1680         * config.rpath: New file, from gnulib.
1681         * config.guess, config.sub: New files, from gnulib.
1682         * Makefile.sub (M4MACROS): New variable.
1683         (configure): Fix typo.
1684         (aclocal.m4): New rule.
1685         (stamp-h.in): Depend on aclocal.m4.
1686         * configure.ac: Invoke AM_ICONV and AM_LANGINFO_CODESET.
1687         * Makefile.in (LIBICONV): New variable.
1688         (MDEFINES): Pass it to recursive makes.
1689         * src/preproc/preconv/preconv.cpp: Use HAVE_LANGINFO_CODESET and
1690         HAVE_ICONV instead of I18N macro.
1691         * src/preproc/preconv/Makefile.sub (EXTRA_LDFLAGS): New variable.
1693         * aclocal.m4, configure, src/include/config.hin: (Re)generated.
1695 2006-01-03  Werner LEMBERG  <wl@gnu.org>
1697         * doc/Makefile.in (webpage.html): Simplify.
1698         * doc/Makefile.sub (webpage.html): Synchronize with doc/Makefile.in.
1699         * doc/webpage.ms, tmac/groff_www.man, tmac/www.tmac: Minor updates.
1701 2006-01-01  Werner LEMBERG  <wl@gnu.org>
1703         * tmac/doc-common (Os): Add some Darwin versions.
1704         * tmac/groff_mdoc.man: Document them.
1706 2006-01-01  Bruno Haible  <bruno@clisp.org>
1708         * src/preproc/preconv/preconv.cpp (emacs_to_mime): Various
1709         corrections:
1710           . Don't map ascii to latin-1.
1711           . Don't use IBMxxx encodings but cpxxx for portability.
1712           . Map cp932, cp936, cp949, cp950 to itself.
1713         (emacs2mime): Protect calls to strcasecmp.
1714         (conversion_iconv): Add missing call to iconv_close.
1715         (do_file): Emit error message in case of unsupported encoding.
1717 2005-12-31  Werner LEMBERG  <wl@gnu.org>
1719         Integrate preconv into the groff binary.  Changes based on a patch
1720         from Michail Vidiassov.
1722         * src/roff/groff/pipeline.h (MAX_COMMANDS): Increase by 1.
1724         * src/roff/groff/groff.cpp (PRECONV_INDEX): New macro.
1725         (SOELIM_INDEX): Updated.
1726         (help, synopsis): Updated.
1727         (main): Add command line options `-k' and `-K enc' to select
1728         encoding.
1729         Add support for GROFF_ENCODING environment variable.
1731         * src/roff/groff/groff.man: Updated and revised.
1734         Start with autoconf support for preconv.
1736         * configure.ac: Call AC_C_BIGENDIAN.
1737         * configure, src/include/config.hin: Regenerated.
1739 2005-12-30  Werner LEMBERG  <wl@gnu.org>
1741         New preprocessor `preconv' to convert input encodings to something
1742         groff can understand.  Not yet integrated within groff.  Proper
1743         autoconf stuff is missing too.
1745         Tomohiro Kubota has written a first draft of this program, and some
1746         ideas have been reused (while almost no code has been taken
1747         actually).
1749         * src/preproc/preconv/preconv.cpp. src/preproc/preconv/Makefile.sub:
1750         New files.
1752         * MANIFEST, Makefile.in (CCPROGDIRS), test-groff.in
1753         (GROFF_BIN_PATH): Add preconv.
1755 2005-12-12  Werner LEMBERG  <wl@gnu.org>
1757         * aclocal.m4 (GROFF_MAKEINFO): Fix regexps to be POSIX conformant.
1758         In particular, don't use `\+' since it is a GNU sed extension.
1760         * configure: Regenerated.
1762 2005-12-09  Werner LEMBERG  <wl@gnu.org>
1764         * src/libs/libgroff/make-uniuni: New script to generate uniuni.cpp. 
1766         * src/libs/libgroff/uniuni.cpp: Regenerated, using data from Unicode
1767         4.1.0.
1770         * src/utils/afmtodit/make-afmtodit-tables: New script to generate
1771         afmtodit.tables.
1773         * src/utils/afmtodit/afmtodit.tables: New file, representing Unicode
1774         4.1.0 data.
1776         * src/utils/afmtodit/afmtodit.pl (%unicode_decomposed,
1777         %AGL_to_unicode): Removed.  Replace it with a tag.
1779         * src/utils/afmtodit/Makefile.sub (afmtodit): Adjust sed expression
1780         to replace tag with actual file contents.
1782 2005-12-08  Werner LEMBERG  <wl@gnu.org>
1784         The change 2005-06-20 can indeed cause problems, so we follow the
1785         advice by using marks.
1787         * font/devps/prologue.ps (PBEGIN): Use `mark'.
1788         (PEND): Use `cleartomark'.
1790 2005-12-07  Michail Vidiassov  <master@iaas.msu.ru>
1792         * src/utils/afmtodit.pl: Fix kerning output to avoid warnings for
1793         glyphs which have kern values but aren't handled (glyph variants,
1794         for example).
1796 2005-12-02  Werner LEMBERG  <wl@gnu.org>
1798         * src/devices/grops/ps.cpp (ps_printer::get_subfont): Use correct
1799         subfont index.  Reported by Michail Vidiassov <master@iaas.msu.ru>.
1801 2005-11-28  Gaius Mulley  <gaius@glam.ac.uk>
1803         * doc/Makefile.in: Separate rule for webpage.html so that extra
1804         command line options can be passed to grohtml.
1805         * doc/groff.css: Change all margins to 0%.
1806         * doc/webpage.ms: Now use new macros ALN, LNS, and LNE so that left
1807         navigation is exploited.  Also update webpage to contain new
1808         sections on licenses, mailing lists, cvs/ftp access, groff
1809         dependencies, and bug reports.
1810         * tmac/groff_www.man: Document the new macros ALN, LNS, and LNE.
1811         * tmac/www.tmac: Implement the new macros ALN, LNS, and LNE.
1812         
1813 2005-11-25  Gaius Mulley  <gaius@glam.ac.uk>
1815         * src/devices/grohtml/post-html.cpp
1816         (html_printer::do_file_components): Add fputs calls to emit the
1817         head contents and shut down the head tag whenever a new file
1818         component is generated.
1820 2005-11-22  Gaius Mulley  <gaius@glam.ac.uk>
1822         * src/devices/grohtml/post-html.cpp (html_printer::flush_page): Add
1823         call to flush_text to flush any outstanding html tags on the
1824         paragraph stack.
1826 2005-11-18  Werner LEMBERG  <wl@gnu.org>
1828         * aclocal.m4 (GROFF_MAKEINFO): Use `groff.info' in tests.
1829         Announce makeinfo version.
1830         * configure: Regenerated.
1832 2005-11-18  Mike Frysinger <vapier@gentoo.org>
1834         * Makefile.in: Declare proper dependencies between make targets.
1836         * doc/Makefile.in: Rename groff info page to `groff.info'.
1837         * doc/Makefile.sub: Likewise.
1838         * doc/groff.texinfo: Likewise.
1840 2005-11-17  Peter O'Gorman  <mlists@thewrittenword.com>
1842         * src/utils/pfbtops/pfbtops.c, src/utils/xtotroff/xtotroff.c: Move
1843         definition of __GETOPT_PREFIX to the beginning of file to ensure
1844         that it is defined even on platforms where getopt.h is already
1845         included by other header files.
1847 2005-11-10  Gaius Mulley  <gaius@glam.ac.uk>
1849         * src/devices/grohtml/post-html.cpp (html_printer::do_heading):
1850         Reset font to NULL to ensure that a font block is recreated during
1851         the next paragraph.
1853 2005-11-04  Werner LEMBERG  <wl@gnu.org>
1855         * aclocal.m4 (GROFF_MAKEINFO): Fix sed expression.
1856         * configure: Regenerated.
1858 2005-10-27  Werner LEMBERG  <wl@gnu.org>
1860         * aclocal.m4 (GROFF_MAKEINFO): New function for checking whether
1861         makeinfo 4.8 or newer is available.
1862         * configure.ac: Call GROFF_MAKEINFO.
1863         * configure: Regenerated.
1865         * Makefile.in (MAKEINFO): Use autoconf variable.
1866         (MDEFINES): Add MAKEINFO.
1868         * doc/Makefile.in (MAKEINFO): Use autoconf variable.
1869         * doc/Makefile.sub (MAKEINFO): Remove.
1871 2005-10-26  Werner LEMBERG  <wl@gnu.org>
1873         * REVISION: Set to 3.
1875 2005-10-17  Werner LEMBERG  <wl@gnu.org>
1877         Mention $MANPAGER variable used with some `man' systems.
1879         * doc/webpage.ms, src/devices/grotty/grotty.man, NEWS: Updated.
1881 2005-09-13  Werner LEMBERG  <wl@gnu.org>
1883         * tmac/hyphenex.us: New version (`ushyphex.tex' from ftp.dante.de).
1885 2005-09-04  Werner LEMBERG  <wl@gnu.org>
1887 Version 1.19.2 released
1888 =======================
1890         * tmac/groff_ms.man, doc/groff.texinfo: Synchronize.
1892         * doc/webpage.ms: Updated.
1894         * install-sh, mkinstalldirs: New versions; taken from texinfo CVS.
1896 2005-09-04  Jörgen Grahn <jgrahn@algonet.se>
1898         * tmac/groff_ms.man: Document `PO' better.
1900 2005-09-03  Werner LEMBERG  <wl@gnu.org>
1902         * NEWS: Document grotty changes.
1904 2005-09-01  Keith Marshall  <keith.d.marshall@ntlworld.com>
1906         Backward compatibility support for `man' program.
1908         * tmac/an-old.tmac (LL): Initialize it to respect prior LL register
1909         assignment, prior `.ll' request and then package defaults, in this
1910         specified order of decreasing priority.
1912         * tmac/groff_man.man, doc/groff.texinfo (Man options): Document
1913         altered `LL' register initialization priorities.
1915 2005-08-29  Gary W. Swearingen  <garys@opusnet.com>
1917         * tmac/groff_mdoc.man: Go into more details how the `AUTHORS'
1918         section should look like.
1920 2005-08-29  Werner LEMBERG  <wl@gnu.org>
1922         * tmac/groff_mdoc.man: The month's name in a call to .Dd shouldn't
1923         be abbreviated.
1925 2005-08-27  Bernd Warken
1927         * tmac/groff_man.man: Add man(7) too SEE ALSO and more minor
1928         fixes.
1930 2005-08-11  Bernd Warken
1932         * tmac/www.tmac (URL, MTO): Handle empty \\$1 better.
1934 2005-08-09  Bernd Warken
1936         * tmac/www.tmac (URL, MTO): Use bold series if color support is
1937         deactivated.
1939 2005-08-02  Bernd Warken
1941         * doc/Makefile.sub (uninstall_sub): Use --remove, not --delete
1942         as argument to $(INSTALL_INFO).  The latter isn't portable.
1943         Remove $(HTMLEXAMPLEFILES) too.
1945         * Makefile.in (uninstall_dirs): Remove $(datadir)/doc/groff and
1946         $(datadir)/doc too.
1947         Suppress warning messages and return always true.
1949         * tmac/Makefile.sub (uninstall_sub): Remove www.tmac too.
1951 2005-07-02  Bernd Warken
1953         * src/devices/xditview/gxditview.man: Change many `.I' to `.B'.
1954         * man/groff_out.man: More markup and minor improvements.
1955         * src/roff/groff/groff.man: Minor improvements.
1957 2005-06-28  Werner LEMBERG  <wl@gnu.org>
1959         * ChangeLog: Split off older entries into...
1960         * ChangeLog.115 ChangeLog.116, ChangeLog.117, ChangeLog.118: New
1961         files.
1963 2005-06-26  Bernd Warken
1965         * src/devices/xditview/gxditview.man: More minor fixes.
1967 2005-06-24  Werner LEMBERG  <wl@gnu.org>
1969         * src/preproc/pic/troff.cpp (troff_output::set_fill,
1970         troff_output::set_color, troff_output::reset_color): Use .bcolor and
1971         .fcolor instead of \m and \M, respectively.
1973 2005-06-23  Bernd Warken
1975         * src/devices/xditview/gxditview.man: More minor fixes.
1976         * README: Formatting issues.
1977         Mention some problems with Debian.
1979 2005-06-23  Bernd Warken
1981         * src/devices/xditview/gxditview.man: Revised and improved.
1983 2005-06-22  Werner LEMBERG  <wl@gnu.org>
1985         Another round in fixing getopt problems.  Hopefully the last one!
1986         This time we use the getopt stuff from gnulib and define a prefix
1987         unconditionally so that there are no collisions with any other
1988         getopt implementations.  This is a slight waste of space in case
1989         we already use a GNU getopt implementation, but on
1990         the other hand it really simplifies life.
1992         * src/include/getopt.h: Use gnulib version.
1994         * src/include/getopt_int.h: Use gnulib version.
1996         * src/include/groff-getopt.h: Removed.  Obsolete now.
1998         * src/include/lib.h: Regarding getopt, don't handle any platform
1999         specially; just include getopt.h.
2000         (__GETOPT_PREFIX): Define (before getopt.h).
2002         * src/include/Makefile.sub (HDRS): Updated.
2004         * src/libs/libgroff/getopt1.c, src/libs/libgroff/getopt.c: Use
2005         gnulib version.
2007         * src/libs/libgroff/Makefile.sub (EXTRA_CFLAGS): Set
2008         __GETOPT_PREFIX.
2010         * src/utils/pfbtops/pfbtops.c, src/utils/xtotroff/xtotroff.c
2011         (__GETOPT_PREFIX): Define (before getopt.h).
2013 2005-06-21  Werner LEMBERG  <wl@gnu.org>
2015         * src/include/lib.h: Provide a fix for Mac OS X to not include
2016         groff-getopt.h.
2018 2005-06-20  Denis M. Wilson  <dmw@oxytropis.plus.com>
2020         * font/devps/prologue.ps (EP): Dont' use `bind'.  Reason: Using
2021         `bind' to define a procedure which contains `showpage' means that an
2022         invocation of `showpage' may execute wrongly (the exact effect
2023         depending on the interpreter).  Not usually a problem except under
2024         transformations, such as combining pages.
2025         (PEND): Don't call `clear'.  Reason: Using `clear' in the definition
2026         of /PEND means that stack underflow will occur if the stack is
2027         deliberately non-empty before document inclusion.  If included
2028         files are found to be generally badly behaved, we could replace the
2029         `clear' with `mark' in /PBEGIN and `cleartomark' in /PEND (I've
2030         never found this necessary).
2032 2005-06-20  Jörgen Grahn  <jgrahn@algonet.se>
2034         * src/preproc/soelim/soelim.cpp (do_file): Append trailing zero
2035         earlier to get correct error message.
2037 2005-06-16  Bernd Warken
2038         * src/roff/nroff/nroff.sh: Add support for iso-8859-15.
2040 2005-06-15  Werner LEMBERG  <wl@gnu.org>
2042         Another try to update getopt files.  This time we add a dummy
2043         gettext.h file to satisfy the dependency.
2045         * src/include/getopt.h, src/libs/libgroff/getopt.c,
2046         src/libs/libgroff/getopt1.c: Updated from GNU libc CVS.
2048         * src/include/getopt_int.h: New file (from GNU libc CVS).
2050         * src/include/gettext.h: Dummy file which just defines a gettext()
2051         macro.
2053         * src/include/groff-getopt.h: Updated.
2055         * src/include/Makefile.sub (HDRS): Add getopt_int.h and gettext.h.
2058         * src/libs/libdriver/input.cpp (IntArray): Remove superfluous
2059         `const' keywords in return value.
2061         * src/preproc/html/pushback.cpp (pushBackBuffer::~pushBackBuffer):
2062         Remove redundant variable `old'.
2063         (pushBackBuffer::skipToNewline): Remove redundant variable `ch'.
2065         * src/preproc/tbl/main.cpp (process_table): Remove redundant
2066         variable `c'.
2069         Fix more friend name injection problems since modern C++ compilers
2070         fail otherwise.  We simply provide (global) declarations for all
2071         functions declared as friends.  This is not really necessary but
2072         doesn't harm.
2074         * src/preproc/eqn/lex.cpp: Provide declarations for get_char,
2075         peek_char, and get_location.
2077         * src/preproc/refer/ref.h: Provide declarations for
2078         compare_reference, same_reference, same_year, same_date,
2079         same_author_last_name, and same_author_name.
2081         * src/roff/troff/div.h: Provide declarations for do_divert and
2082         page_offset.
2084         * src/roff/troff/env.h: Provide declarations for title_length,
2085         space_size, fill, no_fill, adjust, no_adjust, center, right_justify,
2086         vertical_spacing, post_vertical_spacing, line_spacing, line_length,
2087         indent, temporary_indent, do_underline, do_input_trap, set_tabs,
2088         margin_character, no_number, number_lines, leader_character,
2089         tab_character, hyphenate_request, no_hyphenate,
2090         hyphen_line_max_request, hyphenation_space_request,
2091         hyphenation_margin_request, line_width, tabs_save, tabs_restore,
2092         line_tabs_request, widow_control_request, and do_divert.
2094         * src/roff/troff/input.cpp: Provide declaration for chop_macro.
2096         * src/roff/troff/node.cpp: Provide declarations for class
2097         tfont_spec.
2098         Provide declaration for make_tfont.
2100 2005-05-29  Werner LEMBERG  <wl@gnu.org>
2102         * doc/fdl.texi: Updated to version 1.2.  Reported by Bernd Warken.
2104 2005-05-28  Werner LEMBERG  <wl@gnu.org>
2106         * contrib/pdfmark/Makefile.sub (.ms.pdf): Use `--stylesheet', not
2107         `--style'.
2109         * src/devices/grolbp/lbp.cpp, src/devices/grolbp/lbp.h: Remove
2110         redundant semicolons.
2112         * src/preproc/eqn/Makefile.sub, src/preproc/html/Makefile.sub,
2113         src/preproc/soelim/Makefile.sub, src/preproc/tbl/Makefile.sub:
2114         Define `MLIB'.  Some compilers need this for linking with libgroff.
2116 2005-05-27  Werner LEMBERG  <wl@gnu.org>
2118         * MANIFEST, README, doc/webpage.ms: Updated.
2120 2005-05-26  Werner LEMBERG  <wl@gnu.org>
2122         * All affected files: Update postal address of FSF.
2124 2005-05-25  Keith Marshall  <keith.d.marshall@ntlworld.com>
2125             Bernd Warken
2127         * README: More fixes.
2129         * README.CVS: Removed.  Its contents is now part of the README file.
2131 2005-05-21  Werner LEMBERG  <wl@gnu.org>
2133         * README: Updated.  Based on a patch from Bernd Warken.
2135 2005-05-16  Keith Marshall  <keith.d.marshall@ntlworld.com>
2137         Miscellaneous script portability enhancements.
2139         * aclocal.m4: (GROFF_CSH_HACK): Add space in shebang prototype for
2140         generated conftest.sh script, conforming to portability
2141         recommendation in autoconf docs.
2142         * configure: Likewise, for code generated by GROFF_CSH_HACK.
2143         * contrib/eqn2graph/eqn2graph.sh: Add space in shebang, conforming
2144         to portability recommendation in autoconf docs.
2145         * contrib/gdiffmk/gdiffmk.sh: Likewise.
2146         * contrib/gdiffmk/tests/runtests.in: Likewise.
2147         * contrib/grap2graph/grap2graph.sh: Likewise.
2148         * contrib/groffer/groffer.sh: Likewise.
2149         * contrib/mm/mmroff.pl: Likewise.
2150         * contrib/mom/momdoc/appendices.html: Likewise.
2151         * contrib/pic2graph/pic2graph.sh: Likewise.
2152         * font/devps/generate/afmname: Likewise.
2153         * src/devices/xditview/ad2c: Likewise.
2154         * src/preproc/eqn/neqn.sh: Likewise.
2155         * src/roff/grog/grog.pl: Likewise.
2156         * src/roff/grog/grog.sh: Likewise.
2157         * src/roff/nroff/nroff.sh: Likewise.
2158         * PROBLEMS: Likewise, in embedded script examples.
2160 2005-05-16  Keith Marshall  <keith.d.marshall@ntlworld.com>
2162         Improve portability of `pdfroff' shell script.
2164         * arch/misc/shdeps.sh: Add space in shebang, conforming to
2165         portability guidelines in `autoconf' docs.
2166         (PATH_SEARCH_SETUP): New substitution; emits PATH_SEPARATOR
2167         initialization code.  Used by contrib/pdfmark/pdfroff.sh's
2168         `searchpath' function.
2170 2005-05-14  Werner LEMBERG  <wl@gnu.org>
2172         * contrib/pic2graph/pic2graph.sh, contrib/graph2graph.sh,
2173         contrib/eqn2graph.sh: Add option `-trim' to `convert' which is
2174         needed for newer ImageMagick versions.
2176 2005-05-07  Werner LEMBERG  <wl@gnu.org>
2178         * src/preproc/refer/refer.man: Many small typographic fixes.
2180 2005-05-06  Jeff Conrad  <jeff_conrad@msn.com>
2182         * src/devices/grohtml/post-html.cpp (assert_state::~assert_state):
2183         Use `char *' cast for a_delete.
2185 2005-05-03  Werner LEMBERG  <wl@gnu.org>
2187         * src/libs/libgroff/maxpathname.cpp: Include stdlib.h.
2188         src/libs/libgroff/relocate.cpp: Use path_name_max everywhere.
2190 2005-05-03  Jeff Conrad  <jeff_conrad@msn.com>
2192         * src/devices/grohtml/post-html.cpp: Use casts to `char *' if using
2193         `a_delete' for `const char *'.
2195 2005-05-03  Werner LEMBERG  <wl@gnu.org>
2197         * src/devices/grohtml/post-html.cpp,
2198         src/devices/grohtml/html-table.cpp,
2199         src/devices/grohtml/html-text.cpp, src/devices/grohtml/output.cpp:
2200         Replace malloc/free with new/delete/a_delete.
2202         * src/devices/grolbp/lbp.h: Remove superfluous semicolons which
2203         are prohibited with ANSI C++.
2204         (lbpprintf, vdmprintf): Remove useless `inline' keyword (since the
2205         function has a variable number of arguments).
2207         * src/preproc/grn/main.cpp (doinput): Change return type to `int'.
2208         Simplify function and update all callers.
2210 2005-05-02  Werner LEMBERG  <wl@gnu.org>
2212         Undo getopt changes from 2005-04-30.  We don't want a dependency
2213         on gettext.
2215         * src/include/getopt_int.h: Removed.
2217         * src/include/getopt.h, src/include/groff-getopt.h,
2218         src/include/Makefile.sub, src/libs/libgroff/getopt.c,
2219         src/libs/libgroff/getopt1.c: Revert to previous version.
2222         * src/include/nonposix.h (access) [_MSC_VER]: New macro.
2224         * src/include/posix.h (F_OK): Define conditionally.
2226         * src/devices/grotty/tty.cpp (tty_printer::make_underline): Use
2227         different variable name in second `for' loop to avoid MSVC compiler
2228         problem.
2230 2005-04-30  Werner LEMBERG  <wl@gnu.org>
2232         AC_TYPE_SIGNAL from current autoconf can fail if CC=g++.
2234         * aclocal.m4 (GROFF_TYPE_SIGNAL): New function.
2235         * configure.ac: Use GROFF_TYPE_SIGNAL, not AC_TYPE_SIGNAL.
2236         * configure, src/include/config.hin: Regenerated.
2238         * PROBLEMS: Updated.
2241         Update getopt files.
2243         * src/include/getopt.h, src/libs/libgroff/getopt.c,
2244         src/libs/libgroff/getopt1.c: Updated from GNU libc CVS.
2246         * src/include/getopt_int.h: New file (from GNU libc CVS).
2248         * src/include/groff-getopt.h: Updated.
2250         * src/include/Makefile.sub (HDRS): Add getopt_int.h.
2253         * font/devutf8/NOTES: Updated.
2255 2005-04-28  Werner LEMBERG  <wl@gnu.org>
2257         Bug fix for Win32 relocatable code.  Based on a patch from Keith
2258         Marshall.
2260         * src/libs/libgroff/maxpathname.cpp (PATH_MAX): Test for `_MAX_PATH'
2261         also.
2263         * src/libs/libgroff/relocate.c (DEBUG): Define it conditionally.
2264         (searchpath) [_WIN32]: Use `_fullpath', not `realpath'.
2266 2005-04-28  Keith Marshall  <keith.d.marshall@ntlworld.com>
2268         Correct `gnu.eps' handling for build from distribution tarball, with
2269         separate source and build directories.
2271         * doc/Makefile.sub: (examples.stamp): New target; forces copy of
2272         grnexmpl.g, groff.css and gnu.eps from source to build directory;
2273         generate gnu.eps from gnu.xpm if required; touch examples.stamp.
2274         (prepare_examples): Make it depend on examples.stamp.
2275         (CLEANADD): Add examples.stamp.
2277 2005-04-27  Werner LEMBERG  <wl@gnu.org>
2279         Implement the rule
2281           position: `(' position `)'
2283         in pic.
2285         * src/preproc/pic/pic.y (position, position_not_place): Handle
2286         additional parentheses.
2288         * doc/pic.ms: Updated.
2290 2005-04-23  Larry Jones  <lawrence.jones@ugs.com>
2292         * src/utils/xtotroff/xtotroff.c (MapFont): Fix variable declaration.
2294 2005-04-18  Werner LEMBERG  <wl@gnu.org>
2296         * src/roff/groff/pipeline.c: Don't include ctype.h.
2298 2005-04-13  Werner LEMBERG  <wl@gnu.org>
2300         * src/roff/nroff/nroff.man: Document option `-M'.
2302 2005-04-13  Bruce Lilly  <blilly@erols.com>
2304         * src/roff/nroff/nroff.sh: Make the script accept option `-M'.
2306 2005-04-01  Kees Zeelenberg  <kzlg@users.sourceforge.net>
2307             Werner LEMBERG  <wl@gnu.org>
2309         Add binary relocation support for Windows platforms.
2311         * src/include/Makefile.sub (defs.h): Add `INSTALLPATH'.
2313         * src/include/relocate.h, src/libs/libgroff/relocate.cpp: New files.
2315         * src/libs/libgroff/searchpath.cpp: Handle `relocate'.
2316         (search_path::search_path, search_path::open_file_cautious): Use
2317         `relocate'.
2319         * src/libs/libgroff/Makefile.sub (OBJS, CCSRCS),
2320         src/include/Makefile.sub (HDRS): Updated.
2322 2005-04-01  Werner LEMBERG  <wl@gnu.org>
2324         * src/devices/grohtml/post-html.cpp: Don't use strdup/free but
2325         strsave/a_delete.
2327         * src/libs/libgroff/font.cpp: Replace strdup with strsave.
2329         * src/libs/libgroff/maxfilename.cpp: Don't include limits.h since
2330         lib.h already does it.
2332         * src/libs/libgroff/maxpathname.cpp: New file, defining
2333         path_name_max.
2335         * src/include/lib.h: Add prototype for path_name_max.
2337         * src/libs/libgroff/Makefile.sub (OBJS, CCSRCS): Updated.
2339         * src/include/nonposix.h (PATH_EXT): New macro.
2341 2005-03-28  Werner LEMBERG  <wl@gnu.org>
2343         Add support for double- and zero-width characters in grotty.
2345         * src/devices/grotty/tty.cpp (glyph): Add width.
2346         (tty_printer::make_underline, tty_printer::make_bold,
2347         tty_printer::add_character): Add parameter to pass character width.
2348         Update all callers.
2349         (tty_printer::end_page): Increase hpos by actual character width.
2351         * font/devutf8/R.proto: Specify zero width for non-spacing
2352         characters.
2354         * tmac/unicode.tmac: Remove definitions for non-spacing entities.
2356         * Makefile.comm (extraclean): Remove more junk files.
2358 2005-03-25  Werner LEMBERG  <wl@gnu.org>
2360         * configure.ac: Undo change from 2005-03-24.
2361         * configure: Regenerated.
2363 2005-03-24  Werner LEMBERG  <wl@gnu.org>
2365         * Makefile.in (NOMAKEDIRS): Add contrib/gdiffmk/tests.
2366         (dist): Search Makefile while descending into $(EXTRADIRS).
2368         * doc/Makefile.in (.PHONY): Add.
2369         (clean): Don't remove *.png and *.eps.
2370         Don't handle *.gif.
2371         (realclean): Remove *.png and *.eps.
2372         (extraclean): Depend on distclean.
2374         * configure.ac: Add copyright.
2375         Handle contrib/pdfmark/Makefile.
2377         * configure: Regenerated.
2379 2005-03-18  Larry Kollar  <kollar@alltel.net>
2381         Add numbered and definition lists to www.tmac.
2383         * tmac/www.tmac (www-ul-level1, www-ul-level2, www-ul-level3,
2384         www-ol-level1, www-ol-level2, www-ol-level3, www-ol-tmp): New
2385         auxiliary string registers.
2386         (www-ul-level, www-ol-level, www-dl-level, www-ol-ctr1, www-ol-ctr2,
2387         www-ol-ctr3, www-dl-shift): New auxiliary number registers.
2388         (www-level): Removed.
2389         (www-level1, www-level2, www-level3): Initialize to empty.
2390         (www-level0, www-level4, www-level5, www-level6, www-level7,
2391         www-level8, www-level9): New string registers.
2392         (www-push-li, www-pop-li): New macros.
2393         (www-push-level, www-pop-level): Renamed to...
2394         (www-push-ul-level, www-pop-ul-level): This.
2395         Updated.
2396         (www-push-ol-level, www-pop-ol-level): New macros.
2397         (ULS, ULE): Updated.
2398         (OLS, OLE, DLS, DLE): New user macros.
2399         (LI): Removed.  It is aliased to one of...
2400         (www-li-ul, www-li-ol, www-li-dl): New macros.
2402         * tmac/groff_www.man: Document new macros.
2404         * NEWS: Updated.
2406 2005-03-18  Werner LEMBERG  <wl@gnu.org>
2408         * tmac/doc-common (doc-operating-system-NetBSD-2.0.1,
2409         doc-operating-system-NetBSD-2.0.2): New strings.
2411         * tmac/groff_mdoc.man: Updated.
2413 2005-03-17  Werner LEMBERG  <wl@gnu.org>
2415         * doc/Makefile.sub (CLEANADD): Add `groff.html'.
2417 2005-03-17  Werner LEMBERG  <wl@gnu.org>
2419         * src/libs/libgroff/hypot.c: Renamed to...
2420         * src/libs/libgroff/hypot.cpp: This.  Updated to C++.
2422         * src/libs/libgroff/Makefile.sub (CCSRCS, CSRCS): Updated.
2424         * src/include/lib.h: Updated.
2426 2005-03-16  Werner LEMBERG  <wl@gnu.org>
2428         Add workaround for broken hypot() on Interix.
2430         * src/libs/libgroff/hypot.c: New wrapper file for `hypot'.
2432         * src/libs/libgroff/Makefile.sub (OBJS): Add `hypot.o'.
2433         (CSRCS): Add `hypot.c'.
2435         * src/include/lib.h: Declare `groff_hypot'.
2437         * src/preproc/grn/hgraph.cpp: Don't declare `hypot'.
2438         Use `groff_hypot'.
2440         * src/preproc/pic/pic.h: Don't declare `hypot'.
2442         * src/preproc/pic/object.cpp (hypot): Use `groff_hypot'.
2444 2005-03-15  Gaius Mulley  <gaius@glam.ac.uk>
2446         * src/devices/grohtml/post-html.cpp
2447         (html_printer::lookahead_for_tables): End .ce properly to avoid a
2448         segfault.
2450 2005-03-15  Werner LEMBERG  <wl@gnu.org>
2452         makeinfo 4.8 doesn't produce good HTML output from groff.texinfo.
2454         * doc/fixinfo.sh: New script to postprocess makeinfo's HTML output.
2456         * doc/Makefile.in (.texinfo.html): Call fixinfo.sh.
2458 2005-03-14  Werner LEMBERG  <wl@gnu.org>
2460         Add Cyrillic support to devutf8 and devhtml.
2462         * font/devutf8/R.proto, font/devhtml/R.proto: Add Cyrillic blocks.
2464         * tmac/unicode.tmac: New file.
2466         * tmac/tty.tmac: Include unicode.tmac if device is utf8.
2468         * tmac/Makefile.sub (NORMALFILES): Add unicode.tmac.
2470         * NEWS: Updated.
2472 2005-03-02  Keith Marshall  <keith.d.marshall@ntlworld.com>
2474         * src/libs/libdriver/printer.cpp (check_for_output_error): New
2475         function.  It has been introduced to catch peculiar error contexts
2476         on MS-Windows platforms.
2478 2005-02-28  Werner LEMBERG  <wl@gnu.org>
2480         * src/roff/troff/input.cpp (string_iterator::fill): Protect against
2481         null pointer.
2483         * tmac/papersize.tmac: Convert `paper' string contents to lowercase.
2485         * configure: Regenerated.
2487         * NEWS: Updated.
2489 2005-02-28  Keith Marshall  <keith.d.marshall@ntlworld.com>
2491         Integrate `pdfmark' into normal groff build system;
2492         install macro `pdfmark' packages, build and install `pdfroff',
2493         and PDF format documentation.
2495         * Makefile.comm: Add PDFDOCDIR.
2497         * Makefile.in: (MDEFINES) ALT_AWK_PROGS, ALT_GHOSTSCRIPT_PROGS,
2498         pdfdocdir, make_pdfdoc, make_install_pdfdoc: New variables.
2499         (unstall_dirs): Add pdfdocdir.
2501         * aclocal.m4: (GROFF_GHOSTSCRIPT_PREFS): New function; support
2502         `--with-alt-gs' option, set ALT_GHOSTSCRIPT_PROGS.
2503         (GROFF_GHOSTSCRIPT_PATH): Support `--with-gs' option, force use of
2504         GROFF_GHOSTSCRIPT_PREFS, set GHOSTSCRIPT.
2505         (GROFF_HTML_PROGRAMS): Force use of GROFF_GHOSTSCRIPT_PATH; tidy up.
2506         (GROFF_AWK_PREFS): New function; support `--with-alt-awk' option,
2507         set ALT_AWK_PROGS.
2508         (GROFF_AWK_PATH): New function; support `--with-awk' option, force
2509         use of GROFF_AWK_PREFS.
2510         (GROFF_PDFDOC_PROGRAMS): New function; force use of GROFF_AWK_PATH
2511         and GROFF_GHOSTSCRIPT_PATH, set make_pdfdoc and make_install_pdfdoc.
2513         * configure.ac: Add AC_PREREQ(2.59), GROFF_PDFDOC_PROGRAMS.
2514         Remove GROFF_GHOSTSCRIPT_PATH, (forced by GROFF_PDFDOC_PROGRAMS, and
2515         also by modified GROFF_HTML_PROGRAMS).
2517 2005-02-27  Gaius Mulley  <gaius@glam.ac.uk>
2519         * src/devices/grohtml/html-text.cpp (html_text::do_pre): Preserve
2520         paragraph spacing.
2521         (html_text::done_para): Unset `start_space'.
2522         (html_text::remove_para_align): Call `retrieve_para_space' for the
2523         spacing.
2525         * src/devices/grohtml/post-html.cpp (html_printer::emit_raw): Unset
2526         `seen_space'.
2527         (html_printer::do_check_center): Emit vertical space if necessary.
2529         * src/roff/troff/env.cpp (environment_switch): Preserve
2530         `seen_space', `seen_eol', and `suppress_next_eol' while switching
2531         environments.
2533         * src/roff/troff/node.cpp (suppress_node::suppress_node): Set
2534         `is_special'.
2536 2005-02-20  Werner LEMBERG  <wl@gnu.org>
2538         * src/preproc/eqn/eqn.man, NEWS: Document various extensions of
2539         eqn.
2541 2005-02-17  Werner LEMBERG  <wl@gnu.org>
2543         * doc/pic.ms, man/groff.man: Fix typos.
2545         * doc/groff.texinfo: Fix typos.
2546         (\LEmacro): Get proper mathematical spacing.
2548 2005-02-16  Werner LEMBERG  <wl@gnu.org>
2550         * aclocal.m4 (GROFF_APPRESDIR_CHECK): Improve warning message.
2551         * configure: Regenerated with autoconf 2.59b.
2553 2005-02-16  Gaius Mulley  <gaius@glam.ac.uk>
2555         * src/devices/grohtml/post-html.cpp (html_printer::is_line_start,
2556         html_printer::start_font): Fix handling of preformatted text.
2558 2005-02-15  Gaius Mulley  <gaius@glam.ac.uk>
2560         These patches modify the indentation implementation to use `<p
2561         style=margin-left: n%>'.  Many thanks to Peter and Larry for
2562         suggesting this solution.  Grohtml only uses tables for `.IP' and
2563         related tags when the first operand has a short width.
2565         Similarly, they modify all vertical space code.  By default, grohtml
2566         sets up a style sheet which uses no vertical space between `table',
2567         `pre', and `p' tags.  It forces spaces when it needs them using
2568         `style="margin-top: 1em"'.
2570         * src/devices/grohtml/html-table.cpp: Include `html-text.h'.
2571         (html_table::emit_table_header, html_table::emit_new_row):
2572         Rewritten.
2573         (html_table::set_space): New function.
2574         (html_indent::html_indent): Don't set `is_used'.
2575         (html_indent::begin): Rewritten.
2576         (html_indent::end): Remove code in function.
2578         * src/devices/grohtml/html-table.h: Updated.
2579         (html_table): Make `out' public.
2581         * src/devices/grohtml/html-text.cpp (html_text::html_text):
2582         Initialize `start_space' with FALSE.
2583         (html_text::end_tag) <P_TAG, PRE_TAG>: Updated.
2584         (html_text::issue_tag): Add argument to handle space style.
2585         (html_text::start_tag) <P_TAG, PRE_TAG>: Updated.
2586         (html_text::flush_text): Don't set `start_space'.
2587         (html_text::push_para): Don't set `p->really_issued'.
2588         (html_text::do_emittext): Updated.
2589         (html_text::do_para): Add paremeter to handle space.
2590         Update all callers.
2591         (html_text::retrieve_para_space): New function.
2593         * src/devices/grohtml/html-text.h (STYLE_VERTICAL_SPACE): New macro.
2594         (tag_definition): Remove `really_issued'.
2595         (html_text): Updated.
2597         * src/devices/grohtml/post-html.cpp (html_printer): Add variables
2598         `current_column' and `row_space'.
2599         Update constructor.
2600         (html_printer::emit_raw, html_printer::write_header,
2601         html_printer::do_indent, html_printer::do_check_center,
2602         html_printer::do_tab_ts): Handle vertical space.
2603         (html_printer:do_tab_te, html_printer::do_end_para): Call
2604         `remove_para_space'.
2605         (html_printer::do_col): Rewritten.
2606         (html_printer::flush_globs): Remove debugging code.
2607         (html_printer::is_line_start): New function.
2608         (html_printer::start_font): Use `is_line_start'.
2609         (html_printer::writeHeadMetaStyle): New function.
2610         (html_printer::do_file_components, html_printer::~html_printer):
2611         Call `writeHeadMetaStyle'.
2613         * tmac/www.tmac (www-handle-percent): New macro.
2614         (MPIMG): Handle percent values for width and height parameters.
2615         (DC): Updated.
2617         * tmac/groff_www.man: Updated.
2619 2005-02-14  Werner LEMBERG  <wl@gnu.org>
2621         * src/utils/afmtodit/afmtodit.pl: Remove an incorrect `my' from
2622         $psname and $italic_angle.
2623         Immediately restart file input loops if `split' returns an empty
2624         array.
2626 2005-02-13  Michail Vidiassov  <master@iaas.msu.ru>
2627             Werner LEMBERG  <wl@gnu.org>
2629         Update afmtodit to better support Unicode (Michail).
2630         Update afmtodit to use Perl 5 syntax (Werner).
2632         * src/utils/afmtodit/afmtodit.pl: Don't use `getopts.pl' but
2633         `Getopts::Std'.
2634         Decorate variables with `my' where necessary.
2635         Use `defined' where necessary to avoid warnings.
2636         Don't use `do' for subroutine calls.
2637         Other minor syntax updates.
2638         Check for both `uXXXX[X[X]]' and `uniXXXX'.
2639         Handle glyph variants properly.
2640         (%unicode_decomposed, %AGL_to_unicode): Don't use `u' prefix in
2641         strings.
2643         * src/utils/afmtodit/afmtodit.man: Updated.
2645 2005-02-13  Werner LEMBERG  <wl@gnu.org>
2647         Make groff.texinfo work with texinfo 4.8.
2649         * doc/groff.texinfo (@Var): Use @r and @slanted.
2650         (@defdummy, @Def*): Use @c to avoid empty lines.
2651         (\angles): Replaced with...
2652         (\Langlemacro, \Ranglemacro): New TeX macros.
2653         (@Langlemacro, @Ranglemacro): New variables defined with @set.
2654         (@angles): Use @Langlemacro and @Ranglemacro.
2655         (\LE): Replaced with...
2656         (\LEmacro): New TeX macro.
2657         (@LEmacro): New variable defined with @set.
2658         (@LE): Use @LEmacro.
2659         (@Lparenmacro, @Rparenmacro, @Lbrackmacro, @Rbrackmacro): New
2660         variables defined with @set.
2661         (@lparen, @rparen, @lbrack, @rbrack): Replaced with...
2662         (@Lparen, @Rparen, @Lbrack, @Rbrack): New macros.
2663         Update all callers.
2665         Other minor updates.
2667         * doc/texinfo.tex: Update to texinfo version 4.8.
2669         * README.CVS: Updated.
2671 2005-02-09  Alejandro López-Valencia <palopez@etb.net.co> (tiny change)
2673         * doc/groff.texinfo (ms Document Control Registers): Document `HY'
2674         and `FAM' registers.
2676 2005-02-05  Werner LEMBERG  <wl@gnu.org>
2678         * tmac/groff_mdoc.man, tmac/doc-common, tmac/doc-ditroff,
2679         tmac/doc-nroff, tmac/doc-old.tmac, tmac/doc-syms, tmac/doc.tmac:
2680         Update BSD license.
2682 2005-02-01  Werner LEMBERG  <wl@gnu.org>
2684         * src/roff/groff/groff.man: Add information about paper size.
2686 2005-01-25  Werner LEMBERG  <wl@gnu.org>
2688         * src/roff/nroff/nroff.sh: Handle `*.ISO8859-1' in locale.  From
2689         NetBSD bin/29114.
2691 2005-01-22  Ruslan Ermilov  <ru@FreeBSD.org>
2693         * tmac/doc.tmac (Sm): Improved.  It didn't work properly in many
2694         cases.
2695         (Re): Emit a warning if called without `.Rs'.
2696         (doc-finish-reference): Use parameter for decreasing
2697         `doc-reference-count'.
2698         (doc-print-reference): Pass specific count parameters to
2699         `doc-finish-reference'.
2701 2005-01-21  Werner LEMBERG  <wl@gnu.org>
2703         * src/libs/libdriver/input.cpp (delete_current_env, do_file):
2704         Reset pointers to zero after deallocation.  This fixes a crash
2705         if a driver is called with multiple input files.  Reported by
2706         Ken Chilton <ken@chiltonfamily.org>.
2708         * src/devices/grops/grops.man: Add more info on DSC.
2710 2005-01-17  Ruslan Ermilov  <ru@FreeBSD.org>
2712         * tmac/doc-common (Dd), tmac/doc-ditroff (gX, doc-setup-header):
2713         Remove dead code.
2715 2005-01-17  Werner LEMBERG  <wl@gnu.org>
2717         * src/roff/troff/div.cpp (top_level_diversion::space): Protect
2718         against division by zero.
2720 2005-01-13  Ruslan Ermilov  <ru@FreeBSD.org>
2722         * tmac/doc.tmac (Ef): Restore doc-curr-font and doc-curr-size.
2724 2004-12-19  Werner LEMBERG  <wl@gnu.org>
2726         * install-sh: New version; taken from texinfo CVS.
2728 2004-12-17  Werner LEMBERG  <wl@gnu.org>
2730         * tmac/devtag.tmac: Protect against loading twice.
2731         Protect agains compatibility mode.
2732         * tmac/www.tmac: Protect against loading twice.
2733         Load `devtag.tmac' before switching off compatibility mode.
2734         * tmac/an-old.tmac, tmac/s.tmac: Load `devtag.tmac'.
2736 2004-12-16  Mike Bianchi  <mbianchi@Foveal.com>
2738         * configure.ac: Produce `contrib/gdiffmk/tests/runtests'.
2739         * configure: Updated.
2741 2004-12-15  Thomas Klausner  <wiz@netbsd.org>
2743         * tmac/doc-syms, tmac/groff_mdoc.man: Add `libpam' library.
2745 2004-12-15  Werner LEMBERG  <wl@gnu.org>
2747         Make `test-groff' work again -- previously, wrong paths have been
2748         used.  Additionally, it can now be called from anywhere.
2750         * test-groff.in: Don't test for groff binary.  This is no longer
2751         necessary since the proper paths are determined by `configure'.
2752         (EXEEXT): Removed.  No longer used.
2753         (srcdir, builddir): Use values provided by the configure script.
2754         (XENVIRONMENT): Updated.
2756         * INSTALL: Updated.
2758 2004-12-14  Gaius Mulley  <gaius@glam.ac.uk>
2760         Make .tag and .taga work for all devices (but only grohtml actually
2761         handles them).
2763         * src/devices/grohtml/post-html.cpp: s/html-tag/devtag/.
2764         (text_glob::is_br, page::add_tag, html_printer::troff_tag,
2765         html_printer::handle_assertion): Don't use hard-coded string
2766         lengths.
2767         (html_printer::lookahead_for_table): Reset `tbl' properly if
2768         necessary.
2769         (html_printer::devtag): New function, handling `devtag'.
2770         (html_printer::special): Don't handle `html-tag'.
2772         * src/include/printer.h, src/libs/libdriver/printer.cpp
2773         (printer::devtag): New virtual function.
2775         * src/libs/libdriver/input.cpp (parse_x_command) <'X'>: Handle
2776         `devtag'.
2778         * src/roff/troff/env.cpp, src/roff/troff/mtsm.cpp,
2779         src/roff/troff/node.cpp: s/html-tag/devtag/.
2781         * src/roff/troff/input.cpp (tag, taga): Always call
2782         curenv->add_node.
2784         * tmac/an-old.tmac, tmac/s.tmac, tmac/troffrc-end: Use DEVTAG*
2785         macros instead of HTML-TAG*.
2787         * tmac/devtag.tmac: New file, defining the DEVTAG-* macros.
2789         * tmac/www.tmac: Load devtag.tmac.
2790         Replace HTML-TAG* macros with DEVTAG* macros.
2791         (HTML, HTML-NS): Changed definitions.
2792         (URL): Use HTML-NS.
2793         (HTML-TAG, HTML-TAG-NS, HTML-TAG-NEXT): Removed.
2795         * tmac/Makefile.sub (NORMALFILES): Add devtag.tmac.
2797 2004-12-10  Werner LEMBERG  <wl@gnu.org>
2799         Import Mike's `gdiffmk' package.
2801         * contrib/gdiffmk/*: New files.
2802         * Makefile.in (OTHERDIRS): Add contrib/gdiffmk.
2803         * NEWS: Updated.
2805 2004-12-08  Werner LEMBERG  <wl@gnu.org>
2807         Import Keith's `pdfmark' package.  Integration is very preliminary.
2809         * contrib/pdfmark/*: New files.
2810         * Makefile.in (OTHERDIRS): Add contrib/pdfmark.
2811         * NEWS: Updated.
2813 2004-12-07  Gaius Mulley  <gaius@glam.ac.uk>
2815         Fix a bug with title handling in HTML.
2817         * src/devices/grohtml/post-html.cpp (text_glob::is_nf,
2818         text_glob::is_fi, text_glob::is_ce): Use strlen to compute string
2819         length.
2820         (html_printer::handle_tag_within_title): New function.
2821         (html_printer::do_title): Use it.
2823         * tmac/s.tmac (TL): Don't set `need_eo_tl'.
2824         (cov*tl-au-print): Emit `.eo.tl' tag.
2826 2004-12-05  Alejandro López-Valencia  <dradul@etb.net.co>
2828         * man/groff_char.man: Minor imrovements.
2830 2004-12-04  Werner LEMBERG  <wl@gnu.org>
2832         * src/preproc/eqn/eqn.man: Revised.
2834 2004-11-25  Werner LEMBERG  <wl@gnu.org>
2836         * src/utils/xtotroff/xtotroff.c: Reformat to be similar to other
2837         groff source files.
2838         Include config.h.
2839         Include limits.h.
2840         Remove X_NOT_STDC_ENV conditional.
2841         (Version_string, program_name): New global variables.
2842         (groff_flag): Removed.
2843         (MapFont): Updated.
2844         (usage): Take a stream as argument.
2845         Use `program_name'.
2846         Update all callers.
2847         (main): Add `long_options' array for `--help' and `--version'.
2848         Make `-g' a dummy option.
2849         Handle `-v' and unknown options.
2850         Remove unused `position' variable.
2852         * src/utils/xtotroff/Makefile.sub (MAN1): Define.
2853         (XLIBS): Add LIBGROFF.
2855         * src/utils/xtotroff/xtotroff.man, src/utils/xtotroff/Makefile.in:
2856         New files.
2858         * src/devices/xditview/Dvi.c (default_font_map): Split into three
2859         parts to avoid compiler warning.
2860         (resources): Don't initialize with `default_font_map'.
2861         (ClassInitialize): Initialize first element of `resources'.
2863         * src/devices/xditview/Makefile.sub (devdir, xtotroff, DPIS, fonts):
2864         Removed.
2866         * src/utils/lkbib/lkbib.man, src/utils/lookbib/lookbib.man,
2867         src/utils/pfbtops/pfbtops.man: Revised, updated.
2869         * configure.ac: Generate src/utils/xtotroff/Makefile.
2870         * configure: Regenerated.
2872 2004-11-24  Werner LEMBERG  <wl@gnu.org>
2874         First fixes to get produce HTML.
2876         * src/devices/grohtml/post-html.cpp (generate_img_src): Add `alt'
2877         attribute.
2879         * tmac/www.tmac (IMG, PIMG, MPIMG): Add `alt' attribute.
2880         (HR, LI): Use `HTML</p>', not `HTML'.
2882         * doc/webpage.ms: Minor updates.
2884 2004-11-23  Larry Kollar  <kollar@alltel.net>
2886         Add option -S grohtml to determine the file split level.
2888         * src/devices/grohtml/post-html.cpp (split_level): New global
2889         variable.
2890         (html_header::determine_header_level): Use split_level.
2891         (main): Handle `-S' command line option.
2892         Sort options.
2894         * src/preproc/html/pre-html.cpp (scanArguments): Updated.
2896         * src/devices/grohtml/grohtml.man: Document it.
2897         Sort options.
2899         * NEWS: Document it.
2901 2004-11-23  Y T  <doarhop@hotmail.com>
2903         * tmac/s.tmac (ref*add-V, ref*add-N): New macros for handling
2904         the volume and number refer entries.
2906 2004-11-22  Werner LEMBERG  <wl@gnu.org>
2908         * src/devices/grohtml/html-table.cpp
2909         (html_table::emit_table_header): Don't emit `cols' attribute which
2910         doesn't exist in HTML 4.0 and is thus invalid.
2912         * NEWS: More minor fixes and updates.
2914 2004-11-18  Werner LEMBERG  <wl@gnu.org>
2916         * tmac/www.tmac (HTML-NS, HTML-TAG-NS, HTML-TAG-NEXT): Simplified.
2917         (HTML</p>): Minor clean-up.
2919         * tmac/groff_www.man: Updated.
2921         * src/devices/grohtml/grohtml.man: Revised and updated.
2923         * NEWS: Updated.
2925 2004-11-18  Gaius Mulley  <gaius@glam.ac.uk>
2927         * src/devices/grohtml/post-html.cpp (html_printer::do_heading):
2928         Fix space insertion.
2929         (html_printer::do_links): Fix rules generation around automatic
2930         heading links.
2932         * tmac/www.tmac (LK): Use HTML-TAG-NS.
2933         (HR): Simplify.
2934         No longer emit empty line for non-HTML devices.
2936 2004-11-17  Werner LEMBERG  <wl@gnu.org>
2938         * doc/Makefile.in (prepare_examples, webpage.html): Handle
2939         `groff.css'.
2941         * doc/Makefile.sub (EXAMPLEFILES, CLEANNOTSRCDIRADD,
2942         prepare_examples, webpage.html): Handle `groff.css'.
2944 2004-11-15  Werner LEMBERG  <wl@gnu.org>
2946         * NEWS, README, doc/webpage.ms: Updated.
2948         * tmac/www.tmac (HTML, HTML-TAG): Minor clean-ups.
2950 2004-10-30  Gaius Mulley  <gaius@glam.ac.uk>
2952         * src/include/printer.h (printer): Remove virtual function
2953         `round_width'.
2954         Update all source files.
2956         * src/devices/grohtml/post-html.cpp (html_printer): New member
2957         function `round_width'.
2959 2004-10-20  Tadziu Hoffmann  <hoffmann@usm.uni-muenchen.de>
2961         * src/preproc/tbl/table.cpp (table::do_row): Fix handling of the `d'
2962         column key letter suffix.
2964 2004-10-14  Werner LEMBERG  <wl@gnu.org>
2966         * Makefile.in (check): Depend on `site.exp' and `docheck'.
2967         (docheck): Run dejagnu's `runtest' if it exists.
2968         (site.exp): Create dejagnu configuration file.
2970         * Makefile.sub (DISTCLEANFILES): Add files related to dejagnu.
2972 2004-10-13  Werner LEMBERG  <wl@gnu.org>
2974         * src/devices/grohtml/html-text.cpp (html_text_get_alignment),
2975         src/devices/grohtml/post-html.cpp (make_val,
2976         html_printer::handle_state_assertion): Fix compiler warnings.
2978         * src/roff/troff/div.cpp: Include `stringclass.h' and `mtsm.h'.
2979         (diversion::diversion): Fix order of initializers.
2981         * src/roff/troff/div.h: Don't include `mtsm.h'.
2983         * src/roff/troff/env.cpp: Include `stringclass.h' and `mtsm.h'.
2984         (environment::environment): Fix order of initializers.
2985         (environment::make_tag, environment::construct_format_state): Fix
2986         compiler warnings.
2988         * src/roff/troff/input.cpp: Include `stringclass.h' and `mtsm.h'.
2989         (input_iterator::input_iterator, macro::macro): Fix order of
2990         initializers.
2992         * src/roff/troff/mtsm.cpp: Include only necessary header files.
2993         (state_set::add, state_set::val): Fix compiler warnings.
2995         * src/roff/troff/mtsm.h: Don't include `stringclass.h'.
2996         (bool_value_state, int_value_state, units_value_state,
2997         string_value_state): Remove comma after last element which causes
2998         an error with g++ 3.3.3.
3000         * src/roff/troff/node.cpp: Include `stringclass.h'.
3001         (hline_node::hline_node, vline_node::vline_node,
3002         space_char_hmotion_node, left_italic_corrected_node): Fix compiler
3003         warnings.
3004         (zero_width_node::zero_width_node): Fix order of initializers.
3006         * src/roff/troff/node.h: Don't include `mtsm.h'.
3007         (hmotion_node): Fix compiler warnings.
3009         * src/roff/troff/number.cpp: Include `stringclass.h' and `mtsm.h'.
3011 2004-10-12  Gaius Mulley  <gaius@glam.ac.uk>
3013         * doc/groff.css: New file.
3015         * doc/webpage.ms: Use `groff.css'.
3016         Other small fixes.
3018         * tmac/an-old.tmac (need_eo_h): New number register.
3019         (TH): Emit `.eo.tl' tag after title.
3020         (SH): Set `need_eo_h'.
3021         (an-trap): Handle `need_eo_h'.
3022         (an-do-tag): s/HTML-TAG-NS/HTML-TAG-NEXT/.
3024         * tmac/s.tmac (need_eo_h, need_eo_tl): New number registers.
3025         (TL): Always start diversion.
3026         Updated.
3027         (@AI): Always call `par@reset'.
3028         (@AB): Update code for -Thtml.
3029         (cov*tl-au-print): Handle -Thtml.
3030         (par@reset): Handle `need_eo_tl', `need_eo_h'.
3031         (@IP): Simplified.
3032         (@IT-html): Removed.
3033         (@SH): Set `need_eo_h' for -Thtml.
3034         (par@TL): s/HTML-TAG/HTMl-TAG-NS/.
3035         Set `need_eo_tl'.
3036         (@NH): s/HTML-TAG/HTMl-TAG-NS/.
3037         Set `need_eo_h' for -Thtml.
3038         (@EQ, @EN): Don't handle -Thtml specially.
3039         (par@load-init): Don't handle -Thtml specially.
3041         * tmac/www.tmac (www:paraspace): New macro.
3042         (HTML-NS, HTML-TAG-NS): Use new `tag' request.
3043         (HTML</p>, HTML-TAG-NEXT): New macros.
3044         (HnE): Emit tag `.eo.h' instead of break.
3045         (HR): s/HTML-NS/HTML/.
3046         (www-end-nowhere): End diversion only if `www-html' not set.
3047         Emit `.eo.tl' tag.
3048         (ULS, ULE): s|HTML|HTML</p>|.
3049         (LI): Call `www:paraspace'.
3050         (HEAD): New macro.
3052 2004-10-11  Gaius Mulley  <gaius@glam.ac.uk>
3054         * src/roff/troff/request.h (macro): Make `p' public.
3055         New variable `is_a_diversion'.
3056         New member function `is_diversion'.
3059         * src/devices/grohtml/html.h (simple_output): New member function
3060         `force_nl'.
3062         * src/devices/grohtml/html-table.cpp (tabs::compatible): Fix
3063         computation of `total'.
3064         (tabs::check_init): New function.
3065         (html_table::emit_table_header): Emit style data.
3066         (html_table::insert_column): Improved.
3068         * src/devices/grohtml/html-table.h: Updated.
3070         * src/devices/grohtml/html-text.cpp (html_text::html_text):
3071         Initialize `start_space' with TRUE.
3072         (html_text::end_tag, html_start_tag): Fix `P_TAG' and `PRE_TAG'
3073         cases.
3074         (html_text::flush_text): Set `start_space' flag.
3075         (html_text::uses_indent, html_text::remove_para_space,
3076         html_text::get_alignment): New functions.
3077         (html_text::push_para): Updated.
3078         (html_text::do_para): Check for empty argument.
3079         Don't set `space_emitted'.
3080         (html_text::do_space, html_text::emit_space): Updated.
3082         * src/devices/grohtml/html-text.h (tag_definition): New variable
3083         `really_issued'.
3084         (html_text): New member function `uses_indent', `remove_para_space',
3085         `get_alignment'.
3087         * src/devices/grohtml/output.cpp (simple_output::force_nl): New
3088         function.
3089         (simple_output:nl): Always emit `\n'.
3091         * src/devices/grohtml/post-html.cpp: Include `string.h'.
3092         (BASE_POINT_SIZE): Removed.
3093         (base_point_size, head_info): New global variables.
3094         (text_glob): New member functions `is_ll', `is_tl', `is_eo_tl',
3095         `is_eo_h'.
3096         (text_glob::is_nf, text_glob::is_fi): Handle `.fi 0' and `.fi 1'
3097         tags, respectively.
3098         (page::add_and_encode): Pass additional parameter for tag flag.
3099         (assert_pos): New structure.
3100         (assert_state): New class.
3101         (html_printer): Remove `indentation', `prev_indent'.
3102         Add variables `troff_indent', `device_indent', `temp_indent'.
3103         Add variables `seen_indent', `next_indent', `seen_pageoffset',
3104         `next_pageoffset', `seen_linelenght', `next_linelength',
3105         `seen_center', `next_center', `seen_space', `seen_break', `as'.
3106         Add member functions `do_check_center', `do_space', `do_head',
3107         `get_troff_indent', `restore_troff_indent', `handle_assertion',
3108         `handle_state_assertion', `do_end_para', `set_char_and_width'.
3109         Change argument to `do_fill' to `char *'.
3110         Update constructor.
3111         (html_printer::emit_raw): Call `shutdown_table'.
3112         Use new functions.
3113         (html_printer::do_center): Simplified.
3114         (html_printer::do_title): Improved.
3115         (html_printer::write_header): Emit one more newline.
3116         Use new functions.
3117         (html_printer::do_heading, html_printer::do_indent,
3118         html_printer::do_eol, html_printer::do_tab_ts,
3119         html_printer::do_tab, html_printer::do_tab0,
3120         html_printer::calc_po_in, html_printer::next_horiz_pos,
3121         html_printer::remove_courier_tabs,
3122         html_printer::insert_tab0_foreach_tab, html_printer::begin_page):
3123         Updated.
3124         (html_printer::do_linelength, html_printer::do_pageoffset,
3125         html_printer::do_indentation, html_printer::do_tempindent,
3126         html_printer::do_tab_te): Simplified.
3127         (html_printer::do_pointsize): Check whether point size is really
3128         associated a `.tl' tag.
3129         (html_printer::do_break): Rewritten.
3130         (html_printer::troff_tag): Improved.
3131         (html_printer::flush_globs): Updated.
3132         (html_printer::lookahead_for_tables): Handle `is_br'.
3133         Use new functions.
3134         (html_printer::set_char): Check `sbuf_style.f'.
3135         (html_printer::write_navigation): Use string comparison.
3136         (html_printer::~html_printer): Emit `head_info'.
3137         (html_printer::special): Rewritten.
3138         (get_str, make_val): New functions.
3139         (main): New option `s' to set the base point size.
3141         * src/preproc/html/pre-html.cpp (scanArguments): Handle option `s'.
3143 2004-10-10  Gaius Mulley  <gaius@glam.ac.uk>
3145         * src/roff/troff/node.cpp: New extern `debug_state'.
3146         Include `stringclass.h' and `mtsm.h'.
3147         Implement new classes and class members from `node.h'.
3148         (real_output_file): Make `fp' public.
3149         (troff_output_file): New variables `cur_div_level' and `tag_list'.
3150         Update constructors.
3151         (troff_output_file::really_print_line): Check whether we should push
3152         the current troff state and use the state at the start of the
3153         invocation of this diversion.
3154         (troff_output_file::add_to_tag_list): New member function.
3155         (node::add_char): Handle `glyph_comp_np'.
3157         * src/roff/troff/node.h: Include `mtsm.h'.
3158         (node): New variables `state', `push_state', `div_nest_level',
3159         `is_special'.  Update constructors, all descendants.
3160         Pass additional argument to `add_char' member function.
3161         New virtual member functions `is_tag', `debug_node',
3162         `debug_node_list'.  Update all descendants.
3163         (tag_node): New class for handling tags.
3164         (output_file): Add variable `state'.
3166 2004-10-09  Gaius Mulley  <gaius@glam.ac.uk>
3168         * src/roff/troff/mtsm.cpp, src/roff/troff/mtsm.h: New files,
3169         providing a minimal troff state machine to emit meta tags for the
3170         post-grohtml device driver.
3172         * src/roff/troff/Makefile.sub (OBJS, CCSRCS, HDRS): Handle new
3173         files.
3175 2004-10-09  Werner LEMBERG  <wl@gnu.org>
3177         * tmac/trace.tmac: Fix handling of `am' and `am1' calls.
3179 2004-10-06  Gaius Mulley  <gaius@glam.ac.uk>
3181         * src/roff/troff/column.cpp (vjustify_node::copy): Updated.
3183         * src/roff/troff/div.h: Include `mtsm.h'.
3184         (diversion): New variables `any_chars_added', `needs_push',
3185         `saved_seen_break', `saved_seen_space', `saved_seen_eol',
3186         `saved_suppress_next_eol', `modified_tag'.
3187         New virtual member function `is_diversion'.  Update all descendants.
3189         * src/roff/troff/div.cpp (diversion::diversion,
3190         macro_diversion::macro_diversion): Updated.
3191         (do_divert): Handle `seen_break', `seen_space', `seen_eol',
3192         `suppress_next_eol'.
3193         (top_level_diversion::space): Handle `curenv->seen_space'.
3194         (page_offset): Update tag handling.
3195         (space_request, blank_line, flush_output): Don't call `add_html_tag'.
3197         * src/roff/troff/env.h (environment): Make `tabs' public.
3198         Remove `ignore_next_eol', `emitted_node'.
3199         Update `output_line', `output'.
3200         New variables `seen_space', `seen_eol', `suppress_next_eol',
3201         `seen_break'.
3202         New member functions `construct_state', `make_tag',
3203         `construct_format_state, `construct_new_line_state,
3204         `dump_troff_state'.
3205         Remove `add_html_tag', `make_html_tag'.
3207         * src/roff/troff/env.cpp: New externs `suppress_push',
3208         `get_diversion_state', `global_diverted_space'.
3209         (pending_output_line): New variable `was_centered'.
3210         Update constructor and all callers.
3211         (pending_output_line::output): Call `curenv->construct_format_state'.
3212         (environment::environment, environment::copy): Updated.
3213         (environment::output): Handle `was_centered'.
3214         (environment::add_char): Handle construct and diversion state.
3215         (environment::add_node): Handle construct state.
3216         (environment::newline): Handle `was_centered'.
3217         (environment::output_line): Updated.
3218         (environment::possibly_break_line): Updated.
3219         Update tag handling.
3220         (environment::add_html_tag): Replaced with...
3221         (environment::make_tag): New function.
3222         (environment::add_html_tag_tabs, environment::make_html_tag): Removed.
3223         (environment::dump_troff_state): New debugging function.
3224         (environment::construct_state, environment::construct_format_state,
3225         environment::construct_new_line_state): New functions.
3226         (environment::do_break): Updated.
3227         Handle `global_diverted_space'.
3228         (environment::handle_tag): Update tag handling.
3229         (point_size, fill, do_break_request): Don't call `add_html_tag'.
3230         (no_fill): Don't call `add_html_tag'.
3231         Set `suppress_next_eol'.
3232         (center, right_justify, line_length, indent, temporary_indent,
3233         set_tabs):
3234         Update tag handling.
3236         * src/roff/troff/input.cpp: Don't include `stringclass.h'.
3237         (input_iterator): New variables `is_diversion', `diversion_state'.
3238         Update constructors.
3239         (input_stack): New member functions `get_div_level',
3240         `get_diversion_state', `check_end_diversion'.
3241         New variables `div_level', `diversion_state'.  Initialize them.
3242         (suppress_push, global_diverted_space): New global variables.
3243         (input_stack::finish_get, input_stack::finish_peek,
3244         input_stack::remove_boundary, input_stack::end_file,
3245         input_stack::clear, input_stack::pop_macro): Call
3246         `check_end_diversion'.
3247         (input_stack::push): Handle `div_level' and `diversion_state'.
3248         (get_diversion_state): New function.
3249         (diverted_space_node::reread): Handle `global_diverted_space'.
3250         (macro::macro): Update constructors.
3251         (macro::is_diversion): New function.
3252         (macro::operator=): Set `is_a_diversion'.
3253         (string_iterator): New member function `is_diversion'.
3254         (string_iterator::string_iterator): Update constructors.
3255         (string_iterator::fill): Set `div_nest_level'.
3256         (macro_iterator): New member function `is_diversion'.
3257         (do_if_request): Handle `suppress_push'.
3258         (tag, taga): New functions.
3259         (init_input_requests): Add `tag' and `taga' requests.
3261 2004-10-05  Gaius Mulley  <gaius@glam.ac.uk>
3263         * src/include/font.h (font): New member function
3264         `get_image_generator'.
3265         New variables `unscaled_charwidths' and `image_generator'.
3267         * src/libs/libgroff/font.cpp (font::get_width): Always return the
3268         character's unscaled width if `font::unscaled_charwidths' is set.
3269         (font::get_image_generator): New function.
3270         (font::load_desc): Check the `unscaled_charwidths' and
3271         `image_generator' keywords.
3273         * src/libs/libgroff/fontfile.cpp: Initialize
3274         `font::unscaled_charwidths' and `font::image_generator'.
3276         * font/devhtml/DESC.proto: s/html/unscaled_charwidths/.
3278         * font/devhtml/Makefile.sub (DESC): Set `image_generator' keyword.
3280         * man/groff_font.man: Document `unscaled_charwidths' and
3281         `image_generator'.
3283         * src/preproc/html/pre-html.cpp: Include `device.h'.
3284         (image_gen): New global variable.
3285         (imageList::createPage): Use `image_gen'.
3286         (main): Use `image_generator' keyword.
3288 2004-10-04  Gaius Mulley  <gaius@glam.ac.uk>
3290         * tmac/html.tmac: Handle \[sqrtex].
3292 2004-10-04  Gaius Mulley  <gaius@glam.ac.uk>
3294         * src/include/printer.h (printer): New virtual method `round_width'.
3296         * src/devices/grodvi/dvi.cpp, src/devices/grolbp/lbp.cpp,
3297         src/devices/grolj4/lj4.cpp, src/devices/grops/ps.cpp,
3298         src/devices/grotty/tty.cpp (printer::round_width): New function
3299         member.
3301         * src/devices/grohtml/post-html.cpp (printer::round_width): New
3302         function member.
3303         (html_printer::set_numbered_char): Use it.
3305 2004-10-03  Gaius Mulley  <gaius@glam.ac.uk>
3307         * aclocal.m4 (GROFF_GHOSTSCRIPT_PATH): New macro.
3309         * configure.ac: Call GROFF_GHOSTSCRIPT_PATH.
3311         * configure: Regenerated.
3313         * Makefile.in (GHOSTSCRIPT): New variable.
3314         (MDEFINES): Add GHOSTSCRIPT.
3316 2004-10-03  Werner LEMBERG  <wl@gnu.org>
3318         * INSTALL.gen: Updated (taken from texinfo CVS).
3320 2004-09-28  Werner LEMBERG  <wl@gnu.org>
3322         * NEWS: Updated.
3324 2004-09-28  Heinz-Jürgen Oertel  <hj.oertel@surfeu.de>
3326         * tmac/groff_www.man: Revised and updated.
3328 2004-09-26  Werner LEMBERG  <wl@gnu.org>
3330         Fix \$@ and \$* to handle any number of arguments.
3332         * src/roff/troff/input.h (BEGIN_QUOTE, END_QUOTE): New special
3333         characters.
3335         * src/roff/troff/input.cpp (input_iterator::internal_level):
3336         Removed.
3337         (input_stack): New member functions `increase_level' and
3338         `decrease_level'.
3339         (input_stack::get_level): Don't use `internal_level'.
3340         (get_copy, token::next): Handle BEGIN_QUOTE and END_QUOTE.
3341         (end_quote_iterator): Completely removed.
3342         (interpolate_arg): Build string for \$@ and \$* which is then
3343         pushed onto the input stack.
3345 2004-09-23  Keith Marshall  <keith.d.marshall@ntlworld.com>
3347         * tmac/groff_ms.man, doc/groff.texinfo (ms Document Control
3348         Registers): Document changes from 2004-09-19.
3350 2004-09-23  Werner LEMBERG  <wl@gnu.org>
3352         * tmac/an-old.tmac (ne): Using default scaling operator.
3354 2004-09-19  Keith Marshall  <keith.d.marshall@ntlworld.com>
3356         This change implements the following features:
3358         PORPHANS
3359           New numeric register: Defines number of lines following LP, PP,
3360           QP, IP or XP, which must be kept together, before any automatic
3361           page break.  If insufficient space remains on the current page, a
3362           page break is forced before the new paragraph begins.
3364         HORPHANS
3365           New numeric register: Sets number of lines of following paragraph
3366           which must be kept with a heading, defined by NH or SH, before any
3367           automatic page break.  If insufficient space remains on the
3368           current page, a page break is forced before the heading.
3370         GROWPS
3371           (Thanks to Joerg van den Hoff, for this idea).
3373           New numeric register: Sets the first level of heading (set with
3374           NH), which will keep the same point size as body text; e.g. if
3375           GROWPS is set to 3, .NH 3, .NH 4, ... will produce headings at the
3376           point size specified by \n[PS], but .NH 2 and .NH 1 will have
3377           progressively larger point sizes, determined by \n[PSINCR] (see
3378           below).
3380         PSINCR
3381           New numeric register: Sets the point size increment for each level
3382           of heading, (set with NH), below the threshold level set by
3383           GROWPS; e.g. if \n[PS] = 10, \n[GROWPS] = 3 and \n[PSINCR] = 2.0p,
3384           then .NH 1 will produce 14pt headings, .NH 2 will produce 12pt,
3385           and all other levels will remain at 10pt, (because \n[PS] = 10).
3387         SH
3388           Existing macro now accepts a numeric argument, to make heading
3389           size match that of NH with same argument value, when the
3390           GROWPS/PSINCR feature is enabled.
3392         SN-DOT
3393           New string, set by NH macro, replaces the existing (undocumented)
3394           use of SN, to represent the assigned section number.
3396         SN-NO-DOT
3397           New string, set by NH macro, represents the assigned section
3398           number, but omits the terminal period (periods at intermediate
3399           levels are retained).
3401         SN
3402           String set by NH macro, originally undocumented, now implemented
3403           as an alias for SN-DOT (which reproduces original behaviour).
3405         * tmac/s.tmac (PORPHANS): New register.
3406         (par*start): Use it.
3407         (HORPHANS, GROWPS, PSINCR): New registers.
3408         (SH-NO-TAG, @SH): Use them.
3409         (@NH): Improved.
3411 2004-09-19  Keith Marshall  <keith.d.marshall@ntlworld.com>
3413         * NEWS, doc/groff.texinfo (ms Display and Keeps), tmac/groff_ms.man:
3414         Document the deletion of `Ds' and `De' macros.
3416 2004-09-10  Werner LEMBERG  <wl@gnu.org>
3418         In tbl, handle \a as an interpreted leader character if in
3419         compatibility mode.
3421         * src/preproc/tbl/table.h (PREFIX, PREFIX_CHAR, LEADER,
3422         LEADER_CHAR): New macros.
3423         (compatible_flag): New declaration.
3425         * src/preproc/tbl/main.cpp (table_input): Add LEADER_1, LEADER_2,
3426         LEADER_3, and LEADER_4 to `state'.
3427         (table_input::get): Handle `\a'.
3429         * src/preproc/tbl/table.cpp (PREFIX): Removed.
3430         (LEADER_REG): New macro.
3431         (table::init_output): Define LEADER_REG string register if in
3432         compatibility mode.
3434         * src/preproc/tbl/tbl.man: Document it.
3436 2004-08-18  Werner LEMBERG  <wl@gnu.org>
3438         * tmac/doc.tmac (An): Fix error message.
3440 2004-08-06  Werner LEMBERG  <wl@gnu.org>
3442         * src/preproc/tbl/main.cpp (main): Call `fatal' not `error' if a
3443         file can't be opened.  UNIX tbl has the same behaviour.
3445 2004-08-05  Y T  <doarhop@hotmail.com>
3447         * src/preproc/grn/hdb.cpp (compatibility_flag): Add declaration.
3448         (DBRead): If in compatibility mode, take into account the text
3449         when computing figure boundaries.
3451 2004-08-05  Werner LEMBERG  <wl@gnu.org>
3453         * src/preproc/soelim/soelim.man: Improved.  Based on suggestions
3454         from Tadziu Hoffmann.
3456 2004-08-03  Werner LEMBERG  <wl@gnu.org>
3458         * doc/meref.me: Document `_M' register.
3460 2004-08-03  Martin Husemann  <martin@duskware.de>
3462         Make hpftodit work correctly on big-endian systems.
3464         * src/utils/hpftodit/hpftodit.cpp (File): New method
3465         `get_uint32(char *)'.
3466         (entry): New member `orig_value'.
3467         (read_tags): Use new method.
3468         (output_font_name, read_and_output_pcltypeface, dump_ascii):
3469         Updated.
3471 2004-08-01  Werner LEMBERG  <wl@gnu.org>
3473         * tmac/s.tmac: Undo change 2003-06-29.  The proper macro definitions
3474         are already in X11's `macros.t' file.
3476 2004-08-01  Jeff Conrad  <jeff_conrad@msn.com>
3478         * src/utils/hpftodit/hfptodit.cpp (output_font_name, dump_ascii):
3479         Fix casting bug.
3480         (read_and_output_pcltypeface): Handle strings with length <= 4.
3482 2004-07-27  Egil Kvaleberg  <egil@kvaleberg.no>
3484         * tmac/s.tmac (pg@top): Don't save `PO' register.
3485         (pg*end-col, pg*end-page): Directly use `PO' register.
3487 2004-07-27  Werner LEMBERG  <wl@gnu.org>
3489         * man/groff_tmac.man: Mention `trace' and `pic' macro packages.
3491         * src/preproc/refer/refer.cpp (output_references): Check for
3492         empty hash table.
3493         * src/preproc/refer/refer.man: Improve documentation of
3494         `bibliography' command.
3496 2004-07-26  Werner LEMBERG  <wl@gnu.org>
3498         Add requests `fcolor' and `gcolor'.
3500         * src/roff/troff/env.cpp (fill_color_change, glyph_color_change):
3501         New functions.
3502         (init_env_requests): Add `fcolor' and `gcolor'.
3504         * src/roff/troff/input.h: Export do_glyph_color and do_fill_color.
3506         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo
3507         (Colors): Document new requests.
3509 2004-07-24  Werner LEMBERG  <wl@gnu.org>
3511         Add support for fractional point sizes in ms macros.  A value for
3512         PS, VS, FPS, and FVS greater than or equal to 1000 is always divided
3513         by 1000.  For example, `.nr PS 10250' sets the font size to 10.25p.
3515         * tmac/s.tmac (@AU, @AI, par@load-init, par@init, par@reset, NL,
3516         PX): Handle fractional point sizes for PS, VS, FPS, and FVS.
3518         * tmac/groff_ms.man, docs/groff.texinfo (ms Document Control
3519         Registers), NEWS: Document it.
3521 2004-07-19  Werner LEMBERG  <wl@gnu.org>
3523         * src/preproc/pic/lex.cpp (for_input): Add member `from'.
3524         Update constructor.
3525         (do_for, for_input::get, for_input::peek): Handle negative `by'.
3526         * src/preproc/pic/pic.man, doc/pic.ms, NEWS: Document it.
3528 2004-07-08  Thomas Klausner  <wiz@netbsd.org>
3530         * tmac/doc-syms (doc-str-St--p1003.1-2004): New string.
3531         * tmac/groff_mdoc.man: Updated.
3533 2004-07-05  Werner LEMBERG  <wl@gnu.org>
3535         * doc/groff.texinfo (Manipulating Hyphenation): Further improve
3536         documentation of `hcode'.
3538 2004-07-04  Sang Dae Yu  <sdyu@bh.knu.ac.kr>
3540         Improve appearance of arrows in pic.
3542         * src/preproc/pic/object.cpp (draw_arrow): Make outline of filled
3543         arrow head thin.
3544         Use two line segments for drawing non-filled arrow head.
3545         (line_object::print, spline_object::print): Shorten line length to
3546         avoid arrow sticking.
3547         (arc_object::print): Take arrow direction into account.
3549 2004-07-03  Heinz-Jürgen Oertel  <hj.oertel@surfeu.de>
3551         * tmac/groff_www.man: Update documentation of .MPIMG.
3553 2004-07-03  Werner LEMBERG  <wl@gnu.org>
3555         * tmac/an-old.tmac (RI): Always start with font `R'.
3556         (RI, IR): Properly end with font `R'.
3558 2004-07-02  Paul Eggert  <eggert@cs.ucla.edu>
3560         * man/ditroff.man, man/groff_font.man, man/groff_out.man,
3561         src/devices/grohtml/grohtml.man, src/preproc/grn/grn.man,
3562         src/preproc/pic/pic.man, tmac/groff_man.man, tmac/groff_ms.man:
3563         Don't pass more than six arguments to .R, .I, .B, etc., for
3564         compatibility with traditional troff macros.
3566 2004-07-02  Werner LEMBERG  <wl@gnu.org>
3568         * src/roff/troff/input.h: s/COMPATIBLE_SAVE/PUSH_GROFF_MODE/.
3569         s/COMPATIBLE_RESTORE/POP_GROFFCOMP_MODE/.
3570         Update all users.
3571         (PUSH_COMP_MODE): New internal character constant.
3572         Update all users.
3574         * src/roff/troff/input.cpp (get_copy): Handle PUSH_GROFF_MODE,
3575         PUSH_COMP_MODE, and POP_GROFFCOMP_MODE.
3576         (token::next, macro::append): Handle PUSH_COMP_MODE.
3577         (decode_args): Add PUSH_GROFF_MODE or PUSH_COMP_MODE before and
3578         POP_GROFFCOMP after each of the decoded arguments to make them
3579         independent from the compatibility mode status.
3580         (comp_mode): Add `COMP_ENABLE'.
3581         (do_define_string, do_define_macro): Handle COMP_ENABLE.
3582         (define_string, append_string, define_macro, define_indirect_macro,
3583         append_macro, append_indirect_macro): Handle `compatible_flag'.
3584         (chop_macro, substring_request, asciify): Handle PUSH_COMP_MODE.
3586         * man/groff_diff.man, doc/groff.texinfo: Updated.
3588 2004-07-01  Werner LEMBERG  <wl@gnu.org>
3590         * doc/groff.texinfo: Improve documentation of `hcode'.
3591         Use @documentencoding and convert document to latin-1; to do that
3592         make latin characters active and assign proper macros (within a
3593         @tex...@end tex environment).
3594         * doc/Makefile.in (.texinfo.html, groff): Use --enable-encoding.
3595         * doc/Makefile.sub (groff): Ditto.
3597 2004-06-29  Werner LEMBERG  <wl@gnu.org>
3599         Implement two new conditional operators `F <name>' and `S <name>'
3600         which check whether <name> is a valid font or style, respectively.
3602         * src/libs/libgroff/font.cpp (text_file): Add `silent' member.
3603         (text_file::text_file): Updated.
3604         (text_file::error): Don't emit message if `silent' is set.
3605         (font::load_font): Add optional third argument (which is directly
3606         passed to `load'.
3607         (font::load): Add optional second argument to check the header of
3608         a font only, without emitting warning or error messages.
3609         * src/include/font.h (font): Updated.
3611         * src/roff/troff/input.cpp (do_if_request): Implement `S' and `F'
3612         conditionals.
3613         * src/roff/troff/node.cpp (mount_font_no_translate): Add optional
3614         fourth argument to check a font without mounting.
3615         (check_font, check_style): New functions.
3616         * src/roff/troff/node.h: Updated.
3618         * man/groff_diff.man, man/groff.man, NEWS, doc/groff.texinfo:
3619         Updated.
3621 2004-06-27  Werner LEMBERG  <wl@gnu.org>
3623         Implement new string-valued register `.sty' to return the current
3624         style name.
3626         * env.cpp (environment::get_style_name_string): New function.
3627         (init_env_requests): Add `.sty' register.
3628         * env.h (environment): Updated.
3629         * node.cpp (font_info): Make `get_style_name' a friend.
3630         (get_style_name): New function.
3631         * node.h: Updated.
3633         * man/groff_diff.man, man/groff.man, NEWS, doc/groff.texinfo:
3634         Updated.
3636 2004-06-15  Werner LEMBERG  <wl@gnu.org>
3638         * src/preproc/tbl/main.cpp (process_data) <GOT_RIGHT_BRACE>: Handle
3639         `nospaces' option.
3641 2004-06-10  Colin Percival  <colin.percival@wadham.ox.ac.uk>
3643         * doc/meintro.me, doc/meref.me: Don't use \*[td], \n[dy], \*[mo],
3644         and \n[mo] to avoid dependency on current date.
3646 2004-06-08  Werner LEMBERG  <wl@gnu.org>
3648         * Makefile.sub (install_data): New target.
3650 2004-06-04  Werner LEMBERG  <wl@gnu.org>
3652         * src/libs/libxutil/Makefile.sub (EXTRA_CFLAGS): Define.
3654 2004-06-03  Werner LEMBERG  <wl@gnu.org>
3656         * src/devices/xditview/Makefile.sub (EXTRA_LDFLAGS): Fix typo and
3657         order of libraries.
3658         (install_data): Add $(srcdir).
3660         * src/utils/xtotroff/Makefile.sub (EXTRA_LDFLAGS): Fix order of
3661         libraries.
3663 2004-06-02  Werner LEMBERG  <wl@gnu.org>
3665         * aclocal.m4 (GROFF_X11): s/have_no_x/groff_no_x/.
3666         Add X11 stuff to CFLAGS, LDFLAGS, and LIBS temporarily.
3667         Add test for Xmu library.
3668         (GROFF_APPRESDIR_OPTION, GROFF_APPRESDIR_CHECK,
3669         GROFF_APPRESDIR_DEFAULT): New macros.
3671         * configure.ac: Call GROFF_APPRESDIR_OPTION, GROFF_APPRESDIR_CHECK,
3672         and GROFF_APPRESDIR_DEFAULT.
3674         * configure: Regenerated.
3676         * Makefile.in (appresdir): New variable.
3677         (MDEFINES): Add appresdir.
3679         * src/devices/xditview/Makefile.sub (EXTRA_LDFLAGS): Add -Xmu and
3680         -Xt.
3681         (install_data, uninstall_sub): New targets to handle GXditview.ad.
3683         * src/utils/indxbib/Makefiles.ub (install_data): Depend on
3684         `$(srcdir)/eign', not `eign'.
3686         * MANIFEST, INSTALL, NEWS, PROBLEMS: Updated.
3688         * man/groff_out.man, man/roff.man, src/devices/grops/grops.man,
3689         src/devices/xditview/gxditview.man, src/roff/groff/groff.man:
3690         Protect (g)xditview with `\%' to avoid hyphenation.
3691         Other minor formatting.
3693 2004-06-01  Werner LEMBERG  <wl@gnu.org>
3695         Integrate gxditview into groff's standard directory hierarchy.
3697         * src/xditview/*: Moved to ...
3698         * src/devices/xditview/*: Here.
3699         Moved DviChar.h and XFontName.h to src/include.
3700         Moved DviChar.c and XFontName.c to new directory src/libs/libxutil.
3701         Split off `xmalloc' into new file src/libs/libxutil/xmalloc.c.
3702         Moved xtotroff.c to new directory src/utils/xtotroff.
3703         Provide proper Makefile.sub files (reusing the stuff from
3704         Imakefile.in).
3705         DESC renamed to DESC.in.
3706         Removed GXDitview-ad.h, INSTALL, Imakefile.in.
3707         Converted everything from K&R to ANSI C.
3708         Decorated with const where appropriate.
3709         Cast string constants with `String' and `char *' where appropriate.
3710         Made it compile with C++ (used as a C compiler).
3711         Removed other minor compiler warnings.
3713         * src/devices/xditview/device.c: Include config.h, string.h, and
3714         defs.h.
3715         Don't declare `exit', `strtok', `strchr', and `getenv'.
3716         (FONTPATH): Remove.
3718         * src/devices/xditview/font.c: Don't declare `XParseFontName' and
3719         `XFormatFontName'.
3721         * src/devices/xditview/xditview.c: Include config.h.
3722         Include stdio.h earlier.
3723         Protect declaration of `popen' and `pclose' with
3724         NEED_DECLARATION_POPEN and NEED_DECLARATION_PCLOSE.
3725         Replace `caddr_t' with `XtPointer'.
3726         (MakePromptFunc): New typedef.
3727         (DoPrint): Use RETSIGTYPE.
3728         (promptfunction): Change type to MakePromptFunc.
3729         (MakePrompt): Use MakePromptFunc for third argument.
3730         (xmalloc): Removed.
3732         * src/devices/xditview/ad2c: Add casts to `String'.
3734         * src/include/XFontName.h (XFontNameString): Don't use array
3735         notation.
3736         Add prototypes for `XParseFontName', `XFormatFontName',
3737         `XCompareFontName', and `XCopyFontName'.
3739         * src/include/Makefile.sub (HDRS): Add `DviChar.h' and
3740         `XFontName.h'.
3742         * src/utils/xtotroff/xtotroff.c: Include getopt.h.
3743         Don't declare `XParseFontName' and `XFormatFontName'.
3744         (xmalloc): Removed.
3745         (main): Remove `optind' and `optarg'.
3747         * Makefile.in (XDEVDIRS, XPROGDIRS, XLIBDIRS): New variables
3748         (to select programs which need X).
3749         Make XDEVIDIRS depend on `FORCE'.
3750         (X_CFLAGS, X_LIBS, X_EXTRA_LIBS, X_PRE_LIBS): New variables (for
3751         X support).
3752         (MDEFINES): Updated.
3753         (LIBDIRS): Use XLIBDIRS.
3754         (CPROGDIRS): Use XPROGDIRS.
3755         (DEVDIRS): Remove font directories for gxditview.
3756         (ALLDIRS, DISTDIRS): Add XDEVDIRS.
3757         (EXTRADIRS): Remove src/xditview.
3759         * Makefile.sub (DISCLEANFILES): Updated.
3761         * Makefile.comm (LIBXUTIL): New variable.
3762         (.cpp.o, .cpp.obj): Handle EXTRA_CCFLAGS.
3763         (.c.o, .c.obj, .y.o): Handle EXTRA_CFLAGS.
3765         * Makefile.cpg, Makefile.ccpg ($PROG): Handle EXTRA_LDFLAGS.
3767         * aclocal.m4 (GROFF_X11): New function.
3769         * configure.ac: Call GROFF_X11.
3770         Don't create src/xditview/Imakefile.
3771         Don't emit notice how to build gxditview.
3773         * configure: Regenerated.
3775         * test-groff.in (GROFF_BIN_PATH, XENVIRONMENT): Updated.
3777 2004-05-28  Akihiro Sagawa  <sagawa@sohgoh.net>
3779         * Makefile.in (CPPFLAGS): Define.
3780         (MDEFINES): Add CPPFLAGS.
3782 2004-05-27  Werner LEMBERG  <wl@gnu.org>
3784         * arch/misc/Makefile.sub (shdeps.sed): Use $(srcdir).
3786 2004-05-26  Niklas Edmundsson  <nikke@acc.umu.se>
3788         Fix problems with `friend name injections'.
3790         * src/preproc/eqn/box.h (make_mark_box, make_lineup_box,
3791         make_script_box), src/roff/troff/div.h (end_diversions),
3792         src/roff/troff/env.h (title), input.cpp (process_input_stack): Undo
3793         change 2004-04-08.
3795 2004-05-25  Bernd Warken  <bwarken@mayn.de>
3797         * src/preproc/pic/pic.man, doc/pic.ms: Add example for `command'.
3799 2004-05-25  Werner LEMBERG  <wl@gnu.org>
3801         * src/libs/libgroff/cset.cpp, src/libs/libgroff/lf.cpp,
3802         src/libs/libgroff/color.cpp: Include lib.h.
3804 2004-05-25  Paul Eggert  <eggert@cs.ucla.edu>
3806         * PROBLEMS: Update documentation for problems with Sun C++ 5.0
3807         through Forte 6u1, and for how to get GNU make on Solaris.
3809 2004-05-24  Werner LEMBERG  <wl@gnu.org>
3811         * PROBLEMS: Document problems with gcc 3.4.0 on Sun.  Reported
3812         by Paul Eggert.
3814 2004-05-15  Keith Marshall  <keith.d.marshall@ntlworld.com>
3816         * arch/misc/Makefile.sub (shdeps.sed): Don't use `$<' in explicit
3817         rule.
3819 2004-05-14  Werner LEMBERG  <wl@gnu.org>
3821         * REVISION: Set to 2.
3823         * aclocal.m4 (GROFF_STDINT_H): Removed.
3824         (GROFF_INTTYPES_H): Define HAVE_CC_INTTYPES_H.
3826         * configure.ac: Updated.
3827         * configure, src/include/config.hin: Regenerated.
3829         * src/libs/libgroff/tmpname.cpp: Don't include stdint.h but
3830         inttypes.h conditionally.
3832 2004-05-13  Werner LEMBERG  <wl@gnu.org>
3834 Version 1.19.1 released
3835 =======================
3837 2004-05-10  Stephen Gildea  <http://www.gildea.com/stephen>
3839         * src/preproc/refer/label.y (same_author_last_name,
3840         same_author_name): Handle empty sort keys.
3842 2004-05-10  Werner LEMBERG  <wl@gnu.org>
3844         * NEWS, README, TODO, PROJECTS, PROBLEMS, MANIFEST, doc/webpage.ms,
3845         tmac/TODO: Updated.
3847         * tmac/doc-syms (doc-str-Lb-libposix, doc-str-Lb-libpthread,
3848         doc-str-Lb-librt): Reset font.
3849         (Lb): Rename `doc-str-Lb' to `doc-str-Lb1'.
3850         Provide `doc-str-Lb' to reset font.
3851         * tmac/groff_mdoc.man: Updated.
3853 2004-05-08  Jan Schaumann  <jschauma@netmeister.org>
3855         * src/preproc/html/pre-html.cpp (make_message): Make it work for
3856         snprintf versions which don't conform to ANSI C 99 (this is,
3857         counting the string's trailing null byte in the return value).
3859 2004-05-07  Keith Marshall  <keith.d.marshall@ntlworld.com>
3861         * src/roff/troff/node.cpp (suppress_node::tprint): Don't expect
3862         that all implementations of sprintf handle null pointers correctly.
3864 2004-05-04  Werner LEMBERG  <wl@gnu.org>
3866         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
3867         Document `.U' register.
3869         * src/roff/troff/env.cpp (environment::mark_last_line)
3870         [WIDOW_CONTROL]: Fix scope of `p' for new C++ compilers.
3872 2004-05-04  Larry Kollar  <kollar@alltel.net>
3874         New read-only register `.U'; it returns 1 in safer mode and 0
3875         otherwise.
3877         * src/roff/troff/input.cpp (init_input_requests): Implement `.U'
3878         register.
3880 2004-05-03  Werner LEMBERG  <wl@gnu.org>
3882         * install-sh, mkinstalldirs: New versions; taken from texinfo CVS.
3884 2004-04-17  Werner LEMBERG  <wl@gnu.org>
3886         * src/include/font.h (font): Use `int' for ch_index.
3887         * src/libs/libgroff/font.cpp (font::alloc_ch_index,
3888         font::compact): Updated.
3890         * src/roff/groff/pipeline.c (run_pipeline) [_WIN32]: Fix compiler
3891         warnings.
3893         * src/roff/troff/div.cpp (begin_page), src/roff/troff/env.cpp
3894         (hyphen_word): Fix compiler warnings.
3895         * src/roff/troff/input.cpp (get_char_for_escape_name): Return
3896         `char'.
3897         Update all callers.
3898         (get_delim_number, get_line_arg): Change second argument type to
3899         `unsigned char'.
3900         (macro_header::copy, token::next, do_define_string,
3901         do_define_character, substring_request, asciify_macro,
3902         unformat_macro, read_size, non_interpreted_node::interpret,
3903         while_request, main: Fix compiler warnings.
3904         (read_color_draw_node): Initialize `col'.
3906         * src/preproc/tbl/table.cpp (horizontal_span, table_entry): Make
3907         `start_col' and `end_col' of type `int'.
3908         (vertical_rule): Make `col' of type `int'.
3910         * src/preproc/grn/hdb.cpp (DBRead): Protect call to getc with check
3911         for EOF.
3913         * src/preproc/refer/label.y (uppercase_array, lowercase_array):
3914         New arrays.
3915         (format_serial): Use them to remove dependency on ASCII.
3917         * src/devices/grops/ps.cpp (ps_printer::define_encoding): Fix
3918         compiler warning.
3919         * src/devices/grops/psrm.cpp (resource_manager::supply_resource):
3920         Ditto.
3922         * src/devices/grotty/tty.cpp (tty_font::load_tty_font): Fix
3923         compiler warnings.
3924         (glyph): Change type of `hpos' to `int'.
3926         * src/devices/lbp/lbp.cpp (strsep): Removed.  Unused.
3927         * src/devices/lbp/lbp.h (splinerel): Fix compiler warnings.
3929         * src/utils/tfmtodit.cpp (gf::load): Fix compiler warnings.
3931         * src/utils/pfbtops/pfbtops.c (get_text): Fix compiler warning.
3933 2004-04-16  Werner LEMBERG  <wl@gnu.org>
3935         * src/devices/grolbp/lbp.h, src/preproc/grn/gprint.h,
3936         src/preproc/grn/hgraph.cpp, src/preproc/grn/hpoint.cpp,
3937         src/preproc/html/pushback.cpp, src/preproc/html/pushback.h: Use
3938         `double' instead of `float' everywhere.
3939         * src/preproc/grn/main.cpp: Use `double' instead of `float'
3940         everywhere.
3941         (main): Add return value.
3942         * src/preproc/grn/hdb.cpp: Use `double' instead of `float'
3943         everywhere.
3944         Update all user functions.
3946         * src/include/search.h, src/include/ptable.h, src/include/printer.h,
3947         src/preproc/eqn/box.h, src/preproc/pic/object.h,
3948         src/preproc/refer/refer.h, src/preproc/tbl/table.h,
3949         src/preproc/tbl/table.cpp, src/roff/troff/env.h,
3950         src/roff/troff/div.h, src/roff/troff/token.h, src/roff/troff/node.h,
3951         src/roff/troff/input.cpp, src/roff/troff/request.h,
3952         src/roff/troff/node.cpp: Don't mix `struct' and `class' in forward
3953         declarations.
3955         * src/utils/indxbib/signal.c: Include stdlib.h.
3957 2004-04-14  Keith Marshall  <keith.d.marshall@ntlworld.com>
3959         * tmac/s.tmac (@init, RP): Allow initialization of the PO register
3960         before the first page.
3962 2004-04-14  Thomas Klausner  <wiz@netbsd.org>
3964         * tmac/doc-common (doc-volume-as-*): Use lowercase names.
3965         (doc-operating-system-*): Updated.
3966         * tmac/doc-syms (doc-str-St-*): Various small fixes.
3967         (doc-str-Lb-*): Add more library names.
3969 2004-04-10  Art Haas  <ahaas@airmail.net>
3971         * src/utils/hpftodit/hpuni.cpp (hp_msl_to_unicode_list): Don't
3972         use anonymous type.
3974 2004-04-09  Art Haas  <ahaas@airmail.net>
3976         * src/utils/tfmtodit.cpp (lig_chars): Don't use anonymous type.
3978 2004-04-09  Keith Marshall  <keith.d.marshall@ntlworld.com>
3980         * arch/misc/shdeps.sh: Generate better comment for sed script.
3982 2004-04-08  Art Haas  <ahaas@airmail.net>
3984         * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list),
3985         src/libs/libgroff/uniglyph.cpp (unicode_to_glyph_list),
3986         src/libs/libgroff/uniuni.cpp (unicode_decompose_list),
3987         src/preproc/eqn/box.cpp (param_table), src/preproc/grn/hgraph.cpp
3988         (polyfill), src/preproc/grn/main.cpp (polyfill),
3989         src/preproc/refer/command.cpp (command_table),
3990         src/utils/tfmtodit.cpp (lig_table): Don't use anonymous types (which
3991         gcc 3.5 doesn't like).
3993 2004-04-08  Werner LEMBERG  <wl@gnu.org>
3995         Removing many compiler warnings.  groff should now compile with
3996         a C++ compiler used for C files also.  [Simple variable renamings
3997         to avoid shadowing aren't logged in detail.]
3999         * src/devices/grodvi/dvi.cpp: Some local variable renamings.
4000         (draw_dvi_printer::draw) ['c']: Enclose in block.
4002         * src/devices/grohtml/post-html.cpp: Some local variable renamings.
4003         (page::add_line): Fix typos.
4004         * src/devices/grohtml/html-text.cpp: Some local variable renamings.
4006         * src/devices/grolbp/lbp.cpp: Don't define _GNU_SOURCE.
4007         Some local variable renamings.
4008         * src/devices/grolbp/lbp.h: Some local variable renamings.
4010         * src/devices/grolj4/lj4.cpp, src/devices/grotty/tty.cpp: Some local
4011         variable renamings.
4013         * src/libs/libbib/index.cpp (index_search_item_iterator::get_tag):
4014         Remove redundant local variable declaration.
4015         * src/libs/libbib/map.c (mapread, unmap): Don't use K&R style.
4016         Don't use `caddr_t' but `void *'.
4017         Enclose functions with `extern "C"' for C++.
4019         * src/libs/libdriver/input.cpp (remember_filename,
4020         remember_source_filename): Use cast for string constant.
4022         * src/libs/libgroff/font.cpp, src/libs/libgroff/fontfile.cpp,
4023         src/libs/libgroff/nametoindex.cpp, src/libs/libgroff/paper.cpp,
4024         src/libs/libgroff/geometry.cpp: Some local variable renamings.
4025         * src/libs/libgroff/iftoa.c, src/libs/libgroff/itoa.c: Don't use K&R
4026         style.
4027         Enclose functions with `extern "C"' for C++.
4028         * src/libs/libgroff/quotearg.c (TRUE,FALSE): Define as macros.
4029         (needs_quoting): Return `int'.
4030         (quote_arg): Add proper casts to malloc and realloc.
4031         * src/libs/libgroff/spawnvp.c: Compile code only for MS-DOS and
4032         various MS Windows environments.
4033         (spawnvp_wrapper): Add proper cast to malloc.
4035         * src/preproc/eqn/box.h: Remove redundant declarations of
4036         `make_script_box', `make_mark_box' and `make_lineup_box'.
4037         * src/preproc/eqn/eqn.y: Remove redundant declaration of `strsave'.
4038         * src/preproc/eqn/script.cpp, src/preproc/eqn/pile.cpp: Some local
4039         variable renamings.
4041         * src/preproc/grn/hpoint.cpp: Some local variable renamings.
4042         * src/preproc/grn/hgraph.cpp: Some local variable renamings.
4043         (dx, dy): Renamed functions to...
4044         (deltax, deltay): This.
4045         * src/preproc/grn/main.cpp: Some local variable renamings.
4046         (deffont): Add `const'.
4047         (initpic, conv): Use cast for string constant.
4049         * src/preproc/html/pre-html.cpp: Some local variable renamings.
4050         (makeFileName, alterDeviceTo, addZ): Use cast for string constant.
4051         (char_buffer::run_output_filter): Second argument is unused.
4052         * src/preproc/html/pushback.cpp: Some local variable renamings.
4054         * src/preproc/pic/pic.y: Remove redundant declaration of `do_copy'.
4055         * src/preproc/pic/object.cpp: Some local variable renamings.
4057         * src/preproc/refer/label.y (lookup_label): Remove redundant
4058         declaration of local variable.
4060         * src/preproc/soelim.cpp: Remove redundant declaration of
4061         `interpret_lf_args'.
4063         * src/preproc/tbl/main.cpp: Some local variable renamings.
4065         * src/roff/groff/groff.cpp (main): Use cast for string constant.
4066         * src/roff/groff/pipeline.c: Enclose declarations of `error',
4067         `c_fatal', and `i_to_a' with `extern "C"' for C++.
4068         Don't use C++-style comments.
4070         * src/roff/troff/env.h: Remove redundant declaration of `title'.
4071         * src/roff/troff/node.h, src/roff/troff/env.cpp,
4072         src/roff/troff/div.cpp, src/roff/troff/node.cpp: Some local variable
4073         renamings.
4074         * src/roff/troff/div.h: Remove redundant declaration of
4075         `end_diversions'.
4076         * src/roff/troff/troff.h: Remove redundant declaration of
4077         `cleanup_and_exit'
4078         * src/roff/troff/input.cpp: Remove redundant declaration of
4079         `handle_first_page_transition' and `process_input_stack'.
4081         * src/utils/hpftodit.cpp: Some local variable renamings.
4083         * src/utils/indxbib/signal.c: Enclose functions with `extern "C"'
4084         for C++.
4085         Don't define RETSIGTYPE.
4086         * src/utils/indxbib/indxbib.cpp: Some local variable renamings.
4088         * src/utils/pfbtops/pfbtops.cpp: Don't use K&R style.
4089         (error): Use `const' in argument.
4090         (main): Remove redundant declaration of `optind'.
4091         Move declaration of `Version_string' to top-level.
4093         * PROBLEMS: Document difficulties compiling signal.c if a C++
4094         compiler is used for C.
4096 2004-04-07  Werner LEMBERG  <wl@gnu.org>
4098         * Makefile.sub (DISTCLEANFILES): Add `test-groff'.
4100 2004-04-06  Keith Marshall  <keith.d.marshall@ntlworld.com>
4102         Make scripts like nroff.sh and neqn.sh portable across various
4103         (Unix-like) shell implementations from Cygwin, MSYS, etc., which use
4104         non-POSIX path separators.  The idea is to extend those scripts to
4105         decide at run-time (of the script) which path separator to use.
4107         * arch/misc/Makefile.sub: New file.
4108         * arch/misc/shdeps.sh: New file, generating OS dependency fixups.
4109         This script handles @GROFF_BIN_PATH_SETUP@, replacing it with
4110         a proper definition of the variable `GROFF_RUNTIME'.
4112         * Makefile.in (SH_DEPS_SED_SCRIPT): New variable.
4113         (MDEFINES): Add SH_DEPS_SED_SCRIPT.
4114         (PROGDEPDIRS): New variable.
4115         `FORCE' it.
4116         (PROGDIRS): Add PROGDEPDIRS.
4118         * src/preproc/eqn/Makefile.sub (neqn): Call SH_DEPS_SED_SCRIPT.
4119         Don't substitute @SEP@ and @BINDIR@.
4120         * src/preproc/eqn/neqn.sh: Use @GROFF_BIN_PATH_SETUP@.
4121         (PATH): Use GROFF_RUNTIME.
4123         * src/roff/nroff/Makefile.sub (nroff): Call SH_DEPS_SED_SCRIPT.
4124         Don't substitute @SEP@ and @BINDIR@.
4125         * src/roff/nroff/nroff.sh: Use @GROFF_BIN_PATH_SETUP@.
4126         (PATH): Use GROFF_RUNTIME.
4128 2004-04-05  Keith Marshall  <keith.d.marshall@ntlworld.com>
4130         * src/roff/nroff/nroff.sh: Implement work-around for sh.exe from
4131         Cygwin which doesn't handle stderr correctly.
4133 2004-03-08  Werner LEMBERG  <wl@gnu.org>
4135         * Makefile.comm (install_dev, uninstall_dev): Protect `for' loops
4136         against empty argument.  Problem reported by <cgd@broadcom.com>.
4138 2004-03-05  Keith Marshall  <keith.d.marshall@ntlworld.com>
4140         * Makefile.in (SEP): Replaced with...
4141         (RT_SEP, SH_SEP): Separators for the target platform's native path
4142         separator and the build environment, respectively.
4143         (fontpath, tmacpath): Use RT_SEP.
4144         (MDEFINES): Updated.
4146         * contrib/mom/Makefile.sub (GROFF_BIN_PATH): Use SH_SEP.
4147         * doc/Makefile.sub (GROFF_BIN_PATH): Use SH_SEP.
4148         * src/preproc/eqn/Makefile.sub (neqn): Use SH_SEP.
4149         * src/roff/nroff/Makefile.sub (nroff): Use SH_SEP.
4151 2004-03-05  Werner LEMBERG  <wl@gnu.org>
4153         * fonts/devlj4/Makefile.sub (LJ4RES): Set to 1200.  This helps to
4154         reduce alignment problems with newer printers which use built-in
4155         TrueType fonts (instead of the older Intellifonts).  The ideal
4156         solution is to provide a second set of groff metric files, but this
4157         is extremely time-consuming to produce, given that HP's metric
4158         files are very rudimentary.
4160 2004-03-01  Werner LEMBERG  <wl@gnu.org>
4162         * src/devices/grolj4/lj4.cpp (main): Fix argument of getopt_long.
4163         s/operand/argument/ in error message.
4165 2004-03-01  Keith Marshall  <keith.d.marshall@ntlworld.com>
4167         * src/roff/groff/groff.cpp (main): Don't allow option -o if -Thtml
4168         is in use.
4170 2004-03-01  Antti Kantee  <pooka@netbsd.org>
4172         * tmac/s.tmac (XE): Fix error message.
4174 2004-02-27  Jeff Conrad  <jeff_conrad@msn.com>
4176         * src/include/nonposix.h (write, dup, dup2, close) [_MSC_VER]:
4177         New macros.
4179         * src/roff/groff/pipeline.c: Declare strcasecmp.
4180         (run_pipeline) [_WIN32]: Use function name variants which don't
4181         start with `_'.
4182         Fix stream handling.
4184 2004-02-27  Keith Marshall  <keith.d.marshall@ntlworld.com>
4186         * src/include/nonposix.h: Fix declaration of `system_shell_name'.
4187         Declare `spawnvp_wrapper' and macro definitions of spawnvp only
4188         for platforms which use the native Win32 runtime libraries.
4189         (FLUSH_INPUT_PIPE) [_UWIN]: Provide non-empty version.
4191         * src/libs/libgroff/quotearg.c (QUOTE_ARG_MALLOC_ERROR,
4192         QUOTE_ARG_REALLOC_ERROR): Fix string.
4194         * src/preproc/html/pre-html.cpp: Remove declaration of
4195         `spawnvp_wrapper'.
4196         Don't use __MINGW32__.
4197         s/DEBUG_FILE/DEBUG_FILE_DIR/.
4198         (DEBUG_TEXT, DEBUG_NAME, DEBUG_FILE) [DEBUGGING]: New macros.
4199         (OUTPUT_STREAM, PS_OUTPUT_STREAM, REGION_OUTPUT_STREAM): New macros.
4200         (char_buffer::run_output_filter) [MAY_FORK_CHILD_PROCESS]: Fix
4201         calls to `set_redirection' and `WAIT'.
4202         [MAY_SPAWN_ASYNCHRONOUS_CHILD]: Remove unused variable `i' and `j'.
4203         Fix calls to `set_redirection' and `save_and_redirect'.
4204         (char_buffer::do_html, char_buffer::do_image) [DEBUGGING]: Fix calls
4205         to `set_redirection' and `save_and_redirect'.
4206         (usage): Fix message.
4207         (makeTempFiles, main): Use `DEBUG_FILE'.
4209 2004-02-21  Werner LEMBERG  <wl@gnu.org>
4211         * src/roff/troff/troff.h (WARN_TOTAL): Fix value.
4213 2004-02-21  Keith Marshall  <keith.d.marshall@ntlworld.com>
4215         * src/libs/libgroff/quotearg.c: New file, providing proper argument
4216         quoting for MSVC's spawn* and exec* functions.
4217         * src/libs/libgroff/spawnvp.c: New file, providing a wrapper around
4218         spawnvp with proper quoting for MSVC.
4220         * src/libs/libgroff/assert.cpp (program_name),
4221         src/libs/libgroff/new.cpp (program_name): Declare as `extern "C"'.
4222         * src/libs/libgroff/Makefile.sub (OBJS, CSRCS): Updated.
4224         * src/roff/troff/input.cpp (program_name): Declare as `extern "C"'.
4226         * src/include/error.h (program_name): Declare as `extern "C"'.
4227         * src/include/nonposix.h [__MSDOS__ ...]: Handle spawnvp.
4229 2004-02-21  Jeff Conrad  <jeff_conrad@msn.com>
4231         * src/preproc/html/pre-html.cpp [__CYGWIN__ ...]: Declare
4232         spawnvp_wrapper.
4233         [MAY_SPAWN_ASYNCHRONOUS_CHILD]: Declare i and j.
4235 2004-02-20  Jeff Conrad  <jeff_conrad@msn.com>
4237         * src/roff/groff/pipeline.c (cmd) [__MSDOS__ || ...]: New global
4238         variable.
4239         (sbasename) [__MSDOS__ || ...]: New function.
4240         (system_shell_name) [__MSDOS__ || ...]: Use a different, more
4241         generic algorithm.
4242         (system_shell_dash_c, is_system_shell) [__MSDOS__ || ...]: Updated.
4243         (run_pipeline) [_WIN32]: Use _XXX variants for some macros instead
4244         of XXX.
4245         Use STDOUT_FILENO instead of hardcoded file handle.
4246         (signal_catcher) [__MSDOS__]: Moved to non-_WIN32 section.
4248 2004-02-19  Werner LEMBERG  <wl@gnu.org>
4250         * src/roff/troff/div.cpp: Include nonposix.h after troff.h to
4251         avoid warnings w.r.t. redefinition of P_tmpdir for some compilers.
4253 2004-02-18  Werner LEMBERG  <wl@gnu.org>
4255         * font/devlj4/Makefile.sub (DEVFILES): Updated to contain all
4256         new font and mapping files.
4258 2004-02-18  Jeff Conrad  <jeff_conrad@msn.com>
4259             Keith Marshall  <keith.d.marshall@ntlworld.com>
4261         * src/include/nonposix.h (FLUSH_INPUT_PIPE): New macro to empty
4262         an input pipe.  This is needed for the MSVC compiler to make troff's
4263         `-o' option work.
4265         * src/roff/troff/div.cpp: Include nonposix.h.
4266         (cleanup_and_exit): Call FLUSH_INPUT_PIPE.
4268 2004-02-17  Werner LEMBERG  <wl@gnu.org>
4270         * font/devlj4/generate/special.awk: New script.
4271         * font/devlj4/generate/Makefile (S): Use special.awk.
4272         * font/devlj4/*: Regenerated, including the following new files:
4273         Arial (AR, AB, AI, ABI), Times New Roman (TNRR, TNRB, TNRI, TNRBI),
4274         MS Symbol (SYMBOL), Wingdings (WINGDINGS).
4275         * NEWS: Document new lj4 fonts and revised hpftodit.
4277 2004-02-17  Paco Andrés Verdú  <pandres@dragonet.es>
4279         * src/devices/grolbp/lbp.h (vmdvarc): Fix formatting string.
4281 2004-01-25  Werner LEMBERG  <wl@gnu.org>
4283         * src/libs/libgroff/progname.cpp: Replaced with...
4284         * src/libs/libgroff/progname.c: New file.
4285         * src/libs/libgroff/Makefile.sub: Updated accordingly.
4287 2004-01-17  Werner LEMBERG  <wl@gnu.org>
4289         * font/devlj4/generate/Makefile (SYMBOL): Use 9nb28703.tfm.
4291 2004-01-16  Jeff Conrad  <jeff_conrad@msn.com>
4293         * font/devlj4/generate/wingdings.map,
4294         font/devlj4/generate/symbol.map: Include unnamed glyphs.
4295         Use groff glyph names where possible.
4296         * src/devices/grolj4/lj4_font.man: Minor updates.
4298 2004-01-13  Werner LEMBERG  <wl@gnu.org>
4300         * tmac/www.tmac (DC): Handle TTY devices.
4302         * doc/webpage.ms: Document viewCVS from ffii.org.
4303         * NEWS, README: Updated.
4305         * src/roff/groff/groff.man: Mention lj4_font man page.
4307         * font/devlj4/generate/Makefile (SYMBOLMAP, WINGDINGSMAP): New
4308         variables.
4309         (FONTS): Add SYMBOL and WINGDINGS.
4310         (SYMBOL, WINGDINGS): New targets.
4312 2004-01-13  Jeff Conrad  <jeff_conrad@msn.com>
4314         * src/devices/grolj4/lj4_font.man: New man page.
4315         * src/devices/grolj4/Makefile.sub (MAN5): New variable.
4316         * src/devices/grolj4.man: Mention lj4_font man page.
4318         * src/utils/hpftodit/hpftodit.cpp (read_map): Handle line comments.
4319         * src/utils/hpftodit/hpftodit.man: Document it.
4320         (CW): New macro.
4321         Remove details about fonts (which are now in lj4_font.man).
4323         * font/devlj4/generate/symbol.map,
4324         font/devlj4/generate/wingdings.map: New files.
4326 2004-01-12  Werner LEMBERG  <wl@gnu.org>
4328         * README: Mention ffii's viewcvs access.
4330 2004-01-09  Werner LEMBERG  <wl@gnu.org>
4332         * font/devlj4/generate/special.map: Map MSL 228 to U+221F.
4334 2004-01-09  Jeff Conrad  <jeff_conrad@msn.com>
4336         Revert most of the change from 2004-01-03 to better control used
4337         symbol sets.
4339         * src/utils/hpftodit/hpftodit.cpp (symbol_set): New structure.
4340         (text_symbol_sets, special_symbol_sets): New arrays.
4341         (symbol_set_table): New global variable.
4342         (read_symbol_sets): Use search order given in the text_symbol_sets
4343         and special_symbol_sets arrays.  If command line flag -a is not
4344         given, search both arrays.
4345         (output_charset): Require x_height_tag only for command line flag -i.
4347 2004-01-06  Werner LEMBERG  <wl@gnu.org>
4349         Implement string-valued registers \n[.m] and \n[.M] to return the
4350         name of the current drawing and background color, respectively.
4352         * src/roff/troff/symbol.h: Moved to...
4353         * src/include/symbol.h: Here.
4354         Small fixes to make it work outside of the `troff' directory.
4355         * src/roff/troff/symbol.cpp: Moved to...
4356         * src/libs/libgroff/symbol.cpp: Here.
4357         Small fixes to make it work outside of the `troff' directory.
4359         * src/include/Makefile.sub (HDRS), src/libs/libgroff/Makefile.sub
4360         (OBJS, CCSRCS), src/roff/troff/Makefile.sub (OBJS, CCSRCS, HDRS):
4361         Updated.
4363         * src/include/color.h: Include symbol.h.
4364         (color): Add new field `nm'.
4365         * src/libs/libgroff/color.cpp (color::color): Updated.
4367         * src/roff/troff/dictionary.cpp, src/roff/troff/div.cpp,
4368         src/roff/troff/node.cpp, src/roff/troff/number.cpp,
4369         src/roff/troff/reg.cpp: Don't include symbol.h.
4371         * src/roff/troff/env.cpp: Don't include symbol.h.
4372         (environment::get_glyph_color_string,
4373         environment_get_fill_color_string): New member functions.
4374         (init_env_requests): Handle `.m' and `.M' registers.
4375         * src/roff/troff/input.cpp: Don't include symbol.h.
4376         (default_symbol): Moved to symbol.cpp/symbol.h.
4377         (do_glyph_color, do_fill_color, define_color): Pass symbol name
4378         to color constructor.
4379         * src/roff/troff/env.h: Updated.
4381         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
4382         Document new registers.
4384 2004-01-05  Werner LEMBERG  <wl@gnu.org>
4386         * src/roff/troff/node.cpp (space_node::get_breakpoints,
4387         space_node::nbreaks): Protect against zero `next' field.
4389 2004-01-03  Jeff Conrad  <jeff_conrad@msn.com>
4391         In hpftodit, use the symbol sets offered in the TFM.
4393         * src/utils/hpftodit/hpftodit.cpp (NO_GLYPH): New constant.
4394         (symbol_set, text_symbol_sets, special_symbol_sets,
4395         symbol_set_table): Removed.
4396         (get_printcode): Removed.
4397         (read_symbol_sets): Initialize `symbol_set' field with
4398         `NO_SYMBOL_SET'.
4399         Simplify code to just use the `kind' value.
4400         (output_charset): Improve output formatting.
4401         (dump_symbols): Simplified.
4403 2004-01-02  Werner LEMBERG  <wl@gnu.org>
4405         * font/devlj4/generate/text.map: Add more MSL numbers.
4407 2004-01-02  Jeff Conrad  <jeff_conrad@msn.com>
4409         * src/utils/hpftodit/hpftodit.cpp (is_decomposed): New macro.
4410         (text_symbol_sets): Add more symbol sets.
4411         (debug_flag): New static variable (moved from `main').
4412         (get_printcode, show_symset): New functions.
4413         (main): Remove `debug_flag'.
4414         (output_charset): Use `show_symset'.
4415         (dump_symbols):  Use `show_symset'.
4416         Print symsets for all glyphs.
4417         (read_map): Actually call `unicode_to_ucode_make' but this time
4418         correctly.
4420 2004-01-01  Werner LEMBERG  <wl@gnu.org>
4422         * font/devlj4/generate/text.map, font/devlj4/generate/special.map:
4423         Fix placement of comments.
4425 2004-01-01  Jeff Conrad  <jeff_conrad@msn.com>
4427         * src/utils/hpftodit/hpftodit.cpp (main): Read map file also if
4428         option `-d' is given.
4429         (output_charset): Improve warning messages to give more information.
4430         (dump_symbols): Make information more precise.
4431         (usage): Updated.
4432         (read_map): Don't call unicode_to_ucode_name; the glyph names must
4433         appear as-is and shouldn't be decomposed.
4435 2003-12-31  Werner LEMBERG  <wl@gnu.org>
4437         * src/utils/hpftodit/hpftodit.cpp (dump_tags): Handle posture_tag.
4438         * font/devlj4/generate/Makefile (IFLAG): Updated to new units.
4439         (FONTS): Add TrueType font families Arial and Times New Roman.
4440         (TNRR, TNRB, TNRI, TNRBI, AR, AB, AI, ABI): New targets.
4441         * font/devlj4/generate/text.map: Fix Unicode values of `fi' and
4442         `fl'.
4444 2003-12-31  Jeff Conrad  <jeff_conrad@msn.com>
4446         * test-groff.in (SEP): Quote value.
4447         * src/roff/troff/node.cpp (suppress_node::tprint): Change type of
4448         `tem' to `char*' to avoid deallocation of a pointer to a constant
4449         object which some compilers don't like.
4451 2003-12-31  Werner LEMBERG  <wl@gnu.org>
4453         * font/devlj4/generate (text.map, special.map): Rewritten to work
4454         with the new hpftodit version.
4456 2003-12-30  Jeff Conrad  <jeff_conrad@msn.com>
4458         * src/utils/hpftodit/hpftodit.cpp (output_charset): Emit HP symbol
4459         set and 8bit character code for all glyphs also.
4461 2003-12-30  Werner LEMBERG  <wl@gnu.org>
4463         * src/libs/libgroff/strcasecmp.c: Updated from gnulib.
4465 2003-12-29  Werner LEMBERG  <wl@gnu.org>
4467         More fixes for MSVC compiler.
4469         * doc/Makefile.sub, contrib/mom/Makefile.sub (GROFF_BIN_PATH): Use
4470         $(SEP).
4472         * src/include/nonposix.h (STDIN_FILENO, STDOUT_FILENO,
4473         STDERR_FILENO) [_MSC_VER]: Define conditionally.
4474         (getpid) [_MSC_VER]: Remove.
4475         Include direct.h and process.h conditionally.
4477         * src/roff/troff/node.cpp (suppress_node::tprint): Don't use
4478         parentheses for a_delete.
4480         * src/utils/lookbib/lookbib.cpp: Include nonposix.h.
4482         * test-groff: Replaced with...
4483         * test-groff.in: This new template to handle path separator
4484         properly.
4486         * configure.ac: Check for direct.h and process.h.
4487         Generate test-groff script.
4488         * configure, src/include/config.hin: Regenerated.
4490 2003-12-28  Werner LEMBERG  <wl@gnu.org>
4492         Add integral extension glyph.
4493         Add new option `-x' to afmtodit to suppress use of built-in AGL.
4495         * font/devhtml/R.proto, font/devutf8/R.proto: Add `u23AE'.
4497         * font/devps/generate/textmap: Provide entry for `integralex' to
4498         override (old) PUA value of the AGL.
4499         * font/devps/generate/Makefile (SS): Add afmtodit option `-x'.
4500         * font/devps/*: Regenerated.
4502         * src/utils/afmtodit/afmtodit.pl: Add option `-x'.
4503         * src/utils/afmtodit/afmtodit.man, NEWS: Updated.
4505 2003-12-27  Werner LEMBERG  <wl@gnu.org>
4507         Add forgotten `coproduct' symbol (already available for DVI).
4509         * font/devhtml/R.proto, font/devps/generate/textmap,
4510         font/devps/symbolmap, font/devutf8/R.proto, man/groff_char.man,
4511         src/libs/libgroff/uniglyph.cc, src/libs/libgroff/glyphuni.cpp: Add
4512         U+2210 (\[coproduct]).
4514 2003-12-26  Jeff Conrad  <jeff_conrad@msn.com>
4516         hpftodit has been extended to handle TrueType metric files and
4517         more glyphs.  See hpftodit.man for more details.
4519         * src/utils/hpftodit/hpftodit.cpp: Include stdio.h, string.h,
4520         ctype.h, and unicode.h.
4521         s/msl/charcode/ everywhere since we now handle Unicode values also.
4522         (equal, NO, YES, MSL, SYMSET, UNICODE, UNICODE): New macros.
4523         Use it where appropriate.
4524         (MULTIPLIER): Replaced with...
4525         (multiplier): New global static variable.
4526         (scale): Updated.
4527         (tag_type): Add more TFM tags.
4528         (tag_name): New array.
4529         (ENUM_TYPE, FLOAT_TYPE): Removed.
4530         (BYTE_TYPE): New value assigned.
4531         (ASCII_TYPE, RATIONAL_TYPE): New enumeration values.
4532         (text_symbol_sets, special_symbol_sets): Extended to cover more
4533         sets.
4534         (check_type): Add return value.
4535         (check_units): Add parameters to get ppi and upem values.
4536         Handle TrueType TFM data.
4537         (output_font_name): New function.
4538         (output_charset): Add parameter to handle TFM type.
4539         Handle TrueType TFMs also.
4540         (em_fract): New macro.
4541         (dump_tags): Be much more verbose and handle more tags.
4542         (dump_ascii, dump_symbol_sets, dump_symbols): New functions.
4543         (hp_msl_to_ucode_name, unicode_to_ucode_name, is_uname): New
4544         functions.
4545         (read_map): Add parameter to handle TFM type.
4546         Handle both MSL and Unicode mappings.
4547         (main): Add two new command line options `-a' and `-q'.
4548         Updated to make use of new functions.
4549         (usage): Updated.
4551         * src/utils/hpftodit/hpuni.cpp: New file.
4553         * src/utils/hpftodit/Makefile.sub, src/utils/hpftodit/hpftodit.man:
4554         Updated.
4556 2003-12-25  Werner LEMBERG  <wl@gnu.org>
4558         * src/include/nonposix.h (read) [_MSC_VER]: Define.
4560 2003-12-24  Werner LEMBERG  <wl@gnu.org>
4562         * src/utils/afmtodit/afmtodit.man: Some reformulations as suggested
4563         by Michail Vidiassov <master@iaas.msu.ru>.
4565 2003-12-20  Werner LEMBERG  <wl@gnu.org>
4567         * font/devhtml/R.proto: Add u00{47,67}_0306, u00{53,73}_0327,
4568         and u0049_0307.
4569         Add missing latin-2 glyphs.
4570         * font/devutf8/R.proto: Add missing latin-2 glyphs.
4572         * tmac/troffrc: Load `composite.tmac' earlier.
4574         * tmac/dvi.tmac, tmac/ps.tmac, tmac/lbp.tmac: Add u00{47,67}_0306,
4575         u00{53,73}_0327, and u0049_0307.
4576         * tmac/X.tmac: Add u00{47,67}_0306.
4577         * tmac/tty-char.tmac: Use composite glyph names for readability.
4579         * NEWS: Updated.
4581         * src/include/unicode.h: Remove `extern' keywords.
4583 2003-12-20  Nilgün Belma Bugüner  <nilgun@superonline.com>
4585         * tmac/latin5.tmac: New file.
4587 2003-12-19  Werner LEMBERG  <wl@gnu.org>
4589         Add some glyphs needed for Turkish.
4591         * font/devutf8/R.proto: Add u00{47,67}_0306, u00{53,73}_0327,
4592         and u0049_0307.
4594         * tmac/composite.tmac: Add `,' as a synonym for `ac' accent.
4595         * tmac/tty-char.tmac: Add representations for u00{47,67}_0306,
4596         u00{53,73}_0327, and u0049_0307.
4598 2003-12-18  Werner LEMBERG  <wl@gnu.org>
4600         * src/devices/grops/ps.cc (ps_output::put_float): Revert change
4601         from 2001-10-04.
4602         Remove trailing zeros.
4604 2003-12-17  Werner LEMBERG  <wl@gnu.org>
4606         Make \? transparent to end-of-sentence recognition.
4608         * src/roff/troff/input.cc (non_interpreted_node): Add
4609         `ends_sentence' member function.
4611 2003-12-16  Werner LEMBERG  <wl@gnu.org>
4613         * doc/groff.texinfo: Document `dt' request correctly.
4614         Other minor typographical improvements.
4616 2003-12-10  Michail Vidiassov  <master@iaas.msu.ru>
4618         * src/utils/afmtodit/Makefile.sub (afmtodit): Fix typo.
4620 2003-12-10  Richard Stallman  <rms@gnu.org>
4622         * LICENSE: Better wording.
4624 2003-12-09  Werner LEMBERG  <wl@gnu.org>
4626         * aclocal.m4 (GROFF_BROKEN_SPOOLER_FLAGS): Set default value to 0.
4627         * configure, NEWS: Updated.
4629 2003-12-08  Werner LEMBERG  <wl@gnu.org>
4631         * FDL: Updated to version 1.2 (from www.gnu.org/copyleft).
4633 2003-12-07  Bernd Warken  <bwarken@mayn.de>
4635         * LICENSE: Updated.
4637 2003-12-07  Werner LEMBERG  <wl@gnu.org>
4639         * INSTALL: Improved.
4641 2003-12-05  Keith Marshall  <keith.d.marshall@ntlworld.com>
4643         Use path separator character of target platform for compiled-in
4644         default paths.
4646         * aclocal.m4 (GROFF_TARGET_PATH_SEPARATOR): New macro.
4647         * configure.ac: Use GROFF_TARGET_PATH_SEPARATOR.
4648         * configure: Regenerated.
4649         * Makefile.in (SEP): Use GROFF_PATH_SEPARATOR.
4651 2003-12-05  Werner LEMBERG  <wl@gnu.org>
4653         * src/include/nonposix.h (PATH_SEP_CHAR): New definition.
4654         Replace `PATH_SEP[0]' with `PATH_SEP_CHAR' everywhere.
4656 2003-12-04  Bernd Warken  <bwarken@mayn.de>
4658         * LICENSE: New file.
4660 2003-12-03  Werner LEMBERG  <wl@gnu.org>
4662         * src/utils/afmtodit/afmtodit.pl: Comment out code which handles
4663         ligatures present in AFM files since groff currently only
4664         understands some standard ligatures and nothing else.
4666 2003-12-03  Jeff Conrad  <jeff_conrad@msn.com>
4668         * src/roff/groff/groff.cpp (main): Don't run the spooler if
4669         option -v is given.
4671         * src/roff/groff/pipeline.c (run_pipeline) [_WIN32]: Fix error
4672         messages.
4673         Close stdout copy.
4674         Don't use Unix wait flags.
4676 2003-12-02  Werner LEMBERG  <wl@gnu.org>
4678         * src/roff/troff/glyphuni.cpp, src/roff/troff/unicode.cpp,
4679         src/roff/troff/unicode.h, src/roff/troff/uniglyph.cpp,
4680         src/roff/troff/uniuni.cpp: Moved to...
4681         * src/libs/libgroff/glyphuni.cpp, src/libs/libgroff/unicode.cpp,
4682         src/libs/libgroff/unicode.h, src/libs/libgroff/uniglyph.cpp,
4683         src/libs/libgroff/uniuni.cpp: Here.
4685         * src/include/Makefile.sub.old (HDRS),
4686         src/libs/libgroff/Makefile.sub (OBJS, CCSRCS),
4687         src/roff/troff/Makefile.sub (HDRS, PBJS, CCSRCS): Updated.
4689 2003-12-01  Keith Marshall  <keith.d.marshall@ntlworld.com>
4691         * src/preproc/htlp/pre-html.cpp (__tmpfile): Renamed to
4692         `DEBUG_FILE'.
4693         Updated all users.
4695 2003-12-01  Werner LEMBERG  <wl@gnu.org>
4697         * groff.texinfo: Document special behaviour of `.vs 0'.
4698         Improve documentation of `cflags' request.
4699         * NEWS: Updated.
4701 2003-11-29  Werner LEMBERG  <wl@gnu.org>
4703         * font/devlj4/generate/Makefile (CORONET): Use correct TFM.
4704         * font/devlj4/CORONET: Regenerated.
4706 2003-11-24  Werner LEMBERG  <wl@gnu.org>
4708         * src/roff/troff/env.cpp (hyphen_trie::read_patterns_file): Fix loop
4709         if processing hyphenation patterns in traditional mode.
4710         Improve error messages.
4712 2003-11-20  Werner LEMBERG  <wl@gnu.org>
4714         * src/roff/troff/node.cpp (troff_output_file::put_char_width,
4715         troff_output_file::put_char): Fix type of local variable `c'.
4717 2003-11-19  Werner LEMBERG  <wl@gnu.org>
4719         * src/roff/groff/pipeline.c (P): Removed.  Updated all function
4720         declarations.
4721         (i_to_a): Removed.  libgroff already provides this function.
4722         (run_pipeline) [_WIN32]: Don't use itoa but i_to_a.
4724 2003-11-18  Keith Marshall  <keith.d.marshall@ntlworld.com>
4726         * src/roff/groff/pipeline.c (xstrsignal): Fix usage of
4727         HAVE_DECL_SYS_LIST.
4729 2003-11-17  Werner LEMBERG  <wl@gnu.org>
4731         * COPYING: Use correct version.
4733 2003-11-11  Werner LEMBERG  <wl@gnu.org>
4735         LynxOS 4.0.0 doesn't declare vfprintf.
4737         * configure.ac: Check for vfprintf.
4738         * configure: Regenerated.
4739         * src/include/lib.h: Handle `NEED_DECLARATION_VFPRINTF'.
4740         * src/include/config.hin: Regenerated.
4742 2003-11-10  Werner LEMBERG  <wl@gnu.org>
4744         LynxOS 4.0.0 has snprintf (without declaration) but no vsnprintf.
4746         * configure.ac: Check for vsnprintf.
4747         * configure: Regenerated.
4748         * src/include/lib.h: Handle `NEED_DECLARATION_VSNPRINTF' and
4749         `HAVE_VSNPRINTF'.
4750         * src/include/config.hin: Regenerated.
4752 2003-11-09  Werner LEMBERG  <wl@gnu.org>
4754         * aclocal.m4: Updated syntax to autoconf 2.59.
4755         (GROFF_HTML_PROGRAMS): Use AC_FOREACH.
4756         Don't check for gsos2.
4757         (GROFF_SRCDIR, GROFF_BUILDDIR): Removed.  autoconf 2.59 provides
4758         working abs_top_srcdir and abs_top_builddir.
4760         * configure.ac: Updated syntax to autoconf 2.59.
4761         Don't call GROFF_SRCDIR and GROFF_BUILDDIR.
4762         Replace call to AC_DECL_SYS_SIGLIST with call to AC_CHECK_DECLS.
4763         * configure: Regenerated.
4765         * Makefile.in, doc/Makefile.in: s/@top_srcdir@/@abs_top_srcdir@/,
4766         s/@groff_top_builddir@/@abs_top_builddir@/.
4768         * src/roff/groff/pipeline.c (xstrsignal):
4769         s/SYS_SIGLIST_DECLARED/HAVE_DECL_SYS_SIGLIST/.
4771 2003-11-07  Werner LEMBERG  <wl@gnu.org>
4773         * src/devices/grodvi/dvi.cpp (draw_dvi_printer::draw) ['a']: Always
4774         make start angle smaller than end angle to circumvent a bug in tpic
4775         handling of some versions of dvipdfm (and dvipdfmx).
4777 2003-10-30  Werner LEMBERG  <wl@gnu.org>
4779         * src/devices/grops/grops.man: Improve section on creating EPS.
4781 2003-10-29  Werner LEMBERG  <wl@gnu.org>
4783         * contrib/pic2graph/pic2graph.sh: Fix typo (-P-letter ->
4784         -P-pletter).
4786 2003-10-28  Werner LEMBERG  <wl@gnu.org>
4788         * doc/groff.texinfo: Fix documentation of `.if'.
4790 2003-10-27  Michail Vidiassov  <master@iaas.msu.ru>
4792         * src/utils/afmtodit/afmtodit.pl: Handle unmapped characters of
4793         the form `uniXXXX' also.
4795 2003-10-27  Werner LEMBERG  <wl@gnu.org>
4797         * contrib/eqn2graph/eqn2graph.sh, contrib/grap2graph/grap2graph.sh,
4798         contrib/pic2graph/pic2graph.sh: Implement secure management of
4799         temporary files.
4800         Pass `-P-pletter' to groff to avoid data outside of the converted
4801         area -- some versions of `convert' (for example 5.3.8) don't check
4802         the bounding box of the image but always use a fixed image size
4803         (letter paper format).
4804         * contrib/eqn2graph/eqn2graph.man, contrib/grap2graph/grap2graph.man,
4805         contrib/pic2graph/pic2graph.man: Updated.
4807         * src/roff/groff/groff.man: Document $TMP and $TEMP.
4809 2003-10-26  Werner LEMBERG  <wl@gnu.org>
4811         * src/preproc/pic/troff.cpp (troff_output::simple_circle,
4812         troff_output::simple_ellipse, troff_output::simple_arc,
4813         troff_output::simple_line, troff_output::simple_spline,
4814         troff_output::simple_polygon): Insert a space before arguments.
4815         (troff_output::set_fill): Emit `\&' before `\D'Fg...' since the
4816         latter doesn't produce a node, so the following `.sp -1' would do
4817         the wrong thing.
4818         Don't emit `.sp -1' after \M.  This also doesn't produce a token
4819         (and we don't have to care about compatibility mode).
4820         (troff_output::set_color, troff_output::reset_color): Don't emit
4821         `.sp -1' after \M and \m.
4823         * src/roff/troff/input.cpp (old_have_input): New global variable.
4824         (input_stack::get): Handle `old_have_input'.
4825         (process_input_stack) <token::TOKEN_NEWLINE>: Call
4826         `trapping_blank_line' depending on `old_have_input', not
4827         `have_input'.
4829 2003-10-20  Keith Marshall  <keith.d.marshall@ntlworld.com>
4831         * src/libs/libgroff/tmpfile.cpp [__MSDOS__, _Win32]
4832         (WIN32_TMPDIR_ENVVAR, MSDOS_TMPDIR_ENVVAR): New macros, providing
4833         default directory names for temporary files.
4834         [__MSDOS__, _Win32] (temp_init::temp_init): Use them.
4836         * src/roff/groff/pipeline.c [__MSDOS__]: Include stdlib.h.
4837         [__MSDOS__] (run_pipeline): Honour environment variables.
4838         Don't use `tmpnam' but `tempnam' to work around messy
4839         implementation.
4841         * README.MinGW: New file.
4843 2003-10-16  Werner LEMBERG  <wl@gnu.org>
4845         * src/preproc/html/pre-html.cpp (write_upto_newline): Don't use
4846         `(*t)->next' without testing validity of `*t'.
4847         (usage): Make it more readable.
4849 2003-10-16  Keith Marshall  <keith.d.marshall@ntlworld.com>
4851         Make html device run under both MS-DOS and Win32.
4853         * src/preproc/html/pre-html.cpp (MAY_FORK_CHILD_PROCESS,
4854         MAY_SPAWN_ASYNCHRONOUS_CHILD): New macros to control whether
4855         spawn or fork+exec has to be used, and whether parent must sleep
4856         until the child process terminates.  Used in
4857         `char_buffer::run_output_filter'.
4858         (copyofstdoutfd): Removed.
4859         (char_buffer): Replace `write_file_html' and `write_file_troff'
4860         member functions with `emit_troff_output' and `run_output_filter'.
4861         (DEVICE_FORMAT, HTML_OUTPUT_FILTER, IMAGE_OUTPUT_FILTER): New
4862         macros.
4863         (replaceFd): Replaced with...
4864         (set_redirection): New auxiliary function.
4865         (waitForChild): Replaced with...
4866         (save_and_redirect): New auxiliary function for.
4868         (char_buffer::do_html, char_buffer::do_image): Simplified, using new
4869         functions.
4871 2003-10-14  Keith Marshall  <keith.d.marshall@ntlworld.com>
4873         * aclocal.m4 (GROFF_SYS_NERR): Check stdlib.h also.
4874         (GROFF_LIBC): New function.
4875         * configure.ac: Call GROFF_LIBC.
4876         Check for `kill'.
4877         * configure: Regenerated.
4879         * src/include/lib.h: Handle __MINGW32__.
4880         * src/include/nonposix.h [_MSC_VER]: Handle __MINGW32__.
4881         Add macro for `pipe'.
4882         Define P_tmpdir.
4884         * src/roff/groff/pipeline.c (run_pipeline): Handle `no_pipe'
4885         correctly.
4887         * src/utils/indxbib/signal.c (handle_fatal_signal) [!HAVE_KILL]:
4888         Implement.
4890 2003-10-13  Werner LEMBERG  <wl@gnu.org>
4892         Finally fix change 2003-08-26, based on ideas from Chuck Silvers
4893         <chuq@chuq.com>.
4895         * contrib/mom/Makefile.sub: Use a stamp file in the `examples'
4896         directory.
4898 2003-10-12  Werner LEMBERG  <wl@gnu.org>
4900         * src/roff/groff/groff.cpp (help), src/devices/grops/ps.cpp (usage),
4901         src/roff/troff/input.cc (usage): Updated.
4903         * NEWS, doc/groff.texinfo: Updated.
4905 2003-10-12  Peter Miller  <millerp@canb.auug.org.au>
4907         * src/libs/libgroff/searchpath.cpp
4908         (search_path::open_file_cautious): New function which also handles
4909         `-' as stdin and stdout depending on the access mode.
4910         * src/include/searchpath.h (search_path): Updated.
4912         * src/devices/grops/ps.cpp (main): Handle new `-I' switch.
4913         * src/devices/grops/ps.h: Include `searchpath.h'.
4914         * src/devices/grops/psrm.cpp (resource_manager::supply_resource):
4915         Open resource file with `include_search_path.open_file_cautious'.
4916         * src/devices/grops/grops.man: Document new `-I' switch.
4918         * src/devices/grodvi/dvi.cpp (main), src/devices/grolbp/lbp.cpp
4919         (main), src/devices/grolj4/lj4.cpp (main),
4920         src/devices/grotty/tty.cpp (main): Ignore new `-I' switch.
4922         * src/preproc/soelim/soelim.cpp (include_list_length, include_list):
4923         Replaced with...
4924         (include_search_path): New global variable.
4925         (include_path_append): Removed.
4926         (main): Use `include_search_path.command_line_dir' to handle `-I'.
4927         (do_file): Simplify, using new
4928         `include_search_path.open_file_cautious'.
4930         * src/roff/groff/groff.cpp (print_commands): Accept file handle as
4931         parameter.
4932         (main): Pass arguments to `-I' to both troff and devices.
4933         Improve handling of `-V'.
4934         * src/roff/groff/groff.man: Document changes to -I and -V.
4936         * src/roff/troff/input.cpp (include_search_path): New global
4937         variable.
4938         (next_file, source, ps_bbox_request, transparent_file,
4939         process_input_file): Use new
4940         `include_search_path.open_file_cautious'.
4941         (main) Handle `-I' switch.
4942         * src/roff/troff/node.cpp (troff_output_file::really_copy_file):
4943         Use new `include_search_path.open_file_cautious'.
4944         * src/roff/troff/node.h: New extern symbol `include_search_path'.
4945         * src/roff/troff/troff.man: Document new `-I' switch.
4947 2003-09-15  Ruslan Ermilov  <ru@FreeBSD.org>
4949         Support multiple calls of .Lb in LIBRARY section.
4951         * tmac/doc-common (doc-in-library-section): New register.
4952         (doc-section-library): New string.
4953         (Sh): Set `doc-in-library-section'.
4954         (Rd): Updated.
4955         * tmac/doc-syms (Lb): Insert breaks before and after arguments
4956         if in LIBRARY section.
4957         * tmac/doc.tmac (doc-save-global-vars): Updated.
4958         * NEWS, tmac/groff_mdoc.man: Updated.
4960 2003-09-14  Ruslan Ermilov  <ru@FreeBSD.org>
4962         * tmac/doc-common (doc-default-operating-system): New variable.
4963         (Os): Use it.
4965 2003-09-08  Werner LEMBERG  <wl@gnu.org>
4967         * tmac/doc.tmac (doc-reset-reference): Handle data for `%I' also.
4969 2003-08-31  Werner LEMBERG  <wl@gnu.org>
4971         * contrib/mom/Makefile.sub: Fix last change to make it really work.
4972         * Makefile.comm: Use `test ... ||' in favor of `if test ...; then'.
4973         (install_dev, uninstall_dev): Check whether $(DEVSCRIPTS) and
4974         $(DEVFILES) are not empty.
4975         * Makefile.in: Use `test ... ||' in favor of `if test ...; then'.
4977 2003-08-26  Chuck Silvers  <chuq@chuq.com>
4979         * contrib/mom/Makefile.sub (prepare_make_examples): Make it work
4980         with parallel runs of `make'.
4982 2003-08-23  Stephen Gildea  <http://www.gildea.com/stephen>
4984         * src/preproc/ref/ref.cpp (reference::compute_sort_key): Always
4985         insert SORT_SEP.  With certain combinations of sort specifications,
4986         refer sorted entries in the wrong order.  In particular, entries
4987         with a missing field should be be sorted before all entries that
4988         have that field, before refer looks to the next field.
4990 2003-08-23  Werner LEMBERG  <wl@gnu.org>
4992         * src/utils/pfbtops/Makefile.sub (LINK.c): Define it so that the
4993         g++ linker is used.  Reported by Mark J. Reed
4994         <mark.reed@turner.com>.
4996 2003-08-16  Heinz-Jürgen Oertel  <hj.oertel@surfeu.de>
4998         Add key character `x' to tbl which makes tbl call a user-defined
4999         macro on a table cell.
5001         * src/preproc/tbl/table.h (entry_modifier): Add `macro'.
5002         * src/preproc/tbl/table.cpp (block_entry::do_divert): Call
5003         `set_modifier' after printing the compatibility request.
5004         (set_modifier): Print call to `m->macro' if not empty.
5005         * src/preproc/tbl/main.cpp (entry_format::debug_print): Handle
5006         `macro'.
5007         (process_format): Implement cases `x' and `X'.
5008         * src/preproc/tbl/tbl.man, NEWS: Updated.
5010 2003-08-15  Werner LEMBERG  <wl@gnu.org>
5012         * doc/groff.texinfo: Minor fixes.
5014 2003-08-09  Werner LEMBERG  <wl@gnu.org>
5016         * tmac/an-old.tmac [cR]: Fix redefinition of `bp'.
5018 2003-08-07  Werner LEMBERG  <wl@gnu.org>
5020         * doc/Makefile.sub: Not all shells expand wildcards in the `for'
5021         argument list to nothing if there is no file to match.  Use `ls' as
5022         a protection, similar to autoconf.
5024         * Makefile.comm (install_dev, uninstall_dev): Protect `for' against
5025         empty argument lists.
5027         * doc/groff.texinfo: Improve documentation how vertical spacing
5028         and line breaks interact.
5029         Other minor fixes.
5031         * tmac/www.tmac: Initialize `www-htmlimage-gap'.
5033 2003-08-03  Werner LEMBERG  <wl@gnu.org>
5035         * NEWS, src/devices/grops/grops.man: -b16 is necessary to produce
5036         EPS (using eps2eps or similar programs to compute the bounding box).
5038 2003-07-24  Werner LEMBERG  <wl@gnu.org>
5040         * doc/groff.texinfo: Use the new @/ command to avoid overlong lines.
5041         * doc/texinfo.tex: Updated from texinfo 4.6.
5042         * README.CVS: From now on we need texinfo 4.6.
5044 2003-07-23  Werner LEMBERG  <wl@gnu.org>
5046         Add requests `dei1' and `ami1' for completeness.
5048         * src/roff/troff/input.cc (calling_mode): Remove
5049         CALLING_DISABLE_COMP.
5050         (comp_mode): New enumeration.
5051         (do_define_string, define_string, define_nocomp_string,
5052         append_string, append_nocomp_string): Updated.
5053         (do_define_macro): Add third parameter.
5054         (define_macro, define_nocomp_macro, define_indirect_macro,
5055         append_macro, append_nocomp_macro, append_indirect_macro): Updated.
5056         (define_indirect_nocomp_macro, append_indirect_nocomp_macro): New
5057         functions.
5058         (ignore): Updated.
5059         (init_input_requests): Add `dei1' and `ami1'.
5061         * tmac/trace.tmac: Handle de1 and am1.
5062         (de): Improve tracing message.
5063         (am): Add missing `do'.
5064         (return): Use de1.
5066         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
5067         Document new requests.
5069 2003-07-22  Heinz-Jürgen Oertel  <hj.oertel@surfeu.de>
5071         Add option -G to .MPIMG to insert a gap between text and the image.
5073         * tmac/www.tmac (www-finish-left-po, www-finish-right-ll,
5074         www-finish-left-ll): Updated.
5075         (www-image-just, www-image-gap, www-htmlimage-gap): New variables.
5076         (MPIMG): Make option -L and -R optional.
5077         Implement option -G.
5079 2003-07-22  Gaius Mulley  <gaius@glam.ac.uk>
5081         * src/devices/grohtml/post-html.cpp
5082         (html_printer::do_file_components): Don't use `stdout' as lvalue
5083         since it can be a macro.
5085 2003-07-22  Werner LEMBERG  <wl@gnu.org>
5087         * src/libs/libgroff/strerror.c: Include errno.h to be in sync with
5088         the corresponding test in aclocal.m4.
5090 2003-07-21  Werner LEMBERG  <wl@gnu.org>
5092         * src/preproc/html/pre-html.cpp (TRANSPARENT): Don't use colour
5093         names but RGB values directly.  Otherwise pnmtopng depends on
5094         an external file `rgb.txt' which maps colour names to values.
5096 2003-07-20  Werner LEMBERG  <wl@gnu.org>
5098         * aclocal.m4 (GROFF_SYS_ERRLIST): Include stdlib.h for MinGW.
5099         * configure, src/include/config.hin: Regenerated.
5101         * src/libs/libgroff/strerror.c: Include stdlib.h for MinGW.
5103 2003-07-19  Werner LEMBERG  <wl@gnu.org>
5105         * PROBLEMS: Add solution for UTF-8 problem with hyphens.
5107 2003-07-18  Werner LEMBERG  <wl@gnu.org>
5109         * *.man: Switch to non-compatibility mode temporarily if GNU
5110         syntax extensions are used in the particular man page.
5112         * PROBLEMS: Add solutions for SGR problems.
5114 2003-07-17  Werner LEMBERG  <wl@gnu.org>
5116         Don't ignore grotty's command line options if \X'tty: sgr ...' is
5117         used to change the drawing scheme.
5119         * src/devives/grotty/tty.cpp (bold_flag_option,
5120         underline_flag_option, italic_flag_option, reverse_flag_option,
5121         bold_underline_mode_option): New global variables.
5122         (update_options): New function.
5123         (tty_printer::special): Call update_options.
5124         (main): Don't set xxx_flag but xxx_flag_option, then call
5125         update_options.
5127 2003-07-14  Werner LEMBERG  <wl@gnu.org>
5129         Make grotty emit proper Unicode box drawing characters for -Tutf8.
5131         * src/devices/grotty/tty.cpp (START_LINE, END_LINE): New enum
5132         values.
5133         (hline_char, vline_char): New global variables.
5134         (tty_printer::tty_printer): Initialize them.
5135         (tty_printer::draw): Emit START_LINE and END_LINE flags for both
5136         horizontal and vertical lines.
5137         (crossings): New global array.
5138         (tty_printer::end_page): Use it to determine the proper crossing
5139         character for -Tutf8.
5141 2003-07-12  Werner LEMBERG  <wl@gnu.org>
5143         * doc/Makefilesub (HTMLDOCFILESALL): New macro.
5144         (HTMLDOCFILES): Revert to `pic.html'.
5145         (CLEANADD, install_html, uninstall_sub): Use HTMLDOCFILESALL.
5147 2003-07-11  Werner LEMBERG  <wl@gnu.org>
5149         * doc/pic.ms: Improve documentation of absolute coordinates.
5150         Document absolute positioning of pictures.
5152         * NEWS: Add new pic capability.
5154 2003-07-09  Hartmut Henkel  <hartmut_henkel@gmx.de>
5156         * src/libs/libgroff/geometry.cpp (check_output_arc_limits):
5157         Rewritten.
5159 2003-07-07  Werner LEMBERG  <wl@gnu.org>
5161         Implement support for dashed and dotted ellipses in pic.  Based on
5162         a patch from Hartmut Henkel <hartmut_henkel@gmx.de>.
5164         * src/preproc/pic/common.cpp (common_output::ellipse_arc,
5165         common_output::dashed_ellipse, common_output::dotted_ellipse): New
5166         functions.  Ellipse arcs are approximated with circle arcs.
5167         * src/preproc/pic/common.h (common_output): Updated.
5168         * src/preproc/pic/tex.cpp (tex_output::ellipse): Use new ellipse
5169         functions.
5170         * src/preproc/pic/troff.cpp (simple_output::ellipse): Ditto.
5172         * src/preproc/pic/TODO, src/preproc/pic/pic.man: Updated.
5174 2003-07-06  Werner LEMBERG  <wl@gnu.org>
5176         Make grotty work on platforms which have unsigned char as the
5177         default for char.  Based on a patch by Thomas Klausner
5178         <wiz@netbsd.org>.
5180         * src/devices/grotty/tty.cpp (schar): New typedef.
5181         Updated calls to declare_ptable and implement_ptable.
5182         (glyph): Use schar for back_color_idx and fore_color_idx.
5183         (tty_printer): Use schar for curr_fore_idx and curr_back_idx.
5184         (tty_printer::tty_color, tty_printer::tty_printer,
5185         tty_printer::color_to_idx, tty_printer::put_color): Updated.
5187 2003-07-06  Ruslan Ermilov  <ru@FreeBSD.org>
5189         * src/roff/nroff/nroff.sh: Add option -d for completeness.
5190         * src/roff/nroff/nroff.man: Updated.
5192 2003-07-05  Werner LEMBERG  <wl@gnu.org>
5194         * NEWS, tmac/groff_www.man: Updated.
5195         * doc/Makefile.sub: Updated.
5197 2003-07-05  Gaius Mulley  <gaius@glam.ac.uk>
5199         Implement support for multiple HTML output files.
5201         * src/preproc/html/pre-html.cpp (scanArguments): Dummy handling for
5202         -j command line option.
5204         * src/devices/grohtml/post-html.cpp (job_name, multiple_files): New
5205         global variables.
5206         (file): New fields `new_output_file', `require_links',
5207         `output_file_name'.
5208         (file::file): Updated.
5209         (files::set_file_name, files::set_links_required,
5210         files::are_links_required, files::is_new_output_file,
5211         files::file_name, files::next_file_name): New functions.
5212         (header_desc): New fields `no_of_level_one_headings',
5213         `header_filename'.
5214         (header_desc::header_desc): Updated.
5215         (header_desc::write_headings): Handle multiple files.
5216         (html_printer::write_header): Save file name in which header occurs.
5217         (html_printer::determine_header_level): Possibly split files on
5218         level one headings.
5219         (html_printer::do_links, html_printer::troff_tag): Updated.
5220         (html_printer::insert_split_file, html_printer::do_job_name,
5221         html_printer::emit_link, html_printer::write_navigation,
5222         html_printer::do_file_components): New functions.
5223         (html_printer::~html_printer): Handle multiple files.
5224         (main): Handle command line option `-j'.
5226         * src/devices/grohtml/grohtml.man: Updated.
5228         * doc/Makefile.sub (pic.html), doc/Makefile.in (pic.html): New rule
5229         which splits file.
5231         * tmac/www.tmac (JOBNAME): New macro.
5232         * tmac/s.tmac (SH-NO-TAG): New macro.
5233         (@SH): Call SH-NO-TAG.
5234         (@NH): Updated.
5236 2003-07-05  Ruslan Ermilov  <ru@FreeBSD.org>
5238         * tmac/groff_mdoc.man: Improve documentation of punctuation
5239         characters.
5241 2003-07-04  Ruslan Ermilov  <ru@FreeBSD.org>
5243         * tmac/doc.tmac (Bd): Change to doc-Li-font later.
5245 2003-07-03  Werner LEMBERG  <wl@gnu.org>
5247         * tmac/an-old.tmac [cR]: Redefine `bp' to avoid empty lines.
5249 2003-07-01  Ruslan Ermilov  <ru@FreeBSD.org>
5251         * tmac/doc.tmac (doc-do-func, doc-do-func-args): Don't print a comma
5252         after `/*' and `*/'.
5253         Fix spacing.
5254         (Fn, Fo): Reduce indentation in synopsis.
5256         * tmac/doc-common (doc-check-depth): New macro.
5257         (doc-end-macro, Sh, Ss): Use it.
5258         (Cd): Fix behaviour in synopsis.
5259         (In): Make it parsed and callable.
5260         If not in the synopsis, represent the C header file enclosed in
5261         angle brackets.
5262         (doc-str-Rv-std-suffix, doc-str-Rv-stds-suffix, doc-str-Rv-std0):
5263         Use minus, not hyphen.
5265         * tmac/groff_mdoc.man: Updated.
5267 2003-07-01  Werner LEMBERG  <wl@gnu.org>
5269         Integrated grap2graph, contributed by Eric S. Raymond.
5271         * contrib/grap2graph/{Makefile.sub, grap2graph.sh, grap2graph.man}:
5272         New files.
5273         * Makefile.in, NEWS, MANIFEST, contrib/eqn2graph.man,
5274         contrib/pic2graph.man, src/roff/groff/groff.man: Updated.
5276 2003-07-01  Colin Watson  <cjwatson@debian.org>
5278         * src/xditview/*.c: Add prototypes, fix return types, add includes.
5279         Based on work by Fumitoshi UKAI <ukai@debian.or.jp>.
5281 2003-06-31  Ruslan Ermilov  <ru@FreeBSD.org>
5283         * tmac/tty-char.tmac: Provide `lb', `rb', `lk', `rk', `lt', `rt'.
5285 2003-06-31  Werner LEMBERG  <wl@gnu.org>
5287         * doc/Makefile.sub (CLEANADD): Remove all files created by
5288         running `make groff.{pdf,dvi}'.
5290         * Makefile.sub (DISTCLEANFILES): Remove all non-source files from
5291         src/xditview also.
5293 2003-06-30  Werner LEMBERG  <wl@gnu.org>
5295         * Makefile.in (SHELL): Define as @SHELL@.
5296         (mkinstalldirs): Use $(SHELL).
5297         (MDEFINES): Add $(SHELL).
5298         * Makefile.comm (SHELL): Removed.
5300 2003-06-29  Werner LEMBERG  <wl@gnu.org>
5302         * tmac/s.tmac (De, Ds): New aliases for .DE and .DS, respectively.
5303         The X11 documentation files use them.
5304         * tmac/groff_ms.man, doc/groff.texinfo: Document them.
5306 2003-06-15  Robert Goulding  <goulding@Princeton.EDU>
5308         * tmac/e.tmac (@C): Handle .ad also.
5310 2003-06-12  Werner LEMBERG  <wl@gnu.org>
5312         * src/preproc/tbl/tbl.man: Document formatting of text blocks.
5314         * src/roff/troff/input.cc (token::next) <handle_escape_char>:
5315         Assign `n' even here.  It is possible to construct a node
5316         immediately following an escape character:
5318           .di xx
5319           \?\\\?a
5320           .br
5321           .di
5322           .xx
5324 2003-06-10  Werner LEMBERG  <wl@gnu.org>
5326         * README.WIN32: Removed.
5327         * MANIFEST: Updated.
5329 2003-06-07  Werner LEMBERG  <wl@gnu.org>
5331         * src/roff/nroff/nroff.sh: Don't emit SGR for option -u.
5333 2003-06-05  Werner LEMBERG  <wl@gnu.org>
5335         * src/preproc/pic/pic.y <sprintf_args>: Implement workaround for bug
5336         in Compaq C++ V6.5-033 for Compaq Tru64 UNIX V5.1A (Rev. 1885).
5338 2003-06-03  Werner LEMBERG  <wl@gnu.org>
5340         * src/preproc/grn/hdb.cpp (DBRead): Don't close file handle; this
5341         is done by the calling function.
5343 2003-05-22  Ruslan Ermilov  <ru@FreeBSD.org>
5345         * tmac/X.tmac: Fix definition of `em'.
5347 2003-05-22  Werner LEMBERG  <wl@gnu.org>
5349         * src/roff/troff/input.cc (return_macro_request): Fix detection of
5350         argument.
5352 2003-05-18  Werner LEMBERG  <wl@gnu.org>
5354         * tmac/doc.tmac (doc-tag-list): Force horizontal mode after tag
5355         to make items work which consist only of a tag.
5357 2003-05-17  Werner LEMBERG  <wl@gnu.org>
5359         * tmac/doc.tmac (doc-tag-list): Don't use \Z to assure that spaces
5360         aren't stretched in a tag (this can fail with unformatted boxes).
5361         Instead, insert a break and go back one line.
5363 2003-05-16  Werner LEMBERG  <wl@gnu.org>
5365         * src/roff/troff/input.cc (return_macro_request): If called with
5366         argument pop macro twice.  We need this to trace `return'.
5368         * tmac/trace.tmac: Handle `return'.
5369         Fix typos.
5371         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
5372         Document.
5374 2003-05-15  Larry Kollar  <kollar@alltel.net>
5376         * tmac/groff_ms.man, doc/groff.texinfo: Improve documentation of
5377         registers `FPS', `FVS', and `FPD'.
5379 2003-05-15  Werner LEMBERG  <wl@gnu.org>
5381         * src/utils/pfbtops/pfbtops.c (get_text): Handle loop counter
5382         correctly.
5384 2003-05-03  Ruslan Ermilov  <ru@FreeBSD.org>
5386         * tmac/groff_mdoc.man: Slight improvements.
5388 2003-05-03  Werner LEMBERG  <wl@gnu.org>
5390         * tmac/doc-common (doc-header): Emit vertical space of 1v instead of
5391         `doc-header-space' after header line if register `cR' is set.
5393 2003-05-02  Werner LEMBERG  <wl@gnu.org>
5395         * TODO: Updated.
5397 2003-05-01  Ruslan Ermilov  <ru@FreeBSD.org>
5399         * tmac/doc-common (Nd): Use \[em].
5401 2003-05-01  Werner LEMBERG  <wl@gnu.org>
5403         * tmac/doc-ditroff, tmac/doc-nroff (doc-header-space,
5404         doc-footer-space): Initialize to 0.5i.
5405         (doc-setup-page-layout): Don't set doc-header-space and
5406         doc-footer-space.
5408 2003-04-30  Werner LEMBERG  <wl@gnu.org>
5410         * REVISION: Set to 1.
5412         * doc/pic.ms: Document possible problems with `figname'.
5414 2003-04-29  Werner LEMBERG  <wl@gnu.org>
5416 Version 1.19 released
5417 =====================
5419         * VERSION: Set to 1.19.
5420         * REVISION: Set to 0.
5421         * doc/groff.texinfo, doc/webpage.ms, NEWS: Updated.
5423         * src/devices/grohtml/post-html.cpp (html_printer::~html_printer):
5424         Define charset as `US-ASCII' in html output.
5426         * tmac/www.tmac (ULE): Add missing scaling indicator.
5428         * win32-diffs: Removed.
5430 2003-04-28  Werner LEMBERG  <wl@gnu.org>
5432         * doc/groff.texinfo: Document `dn' and `dl' registers if used with
5433         `.da' and `.boxa'.
5434         Document how to insert discardable whitespace with `.ss'.
5436 2003-04-27  Werner LEMBERG  <wl@gnu.org>
5438         * src/preproc/pic/tex.cpp (tex_output::start_picture): Make code
5439         work with plain TeX also.
5441         * src/preproc/pic/pic.man, doc/pic.ms: Fix TeX code example.
5443 2003-04-25  Gaius Mulley  <gaius@glam.ac.uk>
5445         * src/devices/grohtml/post-html.cpp (html_printer::~html_printer):
5446         Use a loose DTD.
5448 2003-04-24  Werner LEMBERG  <wl@gnu.org>
5450         * src/preproc/pic/pic.man, doc/pic.ms: Explain how to get a
5451         vbox with positive height and zero depth if in TeX mode.
5453         * NEWS: Document glyph name changes for grodvi and grolj4.
5455 2003-04-23  Werner LEMBERG  <wl@gnu.org>
5457         * src/preproc/pic/tex.cpp (tex_output::start_picture): Fix TeX code.
5458         * doc/pic.ms: Fixed.
5460 2003-04-21  Werner LEMBERG  <wl@gnu.org>
5462         HP-UX 10.20 has `snprintf' but it isn't declared.
5464         * configure.ac: Add declaration test for snprintf.
5465         * configure: Regenerated.
5466         * src/include/lib.h: Handle `NEED_DECLARATION_SNPRINTF'.
5467         * src/include/config.hin: Regenerated.
5469 2003-04-19  Werner LEMBERG  <wl@gnu.org>
5471         Add keyword `figname' to pic, specifying the name of the picture
5472         box in TeX mode.  Based on a patch from William J Poser
5473         <wjposer@unagi.cis.upenn.edu>.
5475         * src/preproc/pic/pic.y: New token `FIGNAME'.
5476         (macro_name): New rule of type <str>.
5477         (placeless_element): Handle `FIGNAME'.
5478         * src/preproc/pic/lex.cpp (lookup_keyword): Add `figname'.
5479         * src/preproc/pic/main.cpp (graphname): New global variable.
5480         (do_picture): Initialize `graphname'.
5481         * src/preproc/pic/pic.h: Updated.
5482         * src/preproc/pic/tex.cpp (tex_output::start_picture): Use
5483         `graphname'.
5484         Simplify TeX code.
5485         (tex_output::text): Beautify output.
5486         * src/preproc/pic/object.cpp (object_spec::~object_spec): Deallocate
5487         `shaded' and `outlined' unconditionally.
5488         * NEWS, src/preproc/pic/pic.man, doc/pic.ms: Updated.
5489         Minor improvements.
5491         * PROBLEMS, README.CVS: Mention that bison version 1.875b or
5492         greater is necessary.
5494 2003-04-17  Hartmut Henkel  <hartmut_henkel@gmx.de>
5496         Add option -r to soelim to avoid emission of `.lf' lines.
5497         Add option -t to produces TeX comment lines instead of `.lf' lines.
5499         * src/preproc/soelim/soelim.cpp: New global variables `raw_flag'
5500         and `tex_flag'.
5501         (usage): Updated.
5502         (main): Handle `-r' and `-t'.
5503         (set_location): Handle `raw_flag' and `tex_flag'.
5504         * src/preproc/soelim/soelim.man, NEWS: Updated.
5506 2003-04-17  Werner LEMBERG  <wl@gnu.org>
5508         * tmac/hyphenex.sh: Replaced with...
5509         * tmac/hyphenex.pl: This perl script to avoid sed compatibility
5510         nightmares.
5512         * aclocal.m4 (GROFF_HTML_PROGRAMS): Emit useful warning message
5513         if --quiet is used for the configure script.
5514         * configure: Regenerated.
5516 2003-04-16  Werner LEMBERG  <wl@gnu.org>
5518         * src/devices/grohtml/post-html.cpp (text_glob::text_glob):
5519         Add `const' to second argument.
5520         (html_printer::add_table_end): Add `const' to argument.
5521         * src/devices/grohtml/html-text.cpp (html_text::issue_tag): Add
5522         `const' to arguments.
5523         * src/devices/grohtml/html-text.h: Updated.
5525         * src/devices/grolbp/charset.h (symset): Use `unsigned char'.
5526         * src/devices/grolbp/lbp.h (lbpputc): Use `unsigned char' for
5527         argument.
5529         * src/devices/grotty/tty.cpp (tty_printer::make_rgb_string): Use
5530         cast for integer constant.
5532         * src/preproc/html/pre-html.cpp (image_device): Use `const'.
5533         (writeNbytes): Add `const' to first argument.
5534         (writeString): Add `const' to argument.
5535         (char_buffer::can_see): Add `const' to third argument.
5536         * src/preproc/html/pushback.cpp (pushBackBuffer::isString): Add
5537         `const' to argument.
5538         * src/preproc/html/pushback.h: Updated.
5540         * src/preproc/soelim/soelim.cpp (include_list): Add `const'.
5541         (include_path_append): Add `const' to argument.
5542         (do_file): Updated.
5544         * src/roff/troff/uniglyph.cpp (unicode_to_glyph_list): Use `const'
5545         for `value'.
5546         (unicode_to_glyph_init::unicode_to_glyph_init): Updated.
5547         * src/roff/troff/uniuni.cpp (unicode_decompose_list): Use `const'
5548         for `value'.
5549         (unicode_decompose_init::unicode_decompose_init): Updated.
5550         * src/roff/troff/glyphuni.cpp (glyph_to_unicode_list): Use `const'
5551         for `value'.
5552         (glyph_to_unicode_init::glyph_to_unicode_init): Updated.
5553         * src/roff/troff/input.cc (process_startup_file): Add `const' to
5554         argument.
5556         * tmac/hyphenex.sh: Make script more portable by using a here
5557         document.
5559 2003-04-15  Werner LEMBERG  <wl@gnu.org>
5561         Renamed all `*.cc' files to `*.cpp'.
5562         Updated all configuration files, makefiles, and documentation.
5564 2003-04-14  Werner LEMBERG  <wl@gnu.org>
5566         * tmac/hyphenex.sh: Slight improvements.
5568 2003-04-13  Werner LEMBERG  <wl@gnu.org>
5570         * font/devascii/R.proto, font/devcp1037/R.proto,
5571         font/devlatin1/R.proto, font/devutf8/R.proto: Fill up remaining
5572         character slots with unnamed glyphs.
5574         * tmac/an-old.tmac: Fix hyphenation value if `cR' is active.
5575         (an-first): New global variable.
5576         (an-header): Emit vertical space between multiple man pages.
5578 2003-04-11  Werner LEMBERG  <wl@gnu.org>
5580         * doc/groff.texinfo, man/groff_out.man: \S only accepts integer
5581         values.
5583 2003-04-10  Werner LEMBERG  <wl@gnu.org>
5585         * PROBLEMS: Revised.
5587 2003-04-10  Bernd Warken  <bwarken@mayn.de>
5589         * doc/webpage.ms: Improved.
5591 2003-04-09  Werner LEMBERG  <wl@gnu.org>
5593         Add register \n[.height] which returns the value of \H.
5594         Add register \n[.slant] which returns the value of \S.
5596         * src/roff/troff/env.cc (init_env_requests): Implement.
5597         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
5598         Document.
5600 2003-04-08  Werner LEMBERG  <wl@gnu.org>
5602         * tmac/html.tmac: Move some of the data into html-end.tmac.
5603         Remove most of the character translations for eqn since html fonts
5604         now cover those characters.
5605         Load www.tmac.
5606         * tmac/html-end.tmac: New file.
5607         * tmac/troffrc: Load html.tmac not www.tmac for -Thtml.
5608         * tmac/troffrc-end: Load html-end.tmac not html.tmac for -Thtml.
5609         * tmac/Makefile.sub (NORMALFILES): Add html-end.tmac.
5611 2003-04-07  Werner LEMBERG  <wl@gnu.org>
5613         * man/groff_out.man: Document negative values of `N' if -Thtml is
5614         used.
5616 2003-04-06  Werner LEMBERG  <wl@gnu.org>
5618         * Makefile.comm (depend.temp): Check location of YTABC.
5620 2003-04-05  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5622         * contrib/mom/Makefile.sub (GROFFBIN): New variable for groff
5623         binary path.
5624         (groff_bin_path): Rename to GROFF_BIN_PATH.
5625         (GROFF): Use GROFFBIN and GROFF_BIN_PATH.
5626         * doc/Makefile.in (TROFFBIN): New variable for troff
5627         binary path.
5628         (GROFFBIN): New variable for groff binary path.
5629         (groff_bin_path): Rename to GROFF_BIN_PATH.
5630         (TROFF): Use TROFFBIN.
5631         (GROFF): Use GROFFBIN and GROFF_BIN_PATH.
5632         * doc/Makefile.sub (GROFFBIN): New variable for groff
5633         binary path.
5634         (groff_bin_path): Rename to GROFF_BIN_PATH.
5635         (GROFF): Use GROFFBIN and GROFF_BIN_PATH.
5637         * Makefile.comm (install_dev): Install scripts from DEVSCRIPTS
5638         with INSTALL_SCRIPT.
5639         (uninstall_dev): Uninstall scripts from DEVSCRIPTS.
5640         * Makefile.dev (all): Depend on DEVSCRIPTS.
5641         (install_dev): Likewise.
5642         * font/devdvi/Makefile.sub (DEVSCRIPTS): New variable to hold
5643         scripts.
5644         * font/devps/Makefile.sub (DEVSCRIPTS): Likewise.
5645         (DEVGENSCRIPTS): New variable to hold generated scripts.
5647 2003-04-05  Werner LEMBERG  <wl@gnu.org>
5649         * src/libs/libdriver/input.cc (IntArray::operator[],
5650         IntArray::get_data): Remove meaningless `const' in return value.
5652         * README.CVS: New file.
5654 2003-04-04  Werner LEMBERG  <wl@gnu.org>
5656         Check for stdint.h in C++, not in C.
5658         * aclocal.m4 (GROFF_STDINT_H): New function,
5659         * configure.ac: Check for stdint.h with GROFF_STDINT_H instead of
5660         AC_CHECK_HEADERS.
5661         * configure, src/include/config.hin: Regenerated.
5662         * src/libs/libgroff/tmpname.cc: Use HAVE_CC_STDINT_H.
5665         Fix handling of &nbsp; in grohtml.  To do this, troff emits `N'
5666         with a negative value, representing the width of the unbreakable
5667         space (only for -Thtml).  grohtml then converts this back to
5668         &nbsp; and uses the value of N as its width.
5670         * src/roff/troff/node.cc (space_char_hmotion_node::tprint,
5671         unbreakable_space_node::tprint): Emit `N-<width>'.
5672         * src/include/printer.h (printer::set_numbered_char): Make it
5673         virtual.
5674         Make members `font_table' and `nfonts' protected instead of private.
5675         * src/devices/grohtml/post-html.cc
5676         (html_printer::set_numbered_char): New member function.
5679         * src/libs/libgroff/maxfilename.cc:
5680         s/HAVE_LIMITS_H/HAVE_CC_LIMITS_H/.
5682         * src/roff/troff/node.cc (unbreakable_space_node::tprint): Don't
5683         emit word marker.
5685 2003-04-03  Sergey A. Osokin  <osa@freebsd.org.ru>
5687         * man/roff.man: Small fixes.
5689 2003-04-03  Werner LEMBERG  <wl@gnu.org>
5691         Make groff independent from locale's numeric settings.
5693         * configure.ac: Check for `setlocale'.
5694         * configure, src/include/config.hin: Regenerated.
5696         * src/include/lib.h: Handle HAVE_SETLOCALE.
5698         * src/devices/grodvi/dvi.cc (main), src/devices/grolj4/lj4.cc
5699         (main), src/devices/grops/ps.cc (main), src/preproc/grn/main.cc
5700         (main), src/preproc/pic/main.cc (main): Call `setlocale'.
5703         * doc/groff.texinfo: Change dir category to `Typesetting'.
5704         (Man font macros): Mention that there is no space between arguments
5705         of .BI and friends.
5707         * src/libs/libdriver/printer.cc, src/devices/grotty/tty.cc
5708         (*printer::change_color, *printer::change_fill_color): Add missing
5709         `const'.
5711 2003-04-02  Werner LEMBERG  <wl@gnu.org>
5713         * src/devices/grohtml/html-table.cc (html_table::emit_col,
5714         html_table::is_gap): Compute table widths after converting border
5715         positions to avoid rounding errors.
5717 2003-04-01  Werner LEMBERG  <wl@gnu.org>
5719         * src/devices/grohtml/html-text.cc (html_text::do_space): Handle
5720         `space_emitted' properly.
5722 2003-03-31  Werner LEMBERG  <wl@gnu.org>
5724         * src/devices/grohtml/html-table.cc: Fix column width calculation.
5725         (html_table::set_linelength): Don't add 1.
5726         (html_table::add_indent): Don't subtract 1.
5728         * tmac/html.tmac: Set default page offset to zero.
5730 2003-03-30  Werner LEMBERG  <wl@gnu.org>
5732         Make groff emit `&nbsp;' for `\ ' and `\~' if `-Thtml' is used.
5734         * src/roff/troff/node.cc (space_char_hmotion_node::tprint,
5735         unbreakable_space_node::tprint): New functions.
5736         (troff_output_file): Make space_char_hmotion_mode::tprint and
5737         unbreakable_space_node::tprint to friends.
5738         * src/roff/troff/node.h: Updated.
5740         * font/devhtml/R.proto: Add `&nbsp' at position 0xA0 (as defined
5741         in the HTML standard).
5743 2003-03-29  Werner LEMBERG  <wl@gnu.org>
5745         * src/roff/troff/env.cc (point_size): Fix emission of html tag.
5746         Otherwise, the following code
5748           .di xxx
5749           .ps 10
5750           a
5751           .br
5752           .di
5753           x\*[xxx]
5755         produces `x a' instead of `xa'.  This is a temporary fix, disabling
5756         font changes in diversions for -Thtml.
5758         * tmac/an-old.tmac (TH, SH): Use `HTML-TAG-NS' instead of
5759         `HTML-TAG'.
5760         (an-do-tag-html): Merge with ...
5761         (an-do-tag): This macro.
5762         Change code slightly to circumvent grohtml bug.
5763         * tmac/troffrc-end: Define dummy for HTML-TAG-NS.
5765         * src/devices/grohtml/html-table.cc (html_table::emit_col,
5766         html_table::is_gap): Round `width' properly.
5768         * tmac/html.tmac: Provide some default layout parameters for
5769         grohtml.
5771         * font/devhtml/DESC.proto: Don't use discrete values for `sizes'
5772         command.
5774 2003-03-28  Werner LEMBERG  <wl@gnu.org>
5776         src/devices/grops/ps.cc (ps_printer::do_import): Fix error message.
5778 2003-03-27  Werner LEMBERG  <wl@gnu.org>
5780         * tmac/an-old.tmac (BT): Don't call .tl if register `ps4html' is
5781         defined.
5783 2003-03-20  Werner LEMBERG  <wl@gnu.org>
5785         * src/roff/troff/env.cc (vertical_spacing): Allow zero value for
5786         `.vs'.
5787         * doc/groff.texinfo: Updated.
5789 2003-03-19  Werner LEMBERG  <wl@gnu.org>
5791         * src/roff/troff/input.cc (process_input_stack) <TOKEN_BEGIN_TRAP,
5792         TOKEN_END_TRAP>: Reset `have_input'.
5794 2003-03-18  Werner LEMBERG  <wl@gnu.org>
5796         * src/roff/groff/groff.man: Mention groff_trace man page.
5798 2003-03-16  Werner LEMBERG  <wl@gnu.org>
5800         * Makefile.in (LIBEXT): New variable to indicate the file extension
5801         of library files.  Computed heuristically from $(OBJEXT).
5802         (MDEFINES): Add $(LIBEXT).
5803         * Makefile.lib, Makefile.comm: Use it.
5805         * src/utils/pfbtops/pfbtops.c (get_text): New function.  Split
5806         overlong lines into smaller chunks.
5807         (get_binary): New function.
5808         (main): Use them.
5809         * src/utils/pfbtops/pfbtops.man: Updated.
5811 2003-03-15  Colin Watson  <cjwatson@debian.org>
5813         * src/roff/groff/groff.man: Minor syntax fix.
5815 2003-03-14  Egil Kvaleberg  <egil@kvaleberg.no>
5817         * src/devices/grops/ps.cc (ps_printer::media_set,
5818         ps_printer::~ps_printer): Handle zero paper width and length.
5820 2003-03-13  Werner LEMBERG  <wl@gnu.org>
5822         Add options -p and -l to grodvi.
5824         * src/devices/grodvi/dvi.cc: Include paper.h.
5825         (landscape_flag, user_paper_length, user_paper_width): New global
5826         variables.
5827         (dvi_printer::begin_page): Emit `papersize' special.
5828         Set color after initialization of `cur_h' and `cur_v'.
5829         (main): Add options `-l' and `-p'.
5830         * font/devdvi/Makefile.sub (DESC): Set `papersize'.
5831         * src/devices/grodvi/grodvi.man, NEWS: Updated.
5833         * src/devices/grops/psrm.cc (valid_input_table): Fixed.
5835 2003-03-12  Werner LEMBERG  <wl@gnu.org>
5837         * src/devices/grops/grops.man: Move documentation of .PSPIC to...
5838         * man/groff_tmac.man: This man page.
5839         * man/groff_font.man: Declare `paperwidth' and `paperlength' as
5840         deprecated.
5842         * tmac/X.tmac: Don't load pspic.tmac.
5844 2003-03-11  Werner LEMBERG  <wl@gnu.org>
5846         Make variable `pr' local to libdriver/input.cc.  Based on a patch
5847         by Bernd Warken <bwarken@mayn.de>.
5849         * src/include/driver.h (pr): Removed.
5851         * src/libs/libdriver/input.cc (pr): New global variable.
5852         (do_file): Deallocate `pr'.
5853         * src/libs/libdriver/printer.cc (pr): Removed.
5855         * src/devices/grodvi/dvi.cc (main), src/devices/grohtml/post-html.cc
5856         (main), src/devices/grolbp/lbp.cc (main), src/devices/grolj4/lj4.cc
5857         (main), src/devices/grops/ps.cc (main), src/devices/grotty/tty.cc
5858         (main): Don't delete `pr'.
5860 2003-03-10  Werner LEMBERG  <wl@gnu.org>
5862         * tmac/a4.tmac, tmac/composite.tmac: Use `.do'.
5863         * tmac/papersize.tmac: New file.
5864         * tmac/troffrc: Include `papersize.tmac'.
5865         * tmac/Makefile.sub (NORMALFILES): Add `papersize.tmac'.
5866         * tmac/an-old.tmac: Set LT to LL by default.
5868         * NEWS, MANIFEST, tmac/groff_man.man, man/groff_tmac.man,
5869         doc/groff.texinfo: Updated.
5871         * src/libs/libgroff/paper.cc (add_iso_paper): Fix very embarassing
5872         bug which caused all odd iso papers to have wrong dimensions.
5874         * src/devices/grops/ps.cc (user_paper_width): New global variable.
5875         (main) <'p'>: Set `user_paper_width' also.
5876         (ps_printer::media_width, ps_printer::media_height): Use values
5877         given with option `-p'.
5879 2003-03-09  Werner LEMBERG  <wl@gnu.org>
5881         * src/include/nonposix.h: Provide default for SET_BINARY.
5883         * src/devices/grodvi/dvi.cc, src/devices/grolbp/lbp.cc,
5884         src/devices/grolj4/lj4.cc, src/devices/grops/ps.cc: Call SET_BINARY
5885         unconditionally.
5887         * src/utils/pfbtops/pfbtops.c: Call SET_BINARY unconditionally.
5888         (main): Treat \r\n as \n.
5890 2003-03-08  Werner LEMBERG  <wl@gnu.org>
5892         * tmac/an-old.tmac: Use register `HY' to control hyphenation.
5893         * NEWS, tmac/groff_man.man, doc/groff.texinfo: Document it.
5895 2003-03-07  Werner LEMBERG  <wl@gnu.org>
5897         Added support to access more than 256 glyphs in Type 1 fonts.
5899         * src/devices/grops/ps.cc (subencoding): New structure.
5900         (style): Add `sub' field.
5901         Updated all users.
5902         (ps_printer): Add `subencodings' and `next_subencoding_index' fields.
5903         Add `set_subencoding', `get_subfont' and `encode_subfont' member
5904         functions.
5905         Updated all users.
5906         (ps_printer::set_char): Use `set_subencoding'.
5907         (make_subencoding_name): New function.
5908         (ps_printer::set_style): Handle case where `sty.sub' is not zero.
5909         (ps_printer::~ps_printer): Emit subencoding definitions.
5911         * src/devices/grops/psrm.cc (valid_input_table): New array to
5912         properly support EBCDIC.
5913         (white_space): Add `\f'.
5914         (ps_get_line): Change first argument to be of type `string &'.
5915         Updated all callers.
5916         This allows to get lines of arbitrary length.
5917         Use `valid_input_table'.
5918         Remove warning about non-conforming PS line length.  This seems
5919         not to be of great importance -- for example, dvips don't emit
5920         a warning either.
5921         (PS_LINE_MAX): Removed.
5922         (matches_comment): Change first argument to be of type `string &'.
5924         * src/devices/grops/grops.man, src/devices/grops/TODO: Updated.
5926         * src/utils/afmtodit/afmtodit.pl (%unicode_decomposed,
5927         %AGL_to_unicode, %default_ligatures): New hash tables.
5928         Read all map entries.
5929         Add unencoded characters.
5930         Check for default ligatures if there are no `L' entries.
5931         Print all kern entries.
5932         Print all characters in charset.
5933         * src/utils/afmtodit/afmtodit.man: Updated.
5935         * font/devps/*: Regerated all fonts.
5937         * tmac/latin[129].tmac, tmac/cp1047.tmac: Don't test for existence
5938         of characters, just use `.trin'.  Otherwise the mapping depends
5939         on the font encoding.
5940         * tmac/ps.tmac: Add `fi' and `fl'.
5941         Improve `Fi' and `Fl'.
5942         * tmac/X.tmac, tmac/lbp.tmac, tmac/tty.tmac: Improve `Fi' and `Fl'.
5943         * tmac/Xps.tmac: Fix `em'.
5945         * NEWS: Updated.
5947 2003-03-04  Werner LEMBERG  <wl@gnu.org>
5949         * src/roff/troff/input.cc (charinfo_to_node_list): Reset
5950         `have_input'.
5952 2003-03-03  Werner LEMBERG  <wl@gnu.org>
5954         * Makefile.sub (DISTCLEANFILES): Add gxditview._man.
5956         * font/devps/generate/textmap: Remove entry `similarequal'.
5957         * font/devps/symbolmap: Updated.
5959 2003-03-02  Werner LEMBERG  <wl@gnu.org>
5961         * src/libs/libgroff/font.cc (font::load): Fix error message for
5962         bad character type.
5964         * src/devices/grops/grops.man: Improve documentation of the -b
5965         flag.
5967         * tmac/tty.tmac: Load latin1.tmac for all TTY devices except
5968         `ascii' and `cp1047'.
5970 2003-03-01  Werner LEMBERG  <wl@gnu.org>
5972         Document composite glyphs and the `composite' request.
5974         * man/groff.man, man/groff_diff.man, doc/groff.texinfo: Do it.
5976 2003-02-28  Werner LEMBERG  <wl@gnu.org>
5978         * font/devdvi/generate/ec.map: Add some more Unicode entities.
5979         * font/devdvi/*EC: Updated.
5981         * tmac/composite.tmac, tmac/latin2.tmac, tmac/latin9.tmac: New files.
5982         * tmac/latin1 (latin1-tr): Undo any previous mapping.
5983         * tmac/troffrc: Load `composite.tmac'.
5984         * tmac/Makefile.sub (NORMALFILES): Updated.
5986         * doc/groff.texinfo (Input Encodings): New section.
5987         * NEWS: Updated.
5989 2003-02-27  Werner LEMBERG  <wl@gnu.org>
5991         * doc/texinfo.tex: New version 2003-02-11.06.
5993         * tmac/doc-common (Dt): Don't emit warning for unknown section.
5994         * tmac/groff_mdoc.man: Fix description of `Dt'.
5996 2003-02-26  Egil Kvaleberg  <egil@kvaleberg.no>
5998         * font/devps/prologue.ps: Fix for included Postscript that does
5999         a setpagedevice -- which is now safely ignored.
6001         * NEWS: Updated.
6003         * src/devices/grops/ps.cc: Now sets the page size in the generated
6004         document.  This is done in two ways: Via a %%-comment for gv and
6005         the like, and via a PageSize and setpagedevice for programs that
6006         understands Postscript proper, like ps2pdf.
6008         * src/devices/grops/ps.h: New broken-flag to avoid page size
6009         definition, if required.
6011         * src/devices/grops/grops.man: New broken-flag 16 mentioned.
6013         * doc/Makefile.in: Added -nosetpage flag (via @pnmtops_nosetpage@).
6014         Not really necessary due to the fix in prologue.ps, but cleaner:
6015         Such information does not belong in an .eps file.
6017         * doc/Makefile.sub: See doc/Makefile.in.
6019 2003-02-26  Ralph Corderoy  <ralph@inputplus.co.uk>
6021         * aclocal.m4 (GROFF_PNMTOPS_NOSETPAGE): Use P2 format for testing
6022         instead of P1 since the latter is broken in some versions of netpbm.
6023         * configure: Updated.
6025 2003-02-26  Larry Kollar  <kollar@alltel.net>
6027         Make man pages more customizable.
6029         * tmac/an-old.tmac (FT): New register holding footer distance from
6030         bottom.
6031         (HF): New string holding the default heading font.
6032         (TH): Handle registers `IN' and `SN' set on the command line.
6033         Use `FT'.
6034         (PT, BT): New strings to customize header and footer lines.
6035         (an-header, an-footer): Use them.
6036         (SH, SS): Use `HF'.
6037         * tmac/groff_man.man: Document changes.
6039         * doc/groff.texinfo: Document man changes.
6040         Document Ultrix extensions of man.
6042 2003-02-26  Werner LEMBERG  <wl@gnu.org>
6044         * src/roff/troff/input.cc (do_width, do_if_request): Reset
6045         `have_input' after changing back to old environment.
6047         * src/devices/grolbp/lbp.cc (lbp_printer::set_line_thickness): Move
6048         function up to be defined before first call.  This is necessary to
6049         avoid a compilation problem with Sun's WorkShop 6 C++ compiler.
6051         * src/utils/afmtodit/afmtodit.pl: Make script search for files in
6052         the default font directory also.  Based on a patch from James
6053         J. Ramsey <jjramsey_6x9eq42@yahoo.com>.
6054         * src/utils/afmtodit/Makefile.sub (afmtodit): Handle @FONTDIR@.
6055         * src/utils/afmtodit/afmtodit.man: Document it.
6057         * NEWS: Updated.
6059         * tmac/groff_man.man, doc/groff.texinfo: Many minor fixes.
6061 2003-02-25  Gaius Mulley  <gaius@glam.ac.uk>
6063         * aclocal.m4 (GROFF_HTML_PROGRAMS): Add test for pnmtops.
6064         (GROFF_PNMTOPS_NOSETPAGE): New macro.
6065         * configure.ac: Use it.
6066         * configure: Regenerated.
6067         * Makefile.in: Updated.
6069         * tmac/Makefile.sub (NORMALFILES): Remove www.tmac.
6070         (CLEANADD): Add www.tmac-sed.
6071         (pnmtops_nosetpage): Define default.
6072         (install_data): Handle www.tmac-sed and substitute
6073         @PNMTOPS_NOSETPAGE@.
6074         (stamp-sed): Add www.tmac.
6075         * tmac/www.tmac: Rewritten, based on a patch by Bernd Warken.
6076         It now breaks URLs at suitable places.
6077         (www:substring_ok): New register set by...
6078         (www:@test_substring): New macro.
6079         (www:error): New alias to www-error.
6080         (www:lenstr, www:splitstr, www:url_breaks, www:url_breaks_splitted):
6081         New macros.
6082         (URL): Use www:url_breaks.
6083         (PIMG, MPIMG): Use @PNMTOPS_NOSETPAGE@.
6084         (CDS, CDE): New macros.
6086 2003-02-25  Werner LEMBERG  <wl@gnu.org>
6088         * src/devices/grops/ps.cc (ps_printer::define_encoding): Avoid
6089         buffer overflow.
6091 2003-02-24  Werner LEMBERG  <wl@gnu.org>
6093         Contrary to the PCL5 Developer's Guide, the ascenders in TFM files
6094         can be negative also.
6096         * src/utils/hpftodit/hpftodit.cc (char_info): `ascent' must be
6097         `int16'.
6098         (read_char_table): Avoid negative ascenders.
6099         (output_charset): Add cast.
6100         * font/devlj4/*: Regenerated.
6102         Replace unnamed glyphs for DVI fonts with `uXXXX' glyph names where
6103         possible.
6105         * font/devdvi/generate/{tc,texttt,ec,texmi,texsy,textex}.map: Do it.
6106         * font/devdvi/generate/textex.map: Map glyph 23 to `u21C6' instead
6107         of `<>'.
6108         * font/devdvi/*: Regenerated.
6110         Map `la' and `ra' to U+27E8 and U+27E9.  These two characters have
6111         normal width, while the previously used characters (U+2329 and
6112         U+232A) are classified as wide due to canonical equivalence with the
6113         CJK punctuation characters U+3008 and U+3009.
6115         * font/devutf8/R.proto: Updated.
6116         * src/roff/troff/uniglyph.cc, src/roff/troff/glyphuni.cc: Ditto.
6118         * man/groff_char.man: Simplify handling of table traps by
6119         introducing `start block' and `end block' macros.
6120         (Ns, Ne, 2s, 2e, Ds, De): New macros.
6121         (DL): Make it work with Unix troff also.
6122         Fix code values of `la' and `ra'.
6124         * tmac/dvi.tmac: Define `<>' for CW and CWI.
6126 2003-02-23  Gaius Mulley  <gaius@glam.ac.uk>
6128         * src/devices/grohtml/post-html.cc (element_list::~element_list):
6129         New destructor, fixing a major memory leak.
6131 2003-02-22  Werner LEMBERG  <wl@gnu.org>
6133         * font/devhtml/R.proto, font/devutf8/R.proto: Flip `*f' and `+f'
6134         to be in conformance with Unicode 3.0 and newer.
6136         * font/devlj4/generate/text.map: Add `Eu'.
6137         * font/devlj4/generate/special.map: Flip `*e' and `+e'.
6138         * font/devlj4/S: Regenerated.
6140         * man/groff_char.man: Completely rewritten.
6142         * doc/groff.texinfo: Fix description of request and macro arguments.
6144 2003-02-20  Gaius Mulley  <gaius@glam.ac.uk>
6146         Valgrind fixes.
6148         * src/devices/grohtml/html-table.cc (html_table::~html_table):
6149         Deallocate `columns' list.
6150         * src/devices/grohtml/post-html.cc (char_block::~char_block):
6151         New destructor.
6152         (text_glob::text_glob_html, text_glob::text_glob_special,
6153         text_glob::text_glob_line, text_glob::text_glob_auto_image,
6154         text_glob::text_glob_tag): Avoid memory leaks.
6155         (text_glob::remember_table): Free memory before reassigning.
6157 2003-02-19  Werner LEMBERG  <wl@gnu.org>
6159         Add glyph `+e', greek lunate epsilon symbol, and `-h' (with the
6160         alias `hbar'), the Planck constant over two pi.
6162         * font/devdvi/generate/texmi.map: Use `*e' for position 15 and
6163         `+e' for position 34.
6164         * font/devdvi/generate/texsy.map: Replace `DI' and `HE' with
6165         `u2662' and `u2661'.
6166         * font/devdvi/{MI,S}: Regenerated.
6167         * font/devhtml/R.proto, font/devutf8/R.proto: Add `+e', `-h', `hbar'.
6168         * font/devlbp/*: Add `hbar' alias.
6169         * font/devlj4/generate/special.map: Ditto.
6170         * font/devlj4/S: Regenerated.
6171         * font/devps/generate/symbolchars: Add `+e'.
6172         * font/devps/generate/textmap: Fix PS name for `-h'.
6173         Add `hbar' alias.
6174         * font/devps/symbolmap: Regenerated.
6176         * src/devices/grops/ps.cc (transform_fill): Removed since unused.
6178         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Add `+e',
6179         `-h', `hbar'.
6180         * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Add `+e',
6181         `-h'.
6183         * tmac/X.tmac, tmac/ps.tmac: Provide definitions for `-h' and
6184         `hbar'.
6185         * tmac/tty-char.tmac: Add `+e'.
6187 2003-02-17  Werner LEMBERG  <wl@gnu.org>
6189         Another round trying to really fix problems with `have_input'.
6191         * src/roff/troff/input.cc (input_stack::get): Handle `have_input'.
6192         (token::next) <'\n'>, <\'\n'>: Don't handle `have_input'.
6194         * src/devices/grotty/tty.cc (tty_printer::put_color): Fix color
6195         handling if both foreground and background colors are default.
6197         * doc/groff.texinfo (Debugging): Document .lf differences to
6198         AT&T troff.
6200 2003-02-16  Werner LEMBERG  <wl@gnu.org>
6202         * src/devices/grotty/tty.cc (tty_printer::make_rgb_string): Avoid
6203         null-bytes in created string.
6205         * src/roff/troff/input.cc (lookup_color, interpolate_macro,
6206         alias_macro, lookup_request): Improve warning messages.
6208         * src/roff/troff/node.cc (suppress_node::tprint): Use `strsave',
6209         not `strdup'.
6210         Free `last_image_filename'.
6212         * src/preproc/html/pre-html.cc (char_block::char_block): Initialize
6213         `buffer'.
6214         (imageList::createPage, imageList::createImage): Use `free', not
6215         `a_delete'.
6216         (imageItem::~imageItem): Free `imageName'.
6217         (addRegDef): Use `strsave', not `strdup'.
6218         (get_resolution): Free `pathp'.
6220 2003-02-15  Werner LEMBERG  <wl@gnu.org>
6222         * src/devices/grotty/tty.cc (tty_printer::tty_printer): Fix pointer
6223         to `dummy'.
6225 2003-02-14  Werner LEMBERG  <wl@gnu.org>
6227         Add memory management for colors to deallocate unnamed colors
6228         properly.
6230         * src/include/color.h (color): New members `free_list' and `next'.
6231         New member functions `new' and `delete'.
6232         Add destructor.
6233         * src/libs/libgroff/color.cc: Implement it.
6235         * src/libs/libgroff/font.cc (font::add_kern): Use integer cast
6236         for array size of new operator.
6238         * src/libs/libdriver/input.cc (IntArray::operator[]): Remove
6239         redundant comparison.
6241         * src/roff/troff/input.cc (word_space_node::reread,
6242         hmotion_node::reread): Avoid warning about unused parameter.
6243         (reset_output_registers): Remove redundant parameter.
6244         (define_color): Undo change 2003-02-12.
6246         * src/roff/troff/reg.h: Updated.
6248         * src/roff/troff/node.cc (troff_output_file::really_print_line,
6249         output_file::put_filename, real_output_file::really_put_filename,
6250         ascii_output_file::really_print_line,
6251         break_char_node::get_hyphen_list): Avoid warning about unused
6252         parameter.
6253         (suppress_node::tprint): Updated.
6255         * configure.ac: Check declaration for rand() and srand().
6256         * configure: Regenerated.
6258         * src/preproc/pic/pic.h: Declare fmod(), rand(), and srand()
6259         conditionally.
6260         * src/preproc/pic/pic.y: Remove declaration of fmod(), rand(),
6261         and srand().
6263         * src/preproc/eqn/delim.cc (delim_table): Add missing initializers
6264         to avoid compiler warnings.
6266         * src/preproc/grn/hgraph.cc (HGPrintElt): Second parameter is
6267         unused.
6269         * src/devices/grops/ps.cc (ps_printer::set_char): Last parameter
6270         is unused.
6271         * src/devices/grops/psrm.cc (skip_possible_newline): Remove first
6272         (unused) parameter.
6273         Updated all callers.
6275         * src/devices/grotty/tty.cc (tty_printer::set_char): Last parameter
6276         is unused.
6277         * src/devices/grodvi/dvi.cc (dvi_printer::set_char): Ditto.
6278         * src/devices/grolj4/lj4.cc (lj4_printer::set_char): Ditto.
6280         * src/devices/grohtml/post-html.cc (html_printer::emit_line):
6281         Parameter is unused.
6282         (html_printer::add_table_end): Define parameter conditionally.
6283         * src/devices/grohtml/output.cc (simple_output::special): Parameter
6284         is unused.
6286         * src/devices/grolbp/lbp.cc: Define _GNU_SOURCE conditionally.
6287         (lbp_printer::set_char): Last parameter is unused.
6289         * src/utils/indxbib/indxbib.cc (main): Remove redundant comparison.
6291 2003-02-13  Werner LEMBERG  <wl@gnu.org>
6293         New commands \D'Fr ...', \D'Fc ...', etc. for orthogonality.
6294         Make \D'f ...' move horizontally again for backwards compatibility.
6295         Replace it with \D'Fg ...' where appropriate to avoid dependency
6296         on horizontal resolution.
6298         * src/roff/troff/input.cc (do_get_long_name): New function.
6299         (get_long_name): Call it.
6301         (read_draw_node): Handle `\D'Fx ...' by calling ...
6302         (read_color_draw_node): New function.
6304         (read_rgb, read_cmy, read_cmyk, read_gray): New optional argument
6305         `end'.
6306         Pass it to `do_get_long_name' which is used instead of
6307         `get_long_name'.
6309         * src/libs/libdriver/input.cc (color_from_Df_command): Remove
6310         unnecessary value guard.
6311         (parse_D_command) <'f'>: Add horizontal shift.
6313         * src/preproc/grn/hgraph.cc (HGPrintElt) <POLYGON>: Use \D'Fg ...'.
6314         * src/preproc/pic/troff.cc (troff_output::set_fill): Ditto.
6315         (FILL_MAX): Removed.
6317         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
6318         Updated.
6320 2003-02-12  Werner LEMBERG  <wl@gnu.org>
6322         * src/roff/troff/input.cc (do_name_test, do_expr_test,
6323         do_zero_width): Push `\n' if closing delimiter is missing.
6325         (token::next) <ESCAPE_NEWLINE>, <'\n'>, <\'\n'>: Reset `have_input'.
6326         <'F'>: Make \F non-transparent at the beginning of line.
6327         (process_input_stack) <token::TOKEN_CHAR, token::TOKEN_NEWLINE,
6328         token::TOKEN_REQUEST, token::TOKEN_BEGIN_TRAP>: Don't handle
6329         `have_input'.
6331         (define_color): Free color in case of reassignment.
6333         * doc/groff.texinfo (@Defesc, @DefescList, @DefescItem,
6334         @DefescListEnd): Use @Var, not @var.
6335         Fix all calls.
6337         * src/preproc/grn/hgraph.cc (HGPrintElt): Fix typo.
6339         * src/preproc/pic/object.cc (object_spec::~object_spec): Free
6340         `shaded' and `outlined' arrays.
6341         (object_spec::object_spec): Initialize `shaded' and `outlined'.
6342         (graphic_object::set_fill_color, graphic_object::set_outline_color):
6343         Use strsave.
6344         (closed_object::set_fill_color): Ditto.
6345         * src/preproc/pic/troff.cc (troff_output::set_color): Use strsave
6346         instead of strdup.
6347         (troff_output::reset_color): Use a_delete instead of free.
6348         * src/preproc/pic/main.cc (do_file): Free `out' in case of error.
6350 2003-02-11  Werner LEMBERG  <wl@gnu.org>
6352         * doc/groff.texinfo: Improve documentation of `ad'.
6353         Document that \D'f...' is dependent on the horizontal resolution.
6354         * man/groff_diff.man: Improve documentation of \D'f...'.
6356         * src/preproc/grn/hgraph.cc (HGPrintElt) <POLYGON>: Don't emit
6357         compensating \h'...' for \D'f ...' since the latter no longer moves
6358         current position.
6359         * src/preproc/pic/troff.cc (troff_output::set_fill): Ditto.
6361 2003-02-10  Werner LEMBERG  <wl@gnu.org>
6363         Improve error messages for `x F' (and `F') commands.
6365         * src/include/error.h: Add declaration for
6366         `current_source_filename'.
6367         * src/libs/libgroff/filename.cc: Add `current_source_filename'.
6368         * src/libs/libgroff/error.cc (do_error_with_file_and_line): Add
6369         parameter for source file string.
6370         Updated all callers.
6372         * src/libs/libdriver/input.cc: Add `current_source_filename'.
6373         (remember_source_filename): New function.
6374         (parse_x_command <'F'>, do_file <'F'>): Use it.
6376 2003-02-09  Werner LEMBERG  <wl@gnu.org>
6378         Make grotty not emit warnings about unknown colors more than
6379         necessary.
6381         * src/devices/grotty/tty.cc: Include `ptable.h'.
6382         (TTY_MAX_COLORS): Removed.
6383         (DEFAULT_COLOR_IDX): Defined to -1.
6384         (glyph): Change `back_color_idx' and `fore_color_idx' to `char'.
6385         (tty_printer): Change `curr_back_idx' and `curr_fore_idx' to `char'.
6386         Change `tty_colors' to be a ptable.
6387         First arg of `put_color' is now `char'.
6388         New functions `make_rgb_string' and `tty_color'.
6389         (tty_printer::tty_printer): Use `tty_color'.
6390         (tty_printer::color_to_idx): Return value is now `char'.
6391         Use `tty_color'.
6393         * src/include/color.h (color): Add `print_color' member function.
6394         * src/libs/libgroff/color.cc (color::print_color): Implement it.
6396 2003-02-08  Werner LEMBERG  <wl@gnu.org>
6398         Valgrind fixes.
6400         * src/devices/grops/ps.cc (ps_printer::define_encoding): Close
6401         encoding file.
6403         * src/include/ptable.h (PTABLE::~PTABLE, PTABLE::define): Always
6404         assume that value has been allocated with `new[]', thus use
6405         `a_delete' for deallocation.
6407         * src/libs/libdriver/input.cc (get_integer_arg,
6408         get_possibly_int_args, parse_x_command, do_file): Use `a_delete'
6409         where appropriate.
6411         * src/libs/libgroff/new.cc (delete) [!COOKIE_BUG]: Define.
6412         * src/libs/libgroff/nametoindex.cc
6413         (character_indexer::named_char_index): Use `new <type>[1]'.
6415         * src/preproc/eqn/lex.cc (init_table, do_definition): Use `new
6416         <type>[1]'.
6417         * src/preproc/eqn/text.cc (set_special_char_type): Ditto.
6418         (split_text): Use `a_delete'.
6420         * src/preproc/pic/pic.y (define_label, define_variable): Use `new
6421         <type>[1]'.
6423         * src/roff/troff/env.cc (environment::choose_breakpoint): Avoid
6424         harmless memory leak.
6425         (hyphen_trie::read_patterns_file): Initialize `buf'.
6426         * src/roff/troff/node.cc (troff_output_file::troff_output_file):
6427         Initialize `current_fill_color'and `current_glyph_color'.
6428         * src/roff/troff/glyphuni.cc
6429         (glyph_to_unicode_init::glyph_to_unicode_init): Use `new <type>[1]'.
6430         * src/roff/troff/uniuni.cc
6431         (unicode_decompose_init::unicode_decompose_init): Ditto.
6432         * src/roff/troff/uniglyph.cc
6433         (unicode_to_glyph_init::unicode_to_glyph_init): Ditto.
6435 2003-01-26  Werner LEMBERG  <wl@gnu.org>
6437         * src/utils/indxbib/indxbib.cc (main) [__EMX__]: Check with
6438         `access' before calling `unlink'.
6439         (do_file): Handle __EMX__.
6441         * src/include/nonposix.h: Handle __EMX__.
6443         * Makefile.in (SEP): New variable; set to @PATH_SEPARATOR@.
6444         (fontpath,tmacpath): Use it.
6445         (MDEFINES): Add it.
6446         Sorted alphabetically.
6448         * src/preproc/eqn/neqn.sh, src/roff/nroff/nroff.sh: Use
6449         @SEP@.
6450         * src/preproc/eqn/Makefile.sub, src/roff/nroff/Makefile.sub: Handle
6451         @SEP@.
6453 2003-01-27  Werner LEMBERG  <wl@gnu.org>
6455         * src/libs/libgroff/strcasecmp.c, src/libs/libgroff/strncasecmp.c:
6456         New files, copied from gnulib.
6457         * src/libs/libgroff/Makefile.sub (CSRCS): Add them.
6458         * configure.ac: Updated.
6459         * configure: Regenerated.
6461         * src/include/config.hin: Regenerated.
6462         * src/include/lib.h [!HAVE_STRCASECMP]: Declare `strcasecmp'.
6463         Don't define `strcasecmp' as `strcmp'.
6464         [!HAVE_STRNCASECMP]: Declare `strncasecmp'.
6465         Dont define `strncasecmp' as `strncmp'.
6467         * src/roff/groff/pipeline.c [!HAVE_STRCASECMP, !HAVE_STRNCASECMP]:
6468         Removed.
6470 2003-01-26  Werner LEMBERG  <wl@gnu.org>
6472         * src/utils/indxbib/indxbib.cc (main) [__EMX__]: Fix typo:
6473         s/unline/unlink/.
6475 2003-01-25  Werner LEMBERG  <wl@gnu.org>
6477         * doc/groff.texinfo (Ligatures and Kerning): Mention limitations.
6479 2003-01-24  Werner LEMBERG  <wl@gnu.org>
6481         Add US-english hyphenation exceptions (converted from Barbara
6482         Beeton's hyphenation exception log reports which appear irregularly
6483         in TUGBoat).
6485         * tmac/hyphen.us: Updated to latest version.
6486         * tmac/README: Updated.
6487         * tmac/hyphenex.us, tmac/hyphenex.sh: New files.
6488         * tmac/troffrc: Load `hyphenex.us'.
6489         * tmac/Makefile.sub (NORMALFILES): Add `hyphenex.us'.
6490         * doc/groff.texinfo: Updated.
6492 2003-01-23  Werner LEMBERG  <wl@gnu.org>
6494         Improve hyphenation slightly.  This is a first step in redesigning
6495         the hyphenation algorithm to make it more flexible (e.g. allowing
6496         kerns and ligatures between the hyphenation character and the
6497         following character -- while not used normally in English, other
6498         languages like German would benefit).
6500         * src/roff/troff/env.cc (environment::hyphenate_line): Use
6501         assertion instead of if-clause.
6502         Let `get_hyphen_list' return the number of involved characters in
6503         the hyphenation pattern instead of computing it directly (which
6504         often yields too small values).
6505         * src/roff/troff/node.h (*::get_hyphen_list): Add second parameter.
6506         * src/roff/troff/node.cc (*::get_hyphen_list): Handle new second
6507         parameter.
6509 2003-01-22  Werner LEMBERG  <wl@gnu.org>
6511         Fixing a bug which caused groff to hang if the hyphenation exception
6512         dictionary tried to grow.
6514         * src/roff/troff/env.cc (hyphen_trie::insert_hyphenation,
6515         hyphen_trie::read_patterns_file, do_hyphenation_patterns_file): Use
6516         pointer to dictionary.
6518 2003-01-20  Werner LEMBERG  <wl@gnu.org>
6520         * src/utils/afmtodit/afmtodit.pl: Add switch `-m' to suppress
6521         negative left italic correction.
6522         * src/utils/afmtodit/afmtodit.man: Document it.
6524         * font/devps/generate/Makefile (RFLAG): Add `-m'.
6525         * font/devps/{AB,AR,BMB,BMR,CB,CR,EURO,HB,HR,HNB,HNR,NB,NR,PB,PR,
6526         S,TB,TR,ZD,ZDR}: Regenerated with afmtodit options `-i 0 -m'.
6528         * NEWS: Updated.
6530 2003-01-16  Werner LEMBERG  <wl@gnu.org>
6532         * NEWS: Updated.
6534 2003-01-16  Jörgen Grahn  <jgrahn@algonet.se>
6536         * src/preproc/refer/refer.man: Mention REFER environment variable.
6538 2003-01-05  Werner LEMBERG  <wl@gnu.org>
6540         Similar to \[is], the square root glyph (\[sr]) and the square root
6541         extension glyph (\[radicalex]) are now text symbols.  The new
6542         mathematical versions are called \[sqrt] and \[sqrtex],
6543         respectively.
6545         * font/devX*/S: Regenerated.
6546         * font/devdvi/generate/texex.map: Rename `sr[0123]' to `sqrt[0123]'.
6547         * font/devdvi/generate/texsy.map: Rename `sr' to `sqrt'.
6548         * font/devdvi/EX, font/devdvi/S: Regenerated.
6549         * font/devhtml/R.proto, font/devutf8/R.proto: Add `sqrt'.
6550         * font/devlj4/generate/special.map: Add `sqrt'.
6551         * font/devlj4/S: Regenerated.
6552         * font/devps/generate/textmap: Add `sqrt'.
6553         * font/devps/S, font/devps/symbolmap: Regenerated.
6555         * src/preproc/eqn/sqrt.cc (SQRT_CHAR, RADICAL_EXTENSION_CHAR,
6556         SQRT_CHAIN, BAR_CHAIN): Use `sqrt*' and `sqrtex*'.
6557         * src/roff/troff/input.cc (init_charset_table): Make `sqrtex'
6558         overlap horizontally.
6560         * tmac/X.tmac, tmac/ps.tmac, tmac/lj4.tmac: Add `sqrtex'.
6561         * tmac/dvi.tmac: Add `sr', and `sqrtex'.
6562         Fix `radicalex'.
6564         * doc/groff.texinfo, man/groff_diff.man: Document that `radicalex'
6565         and `sqrtex' are overlapping glyphs.
6567 2003-01-04  Werner LEMBERG  <wl@gnu.org>
6569         * font/devdvi/generate/texsy.map: Add `is'.
6570         * font/devps/symbolmap: Regenerated.
6571         * font/devdvi/*TC, MI, S: Regenerated.
6573         * tmac/dvi.tmac: Remove `is'.
6575 2003-01-03  Werner LEMBERG  <wl@gnu.org>
6577         `is' is now a text symbol (only relevant for dvi).  The math variant
6578         can be accessed with `integral'.
6580         * font/devX*/S: Regenerated.
6581         * font/devdvi/generate/texex.map: Remove `is'.
6582         * font/devdvi/EX: Updated.
6583         * font/devhtml/R.proto, font/devutf8/R.proto: Add `integral'.
6584         * font/devlj4/generate/special.map: Ditto.
6585         * font/devlj4/S: Regenerated.
6586         * font/devps/generate/textmap: Add `integral'.
6587         * font/devps/S: Regenerated.
6589         * tmac/dvi.tmac: Define `is'.
6591         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Add `integral'.
6593         * src/preproc/tbl/main.cc (process_format): Fix error message.
6595 2003-01-02  Werner LEMBERG  <wl@gnu.org>
6597         * font/devhtml/R.proto, font/devutf8/R.proto: Add `ne' and `nc'.
6598         * font/devps/textmap: Fix entries for `ne' and `nc'.
6599         * font/devps/symbolmap: Regenerated.
6601         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list),
6602         src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Add `18',
6603         `38', `58', `78', `-+', `|=', `nc', `ne'.
6605         * tmac/dvi.tmac: Add `nm', `ne', `nc'.
6606         Use `schar' for `aq'.
6607         * tmac/ps.tmac, tmac/X.tmac: Add `nc' and `ne'.
6608         * tmac/ec.tmac: Add `SC' to special fonts for `CW' and `CWI'.
6609         * tmac/tty.tmac: Add `ne'.
6611         * src/roff/troff/node.cc (make_glyph_node): Test with `get_macro'
6612         for fallback glyphs.
6614 2002-12-29  Werner LEMBERG  <wl@gnu.org>
6616         Add glyph `|='.
6618         * font/devX*/*: Regenerated.
6619         * font/devdvi/generate/ec.map: Remove `eq'.
6620         * font/devdvi/generate/texsy.map: Make `~=' the same as `~~'.
6621         Assign `|=' to position 39.
6622         * font/devdvi/*EC, S: Regenerated.
6623         * font/devhtml/R.proto, font/devutf8/R.proto: Add `|='.
6624         * font/devlj4/generate/special.map: Make `~=' the same as `~~'.
6625         Assign `|=' to position 549.
6626         * font/devps/generate/textmap, font/devps/enerate/symbolmap: Remove
6627         `equalmath'.
6628         Add `uni2243' for `|='.
6630         * tmac/ec.tmac: Add `eq'.
6631         * tmac/dvi.tmac: Add `=~'.
6632         * tmac/tty-char.tmac, tmac/ps.tmac, tmac/X.tmac, tmac/lbp.tmac: Add
6633         `|='.
6635 2002-12-21  Werner LEMBERG  <wl@gnu.org>
6637         * font/devdvi/generate/tc.map: Remove `**'.
6638         * font/devdvi/*TC: Regenerated.
6639         * font/devhtml/R.proto, font/devutf8/R.proto: Add `18', `38', `58',
6640         `78', `<<', `>>'.
6641         * font/devutf8/NOTES: Updated.
6643         * src/roff/troff/charinfo.h (charinfo): Add `setx_macro' function.
6644         Don't give default parameter to `set_macro'.
6645         * src/roff/troff/input.cc (do_define_character): Use `setx_macro'
6646         instead of `set_macro'.
6647         (charinfo::setx_macro): Implement it.
6648         (charinfo::set_macro): Don't change `mode'.
6650         * tmac/tty.tmac: Add `18', `38', `58', `78', `<<', `>>'.
6651         * tmac/ps.tmac, tmac/X.tmac: Add `<<', `>>'.
6652         * tmac/dvi.tmac: Define `!=' with `.schar'.
6654 2002-12-20  Werner LEMBERG  <wl@gnu.org>
6656         * font/devX*/S: Regenerated.
6657         * font/devdvi/generate/ec.map: Remove `pl'.
6658         * font/devdvi/generate/tc.map: Remove `mi', `14', `12', `34'.
6659         * font/devdvi/*{TC,EC}: Regenerated.
6660         * font/devhtml/R.proto: Add `-+'.
6661         Remove double entries for `rk', `lk', `lt', `rt', `rb', `lb'.
6662         * font/devlbp/*: Remove `or'.
6663         * font/devlj4/generate/special.map: Remove `or'.
6664         * font/devlj4/S: Regenerated.
6665         * font/devps/generate/textmap: Add `fiveeighths', `oneeighth',
6666         `seveneighths', `threeeighths'.
6667         Remove `plusmath'.
6668         Replace `minusplus' with `uni2213'.
6669         * font/devps/symbolmap: Regenerated.
6670         * font/devutf8/R.proto: Replace `shc' with unnamed glyph.
6671         Add `-+'.
6673         * src/roff/troff/charinfo.h (charinfo): Add `is_normal' inline
6674         function.
6675         * src/roff/troff/node.cc (troff_output_file::put_char_width):
6676         Call glyph_color and fill_color even if tcommand_flag isn't set.
6677         (make_node, node::add_char): Check not ci->is_fallback but
6678         ci->is_normal.
6680         * tmac/lj4.tmac, tmac/lbp.tmac: Define `or'.
6681         * tmac/ec.tmac: Add .rchar entry for `f/'.
6682         Don't remove `12', `14', `34'.
6683         Define `pl' to be always roman.
6684         * tmac/ps.tmac (ps-frac, ps-frac-mono): New macros.
6685         Define `18', `38', `58', `78'.
6686         * tmac/tty.tmac: Add `-+'.
6687         * tmac/dvi.tmac: Define `f/'.
6688         (dvi-frac): Use `f/'.
6689         * tmac/X.tmac (X-frac, X-frac-mono): New macros.
6690         Define `18', `38', `58', `78'.
6692 2002-12-15  Colin Watson  <cjwatson@debian.org>
6694         * contrib/pic2graph/pic2graph.sh: Add missing `;;'.
6696 2002-12-10  Werner LEMBERG  <wl@gnu.org>
6698         Add glyph `tno', a textual variant of `no'.
6700         * font/devX*/*: Regenerated.
6701         * font/{devcp1047,devlatin1,devutf8,devhtml}/R.proto: Add `tno'.
6702         * font/devdvi/generate/{tc.map: Replace `no' with `tno'.
6703         * font/devdvi/generated/{texsy,textex}.map: Add `tno'.
6704         * font/devdvi/*: Regenerated.
6705         * font/devlbp/*: Add `tno'.
6706         * font/devlj4/generate/tex.map: Replace `no' with `tno'.
6707         * font/devlj4/*: Regenerated.
6708         * font/devps/generate/textmap: Replace `no' with `tno'.
6709         * font/devps/generate/symbolchars: Add `no'.
6710         * font/devps/*: Regenerated.
6712         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Add `tno'.
6714         * tmac/cp1047.tmac, tmac/latin1.tmac: Replace `no' with `tno'.
6715         * tmac/tty-char.tmac: Add entry for `tno' and `3d'.
6717         * NEWS: Updated.
6719         * tmac/dvi.tmac: Replace most `\\' with `\E'.
6720         Add definition for `sd'.
6721         * tmac/X.tmac, tmac/ps.tmac: Replace most `\\' with `\E'.
6723         * tmac/eqnrc <dvi>: Use `integral' instead of `is' glyph.
6725 2002-12-08  Werner LEMBERG  <wl@gnu.org>
6727         * tmac/an-old.tmac (TH): Use integer value for `IN' if in nroff
6728         mode to avoid rounding errors.
6729         (an-do-tag, an-do-tag-html, RS, RE): Remove redundant `.br'.
6731         * src/roff/groff/groff.man, src/roff/nroff/nroff.man,
6732         src/roff/troff/troff.man: Improve documentation of -T.
6734 2002-12-07  Jeff Conrad  <jeff_conrad@msn.com>
6736         * src/roff/groff/pipeline.c: Don't define `const' for _WIN32.
6737         (run_pipeline) [_WIN32]: Provide working function without `fork'.
6739 2002-12-06  Werner LEMBERG  <wl@gnu.org>
6741         * font/devps/generate/freeeuro.sfd: Make dimensions of Euro.symbol
6742         glyphs compatible to Adobe's Euro fonts (scaling them down a bit).
6743         Scaling Euro.sansserif glyphs down to have the same height as
6744         digits.
6745         Removed unnecessary points; added some extrema.
6747         * font/devps/EURO, font/devps/freeeuro.afm, font/devps/freeeuro.pfa:
6748         Regenerated.
6750 2002-12-04  Werner LEMBERG  <wl@gnu.org>
6752         * font/devps/generate/freeeuro.sfd: Add glyphs `Euro.symbol.slanted'
6753         and `Euro.symbol.bold.slanted'.
6754         Improve some glyph offsets and widths.
6755         * font/devps/EURO, font/devps/freeeuro.afm, font/devps/freeeuro.pfa:
6756         Regenerated.
6757         * font/devps/generate/Makefile (freeeuro.afm freeeuro.pfa): Fix
6758         typo.
6759         * font/devps/generate/sfdtopfa.pe: Generate PFA in current
6760         direcory.
6762         * tmac/europs.tmac: Updated to new glyph indices.
6763         Use Euro.symbol for font familiy `A'.
6765         * doc/groff.texinfo: Minor improvements.
6767 2002-12-02  Werner LEMBERG  <wl@gnu.org>
6769         * font/devdvi/generate.tc.map: s/%O/%0/.
6770         * font/devdvi/*TC: Regenerated.
6772         * src/roff/troff/div.cc (init_div_requests): Sorted.
6774         * tmac/dvi.tmac: Remove `Ye'.
6775         * tmac/ec.tmac: Remove `Ye'.
6776         Add .rchar entry for `de'.
6778         * man/groff.man, man/groff_diff.man: Document register `.pe'.
6779         * doc/groff.texinfo: Document registers `.pe', `.n', and `.w'.
6780         * NEWS: Updated.
6782 2002-11-30  Werner LEMBERG  <wl@gnu.org>
6784         Add PS font for various Euro glyphs.
6786         * font/devps/generate/freeeuro.sfd: New master font file for
6787         pfaedit.
6788         * font/devps/generate/sfdtopfa.pe: New conversion script for
6789         pfaedit.
6790         * font/devps/generate/Makefile (FONTS): Add `EURO'.
6791         (EURO, freeeuro.afm, freeeuro.pfa): New rules.
6792         * font/devps/freeeuro.pfa, font/devps/freeeuro.afm: Generated from
6793         `freeeuro.sfd'.
6794         * font/devps/EURO: Generated from `freeeuro.afm'.
6795         * font/devps/download: Add `freeuro.pfa'.
6796         * font/devps/Makefile.sub (NORMALFILES): Adde `EURO' and
6797         `freeeuro.pfa'.
6799         * tmac/europs.tmac: New file.
6800         * tmac/ps.tmac: Include `europs.tmac'.
6801         * tmac/Makefile.sub (DISTFILES): Add `europs.tmac'.
6803 2002-11-29  Werner LEMBERG  <wl@gnu.org>
6805         * font/devdvi/generate/texsy.map: Remove `lh' and `rh'.
6806         * font/devdvi/S: Regenerated.
6807         * font/devhtml/R.proto: Fix `CR' and `ci'.
6808         Add `OK'.
6809         * font/devps/generate/textmap: Fix `lh', `rh', and `sq'.
6810         Remove `bs'.
6811         * font/devps/symbolmap: Regenerated.
6812         * font/devutf8/R.proto: Fix `CR' and `ci'.
6813         Add `OK'.
6814         * font/devutf8/NOTES: Updated.
6816         * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Fix `CR' and
6817         `ci'.
6818         Add `OK'.
6819         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Ditto.
6821         * tmac/dvi.tmac: Add `lh' and `rh'.
6822         * tmac/Xps.tmac: Fix `lh' and `rh'.
6823         * tmac/X.tmac: Add `OK'.
6824         * tmac/lj4.tmac: Ditto.
6826 2002-11-24  Werner LEMBERG  <wl@gnu.org>
6828         * font/devX*/S: Regenerated.
6829         * font/devascii/R.proto, font/devcp1047/R.proto: Remove glyphs `lb',
6830         `lc', `lf', `lk', `lt', `rb', `rc', `rf', `rk', and `rt'.
6831         * font/devdvi/generate/texsy.map: Remove `or' glyph.
6832         * font/devdvi/S: Regenerated.
6833         * font/devhtml/R.proto, font/devutf8/R.proto: Add/fix glyphs
6834         `parenlefttp', `parenleftex', `parenleftbt', `parenrighttp',
6835         `parenrightex', `parenrightbt', `bracketlefttp', `bracketleftex',
6836         `bracketleftbt', `bracketrighttp', `bracketrightex',
6837         `bracketrightbt', `bracelefttp', `braceleftmid', `braceleftbt',
6838         `braceex', `braceleftex', `bracerightex', `bracerighttp',
6839         `bracerightmid', `bracerightbt', `lt', `lk', `lb', `rt', `rk',
6840         `rb', and `bv'.
6841         * src/roff/troff/glyphuni.cc, src/roff/troff/uniglyph.cc: Ditto.
6842         * font/devutf8/NOTES: Updated.
6843         * font/devlj4/generate/special.map: Add glyph `braceex'.
6844         * font/devlj4/S: Regenerated.
6846         * tmac/tty-char.tmac: Add glyphs `lf', `rf', `lc', and `rc'.
6848 2002-11-14  Werner LEMBERG  <wl@gnu.org>
6850         * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Add `va'
6851         and `vA'.
6852         Fix code for `an'.
6853         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Ditto.
6855         * doc/texinfo.tex: New version from texinfo 4.3.
6856         * doc/groff.texinfo: Updated for texinfo 4.3.
6857         Use @tie{} where appropriate.
6858         * font/devdvi/generate/ec.map: Don't include `or' and `bv'.
6859         * font/devdvi/generate/tc.map: Remove `rn'.
6860         * font/devdvi/*TC, font/devdvi/*EC: Regenerated.
6861         * font/devhtml/R.proto, font/devutf8/R.proto: Add `vA'.
6862         Fix code for `an'.
6863         * font/devX100/*, font/devX100-12/*, font/devX75/*,
6864         font/devX75-12/*: Regenerated.
6866         * tmac/dvi.tmac: Add special fonts `SA' and `SB'.
6867         Use .char (again) for `br', `ul', `rn', `or', and `ru'.
6868         Improve definition of `an'.
6869         * tmac/ps.tmac: Use .char (again) for `br', `ul', `rn', `or', and
6870         `ru'.
6871         * tmac/lj4.tmac: Use .char (again) for `br', `ul', `rn', and `ru'.
6872         * tmac/X.tmac: Add definition for `or'.
6873         * tmac/Xps.tmac: Undo change 2002-11-05.
6874         * tmac/lbp.tmac: Add definitions for `br', `rn', `ul', and `ru'.
6876 2002-11-11  Werner LEMBERG  <wl@gnu.org>
6878         * src/roff/troff/node.cc (troff_output_file::put_char): Always
6879         call flush_tbuf.
6881 2002-11-10  Werner LEMBERG  <wl@gnu.org>
6883         Added three new requests `schar', `fschar', and `rfschar'.  `schar'
6884         defines a glyph which is searched after the check for fonts declared
6885         with `.special' (and before the check for all mounted special
6886         fonts).  `fschar' defines a glyph for a particular font which is
6887         searched after the check for fonts declared with `.fspecial' (and
6888         before the check for fonts declared with `.special').  `rfschar'
6889         removes glyphs defined with `fschar'.
6891         * src/roff/troff/token.h (char_mode): New enum.
6892         Declare do_define_character.
6893         * src/roff/troff/charinfo.h (charinfo): Replace `fallback' with
6894         `mode'.
6895         (charinfo::is_fallback): Updated.
6896         (charinfo::is_special): New method.
6897         * src/roff/troff/input.cc (do_define_character): Add and use
6898         optional second parameter used as a prefix for font-specific glyph
6899         names.
6900         (define_character, define_fallback_character): Updated.
6901         (define_special_character): New function.
6902         (init_input_requests): Add `schar'.
6903         (charinfo::charinfo, charinfo::set_macro): Updated.
6904         * src/roff/troff/node.cc: Include `stringclass.h'.
6905         (make_glyph_node): Handle special glyphs defined with `.schar' and
6906         `.fschar'.
6907         (define_font_special_character, remove_font_special_character): New
6908         functions.
6909         (init_node_requests): Sorted.
6910         Add `fschar' and `rfschar'.
6911         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
6912         Document new requests.
6914         * font/devhtml/R.proto, font/devutf8/R.proto: Add `va'.
6915         * tmac/dvi.tmac: Add `va' for CW and CWI (using `.fschar').
6917 2002-11-08  Werner LEMBERG  <wl@gnu.org>
6919         Added new font `SC' (cmtex10) to devdvi.
6921         * devdvi/generate/Makefile (FONTS): Add `SC'.
6922         (SC): New rule.
6923         * devdvi/generate/textex.map: New map file for cmtex.
6924         * devdvi/SC: New.
6925         * devdvi/Makefile.sub (DEVFILES): Updated.
6926         * tmac/dvi.tmac: Add fspecial entries for SC.
6927         Add `MI', `S' and `CW' to the `special' call.  Otherwise, `SC' is
6928         found before `S' since the font position of `SC' is lower due to the
6929         gaps in DESC's `font' line.
6930         * tmac/ec.tmac: Add a `special' call.
6931         * NEWS: Updated.
6933         * font/devhtml/R.proto: Remove double entry for `ti'.
6934         * tmac/tty.tmac: Add entries for `IJ', `ij', and `bq'.
6935         * tmac/tty-char.tmac: Remove entry for `bq'.
6936         * tmac/lbp.tmac: Add entries for `lq', `rq', `fo', `fc', and `em'.
6937         * tmac/ec.tmac: Don't remove `aq' glyph.
6938         * tmac/X.tmac: Fix entry for `em'.
6939         Add entries for `fo' and `fc'.
6940         * tmac/dvi.tmac: Add entries for `em', `en', `hy', `fo', and `fc'.
6942         * doc/groff.texinfo, man/groff.man, man/groff_diff.man: Fix
6943         documentation of `special' and `fspecial' requests.
6945 2002-11-05  Werner LEMBERG  <wl@gnu.org>
6947         * font/devascii/R.proto, font/devcp1047/R.proto,
6948         font/devlatin1/R.proto: Remove entry for `.i'.
6949         * font/devdvi/generate/textt.map: Add entry for `ad'.
6950         * font/devdvi/generate/texr.map, font/devdvi/generate/texb.map,
6951         font/devdvi/generate/texi.map: Add dummy glyph name `slash@for@l'.
6952         We need this for getting kerning values to compose `/l' and `/L'.
6953         * font/devdvi: Regenerated font definition files for CM fonts.
6954         * font/devhtml/R.proto: Add entries for "'C", "'c", `IJ', and `ij'.
6955         * font/devutf8/R.proto: Ditto.
6956         Remove double entry for `ti'.
6958         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Fix entries
6959         for (groff) ligatures, `la', and `ra'.
6960         Add "'C", "'c", `IJ', and `ij'.
6961         Remove double entry for `ti'.
6962         * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Remove all
6963         double entries.
6964         Add "'C", "'c", `IJ', and `ij'.
6965         Fix entries for (groff) ligatures, `la', and `ra'.
6967         * tmac/ps.tmac (ps-achar): New macro.
6968         Define "'c" and "'C".
6969         * tmac/tty.tmac: Add entry for `.i'.
6970         * tmac/X.tmac (X-achar): New macro.
6971         Define "'c", "'C", and `:Y'.
6972         Add entries for `IJ' and `ij'.
6973         * tmac/Xps.tmac (Xps-achar): New macro.
6974         Define "'c" and "'C".
6975         Add entries for `IJ' and `ij'.
6976         * tmac/lbp.tmac (lbp-achar): New macro.
6977         Add fallback characters for all groff ligatures and many other
6978         glyphs.
6979         * tmac/dvi.tmac: Fix definitions of `_' and `ul'.
6980         Add entries for `/l' and `/L'.
6981         Define "'c" and "'C".
6982         Add entries for `IJ' and `ij'.
6984 2002-11-02  Larry Kollar  <kollar@alltel.net>
6986         * PROBLEMS: Document how to solve Mac OS X compilation problems.
6988 2002-11-02  Werner LEMBERG  <wl@gnu.org>
6990         Adding support for composite glyphs: \[xxx yyy ...] and the
6991         `composite' request.
6993         * src/roff/troff/glyphuni.cc: New file for mapping groff glyph names
6994         to Unicode-based glyph names.
6995         * src/roff/troff/uniglyph.cc: New file for mapping Unicode-based
6996         glyph names to groff glyph names.
6997         * src/roff/troff/uniuni.cc: New file for canonically decomposing
6998         Unicode-based glyph names.
6999         * src/roff/troff/unicode.cc, src/roff/troff/unicode.h: New files
7000         for handling Unicode glyph names.
7001         * src/roff/troff/input.cc: Include unicode.h.
7002         (composite_glyph_name): New function.
7003         (token::next) <'['>: Handle Unicode glyph names and composite
7004         glyphs.
7005         (composite_dictionary): New dictionary for the `composite' request.
7006         (composite_request): Implement `composite' request.
7007         (init_input_requests): Add `composite'.
7008         Alphabetically sorted.
7009         * src/roff/troff/env.cc (tabs_save, tabs_restore): Removed (already
7010         commented out).
7011         (init_env_requests): Alphabetically sorted.
7012         Removed `tas' and `tar' (already commented out).
7013         * src/roff/troff/Makefile.sub: Updated.
7015 2002-10-31  Ruslan Ermilov  <ru@FreeBSD.org>
7017         * src/roff/nroff/nroff.man, src/roff/nroff/nroff.sh: Fix description
7018         of options.
7020 2002-10-29  Werner LEMBERG  <wl@gnu.org>
7022         Fix computation of .trunc register.  Additionally, its value (and
7023         the value of the .ne register) is now always set before entering the
7024         trap.
7026         * src/roff/troff/div.cc (diversion::need): Set `truncated_space' and
7027         `needed_space' before calling `space'.
7028         (top_level_diversion::space): Remove special code for 'sp before the
7029         first page.
7030         Call `begin_page' with the discarded space as a parameter.
7031         (top_level_diversion::begin_page): Add optional parameter to set
7032         `truncated_space'.
7033         * src/roff/troff/div.h: Updated.
7035         * doc/groff.texinfo: Improve documentation of .sp, \n[.trunc], and
7036         \n[.ne].
7038         * tmac/an-old.tmac (SH, SS, TP, IP, HP, TS): Undo change 2002-10-26.
7039         (LP): Remove superfluous call to `br'.
7040         * tmac/doc-common (doc-paragraph): Undo change 2002-10-26.
7041         * tmac/doc.tmac (Bd, Bl, doc-set-vertical-and-indent): Ditto.
7043 2002-10-26  Werner LEMBERG  <wl@gnu.org>
7045         * tmac/doc-ditroff: Remove useless switch/variable -rC.
7046         (doc-setup-header): Don't set page register `%'.
7047         * tmac/doc-nroff: Remove variable `C'.
7048         (doc-setup-page-layout): Set doc-header-space to .5i unconditionally.
7049         (doc-setup-header): Don't set page register `%'.
7050         Don't call `bp'.
7051         * tmac/doc-common (doc-header): Call `ns'.
7052         (doc-paragraph): Protect .sp with .br so that it survives traps
7053         possibly set by the user.
7054         * tmac/doc.tmac (Bd, Bl, doc-set-vertical-and-indent): Ditto.
7056         * tmac/doc*: Replace ' with . for consistency if no effect.
7058 2002-10-26  Werner LEMBERG  <wl@gnu.org>
7060         * tmac/an-old.tmac (SH, SS, TP, IP, HP, TS): Protect .sp with .br
7061         so that it survives traps possibly set by the user.
7063         * src/roff/troff/node.cc: Fix the changes from 2002-10-23.
7064         (troff_output_file::set_font): Call flush_tbuf if necessary.
7065         (troff_output_file::fill_color, troff_output_file::glyph_color): Call
7066         flush_tbuf and do_motion only if necessary.
7067         (troff_output_file::start_special,
7068         troff_output_file::put_char_width, troff_output_file::put_char,
7069         troff_output_file::draw): Updated.
7070         (word_space_node::tprint, space_node::tprint, hmotion_node::tprint,
7071         vmotion_node::tprint): Undo change 2002-10-23.
7073 2002-10-25  Werner LEMBERG  <wl@gnu.org>
7075         * tmac/www.tmac (DC): Fix case of overlapping images.
7077 2002-10-23  Werner LEMBERG  <wl@gnu.org>
7079         * src/roff/troff/node.cc (troff_output_file::fill_color,
7080         troff_output_file::glyph_color): Set current color before testing
7081         color_flag.
7082         (troff_output_file::put_char_width, troff_output_file::put_char,
7083         troff_output_file::draw): Don't call flush_tbuf and/or do_motion
7084         before glyph_color.
7085         (troff_output_file::file_color, troff_output_file::glyph_color):
7086         Call do_motion.
7087         (word_space_node::tprint, space_node::tprint, hmotion_node::tprint,
7088         vmotion_node::tprint): Move first, then call fill_color.
7090 2002-10-20  Werner LEMBERG  <wl@gnu.org>
7092         * doc/groff.texinfo, man/groff_tmac.man: Document that it is not
7093         possible to use multiple main macro packages.
7095 2002-10-19  Werner LEMBERG  <wl@gnu.org>
7097         * src/devices/grops/ps.cc (cmyk_flag): New global variable.
7098         (ps_printer::set_color): Set `cmyk_flag' for CMY and CMYK colors.
7099         (ps_printer::~ps_printer): Emit `%%Extensions: CMYK' if `cmyk_flag'
7100         is set.
7101         * font/devps/prologue.ps (Fk, Ck): Enclose definitions with a
7102         `where' construction since `cmyksetcolor' is a PS Level 2 operator.
7104 2002-10-16  Werner LEMBERG  <wl@gnu.org>
7106         * NEWS, doc/webpage.ms: Updated.
7108 2002-10-14  Werner LEMBERG  <wl@gnu.org>
7110         * src/roff/troff/node.cc (troff_output_file::put_char_width,
7111         troff_output_file::put_char, troff_output_file::fill_color,
7112         troff_output_file::glyph_color): Handle case where color pointer
7113         is null.
7115 2002-10-13  Ruslan Ermilov  <ru@FreeBSD.org>
7117         Add the new -r option to grotty.  It is similar to the -i option
7118         except it tells grotty(1) to use the `reverse video' attribute to
7119         render italic fonts.
7121         * src/devices/grotty/tty.cc (reverse_flag): New global variable.
7122         (SGR_REVERSE, SGR_NO_REVERSE): New macros.
7123         (tty_printer::make_underline, tty_printer::put_color,
7124         tty_printer::end_page): Use it.
7125         (main): Add -r switch.
7126         (usage): Updated.
7127         * src/devices/grotty/grotty.man: Document it.
7129 2002-10-11  Ruslan Ermilov  <ru@FreeBSD.org>
7131         * src/roff/troff/env.cc (hyphen_trie::read_patterns_file): Add
7132         cast to `unsigned char' to properly read patterns with 8bit
7133         characters.
7135 2002-10-08  Werner LEMBERG  <wl@gnu.org>
7137         * REVISION: Increased to 2.
7139 Local Variables:
7140 version-control: never
7141 coding: latin-1
7142 End: