* src/devices/grops/ps.cpp (ps_printer::do_exec, ps_printer::do_def,
[s-roff.git] / ChangeLog
blob8d209645225090757ce012a436ece7df03ba4798
1 2006-03-10  Werner LEMBERG  <wl@gnu.org>
3         * src/devices/grops/ps.cpp (ps_printer::do_exec, ps_printer::do_def,
4         ps_printer::do_mdef): Overlong lines now cause a warning message,
5         not an error.
7 2006-03-09  Werner LEMBERG  <wl@gnu.org>
9         * font/devps/generate/make-zapfdr: New script for generating
10         `zapfdr.ps'.
12 2006-03-08  Werner LEMBERG  <wl@gnu.org>
14         * doc/groff.css (pre): Fix `background-color' value.
16 2006-03-04  Larry Kollar  <kollar@alltel.net>
18         * tmac/groff_ms.man: Document PT, HD, and BT.
20 2006-03-04  Werner LEMBERG  <wl@gnu.org>
22         * src/roff/troff/node.cpp (make_glyph_node): Improve warning message
23         for single-letter glyph names.
25 2006-03-02  Werner LEMBERG  <wl@gnu.org>
27         * tmac/sv.tmac: New file; currently holding only the Swedish strings
28         for -mm.
29         * tmac/hyphen.sv: New hyphenation pattern file for Swedish, taken
30         from CTAN.
31         * tmac/README: Updated.
33 2006-02-27  Werner LEMBERG  <wl@gnu.org>
35         * tmac/trans.tmac (Liec, Letdate, Letns!14): Add it (for -mm).
36         * tmac/fr.tmac: Add French translations.
38         * tmac/composite.tmac: Add entry for `:'.
40 2006-02-26  Werner LEMBERG  <wl@gnu.org>
42         * doc/Makefile.sub (HTMLEXAMPLEFILESALL): New variable.
43         (CLEANADD): Use it.
44         (install_html, uninstall_sub): Updated.
46 2006-02-26  Bruno Haible  <bruno@clisp.org>
48         Introduce Unicode fonts.
50         * font/devhtml/DESC.proto: Mark as unicode.
51         * font/devhtml/R.proto: Remove all charset entries that are already
52         in glyphuni.cpp.
53         * font/devutf8/DESC.proto: Mark as unicode.
54         * font/devutf8/R.proto: Remove all charset entries.
55         * src/include/font.h (font): New static field `is_unicode'.
56         Change order of fields.
57         * src/libs/libgroff/font.cpp: Include unicode.h.
58         (font::font): Update for changed order of fields.
59         (font::contains, font::get_width, font::get_height, font::get_depth,
60         font::get_italic_correction, font::get_left_italic_correction,
61         font::get_subscript_correction, font::get_character_type,
62         font::get_code, font::get_special_device_encoding): Handle both the
63         explicitly enumerated glyphs and use general code for Unicode fonts.
64         (font::load): Make the charset section optional when the font is
65         declared unicode.
66         (font::load_desc): Recognize the `unicode' attribute.
67         * src/libs/libgroff/fontfile.cpp (font::is_unicode): New variable.
69 2006-02-26  Claudio Fontana  <claudio@gnu.org>
71         * Makefile.in: Add comment about DESTDIR.
73         * Makefile.sub: Add DESTDIR to install and uninstall targets
74         to support staged installations.
75         * Makefile.comm: Likewise.
76         * doc/Makefile.sub: Likewise.
77         * contrib/eqn2graph/Makefile.sub: Likewise.
78         * contrib/gdiffmk/Makefile.sub: Likewise.
79         * contrib/grap2graph/Makefile.sub: Likewise.
80         * contrib/pic2graph/Makefile.sub: Likewise.
81         * src/devices/xditview/Makefile.sub: Likewise.
82         * src/preproc/eqn/Makefile.sub: Likewise.
83         * src/roff/grog/Makefile.sub: Likewise.
84         * src/roff/nroff/Makefile.sub: Likewise.
85         * src/utils/afmtodit/Makefile.sub: Likewise.
86         * src/utils/indxbib/Makefile.sub: Likewise.
87         * tmac/Makefile.sub: Likewise.
89 2006-02-24  Werner LEMBERG  <wl@gnu.org>
91         * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list): Use entry
92         for \-.
93         Remove commented out entries for \' and \` (there are no such glyph
94         names).
96         * src/libs/libgroff/uniglyph.cpp (unicode_to_glyph_list): Remove
97         commented out entries for \' and \`.
100         * */*: s/legal/valid/ where appropriate.
102 2006-06-23  Werner LEMBERG  <wl@gnu.org>
104         * font/devhtml/R.proto, font/devutf8/R.proto: Remove incorrect \'
105         and \` entries.
107 2006-02-22  Werner LEMBERG  <wl@gnu.org>
109         Remove all remaining traces from the `shc' glyph.
111         * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list),
112         src/libs/libgroff/uniglyph.cpp (unicode_to_glyph_list): Remove
113         entry for `shc'.
115         * font/devlatin1/R.proto, font/devcp1046/R.proto: Replace `shc'
116         entry with unnamed glyph.
118         * tmac/html/tmac: Remove `shc' entry from call to `.cflags'.
120         * src/preproc/preconv/preconv.cpp (unicode_entity): Handle U+00AD
121         specially.
123 2006-02-22  Bruno Haible  <bruno@clisp.org>
125         Concretize the `glyph' datatype.
127         * src/include/font.h (glyph): Remove class.
128         (glyph): Renamed from struct `glyphinfo'.
129         (glyph_to_index): New inline function.
130         (glyph_to_name): Make extern, not inline.
131         (glyph_to_number): Update.
132         (font): Use `glyph *' instead of `glyph'.
134         * src/libs/libgroff/nametoindex.cpp (charinfo): Inherit from class
135         `glyph'.  Make `name' field public.
136         (character_indexer, number_to_glyph, name_to_glyph): Use `glyph *'
137         instead of `glyph'.
138         (glyph_to_name): Renamed from `glyph::glyph_name'.
140         * src/roff/troff/charinfo.h (charinfo): Inherit from class `glyph'.
141         Use `glyph *' instead of `glyph'.
143         * src/roff/troff/input.cpp (name_to_glyph, number_to_glyph): Use
144         `glyph *' instead of `glyph'.
145         (glyph_to_name): Renamed from `glyph::glyph_name'.
147         * src/libs/libgroff/font.cpp: Use `glyph *' instead of `glyph',
148         and `glyph_to_index' instead of `glyph::glyph_index'.
150         * src/include/printer.h (printer): Use `glyph *' instead of `glyph'.
151         * src/libs/libdriver/printer.cpp: Likewise.
152         * src/devices/grodvi/dvi.cpp: Likewise.
153         * src/devices/grohtml/post-html.cpp: Likewise.
154         * src/devices/grolbp/lbp.cpp: Likewise.
155         * src/devices/grolj4/lj4.cpp: Likewise.
156         * src/devices/grops/ps.cpp: Likewise.
157         * src/devices/grotty/tty.cpp: Likewise.
159 2006-02-22  Werner LEMBERG  <wl@gnu.org>
161         * font/devdvi/generate/tc.map: Add `sr' glyph.
162         * font/devdvi/*TC: Regenerated.
164         * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list): Use entry
165         for `sqrt'.
167 2006-02-21  Werner LEMBERG  <wl@gnu.org>
169         * man/groff_char.man: Explain `***' marker.
171 2006-02-17  Bruno Haible  <bruno@clisp.org>
173         * src/libs/libgroff/nametoindex.cpp (character_indexer): Rename
174         methods and fields from *_index to *_glyph.
175         (character_indexer::named_char_glyph): Test for `charNNN' name
176         here...
177         (name_to_glyph): ... not here.
179 2006-02-17  Bruno Haible  <bruno@clisp.org>
181         * src/include/font.h (name_to_glyph): Renamed from
182         font::name_to_index.
183         (number_to_glyph): Renamed from font::number_to_index.
184         (glyph_to_name): Renamed from font::index_to_name.
185         (glyph_to_number): Renamed from font::index_to_number.
186         * src/libs/libgroff/nametoindex.cpp: Likewise.
187         * src/roff/troff/charinfo.h (charinfo::as_glyph): Renamed from
188         charinfo::get_index.
190         * src/roff/troff/input.cpp: All callers changed.
191         * src/roff/troff/node.cpp: Likewise.
192         * src/libs/libgroff/font.cpp: Likewise.
193         * src/devices/grops/ps.cpp: Likewise.
194         * src/devices/grohtml/post-html.cpp: Likewise.
195         * src/libs/libdriver/printer.cpp: Likewise.
197 2006-02-17  Werner LEMBERG  <wl@gnu.org>
199         * src/include/ptable.h, src/include/itable.h
200         (NEXT_PTABLE_SIZE_DEFINED): Use it to avoid multiple declaration
201         of external symbol `next_ptable_size' (used by both header files).
203 2006-02-15  Bruno Haible  <bruno@clisp.org>
205         * src/include/font.h (glyphinfo): New class.
206         (glyph): Change internal representation.
207         Change constructor signature.
208         New method glyph::glyph_number().
209         (glyph::glyph, glyph glyph::undefined_glyph, glyph::glyph_index,
210         glyph::operator==, glyph::operator!=): Update.
211         (font::index_to_name, font::index_to_number): New functions.
213         * src/include/itable.h: New file, based on src/include/ptable.h.
215         * src/libs/libgroff/nametoindex.cpp: Include itable.h.
216         (class charinfo): New class.
217         (class character_indexer): Change table result type from `int' to
218         `class charinfo'.
219         Add table with integer key.
220         (character_indexer::character_indexer): Update.
221         (character_indexer::ascii_char_index): Update.
222         (character_indexer::numbered_char_index): Use NULL as name, not a
223         string starting with a space.
224         (character_indexer::named_char_index): Update.
225         (font::number_to_index, font::name_to_index): Remove no-op cast.
226         (glyph::glyph_name): New method.
227         * src/roff/troff/charinfo.h (class charinfo): Inherit from class
228         glyphinfo.
229         (NUMBERED): Remove flag bit.
230         (charinfo::numbered, charinfo::get_index): Update.
232         * src/roff/troff/input.cpp (charinfo::charinfo): Update.
233         (charinfo::set_number, charinfo::get_number): Update.
234         (glyph::glyph_name): New method.
236 2006-02-15  Werner LEMBERG  <wl@gnu.org>
238         * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list): Fix
239         entries for `>>', `<<', `*f', and `+f'.  Reported by Bruno.
241 2006-02-13  Werner LEMBERG  <wl@gnu.org>
243         * font/devps/prologue.ps (RE): Check `UniqueID' also, similar to
244         dvips.
246 2006-02-11  Werner LEMBERG  <wl@gnu.org>
248         * src/include/font.h: s/glyph_t/glyph/.
249         Update all callers.
251         * src/devices/grotty/tty.cpp: s/glyph/tty_glyph/.
252         s/output_character_t/output_character/.
254 2006-02-11  Bruno Haible  <bruno@clisp.org>
256         New accessor method glyph_t::glyph_name().
258         * src/include/ptable.h (declare_ptable): Add a return value to the
259         `define' method, and declare a `lookupassoc' method.
260         (implement_ptable): Return the stored key in `define'.  Implement
261         lookupassoc.
262         * src/include/font.h (glyph_t): Add `name' field.  Add an argument
263         to the constructor.
264         (glyph_t::glyph_name): New method.
266         * src/libs/libgroff/nametoindex.cpp (character_indexer): Change
267         return type of methods and field member type to glyph_t.
268         (character_indexer::character_indexer): Update.
269         (character_indexer::ascii_char_index): Allocate a name for the
270         glyph.
271         Return a glyph_t with name.
272         (character_indexer::numbered_char_index): Return a glyph_t without a
273         name.
274         (character_indexer::named_char_index): Return a glyph_t with a name.
275         (font::number_to_index, font::name_to_index): Update.
277         * src/roff/troff/input.cpp (charinfo::charinfo): Use the symbol as
278         the glyph's name.
280 2006-02-11  Bruno Haible  <bruno@clisp.org>
282         * src/devices/grotty/tty.cpp (output_character_t): New type.
283         (tty_printer::make_bold, tty_printer::add_char,
284         tty_printer::put_char): Change argument type to output_character_t.
285         (crossings): Change element type to output_character_t.
287 2006-02-11  Bruno Haible  <bruno@clisp.org>
289         Make the glyph data type abstract.
291         * src/include/font.h (glyph_t): New class.
292         (name_to_index, number_to_index): Change return type to glyph_t.
293         (font::contains, font::get_width, font::get_height, font::get_depth,
294         font::get_character_type, font::get_kern, font::get_skew,
295         font::get_italic_correction, font::get_left_italic_correction,
296         font::get_subscript_correction, font::get_code,
297         font::get_special_device_encoding, font::add_entry,
298         font::copy_entry, font::add_kern, font::hash_kern): Change argument
299         type to glyph_t.
301         * src/libs/libgroff/font.cpp (font_kern_list): Change members
302         type and constructor argument types to glyph_t.
303         (font::contains, font::get_width, font::get_height, font::get_depth,
304         font::get_character_type, font::get_kern, font::get_skew,
305         font::get_italic_correction, font::get_left_italic_correction,
306         font::get_subscript_correction, font::get_code,
307         font::get_special_device_encoding, font::add_entry,
308         font::copy_entry, font::add_kern, font::hash_kern): Change argument
309         type to glyph_t.
310         (font::load): Use glyph_t variables.
312         * src/libs/libgroff/nametoindex.cpp (name_to_index,
313         number_to_index): Change return type to glyph_t.
315         * src/roff/troff/charinfo.h (charinfo::index): Change type to
316         glyph_t.
317         (charinfo::get_index): Change return type to glyph_t.
319         * src/roff/troff/env.cpp: Include font.h.
321         * src/roff/troff/node.cpp: Include font.h before charinfo.h.
323         * src/roff/troff/input.cpp: Include font.h before charinfo.h.
324         (charinfo::charinfo): Update.
325         (name_to_index, number_to_index): Change return type to glyph_t.
327         * src/include/printer.h (printer::set_char_and_width): Change return
328         type to glyph_t.
330         * src/libs/libdriver/printer.cpp (printer::set_char_and_width):
331         Change return type to glyph_t.
333         * src/devices/grodvi/dvi.cpp (dvi_printer::set_char): Change
334         argument type to glyph_t.
336         * src/devices/grohtml/post-html.cpp (page::add_and_encode): Update.
337         (html_printer::space_glyph): Renamed from space_char_index.
338         (html_printer::add_to_sbuf, html_printer::sbuf_continuation,
339         html_printer::overstrike, html_printer::set_char): Change argument
340         type to glyph_t.
341         (html_printer::set_char_and_width): Change return type to glyph_t.
343         * src/devices/grolbp/lbp.cpp (lbp_printer::set_char): Change
344         argument type to glyph_t.
346         * src/devices/grolj4/lj4.cpp (lj4_printer::set_char): Change
347         argument type to glyph_t.
349         * src/devices/grops/ps.cpp (ps_printer::space_glyph): Renamed from
350         space_char_index.
351         (ps_printer::set_subencoding, ps_printer::set_char): Change argument
352         type to glyph_t.
354         * src/devices/grotty/tty.cpp (tty_printer::set_char): Change
355         argument type to glyph_t.
357 2006-02-11  Bruno Haible  <bruno@clisp.org>
359         * src/roff/troff/input.cpp (font::name_to_index): Never return a
360         negative value.
362         * src/libs/libgroff/font.cpp (font::load): Remove failure tests for
363         font::name_to_index.
365 2006-02-10  Werner LEMBERG  <wl@gnu.org>
367         * doc/groff.texinfo (Assigning Formats): Number registers are always
368         interpolated.
369         Apply some rephrasing, contributed by Michael Burt.
371 2006-02-07  Werner LEMBERG  <wl@gnu.org>
373         * tmac/fr.tmac <ms>: Set `HY' register.
375 2006-02-07  Werner LEMBERG  <wl@gnu.org>
377         Add framework for simple adaptation of the main macro packages (mm,
378         me, ms, mom) to different locales.  In particular, add support for
379         French.  For activation, simply use `-mfr' as the last macro
380         package.  This feature has been contributed by Fabrice Ménard
381         <menard.fabrice@wanadoo.fr>.
383         * tmac/fr.tmac, tmac/trans.tmac, tmac/hyphen.fr, tmac/LOCALIZATION:
384         New files.
385         * tmac/README: Mention hyphen.fr.
386         * man/groff_tmac.man: Mention fr.tmac.
387         * NEWS: Updated.
389 2006-01-27  Werner LEMBERG  <wl@gnu.org>
391         * man/groff_font.man: Updated documentation of `entity_name' field.
392         Avoid future tense.
394 2006-01-27  Bruno Haible  <bruno@clisp.org>
396         * font/devhtml/R.proto: Remove the entity names from the font's
397         special_encoding_encoding column.
398         * src/devices/grohtml/post-html.cpp (get_html_entity): New function,
399         handling the entity names here.
400         (get_html_translation): Use it.  Change return type to `const
401         char *'.
402         (page::add_and_encode): Update, removing a useless cast.
404 2006-01-26  Werner LEMBERG  <wl@gnu.org>
406         This change is based on a patch by Bruno Haible <bruno@clisp.org>.
408         * src/include/device.h: Add comments.
409         * src/include/font.h: Add comments.
410         * src/include/unicode.h: Likewise.
411         * src/include/ptable.h, src/libs/libgroff/ptable.cpp: Likewise.
413 2006-01-26  Keith Marshall  <keith.d.marshall@ntlworld.com>
415         Suppress `.st' request emission by `grn'.
417         * src/preproc/grn/main.cpp (USE_ST_REQUEST): New macro.
418         (conv): Use it.
420 2006-01-22  Werner LEMBERG  <wl@gnu.org>
422         * install-sh: New version; taken from texinfo CVS.
424 2006-01-21  Werner LEMBERG  <wl@gnu.org>
426         * src/preproc/preconv/preconv.cpp (main): Set program_name.  Bug
427         reported by Alexander E. Patrakov <patrakov@ums.usu.ru>.
429 2006-01-19  Bruno Haible  <bruno@clisp.org>
431         Let `make -k install' install more files.
433         * Makefile.in (MAKE_K_FLAG): New variable.  Use it everywhere where
434         $(MAKE) and $(MDEFINES) are used.
435         (CPROGDIRS): Remove $(XPROGDIRS).  Treat $(XPROGDIRS) like
436         $(CPROGDIRS) everywhere.
437         ($(DEVDIRS) $(XDEVDIRS) $(OTHERDEVDIRS) $(TTYDEVDIRS)): Don't depend
438         on $(XPROGDIRS).
439         ($(OTHERDIRS)): Likewise.
442         * src/devices/grohtml/post-html.cpp (get_html_translation): Remove
443         failure test for font::name_to_index -- it can never fail.
445 2006-01-19  Werner LEMBERG  <wl@gnu.org>
447         * src/devices/grops/grops.man: Fix section on creating EPS files.
448         Don't use future time in manual.
449         Other minor fixes.
451 2006-01-15  Gaius Mulley  <gaius@glam.ac.uk>
453         * tmac/www.tmac: New macro LINKSTYLE which allows users to set
454         various typographical URL attributes for non-HTML devices.
456         * tmac/groff_www.man: Document LINKSTYLE.
458 2006-01-11  Werner LEMBERG  <wl@gnu.org>
460         * configure.ac: Test for getc_unlocked (needed for localcharset).
461         * configure, src/include/config.hin: Regenerated.
463         * src/libs/libgroff/Makefile.sub (EXTRA_CFLAGS): Define
464         ENABLE_RELOCATABLE.
466         * src/libs/libgroff/relocatable.h: New dummy header file for
467         localcharset.c.
469         * src/libs/libgroff/localcharset.c: Updated to (unchanged) CVS
470         gnulib version.
472 2006-01-10  Bruno Haible  <bruno@clisp.org>
474         Work around unportability of nl_langinfo(CODESET).
476         * m4/glibc21.m4: New file, from gnulib.
477         * Makefile.sub (M4MACROS): Add m4/glibc21.m4.
478         * configure.ac: Also test for stddef.h, and invoke jm_GLIBC21.
479         * Makefile.in (HOST, GLIBC21): New variables.
480         (MDEFINES): Pass them to subdirectories.
481         * src/include/relocate.h (relocatep): Define with C linkage.
482         * src/include/localcharset.h: New file, from gnulib.
483         * src/libs/libgroff/localcharset.c: New file, from gnulib with a
484         modification for relocate().
485         * src/libs/libgroff/config.charset: New file, from gnulib.
486         * src/libs/libgroff/ref-add.sin: New file, from gnulib.
487         * src/libs/libgroff/ref-del.sin: New file, from gnulib.
488         * src/libs/libgroff/Makefile.sub (EXTRA_CFLAGS): Also define LIBDIR.
489         (OBJS): Add localcharset.o.
490         (CSRCS): Add localcharset.c.
491         (all): Add dependencies to charset.alias, ref-add.sed, ref-del.sed.
492         (charset.alias): New rule.
493         (PACKAGE): New variable.
494         (ref-add.sed, ref-del.sed): New rules.
495         (MKINSTALLDIRS): New variable.
496         (install_data): Depend on install_charset_data.
497         (install_charset_data): New rule for creating or updating
498         charset.alias.
499         (uninstall_sub): Depend on uninstall_charset_data.
500         (uninstall_charset_data): New rule for uninstalling or updating
501         charset.alias.
502         * src/preproc/preconv/preconv.cpp: Include localcharset.h instead
503         of <langinfo.h>.
504         (main): Initialize default_encoding from locale_charset() instead of
505         nl_langinfo(CODESET).
507         * aclocal.m4, configure, src/include/config.hin: Regenerated.
509 2006-01-10  Werner LEMBERG  <wl@gnu.org>
511         * src/preproc/preconv/preconv.cpp (conversion_iconv): Use
512         ICONV_CONST in call to iconv.  Reported by Robert Goulding.
514 2006-01-07  Werner LEMBERG  <wl@gnu.org>
516         * fonts/devps/generate/freeeuro.sfd: Run auto-hinter with recent
517         fontforge version.
518         Bump font version to 001.001.
520         * fonts/devps/generate/Makefile (freeeuro.afm, freeeuro.pfa):
521         Call fontforge, not pfaedit.
523         * fonts/devps/freeeuro.afm, fonts/devps/freeeuro.pfa: Regenerated.
525 2006-01-05  Ruslan Ermilov  <ru@FreeBSD.org>
527         * tmac/doc-common: Add new FreeBSD and NetBSD versions.
528         * tmac/groff_mdoc.man: Updated.
530 2006-01-05  Werner LEMBERG  <wl@gnu.org>
532         * src/preproc/preconv/preconv.cpp: s/debug/debug_flag/.
533         (raw_flag): New global variable.
534         (do_file): Use .lf to set file name (if `raw_flag' isn't set).
535         Don't pass BOM to `conversion_utf8'.
536         (usage): Updated.
537         (main): Handle `-r' command line switch to set `raw_flag'.
538         (get_BOM): Fix encodings in `BOM_table'.
540         * src/preproc/preconv/preconv.man: New file.  Not complete yet.
541         * src/preproc/proconv/Makefile.sub (MAN1): New variable.
543 2006-01-04  Werner LEMBERG  <wl@gnu.org>
545         * src/preproc/preconv/preconv.cpp (emacs_to_mime): As suggested by
546         Bruno, comment out most encodings to support only a small set of
547         coding tags, thus reducing potential problems with legacy encodings
548         and character sets in the future.
549         Add many XEmacs coding tags (now commented out).
550         Add `cp1047'.
551         (check_encoding_tag): Renamed to...
552         (check_coding_tag): This.
553         (get_BOM): Return encoding as specified by BOM.
554         Test for UTF32-LE too.
555         (do_file): Don't check for coding tag if a BOM has been found.
557 2006-01-03  Bruno Haible  <bruno@clisp.org>
559         * m4/groff.m4: Renamed from aclocal.m4.
560         * m4/codeset.m4: New file, from gnulib.
561         * m4/iconv.m4: New file, from gnulib.
562         * m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4: New files, from
563         gnulib.
564         * config.rpath: New file, from gnulib.
565         * config.guess, config.sub: New files, from gnulib.
566         * Makefile.sub (M4MACROS): New variable.
567         (configure): Fix typo.
568         (aclocal.m4): New rule.
569         (stamp-h.in): Depend on aclocal.m4.
570         * configure.ac: Invoke AM_ICONV and AM_LANGINFO_CODESET.
571         * Makefile.in (LIBICONV): New variable.
572         (MDEFINES): Pass it to recursive makes.
573         * src/preproc/preconv/preconv.cpp: Use HAVE_LANGINFO_CODESET and
574         HAVE_ICONV instead of I18N macro.
575         * src/preproc/preconv/Makefile.sub (EXTRA_LDFLAGS): New variable.
577         * aclocal.m4, configure, src/include/config.hin: (Re)generated.
579 2006-01-03  Werner LEMBERG  <wl@gnu.org>
581         * doc/Makefile.in (webpage.html): Simplify.
582         * doc/Makefile.sub (webpage.html): Synchronize with doc/Makefile.in.
583         * doc/webpage.ms, tmac/groff_www.man, tmac/www.tmac: Minor updates.
585 2006-01-01  Werner LEMBERG  <wl@gnu.org>
587         * tmac/doc-common (Os): Add some Darwin versions.
588         * tmac/groff_mdoc.man: Document them.
590 2006-01-01  Bruno Haible  <bruno@clisp.org>
592         * src/preproc/preconv/preconv.cpp (emacs_to_mime): Various
593         corrections:
594           . Don't map ascii to latin-1.
595           . Don't use IBMxxx encodings but cpxxx for portability.
596           . Map cp932, cp936, cp949, cp950 to itself.
597         (emacs2mime): Protect calls to strcasecmp.
598         (conversion_iconv): Add missing call to iconv_close.
599         (do_file): Emit error message in case of unsupported encoding.
601 2005-12-31  Werner LEMBERG  <wl@gnu.org>
603         Integrate preconv into the groff binary.  Changes based on a patch
604         from Michail Vidiassov.
606         * src/roff/groff/pipeline.h (MAX_COMMANDS): Increase by 1.
608         * src/roff/groff/groff.cpp (PRECONV_INDEX): New macro.
609         (SOELIM_INDEX): Updated.
610         (help, synopsis): Updated.
611         (main): Add command line options `-k' and `-K enc' to select
612         encoding.
613         Add support for GROFF_ENCODING environment variable.
615         * src/roff/groff/groff.man: Updated and revised.
618         Start with autoconf support for preconv.
620         * configure.ac: Call AC_C_BIGENDIAN.
621         * configure, src/include/config.hin: Regenerated.
623 2005-12-30  Werner LEMBERG  <wl@gnu.org>
625         New preprocessor `preconv' to convert input encodings to something
626         groff can understand.  Not yet integrated within groff.  Proper
627         autoconf stuff is missing too.
629         Tomohiro Kubota has written a first draft of this program, and some
630         ideas have been reused (while almost no code has been taken
631         actually).
633         * src/preproc/preconv/preconv.cpp. src/preproc/preconv/Makefile.sub:
634         New files.
636         * MANIFEST, Makefile.in (CCPROGDIRS), test-groff.in
637         (GROFF_BIN_PATH): Add preconv.
639 2005-12-12  Werner LEMBERG  <wl@gnu.org>
641         * aclocal.m4 (GROFF_MAKEINFO): Fix regexps to be POSIX conformant.
642         In particular, don't use `\+' since it is a GNU sed extension.
644         * configure: Regenerated.
646 2005-12-09  Werner LEMBERG  <wl@gnu.org>
648         * src/libs/libgroff/make-uniuni: New script to generate uniuni.cpp. 
650         * src/libs/libgroff/uniuni.cpp: Regenerated, using data from Unicode
651         4.1.0.
654         * src/utils/afmtodit/make-afmtodit-tables: New script to generate
655         afmtodit.tables.
657         * src/utils/afmtodit/afmtodit.tables: New file, representing Unicode
658         4.1.0 data.
660         * src/utils/afmtodit/afmtodit.pl (%unicode_decomposed,
661         %AGL_to_unicode): Removed.  Replace it with a tag.
663         * src/utils/afmtodit/Makefile.sub (afmtodit): Adjust sed expression
664         to replace tag with actual file contents.
666 2005-12-08  Werner LEMBERG  <wl@gnu.org>
668         The change 2005-06-20 can indeed cause problems, so we follow the
669         advice by using marks.
671         * font/devps/prologue.ps (PBEGIN): Use `mark'.
672         (PEND): Use `cleartomark'.
674 2005-12-07  Michail Vidiassov  <master@iaas.msu.ru>
676         * src/utils/afmtodit.pl: Fix kerning output to avoid warnings for
677         glyphs which have kern values but aren't handled (glyph variants,
678         for example).
680 2005-12-02  Werner LEMBERG  <wl@gnu.org>
682         * src/devices/grops/ps.cpp (ps_printer::get_subfont): Use correct
683         subfont index.  Reported by Michail Vidiassov <master@iaas.msu.ru>.
685 2005-11-28  Gaius Mulley  <gaius@glam.ac.uk>
687         * doc/Makefile.in: Separate rule for webpage.html so that extra
688         command line options can be passed to grohtml.
689         * doc/groff.css: Change all margins to 0%.
690         * doc/webpage.ms: Now use new macros ALN, LNS, and LNE so that left
691         navigation is exploited.  Also update webpage to contain new
692         sections on licences, mailing lists, cvs/ftp access, groff
693         dependencies, and bug reports.
694         * tmac/groff_www.man: Document the new macros ALN, LNS, and LNE.
695         * tmac/www.tmac: Implement the new macros ALN, LNS, and LNE.
696         
697 2005-11-25  Gaius Mulley  <gaius@glam.ac.uk>
699         * src/devices/grohtml/post-html.cpp
700         (html_printer::do_file_components): Add fputs calls to emit the
701         head contents and shut down the head tag whenever a new file
702         component is generated.
704 2005-11-22  Gaius Mulley  <gaius@glam.ac.uk>
706         * src/devices/grohtml/post-html.cpp (html_printer::flush_page): Add
707         call to flush_text to flush any outstanding html tags on the
708         paragraph stack.
710 2005-11-18  Werner LEMBERG  <wl@gnu.org>
712         * aclocal.m4 (GROFF_MAKEINFO): Use `groff.info' in tests.
713         Announce makeinfo version.
714         * configure: Regenerated.
716 2005-11-18  Mike Frysinger <vapier@gentoo.org>
718         * Makefile.in: Declare proper dependencies between make targets.
720         * doc/Makefile.in: Rename groff info page to `groff.info'.
721         * doc/Makefile.sub: Likewise.
722         * doc/groff.texinfo: Likewise.
724 2005-11-17  Peter O'Gorman  <mlists@thewrittenword.com>
726         * src/utils/pfbtops/pfbtops.c, src/utils/xtotroff/xtotroff.c: Move
727         definition of __GETOPT_PREFIX to the beginning of file to ensure
728         that it is defined even on platforms where getopt.h is already
729         included by other header files.
731 2005-11-10  Gaius Mulley  <gaius@glam.ac.uk>
733         * src/devices/grohtml/post-html.cpp (html_printer::do_heading):
734         Reset font to NULL to ensure that a font block is recreated during
735         the next paragraph.
737 2005-11-04  Werner LEMBERG  <wl@gnu.org>
739         * aclocal.m4 (GROFF_MAKEINFO): Fix sed expression.
740         * configure: Regenerated.
742 2005-10-27  Werner LEMBERG  <wl@gnu.org>
744         * aclocal.m4 (GROFF_MAKEINFO): New function for checking whether
745         makeinfo 4.8 or newer is available.
746         * configure.ac: Call GROFF_MAKEINFO.
747         * configure: Regenerated.
749         * Makefile.in (MAKEINFO): Use autoconf variable.
750         (MDEFINES): Add MAKEINFO.
752         * doc/Makefile.in (MAKEINFO): Use autoconf variable.
753         * doc/Makefile.sub (MAKEINFO): Remove.
755 2005-10-26  Werner LEMBERG  <wl@gnu.org>
757         * REVISION: Set to 3.
759 2005-10-17  Werner LEMBERG  <wl@gnu.org>
761         Mention $MANPAGER variable used with some `man' systems.
763         * doc/webpage.ms, src/devices/grotty/grotty.man, NEWS: Updated.
765 2005-09-13  Werner LEMBERG  <wl@gnu.org>
767         * tmac/hyphenex.us: New version (`ushyphex.tex' from ftp.dante.de).
769 2005-09-04  Werner LEMBERG  <wl@gnu.org>
771 Version 1.19.2 released
772 =======================
774         * tmac/groff_ms.man, doc/groff.texinfo: Synchronize.
776         * doc/webpage.ms: Updated.
778         * install-sh, mkinstalldirs: New versions; taken from texinfo CVS.
780 2005-09-04  Jörgen Grahn <jgrahn@algonet.se>
782         * tmac/groff_ms.man: Document `PO' better.
784 2005-09-03  Werner LEMBERG  <wl@gnu.org>
786         * NEWS: Document grotty changes.
788 2005-09-01  Keith Marshall  <keith.d.marshall@ntlworld.com>
790         Backward compatibility support for `man' program.
792         * tmac/an-old.tmac (LL): Initialize it to respect prior LL register
793         assignment, prior `.ll' request and then package defaults, in this
794         specified order of decreasing priority.
796         * tmac/groff_man.man, doc/groff.texinfo: Document altered `LL'
797         register initialization priorities.
799 2005-08-29  Gary W. Swearingen  <garys@opusnet.com>
801         * tmac/groff_mdoc.man: Go into more details how the `AUTHORS'
802         section should look like.
804 2005-08-29  Werner LEMBERG  <wl@gnu.org>
806         * tmac/groff_mdoc.man: The month's name in a call to .Dd shouldn't
807         be abbreviated.
809 2005-08-27  Bernd Warken
811         * tmac/groff_man.man: Add man(7) too SEE ALSO and more minor
812         fixes.
814 2005-08-11  Bernd Warken
816         * tmac/www.tmac (URL, MTO): Handle empty \\$1 better.
818 2005-08-09  Bernd Warken
820         * tmac/www.tmac (URL, MTO): Use bold series if color support is
821         deactivated.
823 2005-08-02  Bernd Warken
825         * doc/Makefile.sub (uninstall_sub): Use --remove, not --delete
826         as argument to $(INSTALL_INFO).  The latter isn't portable.
827         Remove $(HTMLEXAMPLEFILES) too.
829         * Makefile.in (uninstall_dirs): Remove $(datadir)/doc/groff and
830         $(datadir)/doc too.
831         Suppress warning messages and return always true.
833         * tmac/Makefile.sub (uninstall_sub): Remove www.tmac too.
835 2005-07-02  Bernd Warken
837         * src/devices/xditview/gxditview.man: Change many `.I' to `.B'.
838         * man/groff_out.man: More markup and minor improvements.
839         * src/roff/groff/groff.man: Minor improvements.
841 2005-06-28  Werner LEMBERG  <wl@gnu.org>
843         * ChangeLog: Split off older entries into...
844         * ChangeLog.115 ChangeLog.116, ChangeLog.117, ChangeLog.118: New
845         files.
847 2005-06-26  Bernd Warken
849         * src/devices/xditview/gxditview.man: More minor fixes.
851 2005-06-24  Werner LEMBERG  <wl@gnu.org>
853         * src/preproc/pic/troff.cpp (troff_output::set_fill,
854         troff_output::set_color, troff_output::reset_color): Use .bcolor and
855         .fcolor instead of \m and \M, respectively.
857 2005-06-23  Bernd Warken
859         * src/devices/xditview/gxditview.man: More minor fixes.
860         * README: Formatting issues.
861         Mention some problems with Debian.
863 2005-06-23  Bernd Warken
865         * src/devices/xditview/gxditview.man: Revised and improved.
867 2005-06-22  Werner LEMBERG  <wl@gnu.org>
869         Another round in fixing getopt problems.  Hopefully the last one!
870         This time we use the getopt stuff from gnulib and define a prefix
871         unconditionally so that there are no collisions with any other
872         getopt implementations.  This is a slight waste of space in case
873         we already use a GNU getopt implementation, but on
874         the other hand it really simplifies life.
876         * src/include/getopt.h: Use gnulib version.
878         * src/include/getopt_int.h: Use gnulib version.
880         * src/include/groff-getopt.h: Removed.  Obsolete now.
882         * src/include/lib.h: Regarding getopt, don't handle any platform
883         specially; just include getopt.h.
884         (__GETOPT_PREFIX): Define (before getopt.h).
886         * src/include/Makefile.sub (HDRS): Updated.
888         * src/libs/libgroff/getopt1.c, src/libs/libgroff/getopt.c: Use
889         gnulib version.
891         * src/libs/libgroff/Makefile.sub (EXTRA_CFLAGS): Set
892         __GETOPT_PREFIX.
894         * src/utils/pfbtops/pfbtops.c, src/utils/xtotroff/xtotroff.c
895         (__GETOPT_PREFIX): Define (before getopt.h).
897 2005-06-21  Werner LEMBERG  <wl@gnu.org>
899         * src/include/lib.h: Provide a fix for Mac OS X to not include
900         groff-getopt.h.
902 2005-06-20  Denis M. Wilson  <dmw@oxytropis.plus.com>
904         * font/devps/prologue.ps (EP): Dont' use `bind'.  Reason: Using
905         `bind' to define a procedure which contains `showpage' means that an
906         invocation of `showpage' may execute wrongly (the exact effect
907         depending on the interpreter).  Not usually a problem except under
908         transformations, such as combining pages.
909         (PEND): Don't call `clear'.  Reason: Using `clear' in the definition
910         of /PEND means that stack underflow will occur if the stack is
911         deliberately non-empty before document inclusion.  If included
912         files are found to be generally badly behaved, we could replace the
913         `clear' with `mark' in /PBEGIN and `cleartomark' in /PEND (I've
914         never found this necessary).
916 2005-06-20  Jörgen Grahn  <jgrahn@algonet.se>
918         * src/preproc/soelim/soelim.cpp (do_file): Append trailing zero
919         earlier to get correct error message.
921 2005-06-16  Bernd Warken
922         * src/roff/nroff/nroff.sh: Add support for iso-8859-15.
924 2005-06-15  Werner LEMBERG  <wl@gnu.org>
926         Another try to update getopt files.  This time we add a dummy
927         gettext.h file to satisfy the dependency.
929         * src/include/getopt.h, src/libs/libgroff/getopt.c,
930         src/libs/libgroff/getopt1.c: Updated from GNU libc CVS.
932         * src/include/getopt_int.h: New file (from GNU libc CVS).
934         * src/include/gettext.h: Dummy file which just defines a gettext()
935         macro.
937         * src/include/groff-getopt.h: Updated.
939         * src/include/Makefile.sub (HDRS): Add getopt_int.h and gettext.h.
942         * src/libs/libdriver/input.cpp (IntArray): Remove superfluous
943         `const' keywords in return value.
945         * src/preproc/html/pushback.cpp (pushBackBuffer::~pushBackBuffer):
946         Remove redundant variable `old'.
947         (pushBackBuffer::skipToNewline): Remove redundant variable `ch'.
949         * src/preproc/tbl/main.cpp (process_table): Remove redundant
950         variable `c'.
953         Fix more friend name injection problems since modern C++ compilers
954         fail otherwise.  We simply provide (global) declarations for all
955         functions declared as friends.  This is not really necessary but
956         doesn't harm.
958         * src/preproc/eqn/lex.cpp: Provide declarations for get_char,
959         peek_char, and get_location.
961         * src/preproc/refer/ref.h: Provide declarations for
962         compare_reference, same_reference, same_year, same_date,
963         same_author_last_name, and same_author_name.
965         * src/roff/troff/div.h: Provide declarations for do_divert and
966         page_offset.
968         * src/roff/troff/env.h: Provide declarations for title_length,
969         space_size, fill, no_fill, adjust, no_adjust, center, right_justify,
970         vertical_spacing, post_vertical_spacing, line_spacing, line_length,
971         indent, temporary_indent, do_underline, do_input_trap, set_tabs,
972         margin_character, no_number, number_lines, leader_character,
973         tab_character, hyphenate_request, no_hyphenate,
974         hyphen_line_max_request, hyphenation_space_request,
975         hyphenation_margin_request, line_width, tabs_save, tabs_restore,
976         line_tabs_request, widow_control_request, and do_divert.
978         * src/roff/troff/input.cpp: Provide declaration for chop_macro.
980         * src/roff/troff/node.cpp: Provide declarations for class
981         tfont_spec.
982         Provide declaration for make_tfont.
984 2005-05-29  Werner LEMBERG  <wl@gnu.org>
986         * doc/fdl.texi: Updated to version 1.2.  Reported by Bernd Warken.
988 2005-05-28  Werner LEMBERG  <wl@gnu.org>
990         * contrib/pdfmark/Makefile.sub (.ms.pdf): Use `--stylesheet', not
991         `--style'.
993         * src/devices/grolbp/lbp.cpp, src/devices/grolbp/lbp.h: Remove
994         redundant semicolons.
996         * src/preproc/eqn/Makefile.sub, src/preproc/html/Makefile.sub,
997         src/preproc/soelim/Makefile.sub, src/preproc/tbl/Makefile.sub:
998         Define `MLIB'.  Some compilers need this for linking with libgroff.
1000 2005-05-27  Werner LEMBERG  <wl@gnu.org>
1002         * MANIFEST, README, doc/webpage.ms: Updated.
1004 2005-05-26  Werner LEMBERG  <wl@gnu.org>
1006         * All affected files: Update postal address of FSF.
1008 2005-05-25  Keith Marshall  <keith.d.marshall@ntlworld.com>
1009             Bernd Warken
1011         * README: More fixes.
1013         * README.CVS: Removed.  Its contents is now part of the README file.
1015 2005-05-21  Werner LEMBERG  <wl@gnu.org>
1017         * README: Updated.  Based on a patch from Bernd Warken.
1019 2005-05-16  Keith Marshall  <keith.d.marshall@ntlworld.com>
1021         Miscellaneous script portability enhancements.
1023         * aclocal.m4: (GROFF_CSH_HACK): Add space in shebang prototype for
1024         generated conftest.sh script, conforming to portability
1025         recommendation in autoconf docs.
1026         * configure: Likewise, for code generated by GROFF_CSH_HACK.
1027         * contrib/eqn2graph/eqn2graph.sh: Add space in shebang, conforming
1028         to portability recommendation in autoconf docs.
1029         * contrib/gdiffmk/gdiffmk.sh: Likewise.
1030         * contrib/gdiffmk/tests/runtests.in: Likewise.
1031         * contrib/grap2graph/grap2graph.sh: Likewise.
1032         * contrib/groffer/groffer.sh: Likewise.
1033         * contrib/mm/mmroff.pl: Likewise.
1034         * contrib/mom/momdoc/appendices.html: Likewise.
1035         * contrib/pic2graph/pic2graph.sh: Likewise.
1036         * font/devps/generate/afmname: Likewise.
1037         * src/devices/xditview/ad2c: Likewise.
1038         * src/preproc/eqn/neqn.sh: Likewise.
1039         * src/roff/grog/grog.pl: Likewise.
1040         * src/roff/grog/grog.sh: Likewise.
1041         * src/roff/nroff/nroff.sh: Likewise.
1042         * PROBLEMS: Likewise, in embedded script examples.
1044 2005-05-16  Keith Marshall  <keith.d.marshall@ntlworld.com>
1046         Improve portability of `pdfroff' shell script.
1048         * arch/misc/shdeps.sh: Add space in shebang, conforming to
1049         portability guidelines in `autoconf' docs.
1050         (PATH_SEARCH_SETUP): New substitution; emits PATH_SEPARATOR
1051         initialization code.  Used by contrib/pdfmark/pdfroff.sh's
1052         `searchpath' function.
1054 2005-05-14  Werner LEMBERG  <wl@gnu.org>
1056         * contrib/pic2graph/pic2graph.sh, contrib/graph2graph.sh,
1057         contrib/eqn2graph.sh: Add option `-trim' to `convert' which is
1058         needed for newer ImageMagick versions.
1060 2005-05-07  Werner LEMBERG  <wl@gnu.org>
1062         * src/preproc/refer/refer.man: Many small typographic fixes.
1064 2005-05-06  Jeff Conrad  <jeff_conrad@msn.com>
1066         * src/devices/grohtml/post-html.cpp (assert_state::~assert_state):
1067         Use `char *' cast for a_delete.
1069 2005-05-03  Werner LEMBERG  <wl@gnu.org>
1071         * src/libs/libgroff/maxpathname.cpp: Include stdlib.h.
1072         src/libs/libgroff/relocate.cpp: Use path_name_max everywhere.
1074 2005-05-03  Jeff Conrad  <jeff_conrad@msn.com>
1076         * src/devices/grohtml/post-html.cpp: Use casts to `char *' if using
1077         `a_delete' for `const char *'.
1079 2005-05-03  Werner LEMBERG  <wl@gnu.org>
1081         * src/devices/grohtml/post-html.cpp,
1082         src/devices/grohtml/html-table.cpp,
1083         src/devices/grohtml/html-text.cpp, src/devices/grohtml/output.cpp:
1084         Replace malloc/free with new/delete/a_delete.
1086         * src/devices/grolbp/lbp.h: Remove superfluous semicolons which
1087         are prohibited with ANSI C++.
1088         (lbpprintf, vdmprintf): Remove useless `inline' keyword (since the
1089         function has a variable number of arguments).
1091         * src/preproc/grn/main.cpp (doinput): Change return type to `int'.
1092         Simplify function and update all callers.
1094 2005-05-02  Werner LEMBERG  <wl@gnu.org>
1096         Undo getopt changes from 2005-04-30.  We don't want a dependency
1097         on gettext.
1099         * src/include/getopt_int.h: Removed.
1101         * src/include/getopt.h, src/include/groff-getopt.h,
1102         src/include/Makefile.sub, src/libs/libgroff/getopt.c,
1103         src/libs/libgroff/getopt1.c: Revert to previous version.
1106         * src/include/nonposix.h (access) [_MSC_VER]: New macro.
1108         * src/include/posix.h (F_OK): Define conditionally.
1110         * src/devices/grotty/tty.cpp (tty_printer::make_underline): Use
1111         different variable name in second `for' loop to avoid MSVC compiler
1112         problem.
1114 2005-04-30  Werner LEMBERG  <wl@gnu.org>
1116         AC_TYPE_SIGNAL from current autoconf can fail if CC=g++.
1118         * aclocal.m4 (GROFF_TYPE_SIGNAL): New function.
1119         * configure.ac: Use GROFF_TYPE_SIGNAL, not AC_TYPE_SIGNAL.
1120         * configure, src/include/config.hin: Regenerated.
1122         * PROBLEMS: Updated.
1125         Update getopt files.
1127         * src/include/getopt.h, src/libs/libgroff/getopt.c,
1128         src/libs/libgroff/getopt1.c: Updated from GNU libc CVS.
1130         * src/include/getopt_int.h: New file (from GNU libc CVS).
1132         * src/include/groff-getopt.h: Updated.
1134         * src/include/Makefile.sub (HDRS): Add getopt_int.h.
1137         * font/devutf8/NOTES: Updated.
1139 2005-04-28  Werner LEMBERG  <wl@gnu.org>
1141         Bug fix for Win32 relocatable code.  Based on a patch from Keith
1142         Marshall.
1144         * src/libs/libgroff/maxpathname.cpp (PATH_MAX): Test for `_MAX_PATH'
1145         also.
1147         * src/libs/libgroff/relocate.c (DEBUG): Define it conditionally.
1148         (searchpath) [_WIN32]: Use `_fullpath', not `realpath'.
1150 2005-04-28  Keith Marshall  <keith.d.marshall@ntlworld.com>
1152         Correct `gnu.eps' handling for build from distribution tarball, with
1153         separate source and build directories.
1155         * doc/Makefile.sub: (examples.stamp): New target; forces copy of
1156         grnexmpl.g, groff.css and gnu.eps from source to build directory;
1157         generate gnu.eps from gnu.xpm if required; touch examples.stamp.
1158         (prepare_examples): Make it depend on examples.stamp.
1159         (CLEANADD): Add examples.stamp.
1161 2005-04-27  Werner LEMBERG  <wl@gnu.org>
1163         Implement the rule
1165           position: `(' position `)'
1167         in pic.
1169         * src/preproc/pic/pic.y (position, position_not_place): Handle
1170         additional parentheses.
1172         * doc/pic.ms: Updated.
1174 2005-04-23  Larry Jones  <lawrence.jones@ugs.com>
1176         * src/utils/xtotroff/xtotroff.c (MapFont): Fix variable declaration.
1178 2005-04-18  Werner LEMBERG  <wl@gnu.org>
1180         * src/roff/groff/pipeline.c: Don't include ctype.h.
1182 2005-04-13  Werner LEMBERG  <wl@gnu.org>
1184         * src/roff/nroff/nroff.man: Document option `-M'.
1186 2005-04-13  Bruce Lilly  <blilly@erols.com>
1188         * src/roff/nroff/nroff.sh: Make the script accept option `-M'.
1190 2005-04-01  Kees Zeelenberg  <kzlg@users.sourceforge.net>
1191             Werner LEMBERG  <wl@gnu.org>
1193         Add binary relocation support for Windows platforms.
1195         * src/include/Makefile.sub (defs.h): Add `INSTALLPATH'.
1197         * src/include/relocate.h, src/libs/libgroff/relocate.cpp: New files.
1199         * src/libs/libgroff/searchpath.cpp: Handle `relocate'.
1200         (search_path::search_path, search_path::open_file_cautious): Use
1201         `relocate'.
1203         * src/libs/libgroff/Makefile.sub (OBJS, CCSRCS),
1204         src/include/Makefile.sub (HDRS): Updated.
1206 2005-04-01  Werner LEMBERG  <wl@gnu.org>
1208         * src/devices/grohtml/post-html.cpp: Don't use strdup/free but
1209         strsave/a_delete.
1211         * src/libs/libgroff/font.cpp: Replace strdup with strsave.
1213         * src/libs/libgroff/maxfilename.cpp: Don't include limits.h since
1214         lib.h already does it.
1216         * src/libs/libgroff/maxpathname.cpp: New file, defining
1217         path_name_max.
1219         * src/include/lib.h: Add prototype for path_name_max.
1221         * src/libs/libgroff/Makefile.sub (OBJS, CCSRCS): Updated.
1223         * src/include/nonposix.h (PATH_EXT): New macro.
1225 2005-03-28  Werner LEMBERG  <wl@gnu.org>
1227         Add support for double- and zero-width characters in grotty.
1229         * src/devices/grotty/tty.cpp (glyph): Add width.
1230         (tty_printer::make_underline, tty_printer::make_bold,
1231         tty_printer::add_character): Add parameter to pass character width.
1232         Update all callers.
1233         (tty_printer::end_page): Increase hpos by actual character width.
1235         * font/devutf8/R.proto: Specify zero width for non-spacing
1236         characters.
1238         * tmac/unicode.tmac: Remove definitions for non-spacing entities.
1240         * Makefile.comm (extraclean): Remove more junk files.
1242 2005-03-25  Werner LEMBERG  <wl@gnu.org>
1244         * configure.ac: Undo change from 2005-03-24.
1245         * configure: Regenerated.
1247 2005-03-24  Werner LEMBERG  <wl@gnu.org>
1249         * Makefile.in (NOMAKEDIRS): Add contrib/gdiffmk/tests.
1250         (dist): Search Makefile while descending into $(EXTRADIRS).
1252         * doc/Makefile.in (.PHONY): Add.
1253         (clean): Don't remove *.png and *.eps.
1254         Don't handle *.gif.
1255         (realclean): Remove *.png and *.eps.
1256         (extraclean): Depend on distclean.
1258         * configure.ac: Add copyright.
1259         Handle contrib/pdfmark/Makefile.
1261         * configure: Regenerated.
1263 2005-03-18  Larry Kollar  <kollar@alltel.net>
1265         Add numbered and definition lists to www.tmac.
1267         * tmac/www.tmac (www-ul-level1, www-ul-level2, www-ul-level3,
1268         www-ol-level1, www-ol-level2, www-ol-level3, www-ol-tmp): New
1269         auxiliary string registers.
1270         (www-ul-level, www-ol-level, www-dl-level, www-ol-ctr1, www-ol-ctr2,
1271         www-ol-ctr3, www-dl-shift): New auxiliary number registers.
1272         (www-level): Removed.
1273         (www-level1, www-level2, www-level3): Initialize to empty.
1274         (www-level0, www-level4, www-level5, www-level6, www-level7,
1275         www-level8, www-level9): New string registers.
1276         (www-push-li, www-pop-li): New macros.
1277         (www-push-level, www-pop-level): Renamed to...
1278         (www-push-ul-level, www-pop-ul-level): This.
1279         Updated.
1280         (www-push-ol-level, www-pop-ol-level): New macros.
1281         (ULS, ULE): Updated.
1282         (OLS, OLE, DLS, DLE): New user macros.
1283         (LI): Removed.  It is aliased to one of...
1284         (www-li-ul, www-li-ol, www-li-dl): New macros.
1286         * tmac/groff_www.man: Document new macros.
1288         * NEWS: Updated.
1290 2005-03-18  Werner LEMBERG  <wl@gnu.org>
1292         * tmac/doc-common (doc-operating-system-NetBSD-2.0.1,
1293         doc-operating-system-NetBSD-2.0.2): New strings.
1295         * tmac/groff_mdoc.man: Updated.
1297 2005-03-17  Werner LEMBERG  <wl@gnu.org>
1299         * doc/Makefile.sub (CLEANADD): Add `groff.html'.
1301 2005-03-17  Werner LEMBERG  <wl@gnu.org>
1303         * src/libs/libgroff/hypot.c: Renamed to...
1304         * src/libs/libgroff/hypot.cpp: This.  Updated to C++.
1306         * src/libs/libgroff/Makefile.sub (CCSRCS, CSRCS): Updated.
1308         * src/include/lib.h: Updated.
1310 2005-03-16  Werner LEMBERG  <wl@gnu.org>
1312         Add workaround for broken hypot() on Interix.
1314         * src/libs/libgroff/hypot.c: New wrapper file for `hypot'.
1316         * src/libs/libgroff/Makefile.sub (OBJS): Add `hypot.o'.
1317         (CSRCS): Add `hypot.c'.
1319         * src/include/lib.h: Declare `groff_hypot'.
1321         * src/preproc/grn/hgraph.cpp: Don't declare `hypot'.
1322         Use `groff_hypot'.
1324         * src/preproc/pic/pic.h: Don't declare `hypot'.
1326         * src/preproc/pic/object.cpp (hypot): Use `groff_hypot'.
1328 2005-03-15  Gaius Mulley  <gaius@glam.ac.uk>
1330         * src/devices/grohtml/post-html.cpp
1331         (html_printer::lookahead_for_tables): End .ce properly to avoid a
1332         segfault.
1334 2005-03-15  Werner LEMBERG  <wl@gnu.org>
1336         makeinfo 4.8 doesn't produce good HTML output from groff.texinfo.
1338         * doc/fixinfo.sh: New script to postprocess makeinfo's HTML output.
1340         * doc/Makefile.in (.texinfo.html): Call fixinfo.sh.
1342 2005-03-14  Werner LEMBERG  <wl@gnu.org>
1344         Add Cyrillic support to devutf8 and devhtml.
1346         * font/devutf8/R.proto, font/devhtml/R.proto: Add Cyrillic blocks.
1348         * tmac/unicode.tmac: New file.
1350         * tmac/tty.tmac: Include unicode.tmac if device is utf8.
1352         * tmac/Makefile.sub (NORMALFILES): Add unicode.tmac.
1354         * NEWS: Updated.
1356 2005-03-02  Keith Marshall  <keith.d.marshall@ntlworld.com>
1358         * src/libs/libdriver/printer.cpp (check_for_output_error): New
1359         function.  It has been introduced to catch peculiar error contexts
1360         on MS-Windows platforms.
1362 2005-02-28  Werner LEMBERG  <wl@gnu.org>
1364         * src/roff/troff/input.cpp (string_iterator::fill): Protect against
1365         null pointer.
1367         * tmac/papersize.tmac: Convert `paper' string contents to lowercase.
1369         * configure: Regenerated.
1371         * NEWS: Updated.
1373 2005-02-28  Keith Marshall  <keith.d.marshall@ntlworld.com>
1375         Integrate `pdfmark' into normal groff build system;
1376         install macro `pdfmark' packages, build and install `pdfroff',
1377         and PDF format documentation.
1379         * Makefile.comm: Add PDFDOCDIR.
1381         * Makefile.in: (MDEFINES) ALT_AWK_PROGS, ALT_GHOSTSCRIPT_PROGS,
1382         pdfdocdir, make_pdfdoc, make_install_pdfdoc: New variables.
1383         (unstall_dirs): Add pdfdocdir.
1385         * aclocal.m4: (GROFF_GHOSTSCRIPT_PREFS): New function; support
1386         `--with-alt-gs' option, set ALT_GHOSTSCRIPT_PROGS.
1387         (GROFF_GHOSTSCRIPT_PATH): Support `--with-gs' option, force use of
1388         GROFF_GHOSTSCRIPT_PREFS, set GHOSTSCRIPT.
1389         (GROFF_HTML_PROGRAMS): Force use of GROFF_GHOSTSCRIPT_PATH; tidy up.
1390         (GROFF_AWK_PREFS): New function; support `--with-alt-awk' option,
1391         set ALT_AWK_PROGS.
1392         (GROFF_AWK_PATH): New function; support `--with-awk' option, force
1393         use of GROFF_AWK_PREFS.
1394         (GROFF_PDFDOC_PROGRAMS): New function; force use of GROFF_AWK_PATH
1395         and GROFF_GHOSTSCRIPT_PATH, set make_pdfdoc and make_install_pdfdoc.
1397         * configure.ac: Add AC_PREREQ(2.59), GROFF_PDFDOC_PROGRAMS.
1398         Remove GROFF_GHOSTSCRIPT_PATH, (forced by GROFF_PDFDOC_PROGRAMS, and
1399         also by modified GROFF_HTML_PROGRAMS).
1401 2005-02-27  Gaius Mulley  <gaius@glam.ac.uk>
1403         * src/devices/grohtml/html-text.cpp (html_text::do_pre): Preserve
1404         paragraph spacing.
1405         (html_text::done_para): Unset `start_space'.
1406         (html_text::remove_para_align): Call `retrieve_para_space' for the
1407         spacing.
1409         * src/devices/grohtml/post-html.cpp (html_printer::emit_raw): Unset
1410         `seen_space'.
1411         (html_printer::do_check_center): Emit vertical space if necessary.
1413         * src/roff/troff/env.cpp (environment_switch): Preserve
1414         `seen_space', `seen_eol', and `suppress_next_eol' while switching
1415         environments.
1417         * src/roff/troff/node.cpp (suppress_node::suppress_node): Set
1418         `is_special'.
1420 2005-02-20  Werner LEMBERG  <wl@gnu.org>
1422         * src/preproc/eqn/eqn.man, NEWS: Document various extensions of
1423         eqn.
1425 2005-02-17  Werner LEMBERG  <wl@gnu.org>
1427         * doc/pic.ms, man/groff.man: Fix typos.
1429         * doc/groff.texinfo: Fix typos.
1430         (\LEmacro): Get proper mathematical spacing.
1432 2005-02-16  Werner LEMBERG  <wl@gnu.org>
1434         * aclocal.m4 (GROFF_APPRESDIR_CHECK): Improve warning message.
1435         * configure: Regenerated with autoconf 2.59b.
1437 2005-02-16  Gaius Mulley  <gaius@glam.ac.uk>
1439         * src/devices/grohtml/post-html.cpp (html_printer::is_line_start,
1440         html_printer::start_font): Fix handling of preformatted text.
1442 2005-02-15  Gaius Mulley  <gaius@glam.ac.uk>
1444         These patches modify the indentation implementation to use `<p
1445         style=margin-left: n%>'.  Many thanks to Peter and Larry for
1446         suggesting this solution.  Grohtml only uses tables for `.IP' and
1447         related tags when the first operand has a short width.
1449         Similarly, they modify all vertical space code.  By default, grohtml
1450         sets up a style sheet which uses no vertical space between `table',
1451         `pre', and `p' tags.  It forces spaces when it needs them using
1452         `style="margin-top: 1em"'.
1454         * src/devices/grohtml/html-table.cpp: Include `html-text.h'.
1455         (html_table::emit_table_header, html_table::emit_new_row):
1456         Rewritten.
1457         (html_table::set_space): New function.
1458         (html_indent::html_indent): Don't set `is_used'.
1459         (html_indent::begin): Rewritten.
1460         (html_indent::end): Remove code in function.
1462         * src/devices/grohtml/html-table.h: Updated.
1463         (html_table): Make `out' public.
1465         * src/devices/grohtml/html-text.cpp (html_text::html_text):
1466         Initialize `start_space' with FALSE.
1467         (html_text::end_tag) <P_TAG, PRE_TAG>: Updated.
1468         (html_text::issue_tag): Add argument to handle space style.
1469         (html_text::start_tag) <P_TAG, PRE_TAG>: Updated.
1470         (html_text::flush_text): Don't set `start_space'.
1471         (html_text::push_para): Don't set `p->really_issued'.
1472         (html_text::do_emittext): Updated.
1473         (html_text::do_para): Add paremeter to handle space.
1474         Update all callers.
1475         (html_text::retrieve_para_space): New function.
1477         * src/devices/grohtml/html-text.h (STYLE_VERTICAL_SPACE): New macro.
1478         (tag_definition): Remove `really_issued'.
1479         (html_text): Updated.
1481         * src/devices/grohtml/post-html.cpp (html_printer): Add variables
1482         `current_column' and `row_space'.
1483         Update constructor.
1484         (html_printer::emit_raw, html_printer::write_header,
1485         html_printer::do_indent, html_printer::do_check_center,
1486         html_printer::do_tab_ts): Handle vertical space.
1487         (html_printer:do_tab_te, html_printer::do_end_para): Call
1488         `remove_para_space'.
1489         (html_printer::do_col): Rewritten.
1490         (html_printer::flush_globs): Remove debugging code.
1491         (html_printer::is_line_start): New function.
1492         (html_printer::start_font): Use `is_line_start'.
1493         (html_printer::writeHeadMetaStyle): New function.
1494         (html_printer::do_file_components, html_printer::~html_printer):
1495         Call `writeHeadMetaStyle'.
1497         * tmac/www.tmac (www-handle-percent): New macro.
1498         (MPIMG): Handle percent values for width and height parameters.
1499         (DC): Updated.
1501         * tmac/groff_www.man: Updated.
1503 2005-02-14  Werner LEMBERG  <wl@gnu.org>
1505         * src/utils/afmtodit/afmtodit.pl: Remove an incorrect `my' from
1506         $psname and $italic_angle.
1507         Immediately restart file input loops if `split' returns an empty
1508         array.
1510 2005-02-13  Michail Vidiassov  <master@iaas.msu.ru>
1511             Werner LEMBERG  <wl@gnu.org>
1513         Update afmtodit to better support Unicode (Michail).
1514         Update afmtodit to use Perl 5 syntax (Werner).
1516         * src/utils/afmtodit/afmtodit.pl: Don't use `getopts.pl' but
1517         `Getopts::Std'.
1518         Decorate variables with `my' where necessary.
1519         Use `defined' where necessary to avoid warnings.
1520         Don't use `do' for subroutine calls.
1521         Other minor syntax updates.
1522         Check for both `uXXXX[X[X]]' and `uniXXXX'.
1523         Handle glyph variants properly.
1524         (%unicode_decomposed, %AGL_to_unicode): Don't use `u' prefix in
1525         strings.
1527         * src/utils/afmtodit/afmtodit.man: Updated.
1529 2005-02-13  Werner LEMBERG  <wl@gnu.org>
1531         Make groff.texinfo work with texinfo 4.8.
1533         * doc/groff.texinfo (@Var): Use @r and @slanted.
1534         (@defdummy, @Def*): Use @c to avoid empty lines.
1535         (\angles): Replaced with...
1536         (\Langlemacro, \Ranglemacro): New TeX macros.
1537         (@Langlemacro, @Ranglemacro): New variables defined with @set.
1538         (@angles): Use @Langlemacro and @Ranglemacro.
1539         (\LE): Replaced with...
1540         (\LEmacro): New TeX macro.
1541         (@LEmacro): New variable defined with @set.
1542         (@LE): Use @LEmacro.
1543         (@Lparenmacro, @Rparenmacro, @Lbrackmacro, @Rbrackmacro): New
1544         variables defined with @set.
1545         (@lparen, @rparen, @lbrack, @rbrack): Replaced with...
1546         (@Lparen, @Rparen, @Lbrack, @Rbrack): New macros.
1547         Update all callers.
1549         Other minor updates.
1551         * doc/texinfo.tex: Update to texinfo version 4.8.
1553         * README.CVS: Updated.
1555 2005-02-09  Alejandro López-Valencia <palopez@etb.net.co> (tiny change)
1557         * doc/groff.texinfo (ms Document Control Registers): Document `HY'
1558         and `FAM' registers.
1560 2005-02-05  Werner LEMBERG  <wl@gnu.org>
1562         * tmac/groff_mdoc.man, tmac/doc-common, tmac/doc-ditroff,
1563         tmac/doc-nroff, tmac/doc-old.tmac, tmac/doc-syms, tmac/doc.tmac:
1564         Update BSD license.
1566 2005-02-01  Werner LEMBERG  <wl@gnu.org>
1568         * src/roff/groff/groff.man: Add information about paper size.
1570 2005-01-25  Werner LEMBERG  <wl@gnu.org>
1572         * src/roff/nroff/nroff.sh: Handle `*.ISO8859-1' in locale.  From
1573         NetBSD bin/29114.
1575 2005-01-22  Ruslan Ermilov  <ru@FreeBSD.org>
1577         * tmac/doc.tmac (Sm): Improved.  It didn't work properly in many
1578         cases.
1579         (Re): Emit a warning if called without `.Rs'.
1580         (doc-finish-reference): Use parameter for decreasing
1581         `doc-reference-count'.
1582         (doc-print-reference): Pass specific count parameters to
1583         `doc-finish-reference'.
1585 2005-01-21  Werner LEMBERG  <wl@gnu.org>
1587         * src/libs/libdriver/input.cpp (delete_current_env, do_file):
1588         Reset pointers to zero after deallocation.  This fixes a crash
1589         if a driver is called with multiple input files.  Reported by
1590         Ken Chilton <ken@chiltonfamily.org>.
1592         * src/devices/grops/grops.man: Add more info on DSC.
1594 2005-01-17  Ruslan Ermilov  <ru@FreeBSD.org>
1596         * tmac/doc-common (Dd), tmac/doc-ditroff (gX, doc-setup-header):
1597         Remove dead code.
1599 2005-01-17  Werner LEMBERG  <wl@gnu.org>
1601         * src/roff/troff/div.cpp (top_level_diversion::space): Protect
1602         against division by zero.
1604 2005-01-13  Ruslan Ermilov  <ru@FreeBSD.org>
1606         * tmac/doc.tmac (Ef): Restore doc-curr-font and doc-curr-size.
1608 2004-12-19  Werner LEMBERG  <wl@gnu.org>
1610         * install-sh: New version; taken from texinfo CVS.
1612 2004-12-17  Werner LEMBERG  <wl@gnu.org>
1614         * tmac/devtag.tmac: Protect against loading twice.
1615         Protect agains compatibility mode.
1616         * tmac/www.tmac: Protect against loading twice.
1617         Load `devtag.tmac' before switching off compatibility mode.
1618         * tmac/an-old.tmac, tmac/s.tmac: Load `devtag.tmac'.
1620 2004-12-16  Mike Bianchi  <mbianchi@Foveal.com>
1622         * configure.ac: Produce `contrib/gdiffmk/tests/runtests'.
1623         * configure: Updated.
1625 2004-12-15  Thomas Klausner  <wiz@netbsd.org>
1627         * tmac/doc-syms, tmac/groff_mdoc.man: Add `libpam' library.
1629 2004-12-15  Werner LEMBERG  <wl@gnu.org>
1631         Make `test-groff' work again -- previously, wrong paths have been
1632         used.  Additionally, it can now be called from anywhere.
1634         * test-groff.in: Don't test for groff binary.  This is no longer
1635         necessary since the proper paths are determined by `configure'.
1636         (EXEEXT): Removed.  No longer used.
1637         (srcdir, builddir): Use values provided by the configure script.
1638         (XENVIRONMENT): Updated.
1640         * INSTALL: Updated.
1642 2004-12-14  Gaius Mulley  <gaius@glam.ac.uk>
1644         Make .tag and .taga work for all devices (but only grohtml actually
1645         handles them).
1647         * src/devices/grohtml/post-html.cpp: s/html-tag/devtag/.
1648         (text_glob::is_br, page::add_tag, html_printer::troff_tag,
1649         html_printer::handle_assertion): Don't use hard-coded string
1650         lengths.
1651         (html_printer::lookahead_for_table): Reset `tbl' properly if
1652         necessary.
1653         (html_printer::devtag): New function, handling `devtag'.
1654         (html_printer::special): Don't handle `html-tag'.
1656         * src/include/printer.h, src/libs/libdriver/printer.cpp
1657         (printer::devtag): New virtual function.
1659         * src/libs/libdriver/input.cpp (parse_x_command) <'X'>: Handle
1660         `devtag'.
1662         * src/roff/troff/env.cpp, src/roff/troff/mtsm.cpp,
1663         src/roff/troff/node.cpp: s/html-tag/devtag/.
1665         * src/roff/troff/input.cpp (tag, taga): Always call
1666         curenv->add_node.
1668         * tmac/an-old.tmac, tmac/s.tmac, tmac/troffrc-end: Use DEVTAG*
1669         macros instead of HTML-TAG*.
1671         * tmac/devtag.tmac: New file, defining the DEVTAG-* macros.
1673         * tmac/www.tmac: Load devtag.tmac.
1674         Replace HTML-TAG* macros with DEVTAG* macros.
1675         (HTML, HTML-NS): Changed definitions.
1676         (URL): Use HTML-NS.
1677         (HTML-TAG, HTML-TAG-NS, HTML-TAG-NEXT): Removed.
1679         * tmac/Makefile.sub (NORMALFILES): Add devtag.tmac.
1681 2004-12-10  Werner LEMBERG  <wl@gnu.org>
1683         Import Mike's `gdiffmk' package.
1685         * contrib/gdiffmk/*: New files.
1686         * Makefile.in (OTHERDIRS): Add contrib/gdiffmk.
1687         * NEWS: Updated.
1689 2004-12-08  Werner LEMBERG  <wl@gnu.org>
1691         Import Keith's `pdfmark' package.  Integration is very preliminary.
1693         * contrib/pdfmark/*: New files.
1694         * Makefile.in (OTHERDIRS): Add contrib/pdfmark.
1695         * NEWS: Updated.
1697 2004-12-07  Gaius Mulley  <gaius@glam.ac.uk>
1699         Fix a bug with title handling in HTML.
1701         * src/devices/grohtml/post-html.cpp (text_glob::is_nf,
1702         text_glob::is_fi, text_glob::is_ce): Use strlen to compute string
1703         length.
1704         (html_printer::handle_tag_within_title): New function.
1705         (html_printer::do_title): Use it.
1707         * tmac/s.tmac (TL): Don't set `need_eo_tl'.
1708         (cov*tl-au-print): Emit `.eo.tl' tag.
1710 2004-12-05  Alejandro López-Valencia  <dradul@etb.net.co>
1712         * man/groff_char.man: Minor imrovements.
1714 2004-12-04  Werner LEMBERG  <wl@gnu.org>
1716         * src/preproc/eqn/eqn.man: Revised.
1718 2004-11-25  Werner LEMBERG  <wl@gnu.org>
1720         * src/utils/xtotroff/xtotroff.c: Reformat to be similar to other
1721         groff source files.
1722         Include config.h.
1723         Include limits.h.
1724         Remove X_NOT_STDC_ENV conditional.
1725         (Version_string, program_name): New global variables.
1726         (groff_flag): Removed.
1727         (MapFont): Updated.
1728         (usage): Take a stream as argument.
1729         Use `program_name'.
1730         Update all callers.
1731         (main): Add `long_options' array for `--help' and `--version'.
1732         Make `-g' a dummy option.
1733         Handle `-v' and unknown options.
1734         Remove unused `position' variable.
1736         * src/utils/xtotroff/Makefile.sub (MAN1): Define.
1737         (XLIBS): Add LIBGROFF.
1739         * src/utils/xtotroff/xtotroff.man, src/utils/xtotroff/Makefile.in:
1740         New files.
1742         * src/devices/xditview/Dvi.c (default_font_map): Split into three
1743         parts to avoid compiler warning.
1744         (resources): Don't initialize with `default_font_map'.
1745         (ClassInitialize): Initialize first element of `resources'.
1747         * src/devices/xditview/Makefile.sub (devdir, xtotroff, DPIS, fonts):
1748         Removed.
1750         * src/utils/lkbib/lkbib.man, src/utils/lookbib/lookbib.man,
1751         src/utils/pfbtops/pfbtops.man: Revised, updated.
1753         * configure.ac: Generate src/utils/xtotroff/Makefile.
1754         * configure: Regenerated.
1756 2004-11-24  Werner LEMBERG  <wl@gnu.org>
1758         First fixes to get produce HTML.
1760         * src/devices/grohtml/post-html.cpp (generate_img_src): Add `alt'
1761         attribute.
1763         * tmac/www.tmac (IMG, PIMG, MPIMG): Add `alt' attribute.
1764         (HR, LI): Use `HTML</p>', not `HTML'.
1766         * doc/webpage.ms: Minor updates.
1768 2004-11-23  Larry Kollar  <kollar@alltel.net>
1770         Add option -S grohtml to determine the file split level.
1772         * src/devices/grohtml/post-html.cpp (split_level): New global
1773         variable.
1774         (html_header::determine_header_level): Use split_level.
1775         (main): Handle `-S' command line option.
1776         Sort options.
1778         * src/preproc/html/pre-html.cpp (scanArguments): Updated.
1780         * src/devices/grohtml/grohtml.man: Document it.
1781         Sort options.
1783         * NEWS: Document it.
1785 2004-11-23  Y T  <doarhop@hotmail.com>
1787         * tmac/s.tmac (ref*add-V, ref*add-N): New macros for handling
1788         the volume and number refer entries.
1790 2004-11-22  Werner LEMBERG  <wl@gnu.org>
1792         * src/devices/grohtml/html-table.cpp
1793         (html_table::emit_table_header): Don't emit `cols' attribute which
1794         doesn't exist in HTML 4.0 and is thus invalid.
1796         * NEWS: More minor fixes and updates.
1798 2004-11-18  Werner LEMBERG  <wl@gnu.org>
1800         * tmac/www.tmac (HTML-NS, HTML-TAG-NS, HTML-TAG-NEXT): Simplified.
1801         (HTML</p>): Minor clean-up.
1803         * tmac/groff_www.man: Updated.
1805         * src/devices/grohtml/grohtml.man: Revised and updated.
1807         * NEWS: Updated.
1809 2004-11-18  Gaius Mulley  <gaius@glam.ac.uk>
1811         * src/devices/grohtml/post-html.cpp (html_printer::do_heading):
1812         Fix space insertion.
1813         (html_printer::do_links): Fix rules generation around automatic
1814         heading links.
1816         * tmac/www.tmac (LK): Use HTML-TAG-NS.
1817         (HR): Simplify.
1818         No longer emit empty line for non-HTML devices.
1820 2004-11-17  Werner LEMBERG  <wl@gnu.org>
1822         * doc/Makefile.in (prepare_examples, webpage.html): Handle
1823         `groff.css'.
1825         * doc/Makefile.sub (EXAMPLEFILES, CLEANNOTSRCDIRADD,
1826         prepare_examples, webpage.html): Handle `groff.css'.
1828 2004-11-15  Werner LEMBERG  <wl@gnu.org>
1830         * NEWS, README, doc/webpage.ms: Updated.
1832         * tmac/www.tmac (HTML, HTML-TAG): Minor clean-ups.
1834 2004-10-30  Gaius Mulley  <gaius@glam.ac.uk>
1836         * src/include/printer.h (printer): Remove virtual function
1837         `round_width'.
1838         Update all source files.
1840         * src/devices/grohtml/post-html.cpp (html_printer): New member
1841         function `round_width'.
1843 2004-10-20  Tadziu Hoffmann  <hoffmann@usm.uni-muenchen.de>
1845         * src/preproc/tbl/table.cpp (table::do_row): Fix handling of the `d'
1846         column key letter suffix.
1848 2004-10-14  Werner LEMBERG  <wl@gnu.org>
1850         * Makefile.in (check): Depend on `site.exp' and `docheck'.
1851         (docheck): Run dejagnu's `runtest' if it exists.
1852         (site.exp): Create dejagnu configuration file.
1854         * Makefile.sub (DISTCLEANFILES): Add files related to dejagnu.
1856 2004-10-13  Werner LEMBERG  <wl@gnu.org>
1858         * src/devices/grohtml/html-text.cpp (html_text_get_alignment),
1859         src/devices/grohtml/post-html.cpp (make_val,
1860         html_printer::handle_state_assertion): Fix compiler warnings.
1862         * src/roff/troff/div.cpp: Include `stringclass.h' and `mtsm.h'.
1863         (diversion::diversion): Fix order of initializers.
1865         * src/roff/troff/div.h: Don't include `mtsm.h'.
1867         * src/roff/troff/env.cpp: Include `stringclass.h' and `mtsm.h'.
1868         (environment::environment): Fix order of initializers.
1869         (environment::make_tag, environment::construct_format_state): Fix
1870         compiler warnings.
1872         * src/roff/troff/input.cpp: Include `stringclass.h' and `mtsm.h'.
1873         (input_iterator::input_iterator, macro::macro): Fix order of
1874         initializers.
1876         * src/roff/troff/mtsm.cpp: Include only necessary header files.
1877         (state_set::add, state_set::val): Fix compiler warnings.
1879         * src/roff/troff/mtsm.h: Don't include `stringclass.h'.
1880         (bool_value_state, int_value_state, units_value_state,
1881         string_value_state): Remove comma after last element which causes
1882         an error with g++ 3.3.3.
1884         * src/roff/troff/node.cpp: Include `stringclass.h'.
1885         (hline_node::hline_node, vline_node::vline_node,
1886         space_char_hmotion_node, left_italic_corrected_node): Fix compiler
1887         warnings.
1888         (zero_width_node::zero_width_node): Fix order of initializers.
1890         * src/roff/troff/node.h: Don't include `mtsm.h'.
1891         (hmotion_node): Fix compiler warnings.
1893         * src/roff/troff/number.cpp: Include `stringclass.h' and `mtsm.h'.
1895 2004-10-12  Gaius Mulley  <gaius@glam.ac.uk>
1897         * doc/groff.css: New file.
1899         * doc/webpage.ms: Use `groff.css'.
1900         Other small fixes.
1902         * tmac/an-old.tmac (need_eo_h): New number register.
1903         (TH): Emit `.eo.tl' tag after title.
1904         (SH): Set `need_eo_h'.
1905         (an-trap): Handle `need_eo_h'.
1906         (an-do-tag): s/HTML-TAG-NS/HTML-TAG-NEXT/.
1908         * tmac/s.tmac (need_eo_h, need_eo_tl): New number registers.
1909         (TL): Always start diversion.
1910         Updated.
1911         (@AI): Always call `par@reset'.
1912         (@AB): Update code for -Thtml.
1913         (cov*tl-au-print): Handle -Thtml.
1914         (par@reset): Handle `need_eo_tl', `need_eo_h'.
1915         (@IP): Simplified.
1916         (@IT-html): Removed.
1917         (@SH): Set `need_eo_h' for -Thtml.
1918         (par@TL): s/HTML-TAG/HTMl-TAG-NS/.
1919         Set `need_eo_tl'.
1920         (@NH): s/HTML-TAG/HTMl-TAG-NS/.
1921         Set `need_eo_h' for -Thtml.
1922         (@EQ, @EN): Don't handle -Thtml specially.
1923         (par@load-init): Don't handle -Thtml specially.
1925         * tmac/www.tmac (www:paraspace): New macro.
1926         (HTML-NS, HTML-TAG-NS): Use new `tag' request.
1927         (HTML</p>, HTML-TAG-NEXT): New macros.
1928         (HnE): Emit tag `.eo.h' instead of break.
1929         (HR): s/HTML-NS/HTML/.
1930         (www-end-nowhere): End diversion only if `www-html' not set.
1931         Emit `.eo.tl' tag.
1932         (ULS, ULE): s|HTML|HTML</p>|.
1933         (LI): Call `www:paraspace'.
1934         (HEAD): New macro.
1936 2004-10-11  Gaius Mulley  <gaius@glam.ac.uk>
1938         * src/roff/troff/request.h (macro): Make `p' public.
1939         New variable `is_a_diversion'.
1940         New member function `is_diversion'.
1943         * src/devices/grohtml/html.h (simple_output): New member function
1944         `force_nl'.
1946         * src/devices/grohtml/html-table.cpp (tabs::compatible): Fix
1947         computation of `total'.
1948         (tabs::check_init): New function.
1949         (html_table::emit_table_header): Emit style data.
1950         (html_table::insert_column): Improved.
1952         * src/devices/grohtml/html-table.h: Updated.
1954         * src/devices/grohtml/html-text.cpp (html_text::html_text):
1955         Initialize `start_space' with TRUE.
1956         (html_text::end_tag, html_start_tag): Fix `P_TAG' and `PRE_TAG'
1957         cases.
1958         (html_text::flush_text): Set `start_space' flag.
1959         (html_text::uses_indent, html_text::remove_para_space,
1960         html_text::get_alignment): New functions.
1961         (html_text::push_para): Updated.
1962         (html_text::do_para): Check for empty argument.
1963         Don't set `space_emitted'.
1964         (html_text::do_space, html_text::emit_space): Updated.
1966         * src/devices/grohtml/html-text.h (tag_definition): New variable
1967         `really_issued'.
1968         (html_text): New member function `uses_indent', `remove_para_space',
1969         `get_alignment'.
1971         * src/devices/grohtml/output.cpp (simple_output::force_nl): New
1972         function.
1973         (simple_output:nl): Always emit `\n'.
1975         * src/devices/grohtml/post-html.cpp: Include `string.h'.
1976         (BASE_POINT_SIZE): Removed.
1977         (base_point_size, head_info): New global variables.
1978         (text_glob): New member functions `is_ll', `is_tl', `is_eo_tl',
1979         `is_eo_h'.
1980         (text_glob::is_nf, text_glob::is_fi): Handle `.fi 0' and `.fi 1'
1981         tags, respectively.
1982         (page::add_and_encode): Pass additional parameter for tag flag.
1983         (assert_pos): New structure.
1984         (assert_state): New class.
1985         (html_printer): Remove `indentation', `prev_indent'.
1986         Add variables `troff_indent', `device_indent', `temp_indent'.
1987         Add variables `seen_indent', `next_indent', `seen_pageoffset',
1988         `next_pageoffset', `seen_linelenght', `next_linelength',
1989         `seen_center', `next_center', `seen_space', `seen_break', `as'.
1990         Add member functions `do_check_center', `do_space', `do_head',
1991         `get_troff_indent', `restore_troff_indent', `handle_assertion',
1992         `handle_state_assertion', `do_end_para', `set_char_and_width'.
1993         Change argument to `do_fill' to `char *'.
1994         Update constructor.
1995         (html_printer::emit_raw): Call `shutdown_table'.
1996         Use new functions.
1997         (html_printer::do_center): Simplified.
1998         (html_printer::do_title): Improved.
1999         (html_printer::write_header): Emit one more newline.
2000         Use new functions.
2001         (html_printer::do_heading, html_printer::do_indent,
2002         html_printer::do_eol, html_printer::do_tab_ts,
2003         html_printer::do_tab, html_printer::do_tab0,
2004         html_printer::calc_po_in, html_printer::next_horiz_pos,
2005         html_printer::remove_courier_tabs,
2006         html_printer::insert_tab0_foreach_tab, html_printer::begin_page):
2007         Updated.
2008         (html_printer::do_linelength, html_printer::do_pageoffset,
2009         html_printer::do_indentation, html_printer::do_tempindent,
2010         html_printer::do_tab_te): Simplified.
2011         (html_printer::do_pointsize): Check whether point size is really
2012         associated a `.tl' tag.
2013         (html_printer::do_break): Rewritten.
2014         (html_printer::troff_tag): Improved.
2015         (html_printer::flush_globs): Updated.
2016         (html_printer::lookahead_for_tables): Handle `is_br'.
2017         Use new functions.
2018         (html_printer::set_char): Check `sbuf_style.f'.
2019         (html_printer::write_navigation): Use string comparison.
2020         (html_printer::~html_printer): Emit `head_info'.
2021         (html_printer::special): Rewritten.
2022         (get_str, make_val): New functions.
2023         (main): New option `s' to set the base point size.
2025         * src/preproc/html/pre-html.cpp (scanArguments): Handle option `s'.
2027 2004-10-10  Gaius Mulley  <gaius@glam.ac.uk>
2029         * src/roff/troff/node.cpp: New extern `debug_state'.
2030         Include `stringclass.h' and `mtsm.h'.
2031         Implement new classes and class members from `node.h'.
2032         (real_output_file): Make `fp' public.
2033         (troff_output_file): New variables `cur_div_level' and `tag_list'.
2034         Update constructors.
2035         (troff_output_file::really_print_line): Check whether we should push
2036         the current troff state and use the state at the start of the
2037         invocation of this diversion.
2038         (troff_output_file::add_to_tag_list): New member function.
2039         (node::add_char): Handle `glyph_comp_np'.
2041         * src/roff/troff/node.h: Include `mtsm.h'.
2042         (node): New variables `state', `push_state', `div_nest_level',
2043         `is_special'.  Update constructors, all descendants.
2044         Pass additional argument to `add_char' member function.
2045         New virtual member functions `is_tag', `debug_node',
2046         `debug_node_list'.  Update all descendants.
2047         (tag_node): New class for handling tags.
2048         (output_file): Add variable `state'.
2050 2004-10-09  Gaius Mulley  <gaius@glam.ac.uk>
2052         * src/roff/troff/mtsm.cpp, src/roff/troff/mtsm.h: New files,
2053         providing a minimal troff state machine to emit meta tags for the
2054         post-grohtml device driver.
2056         * src/roff/troff/Makefile.sub (OBJS, CCSRCS, HDRS): Handle new
2057         files.
2059 2004-10-09  Werner LEMBERG  <wl@gnu.org>
2061         * tmac/trace.tmac: Fix handling of `am' and `am1' calls.
2063 2004-10-06  Gaius Mulley  <gaius@glam.ac.uk>
2065         * src/roff/troff/column.cpp (vjustify_node::copy): Updated.
2067         * src/roff/troff/div.h: Include `mtsm.h'.
2068         (diversion): New variables `any_chars_added', `needs_push',
2069         `saved_seen_break', `saved_seen_space', `saved_seen_eol',
2070         `saved_suppress_next_eol', `modified_tag'.
2071         New virtual member function `is_diversion'.  Update all descendants.
2073         * src/roff/troff/div.cpp (diversion::diversion,
2074         macro_diversion::macro_diversion): Updated.
2075         (do_divert): Handle `seen_break', `seen_space', `seen_eol',
2076         `suppress_next_eol'.
2077         (top_level_diversion::space): Handle `curenv->seen_space'.
2078         (page_offset): Update tag handling.
2079         (space_request, blank_line, flush_output): Don't call `add_html_tag'.
2081         * src/roff/troff/env.h (environment): Make `tabs' public.
2082         Remove `ignore_next_eol', `emitted_node'.
2083         Update `output_line', `output'.
2084         New variables `seen_space', `seen_eol', `suppress_next_eol',
2085         `seen_break'.
2086         New member functions `construct_state', `make_tag',
2087         `construct_format_state, `construct_new_line_state,
2088         `dump_troff_state'.
2089         Remove `add_html_tag', `make_html_tag'.
2091         * src/roff/troff/env.cpp: New externs `suppress_push',
2092         `get_diversion_state', `global_diverted_space'.
2093         (pending_output_line): New variable `was_centered'.
2094         Update constructor and all callers.
2095         (pending_output_line::output): Call `curenv->construct_format_state'.
2096         (environment::environment, environment::copy): Updated.
2097         (environment::output): Handle `was_centered'.
2098         (environment::add_char): Handle construct and diversion state.
2099         (environment::add_node): Handle construct state.
2100         (environment::newline): Handle `was_centered'.
2101         (environment::output_line): Updated.
2102         (environment::possibly_break_line): Updated.
2103         Update tag handling.
2104         (environment::add_html_tag): Replaced with...
2105         (environment::make_tag): New function.
2106         (environment::add_html_tag_tabs, environment::make_html_tag): Removed.
2107         (environment::dump_troff_state): New debugging function.
2108         (environment::construct_state, environment::construct_format_state,
2109         environment::construct_new_line_state): New functions.
2110         (environment::do_break): Updated.
2111         Handle `global_diverted_space'.
2112         (environment::handle_tag): Update tag handling.
2113         (point_size, fill, do_break_request): Don't call `add_html_tag'.
2114         (no_fill): Don't call `add_html_tag'.
2115         Set `suppress_next_eol'.
2116         (center, right_justify, line_length, indent, temporary_indent,
2117         set_tabs):
2118         Update tag handling.
2120         * src/roff/troff/input.cpp: Don't include `stringclass.h'.
2121         (input_iterator): New variables `is_diversion', `diversion_state'.
2122         Update constructors.
2123         (input_stack): New member functions `get_div_level',
2124         `get_diversion_state', `check_end_diversion'.
2125         New variables `div_level', `diversion_state'.  Initialize them.
2126         (suppress_push, global_diverted_space): New global variables.
2127         (input_stack::finish_get, input_stack::finish_peek,
2128         input_stack::remove_boundary, input_stack::end_file,
2129         input_stack::clear, input_stack::pop_macro): Call
2130         `check_end_diversion'.
2131         (input_stack::push): Handle `div_level' and `diversion_state'.
2132         (get_diversion_state): New function.
2133         (diverted_space_node::reread): Handle `global_diverted_space'.
2134         (macro::macro): Update constructors.
2135         (macro::is_diversion): New function.
2136         (macro::operator=): Set `is_a_diversion'.
2137         (string_iterator): New member function `is_diversion'.
2138         (string_iterator::string_iterator): Update constructors.
2139         (string_iterator::fill): Set `div_nest_level'.
2140         (macro_iterator): New member function `is_diversion'.
2141         (do_if_request): Handle `suppress_push'.
2142         (tag, taga): New functions.
2143         (init_input_requests): Add `tag' and `taga' requests.
2145 2004-10-05  Gaius Mulley  <gaius@glam.ac.uk>
2147         * src/include/font.h (font): New member function
2148         `get_image_generator'.
2149         New variables `unscaled_charwidths' and `image_generator'.
2151         * src/libs/libgroff/font.cpp (font::get_width): Always return the
2152         character's unscaled width if `font::unscaled_charwidths' is set.
2153         (font::get_image_generator): New function.
2154         (font::load_desc): Check the `unscaled_charwidths' and
2155         `image_generator' keywords.
2157         * src/libs/libgroff/fontfile.cpp: Initialize
2158         `font::unscaled_charwidths' and `font::image_generator'.
2160         * font/devhtml/DESC.proto: s/html/unscaled_charwidths/.
2162         * font/devhtml/Makefile.sub (DESC): Set `image_generator' keyword.
2164         * man/groff_font.man: Document `unscaled_charwidths' and
2165         `image_generator'.
2167         * src/preproc/html/pre-html.cpp: Include `device.h'.
2168         (image_gen): New global variable.
2169         (imageList::createPage): Use `image_gen'.
2170         (main): Use `image_generator' keyword.
2172 2004-10-04  Gaius Mulley  <gaius@glam.ac.uk>
2174         * tmac/html.tmac: Handle \[sqrtex].
2176 2004-10-04  Gaius Mulley  <gaius@glam.ac.uk>
2178         * src/include/printer.h (printer): New virtual method `round_width'.
2180         * src/devices/grodvi/dvi.cpp, src/devices/grolbp/lbp.cpp,
2181         src/devices/grolj4/lj4.cpp, src/devices/grops/ps.cpp,
2182         src/devices/grotty/tty.cpp (printer::round_width): New function
2183         member.
2185         * src/devices/grohtml/post-html.cpp (printer::round_width): New
2186         function member.
2187         (html_printer::set_numbered_char): Use it.
2189 2004-10-03  Gaius Mulley  <gaius@glam.ac.uk>
2191         * aclocal.m4 (GROFF_GHOSTSCRIPT_PATH): New macro.
2193         * configure.ac: Call GROFF_GHOSTSCRIPT_PATH.
2195         * configure: Regenerated.
2197         * Makefile.in (GHOSTSCRIPT): New variable.
2198         (MDEFINES): Add GHOSTSCRIPT.
2200 2004-10-03  Werner LEMBERG  <wl@gnu.org>
2202         * INSTALL.gen: Updated (taken from texinfo CVS).
2204 2004-09-28  Werner LEMBERG  <wl@gnu.org>
2206         * NEWS: Updated.
2208 2004-09-28  Heinz-Jürgen Oertel  <hj.oertel@surfeu.de>
2210         * tmac/groff_www.man: Revised and updated.
2212 2004-09-26  Werner LEMBERG  <wl@gnu.org>
2214         Fix \$@ and \$* to handle any number of arguments.
2216         * src/roff/troff/input.h (BEGIN_QUOTE, END_QUOTE): New special
2217         characters.
2219         * src/roff/troff/input.cpp (input_iterator::internal_level):
2220         Removed.
2221         (input_stack): New member functions `increase_level' and
2222         `decrease_level'.
2223         (input_stack::get_level): Don't use `internal_level'.
2224         (get_copy, token::next): Handle BEGIN_QUOTE and END_QUOTE.
2225         (end_quote_iterator): Completely removed.
2226         (interpolate_arg): Build string for \$@ and \$* which is then
2227         pushed onto the input stack.
2229 2004-09-23  Keith Marshall  <keith.d.marshall@ntlworld.com>
2231         * tmac/groff_ms.man, doc/groff.texinfo: Document changes from
2232         2004-09-19.
2234 2004-09-23  Werner LEMBERG  <wl@gnu.org>
2236         * tmac/an-old.tmac (ne): Using default scaling operator.
2238 2004-09-19  Keith Marshall  <keith.d.marshall@ntlworld.com>
2240         This change implements the following features:
2242         PORPHANS
2243           New numeric register: Defines number of lines following LP, PP,
2244           QP, IP or XP, which must be kept together, before any automatic
2245           page break.  If insufficient space remains on the current page, a
2246           page break is forced before the new paragraph begins.
2248         HORPHANS
2249           New numeric register: Sets number of lines of following paragraph
2250           which must be kept with a heading, defined by NH or SH, before any
2251           automatic page break.  If insufficient space remains on the
2252           current page, a page break is forced before the heading.
2254         GROWPS
2255           (Thanks to Joerg van den Hoff, for this idea).
2257           New numeric register: Sets the first level of heading (set with
2258           NH), which will keep the same point size as body text; e.g. if
2259           GROWPS is set to 3, .NH 3, .NH 4, ... will produce headings at the
2260           point size specified by \n[PS], but .NH 2 and .NH 1 will have
2261           progressively larger point sizes, determined by \n[PSINCR] (see
2262           below).
2264         PSINCR
2265           New numeric register: Sets the point size increment for each level
2266           of heading, (set with NH), below the threshold level set by
2267           GROWPS; e.g. if \n[PS] = 10, \n[GROWPS] = 3 and \n[PSINCR] = 2.0p,
2268           then .NH 1 will produce 14pt headings, .NH 2 will produce 12pt,
2269           and all other levels will remain at 10pt, (because \n[PS] = 10).
2271         SH
2272           Existing macro now accepts a numeric argument, to make heading
2273           size match that of NH with same argument value, when the
2274           GROWPS/PSINCR feature is enabled.
2276         SN-DOT
2277           New string, set by NH macro, replaces the existing (undocumented)
2278           use of SN, to represent the assigned section number.
2280         SN-NO-DOT
2281           New string, set by NH macro, represents the assigned section
2282           number, but omits the terminal period (periods at intermediate
2283           levels are retained).
2285         SN
2286           String set by NH macro, originally undocumented, now implemented
2287           as an alias for SN-DOT (which reproduces original behaviour).
2289         * tmac/s.tmac (PORPHANS): New register.
2290         (par*start): Use it.
2291         (HORPHANS, GROWPS, PSINCR): New registers.
2292         (SH-NO-TAG, @SH): Use them.
2293         (@NH): Improved.
2295 2004-09-19  Keith Marshall  <keith.d.marshall@ntlworld.com>
2297         * NEWS, doc/groff.texinfo, tmac/groff_ms.man: Document the deletion
2298         of `Ds' and `De' macros.
2300 2004-09-10  Werner LEMBERG  <wl@gnu.org>
2302         In tbl, handle \a as an interpreted leader character if in
2303         compatibility mode.
2305         * src/preproc/tbl/table.h (PREFIX, PREFIX_CHAR, LEADER,
2306         LEADER_CHAR): New macros.
2307         (compatible_flag): New declaration.
2309         * src/preproc/tbl/main.cpp (table_input): Add LEADER_1, LEADER_2,
2310         LEADER_3, and LEADER_4 to `state'.
2311         (table_input::get): Handle `\a'.
2313         * src/preproc/tbl/table.cpp (PREFIX): Removed.
2314         (LEADER_REG): New macro.
2315         (table::init_output): Define LEADER_REG string register if in
2316         compatibility mode.
2318         * src/preproc/tbl/tbl.man: Document it.
2320 2004-08-18  Werner LEMBERG  <wl@gnu.org>
2322         * tmac/doc.tmac (An): Fix error message.
2324 2004-08-06  Werner LEMBERG  <wl@gnu.org>
2326         * src/preproc/tbl/main.cpp (main): Call `fatal' not `error' if a
2327         file can't be opened.  UNIX tbl has the same behaviour.
2329 2004-08-05  Y T  <doarhop@hotmail.com>
2331         * src/preproc/grn/hdb.cpp (compatibility_flag): Add declaration.
2332         (DBRead): If in compatibility mode, take into account the text
2333         when computing figure boundaries.
2335 2004-08-05  Werner LEMBERG  <wl@gnu.org>
2337         * src/preproc/soelim/soelim.man: Improved.  Based on suggestions
2338         from Tadziu Hoffmann.
2340 2004-08-03  Werner LEMBERG  <wl@gnu.org>
2342         * doc/meref.me: Document `_M' register.
2344 2004-08-03  Martin Husemann  <martin@duskware.de>
2346         Make hpftodit work correctly on big-endian systems.
2348         * src/utils/hpftodit/hpftodit.cpp (File): New method
2349         `get_uint32(char *)'.
2350         (entry): New member `orig_value'.
2351         (read_tags): Use new method.
2352         (output_font_name, read_and_output_pcltypeface, dump_ascii):
2353         Updated.
2355 2004-08-01  Werner LEMBERG  <wl@gnu.org>
2357         * tmac/s.tmac: Undo change 2003-06-29.  The proper macro definitions
2358         are already in X11's `macros.t' file.
2360 2004-08-01  Jeff Conrad  <jeff_conrad@msn.com>
2362         * src/utils/hpftodit/hfptodit.cpp (output_font_name, dump_ascii):
2363         Fix casting bug.
2364         (read_and_output_pcltypeface): Handle strings with length <= 4.
2366 2004-07-27  Egil Kvaleberg  <egil@kvaleberg.no>
2368         * tmac/s.tmac (pg@top): Don't save `PO' register.
2369         (pg*end-col, pg*end-page): Directly use `PO' register.
2371 2004-07-27  Werner LEMBERG  <wl@gnu.org>
2373         * man/groff_tmac.man: Mention `trace' and `pic' macro packages.
2375         * src/preproc/refer/refer.cpp (output_references): Check for
2376         empty hash table.
2377         * src/preproc/refer/refer.man: Improve documentation of
2378         `bibliography' command.
2380 2004-07-26  Werner LEMBERG  <wl@gnu.org>
2382         Add requests `fcolor' and `gcolor'.
2384         * src/roff/troff/env.cpp (fill_color_change, glyph_color_change):
2385         New functions.
2386         (init_env_requests): Add `fcolor' and `gcolor'.
2388         * src/roff/troff/input.h: Export do_glyph_color and do_fill_color.
2390         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
2391         Document new requests.
2393 2004-07-24  Werner LEMBERG  <wl@gnu.org>
2395         Add support for fractional point sizes in ms macros.  A value for
2396         PS, VS, FPS, and FVS greater than or equal to 1000 is always divided
2397         by 1000.  For example, `.nr PS 10250' sets the font size to 10.25p.
2399         * tmac/s.tmac (@AU, @AI, par@load-init, par@init, par@reset, NL,
2400         PX): Handle fractional point sizes for PS, VS, FPS, and FVS.
2402         * tmac/groff_ms.man, docs/groff.texinfo, NEWS: Document it.
2404 2004-07-19  Werner LEMBERG  <wl@gnu.org>
2406         * src/preproc/pic/lex.cpp (for_input): Add member `from'.
2407         Update constructor.
2408         (do_for, for_input::get, for_input::peek): Handle negative `by'.
2409         * src/preproc/pic/pic.man, doc/pic.ms, NEWS: Document it.
2411 2004-07-08  Thomas Klausner  <wiz@netbsd.org>
2413         * tmac/doc-syms (doc-str-St--p1003.1-2004): New string.
2414         * tmac/groff_mdoc.man: Updated.
2416 2004-07-05  Werner LEMBERG  <wl@gnu.org>
2418         * doc/groff.texinfo: Further improve documentation of `hcode'.
2420 2004-07-04  Sang Dae Yu  <sdyu@bh.knu.ac.kr>
2422         Improve appearance of arrows in pic.
2424         * src/preproc/pic/object.cpp (draw_arrow): Make outline of filled
2425         arrow head thin.
2426         Use two line segments for drawing non-filled arrow head.
2427         (line_object::print, spline_object::print): Shorten line length to
2428         avoid arrow sticking.
2429         (arc_object::print): Take arrow direction into account.
2431 2004-07-03  Heinz-Jürgen Oertel  <hj.oertel@surfeu.de>
2433         * tmac/groff_www.man: Update documentation of .MPIMG.
2435 2004-07-03  Werner LEMBERG  <wl@gnu.org>
2437         * tmac/an-old.tmac (RI): Always start with font `R'.
2438         (RI, IR): Properly end with font `R'.
2440 2004-07-02  Paul Eggert  <eggert@cs.ucla.edu>
2442         * man/ditroff.man, man/groff_font.man, man/groff_out.man,
2443         src/devices/grohtml/grohtml.man, src/preproc/grn/grn.man,
2444         src/preproc/pic/pic.man, tmac/groff_man.man, tmac/groff_ms.man:
2445         Don't pass more than six arguments to .R, .I, .B, etc., for
2446         compatibility with traditional troff macros.
2448 2004-07-02  Werner LEMBERG  <wl@gnu.org>
2450         * src/roff/troff/input.h: s/COMPATIBLE_SAVE/PUSH_GROFF_MODE/.
2451         s/COMPATIBLE_RESTORE/POP_GROFFCOMP_MODE/.
2452         Update all users.
2453         (PUSH_COMP_MODE): New internal character constant.
2454         Update all users.
2456         * src/roff/troff/input.cpp (get_copy): Handle PUSH_GROFF_MODE,
2457         PUSH_COMP_MODE, and POP_GROFFCOMP_MODE.
2458         (token::next, macro::append): Handle PUSH_COMP_MODE.
2459         (decode_args): Add PUSH_GROFF_MODE or PUSH_COMP_MODE before and
2460         POP_GROFFCOMP after each of the decoded arguments to make them
2461         independent from the compatibility mode status.
2462         (comp_mode): Add `COMP_ENABLE'.
2463         (do_define_string, do_define_macro): Handle COMP_ENABLE.
2464         (define_string, append_string, define_macro, define_indirect_macro,
2465         append_macro, append_indirect_macro): Handle `compatible_flag'.
2466         (chop_macro, substring_request, asciify): Handle PUSH_COMP_MODE.
2468         * man/groff_diff.man, doc/groff.texinfo: Updated.
2470 2004-07-01  Werner LEMBERG  <wl@gnu.org>
2472         * doc/groff.texinfo: Improve documentation of `hcode'.
2473         Use @documentencoding and convert document to latin-1; to do that
2474         make latin characters active and assign proper macros (within a
2475         @tex...@end tex environment).
2476         * doc/Makefile.in (.texinfo.html, groff): Use --enable-encoding.
2477         * doc/Makefile.sub (groff): Ditto.
2479 2004-06-29  Werner LEMBERG  <wl@gnu.org>
2481         Implement two new conditional operators `F <name>' and `S <name>'
2482         which check whether <name> is a valid font or style, respectively.
2484         * src/libs/libgroff/font.cpp (text_file): Add `silent' member.
2485         (text_file::text_file): Updated.
2486         (text_file::error): Don't emit message if `silent' is set.
2487         (font::load_font): Add optional third argument (which is directly
2488         passed to `load'.
2489         (font::load): Add optional second argument to check the header of
2490         a font only, without emitting warning or error messages.
2491         * src/include/font.h (font): Updated.
2493         * src/roff/troff/input.cpp (do_if_request): Implement `S' and `F'
2494         conditionals.
2495         * src/roff/troff/node.cpp (mount_font_no_translate): Add optional
2496         fourth argument to check a font without mounting.
2497         (check_font, check_style): New functions.
2498         * src/roff/troff/node.h: Updated.
2500         * man/groff_diff.man, man/groff.man, NEWS, doc/groff.texinfo:
2501         Updated.
2503 2004-06-27  Werner LEMBERG  <wl@gnu.org>
2505         Implement new string-valued register `.sty' to return the current
2506         style name.
2508         * env.cpp (environment::get_style_name_string): New function.
2509         (init_env_requests): Add `.sty' register.
2510         * env.h (environment): Updated.
2511         * node.cpp (font_info): Make `get_style_name' a friend.
2512         (get_style_name): New function.
2513         * node.h: Updated.
2515         * man/groff_diff.man, man/groff.man, NEWS, doc/groff.texinfo:
2516         Updated.
2518 2004-06-15  Werner LEMBERG  <wl@gnu.org>
2520         * src/preproc/tbl/main.cpp (process_data) <GOT_RIGHT_BRACE>: Handle
2521         `nospaces' option.
2523 2004-06-10  Colin Percival  <colin.percival@wadham.ox.ac.uk>
2525         * doc/meintro.me, doc/meref.me: Don't use \*[td], \n[dy], \*[mo],
2526         and \n[mo] to avoid dependency on current date.
2528 2004-06-08  Werner LEMBERG  <wl@gnu.org>
2530         * Makefile.sub (install_data): New target.
2532 2004-06-04  Werner LEMBERG  <wl@gnu.org>
2534         * src/libs/libxutil/Makefile.sub (EXTRA_CFLAGS): Define.
2536 2004-06-03  Werner LEMBERG  <wl@gnu.org>
2538         * src/devices/xditview/Makefile.sub (EXTRA_LDFLAGS): Fix typo and
2539         order of libraries.
2540         (install_data): Add $(srcdir).
2542         * src/utils/xtotroff/Makefile.sub (EXTRA_LDFLAGS): Fix order of
2543         libraries.
2545 2004-06-02  Werner LEMBERG  <wl@gnu.org>
2547         * aclocal.m4 (GROFF_X11): s/have_no_x/groff_no_x/.
2548         Add X11 stuff to CFLAGS, LDFLAGS, and LIBS temporarily.
2549         Add test for Xmu library.
2550         (GROFF_APPRESDIR_OPTION, GROFF_APPRESDIR_CHECK,
2551         GROFF_APPRESDIR_DEFAULT): New macros.
2553         * configure.ac: Call GROFF_APPRESDIR_OPTION, GROFF_APPRESDIR_CHECK,
2554         and GROFF_APPRESDIR_DEFAULT.
2556         * configure: Regenerated.
2558         * Makefile.in (appresdir): New variable.
2559         (MDEFINES): Add appresdir.
2561         * src/devices/xditview/Makefile.sub (EXTRA_LDFLAGS): Add -Xmu and
2562         -Xt.
2563         (install_data, uninstall_sub): New targets to handle GXditview.ad.
2565         * src/utils/indxbib/Makefiles.ub (install_data): Depend on
2566         `$(srcdir)/eign', not `eign'.
2568         * MANIFEST, INSTALL, NEWS, PROBLEMS: Updated.
2570         * man/groff_out.man, man/roff.man, src/devices/grops/grops.man,
2571         src/devices/xditview/gxditview.man, src/roff/groff/groff.man:
2572         Protect (g)xditview with `\%' to avoid hyphenation.
2573         Other minor formatting.
2575 2004-06-01  Werner LEMBERG  <wl@gnu.org>
2577         Integrate gxditview into groff's standard directory hierarchy.
2579         * src/xditview/*: Moved to ...
2580         * src/devices/xditview/*: Here.
2581         Moved DviChar.h and XFontName.h to src/include.
2582         Moved DviChar.c and XFontName.c to new directory src/libs/libxutil.
2583         Split off `xmalloc' into new file src/libs/libxutil/xmalloc.c.
2584         Moved xtotroff.c to new directory src/utils/xtotroff.
2585         Provide proper Makefile.sub files (reusing the stuff from
2586         Imakefile.in).
2587         DESC renamed to DESC.in.
2588         Removed GXDitview-ad.h, INSTALL, Imakefile.in.
2589         Converted everything from K&R to ANSI C.
2590         Decorated with const where appropriate.
2591         Cast string constants with `String' and `char *' where appropriate.
2592         Made it compile with C++ (used as a C compiler).
2593         Removed other minor compiler warnings.
2595         * src/devices/xditview/device.c: Include config.h, string.h, and
2596         defs.h.
2597         Don't declare `exit', `strtok', `strchr', and `getenv'.
2598         (FONTPATH): Remove.
2600         * src/devices/xditview/font.c: Don't declare `XParseFontName' and
2601         `XFormatFontName'.
2603         * src/devices/xditview/xditview.c: Include config.h.
2604         Include stdio.h earlier.
2605         Protect declaration of `popen' and `pclose' with
2606         NEED_DECLARATION_POPEN and NEED_DECLARATION_PCLOSE.
2607         Replace `caddr_t' with `XtPointer'.
2608         (MakePromptFunc): New typedef.
2609         (DoPrint): Use RETSIGTYPE.
2610         (promptfunction): Change type to MakePromptFunc.
2611         (MakePrompt): Use MakePromptFunc for third argument.
2612         (xmalloc): Removed.
2614         * src/devices/xditview/ad2c: Add casts to `String'.
2616         * src/include/XFontName.h (XFontNameString): Don't use array
2617         notation.
2618         Add prototypes for `XParseFontName', `XFormatFontName',
2619         `XCompareFontName', and `XCopyFontName'.
2621         * src/include/Makefile.sub (HDRS): Add `DviChar.h' and
2622         `XFontName.h'.
2624         * src/utils/xtotroff/xtotroff.c: Include getopt.h.
2625         Don't declare `XParseFontName' and `XFormatFontName'.
2626         (xmalloc): Removed.
2627         (main): Remove `optind' and `optarg'.
2629         * Makefile.in (XDEVDIRS, XPROGDIRS, XLIBDIRS): New variables
2630         (to select programs which need X).
2631         Make XDEVIDIRS depend on `FORCE'.
2632         (X_CFLAGS, X_LIBS, X_EXTRA_LIBS, X_PRE_LIBS): New variables (for
2633         X support).
2634         (MDEFINES): Updated.
2635         (LIBDIRS): Use XLIBDIRS.
2636         (CPROGDIRS): Use XPROGDIRS.
2637         (DEVDIRS): Remove font directories for gxditview.
2638         (ALLDIRS, DISTDIRS): Add XDEVDIRS.
2639         (EXTRADIRS): Remove src/xditview.
2641         * Makefile.sub (DISCLEANFILES): Updated.
2643         * Makefile.comm (LIBXUTIL): New variable.
2644         (.cpp.o, .cpp.obj): Handle EXTRA_CCFLAGS.
2645         (.c.o, .c.obj, .y.o): Handle EXTRA_CFLAGS.
2647         * Makefile.cpg, Makefile.ccpg ($PROG): Handle EXTRA_LDFLAGS.
2649         * aclocal.m4 (GROFF_X11): New function.
2651         * configure.ac: Call GROFF_X11.
2652         Don't create src/xditview/Imakefile.
2653         Don't emit notice how to build gxditview.
2655         * configure: Regenerated.
2657         * test-groff.in (GROFF_BIN_PATH, XENVIRONMENT): Updated.
2659 2004-05-28  Akihiro Sagawa  <sagawa@sohgoh.net>
2661         * Makefile.in (CPPFLAGS): Define.
2662         (MDEFINES): Add CPPFLAGS.
2664 2004-05-27  Werner LEMBERG  <wl@gnu.org>
2666         * arch/misc/Makefile.sub (shdeps.sed): Use $(srcdir).
2668 2004-05-26  Niklas Edmundsson  <nikke@acc.umu.se>
2670         Fix problems with `friend name injections'.
2672         * src/preproc/eqn/box.h (make_mark_box, make_lineup_box,
2673         make_script_box), src/roff/troff/div.h (end_diversions),
2674         src/roff/troff/env.h (title), input.cpp (process_input_stack): Undo
2675         change 2004-04-08.
2677 2004-05-25  Bernd Warken  <bwarken@mayn.de>
2679         * src/preproc/pic/pic.man, doc/pic.ms: Add example for `command'.
2681 2004-05-25  Werner LEMBERG  <wl@gnu.org>
2683         * src/libs/libgroff/cset.cpp, src/libs/libgroff/lf.cpp,
2684         src/libs/libgroff/color.cpp: Include lib.h.
2686 2004-05-25  Paul Eggert  <eggert@cs.ucla.edu>
2688         * PROBLEMS: Update documentation for problems with Sun C++ 5.0
2689         through Forte 6u1, and for how to get GNU make on Solaris.
2691 2004-05-24  Werner LEMBERG  <wl@gnu.org>
2693         * PROBLEMS: Document problems with gcc 3.4.0 on Sun.  Reported
2694         by Paul Eggert.
2696 2004-05-15  Keith Marshall  <keith.d.marshall@ntlworld.com>
2698         * arch/misc/Makefile.sub (shdeps.sed): Don't use `$<' in explicit
2699         rule.
2701 2004-05-14  Werner LEMBERG  <wl@gnu.org>
2703         * REVISION: Set to 2.
2705         * aclocal.m4 (GROFF_STDINT_H): Removed.
2706         (GROFF_INTTYPES_H): Define HAVE_CC_INTTYPES_H.
2708         * configure.ac: Updated.
2709         * configure, src/include/config.hin: Regenerated.
2711         * src/libs/libgroff/tmpname.cpp: Don't include stdint.h but
2712         inttypes.h conditionally.
2714 2004-05-13  Werner LEMBERG  <wl@gnu.org>
2716 Version 1.19.1 released
2717 =======================
2719 2004-05-10  Stephen Gildea  <http://www.gildea.com/stephen>
2721         * src/preproc/refer/label.y (same_author_last_name,
2722         same_author_name): Handle empty sort keys.
2724 2004-05-10  Werner LEMBERG  <wl@gnu.org>
2726         * NEWS, README, TODO, PROJECTS, PROBLEMS, MANIFEST, doc/webpage.ms,
2727         tmac/TODO: Updated.
2729         * tmac/doc-syms (doc-str-Lb-libposix, doc-str-Lb-libpthread,
2730         doc-str-Lb-librt): Reset font.
2731         (Lb): Rename `doc-str-Lb' to `doc-str-Lb1'.
2732         Provide `doc-str-Lb' to reset font.
2733         * tmac/groff_mdoc.man: Updated.
2735 2004-05-08  Jan Schaumann  <jschauma@netmeister.org>
2737         * src/preproc/html/pre-html.cpp (make_message): Make it work for
2738         snprintf versions which don't conform to ANSI C 99 (this is,
2739         counting the string's trailing null byte in the return value).
2741 2004-05-07  Keith Marshall  <keith.d.marshall@ntlworld.com>
2743         * src/roff/troff/node.cpp (suppress_node::tprint): Don't expect
2744         that all implementations of sprintf handle null pointers correctly.
2746 2004-05-04  Werner LEMBERG  <wl@gnu.org>
2748         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
2749         Document `.U' register.
2751         * src/roff/troff/env.cpp (environment::mark_last_line)
2752         [WIDOW_CONTROL]: Fix scope of `p' for new C++ compilers.
2754 2004-05-04  Larry Kollar  <kollar@alltel.net>
2756         New read-only register `.U'; it returns 1 in safer mode and 0
2757         otherwise.
2759         * src/roff/troff/input.cpp (init_input_requests): Implement `.U'
2760         register.
2762 2004-05-03  Werner LEMBERG  <wl@gnu.org>
2764         * install-sh, mkinstalldirs: New versions; taken from texinfo CVS.
2766 2004-04-17  Werner LEMBERG  <wl@gnu.org>
2768         * src/include/font.h (font): Use `int' for ch_index.
2769         * src/libs/libgroff/font.cpp (font::alloc_ch_index,
2770         font::compact): Updated.
2772         * src/roff/groff/pipeline.c (run_pipeline) [_WIN32]: Fix compiler
2773         warnings.
2775         * src/roff/troff/div.cpp (begin_page), src/roff/troff/env.cpp
2776         (hyphen_word): Fix compiler warnings.
2777         * src/roff/troff/input.cpp (get_char_for_escape_name): Return
2778         `char'.
2779         Update all callers.
2780         (get_delim_number, get_line_arg): Change second argument type to
2781         `unsigned char'.
2782         (macro_header::copy, token::next, do_define_string,
2783         do_define_character, substring_request, asciify_macro,
2784         unformat_macro, read_size, non_interpreted_node::interpret,
2785         while_request, main: Fix compiler warnings.
2786         (read_color_draw_node): Initialize `col'.
2788         * src/preproc/tbl/table.cpp (horizontal_span, table_entry): Make
2789         `start_col' and `end_col' of type `int'.
2790         (vertical_rule): Make `col' of type `int'.
2792         * src/preproc/grn/hdb.cpp (DBRead): Protect call to getc with check
2793         for EOF.
2795         * src/preproc/refer/label.y (uppercase_array, lowercase_array):
2796         New arrays.
2797         (format_serial): Use them to remove dependency on ASCII.
2799         * src/devices/grops/ps.cpp (ps_printer::define_encoding): Fix
2800         compiler warning.
2801         * src/devices/grops/psrm.cpp (resource_manager::supply_resource):
2802         Ditto.
2804         * src/devices/grotty/tty.cpp (tty_font::load_tty_font): Fix
2805         compiler warnings.
2806         (glyph): Change type of `hpos' to `int'.
2808         * src/devices/lbp/lbp.cpp (strsep): Removed.  Unused.
2809         * src/devices/lbp/lbp.h (splinerel): Fix compiler warnings.
2811         * src/utils/tfmtodit.cpp (gf::load): Fix compiler warnings.
2813         * src/utils/pfbtops/pfbtops.c (get_text): Fix compiler warning.
2815 2004-04-16  Werner LEMBERG  <wl@gnu.org>
2817         * src/devices/grolbp/lbp.h, src/preproc/grn/gprint.h,
2818         src/preproc/grn/hgraph.cpp, src/preproc/grn/hpoint.cpp,
2819         src/preproc/html/pushback.cpp, src/preproc/html/pushback.h: Use
2820         `double' instead of `float' everywhere.
2821         * src/preproc/grn/main.cpp: Use `double' instead of `float'
2822         everywhere.
2823         (main): Add return value.
2824         * src/preproc/grn/hdb.cpp: Use `double' instead of `float'
2825         everywhere.
2826         Update all user functions.
2828         * src/include/search.h, src/include/ptable.h, src/include/printer.h,
2829         src/preproc/eqn/box.h, src/preproc/pic/object.h,
2830         src/preproc/refer/refer.h, src/preproc/tbl/table.h,
2831         src/preproc/tbl/table.cpp, src/roff/troff/env.h,
2832         src/roff/troff/div.h, src/roff/troff/token.h, src/roff/troff/node.h,
2833         src/roff/troff/input.cpp, src/roff/troff/request.h,
2834         src/roff/troff/node.cpp: Don't mix `struct' and `class' in forward
2835         declarations.
2837         * src/utils/indxbib/signal.c: Include stdlib.h.
2839 2004-04-14  Keith Marshall  <keith.d.marshall@ntlworld.com>
2841         * tmac/s.tmac (@init, RP): Allow initialization of the PO register
2842         before the first page.
2844 2004-04-14  Thomas Klausner  <wiz@netbsd.org>
2846         * tmac/doc-common (doc-volume-as-*): Use lowercase names.
2847         (doc-operating-system-*): Updated.
2848         * tmac/doc-syms (doc-str-St-*): Various small fixes.
2849         (doc-str-Lb-*): Add more library names.
2851 2004-04-10  Art Haas  <ahaas@airmail.net>
2853         * src/utils/hpftodit/hpuni.cpp (hp_msl_to_unicode_list): Don't
2854         use anonymous type.
2856 2004-04-09  Art Haas  <ahaas@airmail.net>
2858         * src/utils/tfmtodit.cpp (lig_chars): Don't use anonymous type.
2860 2004-04-09  Keith Marshall  <keith.d.marshall@ntlworld.com>
2862         * arch/misc/shdeps.sh: Generate better comment for sed script.
2864 2004-04-08  Art Haas  <ahaas@airmail.net>
2866         * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list),
2867         src/libs/libgroff/uniglyph.cpp (unicode_to_glyph_list),
2868         src/libs/libgroff/uniuni.cpp (unicode_decompose_list),
2869         src/preproc/eqn/box.cpp (param_table), src/preproc/grn/hgraph.cpp
2870         (polyfill), src/preproc/grn/main.cpp (polyfill),
2871         src/preproc/refer/command.cpp (command_table),
2872         src/utils/tfmtodit.cpp (lig_table): Don't use anonymous types (which
2873         gcc 3.5 doesn't like).
2875 2004-04-08  Werner LEMBERG  <wl@gnu.org>
2877         Removing many compiler warnings.  groff should now compile with
2878         a C++ compiler used for C files also.  [Simple variable renamings
2879         to avoid shadowing aren't logged in detail.]
2881         * src/devices/grodvi/dvi.cpp: Some local variable renamings.
2882         (draw_dvi_printer::draw) ['c']: Enclose in block.
2884         * src/devices/grohtml/post-html.cpp: Some local variable renamings.
2885         (page::add_line): Fix typos.
2886         * src/devices/grohtml/html-text.cpp: Some local variable renamings.
2888         * src/devices/grolbp/lbp.cpp: Don't define _GNU_SOURCE.
2889         Some local variable renamings.
2890         * src/devices/grolbp/lbp.h: Some local variable renamings.
2892         * src/devices/grolj4/lj4.cpp, src/devices/grotty/tty.cpp: Some local
2893         variable renamings.
2895         * src/libs/libbib/index.cpp (index_search_item_iterator::get_tag):
2896         Remove redundant local variable declaration.
2897         * src/libs/libbib/map.c (mapread, unmap): Don't use K&R style.
2898         Don't use `caddr_t' but `void *'.
2899         Enclose functions with `extern "C"' for C++.
2901         * src/libs/libdriver/input.cpp (remember_filename,
2902         remember_source_filename): Use cast for string constant.
2904         * src/libs/libgroff/font.cpp, src/libs/libgroff/fontfile.cpp,
2905         src/libs/libgroff/nametoindex.cpp, src/libs/libgroff/paper.cpp,
2906         src/libs/libgroff/geometry.cpp: Some local variable renamings.
2907         * src/libs/libgroff/iftoa.c, src/libs/libgroff/itoa.c: Don't use K&R
2908         style.
2909         Enclose functions with `extern "C"' for C++.
2910         * src/libs/libgroff/quotearg.c (TRUE,FALSE): Define as macros.
2911         (needs_quoting): Return `int'.
2912         (quote_arg): Add proper casts to malloc and realloc.
2913         * src/libs/libgroff/spawnvp.c: Compile code only for MS-DOS and
2914         various MS Windows environments.
2915         (spawnvp_wrapper): Add proper cast to malloc.
2917         * src/preproc/eqn/box.h: Remove redundant declarations of
2918         `make_script_box', `make_mark_box' and `make_lineup_box'.
2919         * src/preproc/eqn/eqn.y: Remove redundant declaration of `strsave'.
2920         * src/preproc/eqn/script.cpp, src/preproc/eqn/pile.cpp: Some local
2921         variable renamings.
2923         * src/preproc/grn/hpoint.cpp: Some local variable renamings.
2924         * src/preproc/grn/hgraph.cpp: Some local variable renamings.
2925         (dx, dy): Renamed functions to...
2926         (deltax, deltay): This.
2927         * src/preproc/grn/main.cpp: Some local variable renamings.
2928         (deffont): Add `const'.
2929         (initpic, conv): Use cast for string constant.
2931         * src/preproc/html/pre-html.cpp: Some local variable renamings.
2932         (makeFileName, alterDeviceTo, addZ): Use cast for string constant.
2933         (char_buffer::run_output_filter): Second argument is unused.
2934         * src/preproc/html/pushback.cpp: Some local variable renamings.
2936         * src/preproc/pic/pic.y: Remove redundant declaration of `do_copy'.
2937         * src/preproc/pic/object.cpp: Some local variable renamings.
2939         * src/preproc/refer/label.y (lookup_label): Remove redundant
2940         declaration of local variable.
2942         * src/preproc/soelim.cpp: Remove redundant declaration of
2943         `interpret_lf_args'.
2945         * src/preproc/tbl/main.cpp: Some local variable renamings.
2947         * src/roff/groff/groff.cpp (main): Use cast for string constant.
2948         * src/roff/groff/pipeline.c: Enclose declarations of `error',
2949         `c_fatal', and `i_to_a' with `extern "C"' for C++.
2950         Don't use C++-style comments.
2952         * src/roff/troff/env.h: Remove redundant declaration of `title'.
2953         * src/roff/troff/node.h, src/roff/troff/env.cpp,
2954         src/roff/troff/div.cpp, src/roff/troff/node.cpp: Some local variable
2955         renamings.
2956         * src/roff/troff/div.h: Remove redundant declaration of
2957         `end_diversions'.
2958         * src/roff/troff/troff.h: Remove redundant declaration of
2959         `cleanup_and_exit'
2960         * src/roff/troff/input.cpp: Remove redundant declaration of
2961         `handle_first_page_transition' and `process_input_stack'.
2963         * src/utils/hpftodit.cpp: Some local variable renamings.
2965         * src/utils/indxbib/signal.c: Enclose functions with `extern "C"'
2966         for C++.
2967         Don't define RETSIGTYPE.
2968         * src/utils/indxbib/indxbib.cpp: Some local variable renamings.
2970         * src/utils/pfbtops/pfbtops.cpp: Don't use K&R style.
2971         (error): Use `const' in argument.
2972         (main): Remove redundant declaration of `optind'.
2973         Move declaration of `Version_string' to top-level.
2975         * PROBLEMS: Document difficulties compiling signal.c if a C++
2976         compiler is used for C.
2978 2004-04-07  Werner LEMBERG  <wl@gnu.org>
2980         * Makefile.sub (DISTCLEANFILES): Add `test-groff'.
2982 2004-04-06  Keith Marshall  <keith.d.marshall@ntlworld.com>
2984         Make scripts like nroff.sh and neqn.sh portable across various
2985         (Unix-like) shell implementations from Cygwin, MSYS, etc., which use
2986         non-POSIX path separators.  The idea is to extend those scripts to
2987         decide at run-time (of the script) which path separator to use.
2989         * arch/misc/Makefile.sub: New file.
2990         * arch/misc/shdeps.sh: New file, generating OS dependency fixups.
2991         This script handles @GROFF_BIN_PATH_SETUP@, replacing it with
2992         a proper definition of the variable `GROFF_RUNTIME'.
2994         * Makefile.in (SH_DEPS_SED_SCRIPT): New variable.
2995         (MDEFINES): Add SH_DEPS_SED_SCRIPT.
2996         (PROGDEPDIRS): New variable.
2997         `FORCE' it.
2998         (PROGDIRS): Add PROGDEPDIRS.
3000         * src/preproc/eqn/Makefile.sub (neqn): Call SH_DEPS_SED_SCRIPT.
3001         Don't substitute @SEP@ and @BINDIR@.
3002         * src/preproc/eqn/neqn.sh: Use @GROFF_BIN_PATH_SETUP@.
3003         (PATH): Use GROFF_RUNTIME.
3005         * src/roff/nroff/Makefile.sub (nroff): Call SH_DEPS_SED_SCRIPT.
3006         Don't substitute @SEP@ and @BINDIR@.
3007         * src/roff/nroff/nroff.sh: Use @GROFF_BIN_PATH_SETUP@.
3008         (PATH): Use GROFF_RUNTIME.
3010 2004-04-05  Keith Marshall  <keith.d.marshall@ntlworld.com>
3012         * src/roff/nroff/nroff.sh: Implement work-around for sh.exe from
3013         Cygwin which doesn't handle stderr correctly.
3015 2004-03-08  Werner LEMBERG  <wl@gnu.org>
3017         * Makefile.comm (install_dev, uninstall_dev): Protect `for' loops
3018         against empty argument.  Problem reported by <cgd@broadcom.com>.
3020 2004-03-05  Keith Marshall  <keith.d.marshall@ntlworld.com>
3022         * Makefile.in (SEP): Replaced with...
3023         (RT_SEP, SH_SEP): Separators for the target platform's native path
3024         separator and the build environment, respectively.
3025         (fontpath, tmacpath): Use RT_SEP.
3026         (MDEFINES): Updated.
3028         * contrib/mom/Makefile.sub (GROFF_BIN_PATH): Use SH_SEP.
3029         * doc/Makefile.sub (GROFF_BIN_PATH): Use SH_SEP.
3030         * src/preproc/eqn/Makefile.sub (neqn): Use SH_SEP.
3031         * src/roff/nroff/Makefile.sub (nroff): Use SH_SEP.
3033 2004-03-05  Werner LEMBERG  <wl@gnu.org>
3035         * fonts/devlj4/Makefile.sub (LJ4RES): Set to 1200.  This helps to
3036         reduce alignment problems with newer printers which use built-in
3037         TrueType fonts (instead of the older Intellifonts).  The ideal
3038         solution is to provide a second set of groff metric files, but this
3039         is extremely time-consuming to produce, given that HP's metric
3040         files are very rudimentary.
3042 2004-03-01  Werner LEMBERG  <wl@gnu.org>
3044         * src/devices/grolj4/lj4.cpp (main): Fix argument of getopt_long.
3045         s/operand/argument/ in error message.
3047 2004-03-01  Keith Marshall  <keith.d.marshall@ntlworld.com>
3049         * src/roff/groff/groff.cpp (main): Don't allow option -o if -Thtml
3050         is in use.
3052 2004-03-01  Antti Kantee  <pooka@netbsd.org>
3054         * tmac/s.tmac (XE): Fix error message.
3056 2004-02-27  Jeff Conrad  <jeff_conrad@msn.com>
3058         * src/include/nonposix.h (write, dup, dup2, close) [_MSC_VER]:
3059         New macros.
3061         * src/roff/groff/pipeline.c: Declare strcasecmp.
3062         (run_pipeline) [_WIN32]: Use function name variants which don't
3063         start with `_'.
3064         Fix stream handling.
3066 2004-02-27  Keith Marshall  <keith.d.marshall@ntlworld.com>
3068         * src/include/nonposix.h: Fix declaration of `system_shell_name'.
3069         Declare `spawnvp_wrapper' and macro definitions of spawnvp only
3070         for platforms which use the native Win32 runtime libraries.
3071         (FLUSH_INPUT_PIPE) [_UWIN]: Provide non-empty version.
3073         * src/libs/libgroff/quotearg.c (QUOTE_ARG_MALLOC_ERROR,
3074         QUOTE_ARG_REALLOC_ERROR): Fix string.
3076         * src/preproc/html/pre-html.cpp: Remove declaration of
3077         `spawnvp_wrapper'.
3078         Don't use __MINGW32__.
3079         s/DEBUG_FILE/DEBUG_FILE_DIR/.
3080         (DEBUG_TEXT, DEBUG_NAME, DEBUG_FILE) [DEBUGGING]: New macros.
3081         (OUTPUT_STREAM, PS_OUTPUT_STREAM, REGION_OUTPUT_STREAM): New macros.
3082         (char_buffer::run_output_filter) [MAY_FORK_CHILD_PROCESS]: Fix
3083         calls to `set_redirection' and `WAIT'.
3084         [MAY_SPAWN_ASYNCHRONOUS_CHILD]: Remove unused variable `i' and `j'.
3085         Fix calls to `set_redirection' and `save_and_redirect'.
3086         (char_buffer::do_html, char_buffer::do_image) [DEBUGGING]: Fix calls
3087         to `set_redirection' and `save_and_redirect'.
3088         (usage): Fix message.
3089         (makeTempFiles, main): Use `DEBUG_FILE'.
3091 2004-02-21  Werner LEMBERG  <wl@gnu.org>
3093         * src/roff/troff/troff.h (WARN_TOTAL): Fix value.
3095 2004-02-21  Keith Marshall  <keith.d.marshall@ntlworld.com>
3097         * src/libs/libgroff/quotearg.c: New file, providing proper argument
3098         quoting for MSVC's spawn* and exec* functions.
3099         * src/libs/libgroff/spawnvp.c: New file, providing a wrapper around
3100         spawnvp with proper quoting for MSVC.
3102         * src/libs/libgroff/assert.cpp (program_name),
3103         src/libs/libgroff/new.cpp (program_name): Declare as `extern "C"'.
3104         * src/libs/libgroff/Makefile.sub (OBJS, CSRCS): Updated.
3106         * src/roff/troff/input.cpp (program_name): Declare as `extern "C"'.
3108         * src/include/error.h (program_name): Declare as `extern "C"'.
3109         * src/include/nonposix.h [__MSDOS__ ...]: Handle spawnvp.
3111 2004-02-21  Jeff Conrad  <jeff_conrad@msn.com>
3113         * src/preproc/html/pre-html.cpp [__CYGWIN__ ...]: Declare
3114         spawnvp_wrapper.
3115         [MAY_SPAWN_ASYNCHRONOUS_CHILD]: Declare i and j.
3117 2004-02-20  Jeff Conrad  <jeff_conrad@msn.com>
3119         * src/roff/groff/pipeline.c (cmd) [__MSDOS__ || ...]: New global
3120         variable.
3121         (sbasename) [__MSDOS__ || ...]: New function.
3122         (system_shell_name) [__MSDOS__ || ...]: Use a different, more
3123         generic algorithm.
3124         (system_shell_dash_c, is_system_shell) [__MSDOS__ || ...]: Updated.
3125         (run_pipeline) [_WIN32]: Use _XXX variants for some macros instead
3126         of XXX.
3127         Use STDOUT_FILENO instead of hardcoded file handle.
3128         (signal_catcher) [__MSDOS__]: Moved to non-_WIN32 section.
3130 2004-02-19  Werner LEMBERG  <wl@gnu.org>
3132         * src/roff/troff/div.cpp: Include nonposix.h after troff.h to
3133         avoid warnings w.r.t. redefinition of P_tmpdir for some compilers.
3135 2004-02-18  Werner LEMBERG  <wl@gnu.org>
3137         * font/devlj4/Makefile.sub (DEVFILES): Updated to contain all
3138         new font and mapping files.
3140 2004-02-18  Jeff Conrad  <jeff_conrad@msn.com>
3141             Keith Marshall  <keith.d.marshall@ntlworld.com>
3143         * src/include/nonposix.h (FLUSH_INPUT_PIPE): New macro to empty
3144         an input pipe.  This is needed for the MSVC compiler to make troff's
3145         `-o' option work.
3147         * src/roff/troff/div.cpp: Include nonposix.h.
3148         (cleanup_and_exit): Call FLUSH_INPUT_PIPE.
3150 2004-02-17  Werner LEMBERG  <wl@gnu.org>
3152         * font/devlj4/generate/special.awk: New script.
3153         * font/devlj4/generate/Makefile (S): Use special.awk.
3154         * font/devlj4/*: Regenerated, including the following new files:
3155         Arial (AR, AB, AI, ABI), Times New Roman (TNRR, TNRB, TNRI, TNRBI),
3156         MS Symbol (SYMBOL), Wingdings (WINGDINGS).
3157         * NEWS: Document new lj4 fonts and revised hpftodit.
3159 2004-02-17  Paco Andrés Verdú  <pandres@dragonet.es>
3161         * src/devices/grolbp/lbp.h (vmdvarc): Fix formatting string.
3163 2004-01-25  Werner LEMBERG  <wl@gnu.org>
3165         * src/libs/libgroff/progname.cpp: Replaced with...
3166         * src/libs/libgroff/progname.c: New file.
3167         * src/libs/libgroff/Makefile.sub: Updated accordingly.
3169 2004-01-17  Werner LEMBERG  <wl@gnu.org>
3171         * font/devlj4/generate/Makefile (SYMBOL): Use 9nb28703.tfm.
3173 2004-01-16  Jeff Conrad  <jeff_conrad@msn.com>
3175         * font/devlj4/generate/wingdings.map,
3176         font/devlj4/generate/symbol.map: Include unnamed glyphs.
3177         Use groff glyph names where possible.
3178         * src/devices/grolj4/lj4_font.man: Minor updates.
3180 2004-01-13  Werner LEMBERG  <wl@gnu.org>
3182         * tmac/www.tmac (DC): Handle TTY devices.
3184         * doc/webpage.ms: Document viewCVS from ffii.org.
3185         * NEWS, README: Updated.
3187         * src/roff/groff/groff.man: Mention lj4_font man page.
3189         * font/devlj4/generate/Makefile (SYMBOLMAP, WINGDINGSMAP): New
3190         variables.
3191         (FONTS): Add SYMBOL and WINGDINGS.
3192         (SYMBOL, WINGDINGS): New targets.
3194 2004-01-13  Jeff Conrad  <jeff_conrad@msn.com>
3196         * src/devices/grolj4/lj4_font.man: New man page.
3197         * src/devices/grolj4/Makefile.sub (MAN5): New variable.
3198         * src/devices/grolj4.man: Mention lj4_font man page.
3200         * src/utils/hpftodit/hpftodit.cpp (read_map): Handle line comments.
3201         * src/utils/hpftodit/hpftodit.man: Document it.
3202         (CW): New macro.
3203         Remove details about fonts (which are now in lj4_font.man).
3205         * font/devlj4/generate/symbol.map,
3206         font/devlj4/generate/wingdings.map: New files.
3208 2004-01-12  Werner LEMBERG  <wl@gnu.org>
3210         * README: Mention ffii's viewcvs access.
3212 2004-01-09  Werner LEMBERG  <wl@gnu.org>
3214         * font/devlj4/generate/special.map: Map MSL 228 to U+221F.
3216 2004-01-09  Jeff Conrad  <jeff_conrad@msn.com>
3218         Revert most of the change from 2004-01-03 to better control used
3219         symbol sets.
3221         * src/utils/hpftodit/hpftodit.cpp (symbol_set): New structure.
3222         (text_symbol_sets, special_symbol_sets): New arrays.
3223         (symbol_set_table): New global variable.
3224         (read_symbol_sets): Use search order given in the text_symbol_sets
3225         and special_symbol_sets arrays.  If command line flag -a is not
3226         given, search both arrays.
3227         (output_charset): Require x_height_tag only for command line flag -i.
3229 2004-01-06  Werner LEMBERG  <wl@gnu.org>
3231         Implement string-valued registers \n[.m] and \n[.M] to return the
3232         name of the current drawing and background color, respectively.
3234         * src/roff/troff/symbol.h: Moved to...
3235         * src/include/symbol.h: Here.
3236         Small fixes to make it work outside of the `troff' directory.
3237         * src/roff/troff/symbol.cpp: Moved to...
3238         * src/libs/libgroff/symbol.cpp: Here.
3239         Small fixes to make it work outside of the `troff' directory.
3241         * src/include/Makefile.sub (HDRS), src/libs/libgroff/Makefile.sub
3242         (OBJS, CCSRCS), src/roff/troff/Makefile.sub (OBJS, CCSRCS, HDRS):
3243         Updated.
3245         * src/include/color.h: Include symbol.h.
3246         (color): Add new field `nm'.
3247         * src/libs/libgroff/color.cpp (color::color): Updated.
3249         * src/roff/troff/dictionary.cpp, src/roff/troff/div.cpp,
3250         src/roff/troff/node.cpp, src/roff/troff/number.cpp,
3251         src/roff/troff/reg.cpp: Don't include symbol.h.
3253         * src/roff/troff/env.cpp: Don't include symbol.h.
3254         (environment::get_glyph_color_string,
3255         environment_get_fill_color_string): New member functions.
3256         (init_env_requests): Handle `.m' and `.M' registers.
3257         * src/roff/troff/input.cpp: Don't include symbol.h.
3258         (default_symbol): Moved to symbol.cpp/symbol.h.
3259         (do_glyph_color, do_fill_color, define_color): Pass symbol name
3260         to color constructor.
3261         * src/roff/troff/env.h: Updated.
3263         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
3264         Document new registers.
3266 2004-01-05  Werner LEMBERG  <wl@gnu.org>
3268         * src/roff/troff/node.cpp (space_node::get_breakpoints,
3269         space_node::nbreaks): Protect against zero `next' field.
3271 2004-01-03  Jeff Conrad  <jeff_conrad@msn.com>
3273         In hpftodit, use the symbol sets offered in the TFM.
3275         * src/utils/hpftodit/hpftodit.cpp (NO_GLYPH): New constant.
3276         (symbol_set, text_symbol_sets, special_symbol_sets,
3277         symbol_set_table): Removed.
3278         (get_printcode): Removed.
3279         (read_symbol_sets): Initialize `symbol_set' field with
3280         `NO_SYMBOL_SET'.
3281         Simplify code to just use the `kind' value.
3282         (output_charset): Improve output formatting.
3283         (dump_symbols): Simplified.
3285 2004-01-02  Werner LEMBERG  <wl@gnu.org>
3287         * font/devlj4/generate/text.map: Add more MSL numbers.
3289 2004-01-02  Jeff Conrad  <jeff_conrad@msn.com>
3291         * src/utils/hpftodit/hpftodit.cpp (is_decomposed): New macro.
3292         (text_symbol_sets): Add more symbol sets.
3293         (debug_flag): New static variable (moved from `main').
3294         (get_printcode, show_symset): New functions.
3295         (main): Remove `debug_flag'.
3296         (output_charset): Use `show_symset'.
3297         (dump_symbols):  Use `show_symset'.
3298         Print symsets for all glyphs.
3299         (read_map): Actually call `unicode_to_ucode_make' but this time
3300         correctly.
3302 2004-01-01  Werner LEMBERG  <wl@gnu.org>
3304         * font/devlj4/generate/text.map, font/devlj4/generate/special.map:
3305         Fix placement of comments.
3307 2004-01-01  Jeff Conrad  <jeff_conrad@msn.com>
3309         * src/utils/hpftodit/hpftodit.cpp (main): Read map file also if
3310         option `-d' is given.
3311         (output_charset): Improve warning messages to give more information.
3312         (dump_symbols): Make information more precise.
3313         (usage): Updated.
3314         (read_map): Don't call unicode_to_ucode_name; the glyph names must
3315         appear as-is and shouldn't be decomposed.
3317 2003-12-31  Werner LEMBERG  <wl@gnu.org>
3319         * src/utils/hpftodit/hpftodit.cpp (dump_tags): Handle posture_tag.
3320         * font/devlj4/generate/Makefile (IFLAG): Updated to new units.
3321         (FONTS): Add TrueType font families Arial and Times New Roman.
3322         (TNRR, TNRB, TNRI, TNRBI, AR, AB, AI, ABI): New targets.
3323         * font/devlj4/generate/text.map: Fix Unicode values of `fi' and
3324         `fl'.
3326 2003-12-31  Jeff Conrad  <jeff_conrad@msn.com>
3328         * test-groff.in (SEP): Quote value.
3329         * src/roff/troff/node.cpp (suppress_node::tprint): Change type of
3330         `tem' to `char*' to avoid deallocation of a pointer to a constant
3331         object which some compilers don't like.
3333 2003-12-31  Werner LEMBERG  <wl@gnu.org>
3335         * font/devlj4/generate (text.map, special.map): Rewritten to work
3336         with the new hpftodit version.
3338 2003-12-30  Jeff Conrad  <jeff_conrad@msn.com>
3340         * src/utils/hpftodit/hpftodit.cpp (output_charset): Emit HP symbol
3341         set and 8bit character code for all glyphs also.
3343 2003-12-30  Werner LEMBERG  <wl@gnu.org>
3345         * src/libs/libgroff/strcasecmp.c: Updated from gnulib.
3347 2003-12-29  Werner LEMBERG  <wl@gnu.org>
3349         More fixes for MSVC compiler.
3351         * doc/Makefile.sub, contrib/mom/Makefile.sub (GROFF_BIN_PATH): Use
3352         $(SEP).
3354         * src/include/nonposix.h (STDIN_FILENO, STDOUT_FILENO,
3355         STDERR_FILENO) [_MSC_VER]: Define conditionally.
3356         (getpid) [_MSC_VER]: Remove.
3357         Include direct.h and process.h conditionally.
3359         * src/roff/troff/node.cpp (suppress_node::tprint): Don't use
3360         parentheses for a_delete.
3362         * src/utils/lookbib/lookbib.cpp: Include nonposix.h.
3364         * test-groff: Replaced with...
3365         * test-groff.in: This new template to handle path separator
3366         properly.
3368         * configure.ac: Check for direct.h and process.h.
3369         Generate test-groff script.
3370         * configure, src/include/config.hin: Regenerated.
3372 2003-12-28  Werner LEMBERG  <wl@gnu.org>
3374         Add integral extension glyph.
3375         Add new option `-x' to afmtodit to suppress use of built-in AGL.
3377         * font/devhtml/R.proto, font/devutf8/R.proto: Add `u23AE'.
3379         * font/devps/generate/textmap: Provide entry for `integralex' to
3380         override (old) PUA value of the AGL.
3381         * font/devps/generate/Makefile (SS): Add afmtodit option `-x'.
3382         * font/devps/*: Regenerated.
3384         * src/utils/afmtodit/afmtodit.pl: Add option `-x'.
3385         * src/utils/afmtodit/afmtodit.man, NEWS: Updated.
3387 2003-12-27  Werner LEMBERG  <wl@gnu.org>
3389         Add forgotten `coproduct' symbol (already available for DVI).
3391         * font/devhtml/R.proto, font/devps/generate/textmap,
3392         font/devps/symbolmap, font/devutf8/R.proto, man/groff_char.man,
3393         src/libs/libgroff/uniglyph.cc, src/libs/libgroff/glyphuni.cpp: Add
3394         U+2210 (\[coproduct]).
3396 2003-12-26  Jeff Conrad  <jeff_conrad@msn.com>
3398         hpftodit has been extended to handle TrueType metric files and
3399         more glyphs.  See hpftodit.man for more details.
3401         * src/utils/hpftodit/hpftodit.cpp: Include stdio.h, string.h,
3402         ctype.h, and unicode.h.
3403         s/msl/charcode/ everywhere since we now handle Unicode values also.
3404         (equal, NO, YES, MSL, SYMSET, UNICODE, UNICODE): New macros.
3405         Use it where appropriate.
3406         (MULTIPLIER): Replaced with...
3407         (multiplier): New global static variable.
3408         (scale): Updated.
3409         (tag_type): Add more TFM tags.
3410         (tag_name): New array.
3411         (ENUM_TYPE, FLOAT_TYPE): Removed.
3412         (BYTE_TYPE): New value assigned.
3413         (ASCII_TYPE, RATIONAL_TYPE): New enumeration values.
3414         (text_symbol_sets, special_symbol_sets): Extended to cover more
3415         sets.
3416         (check_type): Add return value.
3417         (check_units): Add parameters to get ppi and upem values.
3418         Handle TrueType TFM data.
3419         (output_font_name): New function.
3420         (output_charset): Add parameter to handle TFM type.
3421         Handle TrueType TFMs also.
3422         (em_fract): New macro.
3423         (dump_tags): Be much more verbose and handle more tags.
3424         (dump_ascii, dump_symbol_sets, dump_symbols): New functions.
3425         (hp_msl_to_ucode_name, unicode_to_ucode_name, is_uname): New
3426         functions.
3427         (read_map): Add parameter to handle TFM type.
3428         Handle both MSL and Unicode mappings.
3429         (main): Add two new command line options `-a' and `-q'.
3430         Updated to make use of new functions.
3431         (usage): Updated.
3433         * src/utils/hpftodit/hpuni.cpp: New file.
3435         * src/utils/hpftodit/Makefile.sub, src/utils/hpftodit/hpftodit.man:
3436         Updated.
3438 2003-12-25  Werner LEMBERG  <wl@gnu.org>
3440         * src/include/nonposix.h (read) [_MSC_VER]: Define.
3442 2003-12-24  Werner LEMBERG  <wl@gnu.org>
3444         * src/utils/afmtodit/afmtodit.man: Some reformulations as suggested
3445         by Michail Vidiassov <master@iaas.msu.ru>.
3447 2003-12-20  Werner LEMBERG  <wl@gnu.org>
3449         * font/devhtml/R.proto: Add u00{47,67}_0306, u00{53,73}_0327,
3450         and u0049_0307.
3451         Add missing latin-2 glyphs.
3452         * font/devutf8/R.proto: Add missing latin-2 glyphs.
3454         * tmac/troffrc: Load `composite.tmac' earlier.
3456         * tmac/dvi.tmac, tmac/ps.tmac, tmac/lbp.tmac: Add u00{47,67}_0306,
3457         u00{53,73}_0327, and u0049_0307.
3458         * tmac/X.tmac: Add u00{47,67}_0306.
3459         * tmac/tty-char.tmac: Use composite glyph names for readability.
3461         * NEWS: Updated.
3463         * src/include/unicode.h: Remove `extern' keywords.
3465 2003-12-20  Nilgün Belma Bugüner  <nilgun@superonline.com>
3467         * tmac/latin5.tmac: New file.
3469 2003-12-19  Werner LEMBERG  <wl@gnu.org>
3471         Add some glyphs needed for Turkish.
3473         * font/devutf8/R.proto: Add u00{47,67}_0306, u00{53,73}_0327,
3474         and u0049_0307.
3476         * tmac/composite.tmac: Add `,' as a synonym for `ac' accent.
3477         * tmac/tty-char.tmac: Add representations for u00{47,67}_0306,
3478         u00{53,73}_0327, and u0049_0307.
3480 2003-12-18  Werner LEMBERG  <wl@gnu.org>
3482         * src/devices/grops/ps.cc (ps_output::put_float): Revert change
3483         from 2001-10-04.
3484         Remove trailing zeros.
3486 2003-12-17  Werner LEMBERG  <wl@gnu.org>
3488         Make \? transparent to end-of-sentence recognition.
3490         * src/roff/troff/input.cc (non_interpreted_node): Add
3491         `ends_sentence' member function.
3493 2003-12-16  Werner LEMBERG  <wl@gnu.org>
3495         * doc/groff.texinfo: Document `dt' request correctly.
3496         Other minor typographical improvements.
3498 2003-12-10  Michail Vidiassov  <master@iaas.msu.ru>
3500         * src/utils/afmtodit/Makefile.sub (afmtodit): Fix typo.
3502 2003-12-10  Richard Stallman  <rms@gnu.org>
3504         * LICENSE: Better wording.
3506 2003-12-09  Werner LEMBERG  <wl@gnu.org>
3508         * aclocal.m4 (GROFF_BROKEN_SPOOLER_FLAGS): Set default value to 0.
3509         * configure, NEWS: Updated.
3511 2003-12-08  Werner LEMBERG  <wl@gnu.org>
3513         * FDL: Updated to version 1.2 (from www.gnu.org/copyleft).
3515 2003-12-07  Bernd Warken  <bwarken@mayn.de>
3517         * LICENSE: Updated.
3519 2003-12-07  Werner LEMBERG  <wl@gnu.org>
3521         * INSTALL: Improved.
3523 2003-12-05  Keith Marshall  <keith.d.marshall@ntlworld.com>
3525         Use path separator character of target platform for compiled-in
3526         default paths.
3528         * aclocal.m4 (GROFF_TARGET_PATH_SEPARATOR): New macro.
3529         * configure.ac: Use GROFF_TARGET_PATH_SEPARATOR.
3530         * configure: Regenerated.
3531         * Makefile.in (SEP): Use GROFF_PATH_SEPARATOR.
3533 2003-12-05  Werner LEMBERG  <wl@gnu.org>
3535         * src/include/nonposix.h (PATH_SEP_CHAR): New definition.
3536         Replace `PATH_SEP[0]' with `PATH_SEP_CHAR' everywhere.
3538 2003-12-04  Bernd Warken  <bwarken@mayn.de>
3540         * LICENSE: New file.
3542 2003-12-03  Werner LEMBERG  <wl@gnu.org>
3544         * src/utils/afmtodit/afmtodit.pl: Comment out code which handles
3545         ligatures present in AFM files since groff currently only
3546         understands some standard ligatures and nothing else.
3548 2003-12-03  Jeff Conrad  <jeff_conrad@msn.com>
3550         * src/roff/groff/groff.cpp (main): Don't run the spooler if
3551         option -v is given.
3553         * src/roff/groff/pipeline.c (run_pipeline) [_WIN32]: Fix error
3554         messages.
3555         Close stdout copy.
3556         Don't use Unix wait flags.
3558 2003-12-02  Werner LEMBERG  <wl@gnu.org>
3560         * src/roff/troff/glyphuni.cpp, src/roff/troff/unicode.cpp,
3561         src/roff/troff/unicode.h, src/roff/troff/uniglyph.cpp,
3562         src/roff/troff/uniuni.cpp: Moved to...
3563         * src/libs/libgroff/glyphuni.cpp, src/libs/libgroff/unicode.cpp,
3564         src/libs/libgroff/unicode.h, src/libs/libgroff/uniglyph.cpp,
3565         src/libs/libgroff/uniuni.cpp: Here.
3567         * src/include/Makefile.sub.old (HDRS),
3568         src/libs/libgroff/Makefile.sub (OBJS, CCSRCS),
3569         src/roff/troff/Makefile.sub (HDRS, PBJS, CCSRCS): Updated.
3571 2003-12-01  Keith Marshall  <keith.d.marshall@ntlworld.com>
3573         * src/preproc/htlp/pre-html.cpp (__tmpfile): Renamed to
3574         `DEBUG_FILE'.
3575         Updated all users.
3577 2003-12-01  Werner LEMBERG  <wl@gnu.org>
3579         * groff.texinfo: Document special behaviour of `.vs 0'.
3580         Improve documentation of `cflags' request.
3581         * NEWS: Updated.
3583 2003-11-29  Werner LEMBERG  <wl@gnu.org>
3585         * font/devlj4/generate/Makefile (CORONET): Use correct TFM.
3586         * font/devlj4/CORONET: Regenerated.
3588 2003-11-24  Werner LEMBERG  <wl@gnu.org>
3590         * src/roff/troff/env.cpp (hyphen_trie::read_patterns_file): Fix loop
3591         if processing hyphenation patterns in traditional mode.
3592         Improve error messages.
3594 2003-11-20  Werner LEMBERG  <wl@gnu.org>
3596         * src/roff/troff/node.cpp (troff_output_file::put_char_width,
3597         troff_output_file::put_char): Fix type of local variable `c'.
3599 2003-11-19  Werner LEMBERG  <wl@gnu.org>
3601         * src/roff/groff/pipeline.c (P): Removed.  Updated all function
3602         declarations.
3603         (i_to_a): Removed.  libgroff already provides this function.
3604         (run_pipeline) [_WIN32]: Don't use itoa but i_to_a.
3606 2003-11-18  Keith Marshall  <keith.d.marshall@ntlworld.com>
3608         * src/roff/groff/pipeline.c (xstrsignal): Fix usage of
3609         HAVE_DECL_SYS_LIST.
3611 2003-11-17  Werner LEMBERG  <wl@gnu.org>
3613         * COPYING: Use correct version.
3615 2003-11-11  Werner LEMBERG  <wl@gnu.org>
3617         LynxOS 4.0.0 doesn't declare vfprintf.
3619         * configure.ac: Check for vfprintf.
3620         * configure: Regenerated.
3621         * src/include/lib.h: Handle `NEED_DECLARATION_VFPRINTF'.
3622         * src/include/config.hin: Regenerated.
3624 2003-11-10  Werner LEMBERG  <wl@gnu.org>
3626         LynxOS 4.0.0 has snprintf (without declaration) but no vsnprintf.
3628         * configure.ac: Check for vsnprintf.
3629         * configure: Regenerated.
3630         * src/include/lib.h: Handle `NEED_DECLARATION_VSNPRINTF' and
3631         `HAVE_VSNPRINTF'.
3632         * src/include/config.hin: Regenerated.
3634 2003-11-09  Werner LEMBERG  <wl@gnu.org>
3636         * aclocal.m4: Updated syntax to autoconf 2.59.
3637         (GROFF_HTML_PROGRAMS): Use AC_FOREACH.
3638         Don't check for gsos2.
3639         (GROFF_SRCDIR, GROFF_BUILDDIR): Removed.  autoconf 2.59 provides
3640         working abs_top_srcdir and abs_top_builddir.
3642         * configure.ac: Updated syntax to autoconf 2.59.
3643         Don't call GROFF_SRCDIR and GROFF_BUILDDIR.
3644         Replace call to AC_DECL_SYS_SIGLIST with call to AC_CHECK_DECLS.
3645         * configure: Regenerated.
3647         * Makefile.in, doc/Makefile.in: s/@top_srcdir@/@abs_top_srcdir@/,
3648         s/@groff_top_builddir@/@abs_top_builddir@/.
3650         * src/roff/groff/pipeline.c (xstrsignal):
3651         s/SYS_SIGLIST_DECLARED/HAVE_DECL_SYS_SIGLIST/.
3653 2003-11-07  Werner LEMBERG  <wl@gnu.org>
3655         * src/devices/grodvi/dvi.cpp (draw_dvi_printer::draw) ['a']: Always
3656         make start angle smaller than end angle to circumvent a bug in tpic
3657         handling of some versions of dvipdfm (and dvipdfmx).
3659 2003-10-30  Werner LEMBERG  <wl@gnu.org>
3661         * src/devices/grops/grops.man: Improve section on creating EPS.
3663 2003-10-29  Werner LEMBERG  <wl@gnu.org>
3665         * contrib/pic2graph/pic2graph.sh: Fix typo (-P-letter ->
3666         -P-pletter).
3668 2003-10-28  Werner LEMBERG  <wl@gnu.org>
3670         * doc/groff.texinfo: Fix documentation of `.if'.
3672 2003-10-27  Michail Vidiassov  <master@iaas.msu.ru>
3674         * src/utils/afmtodit/afmtodit.pl: Handle unmapped characters of
3675         the form `uniXXXX' also.
3677 2003-10-27  Werner LEMBERG  <wl@gnu.org>
3679         * contrib/eqn2graph/eqn2graph.sh, contrib/grap2graph/grap2graph.sh,
3680         contrib/pic2graph/pic2graph.sh: Implement secure management of
3681         temporary files.
3682         Pass `-P-pletter' to groff to avoid data outside of the converted
3683         area -- some versions of `convert' (for example 5.3.8) don't check
3684         the bounding box of the image but always use a fixed image size
3685         (letter paper format).
3686         * contrib/eqn2graph/eqn2graph.man, contrib/grap2graph/grap2graph.man,
3687         contrib/pic2graph/pic2graph.man: Updated.
3689         * src/roff/groff/groff.man: Document $TMP and $TEMP.
3691 2003-10-26  Werner LEMBERG  <wl@gnu.org>
3693         * src/preproc/pic/troff.cpp (troff_output::simple_circle,
3694         troff_output::simple_ellipse, troff_output::simple_arc,
3695         troff_output::simple_line, troff_output::simple_spline,
3696         troff_output::simple_polygon): Insert a space before arguments.
3697         (troff_output::set_fill): Emit `\&' before `\D'Fg...' since the
3698         latter doesn't produce a node, so the following `.sp -1' would do
3699         the wrong thing.
3700         Don't emit `.sp -1' after \M.  This also doesn't produce a token
3701         (and we don't have to care about compatibility mode).
3702         (troff_output::set_color, troff_output::reset_color): Don't emit
3703         `.sp -1' after \M and \m.
3705         * src/roff/troff/input.cpp (old_have_input): New global variable.
3706         (input_stack::get): Handle `old_have_input'.
3707         (process_input_stack) <token::TOKEN_NEWLINE>: Call
3708         `trapping_blank_line' depending on `old_have_input', not
3709         `have_input'.
3711 2003-10-20  Keith Marshall  <keith.d.marshall@ntlworld.com>
3713         * src/libs/libgroff/tmpfile.cpp [__MSDOS__, _Win32]
3714         (WIN32_TMPDIR_ENVVAR, MSDOS_TMPDIR_ENVVAR): New macros, providing
3715         default directory names for temporary files.
3716         [__MSDOS__, _Win32] (temp_init::temp_init): Use them.
3718         * src/roff/groff/pipeline.c [__MSDOS__]: Include stdlib.h.
3719         [__MSDOS__] (run_pipeline): Honour environment variables.
3720         Don't use `tmpnam' but `tempnam' to work around messy
3721         implementation.
3723         * README.MinGW: New file.
3725 2003-10-16  Werner LEMBERG  <wl@gnu.org>
3727         * src/preproc/html/pre-html.cpp (write_upto_newline): Don't use
3728         `(*t)->next' without testing validity of `*t'.
3729         (usage): Make it more readable.
3731 2003-10-16  Keith Marshall  <keith.d.marshall@ntlworld.com>
3733         Make html device run under both MS-DOS and Win32.
3735         * src/preproc/html/pre-html.cpp (MAY_FORK_CHILD_PROCESS,
3736         MAY_SPAWN_ASYNCHRONOUS_CHILD): New macros to control whether
3737         spawn or fork+exec has to be used, and whether parent must sleep
3738         until the child process terminates.  Used in
3739         `char_buffer::run_output_filter'.
3740         (copyofstdoutfd): Removed.
3741         (char_buffer): Replace `write_file_html' and `write_file_troff'
3742         member functions with `emit_troff_output' and `run_output_filter'.
3743         (DEVICE_FORMAT, HTML_OUTPUT_FILTER, IMAGE_OUTPUT_FILTER): New
3744         macros.
3745         (replaceFd): Replaced with...
3746         (set_redirection): New auxiliary function.
3747         (waitForChild): Replaced with...
3748         (save_and_redirect): New auxiliary function for.
3750         (char_buffer::do_html, char_buffer::do_image): Simplified, using new
3751         functions.
3753 2003-10-14  Keith Marshall  <keith.d.marshall@ntlworld.com>
3755         * aclocal.m4 (GROFF_SYS_NERR): Check stdlib.h also.
3756         (GROFF_LIBC): New function.
3757         * configure.ac: Call GROFF_LIBC.
3758         Check for `kill'.
3759         * configure: Regenerated.
3761         * src/include/lib.h: Handle __MINGW32__.
3762         * src/include/nonposix.h [_MSC_VER]: Handle __MINGW32__.
3763         Add macro for `pipe'.
3764         Define P_tmpdir.
3766         * src/roff/groff/pipeline.c (run_pipeline): Handle `no_pipe'
3767         correctly.
3769         * src/utils/indxbib/signal.c (handle_fatal_signal) [!HAVE_KILL]:
3770         Implement.
3772 2003-10-13  Werner LEMBERG  <wl@gnu.org>
3774         Finally fix change 2003-08-26, based on ideas from Chuck Silvers
3775         <chuq@chuq.com>.
3777         * contrib/mom/Makefile.sub: Use a stamp file in the `examples'
3778         directory.
3780 2003-10-12  Werner LEMBERG  <wl@gnu.org>
3782         * src/roff/groff/groff.cpp (help), src/devices/grops/ps.cpp (usage),
3783         src/roff/troff/input.cc (usage): Updated.
3785         * NEWS, doc/groff.texinfo: Updated.
3787 2003-10-12  Peter Miller  <millerp@canb.auug.org.au>
3789         * src/libs/libgroff/searchpath.cpp
3790         (search_path::open_file_cautious): New function which also handles
3791         `-' as stdin and stdout depending on the access mode.
3792         * src/include/searchpath.h (search_path): Updated.
3794         * src/devices/grops/ps.cpp (main): Handle new `-I' switch.
3795         * src/devices/grops/ps.h: Include `searchpath.h'.
3796         * src/devices/grops/psrm.cpp (resource_manager::supply_resource):
3797         Open resource file with `include_search_path.open_file_cautious'.
3798         * src/devices/grops/grops.man: Document new `-I' switch.
3800         * src/devices/grodvi/dvi.cpp (main), src/devices/grolbp/lbp.cpp
3801         (main), src/devices/grolj4/lj4.cpp (main),
3802         src/devices/grotty/tty.cpp (main): Ignore new `-I' switch.
3804         * src/preproc/soelim/soelim.cpp (include_list_length, include_list):
3805         Replaced with...
3806         (include_search_path): New global variable.
3807         (include_path_append): Removed.
3808         (main): Use `include_search_path.command_line_dir' to handle `-I'.
3809         (do_file): Simplify, using new
3810         `include_search_path.open_file_cautious'.
3812         * src/roff/groff/groff.cpp (print_commands): Accept file handle as
3813         parameter.
3814         (main): Pass arguments to `-I' to both troff and devices.
3815         Improve handling of `-V'.
3816         * src/roff/groff/groff.man: Document changes to -I and -V.
3818         * src/roff/troff/input.cpp (include_search_path): New global
3819         variable.
3820         (next_file, source, ps_bbox_request, transparent_file,
3821         process_input_file): Use new
3822         `include_search_path.open_file_cautious'.
3823         (main) Handle `-I' switch.
3824         * src/roff/troff/node.cpp (troff_output_file::really_copy_file):
3825         Use new `include_search_path.open_file_cautious'.
3826         * src/roff/troff/node.h: New extern symbol `include_search_path'.
3827         * src/roff/troff/troff.man: Document new `-I' switch.
3829 2003-09-15  Ruslan Ermilov  <ru@FreeBSD.org>
3831         Support multiple calls of .Lb in LIBRARY section.
3833         * tmac/doc-common (doc-in-library-section): New register.
3834         (doc-section-library): New string.
3835         (Sh): Set `doc-in-library-section'.
3836         (Rd): Updated.
3837         * tmac/doc-syms (Lb): Insert breaks before and after arguments
3838         if in LIBRARY section.
3839         * tmac/doc.tmac (doc-save-global-vars): Updated.
3840         * NEWS, tmac/groff_mdoc.man: Updated.
3842 2003-09-14  Ruslan Ermilov  <ru@FreeBSD.org>
3844         * tmac/doc-common (doc-default-operating-system): New variable.
3845         (Os): Use it.
3847 2003-09-08  Werner LEMBERG  <wl@gnu.org>
3849         * tmac/doc.tmac (doc-reset-reference): Handle data for `%I' also.
3851 2003-08-31  Werner LEMBERG  <wl@gnu.org>
3853         * contrib/mom/Makefile.sub: Fix last change to make it really work.
3854         * Makefile.comm: Use `test ... ||' in favor of `if test ...; then'.
3855         (install_dev, uninstall_dev): Check whether $(DEVSCRIPTS) and
3856         $(DEVFILES) are not empty.
3857         * Makefile.in: Use `test ... ||' in favor of `if test ...; then'.
3859 2003-08-26  Chuck Silvers  <chuq@chuq.com>
3861         * contrib/mom/Makefile.sub (prepare_make_examples): Make it work
3862         with parallel runs of `make'.
3864 2003-08-23  Stephen Gildea  <http://www.gildea.com/stephen>
3866         * src/preproc/ref/ref.cpp (reference::compute_sort_key): Always
3867         insert SORT_SEP.  With certain combinations of sort specifications,
3868         refer sorted entries in the wrong order.  In particular, entries
3869         with a missing field should be be sorted before all entries that
3870         have that field, before refer looks to the next field.
3872 2003-08-23  Werner LEMBERG  <wl@gnu.org>
3874         * src/utils/pfbtops/Makefile.sub (LINK.c): Define it so that the
3875         g++ linker is used.  Reported by Mark J. Reed
3876         <mark.reed@turner.com>.
3878 2003-08-16  Heinz-Jürgen Oertel  <hj.oertel@surfeu.de>
3880         Add key character `x' to tbl which makes tbl call a user-defined
3881         macro on a table cell.
3883         * src/preproc/tbl/table.h (entry_modifier): Add `macro'.
3884         * src/preproc/tbl/table.cpp (block_entry::do_divert): Call
3885         `set_modifier' after printing the compatibility request.
3886         (set_modifier): Print call to `m->macro' if not empty.
3887         * src/preproc/tbl/main.cpp (entry_format::debug_print): Handle
3888         `macro'.
3889         (process_format): Implement cases `x' and `X'.
3890         * src/preproc/tbl/tbl.man, NEWS: Updated.
3892 2003-08-15  Werner LEMBERG  <wl@gnu.org>
3894         * doc/groff.texinfo: Minor fixes.
3896 2003-08-09  Werner LEMBERG  <wl@gnu.org>
3898         * tmac/an-old.tmac [cR]: Fix redefinition of `bp'.
3900 2003-08-07  Werner LEMBERG  <wl@gnu.org>
3902         * doc/Makefile.sub: Not all shells expand wildcards in the `for'
3903         argument list to nothing if there is no file to match.  Use `ls' as
3904         a protection, similar to autoconf.
3906         * Makefile.comm (install_dev, uninstall_dev): Protect `for' against
3907         empty argument lists.
3909         * doc/groff.texinfo: Improve documentation how vertical spacing
3910         and line breaks interact.
3911         Other minor fixes.
3913         * tmac/www.tmac: Initialize `www-htmlimage-gap'.
3915 2003-08-03  Werner LEMBERG  <wl@gnu.org>
3917         * NEWS, src/devices/grops/grops.man: -b16 is necessary to produce
3918         EPS (using eps2eps or similar programs to compute the bounding box).
3920 2003-07-24  Werner LEMBERG  <wl@gnu.org>
3922         * doc/groff.texinfo: Use the new @/ command to avoid overlong lines.
3923         * doc/texinfo.tex: Updated from texinfo 4.6.
3924         * README.CVS: From now on we need texinfo 4.6.
3926 2003-07-23  Werner LEMBERG  <wl@gnu.org>
3928         Add requests `dei1' and `ami1' for completeness.
3930         * src/roff/troff/input.cc (calling_mode): Remove
3931         CALLING_DISABLE_COMP.
3932         (comp_mode): New enumeration.
3933         (do_define_string, define_string, define_nocomp_string,
3934         append_string, append_nocomp_string): Updated.
3935         (do_define_macro): Add third parameter.
3936         (define_macro, define_nocomp_macro, define_indirect_macro,
3937         append_macro, append_nocomp_macro, append_indirect_macro): Updated.
3938         (define_indirect_nocomp_macro, append_indirect_nocomp_macro): New
3939         functions.
3940         (ignore): Updated.
3941         (init_input_requests): Add `dei1' and `ami1'.
3943         * tmac/trace.tmac: Handle de1 and am1.
3944         (de): Improve tracing message.
3945         (am): Add missing `do'.
3946         (return): Use de1.
3948         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
3949         Document new requests.
3951 2003-07-22  Heinz-Jürgen Oertel  <hj.oertel@surfeu.de>
3953         Add option -G to .MPIMG to insert a gap between text and the image.
3955         * tmac/www.tmac (www-finish-left-po, www-finish-right-ll,
3956         www-finish-left-ll): Updated.
3957         (www-image-just, www-image-gap, www-htmlimage-gap): New variables.
3958         (MPIMG): Make option -L and -R optional.
3959         Implement option -G.
3961 2003-07-22  Gaius Mulley  <gaius@glam.ac.uk>
3963         * src/devices/grohtml/post-html.cpp
3964         (html_printer::do_file_components): Don't use `stdout' as lvalue
3965         since it can be a macro.
3967 2003-07-22  Werner LEMBERG  <wl@gnu.org>
3969         * src/libs/libgroff/strerror.c: Include errno.h to be in sync with
3970         the corresponding test in aclocal.m4.
3972 2003-07-21  Werner LEMBERG  <wl@gnu.org>
3974         * src/preproc/html/pre-html.cpp (TRANSPARENT): Don't use colour
3975         names but RGB values directly.  Otherwise pnmtopng depends on
3976         an external file `rgb.txt' which maps colour names to values.
3978 2003-07-20  Werner LEMBERG  <wl@gnu.org>
3980         * aclocal.m4 (GROFF_SYS_ERRLIST): Include stdlib.h for MinGW.
3981         * configure, src/include/config.hin: Regenerated.
3983         * src/libs/libgroff/strerror.c: Include stdlib.h for MinGW.
3985 2003-07-19  Werner LEMBERG  <wl@gnu.org>
3987         * PROBLEMS: Add solution for UTF-8 problem with hyphens.
3989 2003-07-18  Werner LEMBERG  <wl@gnu.org>
3991         * *.man: Switch to non-compatibility mode temporarily if GNU
3992         syntax extensions are used in the particular man page.
3994         * PROBLEMS: Add solutions for SGR problems.
3996 2003-07-17  Werner LEMBERG  <wl@gnu.org>
3998         Don't ignore grotty's command line options if \X'tty: sgr ...' is
3999         used to change the drawing scheme.
4001         * src/devives/grotty/tty.cpp (bold_flag_option,
4002         underline_flag_option, italic_flag_option, reverse_flag_option,
4003         bold_underline_mode_option): New global variables.
4004         (update_options): New function.
4005         (tty_printer::special): Call update_options.
4006         (main): Don't set xxx_flag but xxx_flag_option, then call
4007         update_options.
4009 2003-07-14  Werner LEMBERG  <wl@gnu.org>
4011         Make grotty emit proper Unicode box drawing characters for -Tutf8.
4013         * src/devices/grotty/tty.cpp (START_LINE, END_LINE): New enum
4014         values.
4015         (hline_char, vline_char): New global variables.
4016         (tty_printer::tty_printer): Initialize them.
4017         (tty_printer::draw): Emit START_LINE and END_LINE flags for both
4018         horizontal and vertical lines.
4019         (crossings): New global array.
4020         (tty_printer::end_page): Use it to determine the proper crossing
4021         character for -Tutf8.
4023 2003-07-12  Werner LEMBERG  <wl@gnu.org>
4025         * doc/Makefilesub (HTMLDOCFILESALL): New macro.
4026         (HTMLDOCFILES): Revert to `pic.html'.
4027         (CLEANADD, install_html, uninstall_sub): Use HTMLDOCFILESALL.
4029 2003-07-11  Werner LEMBERG  <wl@gnu.org>
4031         * doc/pic.ms: Improve documentation of absolute coordinates.
4032         Document absolute positioning of pictures.
4034         * NEWS: Add new pic capability.
4036 2003-07-09  Hartmut Henkel  <hartmut_henkel@gmx.de>
4038         * src/libs/libgroff/geometry.cpp (check_output_arc_limits):
4039         Rewritten.
4041 2003-07-07  Werner LEMBERG  <wl@gnu.org>
4043         Implement support for dashed and dotted ellipses in pic.  Based on
4044         a patch from Hartmut Henkel <hartmut_henkel@gmx.de>.
4046         * src/preproc/pic/common.cpp (common_output::ellipse_arc,
4047         common_output::dashed_ellipse, common_output::dotted_ellipse): New
4048         functions.  Ellipse arcs are approximated with circle arcs.
4049         * src/preproc/pic/common.h (common_output): Updated.
4050         * src/preproc/pic/tex.cpp (tex_output::ellipse): Use new ellipse
4051         functions.
4052         * src/preproc/pic/troff.cpp (simple_output::ellipse): Ditto.
4054         * src/preproc/pic/TODO, src/preproc/pic/pic.man: Updated.
4056 2003-07-06  Werner LEMBERG  <wl@gnu.org>
4058         Make grotty work on platforms which have unsigned char as the
4059         default for char.  Based on a patch by Thomas Klausner
4060         <wiz@netbsd.org>.
4062         * src/devices/grotty/tty.cpp (schar): New typedef.
4063         Updated calls to declare_ptable and implement_ptable.
4064         (glyph): Use schar for back_color_idx and fore_color_idx.
4065         (tty_printer): Use schar for curr_fore_idx and curr_back_idx.
4066         (tty_printer::tty_color, tty_printer::tty_printer,
4067         tty_printer::color_to_idx, tty_printer::put_color): Updated.
4069 2003-07-06  Ruslan Ermilov  <ru@FreeBSD.org>
4071         * src/roff/nroff/nroff.sh: Add option -d for completeness.
4072         * src/roff/nroff/nroff.man: Updated.
4074 2003-07-05  Werner LEMBERG  <wl@gnu.org>
4076         * NEWS, tmac/groff_www.man: Updated.
4077         * doc/Makefile.sub: Updated.
4079 2003-07-05  Gaius Mulley  <gaius@glam.ac.uk>
4081         Implement support for multiple HTML output files.
4083         * src/preproc/html/pre-html.cpp (scanArguments): Dummy handling for
4084         -j command line option.
4086         * src/devices/grohtml/post-html.cpp (job_name, multiple_files): New
4087         global variables.
4088         (file): New fields `new_output_file', `require_links',
4089         `output_file_name'.
4090         (file::file): Updated.
4091         (files::set_file_name, files::set_links_required,
4092         files::are_links_required, files::is_new_output_file,
4093         files::file_name, files::next_file_name): New functions.
4094         (header_desc): New fields `no_of_level_one_headings',
4095         `header_filename'.
4096         (header_desc::header_desc): Updated.
4097         (header_desc::write_headings): Handle multiple files.
4098         (html_printer::write_header): Save file name in which header occurs.
4099         (html_printer::determine_header_level): Possibly split files on
4100         level one headings.
4101         (html_printer::do_links, html_printer::troff_tag): Updated.
4102         (html_printer::insert_split_file, html_printer::do_job_name,
4103         html_printer::emit_link, html_printer::write_navigation,
4104         html_printer::do_file_components): New functions.
4105         (html_printer::~html_printer): Handle multiple files.
4106         (main): Handle command line option `-j'.
4108         * src/devices/grohtml/grohtml.man: Updated.
4110         * doc/Makefile.sub (pic.html), doc/Makefile.in (pic.html): New rule
4111         which splits file.
4113         * tmac/www.tmac (JOBNAME): New macro.
4114         * tmac/s.tmac (SH-NO-TAG): New macro.
4115         (@SH): Call SH-NO-TAG.
4116         (@NH): Updated.
4118 2003-07-05  Ruslan Ermilov  <ru@FreeBSD.org>
4120         * tmac/groff_mdoc.man: Improve documentation of punctuation
4121         characters.
4123 2003-07-04  Ruslan Ermilov  <ru@FreeBSD.org>
4125         * tmac/doc.tmac (Bd): Change to doc-Li-font later.
4127 2003-07-03  Werner LEMBERG  <wl@gnu.org>
4129         * tmac/an-old.tmac [cR]: Redefine `bp' to avoid empty lines.
4131 2003-07-01  Ruslan Ermilov  <ru@FreeBSD.org>
4133         * tmac/doc.tmac (doc-do-func, doc-do-func-args): Don't print a comma
4134         after `/*' and `*/'.
4135         Fix spacing.
4136         (Fn, Fo): Reduce indentation in synopsis.
4138         * tmac/doc-common (doc-check-depth): New macro.
4139         (doc-end-macro, Sh, Ss): Use it.
4140         (Cd): Fix behaviour in synopsis.
4141         (In): Make it parsed and callable.
4142         If not in the synopsis, represent the C header file enclosed in
4143         angle brackets.
4144         (doc-str-Rv-std-suffix, doc-str-Rv-stds-suffix, doc-str-Rv-std0):
4145         Use minus, not hyphen.
4147         * tmc/groff_mdoc.man: Updated.
4149 2003-07-01  Werner LEMBERG  <wl@gnu.org>
4151         Integrated grap2graph, contributed by Eric S. Raymond.
4153         * contrib/grap2graph/{Makefile.sub, grap2graph.sh, grap2graph.man}:
4154         New files.
4155         * Makefile.in, NEWS, MANIFEST, contrib/eqn2graph.man,
4156         contrib/pic2graph.man, src/roff/groff/groff.man: Updated.
4158 2003-07-01  Colin Watson  <cjwatson@debian.org>
4160         * src/xditview/*.c: Add prototypes, fix return types, add includes.
4161         Based on work by Fumitoshi UKAI <ukai@debian.or.jp>.
4163 2003-06-31  Ruslan Ermilov  <ru@FreeBSD.org>
4165         * tmac/tty-char.tmac: Provide `lb', `rb', `lk', `rk', `lt', `rt'.
4167 2003-06-31  Werner LEMBERG  <wl@gnu.org>
4169         * doc/Makefile.sub (CLEANADD): Remove all files created by
4170         running `make groff.{pdf,dvi}'.
4172         * Makefile.sub (DISTCLEANFILES): Remove all non-source files from
4173         src/xditview also.
4175 2003-06-30  Werner LEMBERG  <wl@gnu.org>
4177         * Makefile.in (SHELL): Define as @SHELL@.
4178         (mkinstalldirs): Use $(SHELL).
4179         (MDEFINES): Add $(SHELL).
4180         * Makefile.comm (SHELL): Removed.
4182 2003-06-29  Werner LEMBERG  <wl@gnu.org>
4184         * tmac/s.tmac (De, Ds): New aliases for .DE and .DS, respectively.
4185         The X11 documentation files use them.
4186         * tmac/groff_ms.man, doc/groff.texinfo: Document them.
4188 2003-06-15  Robert Goulding  <goulding@Princeton.EDU>
4190         * tmac/e.tmac (@C): Handle .ad also.
4192 2003-06-12  Werner LEMBERG  <wl@gnu.org>
4194         * src/preproc/tbl/tbl.man: Document formatting of text blocks.
4196         * src/roff/troff/input.cc (token::next) <handle_escape_char>:
4197         Assign `n' even here.  It is possible to construct a node
4198         immediately following an escape character:
4200           .di xx
4201           \?\\\?a
4202           .br
4203           .di
4204           .xx
4206 2003-06-10  Werner LEMBERG  <wl@gnu.org>
4208         * README.WIN32: Removed.
4209         * MANIFEST: Updated.
4211 2003-06-07  Werner LEMBERG  <wl@gnu.org>
4213         * src/roff/nroff/nroff.sh: Don't emit SGR for option -u.
4215 2003-06-05  Werner LEMBERG  <wl@gnu.org>
4217         * src/preproc/pic/pic.y <sprintf_args>: Implement workaround for bug
4218         in Compaq C++ V6.5-033 for Compaq Tru64 UNIX V5.1A (Rev. 1885).
4220 2003-06-03  Werner LEMBERG  <wl@gnu.org>
4222         * src/preproc/grn/hdb.cpp (DBRead): Don't close file handle; this
4223         is done by the calling function.
4225 2003-05-22  Ruslan Ermilov  <ru@FreeBSD.org>
4227         * tmac/X.tmac: Fix definition of `em'.
4229 2003-05-22  Werner LEMBERG  <wl@gnu.org>
4231         * src/roff/troff/input.cc (return_macro_request): Fix detection of
4232         argument.
4234 2003-05-18  Werner LEMBERG  <wl@gnu.org>
4236         * tmac/doc.tmac (doc-tag-list): Force horizontal mode after tag
4237         to make items work which consist only of a tag.
4239 2003-05-17  Werner LEMBERG  <wl@gnu.org>
4241         * tmac/doc.tmac (doc-tag-list): Don't use \Z to assure that spaces
4242         aren't stretched in a tag (this can fail with unformatted boxes).
4243         Instead, insert a break and go back one line.
4245 2003-05-16  Werner LEMBERG  <wl@gnu.org>
4247         * src/roff/troff/input.cc (return_macro_request): If called with
4248         argument pop macro twice.  We need this to trace `return'.
4250         * tmac/trace.tmac: Handle `return'.
4251         Fix typos.
4253         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
4254         Document.
4256 2003-05-15  Larry Kollar  <kollar@alltel.net>
4258         * tmac/groff_ms.man, doc/groff.texinfo: Improve documentation of
4259         registers `FPS', `FVS', and `FPD'.
4261 2003-05-15  Werner LEMBERG  <wl@gnu.org>
4263         * src/utils/pfbtops/pfbtops.c (get_text): Handle loop counter
4264         correctly.
4266 2003-05-03  Ruslan Ermilov  <ru@FreeBSD.org>
4268         * tmac/groff_mdoc.man: Slight improvements.
4270 2003-05-03  Werner LEMBERG  <wl@gnu.org>
4272         * tmac/doc-common (doc-header): Emit vertical space of 1v instead of
4273         `doc-header-space' after header line if register `cR' is set.
4275 2003-05-02  Werner LEMBERG  <wl@gnu.org>
4277         * TODO: Updated.
4279 2003-05-01  Ruslan Ermilov  <ru@FreeBSD.org>
4281         * tmac/doc-common (Nd): Use \[em].
4283 2003-05-01  Werner LEMBERG  <wl@gnu.org>
4285         * tmac/doc-ditroff, tmac/doc-nroff (doc-header-space,
4286         doc-footer-space): Initialize to 0.5i.
4287         (doc-setup-page-layout): Don't set doc-header-space and
4288         doc-footer-space.
4290 2003-04-30  Werner LEMBERG  <wl@gnu.org>
4292         * REVISION: Set to 1.
4294         * doc/pic.ms: Document possible problems with `figname'.
4296 2003-04-29  Werner LEMBERG  <wl@gnu.org>
4298 Version 1.19 released
4299 =====================
4301         * VERSION: Set to 1.19.
4302         * REVISION: Set to 0.
4303         * doc/groff.texinfo, doc/webpage.ms, NEWS: Updated.
4305         * src/devices/grohtml/post-html.cpp (html_printer::~html_printer):
4306         Define charset as `US-ASCII' in html output.
4308         * tmac/www.tmac (ULE): Add missing scaling indicator.
4310         * win32-diffs: Removed.
4312 2003-04-28  Werner LEMBERG  <wl@gnu.org>
4314         * doc/groff.texinfo: Document `dn' and `dl' registers if used with
4315         `.da' and `.boxa'.
4316         Document how to insert discardable whitespace with `.ss'.
4318 2003-04-27  Werner LEMBERG  <wl@gnu.org>
4320         * src/preproc/pic/tex.cpp (tex_output::start_picture): Make code
4321         work with plain TeX also.
4323         * src/preproc/pic/pic.man, doc/pic.ms: Fix TeX code example.
4325 2003-04-25  Gaius Mulley  <gaius@glam.ac.uk>
4327         * src/devices/grohtml/post-html.cpp (html_printer::~html_printer):
4328         Use a loose DTD.
4330 2003-04-24  Werner LEMBERG  <wl@gnu.org>
4332         * src/preproc/pic/pic.man, doc/pic.ms: Explain how to get a
4333         vbox with positive height and zero depth if in TeX mode.
4335         * NEWS: Document glyph name changes for grodvi and grolj4.
4337 2003-04-23  Werner LEMBERG  <wl@gnu.org>
4339         * src/preproc/pic/tex.cpp (tex_output::start_picture): Fix TeX code.
4340         * doc/pic.ms: Fixed.
4342 2003-04-21  Werner LEMBERG  <wl@gnu.org>
4344         HP-UX 10.20 has `snprintf' but it isn't declared.
4346         * configure.ac: Add declaration test for snprintf.
4347         * configure: Regenerated.
4348         * src/include/lib.h: Handle `NEED_DECLARATION_SNPRINTF'.
4349         * src/include/config.hin: Regenerated.
4351 2003-04-19  Werner LEMBERG  <wl@gnu.org>
4353         Add keyword `figname' to pic, specifying the name of the picture
4354         box in TeX mode.  Based on a patch from William J Poser
4355         <wjposer@unagi.cis.upenn.edu>.
4357         * src/preproc/pic/pic.y: New token `FIGNAME'.
4358         (macro_name): New rule of type <str>.
4359         (placeless_element): Handle `FIGNAME'.
4360         * src/preproc/pic/lex.cpp (lookup_keyword): Add `figname'.
4361         * src/preproc/pic/main.cpp (graphname): New global variable.
4362         (do_picture): Initialize `graphname'.
4363         * src/preproc/pic/pic.h: Updated.
4364         * src/preproc/pic/tex.cpp (tex_output::start_picture): Use
4365         `graphname'.
4366         Simplify TeX code.
4367         (tex_output::text): Beautify output.
4368         * src/preproc/pic/object.cpp (object_spec::~object_spec): Deallocate
4369         `shaded' and `outlined' unconditionally.
4370         * NEWS, src/preproc/pic/pic.man, doc/pic.ms: Updated.
4371         Minor improvements.
4373         * PROBLEMS, README.CVS: Mention that bison version 1.875b or
4374         greater is necessary.
4376 2003-04-17  Hartmut Henkel  <hartmut_henkel@gmx.de>
4378         Add option -r to soelim to avoid emission of `.lf' lines.
4379         Add option -t to produces TeX comment lines instead of `.lf' lines.
4381         * src/preproc/soelim/soelim.cpp: New global variables `raw_flag'
4382         and `tex_flag'.
4383         (usage): Updated.
4384         (main): Handle `-r' and `-t'.
4385         (set_location): Handle `raw_flag' and `tex_flag'.
4386         * src/preproc/soelim/soelim.man, NEWS: Updated.
4388 2003-04-17  Werner LEMBERG  <wl@gnu.org>
4390         * tmac/hyphenex.sh: Replaced with...
4391         * tmac/hyphenex.pl: This perl script to avoid sed compatibility
4392         nightmares.
4394         * aclocal.m4 (GROFF_HTML_PROGRAMS): Emit useful warning message
4395         if --quiet is used for the configure script.
4396         * configure: Regenerated.
4398 2003-04-16  Werner LEMBERG  <wl@gnu.org>
4400         * src/devices/grohtml/post-html.cpp (text_glob::text_glob):
4401         Add `const' to second argument.
4402         (html_printer::add_table_end): Add `const' to argument.
4403         * src/devices/grohtml/html-text.cpp (html_text::issue_tag): Add
4404         `const' to arguments.
4405         * src/devices/grohtml/html-text.h: Updated.
4407         * src/devices/grolbp/charset.h (symset): Use `unsigned char'.
4408         * src/devices/grolbp/lbp.h (lbpputc): Use `unsigned char' for
4409         argument.
4411         * src/devices/grotty/tty.cpp (tty_printer::make_rgb_string): Use
4412         cast for integer constant.
4414         * src/preproc/html/pre-html.cpp (image_device): Use `const'.
4415         (writeNbytes): Add `const' to first argument.
4416         (writeString): Add `const' to argument.
4417         (char_buffer::can_see): Add `const' to third argument.
4418         * src/preproc/html/pushback.cpp (pushBackBuffer::isString): Add
4419         `const' to argument.
4420         * src/preproc/html/pushback.h: Updated.
4422         * src/preproc/soelim/soelim.cpp (include_list): Add `const'.
4423         (include_path_append): Add `const' to argument.
4424         (do_file): Updated.
4426         * src/roff/troff/uniglyph.cpp (unicode_to_glyph_list): Use `const'
4427         for `value'.
4428         (unicode_to_glyph_init::unicode_to_glyph_init): Updated.
4429         * src/roff/troff/uniuni.cpp (unicode_decompose_list): Use `const'
4430         for `value'.
4431         (unicode_decompose_init::unicode_decompose_init): Updated.
4432         * src/roff/troff/glyphuni.cpp (glyph_to_unicode_list): Use `const'
4433         for `value'.
4434         (glyph_to_unicode_init::glyph_to_unicode_init): Updated.
4435         * src/roff/troff/input.cc (process_startup_file): Add `const' to
4436         argument.
4438         * tmac/hyphenex.sh: Make script more portable by using a here
4439         document.
4441 2003-04-15  Werner LEMBERG  <wl@gnu.org>
4443         Renamed all `*.cc' files to `*.cpp'.
4444         Updated all configuration files, makefiles, and documentation.
4446 2003-04-14  Werner LEMBERG  <wl@gnu.org>
4448         * tmac/hyphenex.sh: Slight improvements.
4450 2003-04-13  Werner LEMBERG  <wl@gnu.org>
4452         * font/devascii/R.proto, font/devcp1037/R.proto,
4453         font/devlatin1/R.proto, font/devutf8/R.proto: Fill up remaining
4454         character slots with unnamed glyphs.
4456         * tmac/an-old.tmac: Fix hyphenation value if `cR' is active.
4457         (an-first): New global variable.
4458         (an-header): Emit vertical space between multiple man pages.
4460 2003-04-11  Werner LEMBERG  <wl@gnu.org>
4462         * doc/groff.texinfo, man/groff_out.man: \S only accepts integer
4463         values.
4465 2003-04-10  Werner LEMBERG  <wl@gnu.org>
4467         * PROBLEMS: Revised.
4469 2003-04-10  Bernd Warken  <bwarken@mayn.de>
4471         * doc/webpage.ms: Improved.
4473 2003-04-09  Werner LEMBERG  <wl@gnu.org>
4475         Add register \n[.height] which returns the value of \H.
4476         Add register \n[.slant] which returns the value of \S.
4478         * src/roff/troff/env.cc (init_env_requests): Implement.
4479         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
4480         Document.
4482 2003-04-08  Werner LEMBERG  <wl@gnu.org>
4484         * tmac/html.tmac: Move some of the data into html-end.tmac.
4485         Remove most of the character translations for eqn since html fonts
4486         now cover those characters.
4487         Load www.tmac.
4488         * tmac/html-end.tmac: New file.
4489         * tmac/troffrc: Load html.tmac not www.tmac for -Thtml.
4490         * tmac/troffrc-end: Load html-end.tmac not html.tmac for -Thtml.
4491         * tmac/Makefile.sub (NORMALFILES): Add html-end.tmac.
4493 2003-04-07  Werner LEMBERG  <wl@gnu.org>
4495         * man/groff_out.man: Document negative values of `N' if -Thtml is
4496         used.
4498 2003-04-06  Werner LEMBERG  <wl@gnu.org>
4500         * Makefile.comm (depend.temp): Check location of YTABC.
4502 2003-04-05  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4504         * contrib/mom/Makefile.sub (GROFFBIN): New variable for groff
4505         binary path.
4506         (groff_bin_path): Rename to GROFF_BIN_PATH.
4507         (GROFF): Use GROFFBIN and GROFF_BIN_PATH.
4508         * doc/Makefile.in (TROFFBIN): New variable for troff
4509         binary path.
4510         (GROFFBIN): New variable for groff binary path.
4511         (groff_bin_path): Rename to GROFF_BIN_PATH.
4512         (TROFF): Use TROFFBIN.
4513         (GROFF): Use GROFFBIN and GROFF_BIN_PATH.
4514         * doc/Makefile.sub (GROFFBIN): New variable for groff
4515         binary path.
4516         (groff_bin_path): Rename to GROFF_BIN_PATH.
4517         (GROFF): Use GROFFBIN and GROFF_BIN_PATH.
4519         * Makefile.comm (install_dev): Install scripts from DEVSCRIPTS
4520         with INSTALL_SCRIPT.
4521         (uninstall_dev): Uninstall scripts from DEVSCRIPTS.
4522         * Makefile.dev (all): Depend on DEVSCRIPTS.
4523         (install_dev): Likewise.
4524         * font/devdvi/Makefile.sub (DEVSCRIPTS): New variable to hold
4525         scripts.
4526         * font/devps/Makefile.sub (DEVSCRIPTS): Likewise.
4527         (DEVGENSCRIPTS): New variable to hold generated scripts.
4529 2003-04-05  Werner LEMBERG  <wl@gnu.org>
4531         * src/libs/libdriver/input.cc (IntArray::operator[],
4532         IntArray::get_data): Remove meaningless `const' in return value.
4534         * README.CVS: New file.
4536 2003-04-04  Werner LEMBERG  <wl@gnu.org>
4538         Check for stdint.h in C++, not in C.
4540         * aclocal.m4 (GROFF_STDINT_H): New function,
4541         * configure.ac: Check for stdint.h with GROFF_STDINT_H instead of
4542         AC_CHECK_HEADERS.
4543         * configure, src/include/config.hin: Regenerated.
4544         * src/libs/libgroff/tmpname.cc: Use HAVE_CC_STDINT_H.
4547         Fix handling of &nbsp; in grohtml.  To do this, troff emits `N'
4548         with a negative value, representing the width of the unbreakable
4549         space (only for -Thtml).  grohtml then converts this back to
4550         &nbsp; and uses the value of N as its width.
4552         * src/roff/troff/node.cc (space_char_hmotion_node::tprint,
4553         unbreakable_space_node::tprint): Emit `N-<width>'.
4554         * src/include/printer.h (printer::set_numbered_char): Make it
4555         virtual.
4556         Make members `font_table' and `nfonts' protected instead of private.
4557         * src/devices/grohtml/post-html.cc
4558         (html_printer::set_numbered_char): New member function.
4561         * src/libs/libgroff/maxfilename.cc:
4562         s/HAVE_LIMITS_H/HAVE_CC_LIMITS_H/.
4564         * src/roff/troff/node.cc (unbreakable_space_node::tprint): Don't
4565         emit word marker.
4567 2003-04-03  Sergey A. Osokin  <osa@freebsd.org.ru>
4569         * man/roff.man: Small fixes.
4571 2003-04-03  Werner LEMBERG  <wl@gnu.org>
4573         Make groff independent from locale's numeric settings.
4575         * configure.ac: Check for `setlocale'.
4576         * configure, src/include/config.hin: Regenerated.
4578         * src/include/lib.h: Handle HAVE_SETLOCALE.
4580         * src/devices/grodvi/dvi.cc (main), src/devices/grolj4/lj4.cc
4581         (main), src/devices/grops/ps.cc (main), src/preproc/grn/main.cc
4582         (main), src/preproc/pic/main.cc (main): Call `setlocale'.
4585         * doc/groff.texinfo: Change dir category to `Typesetting'.
4586         (Man font macros): Mention that there is no space between arguments
4587         of .BI and friends.
4589         * src/libs/libdriver/printer.cc, src/devices/grotty/tty.cc
4590         (*printer::change_color, *printer::change_fill_color): Add missing
4591         `const'.
4593 2003-04-02  Werner LEMBERG  <wl@gnu.org>
4595         * src/devices/grohtml/html-table.cc (html_table::emit_col,
4596         html_table::is_gap): Compute table widths after converting border
4597         positions to avoid rounding errors.
4599 2003-04-01  Werner LEMBERG  <wl@gnu.org>
4601         * src/devices/grohtml/html-text.cc (html_text::do_space): Handle
4602         `space_emitted' properly.
4604 2003-03-31  Werner LEMBERG  <wl@gnu.org>
4606         * src/devices/grohtml/html-table.cc: Fix column width calculation.
4607         (html_table::set_linelength): Don't add 1.
4608         (html_table::add_indent): Don't subtract 1.
4610         * tmac/html.tmac: Set default page offset to zero.
4612 2003-03-30  Werner LEMBERG  <wl@gnu.org>
4614         Make groff emit `&nbsp;' for `\ ' and `\~' if `-Thtml' is used.
4616         * src/roff/troff/node.cc (space_char_hmotion_node::tprint,
4617         unbreakable_space_node::tprint): New functions.
4618         (troff_output_file): Make space_char_hmotion_mode::tprint and
4619         unbreakable_space_node::tprint to friends.
4620         * src/roff/troff/node.h: Updated.
4622         * font/devhtml/R.proto: Add `&nbsp' at position 0xA0 (as defined
4623         in the HTML standard).
4625 2003-03-29  Werner LEMBERG  <wl@gnu.org>
4627         * src/roff/troff/env.cc (point_size): Fix emission of html tag.
4628         Otherwise, the following code
4630           .di xxx
4631           .ps 10
4632           a
4633           .br
4634           .di
4635           x\*[xxx]
4637         produces `x a' instead of `xa'.  This is a temporary fix, disabling
4638         font changes in diversions for -Thtml.
4640         * tmac/an-old.tmac (TH, SH): Use `HTML-TAG-NS' instead of
4641         `HTML-TAG'.
4642         (an-do-tag-html): Merge with ...
4643         (an-do-tag): This macro.
4644         Change code slightly to circumvent grohtml bug.
4645         * tmac/troffrc-end: Define dummy for HTML-TAG-NS.
4647         * src/devices/grohtml/html-table.cc (html_table::emit_col,
4648         html_table::is_gap): Round `width' properly.
4650         * tmac/html.tmac: Provide some default layout parameters for
4651         grohtml.
4653         * font/devhtml/DESC.proto: Don't use discrete values for `sizes'
4654         command.
4656 2003-03-28  Werner LEMBERG  <wl@gnu.org>
4658         src/devices/grops/ps.cc (ps_printer::do_import): Fix error message.
4660 2003-03-27  Werner LEMBERG  <wl@gnu.org>
4662         * tmac/an-old.tmac (BT): Don't call .tl if register `ps4html' is
4663         defined.
4665 2003-03-20  Werner LEMBERG  <wl@gnu.org>
4667         * src/roff/troff/env.cc (vertical_spacing): Allow zero value for
4668         `.vs'.
4669         * doc/groff.texinfo: Updated.
4671 2003-03-19  Werner LEMBERG  <wl@gnu.org>
4673         * src/roff/troff/input.cc (process_input_stack) <TOKEN_BEGIN_TRAP,
4674         TOKEN_END_TRAP>: Reset `have_input'.
4676 2003-03-18  Werner LEMBERG  <wl@gnu.org>
4678         * src/roff/groff/groff.man: Mention groff_trace man page.
4680 2003-03-16  Werner LEMBERG  <wl@gnu.org>
4682         * Makefile.in (LIBEXT): New variable to indicate the file extension
4683         of library files.  Computed heuristically from $(OBJEXT).
4684         (MDEFINES): Add $(LIBEXT).
4685         * Makefile.lib, Makefile.comm: Use it.
4687         * src/utils/pfbtops/pfbtops.c (get_text): New function.  Split
4688         overlong lines into smaller chunks.
4689         (get_binary): New function.
4690         (main): Use them.
4691         * src/utils/pfbtops/pfbtops.man: Updated.
4693 2003-03-15  Colin Watson  <cjwatson@debian.org>
4695         * src/roff/groff/groff.man: Minor syntax fix.
4697 2003-03-14  Egil Kvaleberg  <egil@kvaleberg.no>
4699         * src/devices/grops/ps.cc (ps_printer::media_set,
4700         ps_printer::~ps_printer): Handle zero paper width and length.
4702 2003-03-13  Werner LEMBERG  <wl@gnu.org>
4704         Add options -p and -l to grodvi.
4706         * src/devices/grodvi/dvi.cc: Include paper.h.
4707         (landscape_flag, user_paper_length, user_paper_width): New global
4708         variables.
4709         (dvi_printer::begin_page): Emit `papersize' special.
4710         Set color after initialization of `cur_h' and `cur_v'.
4711         (main): Add options `-l' and `-p'.
4712         * font/devdvi/Makefile.sub (DESC): Set `papersize'.
4713         * src/devices/grodvi/grodvi.man, NEWS: Updated.
4715         * src/devices/grops/psrm.cc (valid_input_table): Fixed.
4717 2003-03-12  Werner LEMBERG  <wl@gnu.org>
4719         * src/devices/grops/grops.man: Move documentation of .PSPIC to...
4720         * man/groff_tmac.man: This man page.
4721         * man/groff_font.man: Declare `paperwidth' and `paperlength' as
4722         deprecated.
4724         * tmac/X.tmac: Don't load pspic.tmac.
4726 2003-03-11  Werner LEMBERG  <wl@gnu.org>
4728         Make variable `pr' local to libdriver/input.cc.  Based on a patch
4729         by Bernd Warken <bwarken@mayn.de>.
4731         * src/include/driver.h (pr): Removed.
4733         * src/libs/libdriver/input.cc (pr): New global variable.
4734         (do_file): Deallocate `pr'.
4735         * src/libs/libdriver/printer.cc (pr): Removed.
4737         * src/devices/grodvi/dvi.cc (main), src/devices/grohtml/post-html.cc
4738         (main), src/devices/grolbp/lbp.cc (main), src/devices/grolj4/lj4.cc
4739         (main), src/devices/grops/ps.cc (main), src/devices/grotty/tty.cc
4740         (main): Don't delete `pr'.
4742 2003-03-10  Werner LEMBERG  <wl@gnu.org>
4744         * tmac/a4.tmac, tmac/composite.tmac: Use `.do'.
4745         * tmac/papersize.tmac: New file.
4746         * tmac/troffrc: Include `papersize.tmac'.
4747         * tmac/Makefile.sub (NORMALFILES): Add `papersize.tmac'.
4748         * tmac/an-old.tmac: Set LT to LL by default.
4750         * NEWS, MANIFEST, tmac/groff_man.man, man/groff_tmac.man,
4751         doc/groff.texinfo: Updated.
4753         * src/libs/libgroff/paper.cc (add_iso_paper): Fix very embarassing
4754         bug which caused all odd iso papers to have wrong dimensions.
4756         * src/devices/grops/ps.cc (user_paper_width): New global variable.
4757         (main) <'p'>: Set `user_paper_width' also.
4758         (ps_printer::media_width, ps_printer::media_height): Use values
4759         given with option `-p'.
4761 2003-03-09  Werner LEMBERG  <wl@gnu.org>
4763         * src/include/nonposix.h: Provide default for SET_BINARY.
4765         * src/devices/grodvi/dvi.cc, src/devices/grolbp/lbp.cc,
4766         src/devices/grolj4/lj4.cc, src/devices/grops/ps.cc: Call SET_BINARY
4767         unconditionally.
4769         * src/utils/pfbtops/pfbtops.c: Call SET_BINARY unconditionally.
4770         (main): Treat \r\n as \n.
4772 2003-03-08  Werner LEMBERG  <wl@gnu.org>
4774         * tmac/an-old.tmac: Use register `HY' to control hyphenation.
4775         * NEWS, tmac/groff_man.man, doc/groff.texinfo: Document it.
4777 2003-03-07  Werner LEMBERG  <wl@gnu.org>
4779         Added support to access more than 256 glyphs in Type 1 fonts.
4781         * src/devices/grops/ps.cc (subencoding): New structure.
4782         (style): Add `sub' field.
4783         Updated all users.
4784         (ps_printer): Add `subencodings' and `next_subencoding_index' fields.
4785         Add `set_subencoding', `get_subfont' and `encode_subfont' member
4786         functions.
4787         Updated all users.
4788         (ps_printer::set_char): Use `set_subencoding'.
4789         (make_subencoding_name): New function.
4790         (ps_printer::set_style): Handle case where `sty.sub' is not zero.
4791         (ps_printer::~ps_printer): Emit subencoding definitions.
4793         * src/devices/grops/psrm.cc (valid_input_table): New array to
4794         properly support EBCDIC.
4795         (white_space): Add `\f'.
4796         (ps_get_line): Change first argument to be of type `string &'.
4797         Updated all callers.
4798         This allows to get lines of arbitrary length.
4799         Use `valid_input_table'.
4800         Remove warning about non-conforming PS line length.  This seems
4801         not to be of great importance -- for example, dvips don't emit
4802         a warning either.
4803         (PS_LINE_MAX): Removed.
4804         (matches_comment): Change first argument to be of type `string &'.
4806         * src/devices/grops/grops.man, src/devices/grops/TODO: Updated.
4808         * src/utils/afmtodit/afmtodit.pl (%unicode_decomposed,
4809         %AGL_to_unicode, %default_ligatures): New hash tables.
4810         Read all map entries.
4811         Add unencoded characters.
4812         Check for default ligatures if there are no `L' entries.
4813         Print all kern entries.
4814         Print all characters in charset.
4815         * src/utils/afmtodit/afmtodit.man: Updated.
4817         * font/devps/*: Regerated all fonts.
4819         * tmac/latin[129].tmac, tmac/cp1047.tmac: Don't test for existence
4820         of characters, just use `.trin'.  Otherwise the mapping depends
4821         on the font encoding.
4822         * tmac/ps.tmac: Add `fi' and `fl'.
4823         Improve `Fi' and `Fl'.
4824         * tmac/X.tmac, tmac/lbp.tmac, tmac/tty.tmac: Improve `Fi' and `Fl'.
4825         * tmac/Xps.tmac: Fix `em'.
4827         * NEWS: Updated.
4829 2003-03-04  Werner LEMBERG  <wl@gnu.org>
4831         * src/roff/troff/input.cc (charinfo_to_node_list): Reset
4832         `have_input'.
4834 2003-03-03  Werner LEMBERG  <wl@gnu.org>
4836         * Makefile.sub (DISTCLEANFILES): Add gxditview._man.
4838         * font/devps/generate/textmap: Remove entry `similarequal'.
4839         * font/devps/symbolmap: Updated.
4841 2003-03-02  Werner LEMBERG  <wl@gnu.org>
4843         * src/libs/libgroff/font.cc (font::load): Fix error message for
4844         bad character type.
4846         * src/devices/grops/grops.man: Improve documentation of the -b
4847         flag.
4849         * tmac/tty.tmac: Load latin1.tmac for all TTY devices except
4850         `ascii' and `cp1047'.
4852 2003-03-01  Werner LEMBERG  <wl@gnu.org>
4854         Document composite glyphs and the `composite' request.
4856         * man/groff.man, man/groff_diff.man, doc/groff.texinfo: Do it.
4858 2003-02-28  Werner LEMBERG  <wl@gnu.org>
4860         * font/devdvi/generate/ec.map: Add some more Unicode entities.
4861         * font/devdvi/*EC: Updated.
4863         * tmac/composite.tmac, tmac/latin2.tmac, tmac/latin9.tmac: New files.
4864         * tmac/latin1 (latin1-tr): Undo any previous mapping.
4865         * tmac/troffrc: Load `composite.tmac'.
4866         * tmac/Makefile.sub (NORMALFILES): Updated.
4868         * doc/groff.texinfo (Input Encodings): New section.
4869         * NEWS: Updated.
4871 2003-02-27  Werner LEMBERG  <wl@gnu.org>
4873         * doc/texinfo.tex: New version 2003-02-11.06.
4875         * tmac/doc-common (Dt): Don't emit warning for unknown section.
4876         * tmac/groff_mdoc.man: Fix description of `Dt'.
4878 2003-02-26  Egil Kvaleberg  <egil@kvaleberg.no>
4880         * font/devps/prologue.ps: Fix for included Postscript that does
4881         a setpagedevice -- which is now safely ignored.
4883         * NEWS: Updated.
4885         * src/devices/grops/ps.cc: Now sets the page size in the generated
4886         document.  This is done in two ways: Via a %%-comment for gv and
4887         the like, and via a PageSize and setpagedevice for programs that
4888         understands Postscript proper, like ps2pdf.
4890         * src/devices/grops/ps.h: New broken-flag to avoid page size
4891         definition, if required.
4893         * src/devices/grops/grops.man: New broken-flag 16 mentioned.
4895         * doc/Makefile.in: Added -nosetpage flag (via @pnmtops_nosetpage@).
4896         Not really necessary due to the fix in prologue.ps, but cleaner:
4897         Such information does not belong in an .eps file.
4899         * doc/Makefile.sub: See doc/Makefile.in.
4901 2003-02-26  Ralph Corderoy  <ralph@inputplus.co.uk>
4903         * aclocal.m4 (GROFF_PNMTOPS_NOSETPAGE): Use P2 format for testing
4904         instead of P1 since the latter is broken in some versions of netpbm.
4905         * configure: Updated.
4907 2003-02-26  Larry Kollar  <kollar@alltel.net>
4909         Make man pages more customizable.
4911         * tmac/an-old.tmac (FT): New register holding footer distance from
4912         bottom.
4913         (HF): New string holding the default heading font.
4914         (TH): Handle registers `IN' and `SN' set on the command line.
4915         Use `FT'.
4916         (PT, BT): New strings to customize header and footer lines.
4917         (an-header, an-footer): Use them.
4918         (SH, SS): Use `HF'.
4919         * tmac/groff_man.man: Document changes.
4921         * doc/groff.texinfo: Document man changes.
4922         Document Ultrix extensions of man.
4924 2003-02-26  Werner LEMBERG  <wl@gnu.org>
4926         * src/roff/troff/input.cc (do_width, do_if_request): Reset
4927         `have_input' after changing back to old environment.
4929         * src/devices/grolbp/lbp.cc (lbp_printer::set_line_thickness): Move
4930         function up to be defined before first call.  This is necessary to
4931         avoid a compilation problem with Sun's WorkShop 6 C++ compiler.
4933         * src/utils/afmtodit/afmtodit.pl: Make script search for files in
4934         the default font directory also.  Based on a patch from James
4935         J. Ramsey <jjramsey_6x9eq42@yahoo.com>.
4936         * src/utils/afmtodit/Makefile.sub (afmtodit): Handle @FONTDIR@.
4937         * src/utils/afmtodit/afmtodit.man: Document it.
4939         * NEWS: Updated.
4941         * tmac/groff_man.man, doc/groff.texinfo: Many minor fixes.
4943 2003-02-25  Gaius Mulley  <gaius@glam.ac.uk>
4945         * aclocal.m4 (GROFF_HTML_PROGRAMS): Add test for pnmtops.
4946         (GROFF_PNMTOPS_NOSETPAGE): New macro.
4947         * configure.ac: Use it.
4948         * configure: Regenerated.
4949         * Makefile.in: Updated.
4951         * tmac/Makefile.sub (NORMALFILES): Remove www.tmac.
4952         (CLEANADD): Add www.tmac-sed.
4953         (pnmtops_nosetpage): Define default.
4954         (install_data): Handle www.tmac-sed and substitute
4955         @PNMTOPS_NOSETPAGE@.
4956         (stamp-sed): Add www.tmac.
4957         * tmac/www.tmac: Rewritten, based on a patch by Bernd Warken.
4958         It now breaks URLs at suitable places.
4959         (www:substring_ok): New register set by...
4960         (www:@test_substring): New macro.
4961         (www:error): New alias to www-error.
4962         (www:lenstr, www:splitstr, www:url_breaks, www:url_breaks_splitted):
4963         New macros.
4964         (URL): Use www:url_breaks.
4965         (PIMG, MPIMG): Use @PNMTOPS_NOSETPAGE@.
4966         (CDS, CDE): New macros.
4968 2003-02-25  Werner LEMBERG  <wl@gnu.org>
4970         * src/devices/grops/ps.cc (ps_printer::define_encoding): Avoid
4971         buffer overflow.
4973 2003-02-24  Werner LEMBERG  <wl@gnu.org>
4975         Contrary to the PCL5 Developer's Guide, the ascenders in TFM files
4976         can be negative also.
4978         * src/utils/hpftodit/hpftodit.cc (char_info): `ascent' must be
4979         `int16'.
4980         (read_char_table): Avoid negative ascenders.
4981         (output_charset): Add cast.
4982         * font/devlj4/*: Regenerated.
4984         Replace unnamed glyphs for DVI fonts with `uXXXX' glyph names where
4985         possible.
4987         * font/devdvi/generate/{tc,texttt,ec,texmi,texsy,textex}.map: Do it.
4988         * font/devdvi/generate/textex.map: Map glyph 23 to `u21C6' instead
4989         of `<>'.
4990         * font/devdvi/*: Regenerated.
4992         Map `la' and `ra' to U+27E8 and U+27E9.  These two characters have
4993         normal width, while the previously used characters (U+2329 and
4994         U+232A) are classified as wide due to canonical equivalence with the
4995         CJK punctuation characters U+3008 and U+3009.
4997         * font/devutf8/R.proto: Updated.
4998         * src/roff/troff/uniglyph.cc, src/roff/troff/glyphuni.cc: Ditto.
5000         * man/groff_char.man: Simplify handling of table traps by
5001         introducing `start block' and `end block' macros.
5002         (Ns, Ne, 2s, 2e, Ds, De): New macros.
5003         (DL): Make it work with Unix troff also.
5004         Fix code values of `la' and `ra'.
5006         * tmac/dvi.tmac: Define `<>' for CW and CWI.
5008 2003-02-23  Gaius Mulley  <gaius@glam.ac.uk>
5010         * src/devices/grohtml/post-html.cc (element_list::~element_list):
5011         New destructor, fixing a major memory leak.
5013 2003-02-22  Werner LEMBERG  <wl@gnu.org>
5015         * font/devhtml/R.proto, font/devutf8/R.proto: Flip `*f' and `+f'
5016         to be in conformance with Unicode 3.0 and newer.
5018         * font/devlj4/generate/text.map: Add `Eu'.
5019         * font/devlj4/generate/special.map: Flip `*e' and `+e'.
5020         * font/devlj4/S: Regenerated.
5022         * man/groff_char.man: Completely rewritten.
5024         * doc/groff.texinfo: Fix description of request and macro arguments.
5026 2003-02-20  Gaius Mulley  <gaius@glam.ac.uk>
5028         Valgrind fixes.
5030         * src/devices/grohtml/html-table.cc (html_table::~html_table):
5031         Deallocate `columns' list.
5032         * src/devices/grohtml/post-html.cc (char_block::~char_block):
5033         New destructor.
5034         (text_glob::text_glob_html, text_glob::text_glob_special,
5035         text_glob::text_glob_line, text_glob::text_glob_auto_image,
5036         text_glob::text_glob_tag): Avoid memory leaks.
5037         (text_glob::remember_table): Free memory before reassigning.
5039 2003-02-19  Werner LEMBERG  <wl@gnu.org>
5041         Add glyph `+e', greek lunate epsilon symbol, and `-h' (with the
5042         alias `hbar'), the Planck constant over two pi.
5044         * font/devdvi/generate/texmi.map: Use `*e' for position 15 and
5045         `+e' for position 34.
5046         * font/devdvi/generate/texsy.map: Replace `DI' and `HE' with
5047         `u2662' and `u2661'.
5048         * font/devdvi/{MI,S}: Regenerated.
5049         * font/devhtml/R.proto, font/devutf8/R.proto: Add `+e', `-h', `hbar'.
5050         * font/devlbp/*: Add `hbar' alias.
5051         * font/devlj4/generate/special.map: Ditto.
5052         * font/devlj4/S: Regenerated.
5053         * font/devps/generate/symbolchars: Add `+e'.
5054         * font/devps/generate/textmap: Fix PS name for `-h'.
5055         Add `hbar' alias.
5056         * font/devps/symbolmap: Regenerated.
5058         * src/devices/grops/ps.cc (transform_fill): Removed since unused.
5060         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Add `+e',
5061         `-h', `hbar'.
5062         * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Add `+e',
5063         `-h'.
5065         * tmac/X.tmac, tmac/ps.tmac: Provide definitions for `-h' and
5066         `hbar'.
5067         * tmac/tty-char.tmac: Add `+e'.
5069 2003-02-17  Werner LEMBERG  <wl@gnu.org>
5071         Another round trying to really fix problems with `have_input'.
5073         * src/roff/troff/input.cc (input_stack::get): Handle `have_input'.
5074         (token::next) <'\n'>, <\'\n'>: Don't handle `have_input'.
5076         * src/devices/grotty/tty.cc (tty_printer::put_color): Fix color
5077         handling if both foreground and background colors are default.
5079         * doc/groff.texinfo (Debugging): Document .lf differences to
5080         AT&T troff.
5082 2003-02-16  Werner LEMBERG  <wl@gnu.org>
5084         * src/devices/grotty/tty.cc (tty_printer::make_rgb_string): Avoid
5085         null-bytes in created string.
5087         * src/roff/troff/input.cc (lookup_color, interpolate_macro,
5088         alias_macro, lookup_request): Improve warning messages.
5090         * src/roff/troff/node.cc (suppress_node::tprint): Use `strsave',
5091         not `strdup'.
5092         Free `last_image_filename'.
5094         * src/preproc/html/pre-html.cc (char_block::char_block): Initialize
5095         `buffer'.
5096         (imageList::createPage, imageList::createImage): Use `free', not
5097         `a_delete'.
5098         (imageItem::~imageItem): Free `imageName'.
5099         (addRegDef): Use `strsave', not `strdup'.
5100         (get_resolution): Free `pathp'.
5102 2003-02-15  Werner LEMBERG  <wl@gnu.org>
5104         * src/devices/grotty/tty.cc (tty_printer::tty_printer): Fix pointer
5105         to `dummy'.
5107 2003-02-14  Werner LEMBERG  <wl@gnu.org>
5109         Add memory management for colors to deallocate unnamed colors
5110         properly.
5112         * src/include/color.h (color): New members `free_list' and `next'.
5113         New member functions `new' and `delete'.
5114         Add destructor.
5115         * src/libs/libgroff/color.cc: Implement it.
5117         * src/libs/libgroff/font.cc (font::add_kern): Use integer cast
5118         for array size of new operator.
5120         * src/libs/libdriver/input.cc (IntArray::operator[]): Remove
5121         redundant comparison.
5123         * src/roff/troff/input.cc (word_space_node::reread,
5124         hmotion_node::reread): Avoid warning about unused parameter.
5125         (reset_output_registers): Remove redundant parameter.
5126         (define_color): Undo change 2003-02-12.
5128         * src/roff/troff/reg.h: Updated.
5130         * src/roff/troff/node.cc (troff_output_file::really_print_line,
5131         output_file::put_filename, real_output_file::really_put_filename,
5132         ascii_output_file::really_print_line,
5133         break_char_node::get_hyphen_list): Avoid warning about unused
5134         parameter.
5135         (suppress_node::tprint): Updated.
5137         * configure.ac: Check declaration for rand() and srand().
5138         * configure: Regenerated.
5140         * src/preproc/pic/pic.h: Declare fmod(), rand(), and srand()
5141         conditionally.
5142         * src/preproc/pic/pic.y: Remove declaration of fmod(), rand(),
5143         and srand().
5145         * src/preproc/eqn/delim.cc (delim_table): Add missing initializers
5146         to avoid compiler warnings.
5148         * src/preproc/grn/hgraph.cc (HGPrintElt): Second parameter is
5149         unused.
5151         * src/devices/grops/ps.cc (ps_printer::set_char): Last parameter
5152         is unused.
5153         * src/devices/grops/psrm.cc (skip_possible_newline): Remove first
5154         (unused) parameter.
5155         Updated all callers.
5157         * src/devices/grotty/tty.cc (tty_printer::set_char): Last parameter
5158         is unused.
5159         * src/devices/grodvi/dvi.cc (dvi_printer::set_char): Ditto.
5160         * src/devices/grolj4/lj4.cc (lj4_printer::set_char): Ditto.
5162         * src/devices/grohtml/post-html.cc (html_printer::emit_line):
5163         Parameter is unused.
5164         (html_printer::add_table_end): Define parameter conditionally.
5165         * src/devices/grohtml/output.cc (simple_output::special): Parameter
5166         is unused.
5168         * src/devices/grolbp/lbp.cc: Define _GNU_SOURCE conditionally.
5169         (lbp_printer::set_char): Last parameter is unused.
5171         * src/utils/indxbib/indxbib.cc (main): Remove redundant comparison.
5173 2003-02-13  Werner LEMBERG  <wl@gnu.org>
5175         New commands \D'Fr ...', \D'Fc ...', etc. for orthogonality.
5176         Make \D'f ...' move horizontally again for backwards compatibility.
5177         Replace it with \D'Fg ...' where appropriate to avoid dependency
5178         on horizontal resolution.
5180         * src/roff/troff/input.cc (do_get_long_name): New function.
5181         (get_long_name): Call it.
5183         (read_draw_node): Handle `\D'Fx ...' by calling ...
5184         (read_color_draw_node): New function.
5186         (read_rgb, read_cmy, read_cmyk, read_gray): New optional argument
5187         `end'.
5188         Pass it to `do_get_long_name' which is used instead of
5189         `get_long_name'.
5191         * src/libs/libdriver/input.cc (color_from_Df_command): Remove
5192         unnecessary value guard.
5193         (parse_D_command) <'f'>: Add horizontal shift.
5195         * src/preproc/grn/hgraph.cc (HGPrintElt) <POLYGON>: Use \D'Fg ...'.
5196         * src/preproc/pic/troff.cc (troff_output::set_fill): Ditto.
5197         (FILL_MAX): Removed.
5199         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
5200         Updated.
5202 2003-02-12  Werner LEMBERG  <wl@gnu.org>
5204         * src/roff/troff/input.cc (do_name_test, do_expr_test,
5205         do_zero_width): Push `\n' if closing delimiter is missing.
5207         (token::next) <ESCAPE_NEWLINE>, <'\n'>, <\'\n'>: Reset `have_input'.
5208         <'F'>: Make \F non-transparent at the beginning of line.
5209         (process_input_stack) <token::TOKEN_CHAR, token::TOKEN_NEWLINE,
5210         token::TOKEN_REQUEST, token::TOKEN_BEGIN_TRAP>: Don't handle
5211         `have_input'.
5213         (define_color): Free color in case of reassignment.
5215         * doc/groff.texinfo (@Defesc, @DefescList, @DefescItem,
5216         @DefescListEnd): Use @Var, not @var.
5217         Fix all calls.
5219         * src/preproc/grn/hgraph.cc (HGPrintElt): Fix typo.
5221         * src/preproc/pic/object.cc (object_spec::~object_spec): Free
5222         `shaded' and `outlined' arrays.
5223         (object_spec::object_spec): Initialize `shaded' and `outlined'.
5224         (graphic_object::set_fill_color, graphic_object::set_outline_color):
5225         Use strsave.
5226         (closed_object::set_fill_color): Ditto.
5227         * src/preproc/pic/troff.cc (troff_output::set_color): Use strsave
5228         instead of strdup.
5229         (troff_output::reset_color): Use a_delete instead of free.
5230         * src/preproc/pic/main.cc (do_file): Free `out' in case of error.
5232 2003-02-11  Werner LEMBERG  <wl@gnu.org>
5234         * doc/groff.texinfo: Improve documentation of `ad'.
5235         Document that \D'f...' is dependent on the horizontal resolution.
5236         * man/groff_diff.man: Improve documentation of \D'f...'.
5238         * src/preproc/grn/hgraph.cc (HGPrintElt) <POLYGON>: Don't emit
5239         compensating \h'...' for \D'f ...' since the latter no longer moves
5240         current position.
5241         * src/preproc/pic/troff.cc (troff_output::set_fill): Ditto.
5243 2003-02-10  Werner LEMBERG  <wl@gnu.org>
5245         Improve error messages for `x F' (and `F') commands.
5247         * src/include/error.h: Add declaration for
5248         `current_source_filename'.
5249         * src/libs/libgroff/filename.cc: Add `current_source_filename'.
5250         * src/libs/libgroff/error.cc (do_error_with_file_and_line): Add
5251         parameter for source file string.
5252         Updated all callers.
5254         * src/libs/libdriver/input.cc: Add `current_source_filename'.
5255         (remember_source_filename): New function.
5256         (parse_x_command <'F'>, do_file <'F'>): Use it.
5258 2003-02-09  Werner LEMBERG  <wl@gnu.org>
5260         Make grotty not emit warnings about unknown colors more than
5261         necessary.
5263         * src/devices/grotty/tty.cc: Include `ptable.h'.
5264         (TTY_MAX_COLORS): Removed.
5265         (DEFAULT_COLOR_IDX): Defined to -1.
5266         (glyph): Change `back_color_idx' and `fore_color_idx' to `char'.
5267         (tty_printer): Change `curr_back_idx' and `curr_fore_idx' to `char'.
5268         Change `tty_colors' to be a ptable.
5269         First arg of `put_color' is now `char'.
5270         New functions `make_rgb_string' and `tty_color'.
5271         (tty_printer::tty_printer): Use `tty_color'.
5272         (tty_printer::color_to_idx): Return value is now `char'.
5273         Use `tty_color'.
5275         * src/include/color.h (color): Add `print_color' member function.
5276         * src/libs/libgroff/color.cc (color::print_color): Implement it.
5278 2003-02-08  Werner LEMBERG  <wl@gnu.org>
5280         Valgrind fixes.
5282         * src/devices/grops/ps.cc (ps_printer::define_encoding): Close
5283         encoding file.
5285         * src/include/ptable.h (PTABLE::~PTABLE, PTABLE::define): Always
5286         assume that value has been allocated with `new[]', thus use
5287         `a_delete' for deallocation.
5289         * src/libs/libdriver/input.cc (get_integer_arg,
5290         get_possibly_int_args, parse_x_command, do_file): Use `a_delete'
5291         where appropriate.
5293         * src/libs/libgroff/new.cc (delete) [!COOKIE_BUG]: Define.
5294         * src/libs/libgroff/nametoindex.cc
5295         (character_indexer::named_char_index): Use `new <type>[1]'.
5297         * src/preproc/eqn/lex.cc (init_table, do_definition): Use `new
5298         <type>[1]'.
5299         * src/preproc/eqn/text.cc (set_special_char_type): Ditto.
5300         (split_text): Use `a_delete'.
5302         * src/preproc/pic/pic.y (define_label, define_variable): Use `new
5303         <type>[1]'.
5305         * src/roff/troff/env.cc (environment::choose_breakpoint): Avoid
5306         harmless memory leak.
5307         (hyphen_trie::read_patterns_file): Initialize `buf'.
5308         * src/roff/troff/node.cc (troff_output_file::troff_output_file):
5309         Initialize `current_fill_color'and `current_glyph_color'.
5310         * src/roff/troff/glyphuni.cc
5311         (glyph_to_unicode_init::glyph_to_unicode_init): Use `new <type>[1]'.
5312         * src/roff/troff/uniuni.cc
5313         (unicode_decompose_init::unicode_decompose_init): Ditto.
5314         * src/roff/troff/uniglyph.cc
5315         (unicode_to_glyph_init::unicode_to_glyph_init): Ditto.
5317 2003-01-26  Werner LEMBERG  <wl@gnu.org>
5319         * src/utils/indxbib/indxbib.cc (main) [__EMX__]: Check with
5320         `access' before calling `unlink'.
5321         (do_file): Handle __EMX__.
5323         * src/include/nonposix.h: Handle __EMX__.
5325         * Makefile.in (SEP): New variable; set to @PATH_SEPARATOR@.
5326         (fontpath,tmacpath): Use it.
5327         (MDEFINES): Add it.
5328         Sorted alphabetically.
5330         * src/preproc/eqn/neqn.sh, src/roff/nroff/nroff.sh: Use
5331         @SEP@.
5332         * src/preproc/eqn/Makefile.sub, src/roff/nroff/Makefile.sub: Handle
5333         @SEP@.
5335 2003-01-27  Werner LEMBERG  <wl@gnu.org>
5337         * src/libs/libgroff/strcasecmp.c, src/libs/libgroff/strncasecmp.c:
5338         New files, copied from gnulib.
5339         * src/libs/libgroff/Makefile.sub (CSRCS): Add them.
5340         * configure.ac: Updated.
5341         * configure: Regenerated.
5343         * src/include/config.hin: Regenerated.
5344         * src/include/lib.h [!HAVE_STRCASECMP]: Declare `strcasecmp'.
5345         Don't define `strcasecmp' as `strcmp'.
5346         [!HAVE_STRNCASECMP]: Declare `strncasecmp'.
5347         Dont define `strncasecmp' as `strncmp'.
5349         * src/roff/groff/pipeline.c [!HAVE_STRCASECMP, !HAVE_STRNCASECMP]:
5350         Removed.
5352 2003-01-26  Werner LEMBERG  <wl@gnu.org>
5354         * src/utils/indxbib/indxbib.cc (main) [__EMX__]: Fix typo:
5355         s/unline/unlink/.
5357 2003-01-25  Werner LEMBERG  <wl@gnu.org>
5359         * doc/groff.texinfo (Ligatures and Kerning): Mention limitations.
5361 2003-01-24  Werner LEMBERG  <wl@gnu.org>
5363         Add US-english hyphenation exceptions (converted from Barbara
5364         Beeton's hyphenation exception log reports which appear irregularly
5365         in TUGBoat).
5367         * tmac/hyphen.us: Updated to latest version.
5368         * tmac/README: Updated.
5369         * tmac/hyphenex.us, tmac/hyphenex.sh: New files.
5370         * tmac/troffrc: Load `hyphenex.us'.
5371         * tmac/Makefile.sub (NORMALFILES): Add `hyphenex.us'.
5372         * doc/groff.texinfo: Updated.
5374 2003-01-23  Werner LEMBERG  <wl@gnu.org>
5376         Improve hyphenation slightly.  This is a first step in redesigning
5377         the hyphenation algorithm to make it more flexible (e.g. allowing
5378         kerns and ligatures between the hyphenation character and the
5379         following character -- while not used normally in English, other
5380         languages like German would benefit).
5382         * src/roff/troff/env.cc (environment::hyphenate_line): Use
5383         assertion instead of if-clause.
5384         Let `get_hyphen_list' return the number of involved characters in
5385         the hyphenation pattern instead of computing it directly (which
5386         often yields too small values).
5387         * src/roff/troff/node.h (*::get_hyphen_list): Add second parameter.
5388         * src/roff/troff/node.cc (*::get_hyphen_list): Handle new second
5389         parameter.
5391 2003-01-22  Werner LEMBERG  <wl@gnu.org>
5393         Fixing a bug which caused groff to hang if the hyphenation exception
5394         dictionary tried to grow.
5396         * src/roff/troff/env.cc (hyphen_trie::insert_hyphenation,
5397         hyphen_trie::read_patterns_file, do_hyphenation_patterns_file): Use
5398         pointer to dictionary.
5400 2003-01-20  Werner LEMBERG  <wl@gnu.org>
5402         * src/utils/afmtodit/afmtodit.pl: Add switch `-m' to suppress
5403         negative left italic correction.
5404         * src/utils/afmtodit/afmtodit.man: Document it.
5406         * font/devps/generate/Makefile (RFLAG): Add `-m'.
5407         * font/devps/{AB,AR,BMB,BMR,CB,CR,EURO,HB,HR,HNB,HNR,NB,NR,PB,PR,
5408         S,TB,TR,ZD,ZDR}: Regenerated with afmtodit options `-i 0 -m'.
5410         * NEWS: Updated.
5412 2003-01-16  Werner LEMBERG  <wl@gnu.org>
5414         * NEWS: Updated.
5416 2003-01-16  Jörgen Grahn  <jgrahn@algonet.se>
5418         * src/preproc/refer/refer.man: Mention REFER environment variable.
5420 2003-01-05  Werner LEMBERG  <wl@gnu.org>
5422         Similar to \[is], the square root glyph (\[sr]) and the square root
5423         extension glyph (\[radicalex]) are now text symbols.  The new
5424         mathematical versions are called \[sqrt] and \[sqrtex],
5425         respectively.
5427         * font/devX*/S: Regenerated.
5428         * font/devdvi/generate/texex.map: Rename `sr[0123]' to `sqrt[0123]'.
5429         * font/devdvi/generate/texsy.map: Rename `sr' to `sqrt'.
5430         * font/devdvi/EX, font/devdvi/S: Regenerated.
5431         * font/devhtml/R.proto, font/devutf8/R.proto: Add `sqrt'.
5432         * font/devlj4/generate/special.map: Add `sqrt'.
5433         * font/devlj4/S: Regenerated.
5434         * font/devps/generate/textmap: Add `sqrt'.
5435         * font/devps/S, font/devps/symbolmap: Regenerated.
5437         * src/preproc/eqn/sqrt.cc (SQRT_CHAR, RADICAL_EXTENSION_CHAR,
5438         SQRT_CHAIN, BAR_CHAIN): Use `sqrt*' and `sqrtex*'.
5439         * src/roff/troff/input.cc (init_charset_table): Make `sqrtex'
5440         overlap horizontally.
5442         * tmac/X.tmac, tmac/ps.tmac, tmac/lj4.tmac: Add `sqrtex'.
5443         * tmac/dvi.tmac: Add `sr', and `sqrtex'.
5444         Fix `radicalex'.
5446         * doc/groff.texinfo, man/groff_diff.man: Document that `radicalex'
5447         and `sqrtex' are overlapping glyphs.
5449 2003-01-04  Werner LEMBERG  <wl@gnu.org>
5451         * font/devdvi/generate/texsy.map: Add `is'.
5452         * font/devps/symbolmap: Regenerated.
5453         * font/devdvi/*TC, MI, S: Regenerated.
5455         * tmac/dvi.tmac: Remove `is'.
5457 2003-01-03  Werner LEMBERG  <wl@gnu.org>
5459         `is' is now a text symbol (only relevant for dvi).  The math variant
5460         can be accessed with `integral'.
5462         * font/devX*/S: Regenerated.
5463         * font/devdvi/generate/texex.map: Remove `is'.
5464         * font/devdvi/EX: Updated.
5465         * font/devhtml/R.proto, font/devutf8/R.proto: Add `integral'.
5466         * font/devlj4/generate/special.map: Ditto.
5467         * font/devlj4/S: Regenerated.
5468         * font/devps/generate/textmap: Add `integral'.
5469         * font/devps/S: Regenerated.
5471         * tmac/dvi.tmac: Define `is'.
5473         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Add `integral'.
5475         * src/preproc/tbl/main.cc (process_format): Fix error message.
5477 2003-01-02  Werner LEMBERG  <wl@gnu.org>
5479         * font/devhtml/R.proto, font/devutf8/R.proto: Add `ne' and `nc'.
5480         * font/devps/textmap: Fix entries for `ne' and `nc'.
5481         * font/devps/symbolmap: Regenerated.
5483         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list),
5484         src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Add `18',
5485         `38', `58', `78', `-+', `|=', `nc', `ne'.
5487         * tmac/dvi.tmac: Add `nm', `ne', `nc'.
5488         Use `schar' for `aq'.
5489         * tmac/ps.tmac, tmac/X.tmac: Add `nc' and `ne'.
5490         * tmac/ec.tmac: Add `SC' to special fonts for `CW' and `CWI'.
5491         * tmac/tty.tmac: Add `ne'.
5493         * src/roff/troff/node.cc (make_glyph_node): Test with `get_macro'
5494         for fallback glyphs.
5496 2002-12-29  Werner LEMBERG  <wl@gnu.org>
5498         Add glyph `|='.
5500         * font/devX*/*: Regenerated.
5501         * font/devdvi/generate/ec.map: Remove `eq'.
5502         * font/devdvi/generate/texsy.map: Make `~=' the same as `~~'.
5503         Assign `|=' to position 39.
5504         * font/devdvi/*EC, S: Regenerated.
5505         * font/devhtml/R.proto, font/devutf8/R.proto: Add `|='.
5506         * font/devlj4/generate/special.map: Make `~=' the same as `~~'.
5507         Assign `|=' to position 549.
5508         * font/devps/generate/textmap, font/devps/enerate/symbolmap: Remove
5509         `equalmath'.
5510         Add `uni2243' for `|='.
5512         * tmac/ec.tmac: Add `eq'.
5513         * tmac/dvi.tmac: Add `=~'.
5514         * tmac/tty-char.tmac, tmac/ps.tmac, tmac/X.tmac, tmac/lbp.tmac: Add
5515         `|='.
5517 2002-12-21  Werner LEMBERG  <wl@gnu.org>
5519         * font/devdvi/generate/tc.map: Remove `**'.
5520         * font/devdvi/*TC: Regenerated.
5521         * font/devhtml/R.proto, font/devutf8/R.proto: Add `18', `38', `58',
5522         `78', `<<', `>>'.
5523         * font/devutf8/NOTES: Updated.
5525         * src/roff/troff/charinfo.h (charinfo): Add `setx_macro' function.
5526         Don't give default parameter to `set_macro'.
5527         * src/roff/troff/input.cc (do_define_character): Use `setx_macro'
5528         instead of `set_macro'.
5529         (charinfo::setx_macro): Implement it.
5530         (charinfo::set_macro): Don't change `mode'.
5532         * tmac/tty.tmac: Add `18', `38', `58', `78', `<<', `>>'.
5533         * tmac/ps.tmac, tmac/X.tmac: Add `<<', `>>'.
5534         * tmac/dvi.tmac: Define `!=' with `.schar'.
5536 2002-12-20  Werner LEMBERG  <wl@gnu.org>
5538         * font/devX*/S: Regenerated.
5539         * font/devdvi/generate/ec.map: Remove `pl'.
5540         * font/devdvi/generate/tc.map: Remove `mi', `14', `12', `34'.
5541         * font/devdvi/*{TC,EC}: Regenerated.
5542         * font/devhtml/R.proto: Add `-+'.
5543         Remove double entries for `rk', `lk', `lt', `rt', `rb', `lb'.
5544         * font/devlbp/*: Remove `or'.
5545         * font/devlj4/generate/special.map: Remove `or'.
5546         * font/devlj4/S: Regenerated.
5547         * font/devps/generate/textmap: Add `fiveeighths', `oneeighth',
5548         `seveneighths', `threeeighths'.
5549         Remove `plusmath'.
5550         Replace `minusplus' with `uni2213'.
5551         * font/devps/symbolmap: Regenerated.
5552         * font/devutf8/R.proto: Replace `shc' with unnamed glyph.
5553         Add `-+'.
5555         * src/roff/troff/charinfo.h (charinfo): Add `is_normal' inline
5556         function.
5557         * src/roff/troff/node.cc (troff_output_file::put_char_width):
5558         Call glyph_color and fill_color even if tcommand_flag isn't set.
5559         (make_node, node::add_char): Check not ci->is_fallback but
5560         ci->is_normal.
5562         * tmac/lj4.tmac, tmac/lbp.tmac: Define `or'.
5563         * tmac/ec.tmac: Add .rchar entry for `f/'.
5564         Don't remove `12', `14', `34'.
5565         Define `pl' to be always roman.
5566         * tmac/ps.tmac (ps-frac, ps-frac-mono): New macros.
5567         Define `18', `38', `58', `78'.
5568         * tmac/tty.tmac: Add `-+'.
5569         * tmac/dvi.tmac: Define `f/'.
5570         (dvi-frac): Use `f/'.
5571         * tmac/X.tmac (X-frac, X-frac-mono): New macros.
5572         Define `18', `38', `58', `78'.
5574 2002-12-15  Colin Watson  <cjwatson@debian.org>
5576         * contrib/pic2graph/pic2graph.sh: Add missing `;;'.
5578 2002-12-10  Werner LEMBERG  <wl@gnu.org>
5580         Add glyph `tno', a textual variant of `no'.
5582         * font/devX*/*: Regenerated.
5583         * font/{devcp1047,devlatin1,devutf8,devhtml}/R.proto: Add `tno'.
5584         * font/devdvi/generate/{tc.map: Replace `no' with `tno'.
5585         * font/devdvi/generated/{texsy,textex}.map: Add `tno'.
5586         * font/devdvi/*: Regenerated.
5587         * font/devlbp/*: Add `tno'.
5588         * font/devlj4/generate/tex.map: Replace `no' with `tno'.
5589         * font/devlj4/*: Regenerated.
5590         * font/devps/generate/textmap: Replace `no' with `tno'.
5591         * font/devps/generate/symbolchars: Add `no'.
5592         * font/devps/*: Regenerated.
5594         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Add `tno'.
5596         * tmac/cp1047.tmac, tmac/latin1.tmac: Replace `no' with `tno'.
5597         * tmac/tty-char.tmac: Add entry for `tno' and `3d'.
5599         * NEWS: Updated.
5601         * tmac/dvi.tmac: Replace most `\\' with `\E'.
5602         Add definition for `sd'.
5603         * tmac/X.tmac, tmac/ps.tmac: Replace most `\\' with `\E'.
5605         * tmac/eqnrc <dvi>: Use `integral' instead of `is' glyph.
5607 2002-12-08  Werner LEMBERG  <wl@gnu.org>
5609         * tmac/an-old.tmac (TH): Use integer value for `IN' if in nroff
5610         mode to avoid rounding errors.
5611         (an-do-tag, an-do-tag-html, RS, RE): Remove redundant `.br'.
5613         * src/roff/groff/groff.man, src/roff/nroff/nroff.man,
5614         src/roff/troff/troff.man: Improve documentation of -T.
5616 2002-12-07  Jeff Conrad  <jeff_conrad@msn.com>
5618         * src/roff/groff/pipeline.c: Don't define `const' for _WIN32.
5619         (run_pipeline) [_WIN32]: Provide working function without `fork'.
5621 2002-12-06  Werner LEMBERG  <wl@gnu.org>
5623         * font/devps/generate/freeeuro.sfd: Make dimensions of Euro.symbol
5624         glyphs compatible to Adobe's Euro fonts (scaling them down a bit).
5625         Scaling Euro.sansserif glyphs down to have the same height as
5626         digits.
5627         Removed unnecessary points; added some extrema.
5629         * font/devps/EURO, font/devps/freeeuro.afm, font/devps/freeeuro.pfa:
5630         Regenerated.
5632 2002-12-04  Werner LEMBERG  <wl@gnu.org>
5634         * font/devps/generate/freeeuro.sfd: Add glyphs `Euro.symbol.slanted'
5635         and `Euro.symbol.bold.slanted'.
5636         Improve some glyph offsets and widths.
5637         * font/devps/EURO, font/devps/freeeuro.afm, font/devps/freeeuro.pfa:
5638         Regenerated.
5639         * font/devps/generate/Makefile (freeeuro.afm freeeuro.pfa): Fix
5640         typo.
5641         * font/devps/generate/sfdtopfa.pe: Generate PFA in current
5642         direcory.
5644         * tmac/europs.tmac: Updated to new glyph indices.
5645         Use Euro.symbol for font familiy `A'.
5647         * doc/groff.texinfo: Minor improvements.
5649 2002-12-02  Werner LEMBERG  <wl@gnu.org>
5651         * font/devdvi/generate.tc.map: s/%O/%0/.
5652         * font/devdvi/*TC: Regenerated.
5654         * src/roff/troff/div.cc (init_div_requests): Sorted.
5656         * tmac/dvi.tmac: Remove `Ye'.
5657         * tmac/ec.tmac: Remove `Ye'.
5658         Add .rchar entry for `de'.
5660         * man/groff.man, man/groff_diff.man: Document register `.pe'.
5661         * doc/groff.texinfo: Document registers `.pe', `.n', and `.w'.
5662         * NEWS: Updated.
5664 2002-11-30  Werner LEMBERG  <wl@gnu.org>
5666         Add PS font for various Euro glyphs.
5668         * font/devps/generate/freeeuro.sfd: New master font file for
5669         pfaedit.
5670         * font/devps/generate/sfdtopfa.pe: New conversion script for
5671         pfaedit.
5672         * font/devps/generate/Makefile (FONTS): Add `EURO'.
5673         (EURO, freeeuro.afm, freeeuro.pfa): New rules.
5674         * font/devps/freeeuro.pfa, font/devps/freeeuro.afm: Generated from
5675         `freeeuro.sfd'.
5676         * font/devps/EURO: Generated from `freeeuro.afm'.
5677         * font/devps/download: Add `freeuro.pfa'.
5678         * font/devps/Makefile.sub (NORMALFILES): Adde `EURO' and
5679         `freeeuro.pfa'.
5681         * tmac/europs.tmac: New file.
5682         * tmac/ps.tmac: Include `europs.tmac'.
5683         * tmac/Makefile.sub (DISTFILES): Add `europs.tmac'.
5685 2002-11-29  Werner LEMBERG  <wl@gnu.org>
5687         * font/devdvi/generate/texsy.map: Remove `lh' and `rh'.
5688         * font/devdvi/S: Regenerated.
5689         * font/devhtml/R.proto: Fix `CR' and `ci'.
5690         Add `OK'.
5691         * font/devps/generate/textmap: Fix `lh', `rh', and `sq'.
5692         Remove `bs'.
5693         * font/devps/symbolmap: Regenerated.
5694         * font/devutf8/R.proto: Fix `CR' and `ci'.
5695         Add `OK'.
5696         * font/devutf8/NOTES: Updated.
5698         * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Fix `CR' and
5699         `ci'.
5700         Add `OK'.
5701         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Ditto.
5703         * tmac/dvi.tmac: Add `lh' and `rh'.
5704         * tmac/Xps.tmac: Fix `lh' and `rh'.
5705         * tmac/X.tmac: Add `OK'.
5706         * tmac/lj4.tmac: Ditto.
5708 2002-11-24  Werner LEMBERG  <wl@gnu.org>
5710         * font/devX*/S: Regenerated.
5711         * font/devascii/R.proto, font/devcp1047/R.proto: Remove glyphs `lb',
5712         `lc', `lf', `lk', `lt', `rb', `rc', `rf', `rk', and `rt'.
5713         * font/devdvi/generate/texsy.map: Remove `or' glyph.
5714         * font/devdvi/S: Regenerated.
5715         * font/devhtml/R.proto, font/devutf8/R.proto: Add/fix glyphs
5716         `parenlefttp', `parenleftex', `parenleftbt', `parenrighttp',
5717         `parenrightex', `parenrightbt', `bracketlefttp', `bracketleftex',
5718         `bracketleftbt', `bracketrighttp', `bracketrightex',
5719         `bracketrightbt', `bracelefttp', `braceleftmid', `braceleftbt',
5720         `braceex', `braceleftex', `bracerightex', `bracerighttp',
5721         `bracerightmid', `bracerightbt', `lt', `lk', `lb', `rt', `rk',
5722         `rb', and `bv'.
5723         * src/roff/troff/glyphuni.cc, src/roff/troff/uniglyph.cc: Ditto.
5724         * font/devutf8/NOTES: Updated.
5725         * font/devlj4/generate/special.map: Add glyph `braceex'.
5726         * font/devlj4/S: Regenerated.
5728         * tmac/tty-char.tmac: Add glyphs `lf', `rf', `lc', and `rc'.
5730 2002-11-14  Werner LEMBERG  <wl@gnu.org>
5732         * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Add `va'
5733         and `vA'.
5734         Fix code for `an'.
5735         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Ditto.
5737         * doc/texinfo.tex: New version from texinfo 4.3.
5738         * doc/groff.texinfo: Updated for texinfo 4.3.
5739         Use @tie{} where appropriate.
5740         * font/devdvi/generate/ec.map: Don't include `or' and `bv'.
5741         * font/devdvi/generate/tc.map: Remove `rn'.
5742         * font/devdvi/*TC, font/devdvi/*EC: Regenerated.
5743         * font/devhtml/R.proto, font/devutf8/R.proto: Add `vA'.
5744         Fix code for `an'.
5745         * font/devX100/*, font/devX100-12/*, font/devX75/*,
5746         font/devX75-12/*: Regenerated.
5748         * tmac/dvi.tmac: Add special fonts `SA' and `SB'.
5749         Use .char (again) for `br', `ul', `rn', `or', and `ru'.
5750         Improve definition of `an'.
5751         * tmac/ps.tmac: Use .char (again) for `br', `ul', `rn', `or', and
5752         `ru'.
5753         * tmac/lj4.tmac: Use .char (again) for `br', `ul', `rn', and `ru'.
5754         * tmac/X.tmac: Add definition for `or'.
5755         * tmac/Xps.tmac: Undo change 2002-11-05.
5756         * tmac/lbp.tmac: Add definitions for `br', `rn', `ul', and `ru'.
5758 2002-11-11  Werner LEMBERG  <wl@gnu.org>
5760         * src/roff/troff/node.cc (troff_output_file::put_char): Always
5761         call flush_tbuf.
5763 2002-11-10  Werner LEMBERG  <wl@gnu.org>
5765         Added three new requests `schar', `fschar', and `rfschar'.  `schar'
5766         defines a glyph which is searched after the check for fonts declared
5767         with `.special' (and before the check for all mounted special
5768         fonts).  `fschar' defines a glyph for a particular font which is
5769         searched after the check for fonts declared with `.fspecial' (and
5770         before the check for fonts declared with `.special').  `rfschar'
5771         removes glyphs defined with `fschar'.
5773         * src/roff/troff/token.h (char_mode): New enum.
5774         Declare do_define_character.
5775         * src/roff/troff/charinfo.h (charinfo): Replace `fallback' with
5776         `mode'.
5777         (charinfo::is_fallback): Updated.
5778         (charinfo::is_special): New method.
5779         * src/roff/troff/input.cc (do_define_character): Add and use
5780         optional second parameter used as a prefix for font-specific glyph
5781         names.
5782         (define_character, define_fallback_character): Updated.
5783         (define_special_character): New function.
5784         (init_input_requests): Add `schar'.
5785         (charinfo::charinfo, charinfo::set_macro): Updated.
5786         * src/roff/troff/node.cc: Include `stringclass.h'.
5787         (make_glyph_node): Handle special glyphs defined with `.schar' and
5788         `.fschar'.
5789         (define_font_special_character, remove_font_special_character): New
5790         functions.
5791         (init_node_requests): Sorted.
5792         Add `fschar' and `rfschar'.
5793         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
5794         Document new requests.
5796         * font/devhtml/R.proto, font/devutf8/R.proto: Add `va'.
5797         * tmac/dvi.tmac: Add `va' for CW and CWI (using `.fschar').
5799 2002-11-08  Werner LEMBERG  <wl@gnu.org>
5801         Added new font `SC' (cmtex10) to devdvi.
5803         * devdvi/generate/Makefile (FONTS): Add `SC'.
5804         (SC): New rule.
5805         * devdvi/generate/textex.map: New map file for cmtex.
5806         * devdvi/SC: New.
5807         * devdvi/Makefile.sub (DEVFILES): Updated.
5808         * tmac/dvi.tmac: Add fspecial entries for SC.
5809         Add `MI', `S' and `CW' to the `special' call.  Otherwise, `SC' is
5810         found before `S' since the font position of `SC' is lower due to the
5811         gaps in DESC's `font' line.
5812         * tmac/ec.tmac: Add a `special' call.
5813         * NEWS: Updated.
5815         * font/devhtml/R.proto: Remove double entry for `ti'.
5816         * tmac/tty.tmac: Add entries for `IJ', `ij', and `bq'.
5817         * tmac/tty-char.tmac: Remove entry for `bq'.
5818         * tmac/lbp.tmac: Add entries for `lq', `rq', `fo', `fc', and `em'.
5819         * tmac/ec.tmac: Don't remove `aq' glyph.
5820         * tmac/X.tmac: Fix entry for `em'.
5821         Add entries for `fo' and `fc'.
5822         * tmac/dvi.tmac: Add entries for `em', `en', `hy', `fo', and `fc'.
5824         * doc/groff.texinfo, man/groff.man, man/groff_diff.man: Fix
5825         documentation of `special' and `fspecial' requests.
5827 2002-11-05  Werner LEMBERG  <wl@gnu.org>
5829         * font/devascii/R.proto, font/devcp1047/R.proto,
5830         font/devlatin1/R.proto: Remove entry for `.i'.
5831         * font/devdvi/generate/textt.map: Add entry for `ad'.
5832         * font/devdvi/generate/texr.map, font/devdvi/generate/texb.map,
5833         font/devdvi/generate/texi.map: Add dummy glyph name `slash@for@l'.
5834         We need this for getting kerning values to compose `/l' and `/L'.
5835         * font/devdvi: Regenerated font definition files for CM fonts.
5836         * font/devhtml/R.proto: Add entries for "'C", "'c", `IJ', and `ij'.
5837         * font/devutf8/R.proto: Ditto.
5838         Remove double entry for `ti'.
5840         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Fix entries
5841         for (groff) ligatures, `la', and `ra'.
5842         Add "'C", "'c", `IJ', and `ij'.
5843         Remove double entry for `ti'.
5844         * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Remove all
5845         double entries.
5846         Add "'C", "'c", `IJ', and `ij'.
5847         Fix entries for (groff) ligatures, `la', and `ra'.
5849         * tmac/ps.tmac (ps-achar): New macro.
5850         Define "'c" and "'C".
5851         * tmac/tty.tmac: Add entry for `.i'.
5852         * tmac/X.tmac (X-achar): New macro.
5853         Define "'c", "'C", and `:Y'.
5854         Add entries for `IJ' and `ij'.
5855         * tmac/Xps.tmac (Xps-achar): New macro.
5856         Define "'c" and "'C".
5857         Add entries for `IJ' and `ij'.
5858         * tmac/lbp.tmac (lbp-achar): New macro.
5859         Add fallback characters for all groff ligatures and many other
5860         glyphs.
5861         * tmac/dvi.tmac: Fix definitions of `_' and `ul'.
5862         Add entries for `/l' and `/L'.
5863         Define "'c" and "'C".
5864         Add entries for `IJ' and `ij'.
5866 2002-11-02  Larry Kollar  <kollar@alltel.net>
5868         * PROBLEMS: Document how to solve Mac OS X compilation problems.
5870 2002-11-02  Werner LEMBERG  <wl@gnu.org>
5872         Adding support for composite glyphs: \[xxx yyy ...] and the
5873         `composite' request.
5875         * src/roff/troff/glyphuni.cc: New file for mapping groff glyph names
5876         to Unicode-based glyph names.
5877         * src/roff/troff/uniglyph.cc: New file for mapping Unicode-based
5878         glyph names to groff glyph names.
5879         * src/roff/troff/uniuni.cc: New file for canonically decomposing
5880         Unicode-based glyph names.
5881         * src/roff/troff/unicode.cc, src/roff/troff/unicode.h: New files
5882         for handling Unicode glyph names.
5883         * src/roff/troff/input.cc: Include unicode.h.
5884         (composite_glyph_name): New function.
5885         (token::next) <'['>: Handle Unicode glyph names and composite
5886         glyphs.
5887         (composite_dictionary): New dictionary for the `composite' request.
5888         (composite_request): Implement `composite' request.
5889         (init_input_requests): Add `composite'.
5890         Alphabetically sorted.
5891         * src/roff/troff/env.cc (tabs_save, tabs_restore): Removed (already
5892         commented out).
5893         (init_env_requests): Alphabetically sorted.
5894         Removed `tas' and `tar' (already commented out).
5895         * src/roff/troff/Makefile.sub: Updated.
5897 2002-10-31  Ruslan Ermilov  <ru@FreeBSD.org>
5899         * src/roff/nroff/nroff.man, src/roff/nroff/nroff.sh: Fix description
5900         of options.
5902 2002-10-29  Werner LEMBERG  <wl@gnu.org>
5904         Fix computation of .trunc register.  Additionally, its value (and
5905         the value of the .ne register) is now always set before entering the
5906         trap.
5908         * src/roff/troff/div.cc (diversion::need): Set `truncated_space' and
5909         `needed_space' before calling `space'.
5910         (top_level_diversion::space): Remove special code for 'sp before the
5911         first page.
5912         Call `begin_page' with the discarded space as a parameter.
5913         (top_level_diversion::begin_page): Add optional parameter to set
5914         `truncated_space'.
5915         * src/roff/troff/div.h: Updated.
5917         * doc/groff.texinfo: Improve documentation of .sp, \n[.trunc], and
5918         \n[.ne].
5920         * tmac/an-old.tmac (SH, SS, TP, IP, HP, TS): Undo change 2002-10-26.
5921         (LP): Remove superfluous call to `br'.
5922         * tmac/doc-common (doc-paragraph): Undo change 2002-10-26.
5923         * tmac/doc.tmac (Bd, Bl, doc-set-vertical-and-indent): Ditto.
5925 2002-10-26  Werner LEMBERG  <wl@gnu.org>
5927         * tmac/doc-ditroff: Remove useless switch/variable -rC.
5928         (doc-setup-header): Don't set page register `%'.
5929         * tmac/doc-nroff: Remove variable `C'.
5930         (doc-setup-page-layout): Set doc-header-space to .5i unconditionally.
5931         (doc-setup-header): Don't set page register `%'.
5932         Don't call `bp'.
5933         * tmac/doc-common (doc-header): Call `ns'.
5934         (doc-paragraph): Protect .sp with .br so that it survives traps
5935         possibly set by the user.
5936         * tmac/doc.tmac (Bd, Bl, doc-set-vertical-and-indent): Ditto.
5938         * tmac/doc*: Replace ' with . for consistency if no effect.
5940 2002-10-26  Werner LEMBERG  <wl@gnu.org>
5942         * tmac/an-old.tmac (SH, SS, TP, IP, HP, TS): Protect .sp with .br
5943         so that it survives traps possibly set by the user.
5945         * src/roff/troff/node.cc: Fix the changes from 2002-10-23.
5946         (troff_output_file::set_font): Call flush_tbuf if necessary.
5947         (troff_output_file::fill_color, troff_output_file::glyph_color): Call
5948         flush_tbuf and do_motion only if necessary.
5949         (troff_output_file::start_special,
5950         troff_output_file::put_char_width, troff_output_file::put_char,
5951         troff_output_file::draw): Updated.
5952         (word_space_node::tprint, space_node::tprint, hmotion_node::tprint,
5953         vmotion_node::tprint): Undo change 2002-10-23.
5955 2002-10-25  Werner LEMBERG  <wl@gnu.org>
5957         * tmac/www.tmac (DC): Fix case of overlapping images.
5959 2002-10-23  Werner LEMBERG  <wl@gnu.org>
5961         * src/roff/troff/node.cc (troff_output_file::fill_color,
5962         troff_output_file::glyph_color): Set current color before testing
5963         color_flag.
5964         (troff_output_file::put_char_width, troff_output_file::put_char,
5965         troff_output_file::draw): Don't call flush_tbuf and/or do_motion
5966         before glyph_color.
5967         (troff_output_file::file_color, troff_output_file::glyph_color):
5968         Call do_motion.
5969         (word_space_node::tprint, space_node::tprint, hmotion_node::tprint,
5970         vmotion_node::tprint): Move first, then call fill_color.
5972 2002-10-20  Werner LEMBERG  <wl@gnu.org>
5974         * doc/groff.texinfo, man/groff_tmac.man: Document that it is not
5975         possible to use multiple main macro packages.
5977 2002-10-19  Werner LEMBERG  <wl@gnu.org>
5979         * src/devices/grops/ps.cc (cmyk_flag): New global variable.
5980         (ps_printer::set_color): Set `cmyk_flag' for CMY and CMYK colors.
5981         (ps_printer::~ps_printer): Emit `%%Extensions: CMYK' if `cmyk_flag'
5982         is set.
5983         * font/devps/prologue.ps (Fk, Ck): Enclose definitions with a
5984         `where' construction since `cmyksetcolor' is a PS Level 2 operator.
5986 2002-10-16  Werner LEMBERG  <wl@gnu.org>
5988         * NEWS, doc/webpage.ms: Updated.
5990 2002-10-14  Werner LEMBERG  <wl@gnu.org>
5992         * src/roff/troff/node.cc (troff_output_file::put_char_width,
5993         troff_output_file::put_char, troff_output_file::fill_color,
5994         troff_output_file::glyph_color): Handle case where color pointer
5995         is null.
5997 2002-10-13  Ruslan Ermilov  <ru@FreeBSD.org>
5999         Add the new -r option to grotty.  It is similar to the -i option
6000         except it tells grotty(1) to use the `reverse video' attribute to
6001         render italic fonts.
6003         * src/devices/grotty/tty.cc (reverse_flag): New global variable.
6004         (SGR_REVERSE, SGR_NO_REVERSE): New macros.
6005         (tty_printer::make_underline, tty_printer::put_color,
6006         tty_printer::end_page): Use it.
6007         (main): Add -r switch.
6008         (usage): Updated.
6009         * src/devices/grotty/grotty.man: Document it.
6011 2002-10-11  Ruslan Ermilov  <ru@FreeBSD.org>
6013         * src/roff/troff/env.cc (hyphen_trie::read_patterns_file): Add
6014         cast to `unsigned char' to properly read patterns with 8bit
6015         characters.
6017 2002-10-08  Werner LEMBERG  <wl@gnu.org>
6019         * REVISION: Increased to 2.
6021 Local Variables:
6022 version-control: never
6023 coding: latin-1
6024 End: