* src/devices/xditview/TODO, NEWS: Updated.
[s-roff.git] / ChangeLog
blob18df28dd41efc556e2f61e2bf7818fc23d6076ea
1 2007-06-12  Werner LEMBERG  <wl@gnu.org>
3         * src/devices/xditview/TODO, NEWS: Updated.
4         * src/devices/xditview/Makefile.sub (install_data, uninstall_sub):
5         Handle `GXditview-color'.
6         * src/devices/xditview/gxditview.man: Updated.
8         * m4/groff.m4 (GROFF_APPRESDIR_CHECK): Updated.
9         * m4/codeset.m4, m4/glibc21.m4, m4/iconv.m4, m4/lib-link.m4: Updated
10         from `gnulib' git repository.
12         * configure.ac: Updated.
13         * configure: Regenerated (using autoconf 2.61).
15         * config.guess, config.sub: Updated from `config' CVS repository.
16         * config.rpath, install-sh, mkinstalldirs: Updated from `gnulib' git
17         repository.
19 2007-06-12  Tadziu Hoffmann  <hoffmann@usm.uni-muenchen.de>
21         * src/devices/xditview/GXditview.ad: Split off color definitions
22         into...
23         * src/devices/xditview/GXditview-color.ad: This new file.
25 2007-06-08  Fabrice Ménard  <menard.fabrice@wanadoo.fr>.
27         * tmac/fr.tmac: Handle chapter system for `me'.
29 2007-06-05  Tadziu Hoffmann  <hoffmann@usm.uni-muenchen.de>
31         * src/devices/xditview/xditview.c (main): Add support for
32         accelerators.
34         * src/devices/xditview/GXditview.ad: Updated.
35         Make widget more colourful.
37 2007-05-30  Werner LEMBERG <wl@gnu.org>
39         * tmac/groff_mdoc.man: Convert `-' to `\-' where appropriate.
40         Recommend `tbl' instead of `-column' lists for more complicated
41         cases.
43 2007-05-21  Werner LEMBERG  <wl@gnu.org>
45         * src/devices/grops/ps.cpp (ps_printer::set_char): Handle subfonts
46         correctly.
48 2007-04-10  Werner LEMBERG  <wl@gnu.org>
50         In pic, make rounded boxes work with colors.  Reported by Urs Eggli
51         <Urs.Eggli@zuerich.ch>.
53         * src/preproc/pic/common.h (common_output), src/preproc/pix/output.h
54         (output): Add color parameter to `rounded_box' member function.
56         * src/preproc/pic/common.cpp (common_output::rounded_box): Use it.
58         * src/preproc/pic/object.cpp (box_object::print): Pass `color_fill'
59         to `out->rounded_box'.
61 2007-04-09  Michail Vidiassov  <master@iaas.msu.ru>
63         * font/devps/generate/textmap: Add Greek letters and some more.
65         * src/utils/afmtodit/afmtodit.tables: Change values of `Delta',
66         `Omega', and `mu' to the ones from aglfn.txt.
68 2007-04-08  Keith Marshall  <keith.d.marshall@ntlworld.com>
70         * tmac/s.tmac (SN): Define unconditionally.
71         (SN-STYLE): New string; define.
73         * NEWS, tmac/groff_ms.man, doc/groff.texinfo (SN-STYLE): Document it.
75 2007-03-22  Werner LEMBERG  <wl@gnu.org>
77         * tmac/pspic.tmac: Fix harmless numeric overflow warning.  Reported
78         by Jörg van den Hoff <j.van_den_hoff@fzd.de>.
80 2007-03-20  Werner LEMBERG  <wl@gnu.org>
82         * tmac/trace.tmac (rn): Added.
83         (nr, ds, ds1, as, as1, substring): Restore escape character while
84         executing the macro.
85         (nr): Remove dead code.
87         * src/preproc/eqn/box.cpp (box::top_level): Use \E in string
88         definitions to make them traceable.
90 2007-03-19  Werner LEMBERG  <wl@gnu.org>
92         * src/roff/troff/input.cpp (get_copy): Add third argument to control
93         whether \E shall be expanded.
94         (get_char_for_escape_name): Allow \E.
96 2007-03-15  Werner LEMBERG  <wl@gnu.org>
98         * tmac/s.tmac (MO, CH, pg*OH, pg*EH, pg*OF, pg*EF, *, [., .],
99         par*define-font-macro, \[hooko]): Use \E to make it traceable.
101         (ref*field): Add argument to control the space between previous and
102         current argument.
103         Update all callers.
104         (ref*add-N): Fix handling of opening parenthesis.  Problem reported
105         by Jörg van den Hoff <j.van_den_hoff@fzd.de>.
107 2007-03-14  Werner LEMBERG  <wl@gnu.org>
109         * tmac/trace.tmac (als): Added.
110         (de, de1, am, am1): Make traced macros aliased with .als work.
112 2007-02-25  Werner LEMBERG  <wl@gnu.org>
114         * src/devices/xditview/TODO: Add some more items.
116         * Makefile.comm (.man.n): Add @APPRESDIR@.
117         Sort entries.
119         * src/devices/xditview/gxditview.man: Document GXditview resource
120         file.
121         Other documentation enhancements based on a patch from Jörg.
123 2007-02-25  Tadziu Hoffmann  <hoffmann@usm.uni-muenchen.de>
124             Joerg van den Hoff <j.van_den_hoff@fzd.de>
126         * src/devices/xditview/GXditview.ad: Make all keys work regardless
127         of the current mouse position.
129 2007-02-20  Werner LEMBERG  <wl@gnu.org>
131         * tmac/groff_man.man: Revised to improve visual appearance.
132         Reduce use of future tense.
134         * tmac/groff_trace.man: Revosed to improve visual appearance.
136 2007-02-19  Eric S. Raymond  <esr@snark.thyrsus.com>
138         Make groff.man viewer-portable.
140         * tmac/groff.man: Eliminate use of .eo/.ec.
141         (.REQ): Surround args 2 through N with quotes.  This will enable us
142         not to rely on the shift request, which is nonportable.
143         (ExecFF): Remove.  The code is simpler without it.
145 2007-02-18  Eric S. Raymond  <esr@snark.thyrsus.com>
147         * tmac/groff_www.man: Viewer-portability fixes.
149 2007-02-16  Eric S. Raymond  <esr@snark.thyrsus.com>
151         * man/groff.man: Remove some unneeded code and a no-longer-used
152         inclusion of the www macros.
154 2007-02-15  Eric S. Raymond  <esr@snark.thyrsus.com>
156         * contrib/groffer/perl/groffer.man, contrib/groffer/perl/groffer.man:
157         Fix non-portable `if' expressions.
159 2007-02-13  Eric S. Raymond  <esr@snark.thyrsus.com>
161         Use an-ext.tmac macros in groffer.man.
163         * contrib/groffer/perl/groffer.man,
164         contrib/groffer/perl/groffer.man: Replace ShellCommand with .EX/.EE
165         pairs.
166         Don't use .TP for examples, as some viewers won't handle a display
167         macro as a tag line.  Use .SY/.OP/.YS rather than elaborate custom
168         macros.
170 2007-02-12  Werner LEMBERG  <wl@gnu.org>
172         * src/preproc/tbl/table.cpp (compute_span_width): Fix use of
173         AVAILABLE_REG.
174         (table::compute_widths): Simplify.
176 2007-02-11  Werner LEMBERG  <wl@gnu.org>
178         * src/preproc/tbl/table.h: Don't include `stdbool.h'.
179         (table): Replace `bool' type with `char' for orthogonality.
180         Update all users.
182         * src/preproc/tbl/table.cpp (block_entry::do_divert): Fix usage of
183         AVAILABLE_REG and COLCOUNT_REG.
184         (table::table): Fix order call of initializers.
185         (table::~table): Deallocate `blockflag'.
187 2007-02-09  Eric S. Raymond  <esr@snark.thyrsus.com>
189         A try at the new rule for block column allocation is now enabled by
190         the new `experimental' global option: The horizontal space up to the
191         right margin which is not used by columns without text blocks is
192         evenly distributed to the columns with text blocks.
194         It doesn't work right as yet; there appears to be some error in the
195         computation of `3avail', the available line length.  The purpose of
196         this patch is (a) to make experimenting with other formulas easy,
197         and (b) leave the infrastructure for flag `experimental' in place
198         for future experiments.  Do not document any behavior associated
199         with this flag!
201         * src/preproc/tbl/table.h: Include `stdbool.h'.
202         (table): Make `flags' public.
203         Add `count_block_columns' function.
204         Add `blockflag' array.
205         Add `EXPERIMENTAL' enumeration value.
207         * src/preproc/tbl/table.cpp (AVAILABLE_REG, COLCOUNT_REG): New
208         macros.
209         (table_entry): New member `parent' so that class and subclass
210         members can set a parent field.  Update all users.
211         (block_entry::do_divert): Handle `EXPERIMENTAL' flag.
212         (block_entry::do_width): Set the parent's `blockflag'.
213         (table::allocate): Handle `blockflag'.
214         (table::count_block_columns): New function.
215         (compute_span_width): Adjust AVAILABLE_REG.
216         (table::compute_widths): Handle COLCOUNT_REG and AVAILABLE_REG.
218         * src/preproc/tbl/main.cpp (process_options): Handle `experimental'
219         option.
221 2007-02-08  Zhao, Yu (William)  <yzhao2@alcatel-lucent.com>
223         * src/devices/grodvi/dvi.cpp (draw_dvi_printer::draw) <'e'>: Set
224         line thickness.
226 2007-02-08  Werner LEMBERG  <wl@gnu.org>
228         * man/groff_out.man (offset): Make it work reliably.
230 2007-02-07  Eric S. Raymond  <esr@snark.thyrsus.com>
232         * man/groff_out.man: Simplify some font changes so \fP is less
233         likely to do something surprising.
234         
235         * man/groff_out.man: We can simplify the command macros still
236         further if we stop trying to hide structural requests inside them. 
237         Also, fix some instances of \} at start of line without a dot, and
238         make some font changes explicit in strings.
239         
240         * man/groff_out.man: Cleanup -- remove now-unneeded uses of .do and
241         .cp.
242         
243         * man/groff_out.man: Final step: Reduce x-command, get rid of eo/ec
244         calls and fix macros to do without them.  File should now be
245         viewer-portable.
246         
247         * man/groff_out.man: Fourth step: Eliminate use of eqn in favor of
248         micromotions that produce the same visual result and can be lifted
249         to XML-DocBook.
250         
251         * man/groff_out.man: Third step: Reduce Da-comand, fix a
252         call-sequence bug in the original.
253         
254         * man/groff_out.man: Second step: Reduce D-commmand and D-command+,
255         move font-change escapes to portable form.
257         * man/groff_out.man: First step in macro simplification; eliminate
258         list1..n, simplify .offset and .index_offset so they no longer
259         require groff-specific features or eqn (instead, use troff
260         micromotions for subscripting).
262 2007-02-06  Eric S. Raymond  <esr@snark.thyrsus.com>
264         * src/preproc/eqn/eqn.man: Minor corrections.
266         * chem.man, pdfroff.man, ditroff.man, groff_diff.man, groff.man,
267         groff_out.man, groff_tmac.man, roff.man, groff.man, grog.man,
268         an-ext.tmac, groff_man.man, groff_man.n, groff_trace.man: Change
269         .UR/.UE and .MT/.ME so the start macro no longer takes a second
270         argument that is pasted to the end of the generated text.  Instead,
271         the end macro takes an argument that does the same thing.
273 2007-02-05  Eric S. Raymond  <esr@snark.thyrsus.com>
275         * src/preproc/eqn/lex.cpp, src/preproc/eqn/eqn.man:
276         By popular demand, make ... set three lower dots again
277         and introduce a new predefined macro 'cdots' to set
278         three centered dots.
280 2007-02-05  Werner LEMBERG  <wl@gnu.org>
282         * src/preproc/eqn/eqn.man: Revised.
284         * src/preproc/eqn/text.cpp (map, special_char_boc::output): Use
285         `const'.
286         (spacing_type): Fix typo.
287         (special_to_entity): Use `const'.
288         Remove unused variable.
289         * src/preproc/eqn/other.cpp (font_box::output): Use `const'.
291 2007-02-05  Eric S. Raymond  <esr@snark.thyrsus.com>
293         * src/devices/grotty/grotty.man: \m[] and \M[] aren't portable,
294         which is a shame as the effect was cute.
296 2007-02-04  Eric S. Raymond  <esr@snark.thyrsus.com>
298         * man/groff_tmac.man, man/groff_diff.man: Portability conversion;
299         rip out over-elaborate macrology, use .EX/.EE and .UR/.UE where
300         possible, remove preamble declarations and macros that are no
301         longer needed.  Conversion checked using the protocol described in
302         tmac/TESTING-HINTS.
304 2007-02-03  Werner LEMBERG  <wl@gnu.org>
306         * tmac/an-old.tmac (LP, IP, HP): Use .ns to suppress additional
307         vertical space.
309 2007-02-03  Eric S. Raymond  <esr@snark.thyrsus.com>
311         * tmac/groff_man.man: Documented the extension macros, and 
312         added portability advice.
314         * MORE.STUFF: More-stuff entries for doclifter and pic2plot.
317         Add support for MathML output to eqn.  
319         The strategy used is very simple and relies on the fact that the box
320         models of eqn and Presentation MathML differ in only trivial ways. 
321         It leaves the grammar and existing internal object structures
322         unchanged.  A new global, `output_format', is defined as an
323         enumerated type with values {troff, mathml}.  Most of the functions
324         and methods that emit actual output acquire a top-level conditional,
325         dispatching on this global, which has one arm for troff mode and one
326         for MathML mode.  In most cases the MathML arm is drastically
327         simpler.
329         (This strategy could be easily generalized to support other output
330         formats.  TeX is a possibility that leaps to mind.)
332         The only even moderately tricky changes are in the lexer.  Some of
333         the predefined macros used constructs like `up', `down', `fwd',
334         `back', and `vcenter' that have no equivalents in MathML.  I
335         attacked this problem in these ways:
337         1. I eliminated three uses of `back' to compose characters in favor
338            of using equivalent groff specials `\(<<', `\(>>', and `\(<>'
339            that did not exist when these macros were written.  (This will be
340            a quality improvement for troff users.)
342         2. I eliminated one use of `vcenter' by using \\(md.  (Likewise...)
344         3. I then split the table of pre-definitions in three; one large
345            common table and two small troff-specific and MathML-specific
346            tables.  Use of troff-only operations (up, down, back, fwd,
347            vcenter) is now confined to the former.  The latter now uses
348            `size big' and drops out the explicit positioning operations,
349            counting on MathML processors to do them.
351         POTENTIAL TROUBLE SPOTS:
353         Here are notes for reviewers on places I'm not 100% sure I've done
354         the right thing:
356         * In the process of preparing the troff table, I translated three
357           definitions (dot_def, dotdot_def, and utilde def) that previously
358           used explicit \v escapes to use `up' and `down' instead.  I
359           modeled the new definitions on the way `vec' and `dyad' work, but
360           it's possible I got something subtle wrong.
362         * I'm not certain the MathML implementation of font_box::output() is
363           right, because I don't quite get what the switcheroo between
364           `current_roman_font' and `old_roman_font' is supposed to
365           accomplish.  It does seem to generare good MathML, though.
367         Finally, I made one purely cosmetic change in `text.cpp'; I replaced
368         with an enum some magic numbers for spacing types that I thought
369         were too ugly to live.
371         REMAINING ISSUES:
373         The entirety of eqn is translated when `-TMathML' is specified, 
374         with the following exceptions...
376         Limitations that cannot be fixed include non-support for special,
377         up/down/fwd/back, and vcenter.
379         Limitations that might be fixable include non-support for mark and
380         lineup.  I will investigate further, but if these can be implemented
381         at all it's going to be in a very complicated and nasty way.
383         The way character boxes are output means that each digit of a
384         multi-digit number gets its own <mn></mn> tag pair in the MathHTML. 
385         While this is not technically wrong for Presentation MathML, it is
386         ugly and inefficient.  Fixing this will require implementing a
387         little state machine in the `text.cpp' output method.
389         * src/preproc/eqn/box.cpp, src/preproc/eqn/delim.cpp, 
390         src/preproc/eqn/eqn.h, src/preproc/eqn/eqn.man, 
391         src/preproc/eqn/lex.cpp, src/preproc/eqn/limit.cpp,
392         src/preproc/eqn/list.cpp, src/preproc/eqn/main.cpp, 
393         src/preproc/eqn/other.cpp, src/preproc/eqn/over.cpp, 
394         src/preproc/eqn/pile.cpp, src/preproc/eqn/script.cpp,
395         src/preproc/eqn/sqrt.cpp, src/preproc/eqn/text.cpp,
396         src/preproc/eqn/eqn.man: MathML output mode.
398         * NEWS: Document it.
400 2007-02-02  Eric S. Raymond  <esr@snark.thyrsus.com>
402         * src/roff/groff/groff.man: Converted to use .SY/.OP/.YS
403         and for cross-viewer portability.  Conversion checked 
404         using the protocol described in tmac/TESTING-HINTS.
406 2007-02-02  Werner LEMBERG  <wl@gnu.org>
408         * tmac/an-ext.tmac (ME): Don't use `\:'.
410         * contrib/chem/chem.man, contrib/groffer/roff2.man,
411         src/roff/grog/grog.man: Further refinements and normalizations.
413 2007-02-02  Eric S. Raymond  <esr@snark.thyrsus.com>
415         * contrib/groffer/roff2.man, contrib/chem/chem.man, 
416         src/roff/grog/grog.man: Converted to use .SY/.OP/.YS
417         and for cross-viewer portability.  Conversion checked 
418         using the protocol described in tmac/TESTING-HINTS.
420 2007-02-01  Eric S. Raymond  <esr@thyrsus.com>
422         * tmac/TESTING-HINTS: Added.
424 2007-02-01  Eric S. Raymond  <esr@thyrsus.com>
426         Enable the support for Bell archaisms on .SC, so the `-r bell'
427         switch is no longer needed to format old AT&T papers like
428         the EQN user guide.
430         * tmac/s.tmac (.SC, .UC, .P1, .P2): Updated.
432         * tmac/groff_ms.man, doc/groff.texinfo, NEWS: Updated.
434 2007-02-01  Eric S. Raymond  <esr@thyrsus.com>
436         Add some Bell labs extensions to the -ms macros.
438         * tmac/s.tmac (.SC, .UC, .P1, .P2) [bell]: New macros.
440         * tmac/groff_ms.man, doc/groff.texinfo, NEWS: Document `-r bell'.
442 2007-01-30  Werner LEMBERG  <wl@gnu.org>
444         * tmac/an-ext.tmac (\n[EX]): Rename to \n[mX].
445         (\n[mH]): New register (set if grohtml is used).
446         (\n[SY]): Rename to \n[mS].
447         (\n[a]): Rename to \n[mA].
448         (\n[i]): Rename to \n[mI].
449         (mU): New auxiliary input trap macro.
450         (UR, UE): Replace stub with real definition.
451         (URL): Remove.
452         (MT, ME): New macros.
453         (MTO): Remove.
454         (EX, EE): Don't insert vertical space.
455         Use a register to store (and restore) the current font.
457         * man/ditroff.man, man/groff_diff.man, man/roff.man: Revised, based
458         on patches from Eric Raymond.
459         Fix URL addresses.
460         * contrib/pdfmark/pdfroff.man: Updated.
462 2007-01-22  Gaius Mulley  <gaius@glam.ac.uk>
464         * tmac/an-old.tmac (an-trap, HP): Make `HP' work as expected.
466 2007-01-22  Werner LEMBERG  <wl@gnu.org>
468         * tmac/an-ext.tmac: Protect against being sourced twice.
469         (URL, EE): Use always two backslashes.
470         (MTO): New macro.
472 2007-01-21  Werner LEMBERG  <wl@gnu.org>
474         * contrib/pdfmark/pdfroff.man: Revised, based on a patch from Eric
475         Raymond.  It now uses the new macros from an-ext.tmac.  This is the
476         first of a series of man patches which Eric has contributed.
478 2007-01-16  Werner LEMBERG  <wl@gnu.org>
480         * tmac/an-ext.tmac: Remove code for grodvi.
481         (SY): Fix typos.
482         Don't insert empty line.
483         (URL, TQ): Fix typos.
485 2007-01-14  Werner LEMBERG  <wl@gnu.org>
487         * tmac/an-ext.tmac: New file, containing extension macros
488         for -man.  See discussion on the groff mailing list for
489         background information.
490         * tmac/an-old.tmac: Load an-ext.tmac.
491         Decorate .ds and as with comment escapes where appropriate.
492         * tmac/Makefile.sub (NORMALFILES): Add an-ext.tmac.
494 2007-01-05  Werner LEMBERG  <wl@gnu.org>
496         * src/preproc/tbl/tbl.man: Document .T# and \n[TW].
498 2007-01-04  Gaius Mulley  <gaius@glam.ac.uk>
500         Make -me macros ready for grohtml.
502         * tmac/e.tmac: Load devtag.tmac.
503         (need_eo_h, need_eo_tl, need_tl): New registers.
504         (check_need_title, (x-html, )x-html, xp-html): New macros.
505         (@h, hl, ip, @p, sh, (b, (l, EQ, EN, TS, TE, PS, PE, GS, GE, r, i,
506         b, rb, bi, bx, (x, )x, xp): Adapt for use with grohtml.
507         (bp): Rename to @b only if output device is not html.
509 2007-01-01  Werner LEMBERG  <wl@gnu.org>
511         * man/groff_font.man: Document empty lines.
513         * src/utils/afmtodit/afmtodit.pl: Always print a header comment at
514         the very beginning of the output.
515         [!$opt_x]: Fix typo.
517         * font/devps/*: Regenerate font definition files.
519 2007-01-01  Werner LEMBERG  <wl@gnu.org>
521         * font/devps/generate/Makefile (AFMTODIT): Use -c flag.
523         * font/devps/*: Regenerate font definition files.
525 2006-12-31  Werner LEMBERG  <wl@gnu.org>
527         * Makefile.in (oldfontdir): New variable.
528         (MDEFINES): Add $(oldfontdir).
529         (uninstall_dirs): Remove `current' link.
530         Remove $(oldfontdir).
532         * Makefile.comm (oldfontsubdir): New variable.
533         (install_dev): Install files collected in $(OLDDEVFILES) into
534         $(oldfontsubdir).
535         (uninstall_dev): Remove data in $(oldfontsubdir).
536         (.man.n): Handle @OLDFONTDIR@.
538         * src/devices/grodvi/grodvi.man, src/devices/grohtml/grohtml.man,
539         src/devices/grolbp/grolbp.man, src/devices/grolj4/grolj4.man,
540         src/devices/grotty/grotty.man, src/devices/xditview/gxditview.man:
541         Document GROFF_FONT_PATH.
543         * src/devices/grops/grops.man: Document GROFF_FONT_PATH and
544         old font description files.
546         * font/devps/Makefile.sub (OLDDISTFILES, OLDDEVFILES): New
547         variables.
549         * font/devps/old/*: New directory, holding the previous version
550         of the 35 Adobe core font description files.
552         * font/devps/*: Regenerated the 35 Adobe core fonts, using the
553         Adobe-Core35_AFMs-229.tar.bz2 bundle from ftp.dante.de.
555         * NEWS: Document font update.
557 2006-12-31  Werner LEMBERG  <wl@gnu.org>
559         * font/devps/generate/Makefile (symbolsl.afm): Use $(srcdir).
561         * Makefile.comm (fonts): New (empty) target.
562         * Makefile.in (TARGETS): Add `fonts'.
564         * MANIFEST: Add `chem'.
566         * doc/groff.texinfo (Changing Fonts): Font translations with .ftr
567         can't be chained.
569 2006-12-26  Werner LEMBERG  <wl@gnu.org>
571         * src/preproc/grn/hdb.cpp: Include gprint.h later.  From NetBSD.
573 2006-12-19  Werner LEMBERG  <wl@gnu.org>
575         Add support for German.  For activation, simply use -mde or -mden
576         (for traditional and new orthgraphy, respectively) as the last
577         macro package.
579         * tmac/de.tmac, tmac/den.tmac, tmac/hyphen.det, tmac/hyphen.den,
580         tmac/hyphenex.det: New files, partly taken from CTAN.
581         * LICENSES: Updated list of hyphenation patterns.
582         * man/groff_tmac.man: Mention de.tmac and den.tmac.
583         * NEWS: Updated.
585 2006-12-11  Werner LEMBERG  <wl@gnu.org>
587         Support up to 32 macro arguments in pic (and up to 16 on EBCDIC
588         hosts).
590         * src/preproc/pic/lex.cpp (ARG1): Redefine.  Update all users.
591         (MAX_ARG): New macro.  Use it everywhere to replace hard-coded
592         limit of 9 arguments.
593         (process_body): Handle argument numbers with more than a single
594         digit.
595         (interpolate_macro_with_args): Protect against exceeding number of
596         arguments.
598         * NEWS, src/preproc/pic/pic.man, doc/pic.ms: Document it.
600 2006-12-10  Werner LEMBERG  <wl@gnu.org>
602         * Makefile.in (site.exp, docheck): Commented out.  Not working
603         currently.
604         (check): Just emit dummy message.
606 2006-12-08  Werner LEMBERG  <wl@gnu.org>
608         During installation, create soft link from <version> to `current' in
609         <datadir>/groff.
611         * Makefile.comm (install): Renamed to...
612         (do_install): This.
613         (prefix_must_exist): Removed.  Code moved to Makefile.in.
615         * Makefile.in (TARGETS): Remove `install'.
617         (install): New target which first creates the directory given by
618         --prefix, then calling `make' to do the installation, and finishing
619         with the creation of the soft link.
621 2006-11-21  Werner LEMBERG  <wl@gnu.org>
623         * doc/Makefile.sub (uninstall_sub): Fix names for info files.
625 2006-11-18  Werner LEMBERG  <wl@gnu.org>
627         * man/roff.man, doc/groff.texinfo: Improve history of roff, based on
628         information from Tom Van Vleck <thvv@multicians.org>.
630 2006-11-16  Werner LEMBERG  <wl@gnu.org>
632         * tmac/62bit.tmac: New macro package.
633         * tmac/Makefile.sub (NORMALFILES): Add it.
634         * NEWS: Document it.
636         * tmac/trace.tmac: Protect against being loaded again.
637         (nr): Always show result.
639         * doc/groff.texinfo (Input Encodings): Document latin-5.
641         * man/grof_tmac.man: Document sv, latinX, cp1047, 60bit, ec.
643 2006-11-13  Werner LEMBERG  <wl@gnu.org>
645         * doc/groff.texinfo (Page Location Traps) [.wh]: Give more details
646         on negative trap positions.
648 2006-11-10  Werner LEMBERG  <wl@gnu.org>
650         * Makefile.comm (.man.n): Handle @DATASUBDIR@.
652 2006-11-09  Werner LEMBERG  <wl@gnu.org>
654         * INSTALL: Move information about external installation from
655         INSTALL.gen into this file.
656         Updated.
658         * INSTALL.gen: Update to new version (from texinfo CVS).
660 2006-11-09  Bernd Warken
662         * INSTALL.gen: Extend the file by information on `external
663         installation'.  Reorder the installation instruction as `normal
664         installation'. 
666 2006-11-08  Werner LEMBERG  <wl@gnu.org>
668         * doc/Makefile.sub (install_data): Take care of proper paths while
669         installing info files.  Bug reported by Bernd Warken.
671 2006-11-06  Bernd Warken
673         * src/roff/grog/grog.pl: Rewrite.
674         - Call by `#! /usr/bin/env perl'.  That isn't replaced.
675         - Rename usage() to version().
676         - Use warnings.
677         - For `use strict', start all global variables with an upper case
678         character.  Use `my' for all variables.  Use several new variables.
679         - Add option `-h'.
680         - Add copyright to GPL and Emacs comment.
681         - Handle several `-m*' options.
682         - Fix handling of `-ms' and `-mm'.  Add .TL and .NH.
683         - Allow options after file names.
684         - Allow only one `-' parameter (standard input).
685         - Add option abbreviations.
686         - Expand the usage information.
687         - Add `chem'.
688         - Add single quote "'" as additional first character and allow
689         arbitrary space after the first character.
691         * src/roff/grog/grog.sh: Rewrite.
692         - Remove option `-e' of `sed'.
693         - Allow file names with space characters.
694         - Add option `-h'.
695         - Add copyright to GPL.
696         - Handle several `-m*' options.
697         - Fix handling of `-ms' and `-mm'.  Add .TL and .NH.
698         - Allow options after file names.
699         - Allow only one `-' parameter (standard input).
700         - Add option abbreviations.
701         - Expand the usage information.
702         - Add `chem'.
703         - Add single quote "'" as additional first character and allow
704         arbitrary space after the first character.
706         * src/roff/grog/Makefile.sub:
707         - Add copyright to GPL.
708         - Remove `grog:'.  Move `grog.old:' to `grog:' in order to have a
709         fair chance to choose between the shell version and the Perl
710         version of `grog'.  This is now again comparable to grog in groff
711         version 1.10.
713         * src/roff/grog/grog.man: Rewrite.
714         - Move the license to GPL.
715         - New sections: OPTIONS, DETAILS, EXAMPLES, COPYING.
716         - Take over some setup and macros from `groffer'.
717         - Add information on options.
719 2006-10-28  Werner LEMBERG  <wl@gnu.org>
721         * tmac/trace.tmac: Improve tracing of `.nr'.
722         Trace `.substring' also.
724         * NEWS: Updated.
726 2006-10-28  Bernd Warken
728         * man/roff.man, src/roff/groff/groff.man: Add `chem', fix position
729         of groff development site, fix fonts.
731         * News: Add information on `chem' and `groffer'.
733 2006-10-26  Bernd Warken
735         * Makefile.in (OTHERDIRS, NOMAKEDIRS): Add `chem' bundle.
737 2006-10-26  Werner LEMBERG  <wl@gnu.org>
739         Add `\%^' escape to handle the parameters to a macro as a string
740         argument.
742         * src/roff/troff/input.h (DOUBLE_QUOTE): New special character.
744         * src/roff/troff/input.cpp (input_iterator, input_stack,
745         macro_iterator): Add `space_follows_arg' member function.
746         (macro_iterator::add_arg): Add parameter to set the `space_follows'
747         flag.
748         (arg_list): Add member `space_follows'.
749         Update constructor and all callers.
750         (decode_args): Store discarded double quotes.
751         (interpolate_args): Handle DOUBLE_QUOTE.
752         Add `\%^' escape.
753         (get_copy, token::next, composite_glyph_name): Handle DOUBLE_QUOTE.
755         * tmac/trace.tmac: Trace .nr, .ds, .ds1, .as, .as1.
757         * docs/groff.texinfo (Parameters), man/groff.man,
758         man/groff_diff.man, NEWS: Document it.
760 2006-10-24  Bernd Warken
762         * Makefile.in (NOMAKEDIRS): Add groffer subdirectories.
764 2006-10-24  Werner LEMBERG  <wl@gnu.org>
766         * tmac/groff_trace.man: Mention problem with `\\\\'.
768 2006-10-23  Werner LEMBERG  <wl@gnu.org>
770         * doc/groff.texinfo (Expressions): Improve documentation of `!'.
772         * tmac/trace.tmac (return): Don't call `substring'.
774 2006-09-10  Werner LEMBERG  <wl@gnu.org>
776         * src/roff/troff/input.cpp (read_size): Revert previous change
777         w.r.t. `\s-[-...]'.
779         * doc/groff.texinfo (Fractional Size Types): Clarify syntax of \s.
781 2006-09-09  Werner LEMBERG  <wl@gnu.org>
783         * src/roff/troff/input.cpp (read_size): Fix `\s[-\n[.s]]' so that it
784         behave the same as `\s-[\n[.s]]' (this is, emit a warning and set
785         point size to 1).  Reported by Gunnar Ritter.
786         Also catch `\s-[-...]' and friends (causing an error).
788 2006-09-06  Werner LEMBERG  <wl@gnu.org>
790         * src/roff/troff/env.cpp (environment::do_break): Insert zero-width
791         space only if there is no previous space.  This fixes a bug which
792         caused unwanted filling of the last line in a paragraph.  Thanks to
793         Gunnar Ritter for an analysis.
795 2006-09-03  Werner LEMBERG  <wl@gnu.org>
797         * src/roff/groff/groff.cpp (main): Pass -U flag to pic also.
798         Reported by Jennifer Sayers <jenjen@isu.usyd.edu.au>.
800 2006-09-01  Nick Stoughton  <nick@msbit.com>
801             Werner LEMBERG  <wl@gnu.org>
803         Add a request `pev' to print environment information (similar to
804         `pnr' and `ptr' to print number registers and traps).
806         * src/roff/troff/env.h (environment): Add member function print_env.
808         * src/roff/troff/env.cpp: (environment::print_env): New function to
809         print a given environment state.
810         (print_env): New global function to iterate through the
811         environments, printing each one.
812         (init_env_requests): Register `pev'.
814         * doc/groff.texinfo (Debugging), man/groff.man, man/groff_diff.man,
815         NEWS: Document `pev' request.
817 2006-09-01  Bernd Warken
819         * src/preproc/soelim/soelim.cpp (usage): Fix option argument of
820         `-I' to `dir'.
822 2006-09-01  Werner LEMBERG  <wl@gnu.org>
824         * src/preproc/pic/main.cpp (usage): Add missing options.
826 2006-08-25  Werner LEMBERG  <wl@gnu.org>
828         * src/preproc/soelim/soelim.man: Document how to insert `\' and ` '
829         in file names.
831 2006-08-19  Werner LEMBERG  <wl@gnu.org>
833         * configure: Regenerated.
835 2006-08-18  Keith Marshall  <keith.d.marshall@ntlworld.com>
837         * m4/groff.m4 (GROFF_MAKEINFO): Correct `makeinfo version testing
838         logic; it previously caused an `expr' syntax error, if no version of
839         `makinfo' was present.  Also, remove dependency on `makeinfo' in VPATH
840         builds, if an up to date `groff.info' is present in either `builddir'
841         or in `srcdir'.
843 2006-08-12  Tadziu Hoffmann  <hoffmann@usm.uni-muenchen.de>
845         * font/devps/prologue.ps: Add BPhook.
847         * src/devices/grops/grops.man: Document BPHook.
848         Reorder some sections for better readability.
850 2006-08-12  Werner LEMBERG  <wl@gnu.org>
852         * src/include/lib.h (getlocale): New macro.
853         (setlocale, LC_ALL, LC_CTYPE) [!HAVE_SETLOCALE]: Define, as
854         suggested by Bruno.
856         * src/preproc/preconv/preconv.cpp (main): Use getlocale.
858 2006-08-11  Werner LEMBERG  <wl@gnu.org>
860         Add new flag to .cflags to enable hyphenation without looking at
861         hcode values.
863         * src/roff/troff/charinfo.h (charinfo): New enumeration value
864         `IGNORE_HCODES'.
865         New member function `ignore_hcodes'.
867         * src/roff/troff/node.cpp (break_char_node::add_self,
868         node::add_char): Updated.
870         * doc/groff.texinfo, man/groff_diff.man, NEWS: Document it.
872 2006-08-09  Werner LEMBERG  <wl@gnu.org>
874         Support composite Unicode characters again.  Reported by Colin.
876         * font/devhtml/R.proto: Renamed to...
877         * font/devhtml/R.in: This.
879         * font/devutf8/R.proto: Renamed to...
880         * font/devutf8/R.in: This.
881         Add `charset' line.
883         * font/make-Rproto: New script.
884         * font/devhtml/R.proto, font/devutf8/R.proto: Generated.
886 2006-07-26  Werner LEMBERG  <wl@gnu.org>
888         * README: Fix description of CVS access.  Reported by Joachim.
890 2006-07-11  Werner LEMBERG  <wl@gnu.org>
892         Add a request `.fzoom' and a number register `.zoom' to magnify
893         fonts.
895         * src/include/font.h (font): Add member variable `zoom'.
896         Add member functions `set_zoom' and `get_zoom'.
897         Remove `static' attribute from `scale' member function.
899         * src/libs/libgroff/font.cpp (font::font): Updated.
900         (scale_round): New version with three parameters to handle zoom
901         factor.
902         (font::scale, font::get_width): Handle zoom factor.
903         (font::set_zoom, font::get_zoom): New functions.
904         (font::load): Handle `zoom' while computing `space_width'.
906         * src/roff/troff/env.h: Declare `env_get_zoom'.
907         (environment): Add member function `get_zoom'.
909         * src/roff/troff/env.cpp (environment::get_zoom): New function.
910         (init_env_requests): Initialize `.zoom' register.
912         * src/roff/troff/node.cpp (font_info): New member functions
913         `set_zoom' and `get_zoom'.
914         (tfont): New member function `get_zoom'.
915         (env_get_zoom): New function.
916         (troff_output_file::set_font): Handle zoom factor.
917         (font_zoom_request): New function.
918         (init_node_requests): Initialize `fzoom' request.
920         * docs/groff.texinfo (Changing Fonts), man/groff.man,
921         man/groff_diff.man, NEWS: Document `fzoom' request and `.zoom'
922         register.
924         * src/roff/troff/TODO: Updated.
926 2006-07-10  Werner LEMBERG  <wl@gnu.org>
928         * doc/groff.texinfo (Drawing Requests): Improve documentation of
929         \D'P ...'.
931 2006-07-02  Werner LEMBERG  <wl@gnu.org>
933         * man/groff_tmac.man: Document usage of .PSPIC within diversions.
935 2006-07-01  Werner LEMBERG  <wl@gnu.org>
937         * tmac/pspic.tmac: Make .PSPIC work for all devices.
938         Print image file name for devices which don't support PS image
939         inclusion.
940         Handle multiple inclusions.
941         Add lots of comments.
943         * tmac/dvi.tmac, tmac/html.tmac, tmac/ps.tmac: Don't load
944         pspic.tmac.
946         * tmac/troffrc: Load pspic.tmac.
948         * man/groff_tmac.man: Update .PSPIC documentation.
950         * NEWS: Updated.
952 2006-06-29  Werner LEMBERG  <wl@gnu.org>
954         * src/roff/troff/input.cpp (interpolate_macro):
955         s/probably/possibly/, as suggested by Keith.
957 2006-06-28  Werner LEMBERG  <wl@gnu.org>
959         Add support for \D'p...' to grotty.
961         * src/devices/grotty/grotty.cpp (tty_printer::draw): Move most of
962         its code to...
963         (tty_printer::line): This function.
964         (tty_printer::draw): Rewritten; just call either draw_line or
965         draw_polygon.
966         (tty_printer::draw_line, tty_printer::draw_polygon): New functions.
968         * src/devices/grotty/grotty.man, NEWS: Document it.
970 2006-06-27  Werner LEMBERG  <wl@gnu.org>
972         * src/preproc/refer/command.h (have_bibliography): New variable
973         declaration.
975         * src/preproc/refer/command.cpp (bibliography_command): Set
976         `have_bibliography'.
978         * src/preproc/refer/refer.cpp: Initialize `have_bibliography'.
979         (output_references): Emit warning only if `have_bibliography' is
980         set.
982 2006-06-15  Michail Vidiassov  <master@iaas.msu.ru>
984         * fonts/devps/Makefile.sub (DISTFILES): Add freeeuro.afm.
985         * fonts/devps/generate/Makefile (clean): Don't remove symbolsl.afm
986         and zapfdr.afm.
988 2006-06-15  Werner LEMBERG  <wl@gnu.org>
990         * src/preproc/tbl/tbl.man: Document limitations of .TS/.TE within a
991         macro (as suggested by Tadziu Hoffmann).
993 2006-06-12  Werner LEMBERG  <wl@gnu.org>
995         * src/preproc/tbl/tbl.man: Add example for use of .TS/.TE within a
996         macro (as suggested by Tadziu Hoffmann).
998 2006-06-05  Werner LEMBERG  <wl@gnu.org>
1000         * tmac/strip.sed: Strip `\#' also.
1002         * doc/groff.texinfo (Operators in Conditionals): Document usage of
1003         \? for string comparison.
1005 2006-06-04  Werner LEMBERG  <wl@gnu.org>
1007         * doc/groff.texinfo: Add more index entries for copy-in mode.
1008         (Changing Fonts) <.ft>: Document that a font definition file must
1009         not be called `DESC'.
1011 2006-05-31  Werner LEMBERG  <wl@gnu.org>
1013         * src/roff/troff/input.cpp (token::next) <\N>: Catch negative values
1014         here.
1016         * doc/Makefile.sub (EXAMPLEFILES): Move gnu.eps to...
1017         (PROCESSEDEXAMPLEFILES): Here.
1019 2006-05-30  Werner LEMBERG  <wl@gnu.org>
1021         * src/libs/libgroff/font.cpp (font::load): Reject fonts called
1022         `DESC'.
1023         Reduce number of false positives for `.if F ...' conditionals.
1024         Improve warning messages.
1026 2006-05-29  Werner LEMBERG  <wl@gnu.org>
1028         * tmac/Makefile.sub: Add copyright notice.
1029         (NORMALFILES): Add man.tmac and ms.tmac.
1030         (SPECIALFILES): Remove man.tmac and ms.tmac.
1031         (CLEANADD): Remove man.tmac-sed and ms.tmac-sed.
1032         (install_data, uninstall_sub): Don't handle man.tmac and ms.tmac
1033         specially.
1034         (stamp-sed): Don't handle man.tmac and ms.tmac.
1035         Remove obsolete components in sed's regexp.
1037         * doc/Makefile.sub (EXAMPLEFILES): Add gnu.eps.
1039         * Makefile.in (OTHERDIRS, NOMAKEDIRS): Add hdtbl.
1041 2006-05-28  Werner LEMBERG  <wl@gnu.org>
1043         * doc/groff.texinfo (History): Correct death circumstances of Joe
1044         Ossanna.
1046 2006-05-27  Werner LEMBERG  <wl@gnu.org>
1048         * tmac/an-old.tmac (an-do-tag): Simplify.
1050 2006-05-26  Werner LEMBERG  <wl@gnu.org>
1052         * tmac/an-old.tmac (an-do-tag): Make margin characters work.
1053         (an-header, an-p-footer): Use named environment.
1055         * src/roff/troff/env.cpp (environment::copy): Copy margin character
1056         node.
1058 2006-05-21  Werner LEMBERG  <wl@gnu.org>
1060         * tmac/trace.tmac (de1): Fix serious typo (.di -> .do) and minor
1061         omissions.
1063 2006-05-11  Keith Marshall  <keith.d.marshall@ntlworld.com>
1065         * src/roff/groff/groff.man: Remove superfluous word `intermediate'.
1067 2006-05-10  Keith Marshall  <keith.d.marshall@ntlworld.com>
1069         * src/roff/groff/groff.man: Update copyright notice.
1070         Improved wording to describe effect of `-Z' option.
1072 2006-05-06  Werner LEMBERG  <wl@gnu.org>
1074         * tmac/www.tmac: Decorate `.ds' with trailing `\"' where missing.
1075         Normalize handling of `"' in arguments.
1076         (PIMG): Remove debug message.
1077         Simplify code.
1079 2006-05-05  Werner LEMBERG  <wl@gnu.org>
1081         * src/devices/grohtml/post-html.cpp (page::add_and_encode): Don't
1082         swallow character immediately after `\[...]'.
1083         Simplify code.
1085 2006-05-02  Gaius Mulley  <gaius@glam.ac.uk>
1087         * tmac/www.tmac (PIMG): Fix the HTML device specific components.
1089 2006-05-02  Larry Kollar  <kollar@alltel.net>
1091         * tmac/www.tmac (PIMG): Really default to `-C' if the alignment
1092         option is missing.
1094 2006-04-30  Michail Vidiassov  <master@iaas.msu.ru>
1096         * src/utils/afmtodit/afmtodit.pl: New option `-c' to add font
1097         information as a comment in output.
1098         * src/utils/afmtodit/afmtodit.man, NEWS: Document it.
1100 2006-04-26  Werner LEMBERG  <wl@gnu.org>
1102         * src/devices/grohtml/post-html.cpp (html_printer::~html_printer):
1103         Handle current_paragraph only if it is non-NULL.
1105         * src/libs/libdriver/input.cpp (parse_x_command <'F'>, do_file
1106         <'F'>): Use `get_extended_arg' to behave as documented.  Reported by
1107         Bill Ward <william.a.ward.jr@erdc.usace.army.mil>.
1110         Surround the (pseudo) file name for the .pso request with `<' and
1111         `>'.
1113         * src/roff/troff/node.cpp (real_output_file, troff_output_file): Add
1114         second parameter to `really_put_filename' and `put_filename'.
1115         (troff_output_file::really_put_filename): Emit `<' and `>' around
1116         filename if second argument is set.
1117         * src/roff/troff/node.h: Updated.
1119         * src/roff/troff/input.cpp (file_iterator::file_iterator,
1120         file_iterator::set_location): Update to changes in node.cpp.
1122 2006-04-25  Tetsurou Okazaki  <okazaki@FreeBSD.org>
1124         * src/preproc/preconv/preconv.cpp (do_file): Fix conditional
1125         preprocessor expression (I18N -> HAVE_ICONV).
1126         (main): Fix handling of option `-h'.
1127         Fix conditional preprocessor expression.
1129 2006-04-04  Werner LEMBERG  <wl@gnu.org>
1131         Implement new number register `.br' which is set to 1 if a macro has
1132         been called as .foo and to 0 if called as 'bar.  This is useful for
1133         -mtrace so that requests can be reliably traced too.
1135         * src/roff/troff/input.cpp (input_iterator): Add virtual function
1136         `get_break_flag'.
1137         (macro_iterator): Add `with_break' member and `get_break_flag'
1138         function.
1139         Update constructors.
1140         (input_stack): Add function `get_break_flag'.
1141         (break_flag_reg): New number register class.
1142         (input_init_requests): Register `.br'.
1144         * src/roff/troff/TODO: Updated.
1146         * tmac/trace.tmac: s/!!sp/!!!sp/.
1147         Modify definitions of `de', `de1', `am', and `am1' to use \n[.br].
1149         * docs/groff.texinfo (Requests), man/groff.man, man/groff_diff.man,
1150         NEWS: Document it.
1152 2006-03-29  Werner LEMBERG  <wl@gnu.org>
1154         * src/devices/grops/ps.cpp: s/must not/should not/ in warning
1155         messages where appropriate.
1157 2006-03-28  Werner LEMBERG  <wl@gnu.org>
1159         * configure.ac: Call AC_PROG_EGREP.
1160         * configure: Regenerated.
1162         * Makefile.in (EGREP): New variable.
1163         (MDEFINES): Add $(EGREP).
1165         * src/roff/grog/grog.sh: Treat .TH between .TS and .TE properly
1166         (bug reported by Robert Goulding <Goulding.2@nd.edu>).
1167         Use @EGREP@.
1169         * src/roff/grog/Makefile.sub (grog, grog.old): Use $(EGREP).
1171 2006-03-27  Werner LEMBERG  <wl@gnu.org>
1173         Add two requests `.device' and `.devicem' which are equivalent to
1174         `\X' and `\Y', respectively.
1176         * src/roff/troff/input.cpp (device_request, device_macro_request):
1177         New functions.
1178         (init_input_requests): Register them.
1180         * doc/groff.texinfo (Postprocessor Access), man/groff_diff.man,
1181         man/groff.man, NEWS: Document them.
1183 2006-03-27  Gaius Mulley  <gaius@glam.ac.uk>
1185         * src/roff/troff/input.cpp (encode_char): Emit special characters
1186         for -Thtml as `\[...]'.
1187         * src/devices/grohtml/post-html.cpp (page::add_and_encode): Updated.
1189         * doc/groff.texinfo (Postprocessor Access) <\X>: Updated.
1191 2006-03-27  Werner LEMBERG  <wl@gnu.org>
1193         * tmac/Makefile.sub (NORMALFILES, SPECIALFILES): Add various missing
1194         files.
1196 2006-03-26  Werner LEMBERG  <wl@gnu.org>
1198         * doc/groff.texinfo (Writing Macros): More documentation on
1199         end-of-macro symbol of `.de'.
1200         (Diversions): Minor addition to `.di' description.
1202         * src/devices/grops/grops.man: Some clarifications regarding
1203         insertion of PostScript snippets.
1205 2006-03-25  Michail Vidiassov  <master@iaas.msu.ru>
1207         Add rules to generate `symbolsl.afm'.
1209         * fonts/devps/generate/zapfdr.sed,
1210         fonts/devps/generate/symbolsl.awk: New files.
1212         * fonts/devps/generate/Makefile (symbolfont, PRINTAFM): New
1213         variables.
1214         (SS, clean): Updated.
1215         (freeeuro.afm): Use $(srcdir).
1216         (symbolsl.afm): New rule.
1217         (zapfdr.afm): Use zapfdr.sed.
1219 2006-03-22  Dwight Aplevich  <aplevich@uwaterloo.ca>
1221         * src/preproc/pic/pic.y (expr <INT>): Fix code.
1223 2006-03-22  Jörgen Grahn <jgrahn@algonet.se>
1225         * tmac/sv.tmac: Add missing translations and activate support for
1226         other macro packages.
1228 2006-03-21  Francis GUDIN  <fgudin@nerim.net>
1230         * tmac/doc-syms (Dx): New macro to identify DragonFly.
1231         (doc-str-St--ieee1275-94, doc-str-St--isoC-amd1,
1232         doc-str-St--isoC-tcor1, doc-str-St--isoC-tcor2): New standard
1233         strings.
1234         (doc-operating-system-FreeBSD-5.5, doc-operating-system-FreeBSD-7.0,
1235         doc-operating-system-NetBSD-1.6.3, doc-operating-system-NetBSD-4.0
1236         doc-operating-system-DragonFly-*): New operating system strings.
1238         * tmac/groff_mdoc.man, NEWS: Document `Dx'.
1240 2006-03-21  Werner LEMBERG  <wl@gnu.org>
1242         * src/preproc/pic/pic.y (object_spec THEN): For compatibility with
1243         both DWB pic and dpic, make
1245           right;
1246           line then down;
1248         equal to
1250           right;
1251           line right then down;
1253         instead of
1255           right;
1256           line 0 then down;
1258         * doc/pic.ms: Document this.
1260 2006-03-20  Werner LEMBERG  <wl@gnu.org>
1262         * doc/pic.ms: With permission of Eric Raymond, put it under the
1263         GPL.
1265         * NEWS: Updated.
1267 2006-03-19  Werner LEMBERG  <wl@gnu.org>
1269         * src/preproc/pic/pic.y (expr <INT>): Really return integer part.
1271         * src/preproc/pic/objects.cpp (object_spec::make_line): Handle `at'
1272         attribute in combination with `with'.  Bug reported by Jennifer
1273         Sayers <jenjen@mail.usyd.edu.au>.
1275 2006-03-19  Miklos Somogyi  <msom@netspace.net.au>
1277         * doc/groff.texinfo (Manipulating Spacing): Improve documentation of
1278         `.sp'.
1280 2006-03-18  Werner LEMBERG  <wl@gnu.org>
1282         * LICENSE: Renamed to...
1283         * LICENSES: This.  Collect all licensing information in this file.
1284         * tmac/README, src/libs/snprintf/README: Removed.
1286         * src/devices/grops/grops.man: Add section how to install fonts.
1288         * src/utils/xtotroff/xtotroff.c: Add GPL.
1290 2006-03-17  Werner LEMBERG  <wl@gnu.org>
1292         * Makefile.comm (.y.cpp): Fix #line arguments in output.
1294 2006-03-13  Werner LEMBERG  <wl@gnu.org>
1296         * src/preproc/tbl/tbl.man: Mention default length of text blocks.
1298         * tmac/doc-common (Os): Add more Darwin versions.
1299         * tmac/groff_mdoc.man: Document them.
1301         * doc/groff.texinfo (Operators in Conditionals): Mention that `c'
1302         works with \N'...' also.
1303         * man/groff_diff.man: Ditto.  Remove use of future tense where
1304         possible.
1306 2006-03-12  Michail Vidiassov  <master@iaas.msu.ru>
1308         * fonts/devps/generate/make-zapfdr, fonts/devps/symbolsl.ps,
1309         fonts/devps/zapfdr.ps: Add `%%EndComments' line.
1311 2006-03-10  Larry Kollar  <kollar@alltel.net>
1313         * doc/groff.texinfo (Headers and footers): Document PT, HD, and BT.
1315 2006-03-10  Werner LEMBERG  <wl@gnu.org>
1317         * src/devices/grops/ps.cpp (ps_printer::do_exec, ps_printer::do_def,
1318         ps_printer::do_mdef): Overlong lines now cause a warning message,
1319         not an error.
1321 2006-03-09  Werner LEMBERG  <wl@gnu.org>
1323         * font/devps/generate/make-zapfdr: New script for generating
1324         `zapfdr.ps'.
1326 2006-03-08  Werner LEMBERG  <wl@gnu.org>
1328         * doc/groff.css (pre): Fix `background-color' value.
1330 2006-03-04  Larry Kollar  <kollar@alltel.net>
1332         * tmac/groff_ms.man: Document PT, HD, and BT.
1334 2006-03-04  Werner LEMBERG  <wl@gnu.org>
1336         * src/roff/troff/node.cpp (make_glyph_node): Improve warning message
1337         for single-letter glyph names.
1339 2006-03-02  Werner LEMBERG  <wl@gnu.org>
1341         * tmac/sv.tmac: New file; currently holding only the Swedish strings
1342         for -mm.
1343         * tmac/hyphen.sv: New hyphenation pattern file for Swedish, taken
1344         from CTAN.
1345         * tmac/README: Updated.
1347 2006-02-27  Werner LEMBERG  <wl@gnu.org>
1349         * tmac/trans.tmac (Liec, Letdate, Letns!14): Add it (for -mm).
1350         * tmac/fr.tmac: Add French translations.
1352         * tmac/composite.tmac: Add entry for `:'.
1354 2006-02-26  Werner LEMBERG  <wl@gnu.org>
1356         * doc/Makefile.sub (HTMLEXAMPLEFILESALL): New variable.
1357         (CLEANADD): Use it.
1358         (install_html, uninstall_sub): Updated.
1360 2006-02-26  Bruno Haible  <bruno@clisp.org>
1362         Introduce Unicode fonts.
1364         * font/devhtml/DESC.proto: Mark as unicode.
1365         * font/devhtml/R.proto: Remove all charset entries that are already
1366         in glyphuni.cpp.
1367         * font/devutf8/DESC.proto: Mark as unicode.
1368         * font/devutf8/R.proto: Remove all charset entries.
1369         * src/include/font.h (font): New static field `is_unicode'.
1370         Change order of fields.
1371         * src/libs/libgroff/font.cpp: Include unicode.h.
1372         (font::font): Update for changed order of fields.
1373         (font::contains, font::get_width, font::get_height, font::get_depth,
1374         font::get_italic_correction, font::get_left_italic_correction,
1375         font::get_subscript_correction, font::get_character_type,
1376         font::get_code, font::get_special_device_encoding): Handle both the
1377         explicitly enumerated glyphs and use general code for Unicode fonts.
1378         (font::load): Make the charset section optional when the font is
1379         declared unicode.
1380         (font::load_desc): Recognize the `unicode' attribute.
1381         * src/libs/libgroff/fontfile.cpp (font::is_unicode): New variable.
1383 2006-02-26  Claudio Fontana  <claudio@gnu.org>
1385         * Makefile.in: Add comment about DESTDIR.
1387         * Makefile.sub: Add DESTDIR to install and uninstall targets
1388         to support staged installations.
1389         * Makefile.comm: Likewise.
1390         * doc/Makefile.sub: Likewise.
1391         * contrib/eqn2graph/Makefile.sub: Likewise.
1392         * contrib/gdiffmk/Makefile.sub: Likewise.
1393         * contrib/grap2graph/Makefile.sub: Likewise.
1394         * contrib/pic2graph/Makefile.sub: Likewise.
1395         * src/devices/xditview/Makefile.sub: Likewise.
1396         * src/preproc/eqn/Makefile.sub: Likewise.
1397         * src/roff/grog/Makefile.sub: Likewise.
1398         * src/roff/nroff/Makefile.sub: Likewise.
1399         * src/utils/afmtodit/Makefile.sub: Likewise.
1400         * src/utils/indxbib/Makefile.sub: Likewise.
1401         * tmac/Makefile.sub: Likewise.
1403 2006-02-24  Werner LEMBERG  <wl@gnu.org>
1405         * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list): Use entry
1406         for \-.
1407         Remove commented out entries for \' and \` (there are no such glyph
1408         names).
1410         * src/libs/libgroff/uniglyph.cpp (unicode_to_glyph_list): Remove
1411         commented out entries for \' and \`.
1414         * */*: s/legal/valid/ where appropriate.
1416 2006-06-23  Werner LEMBERG  <wl@gnu.org>
1418         * font/devhtml/R.proto, font/devutf8/R.proto: Remove incorrect \'
1419         and \` entries.
1421 2006-02-22  Werner LEMBERG  <wl@gnu.org>
1423         Remove all remaining traces from the `shc' glyph.
1425         * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list),
1426         src/libs/libgroff/uniglyph.cpp (unicode_to_glyph_list): Remove
1427         entry for `shc'.
1429         * font/devlatin1/R.proto, font/devcp1046/R.proto: Replace `shc'
1430         entry with unnamed glyph.
1432         * tmac/html/tmac: Remove `shc' entry from call to `.cflags'.
1434         * src/preproc/preconv/preconv.cpp (unicode_entity): Handle U+00AD
1435         specially.
1437 2006-02-22  Bruno Haible  <bruno@clisp.org>
1439         Concretize the `glyph' datatype.
1441         * src/include/font.h (glyph): Remove class.
1442         (glyph): Renamed from struct `glyphinfo'.
1443         (glyph_to_index): New inline function.
1444         (glyph_to_name): Make extern, not inline.
1445         (glyph_to_number): Update.
1446         (font): Use `glyph *' instead of `glyph'.
1448         * src/libs/libgroff/nametoindex.cpp (charinfo): Inherit from class
1449         `glyph'.  Make `name' field public.
1450         (character_indexer, number_to_glyph, name_to_glyph): Use `glyph *'
1451         instead of `glyph'.
1452         (glyph_to_name): Renamed from `glyph::glyph_name'.
1454         * src/roff/troff/charinfo.h (charinfo): Inherit from class `glyph'.
1455         Use `glyph *' instead of `glyph'.
1457         * src/roff/troff/input.cpp (name_to_glyph, number_to_glyph): Use
1458         `glyph *' instead of `glyph'.
1459         (glyph_to_name): Renamed from `glyph::glyph_name'.
1461         * src/libs/libgroff/font.cpp: Use `glyph *' instead of `glyph',
1462         and `glyph_to_index' instead of `glyph::glyph_index'.
1464         * src/include/printer.h (printer): Use `glyph *' instead of `glyph'.
1465         * src/libs/libdriver/printer.cpp: Likewise.
1466         * src/devices/grodvi/dvi.cpp: Likewise.
1467         * src/devices/grohtml/post-html.cpp: Likewise.
1468         * src/devices/grolbp/lbp.cpp: Likewise.
1469         * src/devices/grolj4/lj4.cpp: Likewise.
1470         * src/devices/grops/ps.cpp: Likewise.
1471         * src/devices/grotty/tty.cpp: Likewise.
1473 2006-02-22  Werner LEMBERG  <wl@gnu.org>
1475         * font/devdvi/generate/tc.map: Add `sr' glyph.
1476         * font/devdvi/*TC: Regenerated.
1478         * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list): Use entry
1479         for `sqrt'.
1481 2006-02-21  Werner LEMBERG  <wl@gnu.org>
1483         * man/groff_char.man: Explain `***' marker.
1485 2006-02-17  Bruno Haible  <bruno@clisp.org>
1487         * src/libs/libgroff/nametoindex.cpp (character_indexer): Rename
1488         methods and fields from *_index to *_glyph.
1489         (character_indexer::named_char_glyph): Test for `charNNN' name
1490         here...
1491         (name_to_glyph): ... not here.
1493 2006-02-17  Bruno Haible  <bruno@clisp.org>
1495         * src/include/font.h (name_to_glyph): Renamed from
1496         font::name_to_index.
1497         (number_to_glyph): Renamed from font::number_to_index.
1498         (glyph_to_name): Renamed from font::index_to_name.
1499         (glyph_to_number): Renamed from font::index_to_number.
1500         * src/libs/libgroff/nametoindex.cpp: Likewise.
1501         * src/roff/troff/charinfo.h (charinfo::as_glyph): Renamed from
1502         charinfo::get_index.
1504         * src/roff/troff/input.cpp: All callers changed.
1505         * src/roff/troff/node.cpp: Likewise.
1506         * src/libs/libgroff/font.cpp: Likewise.
1507         * src/devices/grops/ps.cpp: Likewise.
1508         * src/devices/grohtml/post-html.cpp: Likewise.
1509         * src/libs/libdriver/printer.cpp: Likewise.
1511 2006-02-17  Werner LEMBERG  <wl@gnu.org>
1513         * src/include/ptable.h, src/include/itable.h
1514         (NEXT_PTABLE_SIZE_DEFINED): Use it to avoid multiple declaration
1515         of external symbol `next_ptable_size' (used by both header files).
1517 2006-02-15  Bruno Haible  <bruno@clisp.org>
1519         * src/include/font.h (glyphinfo): New class.
1520         (glyph): Change internal representation.
1521         Change constructor signature.
1522         New method glyph::glyph_number().
1523         (glyph::glyph, glyph glyph::undefined_glyph, glyph::glyph_index,
1524         glyph::operator==, glyph::operator!=): Update.
1525         (font::index_to_name, font::index_to_number): New functions.
1527         * src/include/itable.h: New file, based on src/include/ptable.h.
1529         * src/libs/libgroff/nametoindex.cpp: Include itable.h.
1530         (class charinfo): New class.
1531         (class character_indexer): Change table result type from `int' to
1532         `class charinfo'.
1533         Add table with integer key.
1534         (character_indexer::character_indexer): Update.
1535         (character_indexer::ascii_char_index): Update.
1536         (character_indexer::numbered_char_index): Use NULL as name, not a
1537         string starting with a space.
1538         (character_indexer::named_char_index): Update.
1539         (font::number_to_index, font::name_to_index): Remove no-op cast.
1540         (glyph::glyph_name): New method.
1541         * src/roff/troff/charinfo.h (class charinfo): Inherit from class
1542         glyphinfo.
1543         (NUMBERED): Remove flag bit.
1544         (charinfo::numbered, charinfo::get_index): Update.
1546         * src/roff/troff/input.cpp (charinfo::charinfo): Update.
1547         (charinfo::set_number, charinfo::get_number): Update.
1548         (glyph::glyph_name): New method.
1550 2006-02-15  Werner LEMBERG  <wl@gnu.org>
1552         * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list): Fix
1553         entries for `>>', `<<', `*f', and `+f'.  Reported by Bruno.
1555 2006-02-13  Werner LEMBERG  <wl@gnu.org>
1557         * font/devps/prologue.ps (RE): Check `UniqueID' also, similar to
1558         dvips.
1560 2006-02-11  Werner LEMBERG  <wl@gnu.org>
1562         * src/include/font.h: s/glyph_t/glyph/.
1563         Update all callers.
1565         * src/devices/grotty/tty.cpp: s/glyph/tty_glyph/.
1566         s/output_character_t/output_character/.
1568 2006-02-11  Bruno Haible  <bruno@clisp.org>
1570         New accessor method glyph_t::glyph_name().
1572         * src/include/ptable.h (declare_ptable): Add a return value to the
1573         `define' method, and declare a `lookupassoc' method.
1574         (implement_ptable): Return the stored key in `define'.  Implement
1575         lookupassoc.
1576         * src/include/font.h (glyph_t): Add `name' field.  Add an argument
1577         to the constructor.
1578         (glyph_t::glyph_name): New method.
1580         * src/libs/libgroff/nametoindex.cpp (character_indexer): Change
1581         return type of methods and field member type to glyph_t.
1582         (character_indexer::character_indexer): Update.
1583         (character_indexer::ascii_char_index): Allocate a name for the
1584         glyph.
1585         Return a glyph_t with name.
1586         (character_indexer::numbered_char_index): Return a glyph_t without a
1587         name.
1588         (character_indexer::named_char_index): Return a glyph_t with a name.
1589         (font::number_to_index, font::name_to_index): Update.
1591         * src/roff/troff/input.cpp (charinfo::charinfo): Use the symbol as
1592         the glyph's name.
1594 2006-02-11  Bruno Haible  <bruno@clisp.org>
1596         * src/devices/grotty/tty.cpp (output_character_t): New type.
1597         (tty_printer::make_bold, tty_printer::add_char,
1598         tty_printer::put_char): Change argument type to output_character_t.
1599         (crossings): Change element type to output_character_t.
1601 2006-02-11  Bruno Haible  <bruno@clisp.org>
1603         Make the glyph data type abstract.
1605         * src/include/font.h (glyph_t): New class.
1606         (name_to_index, number_to_index): Change return type to glyph_t.
1607         (font::contains, font::get_width, font::get_height, font::get_depth,
1608         font::get_character_type, font::get_kern, font::get_skew,
1609         font::get_italic_correction, font::get_left_italic_correction,
1610         font::get_subscript_correction, font::get_code,
1611         font::get_special_device_encoding, font::add_entry,
1612         font::copy_entry, font::add_kern, font::hash_kern): Change argument
1613         type to glyph_t.
1615         * src/libs/libgroff/font.cpp (font_kern_list): Change members
1616         type and constructor argument types to glyph_t.
1617         (font::contains, font::get_width, font::get_height, font::get_depth,
1618         font::get_character_type, font::get_kern, font::get_skew,
1619         font::get_italic_correction, font::get_left_italic_correction,
1620         font::get_subscript_correction, font::get_code,
1621         font::get_special_device_encoding, font::add_entry,
1622         font::copy_entry, font::add_kern, font::hash_kern): Change argument
1623         type to glyph_t.
1624         (font::load): Use glyph_t variables.
1626         * src/libs/libgroff/nametoindex.cpp (name_to_index,
1627         number_to_index): Change return type to glyph_t.
1629         * src/roff/troff/charinfo.h (charinfo::index): Change type to
1630         glyph_t.
1631         (charinfo::get_index): Change return type to glyph_t.
1633         * src/roff/troff/env.cpp: Include font.h.
1635         * src/roff/troff/node.cpp: Include font.h before charinfo.h.
1637         * src/roff/troff/input.cpp: Include font.h before charinfo.h.
1638         (charinfo::charinfo): Update.
1639         (name_to_index, number_to_index): Change return type to glyph_t.
1641         * src/include/printer.h (printer::set_char_and_width): Change return
1642         type to glyph_t.
1644         * src/libs/libdriver/printer.cpp (printer::set_char_and_width):
1645         Change return type to glyph_t.
1647         * src/devices/grodvi/dvi.cpp (dvi_printer::set_char): Change
1648         argument type to glyph_t.
1650         * src/devices/grohtml/post-html.cpp (page::add_and_encode): Update.
1651         (html_printer::space_glyph): Renamed from space_char_index.
1652         (html_printer::add_to_sbuf, html_printer::sbuf_continuation,
1653         html_printer::overstrike, html_printer::set_char): Change argument
1654         type to glyph_t.
1655         (html_printer::set_char_and_width): Change return type to glyph_t.
1657         * src/devices/grolbp/lbp.cpp (lbp_printer::set_char): Change
1658         argument type to glyph_t.
1660         * src/devices/grolj4/lj4.cpp (lj4_printer::set_char): Change
1661         argument type to glyph_t.
1663         * src/devices/grops/ps.cpp (ps_printer::space_glyph): Renamed from
1664         space_char_index.
1665         (ps_printer::set_subencoding, ps_printer::set_char): Change argument
1666         type to glyph_t.
1668         * src/devices/grotty/tty.cpp (tty_printer::set_char): Change
1669         argument type to glyph_t.
1671 2006-02-11  Bruno Haible  <bruno@clisp.org>
1673         * src/roff/troff/input.cpp (font::name_to_index): Never return a
1674         negative value.
1676         * src/libs/libgroff/font.cpp (font::load): Remove failure tests for
1677         font::name_to_index.
1679 2006-02-10  Werner LEMBERG  <wl@gnu.org>
1681         * doc/groff.texinfo (Assigning Formats): Number registers are always
1682         interpolated.
1683         Apply some rephrasing, contributed by Michael Burt.
1685 2006-02-07  Werner LEMBERG  <wl@gnu.org>
1687         * tmac/fr.tmac <ms>: Set `HY' register.
1689 2006-02-07  Werner LEMBERG  <wl@gnu.org>
1691         Add framework for simple adaptation of the main macro packages (mm,
1692         me, ms, mom) to different locales.  In particular, add support for
1693         French.  For activation, simply use `-mfr' as the last macro
1694         package.  This feature has been contributed by Fabrice Ménard
1695         <menard.fabrice@wanadoo.fr>.
1697         * tmac/fr.tmac, tmac/trans.tmac, tmac/hyphen.fr, tmac/LOCALIZATION:
1698         New files.
1699         * tmac/README: Mention hyphen.fr.
1700         * man/groff_tmac.man: Mention fr.tmac.
1701         * NEWS: Updated.
1703 2006-01-27  Werner LEMBERG  <wl@gnu.org>
1705         * man/groff_font.man: Updated documentation of `entity_name' field.
1706         Avoid future tense.
1708 2006-01-27  Bruno Haible  <bruno@clisp.org>
1710         * font/devhtml/R.proto: Remove the entity names from the font's
1711         special_encoding_encoding column.
1712         * src/devices/grohtml/post-html.cpp (get_html_entity): New function,
1713         handling the entity names here.
1714         (get_html_translation): Use it.  Change return type to `const
1715         char *'.
1716         (page::add_and_encode): Update, removing a useless cast.
1718 2006-01-26  Werner LEMBERG  <wl@gnu.org>
1720         This change is based on a patch by Bruno Haible <bruno@clisp.org>.
1722         * src/include/device.h: Add comments.
1723         * src/include/font.h: Add comments.
1724         * src/include/unicode.h: Likewise.
1725         * src/include/ptable.h, src/libs/libgroff/ptable.cpp: Likewise.
1727 2006-01-26  Keith Marshall  <keith.d.marshall@ntlworld.com>
1729         Suppress `.st' request emission by `grn'.
1731         * src/preproc/grn/main.cpp (USE_ST_REQUEST): New macro.
1732         (conv): Use it.
1734 2006-01-22  Werner LEMBERG  <wl@gnu.org>
1736         * install-sh: New version; taken from texinfo CVS.
1738 2006-01-21  Werner LEMBERG  <wl@gnu.org>
1740         * src/preproc/preconv/preconv.cpp (main): Set program_name.  Bug
1741         reported by Alexander E. Patrakov <patrakov@ums.usu.ru>.
1743 2006-01-19  Bruno Haible  <bruno@clisp.org>
1745         Let `make -k install' install more files.
1747         * Makefile.in (MAKE_K_FLAG): New variable.  Use it everywhere where
1748         $(MAKE) and $(MDEFINES) are used.
1749         (CPROGDIRS): Remove $(XPROGDIRS).  Treat $(XPROGDIRS) like
1750         $(CPROGDIRS) everywhere.
1751         ($(DEVDIRS) $(XDEVDIRS) $(OTHERDEVDIRS) $(TTYDEVDIRS)): Don't depend
1752         on $(XPROGDIRS).
1753         ($(OTHERDIRS)): Likewise.
1756         * src/devices/grohtml/post-html.cpp (get_html_translation): Remove
1757         failure test for font::name_to_index -- it can never fail.
1759 2006-01-19  Werner LEMBERG  <wl@gnu.org>
1761         * src/devices/grops/grops.man: Fix section on creating EPS files.
1762         Don't use future time in manual.
1763         Other minor fixes.
1765 2006-01-15  Gaius Mulley  <gaius@glam.ac.uk>
1767         * tmac/www.tmac: New macro LINKSTYLE which allows users to set
1768         various typographical URL attributes for non-HTML devices.
1770         * tmac/groff_www.man: Document LINKSTYLE.
1772 2006-01-11  Werner LEMBERG  <wl@gnu.org>
1774         * configure.ac: Test for getc_unlocked (needed for localcharset).
1775         * configure, src/include/config.hin: Regenerated.
1777         * src/libs/libgroff/Makefile.sub (EXTRA_CFLAGS): Define
1778         ENABLE_RELOCATABLE.
1780         * src/libs/libgroff/relocatable.h: New dummy header file for
1781         localcharset.c.
1783         * src/libs/libgroff/localcharset.c: Updated to (unchanged) CVS
1784         gnulib version.
1786 2006-01-10  Bruno Haible  <bruno@clisp.org>
1788         Work around unportability of nl_langinfo(CODESET).
1790         * m4/glibc21.m4: New file, from gnulib.
1791         * Makefile.sub (M4MACROS): Add m4/glibc21.m4.
1792         * configure.ac: Also test for stddef.h, and invoke jm_GLIBC21.
1793         * Makefile.in (HOST, GLIBC21): New variables.
1794         (MDEFINES): Pass them to subdirectories.
1795         * src/include/relocate.h (relocatep): Define with C linkage.
1796         * src/include/localcharset.h: New file, from gnulib.
1797         * src/libs/libgroff/localcharset.c: New file, from gnulib with a
1798         modification for relocate().
1799         * src/libs/libgroff/config.charset: New file, from gnulib.
1800         * src/libs/libgroff/ref-add.sin: New file, from gnulib.
1801         * src/libs/libgroff/ref-del.sin: New file, from gnulib.
1802         * src/libs/libgroff/Makefile.sub (EXTRA_CFLAGS): Also define LIBDIR.
1803         (OBJS): Add localcharset.o.
1804         (CSRCS): Add localcharset.c.
1805         (all): Add dependencies to charset.alias, ref-add.sed, ref-del.sed.
1806         (charset.alias): New rule.
1807         (PACKAGE): New variable.
1808         (ref-add.sed, ref-del.sed): New rules.
1809         (MKINSTALLDIRS): New variable.
1810         (install_data): Depend on install_charset_data.
1811         (install_charset_data): New rule for creating or updating
1812         charset.alias.
1813         (uninstall_sub): Depend on uninstall_charset_data.
1814         (uninstall_charset_data): New rule for uninstalling or updating
1815         charset.alias.
1816         * src/preproc/preconv/preconv.cpp: Include localcharset.h instead
1817         of <langinfo.h>.
1818         (main): Initialize default_encoding from locale_charset() instead of
1819         nl_langinfo(CODESET).
1821         * aclocal.m4, configure, src/include/config.hin: Regenerated.
1823 2006-01-10  Werner LEMBERG  <wl@gnu.org>
1825         * src/preproc/preconv/preconv.cpp (conversion_iconv): Use
1826         ICONV_CONST in call to iconv.  Reported by Robert Goulding.
1828 2006-01-07  Werner LEMBERG  <wl@gnu.org>
1830         * fonts/devps/generate/freeeuro.sfd: Run auto-hinter with recent
1831         fontforge version.
1832         Bump font version to 001.001.
1834         * fonts/devps/generate/Makefile (freeeuro.afm, freeeuro.pfa):
1835         Call fontforge, not pfaedit.
1837         * fonts/devps/freeeuro.afm, fonts/devps/freeeuro.pfa: Regenerated.
1839 2006-01-05  Ruslan Ermilov  <ru@FreeBSD.org>
1841         * tmac/doc-common: Add new FreeBSD and NetBSD versions.
1842         * tmac/groff_mdoc.man: Updated.
1844 2006-01-05  Werner LEMBERG  <wl@gnu.org>
1846         * src/preproc/preconv/preconv.cpp: s/debug/debug_flag/.
1847         (raw_flag): New global variable.
1848         (do_file): Use .lf to set file name (if `raw_flag' isn't set).
1849         Don't pass BOM to `conversion_utf8'.
1850         (usage): Updated.
1851         (main): Handle `-r' command line switch to set `raw_flag'.
1852         (get_BOM): Fix encodings in `BOM_table'.
1854         * src/preproc/preconv/preconv.man: New file.  Not complete yet.
1855         * src/preproc/proconv/Makefile.sub (MAN1): New variable.
1857 2006-01-04  Werner LEMBERG  <wl@gnu.org>
1859         * src/preproc/preconv/preconv.cpp (emacs_to_mime): As suggested by
1860         Bruno, comment out most encodings to support only a small set of
1861         coding tags, thus reducing potential problems with legacy encodings
1862         and character sets in the future.
1863         Add many XEmacs coding tags (now commented out).
1864         Add `cp1047'.
1865         (check_encoding_tag): Renamed to...
1866         (check_coding_tag): This.
1867         (get_BOM): Return encoding as specified by BOM.
1868         Test for UTF32-LE too.
1869         (do_file): Don't check for coding tag if a BOM has been found.
1871 2006-01-03  Bruno Haible  <bruno@clisp.org>
1873         * m4/groff.m4: Renamed from aclocal.m4.
1874         * m4/codeset.m4: New file, from gnulib.
1875         * m4/iconv.m4: New file, from gnulib.
1876         * m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4: New files, from
1877         gnulib.
1878         * config.rpath: New file, from gnulib.
1879         * config.guess, config.sub: New files, from gnulib.
1880         * Makefile.sub (M4MACROS): New variable.
1881         (configure): Fix typo.
1882         (aclocal.m4): New rule.
1883         (stamp-h.in): Depend on aclocal.m4.
1884         * configure.ac: Invoke AM_ICONV and AM_LANGINFO_CODESET.
1885         * Makefile.in (LIBICONV): New variable.
1886         (MDEFINES): Pass it to recursive makes.
1887         * src/preproc/preconv/preconv.cpp: Use HAVE_LANGINFO_CODESET and
1888         HAVE_ICONV instead of I18N macro.
1889         * src/preproc/preconv/Makefile.sub (EXTRA_LDFLAGS): New variable.
1891         * aclocal.m4, configure, src/include/config.hin: (Re)generated.
1893 2006-01-03  Werner LEMBERG  <wl@gnu.org>
1895         * doc/Makefile.in (webpage.html): Simplify.
1896         * doc/Makefile.sub (webpage.html): Synchronize with doc/Makefile.in.
1897         * doc/webpage.ms, tmac/groff_www.man, tmac/www.tmac: Minor updates.
1899 2006-01-01  Werner LEMBERG  <wl@gnu.org>
1901         * tmac/doc-common (Os): Add some Darwin versions.
1902         * tmac/groff_mdoc.man: Document them.
1904 2006-01-01  Bruno Haible  <bruno@clisp.org>
1906         * src/preproc/preconv/preconv.cpp (emacs_to_mime): Various
1907         corrections:
1908           . Don't map ascii to latin-1.
1909           . Don't use IBMxxx encodings but cpxxx for portability.
1910           . Map cp932, cp936, cp949, cp950 to itself.
1911         (emacs2mime): Protect calls to strcasecmp.
1912         (conversion_iconv): Add missing call to iconv_close.
1913         (do_file): Emit error message in case of unsupported encoding.
1915 2005-12-31  Werner LEMBERG  <wl@gnu.org>
1917         Integrate preconv into the groff binary.  Changes based on a patch
1918         from Michail Vidiassov.
1920         * src/roff/groff/pipeline.h (MAX_COMMANDS): Increase by 1.
1922         * src/roff/groff/groff.cpp (PRECONV_INDEX): New macro.
1923         (SOELIM_INDEX): Updated.
1924         (help, synopsis): Updated.
1925         (main): Add command line options `-k' and `-K enc' to select
1926         encoding.
1927         Add support for GROFF_ENCODING environment variable.
1929         * src/roff/groff/groff.man: Updated and revised.
1932         Start with autoconf support for preconv.
1934         * configure.ac: Call AC_C_BIGENDIAN.
1935         * configure, src/include/config.hin: Regenerated.
1937 2005-12-30  Werner LEMBERG  <wl@gnu.org>
1939         New preprocessor `preconv' to convert input encodings to something
1940         groff can understand.  Not yet integrated within groff.  Proper
1941         autoconf stuff is missing too.
1943         Tomohiro Kubota has written a first draft of this program, and some
1944         ideas have been reused (while almost no code has been taken
1945         actually).
1947         * src/preproc/preconv/preconv.cpp. src/preproc/preconv/Makefile.sub:
1948         New files.
1950         * MANIFEST, Makefile.in (CCPROGDIRS), test-groff.in
1951         (GROFF_BIN_PATH): Add preconv.
1953 2005-12-12  Werner LEMBERG  <wl@gnu.org>
1955         * aclocal.m4 (GROFF_MAKEINFO): Fix regexps to be POSIX conformant.
1956         In particular, don't use `\+' since it is a GNU sed extension.
1958         * configure: Regenerated.
1960 2005-12-09  Werner LEMBERG  <wl@gnu.org>
1962         * src/libs/libgroff/make-uniuni: New script to generate uniuni.cpp. 
1964         * src/libs/libgroff/uniuni.cpp: Regenerated, using data from Unicode
1965         4.1.0.
1968         * src/utils/afmtodit/make-afmtodit-tables: New script to generate
1969         afmtodit.tables.
1971         * src/utils/afmtodit/afmtodit.tables: New file, representing Unicode
1972         4.1.0 data.
1974         * src/utils/afmtodit/afmtodit.pl (%unicode_decomposed,
1975         %AGL_to_unicode): Removed.  Replace it with a tag.
1977         * src/utils/afmtodit/Makefile.sub (afmtodit): Adjust sed expression
1978         to replace tag with actual file contents.
1980 2005-12-08  Werner LEMBERG  <wl@gnu.org>
1982         The change 2005-06-20 can indeed cause problems, so we follow the
1983         advice by using marks.
1985         * font/devps/prologue.ps (PBEGIN): Use `mark'.
1986         (PEND): Use `cleartomark'.
1988 2005-12-07  Michail Vidiassov  <master@iaas.msu.ru>
1990         * src/utils/afmtodit.pl: Fix kerning output to avoid warnings for
1991         glyphs which have kern values but aren't handled (glyph variants,
1992         for example).
1994 2005-12-02  Werner LEMBERG  <wl@gnu.org>
1996         * src/devices/grops/ps.cpp (ps_printer::get_subfont): Use correct
1997         subfont index.  Reported by Michail Vidiassov <master@iaas.msu.ru>.
1999 2005-11-28  Gaius Mulley  <gaius@glam.ac.uk>
2001         * doc/Makefile.in: Separate rule for webpage.html so that extra
2002         command line options can be passed to grohtml.
2003         * doc/groff.css: Change all margins to 0%.
2004         * doc/webpage.ms: Now use new macros ALN, LNS, and LNE so that left
2005         navigation is exploited.  Also update webpage to contain new
2006         sections on licenses, mailing lists, cvs/ftp access, groff
2007         dependencies, and bug reports.
2008         * tmac/groff_www.man: Document the new macros ALN, LNS, and LNE.
2009         * tmac/www.tmac: Implement the new macros ALN, LNS, and LNE.
2010         
2011 2005-11-25  Gaius Mulley  <gaius@glam.ac.uk>
2013         * src/devices/grohtml/post-html.cpp
2014         (html_printer::do_file_components): Add fputs calls to emit the
2015         head contents and shut down the head tag whenever a new file
2016         component is generated.
2018 2005-11-22  Gaius Mulley  <gaius@glam.ac.uk>
2020         * src/devices/grohtml/post-html.cpp (html_printer::flush_page): Add
2021         call to flush_text to flush any outstanding html tags on the
2022         paragraph stack.
2024 2005-11-18  Werner LEMBERG  <wl@gnu.org>
2026         * aclocal.m4 (GROFF_MAKEINFO): Use `groff.info' in tests.
2027         Announce makeinfo version.
2028         * configure: Regenerated.
2030 2005-11-18  Mike Frysinger <vapier@gentoo.org>
2032         * Makefile.in: Declare proper dependencies between make targets.
2034         * doc/Makefile.in: Rename groff info page to `groff.info'.
2035         * doc/Makefile.sub: Likewise.
2036         * doc/groff.texinfo: Likewise.
2038 2005-11-17  Peter O'Gorman  <mlists@thewrittenword.com>
2040         * src/utils/pfbtops/pfbtops.c, src/utils/xtotroff/xtotroff.c: Move
2041         definition of __GETOPT_PREFIX to the beginning of file to ensure
2042         that it is defined even on platforms where getopt.h is already
2043         included by other header files.
2045 2005-11-10  Gaius Mulley  <gaius@glam.ac.uk>
2047         * src/devices/grohtml/post-html.cpp (html_printer::do_heading):
2048         Reset font to NULL to ensure that a font block is recreated during
2049         the next paragraph.
2051 2005-11-04  Werner LEMBERG  <wl@gnu.org>
2053         * aclocal.m4 (GROFF_MAKEINFO): Fix sed expression.
2054         * configure: Regenerated.
2056 2005-10-27  Werner LEMBERG  <wl@gnu.org>
2058         * aclocal.m4 (GROFF_MAKEINFO): New function for checking whether
2059         makeinfo 4.8 or newer is available.
2060         * configure.ac: Call GROFF_MAKEINFO.
2061         * configure: Regenerated.
2063         * Makefile.in (MAKEINFO): Use autoconf variable.
2064         (MDEFINES): Add MAKEINFO.
2066         * doc/Makefile.in (MAKEINFO): Use autoconf variable.
2067         * doc/Makefile.sub (MAKEINFO): Remove.
2069 2005-10-26  Werner LEMBERG  <wl@gnu.org>
2071         * REVISION: Set to 3.
2073 2005-10-17  Werner LEMBERG  <wl@gnu.org>
2075         Mention $MANPAGER variable used with some `man' systems.
2077         * doc/webpage.ms, src/devices/grotty/grotty.man, NEWS: Updated.
2079 2005-09-13  Werner LEMBERG  <wl@gnu.org>
2081         * tmac/hyphenex.us: New version (`ushyphex.tex' from ftp.dante.de).
2083 2005-09-04  Werner LEMBERG  <wl@gnu.org>
2085 Version 1.19.2 released
2086 =======================
2088         * tmac/groff_ms.man, doc/groff.texinfo: Synchronize.
2090         * doc/webpage.ms: Updated.
2092         * install-sh, mkinstalldirs: New versions; taken from texinfo CVS.
2094 2005-09-04  Jörgen Grahn <jgrahn@algonet.se>
2096         * tmac/groff_ms.man: Document `PO' better.
2098 2005-09-03  Werner LEMBERG  <wl@gnu.org>
2100         * NEWS: Document grotty changes.
2102 2005-09-01  Keith Marshall  <keith.d.marshall@ntlworld.com>
2104         Backward compatibility support for `man' program.
2106         * tmac/an-old.tmac (LL): Initialize it to respect prior LL register
2107         assignment, prior `.ll' request and then package defaults, in this
2108         specified order of decreasing priority.
2110         * tmac/groff_man.man, doc/groff.texinfo (Man options): Document
2111         altered `LL' register initialization priorities.
2113 2005-08-29  Gary W. Swearingen  <garys@opusnet.com>
2115         * tmac/groff_mdoc.man: Go into more details how the `AUTHORS'
2116         section should look like.
2118 2005-08-29  Werner LEMBERG  <wl@gnu.org>
2120         * tmac/groff_mdoc.man: The month's name in a call to .Dd shouldn't
2121         be abbreviated.
2123 2005-08-27  Bernd Warken
2125         * tmac/groff_man.man: Add man(7) too SEE ALSO and more minor
2126         fixes.
2128 2005-08-11  Bernd Warken
2130         * tmac/www.tmac (URL, MTO): Handle empty \\$1 better.
2132 2005-08-09  Bernd Warken
2134         * tmac/www.tmac (URL, MTO): Use bold series if color support is
2135         deactivated.
2137 2005-08-02  Bernd Warken
2139         * doc/Makefile.sub (uninstall_sub): Use --remove, not --delete
2140         as argument to $(INSTALL_INFO).  The latter isn't portable.
2141         Remove $(HTMLEXAMPLEFILES) too.
2143         * Makefile.in (uninstall_dirs): Remove $(datadir)/doc/groff and
2144         $(datadir)/doc too.
2145         Suppress warning messages and return always true.
2147         * tmac/Makefile.sub (uninstall_sub): Remove www.tmac too.
2149 2005-07-02  Bernd Warken
2151         * src/devices/xditview/gxditview.man: Change many `.I' to `.B'.
2152         * man/groff_out.man: More markup and minor improvements.
2153         * src/roff/groff/groff.man: Minor improvements.
2155 2005-06-28  Werner LEMBERG  <wl@gnu.org>
2157         * ChangeLog: Split off older entries into...
2158         * ChangeLog.115 ChangeLog.116, ChangeLog.117, ChangeLog.118: New
2159         files.
2161 2005-06-26  Bernd Warken
2163         * src/devices/xditview/gxditview.man: More minor fixes.
2165 2005-06-24  Werner LEMBERG  <wl@gnu.org>
2167         * src/preproc/pic/troff.cpp (troff_output::set_fill,
2168         troff_output::set_color, troff_output::reset_color): Use .bcolor and
2169         .fcolor instead of \m and \M, respectively.
2171 2005-06-23  Bernd Warken
2173         * src/devices/xditview/gxditview.man: More minor fixes.
2174         * README: Formatting issues.
2175         Mention some problems with Debian.
2177 2005-06-23  Bernd Warken
2179         * src/devices/xditview/gxditview.man: Revised and improved.
2181 2005-06-22  Werner LEMBERG  <wl@gnu.org>
2183         Another round in fixing getopt problems.  Hopefully the last one!
2184         This time we use the getopt stuff from gnulib and define a prefix
2185         unconditionally so that there are no collisions with any other
2186         getopt implementations.  This is a slight waste of space in case
2187         we already use a GNU getopt implementation, but on
2188         the other hand it really simplifies life.
2190         * src/include/getopt.h: Use gnulib version.
2192         * src/include/getopt_int.h: Use gnulib version.
2194         * src/include/groff-getopt.h: Removed.  Obsolete now.
2196         * src/include/lib.h: Regarding getopt, don't handle any platform
2197         specially; just include getopt.h.
2198         (__GETOPT_PREFIX): Define (before getopt.h).
2200         * src/include/Makefile.sub (HDRS): Updated.
2202         * src/libs/libgroff/getopt1.c, src/libs/libgroff/getopt.c: Use
2203         gnulib version.
2205         * src/libs/libgroff/Makefile.sub (EXTRA_CFLAGS): Set
2206         __GETOPT_PREFIX.
2208         * src/utils/pfbtops/pfbtops.c, src/utils/xtotroff/xtotroff.c
2209         (__GETOPT_PREFIX): Define (before getopt.h).
2211 2005-06-21  Werner LEMBERG  <wl@gnu.org>
2213         * src/include/lib.h: Provide a fix for Mac OS X to not include
2214         groff-getopt.h.
2216 2005-06-20  Denis M. Wilson  <dmw@oxytropis.plus.com>
2218         * font/devps/prologue.ps (EP): Dont' use `bind'.  Reason: Using
2219         `bind' to define a procedure which contains `showpage' means that an
2220         invocation of `showpage' may execute wrongly (the exact effect
2221         depending on the interpreter).  Not usually a problem except under
2222         transformations, such as combining pages.
2223         (PEND): Don't call `clear'.  Reason: Using `clear' in the definition
2224         of /PEND means that stack underflow will occur if the stack is
2225         deliberately non-empty before document inclusion.  If included
2226         files are found to be generally badly behaved, we could replace the
2227         `clear' with `mark' in /PBEGIN and `cleartomark' in /PEND (I've
2228         never found this necessary).
2230 2005-06-20  Jörgen Grahn  <jgrahn@algonet.se>
2232         * src/preproc/soelim/soelim.cpp (do_file): Append trailing zero
2233         earlier to get correct error message.
2235 2005-06-16  Bernd Warken
2236         * src/roff/nroff/nroff.sh: Add support for iso-8859-15.
2238 2005-06-15  Werner LEMBERG  <wl@gnu.org>
2240         Another try to update getopt files.  This time we add a dummy
2241         gettext.h file to satisfy the dependency.
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/gettext.h: Dummy file which just defines a gettext()
2249         macro.
2251         * src/include/groff-getopt.h: Updated.
2253         * src/include/Makefile.sub (HDRS): Add getopt_int.h and gettext.h.
2256         * src/libs/libdriver/input.cpp (IntArray): Remove superfluous
2257         `const' keywords in return value.
2259         * src/preproc/html/pushback.cpp (pushBackBuffer::~pushBackBuffer):
2260         Remove redundant variable `old'.
2261         (pushBackBuffer::skipToNewline): Remove redundant variable `ch'.
2263         * src/preproc/tbl/main.cpp (process_table): Remove redundant
2264         variable `c'.
2267         Fix more friend name injection problems since modern C++ compilers
2268         fail otherwise.  We simply provide (global) declarations for all
2269         functions declared as friends.  This is not really necessary but
2270         doesn't harm.
2272         * src/preproc/eqn/lex.cpp: Provide declarations for get_char,
2273         peek_char, and get_location.
2275         * src/preproc/refer/ref.h: Provide declarations for
2276         compare_reference, same_reference, same_year, same_date,
2277         same_author_last_name, and same_author_name.
2279         * src/roff/troff/div.h: Provide declarations for do_divert and
2280         page_offset.
2282         * src/roff/troff/env.h: Provide declarations for title_length,
2283         space_size, fill, no_fill, adjust, no_adjust, center, right_justify,
2284         vertical_spacing, post_vertical_spacing, line_spacing, line_length,
2285         indent, temporary_indent, do_underline, do_input_trap, set_tabs,
2286         margin_character, no_number, number_lines, leader_character,
2287         tab_character, hyphenate_request, no_hyphenate,
2288         hyphen_line_max_request, hyphenation_space_request,
2289         hyphenation_margin_request, line_width, tabs_save, tabs_restore,
2290         line_tabs_request, widow_control_request, and do_divert.
2292         * src/roff/troff/input.cpp: Provide declaration for chop_macro.
2294         * src/roff/troff/node.cpp: Provide declarations for class
2295         tfont_spec.
2296         Provide declaration for make_tfont.
2298 2005-05-29  Werner LEMBERG  <wl@gnu.org>
2300         * doc/fdl.texi: Updated to version 1.2.  Reported by Bernd Warken.
2302 2005-05-28  Werner LEMBERG  <wl@gnu.org>
2304         * contrib/pdfmark/Makefile.sub (.ms.pdf): Use `--stylesheet', not
2305         `--style'.
2307         * src/devices/grolbp/lbp.cpp, src/devices/grolbp/lbp.h: Remove
2308         redundant semicolons.
2310         * src/preproc/eqn/Makefile.sub, src/preproc/html/Makefile.sub,
2311         src/preproc/soelim/Makefile.sub, src/preproc/tbl/Makefile.sub:
2312         Define `MLIB'.  Some compilers need this for linking with libgroff.
2314 2005-05-27  Werner LEMBERG  <wl@gnu.org>
2316         * MANIFEST, README, doc/webpage.ms: Updated.
2318 2005-05-26  Werner LEMBERG  <wl@gnu.org>
2320         * All affected files: Update postal address of FSF.
2322 2005-05-25  Keith Marshall  <keith.d.marshall@ntlworld.com>
2323             Bernd Warken
2325         * README: More fixes.
2327         * README.CVS: Removed.  Its contents is now part of the README file.
2329 2005-05-21  Werner LEMBERG  <wl@gnu.org>
2331         * README: Updated.  Based on a patch from Bernd Warken.
2333 2005-05-16  Keith Marshall  <keith.d.marshall@ntlworld.com>
2335         Miscellaneous script portability enhancements.
2337         * aclocal.m4: (GROFF_CSH_HACK): Add space in shebang prototype for
2338         generated conftest.sh script, conforming to portability
2339         recommendation in autoconf docs.
2340         * configure: Likewise, for code generated by GROFF_CSH_HACK.
2341         * contrib/eqn2graph/eqn2graph.sh: Add space in shebang, conforming
2342         to portability recommendation in autoconf docs.
2343         * contrib/gdiffmk/gdiffmk.sh: Likewise.
2344         * contrib/gdiffmk/tests/runtests.in: Likewise.
2345         * contrib/grap2graph/grap2graph.sh: Likewise.
2346         * contrib/groffer/groffer.sh: Likewise.
2347         * contrib/mm/mmroff.pl: Likewise.
2348         * contrib/mom/momdoc/appendices.html: Likewise.
2349         * contrib/pic2graph/pic2graph.sh: Likewise.
2350         * font/devps/generate/afmname: Likewise.
2351         * src/devices/xditview/ad2c: Likewise.
2352         * src/preproc/eqn/neqn.sh: Likewise.
2353         * src/roff/grog/grog.pl: Likewise.
2354         * src/roff/grog/grog.sh: Likewise.
2355         * src/roff/nroff/nroff.sh: Likewise.
2356         * PROBLEMS: Likewise, in embedded script examples.
2358 2005-05-16  Keith Marshall  <keith.d.marshall@ntlworld.com>
2360         Improve portability of `pdfroff' shell script.
2362         * arch/misc/shdeps.sh: Add space in shebang, conforming to
2363         portability guidelines in `autoconf' docs.
2364         (PATH_SEARCH_SETUP): New substitution; emits PATH_SEPARATOR
2365         initialization code.  Used by contrib/pdfmark/pdfroff.sh's
2366         `searchpath' function.
2368 2005-05-14  Werner LEMBERG  <wl@gnu.org>
2370         * contrib/pic2graph/pic2graph.sh, contrib/graph2graph.sh,
2371         contrib/eqn2graph.sh: Add option `-trim' to `convert' which is
2372         needed for newer ImageMagick versions.
2374 2005-05-07  Werner LEMBERG  <wl@gnu.org>
2376         * src/preproc/refer/refer.man: Many small typographic fixes.
2378 2005-05-06  Jeff Conrad  <jeff_conrad@msn.com>
2380         * src/devices/grohtml/post-html.cpp (assert_state::~assert_state):
2381         Use `char *' cast for a_delete.
2383 2005-05-03  Werner LEMBERG  <wl@gnu.org>
2385         * src/libs/libgroff/maxpathname.cpp: Include stdlib.h.
2386         src/libs/libgroff/relocate.cpp: Use path_name_max everywhere.
2388 2005-05-03  Jeff Conrad  <jeff_conrad@msn.com>
2390         * src/devices/grohtml/post-html.cpp: Use casts to `char *' if using
2391         `a_delete' for `const char *'.
2393 2005-05-03  Werner LEMBERG  <wl@gnu.org>
2395         * src/devices/grohtml/post-html.cpp,
2396         src/devices/grohtml/html-table.cpp,
2397         src/devices/grohtml/html-text.cpp, src/devices/grohtml/output.cpp:
2398         Replace malloc/free with new/delete/a_delete.
2400         * src/devices/grolbp/lbp.h: Remove superfluous semicolons which
2401         are prohibited with ANSI C++.
2402         (lbpprintf, vdmprintf): Remove useless `inline' keyword (since the
2403         function has a variable number of arguments).
2405         * src/preproc/grn/main.cpp (doinput): Change return type to `int'.
2406         Simplify function and update all callers.
2408 2005-05-02  Werner LEMBERG  <wl@gnu.org>
2410         Undo getopt changes from 2005-04-30.  We don't want a dependency
2411         on gettext.
2413         * src/include/getopt_int.h: Removed.
2415         * src/include/getopt.h, src/include/groff-getopt.h,
2416         src/include/Makefile.sub, src/libs/libgroff/getopt.c,
2417         src/libs/libgroff/getopt1.c: Revert to previous version.
2420         * src/include/nonposix.h (access) [_MSC_VER]: New macro.
2422         * src/include/posix.h (F_OK): Define conditionally.
2424         * src/devices/grotty/tty.cpp (tty_printer::make_underline): Use
2425         different variable name in second `for' loop to avoid MSVC compiler
2426         problem.
2428 2005-04-30  Werner LEMBERG  <wl@gnu.org>
2430         AC_TYPE_SIGNAL from current autoconf can fail if CC=g++.
2432         * aclocal.m4 (GROFF_TYPE_SIGNAL): New function.
2433         * configure.ac: Use GROFF_TYPE_SIGNAL, not AC_TYPE_SIGNAL.
2434         * configure, src/include/config.hin: Regenerated.
2436         * PROBLEMS: Updated.
2439         Update getopt files.
2441         * src/include/getopt.h, src/libs/libgroff/getopt.c,
2442         src/libs/libgroff/getopt1.c: Updated from GNU libc CVS.
2444         * src/include/getopt_int.h: New file (from GNU libc CVS).
2446         * src/include/groff-getopt.h: Updated.
2448         * src/include/Makefile.sub (HDRS): Add getopt_int.h.
2451         * font/devutf8/NOTES: Updated.
2453 2005-04-28  Werner LEMBERG  <wl@gnu.org>
2455         Bug fix for Win32 relocatable code.  Based on a patch from Keith
2456         Marshall.
2458         * src/libs/libgroff/maxpathname.cpp (PATH_MAX): Test for `_MAX_PATH'
2459         also.
2461         * src/libs/libgroff/relocate.c (DEBUG): Define it conditionally.
2462         (searchpath) [_WIN32]: Use `_fullpath', not `realpath'.
2464 2005-04-28  Keith Marshall  <keith.d.marshall@ntlworld.com>
2466         Correct `gnu.eps' handling for build from distribution tarball, with
2467         separate source and build directories.
2469         * doc/Makefile.sub: (examples.stamp): New target; forces copy of
2470         grnexmpl.g, groff.css and gnu.eps from source to build directory;
2471         generate gnu.eps from gnu.xpm if required; touch examples.stamp.
2472         (prepare_examples): Make it depend on examples.stamp.
2473         (CLEANADD): Add examples.stamp.
2475 2005-04-27  Werner LEMBERG  <wl@gnu.org>
2477         Implement the rule
2479           position: `(' position `)'
2481         in pic.
2483         * src/preproc/pic/pic.y (position, position_not_place): Handle
2484         additional parentheses.
2486         * doc/pic.ms: Updated.
2488 2005-04-23  Larry Jones  <lawrence.jones@ugs.com>
2490         * src/utils/xtotroff/xtotroff.c (MapFont): Fix variable declaration.
2492 2005-04-18  Werner LEMBERG  <wl@gnu.org>
2494         * src/roff/groff/pipeline.c: Don't include ctype.h.
2496 2005-04-13  Werner LEMBERG  <wl@gnu.org>
2498         * src/roff/nroff/nroff.man: Document option `-M'.
2500 2005-04-13  Bruce Lilly  <blilly@erols.com>
2502         * src/roff/nroff/nroff.sh: Make the script accept option `-M'.
2504 2005-04-01  Kees Zeelenberg  <kzlg@users.sourceforge.net>
2505             Werner LEMBERG  <wl@gnu.org>
2507         Add binary relocation support for Windows platforms.
2509         * src/include/Makefile.sub (defs.h): Add `INSTALLPATH'.
2511         * src/include/relocate.h, src/libs/libgroff/relocate.cpp: New files.
2513         * src/libs/libgroff/searchpath.cpp: Handle `relocate'.
2514         (search_path::search_path, search_path::open_file_cautious): Use
2515         `relocate'.
2517         * src/libs/libgroff/Makefile.sub (OBJS, CCSRCS),
2518         src/include/Makefile.sub (HDRS): Updated.
2520 2005-04-01  Werner LEMBERG  <wl@gnu.org>
2522         * src/devices/grohtml/post-html.cpp: Don't use strdup/free but
2523         strsave/a_delete.
2525         * src/libs/libgroff/font.cpp: Replace strdup with strsave.
2527         * src/libs/libgroff/maxfilename.cpp: Don't include limits.h since
2528         lib.h already does it.
2530         * src/libs/libgroff/maxpathname.cpp: New file, defining
2531         path_name_max.
2533         * src/include/lib.h: Add prototype for path_name_max.
2535         * src/libs/libgroff/Makefile.sub (OBJS, CCSRCS): Updated.
2537         * src/include/nonposix.h (PATH_EXT): New macro.
2539 2005-03-28  Werner LEMBERG  <wl@gnu.org>
2541         Add support for double- and zero-width characters in grotty.
2543         * src/devices/grotty/tty.cpp (glyph): Add width.
2544         (tty_printer::make_underline, tty_printer::make_bold,
2545         tty_printer::add_character): Add parameter to pass character width.
2546         Update all callers.
2547         (tty_printer::end_page): Increase hpos by actual character width.
2549         * font/devutf8/R.proto: Specify zero width for non-spacing
2550         characters.
2552         * tmac/unicode.tmac: Remove definitions for non-spacing entities.
2554         * Makefile.comm (extraclean): Remove more junk files.
2556 2005-03-25  Werner LEMBERG  <wl@gnu.org>
2558         * configure.ac: Undo change from 2005-03-24.
2559         * configure: Regenerated.
2561 2005-03-24  Werner LEMBERG  <wl@gnu.org>
2563         * Makefile.in (NOMAKEDIRS): Add contrib/gdiffmk/tests.
2564         (dist): Search Makefile while descending into $(EXTRADIRS).
2566         * doc/Makefile.in (.PHONY): Add.
2567         (clean): Don't remove *.png and *.eps.
2568         Don't handle *.gif.
2569         (realclean): Remove *.png and *.eps.
2570         (extraclean): Depend on distclean.
2572         * configure.ac: Add copyright.
2573         Handle contrib/pdfmark/Makefile.
2575         * configure: Regenerated.
2577 2005-03-18  Larry Kollar  <kollar@alltel.net>
2579         Add numbered and definition lists to www.tmac.
2581         * tmac/www.tmac (www-ul-level1, www-ul-level2, www-ul-level3,
2582         www-ol-level1, www-ol-level2, www-ol-level3, www-ol-tmp): New
2583         auxiliary string registers.
2584         (www-ul-level, www-ol-level, www-dl-level, www-ol-ctr1, www-ol-ctr2,
2585         www-ol-ctr3, www-dl-shift): New auxiliary number registers.
2586         (www-level): Removed.
2587         (www-level1, www-level2, www-level3): Initialize to empty.
2588         (www-level0, www-level4, www-level5, www-level6, www-level7,
2589         www-level8, www-level9): New string registers.
2590         (www-push-li, www-pop-li): New macros.
2591         (www-push-level, www-pop-level): Renamed to...
2592         (www-push-ul-level, www-pop-ul-level): This.
2593         Updated.
2594         (www-push-ol-level, www-pop-ol-level): New macros.
2595         (ULS, ULE): Updated.
2596         (OLS, OLE, DLS, DLE): New user macros.
2597         (LI): Removed.  It is aliased to one of...
2598         (www-li-ul, www-li-ol, www-li-dl): New macros.
2600         * tmac/groff_www.man: Document new macros.
2602         * NEWS: Updated.
2604 2005-03-18  Werner LEMBERG  <wl@gnu.org>
2606         * tmac/doc-common (doc-operating-system-NetBSD-2.0.1,
2607         doc-operating-system-NetBSD-2.0.2): New strings.
2609         * tmac/groff_mdoc.man: Updated.
2611 2005-03-17  Werner LEMBERG  <wl@gnu.org>
2613         * doc/Makefile.sub (CLEANADD): Add `groff.html'.
2615 2005-03-17  Werner LEMBERG  <wl@gnu.org>
2617         * src/libs/libgroff/hypot.c: Renamed to...
2618         * src/libs/libgroff/hypot.cpp: This.  Updated to C++.
2620         * src/libs/libgroff/Makefile.sub (CCSRCS, CSRCS): Updated.
2622         * src/include/lib.h: Updated.
2624 2005-03-16  Werner LEMBERG  <wl@gnu.org>
2626         Add workaround for broken hypot() on Interix.
2628         * src/libs/libgroff/hypot.c: New wrapper file for `hypot'.
2630         * src/libs/libgroff/Makefile.sub (OBJS): Add `hypot.o'.
2631         (CSRCS): Add `hypot.c'.
2633         * src/include/lib.h: Declare `groff_hypot'.
2635         * src/preproc/grn/hgraph.cpp: Don't declare `hypot'.
2636         Use `groff_hypot'.
2638         * src/preproc/pic/pic.h: Don't declare `hypot'.
2640         * src/preproc/pic/object.cpp (hypot): Use `groff_hypot'.
2642 2005-03-15  Gaius Mulley  <gaius@glam.ac.uk>
2644         * src/devices/grohtml/post-html.cpp
2645         (html_printer::lookahead_for_tables): End .ce properly to avoid a
2646         segfault.
2648 2005-03-15  Werner LEMBERG  <wl@gnu.org>
2650         makeinfo 4.8 doesn't produce good HTML output from groff.texinfo.
2652         * doc/fixinfo.sh: New script to postprocess makeinfo's HTML output.
2654         * doc/Makefile.in (.texinfo.html): Call fixinfo.sh.
2656 2005-03-14  Werner LEMBERG  <wl@gnu.org>
2658         Add Cyrillic support to devutf8 and devhtml.
2660         * font/devutf8/R.proto, font/devhtml/R.proto: Add Cyrillic blocks.
2662         * tmac/unicode.tmac: New file.
2664         * tmac/tty.tmac: Include unicode.tmac if device is utf8.
2666         * tmac/Makefile.sub (NORMALFILES): Add unicode.tmac.
2668         * NEWS: Updated.
2670 2005-03-02  Keith Marshall  <keith.d.marshall@ntlworld.com>
2672         * src/libs/libdriver/printer.cpp (check_for_output_error): New
2673         function.  It has been introduced to catch peculiar error contexts
2674         on MS-Windows platforms.
2676 2005-02-28  Werner LEMBERG  <wl@gnu.org>
2678         * src/roff/troff/input.cpp (string_iterator::fill): Protect against
2679         null pointer.
2681         * tmac/papersize.tmac: Convert `paper' string contents to lowercase.
2683         * configure: Regenerated.
2685         * NEWS: Updated.
2687 2005-02-28  Keith Marshall  <keith.d.marshall@ntlworld.com>
2689         Integrate `pdfmark' into normal groff build system;
2690         install macro `pdfmark' packages, build and install `pdfroff',
2691         and PDF format documentation.
2693         * Makefile.comm: Add PDFDOCDIR.
2695         * Makefile.in: (MDEFINES) ALT_AWK_PROGS, ALT_GHOSTSCRIPT_PROGS,
2696         pdfdocdir, make_pdfdoc, make_install_pdfdoc: New variables.
2697         (unstall_dirs): Add pdfdocdir.
2699         * aclocal.m4: (GROFF_GHOSTSCRIPT_PREFS): New function; support
2700         `--with-alt-gs' option, set ALT_GHOSTSCRIPT_PROGS.
2701         (GROFF_GHOSTSCRIPT_PATH): Support `--with-gs' option, force use of
2702         GROFF_GHOSTSCRIPT_PREFS, set GHOSTSCRIPT.
2703         (GROFF_HTML_PROGRAMS): Force use of GROFF_GHOSTSCRIPT_PATH; tidy up.
2704         (GROFF_AWK_PREFS): New function; support `--with-alt-awk' option,
2705         set ALT_AWK_PROGS.
2706         (GROFF_AWK_PATH): New function; support `--with-awk' option, force
2707         use of GROFF_AWK_PREFS.
2708         (GROFF_PDFDOC_PROGRAMS): New function; force use of GROFF_AWK_PATH
2709         and GROFF_GHOSTSCRIPT_PATH, set make_pdfdoc and make_install_pdfdoc.
2711         * configure.ac: Add AC_PREREQ(2.59), GROFF_PDFDOC_PROGRAMS.
2712         Remove GROFF_GHOSTSCRIPT_PATH, (forced by GROFF_PDFDOC_PROGRAMS, and
2713         also by modified GROFF_HTML_PROGRAMS).
2715 2005-02-27  Gaius Mulley  <gaius@glam.ac.uk>
2717         * src/devices/grohtml/html-text.cpp (html_text::do_pre): Preserve
2718         paragraph spacing.
2719         (html_text::done_para): Unset `start_space'.
2720         (html_text::remove_para_align): Call `retrieve_para_space' for the
2721         spacing.
2723         * src/devices/grohtml/post-html.cpp (html_printer::emit_raw): Unset
2724         `seen_space'.
2725         (html_printer::do_check_center): Emit vertical space if necessary.
2727         * src/roff/troff/env.cpp (environment_switch): Preserve
2728         `seen_space', `seen_eol', and `suppress_next_eol' while switching
2729         environments.
2731         * src/roff/troff/node.cpp (suppress_node::suppress_node): Set
2732         `is_special'.
2734 2005-02-20  Werner LEMBERG  <wl@gnu.org>
2736         * src/preproc/eqn/eqn.man, NEWS: Document various extensions of
2737         eqn.
2739 2005-02-17  Werner LEMBERG  <wl@gnu.org>
2741         * doc/pic.ms, man/groff.man: Fix typos.
2743         * doc/groff.texinfo: Fix typos.
2744         (\LEmacro): Get proper mathematical spacing.
2746 2005-02-16  Werner LEMBERG  <wl@gnu.org>
2748         * aclocal.m4 (GROFF_APPRESDIR_CHECK): Improve warning message.
2749         * configure: Regenerated with autoconf 2.59b.
2751 2005-02-16  Gaius Mulley  <gaius@glam.ac.uk>
2753         * src/devices/grohtml/post-html.cpp (html_printer::is_line_start,
2754         html_printer::start_font): Fix handling of preformatted text.
2756 2005-02-15  Gaius Mulley  <gaius@glam.ac.uk>
2758         These patches modify the indentation implementation to use `<p
2759         style=margin-left: n%>'.  Many thanks to Peter and Larry for
2760         suggesting this solution.  Grohtml only uses tables for `.IP' and
2761         related tags when the first operand has a short width.
2763         Similarly, they modify all vertical space code.  By default, grohtml
2764         sets up a style sheet which uses no vertical space between `table',
2765         `pre', and `p' tags.  It forces spaces when it needs them using
2766         `style="margin-top: 1em"'.
2768         * src/devices/grohtml/html-table.cpp: Include `html-text.h'.
2769         (html_table::emit_table_header, html_table::emit_new_row):
2770         Rewritten.
2771         (html_table::set_space): New function.
2772         (html_indent::html_indent): Don't set `is_used'.
2773         (html_indent::begin): Rewritten.
2774         (html_indent::end): Remove code in function.
2776         * src/devices/grohtml/html-table.h: Updated.
2777         (html_table): Make `out' public.
2779         * src/devices/grohtml/html-text.cpp (html_text::html_text):
2780         Initialize `start_space' with FALSE.
2781         (html_text::end_tag) <P_TAG, PRE_TAG>: Updated.
2782         (html_text::issue_tag): Add argument to handle space style.
2783         (html_text::start_tag) <P_TAG, PRE_TAG>: Updated.
2784         (html_text::flush_text): Don't set `start_space'.
2785         (html_text::push_para): Don't set `p->really_issued'.
2786         (html_text::do_emittext): Updated.
2787         (html_text::do_para): Add paremeter to handle space.
2788         Update all callers.
2789         (html_text::retrieve_para_space): New function.
2791         * src/devices/grohtml/html-text.h (STYLE_VERTICAL_SPACE): New macro.
2792         (tag_definition): Remove `really_issued'.
2793         (html_text): Updated.
2795         * src/devices/grohtml/post-html.cpp (html_printer): Add variables
2796         `current_column' and `row_space'.
2797         Update constructor.
2798         (html_printer::emit_raw, html_printer::write_header,
2799         html_printer::do_indent, html_printer::do_check_center,
2800         html_printer::do_tab_ts): Handle vertical space.
2801         (html_printer:do_tab_te, html_printer::do_end_para): Call
2802         `remove_para_space'.
2803         (html_printer::do_col): Rewritten.
2804         (html_printer::flush_globs): Remove debugging code.
2805         (html_printer::is_line_start): New function.
2806         (html_printer::start_font): Use `is_line_start'.
2807         (html_printer::writeHeadMetaStyle): New function.
2808         (html_printer::do_file_components, html_printer::~html_printer):
2809         Call `writeHeadMetaStyle'.
2811         * tmac/www.tmac (www-handle-percent): New macro.
2812         (MPIMG): Handle percent values for width and height parameters.
2813         (DC): Updated.
2815         * tmac/groff_www.man: Updated.
2817 2005-02-14  Werner LEMBERG  <wl@gnu.org>
2819         * src/utils/afmtodit/afmtodit.pl: Remove an incorrect `my' from
2820         $psname and $italic_angle.
2821         Immediately restart file input loops if `split' returns an empty
2822         array.
2824 2005-02-13  Michail Vidiassov  <master@iaas.msu.ru>
2825             Werner LEMBERG  <wl@gnu.org>
2827         Update afmtodit to better support Unicode (Michail).
2828         Update afmtodit to use Perl 5 syntax (Werner).
2830         * src/utils/afmtodit/afmtodit.pl: Don't use `getopts.pl' but
2831         `Getopts::Std'.
2832         Decorate variables with `my' where necessary.
2833         Use `defined' where necessary to avoid warnings.
2834         Don't use `do' for subroutine calls.
2835         Other minor syntax updates.
2836         Check for both `uXXXX[X[X]]' and `uniXXXX'.
2837         Handle glyph variants properly.
2838         (%unicode_decomposed, %AGL_to_unicode): Don't use `u' prefix in
2839         strings.
2841         * src/utils/afmtodit/afmtodit.man: Updated.
2843 2005-02-13  Werner LEMBERG  <wl@gnu.org>
2845         Make groff.texinfo work with texinfo 4.8.
2847         * doc/groff.texinfo (@Var): Use @r and @slanted.
2848         (@defdummy, @Def*): Use @c to avoid empty lines.
2849         (\angles): Replaced with...
2850         (\Langlemacro, \Ranglemacro): New TeX macros.
2851         (@Langlemacro, @Ranglemacro): New variables defined with @set.
2852         (@angles): Use @Langlemacro and @Ranglemacro.
2853         (\LE): Replaced with...
2854         (\LEmacro): New TeX macro.
2855         (@LEmacro): New variable defined with @set.
2856         (@LE): Use @LEmacro.
2857         (@Lparenmacro, @Rparenmacro, @Lbrackmacro, @Rbrackmacro): New
2858         variables defined with @set.
2859         (@lparen, @rparen, @lbrack, @rbrack): Replaced with...
2860         (@Lparen, @Rparen, @Lbrack, @Rbrack): New macros.
2861         Update all callers.
2863         Other minor updates.
2865         * doc/texinfo.tex: Update to texinfo version 4.8.
2867         * README.CVS: Updated.
2869 2005-02-09  Alejandro López-Valencia <palopez@etb.net.co> (tiny change)
2871         * doc/groff.texinfo (ms Document Control Registers): Document `HY'
2872         and `FAM' registers.
2874 2005-02-05  Werner LEMBERG  <wl@gnu.org>
2876         * tmac/groff_mdoc.man, tmac/doc-common, tmac/doc-ditroff,
2877         tmac/doc-nroff, tmac/doc-old.tmac, tmac/doc-syms, tmac/doc.tmac:
2878         Update BSD license.
2880 2005-02-01  Werner LEMBERG  <wl@gnu.org>
2882         * src/roff/groff/groff.man: Add information about paper size.
2884 2005-01-25  Werner LEMBERG  <wl@gnu.org>
2886         * src/roff/nroff/nroff.sh: Handle `*.ISO8859-1' in locale.  From
2887         NetBSD bin/29114.
2889 2005-01-22  Ruslan Ermilov  <ru@FreeBSD.org>
2891         * tmac/doc.tmac (Sm): Improved.  It didn't work properly in many
2892         cases.
2893         (Re): Emit a warning if called without `.Rs'.
2894         (doc-finish-reference): Use parameter for decreasing
2895         `doc-reference-count'.
2896         (doc-print-reference): Pass specific count parameters to
2897         `doc-finish-reference'.
2899 2005-01-21  Werner LEMBERG  <wl@gnu.org>
2901         * src/libs/libdriver/input.cpp (delete_current_env, do_file):
2902         Reset pointers to zero after deallocation.  This fixes a crash
2903         if a driver is called with multiple input files.  Reported by
2904         Ken Chilton <ken@chiltonfamily.org>.
2906         * src/devices/grops/grops.man: Add more info on DSC.
2908 2005-01-17  Ruslan Ermilov  <ru@FreeBSD.org>
2910         * tmac/doc-common (Dd), tmac/doc-ditroff (gX, doc-setup-header):
2911         Remove dead code.
2913 2005-01-17  Werner LEMBERG  <wl@gnu.org>
2915         * src/roff/troff/div.cpp (top_level_diversion::space): Protect
2916         against division by zero.
2918 2005-01-13  Ruslan Ermilov  <ru@FreeBSD.org>
2920         * tmac/doc.tmac (Ef): Restore doc-curr-font and doc-curr-size.
2922 2004-12-19  Werner LEMBERG  <wl@gnu.org>
2924         * install-sh: New version; taken from texinfo CVS.
2926 2004-12-17  Werner LEMBERG  <wl@gnu.org>
2928         * tmac/devtag.tmac: Protect against loading twice.
2929         Protect agains compatibility mode.
2930         * tmac/www.tmac: Protect against loading twice.
2931         Load `devtag.tmac' before switching off compatibility mode.
2932         * tmac/an-old.tmac, tmac/s.tmac: Load `devtag.tmac'.
2934 2004-12-16  Mike Bianchi  <mbianchi@Foveal.com>
2936         * configure.ac: Produce `contrib/gdiffmk/tests/runtests'.
2937         * configure: Updated.
2939 2004-12-15  Thomas Klausner  <wiz@netbsd.org>
2941         * tmac/doc-syms, tmac/groff_mdoc.man: Add `libpam' library.
2943 2004-12-15  Werner LEMBERG  <wl@gnu.org>
2945         Make `test-groff' work again -- previously, wrong paths have been
2946         used.  Additionally, it can now be called from anywhere.
2948         * test-groff.in: Don't test for groff binary.  This is no longer
2949         necessary since the proper paths are determined by `configure'.
2950         (EXEEXT): Removed.  No longer used.
2951         (srcdir, builddir): Use values provided by the configure script.
2952         (XENVIRONMENT): Updated.
2954         * INSTALL: Updated.
2956 2004-12-14  Gaius Mulley  <gaius@glam.ac.uk>
2958         Make .tag and .taga work for all devices (but only grohtml actually
2959         handles them).
2961         * src/devices/grohtml/post-html.cpp: s/html-tag/devtag/.
2962         (text_glob::is_br, page::add_tag, html_printer::troff_tag,
2963         html_printer::handle_assertion): Don't use hard-coded string
2964         lengths.
2965         (html_printer::lookahead_for_table): Reset `tbl' properly if
2966         necessary.
2967         (html_printer::devtag): New function, handling `devtag'.
2968         (html_printer::special): Don't handle `html-tag'.
2970         * src/include/printer.h, src/libs/libdriver/printer.cpp
2971         (printer::devtag): New virtual function.
2973         * src/libs/libdriver/input.cpp (parse_x_command) <'X'>: Handle
2974         `devtag'.
2976         * src/roff/troff/env.cpp, src/roff/troff/mtsm.cpp,
2977         src/roff/troff/node.cpp: s/html-tag/devtag/.
2979         * src/roff/troff/input.cpp (tag, taga): Always call
2980         curenv->add_node.
2982         * tmac/an-old.tmac, tmac/s.tmac, tmac/troffrc-end: Use DEVTAG*
2983         macros instead of HTML-TAG*.
2985         * tmac/devtag.tmac: New file, defining the DEVTAG-* macros.
2987         * tmac/www.tmac: Load devtag.tmac.
2988         Replace HTML-TAG* macros with DEVTAG* macros.
2989         (HTML, HTML-NS): Changed definitions.
2990         (URL): Use HTML-NS.
2991         (HTML-TAG, HTML-TAG-NS, HTML-TAG-NEXT): Removed.
2993         * tmac/Makefile.sub (NORMALFILES): Add devtag.tmac.
2995 2004-12-10  Werner LEMBERG  <wl@gnu.org>
2997         Import Mike's `gdiffmk' package.
2999         * contrib/gdiffmk/*: New files.
3000         * Makefile.in (OTHERDIRS): Add contrib/gdiffmk.
3001         * NEWS: Updated.
3003 2004-12-08  Werner LEMBERG  <wl@gnu.org>
3005         Import Keith's `pdfmark' package.  Integration is very preliminary.
3007         * contrib/pdfmark/*: New files.
3008         * Makefile.in (OTHERDIRS): Add contrib/pdfmark.
3009         * NEWS: Updated.
3011 2004-12-07  Gaius Mulley  <gaius@glam.ac.uk>
3013         Fix a bug with title handling in HTML.
3015         * src/devices/grohtml/post-html.cpp (text_glob::is_nf,
3016         text_glob::is_fi, text_glob::is_ce): Use strlen to compute string
3017         length.
3018         (html_printer::handle_tag_within_title): New function.
3019         (html_printer::do_title): Use it.
3021         * tmac/s.tmac (TL): Don't set `need_eo_tl'.
3022         (cov*tl-au-print): Emit `.eo.tl' tag.
3024 2004-12-05  Alejandro López-Valencia  <dradul@etb.net.co>
3026         * man/groff_char.man: Minor imrovements.
3028 2004-12-04  Werner LEMBERG  <wl@gnu.org>
3030         * src/preproc/eqn/eqn.man: Revised.
3032 2004-11-25  Werner LEMBERG  <wl@gnu.org>
3034         * src/utils/xtotroff/xtotroff.c: Reformat to be similar to other
3035         groff source files.
3036         Include config.h.
3037         Include limits.h.
3038         Remove X_NOT_STDC_ENV conditional.
3039         (Version_string, program_name): New global variables.
3040         (groff_flag): Removed.
3041         (MapFont): Updated.
3042         (usage): Take a stream as argument.
3043         Use `program_name'.
3044         Update all callers.
3045         (main): Add `long_options' array for `--help' and `--version'.
3046         Make `-g' a dummy option.
3047         Handle `-v' and unknown options.
3048         Remove unused `position' variable.
3050         * src/utils/xtotroff/Makefile.sub (MAN1): Define.
3051         (XLIBS): Add LIBGROFF.
3053         * src/utils/xtotroff/xtotroff.man, src/utils/xtotroff/Makefile.in:
3054         New files.
3056         * src/devices/xditview/Dvi.c (default_font_map): Split into three
3057         parts to avoid compiler warning.
3058         (resources): Don't initialize with `default_font_map'.
3059         (ClassInitialize): Initialize first element of `resources'.
3061         * src/devices/xditview/Makefile.sub (devdir, xtotroff, DPIS, fonts):
3062         Removed.
3064         * src/utils/lkbib/lkbib.man, src/utils/lookbib/lookbib.man,
3065         src/utils/pfbtops/pfbtops.man: Revised, updated.
3067         * configure.ac: Generate src/utils/xtotroff/Makefile.
3068         * configure: Regenerated.
3070 2004-11-24  Werner LEMBERG  <wl@gnu.org>
3072         First fixes to get produce HTML.
3074         * src/devices/grohtml/post-html.cpp (generate_img_src): Add `alt'
3075         attribute.
3077         * tmac/www.tmac (IMG, PIMG, MPIMG): Add `alt' attribute.
3078         (HR, LI): Use `HTML</p>', not `HTML'.
3080         * doc/webpage.ms: Minor updates.
3082 2004-11-23  Larry Kollar  <kollar@alltel.net>
3084         Add option -S grohtml to determine the file split level.
3086         * src/devices/grohtml/post-html.cpp (split_level): New global
3087         variable.
3088         (html_header::determine_header_level): Use split_level.
3089         (main): Handle `-S' command line option.
3090         Sort options.
3092         * src/preproc/html/pre-html.cpp (scanArguments): Updated.
3094         * src/devices/grohtml/grohtml.man: Document it.
3095         Sort options.
3097         * NEWS: Document it.
3099 2004-11-23  Y T  <doarhop@hotmail.com>
3101         * tmac/s.tmac (ref*add-V, ref*add-N): New macros for handling
3102         the volume and number refer entries.
3104 2004-11-22  Werner LEMBERG  <wl@gnu.org>
3106         * src/devices/grohtml/html-table.cpp
3107         (html_table::emit_table_header): Don't emit `cols' attribute which
3108         doesn't exist in HTML 4.0 and is thus invalid.
3110         * NEWS: More minor fixes and updates.
3112 2004-11-18  Werner LEMBERG  <wl@gnu.org>
3114         * tmac/www.tmac (HTML-NS, HTML-TAG-NS, HTML-TAG-NEXT): Simplified.
3115         (HTML</p>): Minor clean-up.
3117         * tmac/groff_www.man: Updated.
3119         * src/devices/grohtml/grohtml.man: Revised and updated.
3121         * NEWS: Updated.
3123 2004-11-18  Gaius Mulley  <gaius@glam.ac.uk>
3125         * src/devices/grohtml/post-html.cpp (html_printer::do_heading):
3126         Fix space insertion.
3127         (html_printer::do_links): Fix rules generation around automatic
3128         heading links.
3130         * tmac/www.tmac (LK): Use HTML-TAG-NS.
3131         (HR): Simplify.
3132         No longer emit empty line for non-HTML devices.
3134 2004-11-17  Werner LEMBERG  <wl@gnu.org>
3136         * doc/Makefile.in (prepare_examples, webpage.html): Handle
3137         `groff.css'.
3139         * doc/Makefile.sub (EXAMPLEFILES, CLEANNOTSRCDIRADD,
3140         prepare_examples, webpage.html): Handle `groff.css'.
3142 2004-11-15  Werner LEMBERG  <wl@gnu.org>
3144         * NEWS, README, doc/webpage.ms: Updated.
3146         * tmac/www.tmac (HTML, HTML-TAG): Minor clean-ups.
3148 2004-10-30  Gaius Mulley  <gaius@glam.ac.uk>
3150         * src/include/printer.h (printer): Remove virtual function
3151         `round_width'.
3152         Update all source files.
3154         * src/devices/grohtml/post-html.cpp (html_printer): New member
3155         function `round_width'.
3157 2004-10-20  Tadziu Hoffmann  <hoffmann@usm.uni-muenchen.de>
3159         * src/preproc/tbl/table.cpp (table::do_row): Fix handling of the `d'
3160         column key letter suffix.
3162 2004-10-14  Werner LEMBERG  <wl@gnu.org>
3164         * Makefile.in (check): Depend on `site.exp' and `docheck'.
3165         (docheck): Run dejagnu's `runtest' if it exists.
3166         (site.exp): Create dejagnu configuration file.
3168         * Makefile.sub (DISTCLEANFILES): Add files related to dejagnu.
3170 2004-10-13  Werner LEMBERG  <wl@gnu.org>
3172         * src/devices/grohtml/html-text.cpp (html_text_get_alignment),
3173         src/devices/grohtml/post-html.cpp (make_val,
3174         html_printer::handle_state_assertion): Fix compiler warnings.
3176         * src/roff/troff/div.cpp: Include `stringclass.h' and `mtsm.h'.
3177         (diversion::diversion): Fix order of initializers.
3179         * src/roff/troff/div.h: Don't include `mtsm.h'.
3181         * src/roff/troff/env.cpp: Include `stringclass.h' and `mtsm.h'.
3182         (environment::environment): Fix order of initializers.
3183         (environment::make_tag, environment::construct_format_state): Fix
3184         compiler warnings.
3186         * src/roff/troff/input.cpp: Include `stringclass.h' and `mtsm.h'.
3187         (input_iterator::input_iterator, macro::macro): Fix order of
3188         initializers.
3190         * src/roff/troff/mtsm.cpp: Include only necessary header files.
3191         (state_set::add, state_set::val): Fix compiler warnings.
3193         * src/roff/troff/mtsm.h: Don't include `stringclass.h'.
3194         (bool_value_state, int_value_state, units_value_state,
3195         string_value_state): Remove comma after last element which causes
3196         an error with g++ 3.3.3.
3198         * src/roff/troff/node.cpp: Include `stringclass.h'.
3199         (hline_node::hline_node, vline_node::vline_node,
3200         space_char_hmotion_node, left_italic_corrected_node): Fix compiler
3201         warnings.
3202         (zero_width_node::zero_width_node): Fix order of initializers.
3204         * src/roff/troff/node.h: Don't include `mtsm.h'.
3205         (hmotion_node): Fix compiler warnings.
3207         * src/roff/troff/number.cpp: Include `stringclass.h' and `mtsm.h'.
3209 2004-10-12  Gaius Mulley  <gaius@glam.ac.uk>
3211         * doc/groff.css: New file.
3213         * doc/webpage.ms: Use `groff.css'.
3214         Other small fixes.
3216         * tmac/an-old.tmac (need_eo_h): New number register.
3217         (TH): Emit `.eo.tl' tag after title.
3218         (SH): Set `need_eo_h'.
3219         (an-trap): Handle `need_eo_h'.
3220         (an-do-tag): s/HTML-TAG-NS/HTML-TAG-NEXT/.
3222         * tmac/s.tmac (need_eo_h, need_eo_tl): New number registers.
3223         (TL): Always start diversion.
3224         Updated.
3225         (@AI): Always call `par@reset'.
3226         (@AB): Update code for -Thtml.
3227         (cov*tl-au-print): Handle -Thtml.
3228         (par@reset): Handle `need_eo_tl', `need_eo_h'.
3229         (@IP): Simplified.
3230         (@IT-html): Removed.
3231         (@SH): Set `need_eo_h' for -Thtml.
3232         (par@TL): s/HTML-TAG/HTMl-TAG-NS/.
3233         Set `need_eo_tl'.
3234         (@NH): s/HTML-TAG/HTMl-TAG-NS/.
3235         Set `need_eo_h' for -Thtml.
3236         (@EQ, @EN): Don't handle -Thtml specially.
3237         (par@load-init): Don't handle -Thtml specially.
3239         * tmac/www.tmac (www:paraspace): New macro.
3240         (HTML-NS, HTML-TAG-NS): Use new `tag' request.
3241         (HTML</p>, HTML-TAG-NEXT): New macros.
3242         (HnE): Emit tag `.eo.h' instead of break.
3243         (HR): s/HTML-NS/HTML/.
3244         (www-end-nowhere): End diversion only if `www-html' not set.
3245         Emit `.eo.tl' tag.
3246         (ULS, ULE): s|HTML|HTML</p>|.
3247         (LI): Call `www:paraspace'.
3248         (HEAD): New macro.
3250 2004-10-11  Gaius Mulley  <gaius@glam.ac.uk>
3252         * src/roff/troff/request.h (macro): Make `p' public.
3253         New variable `is_a_diversion'.
3254         New member function `is_diversion'.
3257         * src/devices/grohtml/html.h (simple_output): New member function
3258         `force_nl'.
3260         * src/devices/grohtml/html-table.cpp (tabs::compatible): Fix
3261         computation of `total'.
3262         (tabs::check_init): New function.
3263         (html_table::emit_table_header): Emit style data.
3264         (html_table::insert_column): Improved.
3266         * src/devices/grohtml/html-table.h: Updated.
3268         * src/devices/grohtml/html-text.cpp (html_text::html_text):
3269         Initialize `start_space' with TRUE.
3270         (html_text::end_tag, html_start_tag): Fix `P_TAG' and `PRE_TAG'
3271         cases.
3272         (html_text::flush_text): Set `start_space' flag.
3273         (html_text::uses_indent, html_text::remove_para_space,
3274         html_text::get_alignment): New functions.
3275         (html_text::push_para): Updated.
3276         (html_text::do_para): Check for empty argument.
3277         Don't set `space_emitted'.
3278         (html_text::do_space, html_text::emit_space): Updated.
3280         * src/devices/grohtml/html-text.h (tag_definition): New variable
3281         `really_issued'.
3282         (html_text): New member function `uses_indent', `remove_para_space',
3283         `get_alignment'.
3285         * src/devices/grohtml/output.cpp (simple_output::force_nl): New
3286         function.
3287         (simple_output:nl): Always emit `\n'.
3289         * src/devices/grohtml/post-html.cpp: Include `string.h'.
3290         (BASE_POINT_SIZE): Removed.
3291         (base_point_size, head_info): New global variables.
3292         (text_glob): New member functions `is_ll', `is_tl', `is_eo_tl',
3293         `is_eo_h'.
3294         (text_glob::is_nf, text_glob::is_fi): Handle `.fi 0' and `.fi 1'
3295         tags, respectively.
3296         (page::add_and_encode): Pass additional parameter for tag flag.
3297         (assert_pos): New structure.
3298         (assert_state): New class.
3299         (html_printer): Remove `indentation', `prev_indent'.
3300         Add variables `troff_indent', `device_indent', `temp_indent'.
3301         Add variables `seen_indent', `next_indent', `seen_pageoffset',
3302         `next_pageoffset', `seen_linelenght', `next_linelength',
3303         `seen_center', `next_center', `seen_space', `seen_break', `as'.
3304         Add member functions `do_check_center', `do_space', `do_head',
3305         `get_troff_indent', `restore_troff_indent', `handle_assertion',
3306         `handle_state_assertion', `do_end_para', `set_char_and_width'.
3307         Change argument to `do_fill' to `char *'.
3308         Update constructor.
3309         (html_printer::emit_raw): Call `shutdown_table'.
3310         Use new functions.
3311         (html_printer::do_center): Simplified.
3312         (html_printer::do_title): Improved.
3313         (html_printer::write_header): Emit one more newline.
3314         Use new functions.
3315         (html_printer::do_heading, html_printer::do_indent,
3316         html_printer::do_eol, html_printer::do_tab_ts,
3317         html_printer::do_tab, html_printer::do_tab0,
3318         html_printer::calc_po_in, html_printer::next_horiz_pos,
3319         html_printer::remove_courier_tabs,
3320         html_printer::insert_tab0_foreach_tab, html_printer::begin_page):
3321         Updated.
3322         (html_printer::do_linelength, html_printer::do_pageoffset,
3323         html_printer::do_indentation, html_printer::do_tempindent,
3324         html_printer::do_tab_te): Simplified.
3325         (html_printer::do_pointsize): Check whether point size is really
3326         associated a `.tl' tag.
3327         (html_printer::do_break): Rewritten.
3328         (html_printer::troff_tag): Improved.
3329         (html_printer::flush_globs): Updated.
3330         (html_printer::lookahead_for_tables): Handle `is_br'.
3331         Use new functions.
3332         (html_printer::set_char): Check `sbuf_style.f'.
3333         (html_printer::write_navigation): Use string comparison.
3334         (html_printer::~html_printer): Emit `head_info'.
3335         (html_printer::special): Rewritten.
3336         (get_str, make_val): New functions.
3337         (main): New option `s' to set the base point size.
3339         * src/preproc/html/pre-html.cpp (scanArguments): Handle option `s'.
3341 2004-10-10  Gaius Mulley  <gaius@glam.ac.uk>
3343         * src/roff/troff/node.cpp: New extern `debug_state'.
3344         Include `stringclass.h' and `mtsm.h'.
3345         Implement new classes and class members from `node.h'.
3346         (real_output_file): Make `fp' public.
3347         (troff_output_file): New variables `cur_div_level' and `tag_list'.
3348         Update constructors.
3349         (troff_output_file::really_print_line): Check whether we should push
3350         the current troff state and use the state at the start of the
3351         invocation of this diversion.
3352         (troff_output_file::add_to_tag_list): New member function.
3353         (node::add_char): Handle `glyph_comp_np'.
3355         * src/roff/troff/node.h: Include `mtsm.h'.
3356         (node): New variables `state', `push_state', `div_nest_level',
3357         `is_special'.  Update constructors, all descendants.
3358         Pass additional argument to `add_char' member function.
3359         New virtual member functions `is_tag', `debug_node',
3360         `debug_node_list'.  Update all descendants.
3361         (tag_node): New class for handling tags.
3362         (output_file): Add variable `state'.
3364 2004-10-09  Gaius Mulley  <gaius@glam.ac.uk>
3366         * src/roff/troff/mtsm.cpp, src/roff/troff/mtsm.h: New files,
3367         providing a minimal troff state machine to emit meta tags for the
3368         post-grohtml device driver.
3370         * src/roff/troff/Makefile.sub (OBJS, CCSRCS, HDRS): Handle new
3371         files.
3373 2004-10-09  Werner LEMBERG  <wl@gnu.org>
3375         * tmac/trace.tmac: Fix handling of `am' and `am1' calls.
3377 2004-10-06  Gaius Mulley  <gaius@glam.ac.uk>
3379         * src/roff/troff/column.cpp (vjustify_node::copy): Updated.
3381         * src/roff/troff/div.h: Include `mtsm.h'.
3382         (diversion): New variables `any_chars_added', `needs_push',
3383         `saved_seen_break', `saved_seen_space', `saved_seen_eol',
3384         `saved_suppress_next_eol', `modified_tag'.
3385         New virtual member function `is_diversion'.  Update all descendants.
3387         * src/roff/troff/div.cpp (diversion::diversion,
3388         macro_diversion::macro_diversion): Updated.
3389         (do_divert): Handle `seen_break', `seen_space', `seen_eol',
3390         `suppress_next_eol'.
3391         (top_level_diversion::space): Handle `curenv->seen_space'.
3392         (page_offset): Update tag handling.
3393         (space_request, blank_line, flush_output): Don't call `add_html_tag'.
3395         * src/roff/troff/env.h (environment): Make `tabs' public.
3396         Remove `ignore_next_eol', `emitted_node'.
3397         Update `output_line', `output'.
3398         New variables `seen_space', `seen_eol', `suppress_next_eol',
3399         `seen_break'.
3400         New member functions `construct_state', `make_tag',
3401         `construct_format_state, `construct_new_line_state,
3402         `dump_troff_state'.
3403         Remove `add_html_tag', `make_html_tag'.
3405         * src/roff/troff/env.cpp: New externs `suppress_push',
3406         `get_diversion_state', `global_diverted_space'.
3407         (pending_output_line): New variable `was_centered'.
3408         Update constructor and all callers.
3409         (pending_output_line::output): Call `curenv->construct_format_state'.
3410         (environment::environment, environment::copy): Updated.
3411         (environment::output): Handle `was_centered'.
3412         (environment::add_char): Handle construct and diversion state.
3413         (environment::add_node): Handle construct state.
3414         (environment::newline): Handle `was_centered'.
3415         (environment::output_line): Updated.
3416         (environment::possibly_break_line): Updated.
3417         Update tag handling.
3418         (environment::add_html_tag): Replaced with...
3419         (environment::make_tag): New function.
3420         (environment::add_html_tag_tabs, environment::make_html_tag): Removed.
3421         (environment::dump_troff_state): New debugging function.
3422         (environment::construct_state, environment::construct_format_state,
3423         environment::construct_new_line_state): New functions.
3424         (environment::do_break): Updated.
3425         Handle `global_diverted_space'.
3426         (environment::handle_tag): Update tag handling.
3427         (point_size, fill, do_break_request): Don't call `add_html_tag'.
3428         (no_fill): Don't call `add_html_tag'.
3429         Set `suppress_next_eol'.
3430         (center, right_justify, line_length, indent, temporary_indent,
3431         set_tabs):
3432         Update tag handling.
3434         * src/roff/troff/input.cpp: Don't include `stringclass.h'.
3435         (input_iterator): New variables `is_diversion', `diversion_state'.
3436         Update constructors.
3437         (input_stack): New member functions `get_div_level',
3438         `get_diversion_state', `check_end_diversion'.
3439         New variables `div_level', `diversion_state'.  Initialize them.
3440         (suppress_push, global_diverted_space): New global variables.
3441         (input_stack::finish_get, input_stack::finish_peek,
3442         input_stack::remove_boundary, input_stack::end_file,
3443         input_stack::clear, input_stack::pop_macro): Call
3444         `check_end_diversion'.
3445         (input_stack::push): Handle `div_level' and `diversion_state'.
3446         (get_diversion_state): New function.
3447         (diverted_space_node::reread): Handle `global_diverted_space'.
3448         (macro::macro): Update constructors.
3449         (macro::is_diversion): New function.
3450         (macro::operator=): Set `is_a_diversion'.
3451         (string_iterator): New member function `is_diversion'.
3452         (string_iterator::string_iterator): Update constructors.
3453         (string_iterator::fill): Set `div_nest_level'.
3454         (macro_iterator): New member function `is_diversion'.
3455         (do_if_request): Handle `suppress_push'.
3456         (tag, taga): New functions.
3457         (init_input_requests): Add `tag' and `taga' requests.
3459 2004-10-05  Gaius Mulley  <gaius@glam.ac.uk>
3461         * src/include/font.h (font): New member function
3462         `get_image_generator'.
3463         New variables `unscaled_charwidths' and `image_generator'.
3465         * src/libs/libgroff/font.cpp (font::get_width): Always return the
3466         character's unscaled width if `font::unscaled_charwidths' is set.
3467         (font::get_image_generator): New function.
3468         (font::load_desc): Check the `unscaled_charwidths' and
3469         `image_generator' keywords.
3471         * src/libs/libgroff/fontfile.cpp: Initialize
3472         `font::unscaled_charwidths' and `font::image_generator'.
3474         * font/devhtml/DESC.proto: s/html/unscaled_charwidths/.
3476         * font/devhtml/Makefile.sub (DESC): Set `image_generator' keyword.
3478         * man/groff_font.man: Document `unscaled_charwidths' and
3479         `image_generator'.
3481         * src/preproc/html/pre-html.cpp: Include `device.h'.
3482         (image_gen): New global variable.
3483         (imageList::createPage): Use `image_gen'.
3484         (main): Use `image_generator' keyword.
3486 2004-10-04  Gaius Mulley  <gaius@glam.ac.uk>
3488         * tmac/html.tmac: Handle \[sqrtex].
3490 2004-10-04  Gaius Mulley  <gaius@glam.ac.uk>
3492         * src/include/printer.h (printer): New virtual method `round_width'.
3494         * src/devices/grodvi/dvi.cpp, src/devices/grolbp/lbp.cpp,
3495         src/devices/grolj4/lj4.cpp, src/devices/grops/ps.cpp,
3496         src/devices/grotty/tty.cpp (printer::round_width): New function
3497         member.
3499         * src/devices/grohtml/post-html.cpp (printer::round_width): New
3500         function member.
3501         (html_printer::set_numbered_char): Use it.
3503 2004-10-03  Gaius Mulley  <gaius@glam.ac.uk>
3505         * aclocal.m4 (GROFF_GHOSTSCRIPT_PATH): New macro.
3507         * configure.ac: Call GROFF_GHOSTSCRIPT_PATH.
3509         * configure: Regenerated.
3511         * Makefile.in (GHOSTSCRIPT): New variable.
3512         (MDEFINES): Add GHOSTSCRIPT.
3514 2004-10-03  Werner LEMBERG  <wl@gnu.org>
3516         * INSTALL.gen: Updated (taken from texinfo CVS).
3518 2004-09-28  Werner LEMBERG  <wl@gnu.org>
3520         * NEWS: Updated.
3522 2004-09-28  Heinz-Jürgen Oertel  <hj.oertel@surfeu.de>
3524         * tmac/groff_www.man: Revised and updated.
3526 2004-09-26  Werner LEMBERG  <wl@gnu.org>
3528         Fix \$@ and \$* to handle any number of arguments.
3530         * src/roff/troff/input.h (BEGIN_QUOTE, END_QUOTE): New special
3531         characters.
3533         * src/roff/troff/input.cpp (input_iterator::internal_level):
3534         Removed.
3535         (input_stack): New member functions `increase_level' and
3536         `decrease_level'.
3537         (input_stack::get_level): Don't use `internal_level'.
3538         (get_copy, token::next): Handle BEGIN_QUOTE and END_QUOTE.
3539         (end_quote_iterator): Completely removed.
3540         (interpolate_arg): Build string for \$@ and \$* which is then
3541         pushed onto the input stack.
3543 2004-09-23  Keith Marshall  <keith.d.marshall@ntlworld.com>
3545         * tmac/groff_ms.man, doc/groff.texinfo (ms Document Control
3546         Registers): Document changes from 2004-09-19.
3548 2004-09-23  Werner LEMBERG  <wl@gnu.org>
3550         * tmac/an-old.tmac (ne): Using default scaling operator.
3552 2004-09-19  Keith Marshall  <keith.d.marshall@ntlworld.com>
3554         This change implements the following features:
3556         PORPHANS
3557           New numeric register: Defines number of lines following LP, PP,
3558           QP, IP or XP, which must be kept together, before any automatic
3559           page break.  If insufficient space remains on the current page, a
3560           page break is forced before the new paragraph begins.
3562         HORPHANS
3563           New numeric register: Sets number of lines of following paragraph
3564           which must be kept with a heading, defined by NH or SH, before any
3565           automatic page break.  If insufficient space remains on the
3566           current page, a page break is forced before the heading.
3568         GROWPS
3569           (Thanks to Joerg van den Hoff, for this idea).
3571           New numeric register: Sets the first level of heading (set with
3572           NH), which will keep the same point size as body text; e.g. if
3573           GROWPS is set to 3, .NH 3, .NH 4, ... will produce headings at the
3574           point size specified by \n[PS], but .NH 2 and .NH 1 will have
3575           progressively larger point sizes, determined by \n[PSINCR] (see
3576           below).
3578         PSINCR
3579           New numeric register: Sets the point size increment for each level
3580           of heading, (set with NH), below the threshold level set by
3581           GROWPS; e.g. if \n[PS] = 10, \n[GROWPS] = 3 and \n[PSINCR] = 2.0p,
3582           then .NH 1 will produce 14pt headings, .NH 2 will produce 12pt,
3583           and all other levels will remain at 10pt, (because \n[PS] = 10).
3585         SH
3586           Existing macro now accepts a numeric argument, to make heading
3587           size match that of NH with same argument value, when the
3588           GROWPS/PSINCR feature is enabled.
3590         SN-DOT
3591           New string, set by NH macro, replaces the existing (undocumented)
3592           use of SN, to represent the assigned section number.
3594         SN-NO-DOT
3595           New string, set by NH macro, represents the assigned section
3596           number, but omits the terminal period (periods at intermediate
3597           levels are retained).
3599         SN
3600           String set by NH macro, originally undocumented, now implemented
3601           as an alias for SN-DOT (which reproduces original behaviour).
3603         * tmac/s.tmac (PORPHANS): New register.
3604         (par*start): Use it.
3605         (HORPHANS, GROWPS, PSINCR): New registers.
3606         (SH-NO-TAG, @SH): Use them.
3607         (@NH): Improved.
3609 2004-09-19  Keith Marshall  <keith.d.marshall@ntlworld.com>
3611         * NEWS, doc/groff.texinfo (ms Display and Keeps), tmac/groff_ms.man:
3612         Document the deletion of `Ds' and `De' macros.
3614 2004-09-10  Werner LEMBERG  <wl@gnu.org>
3616         In tbl, handle \a as an interpreted leader character if in
3617         compatibility mode.
3619         * src/preproc/tbl/table.h (PREFIX, PREFIX_CHAR, LEADER,
3620         LEADER_CHAR): New macros.
3621         (compatible_flag): New declaration.
3623         * src/preproc/tbl/main.cpp (table_input): Add LEADER_1, LEADER_2,
3624         LEADER_3, and LEADER_4 to `state'.
3625         (table_input::get): Handle `\a'.
3627         * src/preproc/tbl/table.cpp (PREFIX): Removed.
3628         (LEADER_REG): New macro.
3629         (table::init_output): Define LEADER_REG string register if in
3630         compatibility mode.
3632         * src/preproc/tbl/tbl.man: Document it.
3634 2004-08-18  Werner LEMBERG  <wl@gnu.org>
3636         * tmac/doc.tmac (An): Fix error message.
3638 2004-08-06  Werner LEMBERG  <wl@gnu.org>
3640         * src/preproc/tbl/main.cpp (main): Call `fatal' not `error' if a
3641         file can't be opened.  UNIX tbl has the same behaviour.
3643 2004-08-05  Y T  <doarhop@hotmail.com>
3645         * src/preproc/grn/hdb.cpp (compatibility_flag): Add declaration.
3646         (DBRead): If in compatibility mode, take into account the text
3647         when computing figure boundaries.
3649 2004-08-05  Werner LEMBERG  <wl@gnu.org>
3651         * src/preproc/soelim/soelim.man: Improved.  Based on suggestions
3652         from Tadziu Hoffmann.
3654 2004-08-03  Werner LEMBERG  <wl@gnu.org>
3656         * doc/meref.me: Document `_M' register.
3658 2004-08-03  Martin Husemann  <martin@duskware.de>
3660         Make hpftodit work correctly on big-endian systems.
3662         * src/utils/hpftodit/hpftodit.cpp (File): New method
3663         `get_uint32(char *)'.
3664         (entry): New member `orig_value'.
3665         (read_tags): Use new method.
3666         (output_font_name, read_and_output_pcltypeface, dump_ascii):
3667         Updated.
3669 2004-08-01  Werner LEMBERG  <wl@gnu.org>
3671         * tmac/s.tmac: Undo change 2003-06-29.  The proper macro definitions
3672         are already in X11's `macros.t' file.
3674 2004-08-01  Jeff Conrad  <jeff_conrad@msn.com>
3676         * src/utils/hpftodit/hfptodit.cpp (output_font_name, dump_ascii):
3677         Fix casting bug.
3678         (read_and_output_pcltypeface): Handle strings with length <= 4.
3680 2004-07-27  Egil Kvaleberg  <egil@kvaleberg.no>
3682         * tmac/s.tmac (pg@top): Don't save `PO' register.
3683         (pg*end-col, pg*end-page): Directly use `PO' register.
3685 2004-07-27  Werner LEMBERG  <wl@gnu.org>
3687         * man/groff_tmac.man: Mention `trace' and `pic' macro packages.
3689         * src/preproc/refer/refer.cpp (output_references): Check for
3690         empty hash table.
3691         * src/preproc/refer/refer.man: Improve documentation of
3692         `bibliography' command.
3694 2004-07-26  Werner LEMBERG  <wl@gnu.org>
3696         Add requests `fcolor' and `gcolor'.
3698         * src/roff/troff/env.cpp (fill_color_change, glyph_color_change):
3699         New functions.
3700         (init_env_requests): Add `fcolor' and `gcolor'.
3702         * src/roff/troff/input.h: Export do_glyph_color and do_fill_color.
3704         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo
3705         (Colors): Document new requests.
3707 2004-07-24  Werner LEMBERG  <wl@gnu.org>
3709         Add support for fractional point sizes in ms macros.  A value for
3710         PS, VS, FPS, and FVS greater than or equal to 1000 is always divided
3711         by 1000.  For example, `.nr PS 10250' sets the font size to 10.25p.
3713         * tmac/s.tmac (@AU, @AI, par@load-init, par@init, par@reset, NL,
3714         PX): Handle fractional point sizes for PS, VS, FPS, and FVS.
3716         * tmac/groff_ms.man, docs/groff.texinfo (ms Document Control
3717         Registers), NEWS: Document it.
3719 2004-07-19  Werner LEMBERG  <wl@gnu.org>
3721         * src/preproc/pic/lex.cpp (for_input): Add member `from'.
3722         Update constructor.
3723         (do_for, for_input::get, for_input::peek): Handle negative `by'.
3724         * src/preproc/pic/pic.man, doc/pic.ms, NEWS: Document it.
3726 2004-07-08  Thomas Klausner  <wiz@netbsd.org>
3728         * tmac/doc-syms (doc-str-St--p1003.1-2004): New string.
3729         * tmac/groff_mdoc.man: Updated.
3731 2004-07-05  Werner LEMBERG  <wl@gnu.org>
3733         * doc/groff.texinfo (Manipulating Hyphenation): Further improve
3734         documentation of `hcode'.
3736 2004-07-04  Sang Dae Yu  <sdyu@bh.knu.ac.kr>
3738         Improve appearance of arrows in pic.
3740         * src/preproc/pic/object.cpp (draw_arrow): Make outline of filled
3741         arrow head thin.
3742         Use two line segments for drawing non-filled arrow head.
3743         (line_object::print, spline_object::print): Shorten line length to
3744         avoid arrow sticking.
3745         (arc_object::print): Take arrow direction into account.
3747 2004-07-03  Heinz-Jürgen Oertel  <hj.oertel@surfeu.de>
3749         * tmac/groff_www.man: Update documentation of .MPIMG.
3751 2004-07-03  Werner LEMBERG  <wl@gnu.org>
3753         * tmac/an-old.tmac (RI): Always start with font `R'.
3754         (RI, IR): Properly end with font `R'.
3756 2004-07-02  Paul Eggert  <eggert@cs.ucla.edu>
3758         * man/ditroff.man, man/groff_font.man, man/groff_out.man,
3759         src/devices/grohtml/grohtml.man, src/preproc/grn/grn.man,
3760         src/preproc/pic/pic.man, tmac/groff_man.man, tmac/groff_ms.man:
3761         Don't pass more than six arguments to .R, .I, .B, etc., for
3762         compatibility with traditional troff macros.
3764 2004-07-02  Werner LEMBERG  <wl@gnu.org>
3766         * src/roff/troff/input.h: s/COMPATIBLE_SAVE/PUSH_GROFF_MODE/.
3767         s/COMPATIBLE_RESTORE/POP_GROFFCOMP_MODE/.
3768         Update all users.
3769         (PUSH_COMP_MODE): New internal character constant.
3770         Update all users.
3772         * src/roff/troff/input.cpp (get_copy): Handle PUSH_GROFF_MODE,
3773         PUSH_COMP_MODE, and POP_GROFFCOMP_MODE.
3774         (token::next, macro::append): Handle PUSH_COMP_MODE.
3775         (decode_args): Add PUSH_GROFF_MODE or PUSH_COMP_MODE before and
3776         POP_GROFFCOMP after each of the decoded arguments to make them
3777         independent from the compatibility mode status.
3778         (comp_mode): Add `COMP_ENABLE'.
3779         (do_define_string, do_define_macro): Handle COMP_ENABLE.
3780         (define_string, append_string, define_macro, define_indirect_macro,
3781         append_macro, append_indirect_macro): Handle `compatible_flag'.
3782         (chop_macro, substring_request, asciify): Handle PUSH_COMP_MODE.
3784         * man/groff_diff.man, doc/groff.texinfo: Updated.
3786 2004-07-01  Werner LEMBERG  <wl@gnu.org>
3788         * doc/groff.texinfo: Improve documentation of `hcode'.
3789         Use @documentencoding and convert document to latin-1; to do that
3790         make latin characters active and assign proper macros (within a
3791         @tex...@end tex environment).
3792         * doc/Makefile.in (.texinfo.html, groff): Use --enable-encoding.
3793         * doc/Makefile.sub (groff): Ditto.
3795 2004-06-29  Werner LEMBERG  <wl@gnu.org>
3797         Implement two new conditional operators `F <name>' and `S <name>'
3798         which check whether <name> is a valid font or style, respectively.
3800         * src/libs/libgroff/font.cpp (text_file): Add `silent' member.
3801         (text_file::text_file): Updated.
3802         (text_file::error): Don't emit message if `silent' is set.
3803         (font::load_font): Add optional third argument (which is directly
3804         passed to `load'.
3805         (font::load): Add optional second argument to check the header of
3806         a font only, without emitting warning or error messages.
3807         * src/include/font.h (font): Updated.
3809         * src/roff/troff/input.cpp (do_if_request): Implement `S' and `F'
3810         conditionals.
3811         * src/roff/troff/node.cpp (mount_font_no_translate): Add optional
3812         fourth argument to check a font without mounting.
3813         (check_font, check_style): New functions.
3814         * src/roff/troff/node.h: Updated.
3816         * man/groff_diff.man, man/groff.man, NEWS, doc/groff.texinfo:
3817         Updated.
3819 2004-06-27  Werner LEMBERG  <wl@gnu.org>
3821         Implement new string-valued register `.sty' to return the current
3822         style name.
3824         * env.cpp (environment::get_style_name_string): New function.
3825         (init_env_requests): Add `.sty' register.
3826         * env.h (environment): Updated.
3827         * node.cpp (font_info): Make `get_style_name' a friend.
3828         (get_style_name): New function.
3829         * node.h: Updated.
3831         * man/groff_diff.man, man/groff.man, NEWS, doc/groff.texinfo:
3832         Updated.
3834 2004-06-15  Werner LEMBERG  <wl@gnu.org>
3836         * src/preproc/tbl/main.cpp (process_data) <GOT_RIGHT_BRACE>: Handle
3837         `nospaces' option.
3839 2004-06-10  Colin Percival  <colin.percival@wadham.ox.ac.uk>
3841         * doc/meintro.me, doc/meref.me: Don't use \*[td], \n[dy], \*[mo],
3842         and \n[mo] to avoid dependency on current date.
3844 2004-06-08  Werner LEMBERG  <wl@gnu.org>
3846         * Makefile.sub (install_data): New target.
3848 2004-06-04  Werner LEMBERG  <wl@gnu.org>
3850         * src/libs/libxutil/Makefile.sub (EXTRA_CFLAGS): Define.
3852 2004-06-03  Werner LEMBERG  <wl@gnu.org>
3854         * src/devices/xditview/Makefile.sub (EXTRA_LDFLAGS): Fix typo and
3855         order of libraries.
3856         (install_data): Add $(srcdir).
3858         * src/utils/xtotroff/Makefile.sub (EXTRA_LDFLAGS): Fix order of
3859         libraries.
3861 2004-06-02  Werner LEMBERG  <wl@gnu.org>
3863         * aclocal.m4 (GROFF_X11): s/have_no_x/groff_no_x/.
3864         Add X11 stuff to CFLAGS, LDFLAGS, and LIBS temporarily.
3865         Add test for Xmu library.
3866         (GROFF_APPRESDIR_OPTION, GROFF_APPRESDIR_CHECK,
3867         GROFF_APPRESDIR_DEFAULT): New macros.
3869         * configure.ac: Call GROFF_APPRESDIR_OPTION, GROFF_APPRESDIR_CHECK,
3870         and GROFF_APPRESDIR_DEFAULT.
3872         * configure: Regenerated.
3874         * Makefile.in (appresdir): New variable.
3875         (MDEFINES): Add appresdir.
3877         * src/devices/xditview/Makefile.sub (EXTRA_LDFLAGS): Add -Xmu and
3878         -Xt.
3879         (install_data, uninstall_sub): New targets to handle GXditview.ad.
3881         * src/utils/indxbib/Makefiles.ub (install_data): Depend on
3882         `$(srcdir)/eign', not `eign'.
3884         * MANIFEST, INSTALL, NEWS, PROBLEMS: Updated.
3886         * man/groff_out.man, man/roff.man, src/devices/grops/grops.man,
3887         src/devices/xditview/gxditview.man, src/roff/groff/groff.man:
3888         Protect (g)xditview with `\%' to avoid hyphenation.
3889         Other minor formatting.
3891 2004-06-01  Werner LEMBERG  <wl@gnu.org>
3893         Integrate gxditview into groff's standard directory hierarchy.
3895         * src/xditview/*: Moved to ...
3896         * src/devices/xditview/*: Here.
3897         Moved DviChar.h and XFontName.h to src/include.
3898         Moved DviChar.c and XFontName.c to new directory src/libs/libxutil.
3899         Split off `xmalloc' into new file src/libs/libxutil/xmalloc.c.
3900         Moved xtotroff.c to new directory src/utils/xtotroff.
3901         Provide proper Makefile.sub files (reusing the stuff from
3902         Imakefile.in).
3903         DESC renamed to DESC.in.
3904         Removed GXDitview-ad.h, INSTALL, Imakefile.in.
3905         Converted everything from K&R to ANSI C.
3906         Decorated with const where appropriate.
3907         Cast string constants with `String' and `char *' where appropriate.
3908         Made it compile with C++ (used as a C compiler).
3909         Removed other minor compiler warnings.
3911         * src/devices/xditview/device.c: Include config.h, string.h, and
3912         defs.h.
3913         Don't declare `exit', `strtok', `strchr', and `getenv'.
3914         (FONTPATH): Remove.
3916         * src/devices/xditview/font.c: Don't declare `XParseFontName' and
3917         `XFormatFontName'.
3919         * src/devices/xditview/xditview.c: Include config.h.
3920         Include stdio.h earlier.
3921         Protect declaration of `popen' and `pclose' with
3922         NEED_DECLARATION_POPEN and NEED_DECLARATION_PCLOSE.
3923         Replace `caddr_t' with `XtPointer'.
3924         (MakePromptFunc): New typedef.
3925         (DoPrint): Use RETSIGTYPE.
3926         (promptfunction): Change type to MakePromptFunc.
3927         (MakePrompt): Use MakePromptFunc for third argument.
3928         (xmalloc): Removed.
3930         * src/devices/xditview/ad2c: Add casts to `String'.
3932         * src/include/XFontName.h (XFontNameString): Don't use array
3933         notation.
3934         Add prototypes for `XParseFontName', `XFormatFontName',
3935         `XCompareFontName', and `XCopyFontName'.
3937         * src/include/Makefile.sub (HDRS): Add `DviChar.h' and
3938         `XFontName.h'.
3940         * src/utils/xtotroff/xtotroff.c: Include getopt.h.
3941         Don't declare `XParseFontName' and `XFormatFontName'.
3942         (xmalloc): Removed.
3943         (main): Remove `optind' and `optarg'.
3945         * Makefile.in (XDEVDIRS, XPROGDIRS, XLIBDIRS): New variables
3946         (to select programs which need X).
3947         Make XDEVIDIRS depend on `FORCE'.
3948         (X_CFLAGS, X_LIBS, X_EXTRA_LIBS, X_PRE_LIBS): New variables (for
3949         X support).
3950         (MDEFINES): Updated.
3951         (LIBDIRS): Use XLIBDIRS.
3952         (CPROGDIRS): Use XPROGDIRS.
3953         (DEVDIRS): Remove font directories for gxditview.
3954         (ALLDIRS, DISTDIRS): Add XDEVDIRS.
3955         (EXTRADIRS): Remove src/xditview.
3957         * Makefile.sub (DISCLEANFILES): Updated.
3959         * Makefile.comm (LIBXUTIL): New variable.
3960         (.cpp.o, .cpp.obj): Handle EXTRA_CCFLAGS.
3961         (.c.o, .c.obj, .y.o): Handle EXTRA_CFLAGS.
3963         * Makefile.cpg, Makefile.ccpg ($PROG): Handle EXTRA_LDFLAGS.
3965         * aclocal.m4 (GROFF_X11): New function.
3967         * configure.ac: Call GROFF_X11.
3968         Don't create src/xditview/Imakefile.
3969         Don't emit notice how to build gxditview.
3971         * configure: Regenerated.
3973         * test-groff.in (GROFF_BIN_PATH, XENVIRONMENT): Updated.
3975 2004-05-28  Akihiro Sagawa  <sagawa@sohgoh.net>
3977         * Makefile.in (CPPFLAGS): Define.
3978         (MDEFINES): Add CPPFLAGS.
3980 2004-05-27  Werner LEMBERG  <wl@gnu.org>
3982         * arch/misc/Makefile.sub (shdeps.sed): Use $(srcdir).
3984 2004-05-26  Niklas Edmundsson  <nikke@acc.umu.se>
3986         Fix problems with `friend name injections'.
3988         * src/preproc/eqn/box.h (make_mark_box, make_lineup_box,
3989         make_script_box), src/roff/troff/div.h (end_diversions),
3990         src/roff/troff/env.h (title), input.cpp (process_input_stack): Undo
3991         change 2004-04-08.
3993 2004-05-25  Bernd Warken  <bwarken@mayn.de>
3995         * src/preproc/pic/pic.man, doc/pic.ms: Add example for `command'.
3997 2004-05-25  Werner LEMBERG  <wl@gnu.org>
3999         * src/libs/libgroff/cset.cpp, src/libs/libgroff/lf.cpp,
4000         src/libs/libgroff/color.cpp: Include lib.h.
4002 2004-05-25  Paul Eggert  <eggert@cs.ucla.edu>
4004         * PROBLEMS: Update documentation for problems with Sun C++ 5.0
4005         through Forte 6u1, and for how to get GNU make on Solaris.
4007 2004-05-24  Werner LEMBERG  <wl@gnu.org>
4009         * PROBLEMS: Document problems with gcc 3.4.0 on Sun.  Reported
4010         by Paul Eggert.
4012 2004-05-15  Keith Marshall  <keith.d.marshall@ntlworld.com>
4014         * arch/misc/Makefile.sub (shdeps.sed): Don't use `$<' in explicit
4015         rule.
4017 2004-05-14  Werner LEMBERG  <wl@gnu.org>
4019         * REVISION: Set to 2.
4021         * aclocal.m4 (GROFF_STDINT_H): Removed.
4022         (GROFF_INTTYPES_H): Define HAVE_CC_INTTYPES_H.
4024         * configure.ac: Updated.
4025         * configure, src/include/config.hin: Regenerated.
4027         * src/libs/libgroff/tmpname.cpp: Don't include stdint.h but
4028         inttypes.h conditionally.
4030 2004-05-13  Werner LEMBERG  <wl@gnu.org>
4032 Version 1.19.1 released
4033 =======================
4035 2004-05-10  Stephen Gildea  <http://www.gildea.com/stephen>
4037         * src/preproc/refer/label.y (same_author_last_name,
4038         same_author_name): Handle empty sort keys.
4040 2004-05-10  Werner LEMBERG  <wl@gnu.org>
4042         * NEWS, README, TODO, PROJECTS, PROBLEMS, MANIFEST, doc/webpage.ms,
4043         tmac/TODO: Updated.
4045         * tmac/doc-syms (doc-str-Lb-libposix, doc-str-Lb-libpthread,
4046         doc-str-Lb-librt): Reset font.
4047         (Lb): Rename `doc-str-Lb' to `doc-str-Lb1'.
4048         Provide `doc-str-Lb' to reset font.
4049         * tmac/groff_mdoc.man: Updated.
4051 2004-05-08  Jan Schaumann  <jschauma@netmeister.org>
4053         * src/preproc/html/pre-html.cpp (make_message): Make it work for
4054         snprintf versions which don't conform to ANSI C 99 (this is,
4055         counting the string's trailing null byte in the return value).
4057 2004-05-07  Keith Marshall  <keith.d.marshall@ntlworld.com>
4059         * src/roff/troff/node.cpp (suppress_node::tprint): Don't expect
4060         that all implementations of sprintf handle null pointers correctly.
4062 2004-05-04  Werner LEMBERG  <wl@gnu.org>
4064         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
4065         Document `.U' register.
4067         * src/roff/troff/env.cpp (environment::mark_last_line)
4068         [WIDOW_CONTROL]: Fix scope of `p' for new C++ compilers.
4070 2004-05-04  Larry Kollar  <kollar@alltel.net>
4072         New read-only register `.U'; it returns 1 in safer mode and 0
4073         otherwise.
4075         * src/roff/troff/input.cpp (init_input_requests): Implement `.U'
4076         register.
4078 2004-05-03  Werner LEMBERG  <wl@gnu.org>
4080         * install-sh, mkinstalldirs: New versions; taken from texinfo CVS.
4082 2004-04-17  Werner LEMBERG  <wl@gnu.org>
4084         * src/include/font.h (font): Use `int' for ch_index.
4085         * src/libs/libgroff/font.cpp (font::alloc_ch_index,
4086         font::compact): Updated.
4088         * src/roff/groff/pipeline.c (run_pipeline) [_WIN32]: Fix compiler
4089         warnings.
4091         * src/roff/troff/div.cpp (begin_page), src/roff/troff/env.cpp
4092         (hyphen_word): Fix compiler warnings.
4093         * src/roff/troff/input.cpp (get_char_for_escape_name): Return
4094         `char'.
4095         Update all callers.
4096         (get_delim_number, get_line_arg): Change second argument type to
4097         `unsigned char'.
4098         (macro_header::copy, token::next, do_define_string,
4099         do_define_character, substring_request, asciify_macro,
4100         unformat_macro, read_size, non_interpreted_node::interpret,
4101         while_request, main: Fix compiler warnings.
4102         (read_color_draw_node): Initialize `col'.
4104         * src/preproc/tbl/table.cpp (horizontal_span, table_entry): Make
4105         `start_col' and `end_col' of type `int'.
4106         (vertical_rule): Make `col' of type `int'.
4108         * src/preproc/grn/hdb.cpp (DBRead): Protect call to getc with check
4109         for EOF.
4111         * src/preproc/refer/label.y (uppercase_array, lowercase_array):
4112         New arrays.
4113         (format_serial): Use them to remove dependency on ASCII.
4115         * src/devices/grops/ps.cpp (ps_printer::define_encoding): Fix
4116         compiler warning.
4117         * src/devices/grops/psrm.cpp (resource_manager::supply_resource):
4118         Ditto.
4120         * src/devices/grotty/tty.cpp (tty_font::load_tty_font): Fix
4121         compiler warnings.
4122         (glyph): Change type of `hpos' to `int'.
4124         * src/devices/lbp/lbp.cpp (strsep): Removed.  Unused.
4125         * src/devices/lbp/lbp.h (splinerel): Fix compiler warnings.
4127         * src/utils/tfmtodit.cpp (gf::load): Fix compiler warnings.
4129         * src/utils/pfbtops/pfbtops.c (get_text): Fix compiler warning.
4131 2004-04-16  Werner LEMBERG  <wl@gnu.org>
4133         * src/devices/grolbp/lbp.h, src/preproc/grn/gprint.h,
4134         src/preproc/grn/hgraph.cpp, src/preproc/grn/hpoint.cpp,
4135         src/preproc/html/pushback.cpp, src/preproc/html/pushback.h: Use
4136         `double' instead of `float' everywhere.
4137         * src/preproc/grn/main.cpp: Use `double' instead of `float'
4138         everywhere.
4139         (main): Add return value.
4140         * src/preproc/grn/hdb.cpp: Use `double' instead of `float'
4141         everywhere.
4142         Update all user functions.
4144         * src/include/search.h, src/include/ptable.h, src/include/printer.h,
4145         src/preproc/eqn/box.h, src/preproc/pic/object.h,
4146         src/preproc/refer/refer.h, src/preproc/tbl/table.h,
4147         src/preproc/tbl/table.cpp, src/roff/troff/env.h,
4148         src/roff/troff/div.h, src/roff/troff/token.h, src/roff/troff/node.h,
4149         src/roff/troff/input.cpp, src/roff/troff/request.h,
4150         src/roff/troff/node.cpp: Don't mix `struct' and `class' in forward
4151         declarations.
4153         * src/utils/indxbib/signal.c: Include stdlib.h.
4155 2004-04-14  Keith Marshall  <keith.d.marshall@ntlworld.com>
4157         * tmac/s.tmac (@init, RP): Allow initialization of the PO register
4158         before the first page.
4160 2004-04-14  Thomas Klausner  <wiz@netbsd.org>
4162         * tmac/doc-common (doc-volume-as-*): Use lowercase names.
4163         (doc-operating-system-*): Updated.
4164         * tmac/doc-syms (doc-str-St-*): Various small fixes.
4165         (doc-str-Lb-*): Add more library names.
4167 2004-04-10  Art Haas  <ahaas@airmail.net>
4169         * src/utils/hpftodit/hpuni.cpp (hp_msl_to_unicode_list): Don't
4170         use anonymous type.
4172 2004-04-09  Art Haas  <ahaas@airmail.net>
4174         * src/utils/tfmtodit.cpp (lig_chars): Don't use anonymous type.
4176 2004-04-09  Keith Marshall  <keith.d.marshall@ntlworld.com>
4178         * arch/misc/shdeps.sh: Generate better comment for sed script.
4180 2004-04-08  Art Haas  <ahaas@airmail.net>
4182         * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list),
4183         src/libs/libgroff/uniglyph.cpp (unicode_to_glyph_list),
4184         src/libs/libgroff/uniuni.cpp (unicode_decompose_list),
4185         src/preproc/eqn/box.cpp (param_table), src/preproc/grn/hgraph.cpp
4186         (polyfill), src/preproc/grn/main.cpp (polyfill),
4187         src/preproc/refer/command.cpp (command_table),
4188         src/utils/tfmtodit.cpp (lig_table): Don't use anonymous types (which
4189         gcc 3.5 doesn't like).
4191 2004-04-08  Werner LEMBERG  <wl@gnu.org>
4193         Removing many compiler warnings.  groff should now compile with
4194         a C++ compiler used for C files also.  [Simple variable renamings
4195         to avoid shadowing aren't logged in detail.]
4197         * src/devices/grodvi/dvi.cpp: Some local variable renamings.
4198         (draw_dvi_printer::draw) ['c']: Enclose in block.
4200         * src/devices/grohtml/post-html.cpp: Some local variable renamings.
4201         (page::add_line): Fix typos.
4202         * src/devices/grohtml/html-text.cpp: Some local variable renamings.
4204         * src/devices/grolbp/lbp.cpp: Don't define _GNU_SOURCE.
4205         Some local variable renamings.
4206         * src/devices/grolbp/lbp.h: Some local variable renamings.
4208         * src/devices/grolj4/lj4.cpp, src/devices/grotty/tty.cpp: Some local
4209         variable renamings.
4211         * src/libs/libbib/index.cpp (index_search_item_iterator::get_tag):
4212         Remove redundant local variable declaration.
4213         * src/libs/libbib/map.c (mapread, unmap): Don't use K&R style.
4214         Don't use `caddr_t' but `void *'.
4215         Enclose functions with `extern "C"' for C++.
4217         * src/libs/libdriver/input.cpp (remember_filename,
4218         remember_source_filename): Use cast for string constant.
4220         * src/libs/libgroff/font.cpp, src/libs/libgroff/fontfile.cpp,
4221         src/libs/libgroff/nametoindex.cpp, src/libs/libgroff/paper.cpp,
4222         src/libs/libgroff/geometry.cpp: Some local variable renamings.
4223         * src/libs/libgroff/iftoa.c, src/libs/libgroff/itoa.c: Don't use K&R
4224         style.
4225         Enclose functions with `extern "C"' for C++.
4226         * src/libs/libgroff/quotearg.c (TRUE,FALSE): Define as macros.
4227         (needs_quoting): Return `int'.
4228         (quote_arg): Add proper casts to malloc and realloc.
4229         * src/libs/libgroff/spawnvp.c: Compile code only for MS-DOS and
4230         various MS Windows environments.
4231         (spawnvp_wrapper): Add proper cast to malloc.
4233         * src/preproc/eqn/box.h: Remove redundant declarations of
4234         `make_script_box', `make_mark_box' and `make_lineup_box'.
4235         * src/preproc/eqn/eqn.y: Remove redundant declaration of `strsave'.
4236         * src/preproc/eqn/script.cpp, src/preproc/eqn/pile.cpp: Some local
4237         variable renamings.
4239         * src/preproc/grn/hpoint.cpp: Some local variable renamings.
4240         * src/preproc/grn/hgraph.cpp: Some local variable renamings.
4241         (dx, dy): Renamed functions to...
4242         (deltax, deltay): This.
4243         * src/preproc/grn/main.cpp: Some local variable renamings.
4244         (deffont): Add `const'.
4245         (initpic, conv): Use cast for string constant.
4247         * src/preproc/html/pre-html.cpp: Some local variable renamings.
4248         (makeFileName, alterDeviceTo, addZ): Use cast for string constant.
4249         (char_buffer::run_output_filter): Second argument is unused.
4250         * src/preproc/html/pushback.cpp: Some local variable renamings.
4252         * src/preproc/pic/pic.y: Remove redundant declaration of `do_copy'.
4253         * src/preproc/pic/object.cpp: Some local variable renamings.
4255         * src/preproc/refer/label.y (lookup_label): Remove redundant
4256         declaration of local variable.
4258         * src/preproc/soelim.cpp: Remove redundant declaration of
4259         `interpret_lf_args'.
4261         * src/preproc/tbl/main.cpp: Some local variable renamings.
4263         * src/roff/groff/groff.cpp (main): Use cast for string constant.
4264         * src/roff/groff/pipeline.c: Enclose declarations of `error',
4265         `c_fatal', and `i_to_a' with `extern "C"' for C++.
4266         Don't use C++-style comments.
4268         * src/roff/troff/env.h: Remove redundant declaration of `title'.
4269         * src/roff/troff/node.h, src/roff/troff/env.cpp,
4270         src/roff/troff/div.cpp, src/roff/troff/node.cpp: Some local variable
4271         renamings.
4272         * src/roff/troff/div.h: Remove redundant declaration of
4273         `end_diversions'.
4274         * src/roff/troff/troff.h: Remove redundant declaration of
4275         `cleanup_and_exit'
4276         * src/roff/troff/input.cpp: Remove redundant declaration of
4277         `handle_first_page_transition' and `process_input_stack'.
4279         * src/utils/hpftodit.cpp: Some local variable renamings.
4281         * src/utils/indxbib/signal.c: Enclose functions with `extern "C"'
4282         for C++.
4283         Don't define RETSIGTYPE.
4284         * src/utils/indxbib/indxbib.cpp: Some local variable renamings.
4286         * src/utils/pfbtops/pfbtops.cpp: Don't use K&R style.
4287         (error): Use `const' in argument.
4288         (main): Remove redundant declaration of `optind'.
4289         Move declaration of `Version_string' to top-level.
4291         * PROBLEMS: Document difficulties compiling signal.c if a C++
4292         compiler is used for C.
4294 2004-04-07  Werner LEMBERG  <wl@gnu.org>
4296         * Makefile.sub (DISTCLEANFILES): Add `test-groff'.
4298 2004-04-06  Keith Marshall  <keith.d.marshall@ntlworld.com>
4300         Make scripts like nroff.sh and neqn.sh portable across various
4301         (Unix-like) shell implementations from Cygwin, MSYS, etc., which use
4302         non-POSIX path separators.  The idea is to extend those scripts to
4303         decide at run-time (of the script) which path separator to use.
4305         * arch/misc/Makefile.sub: New file.
4306         * arch/misc/shdeps.sh: New file, generating OS dependency fixups.
4307         This script handles @GROFF_BIN_PATH_SETUP@, replacing it with
4308         a proper definition of the variable `GROFF_RUNTIME'.
4310         * Makefile.in (SH_DEPS_SED_SCRIPT): New variable.
4311         (MDEFINES): Add SH_DEPS_SED_SCRIPT.
4312         (PROGDEPDIRS): New variable.
4313         `FORCE' it.
4314         (PROGDIRS): Add PROGDEPDIRS.
4316         * src/preproc/eqn/Makefile.sub (neqn): Call SH_DEPS_SED_SCRIPT.
4317         Don't substitute @SEP@ and @BINDIR@.
4318         * src/preproc/eqn/neqn.sh: Use @GROFF_BIN_PATH_SETUP@.
4319         (PATH): Use GROFF_RUNTIME.
4321         * src/roff/nroff/Makefile.sub (nroff): Call SH_DEPS_SED_SCRIPT.
4322         Don't substitute @SEP@ and @BINDIR@.
4323         * src/roff/nroff/nroff.sh: Use @GROFF_BIN_PATH_SETUP@.
4324         (PATH): Use GROFF_RUNTIME.
4326 2004-04-05  Keith Marshall  <keith.d.marshall@ntlworld.com>
4328         * src/roff/nroff/nroff.sh: Implement work-around for sh.exe from
4329         Cygwin which doesn't handle stderr correctly.
4331 2004-03-08  Werner LEMBERG  <wl@gnu.org>
4333         * Makefile.comm (install_dev, uninstall_dev): Protect `for' loops
4334         against empty argument.  Problem reported by <cgd@broadcom.com>.
4336 2004-03-05  Keith Marshall  <keith.d.marshall@ntlworld.com>
4338         * Makefile.in (SEP): Replaced with...
4339         (RT_SEP, SH_SEP): Separators for the target platform's native path
4340         separator and the build environment, respectively.
4341         (fontpath, tmacpath): Use RT_SEP.
4342         (MDEFINES): Updated.
4344         * contrib/mom/Makefile.sub (GROFF_BIN_PATH): Use SH_SEP.
4345         * doc/Makefile.sub (GROFF_BIN_PATH): Use SH_SEP.
4346         * src/preproc/eqn/Makefile.sub (neqn): Use SH_SEP.
4347         * src/roff/nroff/Makefile.sub (nroff): Use SH_SEP.
4349 2004-03-05  Werner LEMBERG  <wl@gnu.org>
4351         * fonts/devlj4/Makefile.sub (LJ4RES): Set to 1200.  This helps to
4352         reduce alignment problems with newer printers which use built-in
4353         TrueType fonts (instead of the older Intellifonts).  The ideal
4354         solution is to provide a second set of groff metric files, but this
4355         is extremely time-consuming to produce, given that HP's metric
4356         files are very rudimentary.
4358 2004-03-01  Werner LEMBERG  <wl@gnu.org>
4360         * src/devices/grolj4/lj4.cpp (main): Fix argument of getopt_long.
4361         s/operand/argument/ in error message.
4363 2004-03-01  Keith Marshall  <keith.d.marshall@ntlworld.com>
4365         * src/roff/groff/groff.cpp (main): Don't allow option -o if -Thtml
4366         is in use.
4368 2004-03-01  Antti Kantee  <pooka@netbsd.org>
4370         * tmac/s.tmac (XE): Fix error message.
4372 2004-02-27  Jeff Conrad  <jeff_conrad@msn.com>
4374         * src/include/nonposix.h (write, dup, dup2, close) [_MSC_VER]:
4375         New macros.
4377         * src/roff/groff/pipeline.c: Declare strcasecmp.
4378         (run_pipeline) [_WIN32]: Use function name variants which don't
4379         start with `_'.
4380         Fix stream handling.
4382 2004-02-27  Keith Marshall  <keith.d.marshall@ntlworld.com>
4384         * src/include/nonposix.h: Fix declaration of `system_shell_name'.
4385         Declare `spawnvp_wrapper' and macro definitions of spawnvp only
4386         for platforms which use the native Win32 runtime libraries.
4387         (FLUSH_INPUT_PIPE) [_UWIN]: Provide non-empty version.
4389         * src/libs/libgroff/quotearg.c (QUOTE_ARG_MALLOC_ERROR,
4390         QUOTE_ARG_REALLOC_ERROR): Fix string.
4392         * src/preproc/html/pre-html.cpp: Remove declaration of
4393         `spawnvp_wrapper'.
4394         Don't use __MINGW32__.
4395         s/DEBUG_FILE/DEBUG_FILE_DIR/.
4396         (DEBUG_TEXT, DEBUG_NAME, DEBUG_FILE) [DEBUGGING]: New macros.
4397         (OUTPUT_STREAM, PS_OUTPUT_STREAM, REGION_OUTPUT_STREAM): New macros.
4398         (char_buffer::run_output_filter) [MAY_FORK_CHILD_PROCESS]: Fix
4399         calls to `set_redirection' and `WAIT'.
4400         [MAY_SPAWN_ASYNCHRONOUS_CHILD]: Remove unused variable `i' and `j'.
4401         Fix calls to `set_redirection' and `save_and_redirect'.
4402         (char_buffer::do_html, char_buffer::do_image) [DEBUGGING]: Fix calls
4403         to `set_redirection' and `save_and_redirect'.
4404         (usage): Fix message.
4405         (makeTempFiles, main): Use `DEBUG_FILE'.
4407 2004-02-21  Werner LEMBERG  <wl@gnu.org>
4409         * src/roff/troff/troff.h (WARN_TOTAL): Fix value.
4411 2004-02-21  Keith Marshall  <keith.d.marshall@ntlworld.com>
4413         * src/libs/libgroff/quotearg.c: New file, providing proper argument
4414         quoting for MSVC's spawn* and exec* functions.
4415         * src/libs/libgroff/spawnvp.c: New file, providing a wrapper around
4416         spawnvp with proper quoting for MSVC.
4418         * src/libs/libgroff/assert.cpp (program_name),
4419         src/libs/libgroff/new.cpp (program_name): Declare as `extern "C"'.
4420         * src/libs/libgroff/Makefile.sub (OBJS, CSRCS): Updated.
4422         * src/roff/troff/input.cpp (program_name): Declare as `extern "C"'.
4424         * src/include/error.h (program_name): Declare as `extern "C"'.
4425         * src/include/nonposix.h [__MSDOS__ ...]: Handle spawnvp.
4427 2004-02-21  Jeff Conrad  <jeff_conrad@msn.com>
4429         * src/preproc/html/pre-html.cpp [__CYGWIN__ ...]: Declare
4430         spawnvp_wrapper.
4431         [MAY_SPAWN_ASYNCHRONOUS_CHILD]: Declare i and j.
4433 2004-02-20  Jeff Conrad  <jeff_conrad@msn.com>
4435         * src/roff/groff/pipeline.c (cmd) [__MSDOS__ || ...]: New global
4436         variable.
4437         (sbasename) [__MSDOS__ || ...]: New function.
4438         (system_shell_name) [__MSDOS__ || ...]: Use a different, more
4439         generic algorithm.
4440         (system_shell_dash_c, is_system_shell) [__MSDOS__ || ...]: Updated.
4441         (run_pipeline) [_WIN32]: Use _XXX variants for some macros instead
4442         of XXX.
4443         Use STDOUT_FILENO instead of hardcoded file handle.
4444         (signal_catcher) [__MSDOS__]: Moved to non-_WIN32 section.
4446 2004-02-19  Werner LEMBERG  <wl@gnu.org>
4448         * src/roff/troff/div.cpp: Include nonposix.h after troff.h to
4449         avoid warnings w.r.t. redefinition of P_tmpdir for some compilers.
4451 2004-02-18  Werner LEMBERG  <wl@gnu.org>
4453         * font/devlj4/Makefile.sub (DEVFILES): Updated to contain all
4454         new font and mapping files.
4456 2004-02-18  Jeff Conrad  <jeff_conrad@msn.com>
4457             Keith Marshall  <keith.d.marshall@ntlworld.com>
4459         * src/include/nonposix.h (FLUSH_INPUT_PIPE): New macro to empty
4460         an input pipe.  This is needed for the MSVC compiler to make troff's
4461         `-o' option work.
4463         * src/roff/troff/div.cpp: Include nonposix.h.
4464         (cleanup_and_exit): Call FLUSH_INPUT_PIPE.
4466 2004-02-17  Werner LEMBERG  <wl@gnu.org>
4468         * font/devlj4/generate/special.awk: New script.
4469         * font/devlj4/generate/Makefile (S): Use special.awk.
4470         * font/devlj4/*: Regenerated, including the following new files:
4471         Arial (AR, AB, AI, ABI), Times New Roman (TNRR, TNRB, TNRI, TNRBI),
4472         MS Symbol (SYMBOL), Wingdings (WINGDINGS).
4473         * NEWS: Document new lj4 fonts and revised hpftodit.
4475 2004-02-17  Paco Andrés Verdú  <pandres@dragonet.es>
4477         * src/devices/grolbp/lbp.h (vmdvarc): Fix formatting string.
4479 2004-01-25  Werner LEMBERG  <wl@gnu.org>
4481         * src/libs/libgroff/progname.cpp: Replaced with...
4482         * src/libs/libgroff/progname.c: New file.
4483         * src/libs/libgroff/Makefile.sub: Updated accordingly.
4485 2004-01-17  Werner LEMBERG  <wl@gnu.org>
4487         * font/devlj4/generate/Makefile (SYMBOL): Use 9nb28703.tfm.
4489 2004-01-16  Jeff Conrad  <jeff_conrad@msn.com>
4491         * font/devlj4/generate/wingdings.map,
4492         font/devlj4/generate/symbol.map: Include unnamed glyphs.
4493         Use groff glyph names where possible.
4494         * src/devices/grolj4/lj4_font.man: Minor updates.
4496 2004-01-13  Werner LEMBERG  <wl@gnu.org>
4498         * tmac/www.tmac (DC): Handle TTY devices.
4500         * doc/webpage.ms: Document viewCVS from ffii.org.
4501         * NEWS, README: Updated.
4503         * src/roff/groff/groff.man: Mention lj4_font man page.
4505         * font/devlj4/generate/Makefile (SYMBOLMAP, WINGDINGSMAP): New
4506         variables.
4507         (FONTS): Add SYMBOL and WINGDINGS.
4508         (SYMBOL, WINGDINGS): New targets.
4510 2004-01-13  Jeff Conrad  <jeff_conrad@msn.com>
4512         * src/devices/grolj4/lj4_font.man: New man page.
4513         * src/devices/grolj4/Makefile.sub (MAN5): New variable.
4514         * src/devices/grolj4.man: Mention lj4_font man page.
4516         * src/utils/hpftodit/hpftodit.cpp (read_map): Handle line comments.
4517         * src/utils/hpftodit/hpftodit.man: Document it.
4518         (CW): New macro.
4519         Remove details about fonts (which are now in lj4_font.man).
4521         * font/devlj4/generate/symbol.map,
4522         font/devlj4/generate/wingdings.map: New files.
4524 2004-01-12  Werner LEMBERG  <wl@gnu.org>
4526         * README: Mention ffii's viewcvs access.
4528 2004-01-09  Werner LEMBERG  <wl@gnu.org>
4530         * font/devlj4/generate/special.map: Map MSL 228 to U+221F.
4532 2004-01-09  Jeff Conrad  <jeff_conrad@msn.com>
4534         Revert most of the change from 2004-01-03 to better control used
4535         symbol sets.
4537         * src/utils/hpftodit/hpftodit.cpp (symbol_set): New structure.
4538         (text_symbol_sets, special_symbol_sets): New arrays.
4539         (symbol_set_table): New global variable.
4540         (read_symbol_sets): Use search order given in the text_symbol_sets
4541         and special_symbol_sets arrays.  If command line flag -a is not
4542         given, search both arrays.
4543         (output_charset): Require x_height_tag only for command line flag -i.
4545 2004-01-06  Werner LEMBERG  <wl@gnu.org>
4547         Implement string-valued registers \n[.m] and \n[.M] to return the
4548         name of the current drawing and background color, respectively.
4550         * src/roff/troff/symbol.h: Moved to...
4551         * src/include/symbol.h: Here.
4552         Small fixes to make it work outside of the `troff' directory.
4553         * src/roff/troff/symbol.cpp: Moved to...
4554         * src/libs/libgroff/symbol.cpp: Here.
4555         Small fixes to make it work outside of the `troff' directory.
4557         * src/include/Makefile.sub (HDRS), src/libs/libgroff/Makefile.sub
4558         (OBJS, CCSRCS), src/roff/troff/Makefile.sub (OBJS, CCSRCS, HDRS):
4559         Updated.
4561         * src/include/color.h: Include symbol.h.
4562         (color): Add new field `nm'.
4563         * src/libs/libgroff/color.cpp (color::color): Updated.
4565         * src/roff/troff/dictionary.cpp, src/roff/troff/div.cpp,
4566         src/roff/troff/node.cpp, src/roff/troff/number.cpp,
4567         src/roff/troff/reg.cpp: Don't include symbol.h.
4569         * src/roff/troff/env.cpp: Don't include symbol.h.
4570         (environment::get_glyph_color_string,
4571         environment_get_fill_color_string): New member functions.
4572         (init_env_requests): Handle `.m' and `.M' registers.
4573         * src/roff/troff/input.cpp: Don't include symbol.h.
4574         (default_symbol): Moved to symbol.cpp/symbol.h.
4575         (do_glyph_color, do_fill_color, define_color): Pass symbol name
4576         to color constructor.
4577         * src/roff/troff/env.h: Updated.
4579         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
4580         Document new registers.
4582 2004-01-05  Werner LEMBERG  <wl@gnu.org>
4584         * src/roff/troff/node.cpp (space_node::get_breakpoints,
4585         space_node::nbreaks): Protect against zero `next' field.
4587 2004-01-03  Jeff Conrad  <jeff_conrad@msn.com>
4589         In hpftodit, use the symbol sets offered in the TFM.
4591         * src/utils/hpftodit/hpftodit.cpp (NO_GLYPH): New constant.
4592         (symbol_set, text_symbol_sets, special_symbol_sets,
4593         symbol_set_table): Removed.
4594         (get_printcode): Removed.
4595         (read_symbol_sets): Initialize `symbol_set' field with
4596         `NO_SYMBOL_SET'.
4597         Simplify code to just use the `kind' value.
4598         (output_charset): Improve output formatting.
4599         (dump_symbols): Simplified.
4601 2004-01-02  Werner LEMBERG  <wl@gnu.org>
4603         * font/devlj4/generate/text.map: Add more MSL numbers.
4605 2004-01-02  Jeff Conrad  <jeff_conrad@msn.com>
4607         * src/utils/hpftodit/hpftodit.cpp (is_decomposed): New macro.
4608         (text_symbol_sets): Add more symbol sets.
4609         (debug_flag): New static variable (moved from `main').
4610         (get_printcode, show_symset): New functions.
4611         (main): Remove `debug_flag'.
4612         (output_charset): Use `show_symset'.
4613         (dump_symbols):  Use `show_symset'.
4614         Print symsets for all glyphs.
4615         (read_map): Actually call `unicode_to_ucode_make' but this time
4616         correctly.
4618 2004-01-01  Werner LEMBERG  <wl@gnu.org>
4620         * font/devlj4/generate/text.map, font/devlj4/generate/special.map:
4621         Fix placement of comments.
4623 2004-01-01  Jeff Conrad  <jeff_conrad@msn.com>
4625         * src/utils/hpftodit/hpftodit.cpp (main): Read map file also if
4626         option `-d' is given.
4627         (output_charset): Improve warning messages to give more information.
4628         (dump_symbols): Make information more precise.
4629         (usage): Updated.
4630         (read_map): Don't call unicode_to_ucode_name; the glyph names must
4631         appear as-is and shouldn't be decomposed.
4633 2003-12-31  Werner LEMBERG  <wl@gnu.org>
4635         * src/utils/hpftodit/hpftodit.cpp (dump_tags): Handle posture_tag.
4636         * font/devlj4/generate/Makefile (IFLAG): Updated to new units.
4637         (FONTS): Add TrueType font families Arial and Times New Roman.
4638         (TNRR, TNRB, TNRI, TNRBI, AR, AB, AI, ABI): New targets.
4639         * font/devlj4/generate/text.map: Fix Unicode values of `fi' and
4640         `fl'.
4642 2003-12-31  Jeff Conrad  <jeff_conrad@msn.com>
4644         * test-groff.in (SEP): Quote value.
4645         * src/roff/troff/node.cpp (suppress_node::tprint): Change type of
4646         `tem' to `char*' to avoid deallocation of a pointer to a constant
4647         object which some compilers don't like.
4649 2003-12-31  Werner LEMBERG  <wl@gnu.org>
4651         * font/devlj4/generate (text.map, special.map): Rewritten to work
4652         with the new hpftodit version.
4654 2003-12-30  Jeff Conrad  <jeff_conrad@msn.com>
4656         * src/utils/hpftodit/hpftodit.cpp (output_charset): Emit HP symbol
4657         set and 8bit character code for all glyphs also.
4659 2003-12-30  Werner LEMBERG  <wl@gnu.org>
4661         * src/libs/libgroff/strcasecmp.c: Updated from gnulib.
4663 2003-12-29  Werner LEMBERG  <wl@gnu.org>
4665         More fixes for MSVC compiler.
4667         * doc/Makefile.sub, contrib/mom/Makefile.sub (GROFF_BIN_PATH): Use
4668         $(SEP).
4670         * src/include/nonposix.h (STDIN_FILENO, STDOUT_FILENO,
4671         STDERR_FILENO) [_MSC_VER]: Define conditionally.
4672         (getpid) [_MSC_VER]: Remove.
4673         Include direct.h and process.h conditionally.
4675         * src/roff/troff/node.cpp (suppress_node::tprint): Don't use
4676         parentheses for a_delete.
4678         * src/utils/lookbib/lookbib.cpp: Include nonposix.h.
4680         * test-groff: Replaced with...
4681         * test-groff.in: This new template to handle path separator
4682         properly.
4684         * configure.ac: Check for direct.h and process.h.
4685         Generate test-groff script.
4686         * configure, src/include/config.hin: Regenerated.
4688 2003-12-28  Werner LEMBERG  <wl@gnu.org>
4690         Add integral extension glyph.
4691         Add new option `-x' to afmtodit to suppress use of built-in AGL.
4693         * font/devhtml/R.proto, font/devutf8/R.proto: Add `u23AE'.
4695         * font/devps/generate/textmap: Provide entry for `integralex' to
4696         override (old) PUA value of the AGL.
4697         * font/devps/generate/Makefile (SS): Add afmtodit option `-x'.
4698         * font/devps/*: Regenerated.
4700         * src/utils/afmtodit/afmtodit.pl: Add option `-x'.
4701         * src/utils/afmtodit/afmtodit.man, NEWS: Updated.
4703 2003-12-27  Werner LEMBERG  <wl@gnu.org>
4705         Add forgotten `coproduct' symbol (already available for DVI).
4707         * font/devhtml/R.proto, font/devps/generate/textmap,
4708         font/devps/symbolmap, font/devutf8/R.proto, man/groff_char.man,
4709         src/libs/libgroff/uniglyph.cc, src/libs/libgroff/glyphuni.cpp: Add
4710         U+2210 (\[coproduct]).
4712 2003-12-26  Jeff Conrad  <jeff_conrad@msn.com>
4714         hpftodit has been extended to handle TrueType metric files and
4715         more glyphs.  See hpftodit.man for more details.
4717         * src/utils/hpftodit/hpftodit.cpp: Include stdio.h, string.h,
4718         ctype.h, and unicode.h.
4719         s/msl/charcode/ everywhere since we now handle Unicode values also.
4720         (equal, NO, YES, MSL, SYMSET, UNICODE, UNICODE): New macros.
4721         Use it where appropriate.
4722         (MULTIPLIER): Replaced with...
4723         (multiplier): New global static variable.
4724         (scale): Updated.
4725         (tag_type): Add more TFM tags.
4726         (tag_name): New array.
4727         (ENUM_TYPE, FLOAT_TYPE): Removed.
4728         (BYTE_TYPE): New value assigned.
4729         (ASCII_TYPE, RATIONAL_TYPE): New enumeration values.
4730         (text_symbol_sets, special_symbol_sets): Extended to cover more
4731         sets.
4732         (check_type): Add return value.
4733         (check_units): Add parameters to get ppi and upem values.
4734         Handle TrueType TFM data.
4735         (output_font_name): New function.
4736         (output_charset): Add parameter to handle TFM type.
4737         Handle TrueType TFMs also.
4738         (em_fract): New macro.
4739         (dump_tags): Be much more verbose and handle more tags.
4740         (dump_ascii, dump_symbol_sets, dump_symbols): New functions.
4741         (hp_msl_to_ucode_name, unicode_to_ucode_name, is_uname): New
4742         functions.
4743         (read_map): Add parameter to handle TFM type.
4744         Handle both MSL and Unicode mappings.
4745         (main): Add two new command line options `-a' and `-q'.
4746         Updated to make use of new functions.
4747         (usage): Updated.
4749         * src/utils/hpftodit/hpuni.cpp: New file.
4751         * src/utils/hpftodit/Makefile.sub, src/utils/hpftodit/hpftodit.man:
4752         Updated.
4754 2003-12-25  Werner LEMBERG  <wl@gnu.org>
4756         * src/include/nonposix.h (read) [_MSC_VER]: Define.
4758 2003-12-24  Werner LEMBERG  <wl@gnu.org>
4760         * src/utils/afmtodit/afmtodit.man: Some reformulations as suggested
4761         by Michail Vidiassov <master@iaas.msu.ru>.
4763 2003-12-20  Werner LEMBERG  <wl@gnu.org>
4765         * font/devhtml/R.proto: Add u00{47,67}_0306, u00{53,73}_0327,
4766         and u0049_0307.
4767         Add missing latin-2 glyphs.
4768         * font/devutf8/R.proto: Add missing latin-2 glyphs.
4770         * tmac/troffrc: Load `composite.tmac' earlier.
4772         * tmac/dvi.tmac, tmac/ps.tmac, tmac/lbp.tmac: Add u00{47,67}_0306,
4773         u00{53,73}_0327, and u0049_0307.
4774         * tmac/X.tmac: Add u00{47,67}_0306.
4775         * tmac/tty-char.tmac: Use composite glyph names for readability.
4777         * NEWS: Updated.
4779         * src/include/unicode.h: Remove `extern' keywords.
4781 2003-12-20  Nilgün Belma Bugüner  <nilgun@superonline.com>
4783         * tmac/latin5.tmac: New file.
4785 2003-12-19  Werner LEMBERG  <wl@gnu.org>
4787         Add some glyphs needed for Turkish.
4789         * font/devutf8/R.proto: Add u00{47,67}_0306, u00{53,73}_0327,
4790         and u0049_0307.
4792         * tmac/composite.tmac: Add `,' as a synonym for `ac' accent.
4793         * tmac/tty-char.tmac: Add representations for u00{47,67}_0306,
4794         u00{53,73}_0327, and u0049_0307.
4796 2003-12-18  Werner LEMBERG  <wl@gnu.org>
4798         * src/devices/grops/ps.cc (ps_output::put_float): Revert change
4799         from 2001-10-04.
4800         Remove trailing zeros.
4802 2003-12-17  Werner LEMBERG  <wl@gnu.org>
4804         Make \? transparent to end-of-sentence recognition.
4806         * src/roff/troff/input.cc (non_interpreted_node): Add
4807         `ends_sentence' member function.
4809 2003-12-16  Werner LEMBERG  <wl@gnu.org>
4811         * doc/groff.texinfo: Document `dt' request correctly.
4812         Other minor typographical improvements.
4814 2003-12-10  Michail Vidiassov  <master@iaas.msu.ru>
4816         * src/utils/afmtodit/Makefile.sub (afmtodit): Fix typo.
4818 2003-12-10  Richard Stallman  <rms@gnu.org>
4820         * LICENSE: Better wording.
4822 2003-12-09  Werner LEMBERG  <wl@gnu.org>
4824         * aclocal.m4 (GROFF_BROKEN_SPOOLER_FLAGS): Set default value to 0.
4825         * configure, NEWS: Updated.
4827 2003-12-08  Werner LEMBERG  <wl@gnu.org>
4829         * FDL: Updated to version 1.2 (from www.gnu.org/copyleft).
4831 2003-12-07  Bernd Warken  <bwarken@mayn.de>
4833         * LICENSE: Updated.
4835 2003-12-07  Werner LEMBERG  <wl@gnu.org>
4837         * INSTALL: Improved.
4839 2003-12-05  Keith Marshall  <keith.d.marshall@ntlworld.com>
4841         Use path separator character of target platform for compiled-in
4842         default paths.
4844         * aclocal.m4 (GROFF_TARGET_PATH_SEPARATOR): New macro.
4845         * configure.ac: Use GROFF_TARGET_PATH_SEPARATOR.
4846         * configure: Regenerated.
4847         * Makefile.in (SEP): Use GROFF_PATH_SEPARATOR.
4849 2003-12-05  Werner LEMBERG  <wl@gnu.org>
4851         * src/include/nonposix.h (PATH_SEP_CHAR): New definition.
4852         Replace `PATH_SEP[0]' with `PATH_SEP_CHAR' everywhere.
4854 2003-12-04  Bernd Warken  <bwarken@mayn.de>
4856         * LICENSE: New file.
4858 2003-12-03  Werner LEMBERG  <wl@gnu.org>
4860         * src/utils/afmtodit/afmtodit.pl: Comment out code which handles
4861         ligatures present in AFM files since groff currently only
4862         understands some standard ligatures and nothing else.
4864 2003-12-03  Jeff Conrad  <jeff_conrad@msn.com>
4866         * src/roff/groff/groff.cpp (main): Don't run the spooler if
4867         option -v is given.
4869         * src/roff/groff/pipeline.c (run_pipeline) [_WIN32]: Fix error
4870         messages.
4871         Close stdout copy.
4872         Don't use Unix wait flags.
4874 2003-12-02  Werner LEMBERG  <wl@gnu.org>
4876         * src/roff/troff/glyphuni.cpp, src/roff/troff/unicode.cpp,
4877         src/roff/troff/unicode.h, src/roff/troff/uniglyph.cpp,
4878         src/roff/troff/uniuni.cpp: Moved to...
4879         * src/libs/libgroff/glyphuni.cpp, src/libs/libgroff/unicode.cpp,
4880         src/libs/libgroff/unicode.h, src/libs/libgroff/uniglyph.cpp,
4881         src/libs/libgroff/uniuni.cpp: Here.
4883         * src/include/Makefile.sub.old (HDRS),
4884         src/libs/libgroff/Makefile.sub (OBJS, CCSRCS),
4885         src/roff/troff/Makefile.sub (HDRS, PBJS, CCSRCS): Updated.
4887 2003-12-01  Keith Marshall  <keith.d.marshall@ntlworld.com>
4889         * src/preproc/htlp/pre-html.cpp (__tmpfile): Renamed to
4890         `DEBUG_FILE'.
4891         Updated all users.
4893 2003-12-01  Werner LEMBERG  <wl@gnu.org>
4895         * groff.texinfo: Document special behaviour of `.vs 0'.
4896         Improve documentation of `cflags' request.
4897         * NEWS: Updated.
4899 2003-11-29  Werner LEMBERG  <wl@gnu.org>
4901         * font/devlj4/generate/Makefile (CORONET): Use correct TFM.
4902         * font/devlj4/CORONET: Regenerated.
4904 2003-11-24  Werner LEMBERG  <wl@gnu.org>
4906         * src/roff/troff/env.cpp (hyphen_trie::read_patterns_file): Fix loop
4907         if processing hyphenation patterns in traditional mode.
4908         Improve error messages.
4910 2003-11-20  Werner LEMBERG  <wl@gnu.org>
4912         * src/roff/troff/node.cpp (troff_output_file::put_char_width,
4913         troff_output_file::put_char): Fix type of local variable `c'.
4915 2003-11-19  Werner LEMBERG  <wl@gnu.org>
4917         * src/roff/groff/pipeline.c (P): Removed.  Updated all function
4918         declarations.
4919         (i_to_a): Removed.  libgroff already provides this function.
4920         (run_pipeline) [_WIN32]: Don't use itoa but i_to_a.
4922 2003-11-18  Keith Marshall  <keith.d.marshall@ntlworld.com>
4924         * src/roff/groff/pipeline.c (xstrsignal): Fix usage of
4925         HAVE_DECL_SYS_LIST.
4927 2003-11-17  Werner LEMBERG  <wl@gnu.org>
4929         * COPYING: Use correct version.
4931 2003-11-11  Werner LEMBERG  <wl@gnu.org>
4933         LynxOS 4.0.0 doesn't declare vfprintf.
4935         * configure.ac: Check for vfprintf.
4936         * configure: Regenerated.
4937         * src/include/lib.h: Handle `NEED_DECLARATION_VFPRINTF'.
4938         * src/include/config.hin: Regenerated.
4940 2003-11-10  Werner LEMBERG  <wl@gnu.org>
4942         LynxOS 4.0.0 has snprintf (without declaration) but no vsnprintf.
4944         * configure.ac: Check for vsnprintf.
4945         * configure: Regenerated.
4946         * src/include/lib.h: Handle `NEED_DECLARATION_VSNPRINTF' and
4947         `HAVE_VSNPRINTF'.
4948         * src/include/config.hin: Regenerated.
4950 2003-11-09  Werner LEMBERG  <wl@gnu.org>
4952         * aclocal.m4: Updated syntax to autoconf 2.59.
4953         (GROFF_HTML_PROGRAMS): Use AC_FOREACH.
4954         Don't check for gsos2.
4955         (GROFF_SRCDIR, GROFF_BUILDDIR): Removed.  autoconf 2.59 provides
4956         working abs_top_srcdir and abs_top_builddir.
4958         * configure.ac: Updated syntax to autoconf 2.59.
4959         Don't call GROFF_SRCDIR and GROFF_BUILDDIR.
4960         Replace call to AC_DECL_SYS_SIGLIST with call to AC_CHECK_DECLS.
4961         * configure: Regenerated.
4963         * Makefile.in, doc/Makefile.in: s/@top_srcdir@/@abs_top_srcdir@/,
4964         s/@groff_top_builddir@/@abs_top_builddir@/.
4966         * src/roff/groff/pipeline.c (xstrsignal):
4967         s/SYS_SIGLIST_DECLARED/HAVE_DECL_SYS_SIGLIST/.
4969 2003-11-07  Werner LEMBERG  <wl@gnu.org>
4971         * src/devices/grodvi/dvi.cpp (draw_dvi_printer::draw) ['a']: Always
4972         make start angle smaller than end angle to circumvent a bug in tpic
4973         handling of some versions of dvipdfm (and dvipdfmx).
4975 2003-10-30  Werner LEMBERG  <wl@gnu.org>
4977         * src/devices/grops/grops.man: Improve section on creating EPS.
4979 2003-10-29  Werner LEMBERG  <wl@gnu.org>
4981         * contrib/pic2graph/pic2graph.sh: Fix typo (-P-letter ->
4982         -P-pletter).
4984 2003-10-28  Werner LEMBERG  <wl@gnu.org>
4986         * doc/groff.texinfo: Fix documentation of `.if'.
4988 2003-10-27  Michail Vidiassov  <master@iaas.msu.ru>
4990         * src/utils/afmtodit/afmtodit.pl: Handle unmapped characters of
4991         the form `uniXXXX' also.
4993 2003-10-27  Werner LEMBERG  <wl@gnu.org>
4995         * contrib/eqn2graph/eqn2graph.sh, contrib/grap2graph/grap2graph.sh,
4996         contrib/pic2graph/pic2graph.sh: Implement secure management of
4997         temporary files.
4998         Pass `-P-pletter' to groff to avoid data outside of the converted
4999         area -- some versions of `convert' (for example 5.3.8) don't check
5000         the bounding box of the image but always use a fixed image size
5001         (letter paper format).
5002         * contrib/eqn2graph/eqn2graph.man, contrib/grap2graph/grap2graph.man,
5003         contrib/pic2graph/pic2graph.man: Updated.
5005         * src/roff/groff/groff.man: Document $TMP and $TEMP.
5007 2003-10-26  Werner LEMBERG  <wl@gnu.org>
5009         * src/preproc/pic/troff.cpp (troff_output::simple_circle,
5010         troff_output::simple_ellipse, troff_output::simple_arc,
5011         troff_output::simple_line, troff_output::simple_spline,
5012         troff_output::simple_polygon): Insert a space before arguments.
5013         (troff_output::set_fill): Emit `\&' before `\D'Fg...' since the
5014         latter doesn't produce a node, so the following `.sp -1' would do
5015         the wrong thing.
5016         Don't emit `.sp -1' after \M.  This also doesn't produce a token
5017         (and we don't have to care about compatibility mode).
5018         (troff_output::set_color, troff_output::reset_color): Don't emit
5019         `.sp -1' after \M and \m.
5021         * src/roff/troff/input.cpp (old_have_input): New global variable.
5022         (input_stack::get): Handle `old_have_input'.
5023         (process_input_stack) <token::TOKEN_NEWLINE>: Call
5024         `trapping_blank_line' depending on `old_have_input', not
5025         `have_input'.
5027 2003-10-20  Keith Marshall  <keith.d.marshall@ntlworld.com>
5029         * src/libs/libgroff/tmpfile.cpp [__MSDOS__, _Win32]
5030         (WIN32_TMPDIR_ENVVAR, MSDOS_TMPDIR_ENVVAR): New macros, providing
5031         default directory names for temporary files.
5032         [__MSDOS__, _Win32] (temp_init::temp_init): Use them.
5034         * src/roff/groff/pipeline.c [__MSDOS__]: Include stdlib.h.
5035         [__MSDOS__] (run_pipeline): Honour environment variables.
5036         Don't use `tmpnam' but `tempnam' to work around messy
5037         implementation.
5039         * README.MinGW: New file.
5041 2003-10-16  Werner LEMBERG  <wl@gnu.org>
5043         * src/preproc/html/pre-html.cpp (write_upto_newline): Don't use
5044         `(*t)->next' without testing validity of `*t'.
5045         (usage): Make it more readable.
5047 2003-10-16  Keith Marshall  <keith.d.marshall@ntlworld.com>
5049         Make html device run under both MS-DOS and Win32.
5051         * src/preproc/html/pre-html.cpp (MAY_FORK_CHILD_PROCESS,
5052         MAY_SPAWN_ASYNCHRONOUS_CHILD): New macros to control whether
5053         spawn or fork+exec has to be used, and whether parent must sleep
5054         until the child process terminates.  Used in
5055         `char_buffer::run_output_filter'.
5056         (copyofstdoutfd): Removed.
5057         (char_buffer): Replace `write_file_html' and `write_file_troff'
5058         member functions with `emit_troff_output' and `run_output_filter'.
5059         (DEVICE_FORMAT, HTML_OUTPUT_FILTER, IMAGE_OUTPUT_FILTER): New
5060         macros.
5061         (replaceFd): Replaced with...
5062         (set_redirection): New auxiliary function.
5063         (waitForChild): Replaced with...
5064         (save_and_redirect): New auxiliary function for.
5066         (char_buffer::do_html, char_buffer::do_image): Simplified, using new
5067         functions.
5069 2003-10-14  Keith Marshall  <keith.d.marshall@ntlworld.com>
5071         * aclocal.m4 (GROFF_SYS_NERR): Check stdlib.h also.
5072         (GROFF_LIBC): New function.
5073         * configure.ac: Call GROFF_LIBC.
5074         Check for `kill'.
5075         * configure: Regenerated.
5077         * src/include/lib.h: Handle __MINGW32__.
5078         * src/include/nonposix.h [_MSC_VER]: Handle __MINGW32__.
5079         Add macro for `pipe'.
5080         Define P_tmpdir.
5082         * src/roff/groff/pipeline.c (run_pipeline): Handle `no_pipe'
5083         correctly.
5085         * src/utils/indxbib/signal.c (handle_fatal_signal) [!HAVE_KILL]:
5086         Implement.
5088 2003-10-13  Werner LEMBERG  <wl@gnu.org>
5090         Finally fix change 2003-08-26, based on ideas from Chuck Silvers
5091         <chuq@chuq.com>.
5093         * contrib/mom/Makefile.sub: Use a stamp file in the `examples'
5094         directory.
5096 2003-10-12  Werner LEMBERG  <wl@gnu.org>
5098         * src/roff/groff/groff.cpp (help), src/devices/grops/ps.cpp (usage),
5099         src/roff/troff/input.cc (usage): Updated.
5101         * NEWS, doc/groff.texinfo: Updated.
5103 2003-10-12  Peter Miller  <millerp@canb.auug.org.au>
5105         * src/libs/libgroff/searchpath.cpp
5106         (search_path::open_file_cautious): New function which also handles
5107         `-' as stdin and stdout depending on the access mode.
5108         * src/include/searchpath.h (search_path): Updated.
5110         * src/devices/grops/ps.cpp (main): Handle new `-I' switch.
5111         * src/devices/grops/ps.h: Include `searchpath.h'.
5112         * src/devices/grops/psrm.cpp (resource_manager::supply_resource):
5113         Open resource file with `include_search_path.open_file_cautious'.
5114         * src/devices/grops/grops.man: Document new `-I' switch.
5116         * src/devices/grodvi/dvi.cpp (main), src/devices/grolbp/lbp.cpp
5117         (main), src/devices/grolj4/lj4.cpp (main),
5118         src/devices/grotty/tty.cpp (main): Ignore new `-I' switch.
5120         * src/preproc/soelim/soelim.cpp (include_list_length, include_list):
5121         Replaced with...
5122         (include_search_path): New global variable.
5123         (include_path_append): Removed.
5124         (main): Use `include_search_path.command_line_dir' to handle `-I'.
5125         (do_file): Simplify, using new
5126         `include_search_path.open_file_cautious'.
5128         * src/roff/groff/groff.cpp (print_commands): Accept file handle as
5129         parameter.
5130         (main): Pass arguments to `-I' to both troff and devices.
5131         Improve handling of `-V'.
5132         * src/roff/groff/groff.man: Document changes to -I and -V.
5134         * src/roff/troff/input.cpp (include_search_path): New global
5135         variable.
5136         (next_file, source, ps_bbox_request, transparent_file,
5137         process_input_file): Use new
5138         `include_search_path.open_file_cautious'.
5139         (main) Handle `-I' switch.
5140         * src/roff/troff/node.cpp (troff_output_file::really_copy_file):
5141         Use new `include_search_path.open_file_cautious'.
5142         * src/roff/troff/node.h: New extern symbol `include_search_path'.
5143         * src/roff/troff/troff.man: Document new `-I' switch.
5145 2003-09-15  Ruslan Ermilov  <ru@FreeBSD.org>
5147         Support multiple calls of .Lb in LIBRARY section.
5149         * tmac/doc-common (doc-in-library-section): New register.
5150         (doc-section-library): New string.
5151         (Sh): Set `doc-in-library-section'.
5152         (Rd): Updated.
5153         * tmac/doc-syms (Lb): Insert breaks before and after arguments
5154         if in LIBRARY section.
5155         * tmac/doc.tmac (doc-save-global-vars): Updated.
5156         * NEWS, tmac/groff_mdoc.man: Updated.
5158 2003-09-14  Ruslan Ermilov  <ru@FreeBSD.org>
5160         * tmac/doc-common (doc-default-operating-system): New variable.
5161         (Os): Use it.
5163 2003-09-08  Werner LEMBERG  <wl@gnu.org>
5165         * tmac/doc.tmac (doc-reset-reference): Handle data for `%I' also.
5167 2003-08-31  Werner LEMBERG  <wl@gnu.org>
5169         * contrib/mom/Makefile.sub: Fix last change to make it really work.
5170         * Makefile.comm: Use `test ... ||' in favor of `if test ...; then'.
5171         (install_dev, uninstall_dev): Check whether $(DEVSCRIPTS) and
5172         $(DEVFILES) are not empty.
5173         * Makefile.in: Use `test ... ||' in favor of `if test ...; then'.
5175 2003-08-26  Chuck Silvers  <chuq@chuq.com>
5177         * contrib/mom/Makefile.sub (prepare_make_examples): Make it work
5178         with parallel runs of `make'.
5180 2003-08-23  Stephen Gildea  <http://www.gildea.com/stephen>
5182         * src/preproc/ref/ref.cpp (reference::compute_sort_key): Always
5183         insert SORT_SEP.  With certain combinations of sort specifications,
5184         refer sorted entries in the wrong order.  In particular, entries
5185         with a missing field should be be sorted before all entries that
5186         have that field, before refer looks to the next field.
5188 2003-08-23  Werner LEMBERG  <wl@gnu.org>
5190         * src/utils/pfbtops/Makefile.sub (LINK.c): Define it so that the
5191         g++ linker is used.  Reported by Mark J. Reed
5192         <mark.reed@turner.com>.
5194 2003-08-16  Heinz-Jürgen Oertel  <hj.oertel@surfeu.de>
5196         Add key character `x' to tbl which makes tbl call a user-defined
5197         macro on a table cell.
5199         * src/preproc/tbl/table.h (entry_modifier): Add `macro'.
5200         * src/preproc/tbl/table.cpp (block_entry::do_divert): Call
5201         `set_modifier' after printing the compatibility request.
5202         (set_modifier): Print call to `m->macro' if not empty.
5203         * src/preproc/tbl/main.cpp (entry_format::debug_print): Handle
5204         `macro'.
5205         (process_format): Implement cases `x' and `X'.
5206         * src/preproc/tbl/tbl.man, NEWS: Updated.
5208 2003-08-15  Werner LEMBERG  <wl@gnu.org>
5210         * doc/groff.texinfo: Minor fixes.
5212 2003-08-09  Werner LEMBERG  <wl@gnu.org>
5214         * tmac/an-old.tmac [cR]: Fix redefinition of `bp'.
5216 2003-08-07  Werner LEMBERG  <wl@gnu.org>
5218         * doc/Makefile.sub: Not all shells expand wildcards in the `for'
5219         argument list to nothing if there is no file to match.  Use `ls' as
5220         a protection, similar to autoconf.
5222         * Makefile.comm (install_dev, uninstall_dev): Protect `for' against
5223         empty argument lists.
5225         * doc/groff.texinfo: Improve documentation how vertical spacing
5226         and line breaks interact.
5227         Other minor fixes.
5229         * tmac/www.tmac: Initialize `www-htmlimage-gap'.
5231 2003-08-03  Werner LEMBERG  <wl@gnu.org>
5233         * NEWS, src/devices/grops/grops.man: -b16 is necessary to produce
5234         EPS (using eps2eps or similar programs to compute the bounding box).
5236 2003-07-24  Werner LEMBERG  <wl@gnu.org>
5238         * doc/groff.texinfo: Use the new @/ command to avoid overlong lines.
5239         * doc/texinfo.tex: Updated from texinfo 4.6.
5240         * README.CVS: From now on we need texinfo 4.6.
5242 2003-07-23  Werner LEMBERG  <wl@gnu.org>
5244         Add requests `dei1' and `ami1' for completeness.
5246         * src/roff/troff/input.cc (calling_mode): Remove
5247         CALLING_DISABLE_COMP.
5248         (comp_mode): New enumeration.
5249         (do_define_string, define_string, define_nocomp_string,
5250         append_string, append_nocomp_string): Updated.
5251         (do_define_macro): Add third parameter.
5252         (define_macro, define_nocomp_macro, define_indirect_macro,
5253         append_macro, append_nocomp_macro, append_indirect_macro): Updated.
5254         (define_indirect_nocomp_macro, append_indirect_nocomp_macro): New
5255         functions.
5256         (ignore): Updated.
5257         (init_input_requests): Add `dei1' and `ami1'.
5259         * tmac/trace.tmac: Handle de1 and am1.
5260         (de): Improve tracing message.
5261         (am): Add missing `do'.
5262         (return): Use de1.
5264         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
5265         Document new requests.
5267 2003-07-22  Heinz-Jürgen Oertel  <hj.oertel@surfeu.de>
5269         Add option -G to .MPIMG to insert a gap between text and the image.
5271         * tmac/www.tmac (www-finish-left-po, www-finish-right-ll,
5272         www-finish-left-ll): Updated.
5273         (www-image-just, www-image-gap, www-htmlimage-gap): New variables.
5274         (MPIMG): Make option -L and -R optional.
5275         Implement option -G.
5277 2003-07-22  Gaius Mulley  <gaius@glam.ac.uk>
5279         * src/devices/grohtml/post-html.cpp
5280         (html_printer::do_file_components): Don't use `stdout' as lvalue
5281         since it can be a macro.
5283 2003-07-22  Werner LEMBERG  <wl@gnu.org>
5285         * src/libs/libgroff/strerror.c: Include errno.h to be in sync with
5286         the corresponding test in aclocal.m4.
5288 2003-07-21  Werner LEMBERG  <wl@gnu.org>
5290         * src/preproc/html/pre-html.cpp (TRANSPARENT): Don't use colour
5291         names but RGB values directly.  Otherwise pnmtopng depends on
5292         an external file `rgb.txt' which maps colour names to values.
5294 2003-07-20  Werner LEMBERG  <wl@gnu.org>
5296         * aclocal.m4 (GROFF_SYS_ERRLIST): Include stdlib.h for MinGW.
5297         * configure, src/include/config.hin: Regenerated.
5299         * src/libs/libgroff/strerror.c: Include stdlib.h for MinGW.
5301 2003-07-19  Werner LEMBERG  <wl@gnu.org>
5303         * PROBLEMS: Add solution for UTF-8 problem with hyphens.
5305 2003-07-18  Werner LEMBERG  <wl@gnu.org>
5307         * *.man: Switch to non-compatibility mode temporarily if GNU
5308         syntax extensions are used in the particular man page.
5310         * PROBLEMS: Add solutions for SGR problems.
5312 2003-07-17  Werner LEMBERG  <wl@gnu.org>
5314         Don't ignore grotty's command line options if \X'tty: sgr ...' is
5315         used to change the drawing scheme.
5317         * src/devives/grotty/tty.cpp (bold_flag_option,
5318         underline_flag_option, italic_flag_option, reverse_flag_option,
5319         bold_underline_mode_option): New global variables.
5320         (update_options): New function.
5321         (tty_printer::special): Call update_options.
5322         (main): Don't set xxx_flag but xxx_flag_option, then call
5323         update_options.
5325 2003-07-14  Werner LEMBERG  <wl@gnu.org>
5327         Make grotty emit proper Unicode box drawing characters for -Tutf8.
5329         * src/devices/grotty/tty.cpp (START_LINE, END_LINE): New enum
5330         values.
5331         (hline_char, vline_char): New global variables.
5332         (tty_printer::tty_printer): Initialize them.
5333         (tty_printer::draw): Emit START_LINE and END_LINE flags for both
5334         horizontal and vertical lines.
5335         (crossings): New global array.
5336         (tty_printer::end_page): Use it to determine the proper crossing
5337         character for -Tutf8.
5339 2003-07-12  Werner LEMBERG  <wl@gnu.org>
5341         * doc/Makefilesub (HTMLDOCFILESALL): New macro.
5342         (HTMLDOCFILES): Revert to `pic.html'.
5343         (CLEANADD, install_html, uninstall_sub): Use HTMLDOCFILESALL.
5345 2003-07-11  Werner LEMBERG  <wl@gnu.org>
5347         * doc/pic.ms: Improve documentation of absolute coordinates.
5348         Document absolute positioning of pictures.
5350         * NEWS: Add new pic capability.
5352 2003-07-09  Hartmut Henkel  <hartmut_henkel@gmx.de>
5354         * src/libs/libgroff/geometry.cpp (check_output_arc_limits):
5355         Rewritten.
5357 2003-07-07  Werner LEMBERG  <wl@gnu.org>
5359         Implement support for dashed and dotted ellipses in pic.  Based on
5360         a patch from Hartmut Henkel <hartmut_henkel@gmx.de>.
5362         * src/preproc/pic/common.cpp (common_output::ellipse_arc,
5363         common_output::dashed_ellipse, common_output::dotted_ellipse): New
5364         functions.  Ellipse arcs are approximated with circle arcs.
5365         * src/preproc/pic/common.h (common_output): Updated.
5366         * src/preproc/pic/tex.cpp (tex_output::ellipse): Use new ellipse
5367         functions.
5368         * src/preproc/pic/troff.cpp (simple_output::ellipse): Ditto.
5370         * src/preproc/pic/TODO, src/preproc/pic/pic.man: Updated.
5372 2003-07-06  Werner LEMBERG  <wl@gnu.org>
5374         Make grotty work on platforms which have unsigned char as the
5375         default for char.  Based on a patch by Thomas Klausner
5376         <wiz@netbsd.org>.
5378         * src/devices/grotty/tty.cpp (schar): New typedef.
5379         Updated calls to declare_ptable and implement_ptable.
5380         (glyph): Use schar for back_color_idx and fore_color_idx.
5381         (tty_printer): Use schar for curr_fore_idx and curr_back_idx.
5382         (tty_printer::tty_color, tty_printer::tty_printer,
5383         tty_printer::color_to_idx, tty_printer::put_color): Updated.
5385 2003-07-06  Ruslan Ermilov  <ru@FreeBSD.org>
5387         * src/roff/nroff/nroff.sh: Add option -d for completeness.
5388         * src/roff/nroff/nroff.man: Updated.
5390 2003-07-05  Werner LEMBERG  <wl@gnu.org>
5392         * NEWS, tmac/groff_www.man: Updated.
5393         * doc/Makefile.sub: Updated.
5395 2003-07-05  Gaius Mulley  <gaius@glam.ac.uk>
5397         Implement support for multiple HTML output files.
5399         * src/preproc/html/pre-html.cpp (scanArguments): Dummy handling for
5400         -j command line option.
5402         * src/devices/grohtml/post-html.cpp (job_name, multiple_files): New
5403         global variables.
5404         (file): New fields `new_output_file', `require_links',
5405         `output_file_name'.
5406         (file::file): Updated.
5407         (files::set_file_name, files::set_links_required,
5408         files::are_links_required, files::is_new_output_file,
5409         files::file_name, files::next_file_name): New functions.
5410         (header_desc): New fields `no_of_level_one_headings',
5411         `header_filename'.
5412         (header_desc::header_desc): Updated.
5413         (header_desc::write_headings): Handle multiple files.
5414         (html_printer::write_header): Save file name in which header occurs.
5415         (html_printer::determine_header_level): Possibly split files on
5416         level one headings.
5417         (html_printer::do_links, html_printer::troff_tag): Updated.
5418         (html_printer::insert_split_file, html_printer::do_job_name,
5419         html_printer::emit_link, html_printer::write_navigation,
5420         html_printer::do_file_components): New functions.
5421         (html_printer::~html_printer): Handle multiple files.
5422         (main): Handle command line option `-j'.
5424         * src/devices/grohtml/grohtml.man: Updated.
5426         * doc/Makefile.sub (pic.html), doc/Makefile.in (pic.html): New rule
5427         which splits file.
5429         * tmac/www.tmac (JOBNAME): New macro.
5430         * tmac/s.tmac (SH-NO-TAG): New macro.
5431         (@SH): Call SH-NO-TAG.
5432         (@NH): Updated.
5434 2003-07-05  Ruslan Ermilov  <ru@FreeBSD.org>
5436         * tmac/groff_mdoc.man: Improve documentation of punctuation
5437         characters.
5439 2003-07-04  Ruslan Ermilov  <ru@FreeBSD.org>
5441         * tmac/doc.tmac (Bd): Change to doc-Li-font later.
5443 2003-07-03  Werner LEMBERG  <wl@gnu.org>
5445         * tmac/an-old.tmac [cR]: Redefine `bp' to avoid empty lines.
5447 2003-07-01  Ruslan Ermilov  <ru@FreeBSD.org>
5449         * tmac/doc.tmac (doc-do-func, doc-do-func-args): Don't print a comma
5450         after `/*' and `*/'.
5451         Fix spacing.
5452         (Fn, Fo): Reduce indentation in synopsis.
5454         * tmac/doc-common (doc-check-depth): New macro.
5455         (doc-end-macro, Sh, Ss): Use it.
5456         (Cd): Fix behaviour in synopsis.
5457         (In): Make it parsed and callable.
5458         If not in the synopsis, represent the C header file enclosed in
5459         angle brackets.
5460         (doc-str-Rv-std-suffix, doc-str-Rv-stds-suffix, doc-str-Rv-std0):
5461         Use minus, not hyphen.
5463         * tmac/groff_mdoc.man: Updated.
5465 2003-07-01  Werner LEMBERG  <wl@gnu.org>
5467         Integrated grap2graph, contributed by Eric S. Raymond.
5469         * contrib/grap2graph/{Makefile.sub, grap2graph.sh, grap2graph.man}:
5470         New files.
5471         * Makefile.in, NEWS, MANIFEST, contrib/eqn2graph.man,
5472         contrib/pic2graph.man, src/roff/groff/groff.man: Updated.
5474 2003-07-01  Colin Watson  <cjwatson@debian.org>
5476         * src/xditview/*.c: Add prototypes, fix return types, add includes.
5477         Based on work by Fumitoshi UKAI <ukai@debian.or.jp>.
5479 2003-06-31  Ruslan Ermilov  <ru@FreeBSD.org>
5481         * tmac/tty-char.tmac: Provide `lb', `rb', `lk', `rk', `lt', `rt'.
5483 2003-06-31  Werner LEMBERG  <wl@gnu.org>
5485         * doc/Makefile.sub (CLEANADD): Remove all files created by
5486         running `make groff.{pdf,dvi}'.
5488         * Makefile.sub (DISTCLEANFILES): Remove all non-source files from
5489         src/xditview also.
5491 2003-06-30  Werner LEMBERG  <wl@gnu.org>
5493         * Makefile.in (SHELL): Define as @SHELL@.
5494         (mkinstalldirs): Use $(SHELL).
5495         (MDEFINES): Add $(SHELL).
5496         * Makefile.comm (SHELL): Removed.
5498 2003-06-29  Werner LEMBERG  <wl@gnu.org>
5500         * tmac/s.tmac (De, Ds): New aliases for .DE and .DS, respectively.
5501         The X11 documentation files use them.
5502         * tmac/groff_ms.man, doc/groff.texinfo: Document them.
5504 2003-06-15  Robert Goulding  <goulding@Princeton.EDU>
5506         * tmac/e.tmac (@C): Handle .ad also.
5508 2003-06-12  Werner LEMBERG  <wl@gnu.org>
5510         * src/preproc/tbl/tbl.man: Document formatting of text blocks.
5512         * src/roff/troff/input.cc (token::next) <handle_escape_char>:
5513         Assign `n' even here.  It is possible to construct a node
5514         immediately following an escape character:
5516           .di xx
5517           \?\\\?a
5518           .br
5519           .di
5520           .xx
5522 2003-06-10  Werner LEMBERG  <wl@gnu.org>
5524         * README.WIN32: Removed.
5525         * MANIFEST: Updated.
5527 2003-06-07  Werner LEMBERG  <wl@gnu.org>
5529         * src/roff/nroff/nroff.sh: Don't emit SGR for option -u.
5531 2003-06-05  Werner LEMBERG  <wl@gnu.org>
5533         * src/preproc/pic/pic.y <sprintf_args>: Implement workaround for bug
5534         in Compaq C++ V6.5-033 for Compaq Tru64 UNIX V5.1A (Rev. 1885).
5536 2003-06-03  Werner LEMBERG  <wl@gnu.org>
5538         * src/preproc/grn/hdb.cpp (DBRead): Don't close file handle; this
5539         is done by the calling function.
5541 2003-05-22  Ruslan Ermilov  <ru@FreeBSD.org>
5543         * tmac/X.tmac: Fix definition of `em'.
5545 2003-05-22  Werner LEMBERG  <wl@gnu.org>
5547         * src/roff/troff/input.cc (return_macro_request): Fix detection of
5548         argument.
5550 2003-05-18  Werner LEMBERG  <wl@gnu.org>
5552         * tmac/doc.tmac (doc-tag-list): Force horizontal mode after tag
5553         to make items work which consist only of a tag.
5555 2003-05-17  Werner LEMBERG  <wl@gnu.org>
5557         * tmac/doc.tmac (doc-tag-list): Don't use \Z to assure that spaces
5558         aren't stretched in a tag (this can fail with unformatted boxes).
5559         Instead, insert a break and go back one line.
5561 2003-05-16  Werner LEMBERG  <wl@gnu.org>
5563         * src/roff/troff/input.cc (return_macro_request): If called with
5564         argument pop macro twice.  We need this to trace `return'.
5566         * tmac/trace.tmac: Handle `return'.
5567         Fix typos.
5569         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
5570         Document.
5572 2003-05-15  Larry Kollar  <kollar@alltel.net>
5574         * tmac/groff_ms.man, doc/groff.texinfo: Improve documentation of
5575         registers `FPS', `FVS', and `FPD'.
5577 2003-05-15  Werner LEMBERG  <wl@gnu.org>
5579         * src/utils/pfbtops/pfbtops.c (get_text): Handle loop counter
5580         correctly.
5582 2003-05-03  Ruslan Ermilov  <ru@FreeBSD.org>
5584         * tmac/groff_mdoc.man: Slight improvements.
5586 2003-05-03  Werner LEMBERG  <wl@gnu.org>
5588         * tmac/doc-common (doc-header): Emit vertical space of 1v instead of
5589         `doc-header-space' after header line if register `cR' is set.
5591 2003-05-02  Werner LEMBERG  <wl@gnu.org>
5593         * TODO: Updated.
5595 2003-05-01  Ruslan Ermilov  <ru@FreeBSD.org>
5597         * tmac/doc-common (Nd): Use \[em].
5599 2003-05-01  Werner LEMBERG  <wl@gnu.org>
5601         * tmac/doc-ditroff, tmac/doc-nroff (doc-header-space,
5602         doc-footer-space): Initialize to 0.5i.
5603         (doc-setup-page-layout): Don't set doc-header-space and
5604         doc-footer-space.
5606 2003-04-30  Werner LEMBERG  <wl@gnu.org>
5608         * REVISION: Set to 1.
5610         * doc/pic.ms: Document possible problems with `figname'.
5612 2003-04-29  Werner LEMBERG  <wl@gnu.org>
5614 Version 1.19 released
5615 =====================
5617         * VERSION: Set to 1.19.
5618         * REVISION: Set to 0.
5619         * doc/groff.texinfo, doc/webpage.ms, NEWS: Updated.
5621         * src/devices/grohtml/post-html.cpp (html_printer::~html_printer):
5622         Define charset as `US-ASCII' in html output.
5624         * tmac/www.tmac (ULE): Add missing scaling indicator.
5626         * win32-diffs: Removed.
5628 2003-04-28  Werner LEMBERG  <wl@gnu.org>
5630         * doc/groff.texinfo: Document `dn' and `dl' registers if used with
5631         `.da' and `.boxa'.
5632         Document how to insert discardable whitespace with `.ss'.
5634 2003-04-27  Werner LEMBERG  <wl@gnu.org>
5636         * src/preproc/pic/tex.cpp (tex_output::start_picture): Make code
5637         work with plain TeX also.
5639         * src/preproc/pic/pic.man, doc/pic.ms: Fix TeX code example.
5641 2003-04-25  Gaius Mulley  <gaius@glam.ac.uk>
5643         * src/devices/grohtml/post-html.cpp (html_printer::~html_printer):
5644         Use a loose DTD.
5646 2003-04-24  Werner LEMBERG  <wl@gnu.org>
5648         * src/preproc/pic/pic.man, doc/pic.ms: Explain how to get a
5649         vbox with positive height and zero depth if in TeX mode.
5651         * NEWS: Document glyph name changes for grodvi and grolj4.
5653 2003-04-23  Werner LEMBERG  <wl@gnu.org>
5655         * src/preproc/pic/tex.cpp (tex_output::start_picture): Fix TeX code.
5656         * doc/pic.ms: Fixed.
5658 2003-04-21  Werner LEMBERG  <wl@gnu.org>
5660         HP-UX 10.20 has `snprintf' but it isn't declared.
5662         * configure.ac: Add declaration test for snprintf.
5663         * configure: Regenerated.
5664         * src/include/lib.h: Handle `NEED_DECLARATION_SNPRINTF'.
5665         * src/include/config.hin: Regenerated.
5667 2003-04-19  Werner LEMBERG  <wl@gnu.org>
5669         Add keyword `figname' to pic, specifying the name of the picture
5670         box in TeX mode.  Based on a patch from William J Poser
5671         <wjposer@unagi.cis.upenn.edu>.
5673         * src/preproc/pic/pic.y: New token `FIGNAME'.
5674         (macro_name): New rule of type <str>.
5675         (placeless_element): Handle `FIGNAME'.
5676         * src/preproc/pic/lex.cpp (lookup_keyword): Add `figname'.
5677         * src/preproc/pic/main.cpp (graphname): New global variable.
5678         (do_picture): Initialize `graphname'.
5679         * src/preproc/pic/pic.h: Updated.
5680         * src/preproc/pic/tex.cpp (tex_output::start_picture): Use
5681         `graphname'.
5682         Simplify TeX code.
5683         (tex_output::text): Beautify output.
5684         * src/preproc/pic/object.cpp (object_spec::~object_spec): Deallocate
5685         `shaded' and `outlined' unconditionally.
5686         * NEWS, src/preproc/pic/pic.man, doc/pic.ms: Updated.
5687         Minor improvements.
5689         * PROBLEMS, README.CVS: Mention that bison version 1.875b or
5690         greater is necessary.
5692 2003-04-17  Hartmut Henkel  <hartmut_henkel@gmx.de>
5694         Add option -r to soelim to avoid emission of `.lf' lines.
5695         Add option -t to produces TeX comment lines instead of `.lf' lines.
5697         * src/preproc/soelim/soelim.cpp: New global variables `raw_flag'
5698         and `tex_flag'.
5699         (usage): Updated.
5700         (main): Handle `-r' and `-t'.
5701         (set_location): Handle `raw_flag' and `tex_flag'.
5702         * src/preproc/soelim/soelim.man, NEWS: Updated.
5704 2003-04-17  Werner LEMBERG  <wl@gnu.org>
5706         * tmac/hyphenex.sh: Replaced with...
5707         * tmac/hyphenex.pl: This perl script to avoid sed compatibility
5708         nightmares.
5710         * aclocal.m4 (GROFF_HTML_PROGRAMS): Emit useful warning message
5711         if --quiet is used for the configure script.
5712         * configure: Regenerated.
5714 2003-04-16  Werner LEMBERG  <wl@gnu.org>
5716         * src/devices/grohtml/post-html.cpp (text_glob::text_glob):
5717         Add `const' to second argument.
5718         (html_printer::add_table_end): Add `const' to argument.
5719         * src/devices/grohtml/html-text.cpp (html_text::issue_tag): Add
5720         `const' to arguments.
5721         * src/devices/grohtml/html-text.h: Updated.
5723         * src/devices/grolbp/charset.h (symset): Use `unsigned char'.
5724         * src/devices/grolbp/lbp.h (lbpputc): Use `unsigned char' for
5725         argument.
5727         * src/devices/grotty/tty.cpp (tty_printer::make_rgb_string): Use
5728         cast for integer constant.
5730         * src/preproc/html/pre-html.cpp (image_device): Use `const'.
5731         (writeNbytes): Add `const' to first argument.
5732         (writeString): Add `const' to argument.
5733         (char_buffer::can_see): Add `const' to third argument.
5734         * src/preproc/html/pushback.cpp (pushBackBuffer::isString): Add
5735         `const' to argument.
5736         * src/preproc/html/pushback.h: Updated.
5738         * src/preproc/soelim/soelim.cpp (include_list): Add `const'.
5739         (include_path_append): Add `const' to argument.
5740         (do_file): Updated.
5742         * src/roff/troff/uniglyph.cpp (unicode_to_glyph_list): Use `const'
5743         for `value'.
5744         (unicode_to_glyph_init::unicode_to_glyph_init): Updated.
5745         * src/roff/troff/uniuni.cpp (unicode_decompose_list): Use `const'
5746         for `value'.
5747         (unicode_decompose_init::unicode_decompose_init): Updated.
5748         * src/roff/troff/glyphuni.cpp (glyph_to_unicode_list): Use `const'
5749         for `value'.
5750         (glyph_to_unicode_init::glyph_to_unicode_init): Updated.
5751         * src/roff/troff/input.cc (process_startup_file): Add `const' to
5752         argument.
5754         * tmac/hyphenex.sh: Make script more portable by using a here
5755         document.
5757 2003-04-15  Werner LEMBERG  <wl@gnu.org>
5759         Renamed all `*.cc' files to `*.cpp'.
5760         Updated all configuration files, makefiles, and documentation.
5762 2003-04-14  Werner LEMBERG  <wl@gnu.org>
5764         * tmac/hyphenex.sh: Slight improvements.
5766 2003-04-13  Werner LEMBERG  <wl@gnu.org>
5768         * font/devascii/R.proto, font/devcp1037/R.proto,
5769         font/devlatin1/R.proto, font/devutf8/R.proto: Fill up remaining
5770         character slots with unnamed glyphs.
5772         * tmac/an-old.tmac: Fix hyphenation value if `cR' is active.
5773         (an-first): New global variable.
5774         (an-header): Emit vertical space between multiple man pages.
5776 2003-04-11  Werner LEMBERG  <wl@gnu.org>
5778         * doc/groff.texinfo, man/groff_out.man: \S only accepts integer
5779         values.
5781 2003-04-10  Werner LEMBERG  <wl@gnu.org>
5783         * PROBLEMS: Revised.
5785 2003-04-10  Bernd Warken  <bwarken@mayn.de>
5787         * doc/webpage.ms: Improved.
5789 2003-04-09  Werner LEMBERG  <wl@gnu.org>
5791         Add register \n[.height] which returns the value of \H.
5792         Add register \n[.slant] which returns the value of \S.
5794         * src/roff/troff/env.cc (init_env_requests): Implement.
5795         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
5796         Document.
5798 2003-04-08  Werner LEMBERG  <wl@gnu.org>
5800         * tmac/html.tmac: Move some of the data into html-end.tmac.
5801         Remove most of the character translations for eqn since html fonts
5802         now cover those characters.
5803         Load www.tmac.
5804         * tmac/html-end.tmac: New file.
5805         * tmac/troffrc: Load html.tmac not www.tmac for -Thtml.
5806         * tmac/troffrc-end: Load html-end.tmac not html.tmac for -Thtml.
5807         * tmac/Makefile.sub (NORMALFILES): Add html-end.tmac.
5809 2003-04-07  Werner LEMBERG  <wl@gnu.org>
5811         * man/groff_out.man: Document negative values of `N' if -Thtml is
5812         used.
5814 2003-04-06  Werner LEMBERG  <wl@gnu.org>
5816         * Makefile.comm (depend.temp): Check location of YTABC.
5818 2003-04-05  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5820         * contrib/mom/Makefile.sub (GROFFBIN): New variable for groff
5821         binary path.
5822         (groff_bin_path): Rename to GROFF_BIN_PATH.
5823         (GROFF): Use GROFFBIN and GROFF_BIN_PATH.
5824         * doc/Makefile.in (TROFFBIN): New variable for troff
5825         binary path.
5826         (GROFFBIN): New variable for groff binary path.
5827         (groff_bin_path): Rename to GROFF_BIN_PATH.
5828         (TROFF): Use TROFFBIN.
5829         (GROFF): Use GROFFBIN and GROFF_BIN_PATH.
5830         * doc/Makefile.sub (GROFFBIN): New variable for groff
5831         binary path.
5832         (groff_bin_path): Rename to GROFF_BIN_PATH.
5833         (GROFF): Use GROFFBIN and GROFF_BIN_PATH.
5835         * Makefile.comm (install_dev): Install scripts from DEVSCRIPTS
5836         with INSTALL_SCRIPT.
5837         (uninstall_dev): Uninstall scripts from DEVSCRIPTS.
5838         * Makefile.dev (all): Depend on DEVSCRIPTS.
5839         (install_dev): Likewise.
5840         * font/devdvi/Makefile.sub (DEVSCRIPTS): New variable to hold
5841         scripts.
5842         * font/devps/Makefile.sub (DEVSCRIPTS): Likewise.
5843         (DEVGENSCRIPTS): New variable to hold generated scripts.
5845 2003-04-05  Werner LEMBERG  <wl@gnu.org>
5847         * src/libs/libdriver/input.cc (IntArray::operator[],
5848         IntArray::get_data): Remove meaningless `const' in return value.
5850         * README.CVS: New file.
5852 2003-04-04  Werner LEMBERG  <wl@gnu.org>
5854         Check for stdint.h in C++, not in C.
5856         * aclocal.m4 (GROFF_STDINT_H): New function,
5857         * configure.ac: Check for stdint.h with GROFF_STDINT_H instead of
5858         AC_CHECK_HEADERS.
5859         * configure, src/include/config.hin: Regenerated.
5860         * src/libs/libgroff/tmpname.cc: Use HAVE_CC_STDINT_H.
5863         Fix handling of &nbsp; in grohtml.  To do this, troff emits `N'
5864         with a negative value, representing the width of the unbreakable
5865         space (only for -Thtml).  grohtml then converts this back to
5866         &nbsp; and uses the value of N as its width.
5868         * src/roff/troff/node.cc (space_char_hmotion_node::tprint,
5869         unbreakable_space_node::tprint): Emit `N-<width>'.
5870         * src/include/printer.h (printer::set_numbered_char): Make it
5871         virtual.
5872         Make members `font_table' and `nfonts' protected instead of private.
5873         * src/devices/grohtml/post-html.cc
5874         (html_printer::set_numbered_char): New member function.
5877         * src/libs/libgroff/maxfilename.cc:
5878         s/HAVE_LIMITS_H/HAVE_CC_LIMITS_H/.
5880         * src/roff/troff/node.cc (unbreakable_space_node::tprint): Don't
5881         emit word marker.
5883 2003-04-03  Sergey A. Osokin  <osa@freebsd.org.ru>
5885         * man/roff.man: Small fixes.
5887 2003-04-03  Werner LEMBERG  <wl@gnu.org>
5889         Make groff independent from locale's numeric settings.
5891         * configure.ac: Check for `setlocale'.
5892         * configure, src/include/config.hin: Regenerated.
5894         * src/include/lib.h: Handle HAVE_SETLOCALE.
5896         * src/devices/grodvi/dvi.cc (main), src/devices/grolj4/lj4.cc
5897         (main), src/devices/grops/ps.cc (main), src/preproc/grn/main.cc
5898         (main), src/preproc/pic/main.cc (main): Call `setlocale'.
5901         * doc/groff.texinfo: Change dir category to `Typesetting'.
5902         (Man font macros): Mention that there is no space between arguments
5903         of .BI and friends.
5905         * src/libs/libdriver/printer.cc, src/devices/grotty/tty.cc
5906         (*printer::change_color, *printer::change_fill_color): Add missing
5907         `const'.
5909 2003-04-02  Werner LEMBERG  <wl@gnu.org>
5911         * src/devices/grohtml/html-table.cc (html_table::emit_col,
5912         html_table::is_gap): Compute table widths after converting border
5913         positions to avoid rounding errors.
5915 2003-04-01  Werner LEMBERG  <wl@gnu.org>
5917         * src/devices/grohtml/html-text.cc (html_text::do_space): Handle
5918         `space_emitted' properly.
5920 2003-03-31  Werner LEMBERG  <wl@gnu.org>
5922         * src/devices/grohtml/html-table.cc: Fix column width calculation.
5923         (html_table::set_linelength): Don't add 1.
5924         (html_table::add_indent): Don't subtract 1.
5926         * tmac/html.tmac: Set default page offset to zero.
5928 2003-03-30  Werner LEMBERG  <wl@gnu.org>
5930         Make groff emit `&nbsp;' for `\ ' and `\~' if `-Thtml' is used.
5932         * src/roff/troff/node.cc (space_char_hmotion_node::tprint,
5933         unbreakable_space_node::tprint): New functions.
5934         (troff_output_file): Make space_char_hmotion_mode::tprint and
5935         unbreakable_space_node::tprint to friends.
5936         * src/roff/troff/node.h: Updated.
5938         * font/devhtml/R.proto: Add `&nbsp' at position 0xA0 (as defined
5939         in the HTML standard).
5941 2003-03-29  Werner LEMBERG  <wl@gnu.org>
5943         * src/roff/troff/env.cc (point_size): Fix emission of html tag.
5944         Otherwise, the following code
5946           .di xxx
5947           .ps 10
5948           a
5949           .br
5950           .di
5951           x\*[xxx]
5953         produces `x a' instead of `xa'.  This is a temporary fix, disabling
5954         font changes in diversions for -Thtml.
5956         * tmac/an-old.tmac (TH, SH): Use `HTML-TAG-NS' instead of
5957         `HTML-TAG'.
5958         (an-do-tag-html): Merge with ...
5959         (an-do-tag): This macro.
5960         Change code slightly to circumvent grohtml bug.
5961         * tmac/troffrc-end: Define dummy for HTML-TAG-NS.
5963         * src/devices/grohtml/html-table.cc (html_table::emit_col,
5964         html_table::is_gap): Round `width' properly.
5966         * tmac/html.tmac: Provide some default layout parameters for
5967         grohtml.
5969         * font/devhtml/DESC.proto: Don't use discrete values for `sizes'
5970         command.
5972 2003-03-28  Werner LEMBERG  <wl@gnu.org>
5974         src/devices/grops/ps.cc (ps_printer::do_import): Fix error message.
5976 2003-03-27  Werner LEMBERG  <wl@gnu.org>
5978         * tmac/an-old.tmac (BT): Don't call .tl if register `ps4html' is
5979         defined.
5981 2003-03-20  Werner LEMBERG  <wl@gnu.org>
5983         * src/roff/troff/env.cc (vertical_spacing): Allow zero value for
5984         `.vs'.
5985         * doc/groff.texinfo: Updated.
5987 2003-03-19  Werner LEMBERG  <wl@gnu.org>
5989         * src/roff/troff/input.cc (process_input_stack) <TOKEN_BEGIN_TRAP,
5990         TOKEN_END_TRAP>: Reset `have_input'.
5992 2003-03-18  Werner LEMBERG  <wl@gnu.org>
5994         * src/roff/groff/groff.man: Mention groff_trace man page.
5996 2003-03-16  Werner LEMBERG  <wl@gnu.org>
5998         * Makefile.in (LIBEXT): New variable to indicate the file extension
5999         of library files.  Computed heuristically from $(OBJEXT).
6000         (MDEFINES): Add $(LIBEXT).
6001         * Makefile.lib, Makefile.comm: Use it.
6003         * src/utils/pfbtops/pfbtops.c (get_text): New function.  Split
6004         overlong lines into smaller chunks.
6005         (get_binary): New function.
6006         (main): Use them.
6007         * src/utils/pfbtops/pfbtops.man: Updated.
6009 2003-03-15  Colin Watson  <cjwatson@debian.org>
6011         * src/roff/groff/groff.man: Minor syntax fix.
6013 2003-03-14  Egil Kvaleberg  <egil@kvaleberg.no>
6015         * src/devices/grops/ps.cc (ps_printer::media_set,
6016         ps_printer::~ps_printer): Handle zero paper width and length.
6018 2003-03-13  Werner LEMBERG  <wl@gnu.org>
6020         Add options -p and -l to grodvi.
6022         * src/devices/grodvi/dvi.cc: Include paper.h.
6023         (landscape_flag, user_paper_length, user_paper_width): New global
6024         variables.
6025         (dvi_printer::begin_page): Emit `papersize' special.
6026         Set color after initialization of `cur_h' and `cur_v'.
6027         (main): Add options `-l' and `-p'.
6028         * font/devdvi/Makefile.sub (DESC): Set `papersize'.
6029         * src/devices/grodvi/grodvi.man, NEWS: Updated.
6031         * src/devices/grops/psrm.cc (valid_input_table): Fixed.
6033 2003-03-12  Werner LEMBERG  <wl@gnu.org>
6035         * src/devices/grops/grops.man: Move documentation of .PSPIC to...
6036         * man/groff_tmac.man: This man page.
6037         * man/groff_font.man: Declare `paperwidth' and `paperlength' as
6038         deprecated.
6040         * tmac/X.tmac: Don't load pspic.tmac.
6042 2003-03-11  Werner LEMBERG  <wl@gnu.org>
6044         Make variable `pr' local to libdriver/input.cc.  Based on a patch
6045         by Bernd Warken <bwarken@mayn.de>.
6047         * src/include/driver.h (pr): Removed.
6049         * src/libs/libdriver/input.cc (pr): New global variable.
6050         (do_file): Deallocate `pr'.
6051         * src/libs/libdriver/printer.cc (pr): Removed.
6053         * src/devices/grodvi/dvi.cc (main), src/devices/grohtml/post-html.cc
6054         (main), src/devices/grolbp/lbp.cc (main), src/devices/grolj4/lj4.cc
6055         (main), src/devices/grops/ps.cc (main), src/devices/grotty/tty.cc
6056         (main): Don't delete `pr'.
6058 2003-03-10  Werner LEMBERG  <wl@gnu.org>
6060         * tmac/a4.tmac, tmac/composite.tmac: Use `.do'.
6061         * tmac/papersize.tmac: New file.
6062         * tmac/troffrc: Include `papersize.tmac'.
6063         * tmac/Makefile.sub (NORMALFILES): Add `papersize.tmac'.
6064         * tmac/an-old.tmac: Set LT to LL by default.
6066         * NEWS, MANIFEST, tmac/groff_man.man, man/groff_tmac.man,
6067         doc/groff.texinfo: Updated.
6069         * src/libs/libgroff/paper.cc (add_iso_paper): Fix very embarassing
6070         bug which caused all odd iso papers to have wrong dimensions.
6072         * src/devices/grops/ps.cc (user_paper_width): New global variable.
6073         (main) <'p'>: Set `user_paper_width' also.
6074         (ps_printer::media_width, ps_printer::media_height): Use values
6075         given with option `-p'.
6077 2003-03-09  Werner LEMBERG  <wl@gnu.org>
6079         * src/include/nonposix.h: Provide default for SET_BINARY.
6081         * src/devices/grodvi/dvi.cc, src/devices/grolbp/lbp.cc,
6082         src/devices/grolj4/lj4.cc, src/devices/grops/ps.cc: Call SET_BINARY
6083         unconditionally.
6085         * src/utils/pfbtops/pfbtops.c: Call SET_BINARY unconditionally.
6086         (main): Treat \r\n as \n.
6088 2003-03-08  Werner LEMBERG  <wl@gnu.org>
6090         * tmac/an-old.tmac: Use register `HY' to control hyphenation.
6091         * NEWS, tmac/groff_man.man, doc/groff.texinfo: Document it.
6093 2003-03-07  Werner LEMBERG  <wl@gnu.org>
6095         Added support to access more than 256 glyphs in Type 1 fonts.
6097         * src/devices/grops/ps.cc (subencoding): New structure.
6098         (style): Add `sub' field.
6099         Updated all users.
6100         (ps_printer): Add `subencodings' and `next_subencoding_index' fields.
6101         Add `set_subencoding', `get_subfont' and `encode_subfont' member
6102         functions.
6103         Updated all users.
6104         (ps_printer::set_char): Use `set_subencoding'.
6105         (make_subencoding_name): New function.
6106         (ps_printer::set_style): Handle case where `sty.sub' is not zero.
6107         (ps_printer::~ps_printer): Emit subencoding definitions.
6109         * src/devices/grops/psrm.cc (valid_input_table): New array to
6110         properly support EBCDIC.
6111         (white_space): Add `\f'.
6112         (ps_get_line): Change first argument to be of type `string &'.
6113         Updated all callers.
6114         This allows to get lines of arbitrary length.
6115         Use `valid_input_table'.
6116         Remove warning about non-conforming PS line length.  This seems
6117         not to be of great importance -- for example, dvips don't emit
6118         a warning either.
6119         (PS_LINE_MAX): Removed.
6120         (matches_comment): Change first argument to be of type `string &'.
6122         * src/devices/grops/grops.man, src/devices/grops/TODO: Updated.
6124         * src/utils/afmtodit/afmtodit.pl (%unicode_decomposed,
6125         %AGL_to_unicode, %default_ligatures): New hash tables.
6126         Read all map entries.
6127         Add unencoded characters.
6128         Check for default ligatures if there are no `L' entries.
6129         Print all kern entries.
6130         Print all characters in charset.
6131         * src/utils/afmtodit/afmtodit.man: Updated.
6133         * font/devps/*: Regerated all fonts.
6135         * tmac/latin[129].tmac, tmac/cp1047.tmac: Don't test for existence
6136         of characters, just use `.trin'.  Otherwise the mapping depends
6137         on the font encoding.
6138         * tmac/ps.tmac: Add `fi' and `fl'.
6139         Improve `Fi' and `Fl'.
6140         * tmac/X.tmac, tmac/lbp.tmac, tmac/tty.tmac: Improve `Fi' and `Fl'.
6141         * tmac/Xps.tmac: Fix `em'.
6143         * NEWS: Updated.
6145 2003-03-04  Werner LEMBERG  <wl@gnu.org>
6147         * src/roff/troff/input.cc (charinfo_to_node_list): Reset
6148         `have_input'.
6150 2003-03-03  Werner LEMBERG  <wl@gnu.org>
6152         * Makefile.sub (DISTCLEANFILES): Add gxditview._man.
6154         * font/devps/generate/textmap: Remove entry `similarequal'.
6155         * font/devps/symbolmap: Updated.
6157 2003-03-02  Werner LEMBERG  <wl@gnu.org>
6159         * src/libs/libgroff/font.cc (font::load): Fix error message for
6160         bad character type.
6162         * src/devices/grops/grops.man: Improve documentation of the -b
6163         flag.
6165         * tmac/tty.tmac: Load latin1.tmac for all TTY devices except
6166         `ascii' and `cp1047'.
6168 2003-03-01  Werner LEMBERG  <wl@gnu.org>
6170         Document composite glyphs and the `composite' request.
6172         * man/groff.man, man/groff_diff.man, doc/groff.texinfo: Do it.
6174 2003-02-28  Werner LEMBERG  <wl@gnu.org>
6176         * font/devdvi/generate/ec.map: Add some more Unicode entities.
6177         * font/devdvi/*EC: Updated.
6179         * tmac/composite.tmac, tmac/latin2.tmac, tmac/latin9.tmac: New files.
6180         * tmac/latin1 (latin1-tr): Undo any previous mapping.
6181         * tmac/troffrc: Load `composite.tmac'.
6182         * tmac/Makefile.sub (NORMALFILES): Updated.
6184         * doc/groff.texinfo (Input Encodings): New section.
6185         * NEWS: Updated.
6187 2003-02-27  Werner LEMBERG  <wl@gnu.org>
6189         * doc/texinfo.tex: New version 2003-02-11.06.
6191         * tmac/doc-common (Dt): Don't emit warning for unknown section.
6192         * tmac/groff_mdoc.man: Fix description of `Dt'.
6194 2003-02-26  Egil Kvaleberg  <egil@kvaleberg.no>
6196         * font/devps/prologue.ps: Fix for included Postscript that does
6197         a setpagedevice -- which is now safely ignored.
6199         * NEWS: Updated.
6201         * src/devices/grops/ps.cc: Now sets the page size in the generated
6202         document.  This is done in two ways: Via a %%-comment for gv and
6203         the like, and via a PageSize and setpagedevice for programs that
6204         understands Postscript proper, like ps2pdf.
6206         * src/devices/grops/ps.h: New broken-flag to avoid page size
6207         definition, if required.
6209         * src/devices/grops/grops.man: New broken-flag 16 mentioned.
6211         * doc/Makefile.in: Added -nosetpage flag (via @pnmtops_nosetpage@).
6212         Not really necessary due to the fix in prologue.ps, but cleaner:
6213         Such information does not belong in an .eps file.
6215         * doc/Makefile.sub: See doc/Makefile.in.
6217 2003-02-26  Ralph Corderoy  <ralph@inputplus.co.uk>
6219         * aclocal.m4 (GROFF_PNMTOPS_NOSETPAGE): Use P2 format for testing
6220         instead of P1 since the latter is broken in some versions of netpbm.
6221         * configure: Updated.
6223 2003-02-26  Larry Kollar  <kollar@alltel.net>
6225         Make man pages more customizable.
6227         * tmac/an-old.tmac (FT): New register holding footer distance from
6228         bottom.
6229         (HF): New string holding the default heading font.
6230         (TH): Handle registers `IN' and `SN' set on the command line.
6231         Use `FT'.
6232         (PT, BT): New strings to customize header and footer lines.
6233         (an-header, an-footer): Use them.
6234         (SH, SS): Use `HF'.
6235         * tmac/groff_man.man: Document changes.
6237         * doc/groff.texinfo: Document man changes.
6238         Document Ultrix extensions of man.
6240 2003-02-26  Werner LEMBERG  <wl@gnu.org>
6242         * src/roff/troff/input.cc (do_width, do_if_request): Reset
6243         `have_input' after changing back to old environment.
6245         * src/devices/grolbp/lbp.cc (lbp_printer::set_line_thickness): Move
6246         function up to be defined before first call.  This is necessary to
6247         avoid a compilation problem with Sun's WorkShop 6 C++ compiler.
6249         * src/utils/afmtodit/afmtodit.pl: Make script search for files in
6250         the default font directory also.  Based on a patch from James
6251         J. Ramsey <jjramsey_6x9eq42@yahoo.com>.
6252         * src/utils/afmtodit/Makefile.sub (afmtodit): Handle @FONTDIR@.
6253         * src/utils/afmtodit/afmtodit.man: Document it.
6255         * NEWS: Updated.
6257         * tmac/groff_man.man, doc/groff.texinfo: Many minor fixes.
6259 2003-02-25  Gaius Mulley  <gaius@glam.ac.uk>
6261         * aclocal.m4 (GROFF_HTML_PROGRAMS): Add test for pnmtops.
6262         (GROFF_PNMTOPS_NOSETPAGE): New macro.
6263         * configure.ac: Use it.
6264         * configure: Regenerated.
6265         * Makefile.in: Updated.
6267         * tmac/Makefile.sub (NORMALFILES): Remove www.tmac.
6268         (CLEANADD): Add www.tmac-sed.
6269         (pnmtops_nosetpage): Define default.
6270         (install_data): Handle www.tmac-sed and substitute
6271         @PNMTOPS_NOSETPAGE@.
6272         (stamp-sed): Add www.tmac.
6273         * tmac/www.tmac: Rewritten, based on a patch by Bernd Warken.
6274         It now breaks URLs at suitable places.
6275         (www:substring_ok): New register set by...
6276         (www:@test_substring): New macro.
6277         (www:error): New alias to www-error.
6278         (www:lenstr, www:splitstr, www:url_breaks, www:url_breaks_splitted):
6279         New macros.
6280         (URL): Use www:url_breaks.
6281         (PIMG, MPIMG): Use @PNMTOPS_NOSETPAGE@.
6282         (CDS, CDE): New macros.
6284 2003-02-25  Werner LEMBERG  <wl@gnu.org>
6286         * src/devices/grops/ps.cc (ps_printer::define_encoding): Avoid
6287         buffer overflow.
6289 2003-02-24  Werner LEMBERG  <wl@gnu.org>
6291         Contrary to the PCL5 Developer's Guide, the ascenders in TFM files
6292         can be negative also.
6294         * src/utils/hpftodit/hpftodit.cc (char_info): `ascent' must be
6295         `int16'.
6296         (read_char_table): Avoid negative ascenders.
6297         (output_charset): Add cast.
6298         * font/devlj4/*: Regenerated.
6300         Replace unnamed glyphs for DVI fonts with `uXXXX' glyph names where
6301         possible.
6303         * font/devdvi/generate/{tc,texttt,ec,texmi,texsy,textex}.map: Do it.
6304         * font/devdvi/generate/textex.map: Map glyph 23 to `u21C6' instead
6305         of `<>'.
6306         * font/devdvi/*: Regenerated.
6308         Map `la' and `ra' to U+27E8 and U+27E9.  These two characters have
6309         normal width, while the previously used characters (U+2329 and
6310         U+232A) are classified as wide due to canonical equivalence with the
6311         CJK punctuation characters U+3008 and U+3009.
6313         * font/devutf8/R.proto: Updated.
6314         * src/roff/troff/uniglyph.cc, src/roff/troff/glyphuni.cc: Ditto.
6316         * man/groff_char.man: Simplify handling of table traps by
6317         introducing `start block' and `end block' macros.
6318         (Ns, Ne, 2s, 2e, Ds, De): New macros.
6319         (DL): Make it work with Unix troff also.
6320         Fix code values of `la' and `ra'.
6322         * tmac/dvi.tmac: Define `<>' for CW and CWI.
6324 2003-02-23  Gaius Mulley  <gaius@glam.ac.uk>
6326         * src/devices/grohtml/post-html.cc (element_list::~element_list):
6327         New destructor, fixing a major memory leak.
6329 2003-02-22  Werner LEMBERG  <wl@gnu.org>
6331         * font/devhtml/R.proto, font/devutf8/R.proto: Flip `*f' and `+f'
6332         to be in conformance with Unicode 3.0 and newer.
6334         * font/devlj4/generate/text.map: Add `Eu'.
6335         * font/devlj4/generate/special.map: Flip `*e' and `+e'.
6336         * font/devlj4/S: Regenerated.
6338         * man/groff_char.man: Completely rewritten.
6340         * doc/groff.texinfo: Fix description of request and macro arguments.
6342 2003-02-20  Gaius Mulley  <gaius@glam.ac.uk>
6344         Valgrind fixes.
6346         * src/devices/grohtml/html-table.cc (html_table::~html_table):
6347         Deallocate `columns' list.
6348         * src/devices/grohtml/post-html.cc (char_block::~char_block):
6349         New destructor.
6350         (text_glob::text_glob_html, text_glob::text_glob_special,
6351         text_glob::text_glob_line, text_glob::text_glob_auto_image,
6352         text_glob::text_glob_tag): Avoid memory leaks.
6353         (text_glob::remember_table): Free memory before reassigning.
6355 2003-02-19  Werner LEMBERG  <wl@gnu.org>
6357         Add glyph `+e', greek lunate epsilon symbol, and `-h' (with the
6358         alias `hbar'), the Planck constant over two pi.
6360         * font/devdvi/generate/texmi.map: Use `*e' for position 15 and
6361         `+e' for position 34.
6362         * font/devdvi/generate/texsy.map: Replace `DI' and `HE' with
6363         `u2662' and `u2661'.
6364         * font/devdvi/{MI,S}: Regenerated.
6365         * font/devhtml/R.proto, font/devutf8/R.proto: Add `+e', `-h', `hbar'.
6366         * font/devlbp/*: Add `hbar' alias.
6367         * font/devlj4/generate/special.map: Ditto.
6368         * font/devlj4/S: Regenerated.
6369         * font/devps/generate/symbolchars: Add `+e'.
6370         * font/devps/generate/textmap: Fix PS name for `-h'.
6371         Add `hbar' alias.
6372         * font/devps/symbolmap: Regenerated.
6374         * src/devices/grops/ps.cc (transform_fill): Removed since unused.
6376         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Add `+e',
6377         `-h', `hbar'.
6378         * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Add `+e',
6379         `-h'.
6381         * tmac/X.tmac, tmac/ps.tmac: Provide definitions for `-h' and
6382         `hbar'.
6383         * tmac/tty-char.tmac: Add `+e'.
6385 2003-02-17  Werner LEMBERG  <wl@gnu.org>
6387         Another round trying to really fix problems with `have_input'.
6389         * src/roff/troff/input.cc (input_stack::get): Handle `have_input'.
6390         (token::next) <'\n'>, <\'\n'>: Don't handle `have_input'.
6392         * src/devices/grotty/tty.cc (tty_printer::put_color): Fix color
6393         handling if both foreground and background colors are default.
6395         * doc/groff.texinfo (Debugging): Document .lf differences to
6396         AT&T troff.
6398 2003-02-16  Werner LEMBERG  <wl@gnu.org>
6400         * src/devices/grotty/tty.cc (tty_printer::make_rgb_string): Avoid
6401         null-bytes in created string.
6403         * src/roff/troff/input.cc (lookup_color, interpolate_macro,
6404         alias_macro, lookup_request): Improve warning messages.
6406         * src/roff/troff/node.cc (suppress_node::tprint): Use `strsave',
6407         not `strdup'.
6408         Free `last_image_filename'.
6410         * src/preproc/html/pre-html.cc (char_block::char_block): Initialize
6411         `buffer'.
6412         (imageList::createPage, imageList::createImage): Use `free', not
6413         `a_delete'.
6414         (imageItem::~imageItem): Free `imageName'.
6415         (addRegDef): Use `strsave', not `strdup'.
6416         (get_resolution): Free `pathp'.
6418 2003-02-15  Werner LEMBERG  <wl@gnu.org>
6420         * src/devices/grotty/tty.cc (tty_printer::tty_printer): Fix pointer
6421         to `dummy'.
6423 2003-02-14  Werner LEMBERG  <wl@gnu.org>
6425         Add memory management for colors to deallocate unnamed colors
6426         properly.
6428         * src/include/color.h (color): New members `free_list' and `next'.
6429         New member functions `new' and `delete'.
6430         Add destructor.
6431         * src/libs/libgroff/color.cc: Implement it.
6433         * src/libs/libgroff/font.cc (font::add_kern): Use integer cast
6434         for array size of new operator.
6436         * src/libs/libdriver/input.cc (IntArray::operator[]): Remove
6437         redundant comparison.
6439         * src/roff/troff/input.cc (word_space_node::reread,
6440         hmotion_node::reread): Avoid warning about unused parameter.
6441         (reset_output_registers): Remove redundant parameter.
6442         (define_color): Undo change 2003-02-12.
6444         * src/roff/troff/reg.h: Updated.
6446         * src/roff/troff/node.cc (troff_output_file::really_print_line,
6447         output_file::put_filename, real_output_file::really_put_filename,
6448         ascii_output_file::really_print_line,
6449         break_char_node::get_hyphen_list): Avoid warning about unused
6450         parameter.
6451         (suppress_node::tprint): Updated.
6453         * configure.ac: Check declaration for rand() and srand().
6454         * configure: Regenerated.
6456         * src/preproc/pic/pic.h: Declare fmod(), rand(), and srand()
6457         conditionally.
6458         * src/preproc/pic/pic.y: Remove declaration of fmod(), rand(),
6459         and srand().
6461         * src/preproc/eqn/delim.cc (delim_table): Add missing initializers
6462         to avoid compiler warnings.
6464         * src/preproc/grn/hgraph.cc (HGPrintElt): Second parameter is
6465         unused.
6467         * src/devices/grops/ps.cc (ps_printer::set_char): Last parameter
6468         is unused.
6469         * src/devices/grops/psrm.cc (skip_possible_newline): Remove first
6470         (unused) parameter.
6471         Updated all callers.
6473         * src/devices/grotty/tty.cc (tty_printer::set_char): Last parameter
6474         is unused.
6475         * src/devices/grodvi/dvi.cc (dvi_printer::set_char): Ditto.
6476         * src/devices/grolj4/lj4.cc (lj4_printer::set_char): Ditto.
6478         * src/devices/grohtml/post-html.cc (html_printer::emit_line):
6479         Parameter is unused.
6480         (html_printer::add_table_end): Define parameter conditionally.
6481         * src/devices/grohtml/output.cc (simple_output::special): Parameter
6482         is unused.
6484         * src/devices/grolbp/lbp.cc: Define _GNU_SOURCE conditionally.
6485         (lbp_printer::set_char): Last parameter is unused.
6487         * src/utils/indxbib/indxbib.cc (main): Remove redundant comparison.
6489 2003-02-13  Werner LEMBERG  <wl@gnu.org>
6491         New commands \D'Fr ...', \D'Fc ...', etc. for orthogonality.
6492         Make \D'f ...' move horizontally again for backwards compatibility.
6493         Replace it with \D'Fg ...' where appropriate to avoid dependency
6494         on horizontal resolution.
6496         * src/roff/troff/input.cc (do_get_long_name): New function.
6497         (get_long_name): Call it.
6499         (read_draw_node): Handle `\D'Fx ...' by calling ...
6500         (read_color_draw_node): New function.
6502         (read_rgb, read_cmy, read_cmyk, read_gray): New optional argument
6503         `end'.
6504         Pass it to `do_get_long_name' which is used instead of
6505         `get_long_name'.
6507         * src/libs/libdriver/input.cc (color_from_Df_command): Remove
6508         unnecessary value guard.
6509         (parse_D_command) <'f'>: Add horizontal shift.
6511         * src/preproc/grn/hgraph.cc (HGPrintElt) <POLYGON>: Use \D'Fg ...'.
6512         * src/preproc/pic/troff.cc (troff_output::set_fill): Ditto.
6513         (FILL_MAX): Removed.
6515         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
6516         Updated.
6518 2003-02-12  Werner LEMBERG  <wl@gnu.org>
6520         * src/roff/troff/input.cc (do_name_test, do_expr_test,
6521         do_zero_width): Push `\n' if closing delimiter is missing.
6523         (token::next) <ESCAPE_NEWLINE>, <'\n'>, <\'\n'>: Reset `have_input'.
6524         <'F'>: Make \F non-transparent at the beginning of line.
6525         (process_input_stack) <token::TOKEN_CHAR, token::TOKEN_NEWLINE,
6526         token::TOKEN_REQUEST, token::TOKEN_BEGIN_TRAP>: Don't handle
6527         `have_input'.
6529         (define_color): Free color in case of reassignment.
6531         * doc/groff.texinfo (@Defesc, @DefescList, @DefescItem,
6532         @DefescListEnd): Use @Var, not @var.
6533         Fix all calls.
6535         * src/preproc/grn/hgraph.cc (HGPrintElt): Fix typo.
6537         * src/preproc/pic/object.cc (object_spec::~object_spec): Free
6538         `shaded' and `outlined' arrays.
6539         (object_spec::object_spec): Initialize `shaded' and `outlined'.
6540         (graphic_object::set_fill_color, graphic_object::set_outline_color):
6541         Use strsave.
6542         (closed_object::set_fill_color): Ditto.
6543         * src/preproc/pic/troff.cc (troff_output::set_color): Use strsave
6544         instead of strdup.
6545         (troff_output::reset_color): Use a_delete instead of free.
6546         * src/preproc/pic/main.cc (do_file): Free `out' in case of error.
6548 2003-02-11  Werner LEMBERG  <wl@gnu.org>
6550         * doc/groff.texinfo: Improve documentation of `ad'.
6551         Document that \D'f...' is dependent on the horizontal resolution.
6552         * man/groff_diff.man: Improve documentation of \D'f...'.
6554         * src/preproc/grn/hgraph.cc (HGPrintElt) <POLYGON>: Don't emit
6555         compensating \h'...' for \D'f ...' since the latter no longer moves
6556         current position.
6557         * src/preproc/pic/troff.cc (troff_output::set_fill): Ditto.
6559 2003-02-10  Werner LEMBERG  <wl@gnu.org>
6561         Improve error messages for `x F' (and `F') commands.
6563         * src/include/error.h: Add declaration for
6564         `current_source_filename'.
6565         * src/libs/libgroff/filename.cc: Add `current_source_filename'.
6566         * src/libs/libgroff/error.cc (do_error_with_file_and_line): Add
6567         parameter for source file string.
6568         Updated all callers.
6570         * src/libs/libdriver/input.cc: Add `current_source_filename'.
6571         (remember_source_filename): New function.
6572         (parse_x_command <'F'>, do_file <'F'>): Use it.
6574 2003-02-09  Werner LEMBERG  <wl@gnu.org>
6576         Make grotty not emit warnings about unknown colors more than
6577         necessary.
6579         * src/devices/grotty/tty.cc: Include `ptable.h'.
6580         (TTY_MAX_COLORS): Removed.
6581         (DEFAULT_COLOR_IDX): Defined to -1.
6582         (glyph): Change `back_color_idx' and `fore_color_idx' to `char'.
6583         (tty_printer): Change `curr_back_idx' and `curr_fore_idx' to `char'.
6584         Change `tty_colors' to be a ptable.
6585         First arg of `put_color' is now `char'.
6586         New functions `make_rgb_string' and `tty_color'.
6587         (tty_printer::tty_printer): Use `tty_color'.
6588         (tty_printer::color_to_idx): Return value is now `char'.
6589         Use `tty_color'.
6591         * src/include/color.h (color): Add `print_color' member function.
6592         * src/libs/libgroff/color.cc (color::print_color): Implement it.
6594 2003-02-08  Werner LEMBERG  <wl@gnu.org>
6596         Valgrind fixes.
6598         * src/devices/grops/ps.cc (ps_printer::define_encoding): Close
6599         encoding file.
6601         * src/include/ptable.h (PTABLE::~PTABLE, PTABLE::define): Always
6602         assume that value has been allocated with `new[]', thus use
6603         `a_delete' for deallocation.
6605         * src/libs/libdriver/input.cc (get_integer_arg,
6606         get_possibly_int_args, parse_x_command, do_file): Use `a_delete'
6607         where appropriate.
6609         * src/libs/libgroff/new.cc (delete) [!COOKIE_BUG]: Define.
6610         * src/libs/libgroff/nametoindex.cc
6611         (character_indexer::named_char_index): Use `new <type>[1]'.
6613         * src/preproc/eqn/lex.cc (init_table, do_definition): Use `new
6614         <type>[1]'.
6615         * src/preproc/eqn/text.cc (set_special_char_type): Ditto.
6616         (split_text): Use `a_delete'.
6618         * src/preproc/pic/pic.y (define_label, define_variable): Use `new
6619         <type>[1]'.
6621         * src/roff/troff/env.cc (environment::choose_breakpoint): Avoid
6622         harmless memory leak.
6623         (hyphen_trie::read_patterns_file): Initialize `buf'.
6624         * src/roff/troff/node.cc (troff_output_file::troff_output_file):
6625         Initialize `current_fill_color'and `current_glyph_color'.
6626         * src/roff/troff/glyphuni.cc
6627         (glyph_to_unicode_init::glyph_to_unicode_init): Use `new <type>[1]'.
6628         * src/roff/troff/uniuni.cc
6629         (unicode_decompose_init::unicode_decompose_init): Ditto.
6630         * src/roff/troff/uniglyph.cc
6631         (unicode_to_glyph_init::unicode_to_glyph_init): Ditto.
6633 2003-01-26  Werner LEMBERG  <wl@gnu.org>
6635         * src/utils/indxbib/indxbib.cc (main) [__EMX__]: Check with
6636         `access' before calling `unlink'.
6637         (do_file): Handle __EMX__.
6639         * src/include/nonposix.h: Handle __EMX__.
6641         * Makefile.in (SEP): New variable; set to @PATH_SEPARATOR@.
6642         (fontpath,tmacpath): Use it.
6643         (MDEFINES): Add it.
6644         Sorted alphabetically.
6646         * src/preproc/eqn/neqn.sh, src/roff/nroff/nroff.sh: Use
6647         @SEP@.
6648         * src/preproc/eqn/Makefile.sub, src/roff/nroff/Makefile.sub: Handle
6649         @SEP@.
6651 2003-01-27  Werner LEMBERG  <wl@gnu.org>
6653         * src/libs/libgroff/strcasecmp.c, src/libs/libgroff/strncasecmp.c:
6654         New files, copied from gnulib.
6655         * src/libs/libgroff/Makefile.sub (CSRCS): Add them.
6656         * configure.ac: Updated.
6657         * configure: Regenerated.
6659         * src/include/config.hin: Regenerated.
6660         * src/include/lib.h [!HAVE_STRCASECMP]: Declare `strcasecmp'.
6661         Don't define `strcasecmp' as `strcmp'.
6662         [!HAVE_STRNCASECMP]: Declare `strncasecmp'.
6663         Dont define `strncasecmp' as `strncmp'.
6665         * src/roff/groff/pipeline.c [!HAVE_STRCASECMP, !HAVE_STRNCASECMP]:
6666         Removed.
6668 2003-01-26  Werner LEMBERG  <wl@gnu.org>
6670         * src/utils/indxbib/indxbib.cc (main) [__EMX__]: Fix typo:
6671         s/unline/unlink/.
6673 2003-01-25  Werner LEMBERG  <wl@gnu.org>
6675         * doc/groff.texinfo (Ligatures and Kerning): Mention limitations.
6677 2003-01-24  Werner LEMBERG  <wl@gnu.org>
6679         Add US-english hyphenation exceptions (converted from Barbara
6680         Beeton's hyphenation exception log reports which appear irregularly
6681         in TUGBoat).
6683         * tmac/hyphen.us: Updated to latest version.
6684         * tmac/README: Updated.
6685         * tmac/hyphenex.us, tmac/hyphenex.sh: New files.
6686         * tmac/troffrc: Load `hyphenex.us'.
6687         * tmac/Makefile.sub (NORMALFILES): Add `hyphenex.us'.
6688         * doc/groff.texinfo: Updated.
6690 2003-01-23  Werner LEMBERG  <wl@gnu.org>
6692         Improve hyphenation slightly.  This is a first step in redesigning
6693         the hyphenation algorithm to make it more flexible (e.g. allowing
6694         kerns and ligatures between the hyphenation character and the
6695         following character -- while not used normally in English, other
6696         languages like German would benefit).
6698         * src/roff/troff/env.cc (environment::hyphenate_line): Use
6699         assertion instead of if-clause.
6700         Let `get_hyphen_list' return the number of involved characters in
6701         the hyphenation pattern instead of computing it directly (which
6702         often yields too small values).
6703         * src/roff/troff/node.h (*::get_hyphen_list): Add second parameter.
6704         * src/roff/troff/node.cc (*::get_hyphen_list): Handle new second
6705         parameter.
6707 2003-01-22  Werner LEMBERG  <wl@gnu.org>
6709         Fixing a bug which caused groff to hang if the hyphenation exception
6710         dictionary tried to grow.
6712         * src/roff/troff/env.cc (hyphen_trie::insert_hyphenation,
6713         hyphen_trie::read_patterns_file, do_hyphenation_patterns_file): Use
6714         pointer to dictionary.
6716 2003-01-20  Werner LEMBERG  <wl@gnu.org>
6718         * src/utils/afmtodit/afmtodit.pl: Add switch `-m' to suppress
6719         negative left italic correction.
6720         * src/utils/afmtodit/afmtodit.man: Document it.
6722         * font/devps/generate/Makefile (RFLAG): Add `-m'.
6723         * font/devps/{AB,AR,BMB,BMR,CB,CR,EURO,HB,HR,HNB,HNR,NB,NR,PB,PR,
6724         S,TB,TR,ZD,ZDR}: Regenerated with afmtodit options `-i 0 -m'.
6726         * NEWS: Updated.
6728 2003-01-16  Werner LEMBERG  <wl@gnu.org>
6730         * NEWS: Updated.
6732 2003-01-16  Jörgen Grahn  <jgrahn@algonet.se>
6734         * src/preproc/refer/refer.man: Mention REFER environment variable.
6736 2003-01-05  Werner LEMBERG  <wl@gnu.org>
6738         Similar to \[is], the square root glyph (\[sr]) and the square root
6739         extension glyph (\[radicalex]) are now text symbols.  The new
6740         mathematical versions are called \[sqrt] and \[sqrtex],
6741         respectively.
6743         * font/devX*/S: Regenerated.
6744         * font/devdvi/generate/texex.map: Rename `sr[0123]' to `sqrt[0123]'.
6745         * font/devdvi/generate/texsy.map: Rename `sr' to `sqrt'.
6746         * font/devdvi/EX, font/devdvi/S: Regenerated.
6747         * font/devhtml/R.proto, font/devutf8/R.proto: Add `sqrt'.
6748         * font/devlj4/generate/special.map: Add `sqrt'.
6749         * font/devlj4/S: Regenerated.
6750         * font/devps/generate/textmap: Add `sqrt'.
6751         * font/devps/S, font/devps/symbolmap: Regenerated.
6753         * src/preproc/eqn/sqrt.cc (SQRT_CHAR, RADICAL_EXTENSION_CHAR,
6754         SQRT_CHAIN, BAR_CHAIN): Use `sqrt*' and `sqrtex*'.
6755         * src/roff/troff/input.cc (init_charset_table): Make `sqrtex'
6756         overlap horizontally.
6758         * tmac/X.tmac, tmac/ps.tmac, tmac/lj4.tmac: Add `sqrtex'.
6759         * tmac/dvi.tmac: Add `sr', and `sqrtex'.
6760         Fix `radicalex'.
6762         * doc/groff.texinfo, man/groff_diff.man: Document that `radicalex'
6763         and `sqrtex' are overlapping glyphs.
6765 2003-01-04  Werner LEMBERG  <wl@gnu.org>
6767         * font/devdvi/generate/texsy.map: Add `is'.
6768         * font/devps/symbolmap: Regenerated.
6769         * font/devdvi/*TC, MI, S: Regenerated.
6771         * tmac/dvi.tmac: Remove `is'.
6773 2003-01-03  Werner LEMBERG  <wl@gnu.org>
6775         `is' is now a text symbol (only relevant for dvi).  The math variant
6776         can be accessed with `integral'.
6778         * font/devX*/S: Regenerated.
6779         * font/devdvi/generate/texex.map: Remove `is'.
6780         * font/devdvi/EX: Updated.
6781         * font/devhtml/R.proto, font/devutf8/R.proto: Add `integral'.
6782         * font/devlj4/generate/special.map: Ditto.
6783         * font/devlj4/S: Regenerated.
6784         * font/devps/generate/textmap: Add `integral'.
6785         * font/devps/S: Regenerated.
6787         * tmac/dvi.tmac: Define `is'.
6789         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Add `integral'.
6791         * src/preproc/tbl/main.cc (process_format): Fix error message.
6793 2003-01-02  Werner LEMBERG  <wl@gnu.org>
6795         * font/devhtml/R.proto, font/devutf8/R.proto: Add `ne' and `nc'.
6796         * font/devps/textmap: Fix entries for `ne' and `nc'.
6797         * font/devps/symbolmap: Regenerated.
6799         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list),
6800         src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Add `18',
6801         `38', `58', `78', `-+', `|=', `nc', `ne'.
6803         * tmac/dvi.tmac: Add `nm', `ne', `nc'.
6804         Use `schar' for `aq'.
6805         * tmac/ps.tmac, tmac/X.tmac: Add `nc' and `ne'.
6806         * tmac/ec.tmac: Add `SC' to special fonts for `CW' and `CWI'.
6807         * tmac/tty.tmac: Add `ne'.
6809         * src/roff/troff/node.cc (make_glyph_node): Test with `get_macro'
6810         for fallback glyphs.
6812 2002-12-29  Werner LEMBERG  <wl@gnu.org>
6814         Add glyph `|='.
6816         * font/devX*/*: Regenerated.
6817         * font/devdvi/generate/ec.map: Remove `eq'.
6818         * font/devdvi/generate/texsy.map: Make `~=' the same as `~~'.
6819         Assign `|=' to position 39.
6820         * font/devdvi/*EC, S: Regenerated.
6821         * font/devhtml/R.proto, font/devutf8/R.proto: Add `|='.
6822         * font/devlj4/generate/special.map: Make `~=' the same as `~~'.
6823         Assign `|=' to position 549.
6824         * font/devps/generate/textmap, font/devps/enerate/symbolmap: Remove
6825         `equalmath'.
6826         Add `uni2243' for `|='.
6828         * tmac/ec.tmac: Add `eq'.
6829         * tmac/dvi.tmac: Add `=~'.
6830         * tmac/tty-char.tmac, tmac/ps.tmac, tmac/X.tmac, tmac/lbp.tmac: Add
6831         `|='.
6833 2002-12-21  Werner LEMBERG  <wl@gnu.org>
6835         * font/devdvi/generate/tc.map: Remove `**'.
6836         * font/devdvi/*TC: Regenerated.
6837         * font/devhtml/R.proto, font/devutf8/R.proto: Add `18', `38', `58',
6838         `78', `<<', `>>'.
6839         * font/devutf8/NOTES: Updated.
6841         * src/roff/troff/charinfo.h (charinfo): Add `setx_macro' function.
6842         Don't give default parameter to `set_macro'.
6843         * src/roff/troff/input.cc (do_define_character): Use `setx_macro'
6844         instead of `set_macro'.
6845         (charinfo::setx_macro): Implement it.
6846         (charinfo::set_macro): Don't change `mode'.
6848         * tmac/tty.tmac: Add `18', `38', `58', `78', `<<', `>>'.
6849         * tmac/ps.tmac, tmac/X.tmac: Add `<<', `>>'.
6850         * tmac/dvi.tmac: Define `!=' with `.schar'.
6852 2002-12-20  Werner LEMBERG  <wl@gnu.org>
6854         * font/devX*/S: Regenerated.
6855         * font/devdvi/generate/ec.map: Remove `pl'.
6856         * font/devdvi/generate/tc.map: Remove `mi', `14', `12', `34'.
6857         * font/devdvi/*{TC,EC}: Regenerated.
6858         * font/devhtml/R.proto: Add `-+'.
6859         Remove double entries for `rk', `lk', `lt', `rt', `rb', `lb'.
6860         * font/devlbp/*: Remove `or'.
6861         * font/devlj4/generate/special.map: Remove `or'.
6862         * font/devlj4/S: Regenerated.
6863         * font/devps/generate/textmap: Add `fiveeighths', `oneeighth',
6864         `seveneighths', `threeeighths'.
6865         Remove `plusmath'.
6866         Replace `minusplus' with `uni2213'.
6867         * font/devps/symbolmap: Regenerated.
6868         * font/devutf8/R.proto: Replace `shc' with unnamed glyph.
6869         Add `-+'.
6871         * src/roff/troff/charinfo.h (charinfo): Add `is_normal' inline
6872         function.
6873         * src/roff/troff/node.cc (troff_output_file::put_char_width):
6874         Call glyph_color and fill_color even if tcommand_flag isn't set.
6875         (make_node, node::add_char): Check not ci->is_fallback but
6876         ci->is_normal.
6878         * tmac/lj4.tmac, tmac/lbp.tmac: Define `or'.
6879         * tmac/ec.tmac: Add .rchar entry for `f/'.
6880         Don't remove `12', `14', `34'.
6881         Define `pl' to be always roman.
6882         * tmac/ps.tmac (ps-frac, ps-frac-mono): New macros.
6883         Define `18', `38', `58', `78'.
6884         * tmac/tty.tmac: Add `-+'.
6885         * tmac/dvi.tmac: Define `f/'.
6886         (dvi-frac): Use `f/'.
6887         * tmac/X.tmac (X-frac, X-frac-mono): New macros.
6888         Define `18', `38', `58', `78'.
6890 2002-12-15  Colin Watson  <cjwatson@debian.org>
6892         * contrib/pic2graph/pic2graph.sh: Add missing `;;'.
6894 2002-12-10  Werner LEMBERG  <wl@gnu.org>
6896         Add glyph `tno', a textual variant of `no'.
6898         * font/devX*/*: Regenerated.
6899         * font/{devcp1047,devlatin1,devutf8,devhtml}/R.proto: Add `tno'.
6900         * font/devdvi/generate/{tc.map: Replace `no' with `tno'.
6901         * font/devdvi/generated/{texsy,textex}.map: Add `tno'.
6902         * font/devdvi/*: Regenerated.
6903         * font/devlbp/*: Add `tno'.
6904         * font/devlj4/generate/tex.map: Replace `no' with `tno'.
6905         * font/devlj4/*: Regenerated.
6906         * font/devps/generate/textmap: Replace `no' with `tno'.
6907         * font/devps/generate/symbolchars: Add `no'.
6908         * font/devps/*: Regenerated.
6910         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Add `tno'.
6912         * tmac/cp1047.tmac, tmac/latin1.tmac: Replace `no' with `tno'.
6913         * tmac/tty-char.tmac: Add entry for `tno' and `3d'.
6915         * NEWS: Updated.
6917         * tmac/dvi.tmac: Replace most `\\' with `\E'.
6918         Add definition for `sd'.
6919         * tmac/X.tmac, tmac/ps.tmac: Replace most `\\' with `\E'.
6921         * tmac/eqnrc <dvi>: Use `integral' instead of `is' glyph.
6923 2002-12-08  Werner LEMBERG  <wl@gnu.org>
6925         * tmac/an-old.tmac (TH): Use integer value for `IN' if in nroff
6926         mode to avoid rounding errors.
6927         (an-do-tag, an-do-tag-html, RS, RE): Remove redundant `.br'.
6929         * src/roff/groff/groff.man, src/roff/nroff/nroff.man,
6930         src/roff/troff/troff.man: Improve documentation of -T.
6932 2002-12-07  Jeff Conrad  <jeff_conrad@msn.com>
6934         * src/roff/groff/pipeline.c: Don't define `const' for _WIN32.
6935         (run_pipeline) [_WIN32]: Provide working function without `fork'.
6937 2002-12-06  Werner LEMBERG  <wl@gnu.org>
6939         * font/devps/generate/freeeuro.sfd: Make dimensions of Euro.symbol
6940         glyphs compatible to Adobe's Euro fonts (scaling them down a bit).
6941         Scaling Euro.sansserif glyphs down to have the same height as
6942         digits.
6943         Removed unnecessary points; added some extrema.
6945         * font/devps/EURO, font/devps/freeeuro.afm, font/devps/freeeuro.pfa:
6946         Regenerated.
6948 2002-12-04  Werner LEMBERG  <wl@gnu.org>
6950         * font/devps/generate/freeeuro.sfd: Add glyphs `Euro.symbol.slanted'
6951         and `Euro.symbol.bold.slanted'.
6952         Improve some glyph offsets and widths.
6953         * font/devps/EURO, font/devps/freeeuro.afm, font/devps/freeeuro.pfa:
6954         Regenerated.
6955         * font/devps/generate/Makefile (freeeuro.afm freeeuro.pfa): Fix
6956         typo.
6957         * font/devps/generate/sfdtopfa.pe: Generate PFA in current
6958         direcory.
6960         * tmac/europs.tmac: Updated to new glyph indices.
6961         Use Euro.symbol for font familiy `A'.
6963         * doc/groff.texinfo: Minor improvements.
6965 2002-12-02  Werner LEMBERG  <wl@gnu.org>
6967         * font/devdvi/generate.tc.map: s/%O/%0/.
6968         * font/devdvi/*TC: Regenerated.
6970         * src/roff/troff/div.cc (init_div_requests): Sorted.
6972         * tmac/dvi.tmac: Remove `Ye'.
6973         * tmac/ec.tmac: Remove `Ye'.
6974         Add .rchar entry for `de'.
6976         * man/groff.man, man/groff_diff.man: Document register `.pe'.
6977         * doc/groff.texinfo: Document registers `.pe', `.n', and `.w'.
6978         * NEWS: Updated.
6980 2002-11-30  Werner LEMBERG  <wl@gnu.org>
6982         Add PS font for various Euro glyphs.
6984         * font/devps/generate/freeeuro.sfd: New master font file for
6985         pfaedit.
6986         * font/devps/generate/sfdtopfa.pe: New conversion script for
6987         pfaedit.
6988         * font/devps/generate/Makefile (FONTS): Add `EURO'.
6989         (EURO, freeeuro.afm, freeeuro.pfa): New rules.
6990         * font/devps/freeeuro.pfa, font/devps/freeeuro.afm: Generated from
6991         `freeeuro.sfd'.
6992         * font/devps/EURO: Generated from `freeeuro.afm'.
6993         * font/devps/download: Add `freeuro.pfa'.
6994         * font/devps/Makefile.sub (NORMALFILES): Adde `EURO' and
6995         `freeeuro.pfa'.
6997         * tmac/europs.tmac: New file.
6998         * tmac/ps.tmac: Include `europs.tmac'.
6999         * tmac/Makefile.sub (DISTFILES): Add `europs.tmac'.
7001 2002-11-29  Werner LEMBERG  <wl@gnu.org>
7003         * font/devdvi/generate/texsy.map: Remove `lh' and `rh'.
7004         * font/devdvi/S: Regenerated.
7005         * font/devhtml/R.proto: Fix `CR' and `ci'.
7006         Add `OK'.
7007         * font/devps/generate/textmap: Fix `lh', `rh', and `sq'.
7008         Remove `bs'.
7009         * font/devps/symbolmap: Regenerated.
7010         * font/devutf8/R.proto: Fix `CR' and `ci'.
7011         Add `OK'.
7012         * font/devutf8/NOTES: Updated.
7014         * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Fix `CR' and
7015         `ci'.
7016         Add `OK'.
7017         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Ditto.
7019         * tmac/dvi.tmac: Add `lh' and `rh'.
7020         * tmac/Xps.tmac: Fix `lh' and `rh'.
7021         * tmac/X.tmac: Add `OK'.
7022         * tmac/lj4.tmac: Ditto.
7024 2002-11-24  Werner LEMBERG  <wl@gnu.org>
7026         * font/devX*/S: Regenerated.
7027         * font/devascii/R.proto, font/devcp1047/R.proto: Remove glyphs `lb',
7028         `lc', `lf', `lk', `lt', `rb', `rc', `rf', `rk', and `rt'.
7029         * font/devdvi/generate/texsy.map: Remove `or' glyph.
7030         * font/devdvi/S: Regenerated.
7031         * font/devhtml/R.proto, font/devutf8/R.proto: Add/fix glyphs
7032         `parenlefttp', `parenleftex', `parenleftbt', `parenrighttp',
7033         `parenrightex', `parenrightbt', `bracketlefttp', `bracketleftex',
7034         `bracketleftbt', `bracketrighttp', `bracketrightex',
7035         `bracketrightbt', `bracelefttp', `braceleftmid', `braceleftbt',
7036         `braceex', `braceleftex', `bracerightex', `bracerighttp',
7037         `bracerightmid', `bracerightbt', `lt', `lk', `lb', `rt', `rk',
7038         `rb', and `bv'.
7039         * src/roff/troff/glyphuni.cc, src/roff/troff/uniglyph.cc: Ditto.
7040         * font/devutf8/NOTES: Updated.
7041         * font/devlj4/generate/special.map: Add glyph `braceex'.
7042         * font/devlj4/S: Regenerated.
7044         * tmac/tty-char.tmac: Add glyphs `lf', `rf', `lc', and `rc'.
7046 2002-11-14  Werner LEMBERG  <wl@gnu.org>
7048         * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Add `va'
7049         and `vA'.
7050         Fix code for `an'.
7051         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Ditto.
7053         * doc/texinfo.tex: New version from texinfo 4.3.
7054         * doc/groff.texinfo: Updated for texinfo 4.3.
7055         Use @tie{} where appropriate.
7056         * font/devdvi/generate/ec.map: Don't include `or' and `bv'.
7057         * font/devdvi/generate/tc.map: Remove `rn'.
7058         * font/devdvi/*TC, font/devdvi/*EC: Regenerated.
7059         * font/devhtml/R.proto, font/devutf8/R.proto: Add `vA'.
7060         Fix code for `an'.
7061         * font/devX100/*, font/devX100-12/*, font/devX75/*,
7062         font/devX75-12/*: Regenerated.
7064         * tmac/dvi.tmac: Add special fonts `SA' and `SB'.
7065         Use .char (again) for `br', `ul', `rn', `or', and `ru'.
7066         Improve definition of `an'.
7067         * tmac/ps.tmac: Use .char (again) for `br', `ul', `rn', `or', and
7068         `ru'.
7069         * tmac/lj4.tmac: Use .char (again) for `br', `ul', `rn', and `ru'.
7070         * tmac/X.tmac: Add definition for `or'.
7071         * tmac/Xps.tmac: Undo change 2002-11-05.
7072         * tmac/lbp.tmac: Add definitions for `br', `rn', `ul', and `ru'.
7074 2002-11-11  Werner LEMBERG  <wl@gnu.org>
7076         * src/roff/troff/node.cc (troff_output_file::put_char): Always
7077         call flush_tbuf.
7079 2002-11-10  Werner LEMBERG  <wl@gnu.org>
7081         Added three new requests `schar', `fschar', and `rfschar'.  `schar'
7082         defines a glyph which is searched after the check for fonts declared
7083         with `.special' (and before the check for all mounted special
7084         fonts).  `fschar' defines a glyph for a particular font which is
7085         searched after the check for fonts declared with `.fspecial' (and
7086         before the check for fonts declared with `.special').  `rfschar'
7087         removes glyphs defined with `fschar'.
7089         * src/roff/troff/token.h (char_mode): New enum.
7090         Declare do_define_character.
7091         * src/roff/troff/charinfo.h (charinfo): Replace `fallback' with
7092         `mode'.
7093         (charinfo::is_fallback): Updated.
7094         (charinfo::is_special): New method.
7095         * src/roff/troff/input.cc (do_define_character): Add and use
7096         optional second parameter used as a prefix for font-specific glyph
7097         names.
7098         (define_character, define_fallback_character): Updated.
7099         (define_special_character): New function.
7100         (init_input_requests): Add `schar'.
7101         (charinfo::charinfo, charinfo::set_macro): Updated.
7102         * src/roff/troff/node.cc: Include `stringclass.h'.
7103         (make_glyph_node): Handle special glyphs defined with `.schar' and
7104         `.fschar'.
7105         (define_font_special_character, remove_font_special_character): New
7106         functions.
7107         (init_node_requests): Sorted.
7108         Add `fschar' and `rfschar'.
7109         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
7110         Document new requests.
7112         * font/devhtml/R.proto, font/devutf8/R.proto: Add `va'.
7113         * tmac/dvi.tmac: Add `va' for CW and CWI (using `.fschar').
7115 2002-11-08  Werner LEMBERG  <wl@gnu.org>
7117         Added new font `SC' (cmtex10) to devdvi.
7119         * devdvi/generate/Makefile (FONTS): Add `SC'.
7120         (SC): New rule.
7121         * devdvi/generate/textex.map: New map file for cmtex.
7122         * devdvi/SC: New.
7123         * devdvi/Makefile.sub (DEVFILES): Updated.
7124         * tmac/dvi.tmac: Add fspecial entries for SC.
7125         Add `MI', `S' and `CW' to the `special' call.  Otherwise, `SC' is
7126         found before `S' since the font position of `SC' is lower due to the
7127         gaps in DESC's `font' line.
7128         * tmac/ec.tmac: Add a `special' call.
7129         * NEWS: Updated.
7131         * font/devhtml/R.proto: Remove double entry for `ti'.
7132         * tmac/tty.tmac: Add entries for `IJ', `ij', and `bq'.
7133         * tmac/tty-char.tmac: Remove entry for `bq'.
7134         * tmac/lbp.tmac: Add entries for `lq', `rq', `fo', `fc', and `em'.
7135         * tmac/ec.tmac: Don't remove `aq' glyph.
7136         * tmac/X.tmac: Fix entry for `em'.
7137         Add entries for `fo' and `fc'.
7138         * tmac/dvi.tmac: Add entries for `em', `en', `hy', `fo', and `fc'.
7140         * doc/groff.texinfo, man/groff.man, man/groff_diff.man: Fix
7141         documentation of `special' and `fspecial' requests.
7143 2002-11-05  Werner LEMBERG  <wl@gnu.org>
7145         * font/devascii/R.proto, font/devcp1047/R.proto,
7146         font/devlatin1/R.proto: Remove entry for `.i'.
7147         * font/devdvi/generate/textt.map: Add entry for `ad'.
7148         * font/devdvi/generate/texr.map, font/devdvi/generate/texb.map,
7149         font/devdvi/generate/texi.map: Add dummy glyph name `slash@for@l'.
7150         We need this for getting kerning values to compose `/l' and `/L'.
7151         * font/devdvi: Regenerated font definition files for CM fonts.
7152         * font/devhtml/R.proto: Add entries for "'C", "'c", `IJ', and `ij'.
7153         * font/devutf8/R.proto: Ditto.
7154         Remove double entry for `ti'.
7156         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Fix entries
7157         for (groff) ligatures, `la', and `ra'.
7158         Add "'C", "'c", `IJ', and `ij'.
7159         Remove double entry for `ti'.
7160         * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Remove all
7161         double entries.
7162         Add "'C", "'c", `IJ', and `ij'.
7163         Fix entries for (groff) ligatures, `la', and `ra'.
7165         * tmac/ps.tmac (ps-achar): New macro.
7166         Define "'c" and "'C".
7167         * tmac/tty.tmac: Add entry for `.i'.
7168         * tmac/X.tmac (X-achar): New macro.
7169         Define "'c", "'C", and `:Y'.
7170         Add entries for `IJ' and `ij'.
7171         * tmac/Xps.tmac (Xps-achar): New macro.
7172         Define "'c" and "'C".
7173         Add entries for `IJ' and `ij'.
7174         * tmac/lbp.tmac (lbp-achar): New macro.
7175         Add fallback characters for all groff ligatures and many other
7176         glyphs.
7177         * tmac/dvi.tmac: Fix definitions of `_' and `ul'.
7178         Add entries for `/l' and `/L'.
7179         Define "'c" and "'C".
7180         Add entries for `IJ' and `ij'.
7182 2002-11-02  Larry Kollar  <kollar@alltel.net>
7184         * PROBLEMS: Document how to solve Mac OS X compilation problems.
7186 2002-11-02  Werner LEMBERG  <wl@gnu.org>
7188         Adding support for composite glyphs: \[xxx yyy ...] and the
7189         `composite' request.
7191         * src/roff/troff/glyphuni.cc: New file for mapping groff glyph names
7192         to Unicode-based glyph names.
7193         * src/roff/troff/uniglyph.cc: New file for mapping Unicode-based
7194         glyph names to groff glyph names.
7195         * src/roff/troff/uniuni.cc: New file for canonically decomposing
7196         Unicode-based glyph names.
7197         * src/roff/troff/unicode.cc, src/roff/troff/unicode.h: New files
7198         for handling Unicode glyph names.
7199         * src/roff/troff/input.cc: Include unicode.h.
7200         (composite_glyph_name): New function.
7201         (token::next) <'['>: Handle Unicode glyph names and composite
7202         glyphs.
7203         (composite_dictionary): New dictionary for the `composite' request.
7204         (composite_request): Implement `composite' request.
7205         (init_input_requests): Add `composite'.
7206         Alphabetically sorted.
7207         * src/roff/troff/env.cc (tabs_save, tabs_restore): Removed (already
7208         commented out).
7209         (init_env_requests): Alphabetically sorted.
7210         Removed `tas' and `tar' (already commented out).
7211         * src/roff/troff/Makefile.sub: Updated.
7213 2002-10-31  Ruslan Ermilov  <ru@FreeBSD.org>
7215         * src/roff/nroff/nroff.man, src/roff/nroff/nroff.sh: Fix description
7216         of options.
7218 2002-10-29  Werner LEMBERG  <wl@gnu.org>
7220         Fix computation of .trunc register.  Additionally, its value (and
7221         the value of the .ne register) is now always set before entering the
7222         trap.
7224         * src/roff/troff/div.cc (diversion::need): Set `truncated_space' and
7225         `needed_space' before calling `space'.
7226         (top_level_diversion::space): Remove special code for 'sp before the
7227         first page.
7228         Call `begin_page' with the discarded space as a parameter.
7229         (top_level_diversion::begin_page): Add optional parameter to set
7230         `truncated_space'.
7231         * src/roff/troff/div.h: Updated.
7233         * doc/groff.texinfo: Improve documentation of .sp, \n[.trunc], and
7234         \n[.ne].
7236         * tmac/an-old.tmac (SH, SS, TP, IP, HP, TS): Undo change 2002-10-26.
7237         (LP): Remove superfluous call to `br'.
7238         * tmac/doc-common (doc-paragraph): Undo change 2002-10-26.
7239         * tmac/doc.tmac (Bd, Bl, doc-set-vertical-and-indent): Ditto.
7241 2002-10-26  Werner LEMBERG  <wl@gnu.org>
7243         * tmac/doc-ditroff: Remove useless switch/variable -rC.
7244         (doc-setup-header): Don't set page register `%'.
7245         * tmac/doc-nroff: Remove variable `C'.
7246         (doc-setup-page-layout): Set doc-header-space to .5i unconditionally.
7247         (doc-setup-header): Don't set page register `%'.
7248         Don't call `bp'.
7249         * tmac/doc-common (doc-header): Call `ns'.
7250         (doc-paragraph): Protect .sp with .br so that it survives traps
7251         possibly set by the user.
7252         * tmac/doc.tmac (Bd, Bl, doc-set-vertical-and-indent): Ditto.
7254         * tmac/doc*: Replace ' with . for consistency if no effect.
7256 2002-10-26  Werner LEMBERG  <wl@gnu.org>
7258         * tmac/an-old.tmac (SH, SS, TP, IP, HP, TS): Protect .sp with .br
7259         so that it survives traps possibly set by the user.
7261         * src/roff/troff/node.cc: Fix the changes from 2002-10-23.
7262         (troff_output_file::set_font): Call flush_tbuf if necessary.
7263         (troff_output_file::fill_color, troff_output_file::glyph_color): Call
7264         flush_tbuf and do_motion only if necessary.
7265         (troff_output_file::start_special,
7266         troff_output_file::put_char_width, troff_output_file::put_char,
7267         troff_output_file::draw): Updated.
7268         (word_space_node::tprint, space_node::tprint, hmotion_node::tprint,
7269         vmotion_node::tprint): Undo change 2002-10-23.
7271 2002-10-25  Werner LEMBERG  <wl@gnu.org>
7273         * tmac/www.tmac (DC): Fix case of overlapping images.
7275 2002-10-23  Werner LEMBERG  <wl@gnu.org>
7277         * src/roff/troff/node.cc (troff_output_file::fill_color,
7278         troff_output_file::glyph_color): Set current color before testing
7279         color_flag.
7280         (troff_output_file::put_char_width, troff_output_file::put_char,
7281         troff_output_file::draw): Don't call flush_tbuf and/or do_motion
7282         before glyph_color.
7283         (troff_output_file::file_color, troff_output_file::glyph_color):
7284         Call do_motion.
7285         (word_space_node::tprint, space_node::tprint, hmotion_node::tprint,
7286         vmotion_node::tprint): Move first, then call fill_color.
7288 2002-10-20  Werner LEMBERG  <wl@gnu.org>
7290         * doc/groff.texinfo, man/groff_tmac.man: Document that it is not
7291         possible to use multiple main macro packages.
7293 2002-10-19  Werner LEMBERG  <wl@gnu.org>
7295         * src/devices/grops/ps.cc (cmyk_flag): New global variable.
7296         (ps_printer::set_color): Set `cmyk_flag' for CMY and CMYK colors.
7297         (ps_printer::~ps_printer): Emit `%%Extensions: CMYK' if `cmyk_flag'
7298         is set.
7299         * font/devps/prologue.ps (Fk, Ck): Enclose definitions with a
7300         `where' construction since `cmyksetcolor' is a PS Level 2 operator.
7302 2002-10-16  Werner LEMBERG  <wl@gnu.org>
7304         * NEWS, doc/webpage.ms: Updated.
7306 2002-10-14  Werner LEMBERG  <wl@gnu.org>
7308         * src/roff/troff/node.cc (troff_output_file::put_char_width,
7309         troff_output_file::put_char, troff_output_file::fill_color,
7310         troff_output_file::glyph_color): Handle case where color pointer
7311         is null.
7313 2002-10-13  Ruslan Ermilov  <ru@FreeBSD.org>
7315         Add the new -r option to grotty.  It is similar to the -i option
7316         except it tells grotty(1) to use the `reverse video' attribute to
7317         render italic fonts.
7319         * src/devices/grotty/tty.cc (reverse_flag): New global variable.
7320         (SGR_REVERSE, SGR_NO_REVERSE): New macros.
7321         (tty_printer::make_underline, tty_printer::put_color,
7322         tty_printer::end_page): Use it.
7323         (main): Add -r switch.
7324         (usage): Updated.
7325         * src/devices/grotty/grotty.man: Document it.
7327 2002-10-11  Ruslan Ermilov  <ru@FreeBSD.org>
7329         * src/roff/troff/env.cc (hyphen_trie::read_patterns_file): Add
7330         cast to `unsigned char' to properly read patterns with 8bit
7331         characters.
7333 2002-10-08  Werner LEMBERG  <wl@gnu.org>
7335         * REVISION: Increased to 2.
7337 Local Variables:
7338 version-control: never
7339 coding: latin-1
7340 End: