* ChangeLog: Split off older entries into...
[s-roff.git] / ChangeLog
blobf30c7fb81f0271230b71b1ebe9dd355857a12aaa
1 2005-06-28  Werner LEMBERG  <wl@gnu.org>
3         * ChangeLog: Split off older entries into...
4         * ChangeLog.115 ChangeLog.116, ChangeLog.117, ChangeLog.118: New
5         files.
7 2005-06-26  Bernd Warken
9         * src/devices/xditview/gxditview.man: More minor fixes.
11 2005-06-24  Werner LEMBERG  <wl@gnu.org>
13         * src/preproc/pic/troff.cpp (troff_output::set_fill,
14         troff_output::set_color, troff_output::reset_color): Use .bcolor and
15         .fcolor instead of \m and \M, respectively.
17 2005-06-23  Bernd Warken
19         * src/devices/xditview/gxditview.man: More minor fixes.
20         * README: Formatting issues.
21         Mention some problems with Debian.
23 2005-06-23  Bernd Warken
25         * src/devices/xditview/gxditview.man: Revised and improved.
27 2005-06-22  Werner LEMBERG  <wl@gnu.org>
29         Another round in fixing getopt problems.  Hopefully the last one!
30         This time we use the getopt stuff from gnulib and define a prefix
31         unconditionally so that there are no collisions with any other
32         getopt implementations.  This is a slight waste of space in case
33         we already use a GNU getopt implementation, but on
34         the other hand it really simplifies life.
36         * src/include/getopt.h: Use gnulib version.
38         * src/include/getopt_int.h: Use gnulib version.
40         * src/include/groff-getopt.h: Removed.  Obsolete now.
42         * src/include/lib.h: Regarding getopt, don't handle any platform
43         specially; just include getopt.h.
44         (__GETOPT_PREFIX): Define (before getopt.h).
46         * src/include/Makefile.sub (HDRS): Updated.
48         * src/libs/libgroff/getopt1.c, src/libs/libgroff/getopt.c: Use
49         gnulib version.
51         * src/libs/libgroff/Makefile.sub (EXTRA_CFLAGS): Set
52         __GETOPT_PREFIX.
54         * src/utils/pfbtops/pfbtops.c, src/utils/xtotroff/xtotroff.c
55         (__GETOPT_PREFIX): Define (before getopt.h).
57 2005-06-21  Werner LEMBERG  <wl@gnu.org>
59         * src/include/lib.h: Provide a fix for Mac OS X to not include
60         groff-getopt.h.
62 2005-06-20  Denis M. Wilson  <dmw@oxytropis.plus.com>
64         * font/devps/prologue.ps (EP): Dont' use `bind'.  Reason: Using
65         `bind' to define a procedure which contains `showpage' means that an
66         invocation of `showpage' may execute wrongly (the exact effect
67         depending on the interpreter).  Not usually a problem except under
68         transformations, such as combining pages.
69         (PEND): Don't call `clear'.  Reason: Using `clear' in the definition
70         of /PEND means that stack underflow will occur if the stack is
71         deliberately non-empty before document inclusion.  If included
72         files are found to be generally badly behaved, we could replace the
73         `clear' with `mark' in /PBEGIN and `cleartomark' in /PEND (I've
74         never found this necessary).
76 2005-06-20  Jörgen Grahn  <jgrahn@algonet.se>
78         * src/preproc/soelim/soelim.cpp (do_file): Append trailing zero
79         earlier to get correct error message.
81 2005-06-16  Bernd Warken
82         * src/roff/nroff/nroff.sh: Add support for iso-8859-15.
84 2005-06-15  Werner LEMBERG  <wl@gnu.org>
86         Another try to update getopt files.  This time we add a dummy
87         gettext.h file to satisfy the dependency.
89         * src/include/getopt.h, src/libs/libgroff/getopt.c,
90         src/libs/libgroff/getopt1.c: Updated from GNU libc CVS.
92         * src/include/getopt_int.h: New file (from GNU libc CVS).
94         * src/include/gettext.h: Dummy file which just defines a gettext()
95         macro.
97         * src/include/groff-getopt.h: Updated.
99         * src/include/Makefile.sub (HDRS): Add getopt_int.h and gettext.h.
102         * src/libs/libdriver/input.cpp (IntArray): Remove superfluous
103         `const' keywords in return value.
105         * src/preproc/html/pushback.cpp (pushBackBuffer::~pushBackBuffer):
106         Remove redundant variable `old'.
107         (pushBackBuffer::skipToNewline): Remove redundant variable `ch'.
109         * src/preproc/tbl/main.cpp (process_table): Remove redundant
110         variable `c'.
113         Fix more friend name injection problems since modern C++ compilers
114         fail otherwise.  We simply provide (global) declarations for all
115         functions declared as friends.  This is not really necessary but
116         doesn't harm.
118         * src/preproc/eqn/lex.cpp: Provide declarations for get_char,
119         peek_char, and get_location.
121         * src/preproc/refer/ref.h: Provide declarations for
122         compare_reference, same_reference, same_year, same_date,
123         same_author_last_name, and same_author_name.
125         * src/roff/troff/div.h: Provide declarations for do_divert and
126         page_offset.
128         * src/roff/troff/env.h: Provide declarations for title_length,
129         space_size, fill, no_fill, adjust, no_adjust, center, right_justify,
130         vertical_spacing, post_vertical_spacing, line_spacing, line_length,
131         indent, temporary_indent, do_underline, do_input_trap, set_tabs,
132         margin_character, no_number, number_lines, leader_character,
133         tab_character, hyphenate_request, no_hyphenate,
134         hyphen_line_max_request, hyphenation_space_request,
135         hyphenation_margin_request, line_width, tabs_save, tabs_restore,
136         line_tabs_request, widow_control_request, and do_divert.
138         * src/roff/troff/input.cpp: Provide declaration for chop_macro.
140         * src/roff/troff/node.cpp: Provide declarations for class
141         tfont_spec.
142         Provide declaration for make_tfont.
144 2005-05-29  Werner LEMBERG  <wl@gnu.org>
146         * doc/fdl.texi: Updated to version 1.2.  Reported by Bernd Warken.
148 2005-05-28  Werner LEMBERG  <wl@gnu.org>
150         * contrib/pdfmark/Makefile.sub (.ms.pdf): Use `--stylesheet', not
151         `--style'.
153         * src/devices/grolbp/lbp.cpp, src/devices/grolbp/lbp.h: Remove
154         redundant semicolons.
156         * src/preproc/eqn/Makefile.sub, src/preproc/html/Makefile.sub,
157         src/preproc/soelim/Makefile.sub, src/preproc/tbl/Makefile.sub:
158         Define `MLIB'.  Some compilers need this for linking with libgroff.
160 2005-05-27  Werner LEMBERG  <wl@gnu.org>
162         * MANIFEST, README, doc/webpage.ms: Updated.
164 2005-05-26  Werner LEMBERG  <wl@gnu.org>
166         * All affected files: Update postal address of FSF.
168 2005-05-25  Keith Marshall  <keith.d.marshall@ntlworld.com>
169             Bernd Warken
171         * README: More fixes.
173         * README.CVS: Removed.  Its contents is now part of the README file.
175 2005-05-21  Werner LEMBERG  <wl@gnu.org>
177         * README: Updated.  Based on a patch from Bernd Warken.
179 2005-05-16  Keith Marshall  <keith.d.marshall@ntlworld.com>
181         Miscellaneous script portability enhancements.
183         * aclocal.m4: (GROFF_CSH_HACK): Add space in shebang prototype for
184         generated conftest.sh script, conforming to portability
185         recommendation in autoconf docs.
186         * configure: Likewise, for code generated by GROFF_CSH_HACK.
187         * contrib/eqn2graph/eqn2graph.sh: Add space in shebang, conforming
188         to portability recommendation in autoconf docs.
189         * contrib/gdiffmk/gdiffmk.sh: Likewise.
190         * contrib/gdiffmk/tests/runtests.in: Likewise.
191         * contrib/grap2graph/grap2graph.sh: Likewise.
192         * contrib/groffer/groffer.sh: Likewise.
193         * contrib/mm/mmroff.pl: Likewise.
194         * contrib/mom/momdoc/appendices.html: Likewise.
195         * contrib/pic2graph/pic2graph.sh: Likewise.
196         * font/devps/generate/afmname: Likewise.
197         * src/devices/xditview/ad2c: Likewise.
198         * src/preproc/eqn/neqn.sh: Likewise.
199         * src/roff/grog/grog.pl: Likewise.
200         * src/roff/grog/grog.sh: Likewise.
201         * src/roff/nroff/nroff.sh: Likewise.
202         * PROBLEMS: Likewise, in embedded script examples.
204 2005-05-16  Keith Marshall  <keith.d.marshall@ntlworld.com>
206         Improve portability of `pdfroff' shell script.
208         * arch/misc/shdeps.sh: Add space in shebang, conforming to
209         portability guidelines in `autoconf' docs.
210         (PATH_SEARCH_SETUP): New substitution; emits PATH_SEPARATOR
211         initialization code.  Used by contrib/pdfmark/pdfroff.sh's
212         `searchpath' function.
214 2005-05-14  Werner LEMBERG  <wl@gnu.org>
216         * contrib/pic2graph/pic2graph.sh, contrib/graph2graph.sh,
217         contrib/eqn2graph.sh: Add option `-trim' to `convert' which is
218         needed for newer ImageMagick versions.
220 2005-05-07  Werner LEMBERG  <wl@gnu.org>
222         * src/preproc/refer/refer.man: Many small typographic fixes.
224 2005-05-06  Jeff Conrad  <jeff_conrad@msn.com>
226         * src/devices/grohtml/post-html.cpp (assert_state::~assert_state):
227         Use `char *' cast for a_delete.
229 2005-05-03  Werner LEMBERG  <wl@gnu.org>
231         * src/libs/libgroff/maxpathname.cpp: Include stdlib.h.
232         src/libs/libgroff/relocate.cpp: Use path_name_max everywhere.
234 2005-05-03  Jeff Conrad  <jeff_conrad@msn.com>
236         * src/devices/grohtml/post-html.cpp: Use casts to `char *' if using
237         `a_delete' for `const char *'.
239 2005-05-03  Werner LEMBERG  <wl@gnu.org>
241         * src/devices/grohtml/post-html.cpp,
242         src/devices/grohtml/html-table.cpp,
243         src/devices/grohtml/html-text.cpp, src/devices/grohtml/output.cpp:
244         Replace malloc/free with new/delete/a_delete.
246         * src/devices/grolbp/lbp.h: Remove superfluous semicolons which
247         are prohibited with ANSI C++.
248         (lbpprintf, vdmprintf): Remove useless `inline' keyword (since the
249         function has a variable number of arguments).
251         * src/preproc/grn/main.cpp (doinput): Change return type to `int'.
252         Simplify function and update all callers.
254 2005-05-02  Werner LEMBERG  <wl@gnu.org>
256         Undo getopt changes from 2005-04-30.  We don't want a dependency
257         on gettext.
259         * src/include/getopt_int.h: Removed.
261         * src/include/getopt.h, src/include/groff-getopt.h,
262         src/include/Makefile.sub, src/libs/libgroff/getopt.c,
263         src/libs/libgroff/getopt1.c: Revert to previous version.
266         * src/include/nonposix.h (access) [_MSC_VER]: New macro.
268         * src/include/posix.h (F_OK): Define conditionally.
270         * src/devices/grotty/tty.cpp (tty_printer::make_underline): Use
271         different variable name in second `for' loop to avoid MSVC compiler
272         problem.
274 2005-04-30  Werner LEMBERG  <wl@gnu.org>
276         AC_TYPE_SIGNAL from current autoconf can fail if CC=g++.
278         * aclocal.m4 (GROFF_TYPE_SIGNAL): New function.
279         * configure.ac: Use GROFF_TYPE_SIGNAL, not AC_TYPE_SIGNAL.
280         * configure, src/include/config.hin: Regenerated.
282         * PROBLEMS: Updated.
285         Update getopt files.
287         * src/include/getopt.h, src/libs/libgroff/getopt.c,
288         src/libs/libgroff/getopt1.c: Updated from GNU libc CVS.
290         * src/include/getopt_int.h: New file (from GNU libc CVS).
292         * src/include/groff-getopt.h: Updated.
294         * src/include/Makefile.sub (HDRS): Add getopt_int.h.
297         * font/devutf8/NOTES: Updated.
299 2005-04-28  Werner LEMBERG  <wl@gnu.org>
301         Bug fix for Win32 relocatable code.  Based on a patch from Keith
302         Marshall.
304         * src/libs/libgroff/maxpathname.cpp (PATH_MAX): Test for `_MAX_PATH'
305         also.
307         * src/libs/libgroff/relocate.c (DEBUG): Define it conditionally.
308         (searchpath) [_WIN32]: Use `_fullpath', not `realpath'.
310 2005-04-28  Keith Marshall  <keith.d.marshall@ntlworld.com>
312         Correct `gnu.eps' handling for build from distribution tarball, with
313         separate source and build directories.
315         * doc/Makefile.sub: (examples.stamp): New target; forces copy of
316         grnexmpl.g, groff.css and gnu.eps from source to build directory;
317         generate gnu.eps from gnu.xpm if required; touch examples.stamp.
318         (prepare_examples): Make it depend on examples.stamp.
319         (CLEANADD): Add examples.stamp.
321 2005-04-27  Werner LEMBERG  <wl@gnu.org>
323         Implement the rule
325           position: '(' position ')'
327         in pic.
329         * src/preproc/pic/pic.y (position, position_not_place): Handle
330         additional parentheses.
332         * doc/pic.ms: Updated.
334 2005-04-23  Larry Jones  <lawrence.jones@ugs.com>
336         * src/utils/xtotroff/xtotroff.c (MapFont): Fix variable declaration.
338 2005-04-18  Werner LEMBERG  <wl@gnu.org>
340         * src/roff/groff/pipeline.c: Don't include ctype.h.
342 2005-04-13  Werner LEMBERG  <wl@gnu.org>
344         * src/roff/nroff/nroff.man: Document option `-M'.
346 2005-04-13  Bruce Lilly  <blilly@erols.com>
348         * src/roff/nroff/nroff.sh: Make the script accept option `-M'.
350 2005-04-01  Kees Zeelenberg  <kzlg@users.sourceforge.net>
351             Werner LEMBERG  <wl@gnu.org>
353         Add binary relocation support for Windows platforms.
355         * src/include/Makefile.sub (defs.h): Add `INSTALLPATH'.
357         * src/include/relocate.h, src/libs/libgroff/relocate.cpp: New files.
359         * src/libs/libgroff/searchpath.cpp: Handle `relocate'.
360         (search_path::search_path, search_path::open_file_cautious): Use
361         `relocate'.
363         * src/libs/libgroff/Makefile.sub (OBJS, CCSRCS),
364         src/include/Makefile.sub (HDRS): Updated.
366 2005-04-01  Werner LEMBERG  <wl@gnu.org>
368         * src/devices/grohtml/post-html.cpp: Don't use strdup/free but
369         strsave/a_delete.
371         * src/libs/libgroff/font.cpp: Replace strdup with strsave.
373         * src/libs/libgroff/maxfilename.cpp: Don't include limits.h since
374         lib.h already does it.
376         * src/libs/libgroff/maxpathname.cpp: New file, defining
377         path_name_max.
379         * src/include/lib.h: Add prototype for path_name_max.
381         * src/libs/libgroff/Makefile.sub (OBJS, CCSRCS): Updated.
383         * src/include/nonposix.h (PATH_EXT): New macro.
385 2005-03-28  Werner LEMBERG  <wl@gnu.org>
387         Add support for double- and zero-width characters in grotty.
389         * src/devices/grotty/tty.cpp (glyph): Add width.
390         (tty_printer::make_underline, tty_printer::make_bold,
391         tty_printer::add_character): Add parameter to pass character width.
392         Update all callers.
393         (tty_printer::end_page): Increase hpos by actual character width.
395         * font/devutf8/R.proto: Specify zero width for non-spacing
396         characters.
398         * tmac/unicode.tmac: Remove definitions for non-spacing entities.
400         * Makefile.comm (extraclean): Remove more junk files.
402 2005-03-25  Werner LEMBERG  <wl@gnu.org>
404         * configure.ac: Undo change from 2005-03-24.
405         * configure: Regenerated.
407 2005-03-24  Werner LEMBERG  <wl@gnu.org>
409         * Makefile.in (NOMAKEDIRS): Add contrib/gdiffmk/tests.
410         (dist): Search Makefile while descending into $(EXTRADIRS).
412         * doc/Makefile.in (.PHONY): Add.
413         (clean): Don't remove *.png and *.eps.
414         Don't handle *.gif.
415         (realclean): Remove *.png and *.eps.
416         (extraclean): Depend on distclean.
418         * configure.ac: Add copyright.
419         Handle contrib/pdfmark/Makefile.
421         * configure: Regenerated.
423 2005-03-18  Larry Kollar  <kollar@alltel.net>
425         Add numbered and definition lists to www.tmac.
427         * tmac/www.tmac (www-ul-level1, www-ul-level2, www-ul-level3,
428         www-ol-level1, www-ol-level2, www-ol-level3, www-ol-tmp): New
429         auxiliary string registers.
430         (www-ul-level, www-ol-level, www-dl-level, www-ol-ctr1, www-ol-ctr2,
431         www-ol-ctr3, www-dl-shift): New auxiliary number registers.
432         (www-level): Removed.
433         (www-level1, www-level2, www-level3): Initialize to empty.
434         (www-level0, www-level4, www-level5, www-level6, www-level7,
435         www-level8, www-level9): New string registers.
436         (www-push-li, www-pop-li): New macros.
437         (www-push-level, www-pop-level): Renamed to...
438         (www-push-ul-level, www-pop-ul-level): This.
439         Updated.
440         (www-push-ol-level, www-pop-ol-level): New macros.
441         (ULS, ULE): Updated.
442         (OLS, OLE, DLS, DLE): New user macros.
443         (LI): Removed.  It is aliased to one of...
444         (www-li-ul, www-li-ol, www-li-dl): New macros.
446         * tmac/groff_www.man: Document new macros.
448         * NEWS: Updated.
450 2005-03-18  Werner LEMBERG  <wl@gnu.org>
452         * tmac/doc-common (doc-operating-system-NetBSD-2.0.1,
453         doc-operating-system-NetBSD-2.0.2): New strings.
455         * tmac/groff_mdoc.man: Updated.
457 2005-03-17  Werner LEMBERG  <wl@gnu.org>
459         * doc/Makefile.sub (CLEANADD): Add `groff.html'.
461 2005-03-17  Werner LEMBERG  <wl@gnu.org>
463         * src/libs/libgroff/hypot.c: Renamed to...
464         * src/libs/libgroff/hypot.cpp: This.  Updated to C++.
466         * src/libs/libgroff/Makefile.sub (CCSRCS, CSRCS): Updated.
468         * src/include/lib.h: Updated.
470 2005-03-16  Werner LEMBERG  <wl@gnu.org>
472         Add workaround for broken hypot() on Interix.
474         * src/libs/libgroff/hypot.c: New wrapper file for `hypot'.
476         * src/libs/libgroff/Makefile.sub (OBJS): Add `hypot.o'.
477         (CSRCS): Add `hypot.c'.
479         * src/include/lib.h: Declare `groff_hypot'.
481         * src/preproc/grn/hgraph.cpp: Don't declare `hypot'.
482         Use `groff_hypot'.
484         * src/preproc/pic/pic.h: Don't declare `hypot'.
486         * src/preproc/pic/object.cpp (hypot): Use `groff_hypot'.
488 2005-03-15  Gaius Mulley  <gaius@glam.ac.uk>
490         * src/devices/grohtml/post-html.cpp
491         (html_printer::lookahead_for_tables): End .ce properly to avoid a
492         segfault.
494 2005-03-15  Werner LEMBERG  <wl@gnu.org>
496         makeinfo 4.8 doesn't produce good HTML output from groff.texinfo.
498         * doc/fixinfo.sh: New script to postprocess makeinfo's HTML output.
500         * doc/Makefile.in (.texinfo.html): Call fixinfo.sh.
502 2005-03-14  Werner LEMBERG  <wl@gnu.org>
504         Add Cyrillic support to devutf8 and devhtml.
506         * font/devutf8/R.proto, font/devhtml/R.proto: Add Cyrillic blocks.
508         * tmac/unicode.tmac: New file.
510         * tmac/tty.tmac: Include unicode.tmac if device is utf8.
512         * tmac/Makefile.sub (NORMALFILES): Add unicode.tmac.
514         * NEWS: Updated.
516 2005-03-02  Keith Marshall  <keith.d.marshall@ntlworld.com>
518         * src/libs/libdriver/printer.cpp (check_for_output_error): New
519         function.  It has been introduced to catch peculiar error contexts
520         on MS-Windows platforms.
522 2005-02-28  Werner LEMBERG  <wl@gnu.org>
524         * src/roff/troff/input.cpp (string_iterator::fill): Protect against
525         null pointer.
527         * tmac/papersize.tmac: Convert `paper' string contents to lowercase.
529         * configure: Regenerated.
531         * NEWS: Updated.
533 2005-02-28  Keith Marshall  <keith.d.marshall@ntlworld.com>
535         Integrate `pdfmark' into normal groff build system;
536         install macro `pdfmark' packages, build and install `pdfroff',
537         and PDF format documentation.
539         * Makefile.comm: Add PDFDOCDIR.
541         * Makefile.in: (MDEFINES) ALT_AWK_PROGS, ALT_GHOSTSCRIPT_PROGS,
542         pdfdocdir, make_pdfdoc, make_install_pdfdoc: New variables.
543         (unstall_dirs): Add pdfdocdir.
545         * aclocal.m4: (GROFF_GHOSTSCRIPT_PREFS): New function; support
546         `--with-alt-gs' option, set ALT_GHOSTSCRIPT_PROGS.
547         (GROFF_GHOSTSCRIPT_PATH): Support `--with-gs' option, force use of
548         GROFF_GHOSTSCRIPT_PREFS, set GHOSTSCRIPT.
549         (GROFF_HTML_PROGRAMS): Force use of GROFF_GHOSTSCRIPT_PATH; tidy up.
550         (GROFF_AWK_PREFS): New function; support `--with-alt-awk' option,
551         set ALT_AWK_PROGS.
552         (GROFF_AWK_PATH): New function; support `--with-awk' option, force
553         use of GROFF_AWK_PREFS.
554         (GROFF_PDFDOC_PROGRAMS): New function; force use of GROFF_AWK_PATH
555         and GROFF_GHOSTSCRIPT_PATH, set make_pdfdoc and make_install_pdfdoc.
557         * configure.ac: Add AC_PREREQ(2.59), GROFF_PDFDOC_PROGRAMS.
558         Remove GROFF_GHOSTSCRIPT_PATH, (forced by GROFF_PDFDOC_PROGRAMS, and
559         also by modified GROFF_HTML_PROGRAMS).
561 2005-02-27  Gaius Mulley  <gaius@glam.ac.uk>
563         * src/devices/grohtml/html-text.cpp (html_text::do_pre): Preserve
564         paragraph spacing.
565         (html_text::done_para): Unset `start_space'.
566         (html_text::remove_para_align): Call `retrieve_para_space' for the
567         spacing.
569         * src/devices/grohtml/post-html.cpp (html_printer::emit_raw): Unset
570         `seen_space'.
571         (html_printer::do_check_center): Emit vertical space if necessary.
573         * src/roff/troff/env.cpp (environment_switch): Preserve
574         `seen_space', `seen_eol', and `suppress_next_eol' while switching
575         environments.
577         * src/roff/troff/node.cpp (suppress_node::suppress_node): Set
578         `is_special'.
580 2005-02-20  Werner LEMBERG  <wl@gnu.org>
582         * src/preproc/eqn/eqn.man, NEWS: Document various extensions of
583         eqn.
585 2005-02-17  Werner LEMBERG  <wl@gnu.org>
587         * doc/pic.ms, man/groff.man: Fix typos.
589         * doc/groff.texinfo: Fix typos.
590         (\LEmacro): Get proper mathematical spacing.
592 2005-02-16  Werner LEMBERG  <wl@gnu.org>
594         * aclocal.m4 (GROFF_APPRESDIR_CHECK): Improve warning message.
595         * configure: Regenerated with autoconf 2.59b.
597 2005-02-16  Gaius Mulley  <gaius@glam.ac.uk>
599         * src/devices/grohtml/post-html.cpp (html_printer::is_line_start,
600         html_printer::start_font): Fix handling of preformatted text.
602 2005-02-15  Gaius Mulley  <gaius@glam.ac.uk>
604         These patches modify the indentation implementation to use `<p
605         style=margin-left: n%>'.  Many thanks to Peter and Larry for
606         suggesting this solution.  Grohtml only uses tables for `.IP' and
607         related tags when the first operand has a short width.
609         Similarly, they modify all vertical space code.  By default, grohtml
610         sets up a style sheet which uses no vertical space between `table',
611         `pre', and `p' tags.  It forces spaces when it needs them using
612         `style="margin-top: 1em"'.
614         * src/devices/grohtml/html-table.cpp: Include `html-text.h'.
615         (html_table::emit_table_header, html_table::emit_new_row):
616         Rewritten.
617         (html_table::set_space): New function.
618         (html_indent::html_indent): Don't set `is_used'.
619         (html_indent::begin): Rewritten.
620         (html_indent::end): Remove code in function.
622         * src/devices/grohtml/html-table.h: Updated.
623         (html_table): Make `out' public.
625         * src/devices/grohtml/html-text.cpp (html_text::html_text):
626         Initialize `start_space' with FALSE.
627         (html_text::end_tag) <P_TAG, PRE_TAG>: Updated.
628         (html_text::issue_tag): Add argument to handle space style.
629         (html_text::start_tag) <P_TAG, PRE_TAG>: Updated.
630         (html_text::flush_text): Don't set `start_space'.
631         (html_text::push_para): Don't set `p->really_issued'.
632         (html_text::do_emittext): Updated.
633         (html_text::do_para): Add paremeter to handle space.
634         Update all callers.
635         (html_text::retrieve_para_space): New function.
637         * src/devices/grohtml/html-text.h (STYLE_VERTICAL_SPACE): New macro.
638         (tag_definition): Remove `really_issued'.
639         (html_text): Updated.
641         * src/devices/grohtml/post-html.cpp (html_printer): Add variables
642         `current_column' and `row_space'.
643         Update constructor.
644         (html_printer::emit_raw, html_printer::write_header,
645         html_printer::do_indent, html_printer::do_check_center,
646         html_printer::do_tab_ts): Handle vertical space.
647         (html_printer:do_tab_te, html_printer::do_end_para): Call
648         `remove_para_space'.
649         (html_printer::do_col): Rewritten.
650         (html_printer::flush_globs): Remove debugging code.
651         (html_printer::is_line_start): New function.
652         (html_printer::start_font): Use `is_line_start'.
653         (html_printer::writeHeadMetaStyle): New function.
654         (html_printer::do_file_components, html_printer::~html_printer):
655         Call `writeHeadMetaStyle'.
657         * tmac/www.tmac (www-handle-percent): New macro.
658         (MPIMG): Handle percent values for width and height parameters.
659         (DC): Updated.
661         * tmac/groff_www.man: Updated.
663 2005-02-14  Werner LEMBERG  <wl@gnu.org>
665         * src/utils/afmtodit/afmtodit.pl: Remove an incorrect `my' from
666         $psname and $italic_angle.
667         Immediately restart file input loops if `split' returns an empty
668         array.
670 2005-02-13  Michail Vidiassov  <master@iaas.msu.ru>
671             Werner LEMBERG  <wl@gnu.org>
673         Update afmtodit to better support Unicode (Michail).
674         Update afmtodit to use Perl 5 syntax (Werner).
676         * src/utils/afmtodit/afmtodit.pl: Don't use `getopts.pl' but
677         `Getopts::Std'.
678         Decorate variables with `my' where necessary.
679         Use `defined' where necessary to avoid warnings.
680         Don't use `do' for subroutine calls.
681         Other minor syntax updates.
682         Check for both `uXXXX[X[X]]' and `uniXXXX'.
683         Handle glyph variants properly.
684         (%unicode_decomposed, %AGL_to_unicode): Don't use `u' prefix in
685         strings.
687         * src/utils/afmtodit/afmtodit.man: Updated.
689 2005-02-13  Werner LEMBERG  <wl@gnu.org>
691         Make groff.texinfo work with texinfo 4.8.
693         * doc/groff.texinfo (@Var): Use @r and @slanted.
694         (@defdummy, @Def*): Use @c to avoid empty lines.
695         (\angles): Replaced with...
696         (\Langlemacro, \Ranglemacro): New TeX macros.
697         (@Langlemacro, @Ranglemacro): New variables defined with @set.
698         (@angles): Use @Langlemacro and @Ranglemacro.
699         (\LE): Replaced with...
700         (\LEmacro): New TeX macro.
701         (@LEmacro): New variable defined with @set.
702         (@LE): Use @LEmacro.
703         (@Lparenmacro, @Rparenmacro, @Lbrackmacro, @Rbrackmacro): New
704         variables defined with @set.
705         (@lparen, @rparen, @lbrack, @rbrack): Replaced with...
706         (@Lparen, @Rparen, @Lbrack, @Rbrack): New macros.
707         Update all callers.
709         Other minor updates.
711         * doc/texinfo.tex: Update to texinfo version 4.8.
713         * README.CVS: Updated.
715 2005-02-09  Alejandro López-Valencia <palopez@etb.net.co> (tiny change)
717         * doc/groff.texinfo (ms Document Control Registers): Document `HY'
718         and `FAM' registers.
720 2005-02-05  Werner LEMBERG  <wl@gnu.org>
722         * tmac/groff_mdoc.man, tmac/doc-common, tmac/doc-ditroff,
723         tmac/doc-nroff, tmac/doc-old.tmac, tmac/doc-syms, tmac/doc.tmac:
724         Update BSD license.
726 2005-02-01  Werner LEMBERG  <wl@gnu.org>
728         * src/roff/groff/groff.man: Add information about paper size.
730 2005-01-25  Werner LEMBERG  <wl@gnu.org>
732         * src/roff/nroff/nroff.sh: Handle `*.ISO8859-1' in locale.  From
733         NetBSD bin/29114.
735 2005-01-22  Ruslan Ermilov  <ru@FreeBSD.org>
737         * tmac/doc.tmac (Sm): Improved.  It didn't work properly in many
738         cases.
739         (Re): Emit a warning if called without `.Rs'.
740         (doc-finish-reference): Use parameter for decreasing
741         `doc-reference-count'.
742         (doc-print-reference): Pass specific count parameters to
743         `doc-finish-reference'.
745 2005-01-21  Werner LEMBERG  <wl@gnu.org>
747         * src/libs/libdriver/input.cpp (delete_current_env, do_file):
748         Reset pointers to zero after deallocation.  This fixes a crash
749         if a driver is called with multiple input files.  Reported by
750         Ken Chilton <ken@chiltonfamily.org>.
752         * src/devices/grops/grops.man: Add more info on DSC.
754 2005-01-17  Ruslan Ermilov  <ru@FreeBSD.org>
756         * tmac/doc-common (Dd), tmac/doc-ditroff (gX, doc-setup-header):
757         Remove dead code.
759 2005-01-17  Werner LEMBERG  <wl@gnu.org>
761         * src/roff/troff/div.cpp (top_level_diversion::space): Protect
762         against division by zero.
764 2005-01-13  Ruslan Ermilov  <ru@FreeBSD.org>
766         * tmac/doc.tmac (Ef): Restore doc-curr-font and doc-curr-size.
768 2004-12-19  Werner LEMBERG  <wl@gnu.org>
770         * install-sh: New version; taken from texinfo CVS.
772 2004-12-17  Werner LEMBERG  <wl@gnu.org>
774         * tmac/devtag.tmac: Protect against loading twice.
775         Protect agains compatibility mode.
776         * tmac/www.tmac: Protect against loading twice.
777         Load `devtag.tmac' before switching off compatibility mode.
778         * tmac/an-old.tmac, tmac/s.tmac: Load `devtag.tmac'.
780 2004-12-16  Mike Bianchi  <mbianchi@Foveal.com>
782         * configure.ac: Produce `contrib/gdiffmk/tests/runtests'.
783         * configure: Updated.
785 2004-12-15  Thomas Klausner  <wiz@netbsd.org>
787         * tmac/doc-syms, tmac/groff_mdoc.man: Add `libpam' library.
789 2004-12-15  Werner LEMBERG  <wl@gnu.org>
791         Make `test-groff' work again -- previously, wrong paths have been
792         used.  Additionally, it can now be called from anywhere.
794         * test-groff.in: Don't test for groff binary.  This is no longer
795         necessary since the proper paths are determined by `configure'.
796         (EXEEXT): Removed.  No longer used.
797         (srcdir, builddir): Use values provided by the configure script.
798         (XENVIRONMENT): Updated.
800         * INSTALL: Updated.
802 2004-12-14  Gaius Mulley  <gaius@glam.ac.uk>
804         Make .tag and .taga work for all devices (but only grohtml actually
805         handles them).
807         * src/devices/grohtml/post-html.cpp: s/html-tag/devtag/.
808         (text_glob::is_br, page::add_tag, html_printer::troff_tag,
809         html_printer::handle_assertion): Don't use hard-coded string
810         lengths.
811         (html_printer::lookahead_for_table): Reset `tbl' properly if
812         necessary.
813         (html_printer::devtag): New function, handling `devtag'.
814         (html_printer::special): Don't handle `html-tag'.
816         * src/include/printer.h, src/libs/libdriver/printer.cpp
817         (printer::devtag): New virtual function.
819         * src/libs/libdriver/input.cpp (parse_x_command) <'X'>: Handle
820         `devtag'.
822         * src/roff/troff/env.cpp, src/roff/troff/mtsm.cpp,
823         src/roff/troff/node.cpp: s/html-tag/devtag/.
825         * src/roff/troff/input.cpp (tag, taga): Always call
826         curenv->add_node.
828         * tmac/an-old.tmac, tmac/s.tmac, tmac/troffrc-end: Use DEVTAG*
829         macros instead of HTML-TAG*.
831         * tmac/devtag.tmac: New file, defining the DEVTAG-* macros.
833         * tmac/www.tmac: Load devtag.tmac.
834         Replace HTML-TAG* macros with DEVTAG* macros.
835         (HTML, HTML-NS): Changed definitions.
836         (URL): Use HTML-NS.
837         (HTML-TAG, HTML-TAG-NS, HTML-TAG-NEXT): Removed.
839         * tmac/Makefile.sub (NORMALFILES): Add devtag.tmac.
841 2004-12-10  Werner LEMBERG  <wl@gnu.org>
843         Import Mike's `gdiffmk' package.
845         * contrib/gdiffmk/*: New files.
846         * Makefile.in (OTHERDIRS): Add contrib/gdiffmk.
847         * NEWS: Updated.
849 2004-12-08  Werner LEMBERG  <wl@gnu.org>
851         Import Keith's `pdfmark' package.  Integration is very preliminary.
853         * contrib/pdfmark/*: New files.
854         * Makefile.in (OTHERDIRS): Add contrib/pdfmark.
855         * NEWS: Updated.
857 2004-12-07  Gaius Mulley  <gaius@glam.ac.uk>
859         Fix a bug with title handling in HTML.
861         * src/devices/grohtml/post-html.cpp (text_glob::is_nf,
862         text_glob::is_fi, text_glob::is_ce): Use strlen to compute string
863         length.
864         (html_printer::handle_tag_within_title): New function.
865         (html_printer::do_title): Use it.
867         * tmac/s.tmac (TL): Don't set `need_eo_tl'.
868         (cov*tl-au-print): Emit `.eo.tl' tag.
870 2004-12-05  Alejandro López-Valencia  <dradul@etb.net.co>
872         * man/groff_char.man: Minor imrovements.
874 2004-12-04  Werner LEMBERG  <wl@gnu.org>
876         * src/preproc/eqn/eqn.man: Revised.
878 2004-11-25  Werner LEMBERG  <wl@gnu.org>
880         * src/utils/xtotroff/xtotroff.c: Reformat to be similar to other
881         groff source files.
882         Include config.h.
883         Include limits.h.
884         Remove X_NOT_STDC_ENV conditional.
885         (Version_string, program_name): New global variables.
886         (groff_flag): Removed.
887         (MapFont): Updated.
888         (usage): Take a stream as argument.
889         Use `program_name'.
890         Update all callers.
891         (main): Add `long_options' array for `--help' and `--version'.
892         Make `-g' a dummy option.
893         Handle `-v' and unknown options.
894         Remove unused `position' variable.
896         * src/utils/xtotroff/Makefile.sub (MAN1): Define.
897         (XLIBS): Add LIBGROFF.
899         * src/utils/xtotroff/xtotroff.man, src/utils/xtotroff/Makefile.in:
900         New files.
902         * src/devices/xditview/Dvi.c (default_font_map): Split into three
903         parts to avoid compiler warning.
904         (resources): Don't initialize with `default_font_map'.
905         (ClassInitialize): Initialize first element of `resources'.
907         * src/devices/xditview/Makefile.sub (devdir, xtotroff, DPIS, fonts):
908         Removed.
910         * src/utils/lkbib/lkbib.man, src/utils/lookbib/lookbib.man,
911         src/utils/pfbtops/pfbtops.man: Revised, updated.
913         * configure.ac: Generate src/utils/xtotroff/Makefile.
914         * configure: Regenerated.
916 2004-11-24  Werner LEMBERG  <wl@gnu.org>
918         First fixes to get produce HTML.
920         * src/devices/grohtml/post-html.cpp (generate_img_src): Add `alt'
921         attribute.
923         * tmac/www.tmac (IMG, PIMG, MPIMG): Add `alt' attribute.
924         (HR, LI): Use `HTML</p>', not `HTML'.
926         * doc/webpage.ms: Minor updates.
928 2004-11-23  Larry Kollar  <kollar@alltel.net>
930         Add option -S grohtml to determine the file split level.
932         * src/devices/grohtml/post-html.cpp (split_level): New global
933         variable.
934         (html_header::determine_header_level): Use split_level.
935         (main): Handle `-S' command line option.
936         Sort options.
938         * src/preproc/html/pre-html.cpp (scanArguments): Updated.
940         * src/devices/grohtml/grohtml.man: Document it.
941         Sort options.
943         * NEWS: Document it.
945 2004-11-23  Y T  <doarhop@hotmail.com>
947         * tmac/s.tmac (ref*add-V, ref*add-N): New macros for handling
948         the volume and number refer entries.
950 2004-11-22  Werner LEMBERG  <wl@gnu.org>
952         * src/devices/grohtml/html-table.cpp
953         (html_table::emit_table_header): Don't emit `cols' attribute which
954         doesn't exist in HTML 4.0 and is thus invalid.
956         * NEWS: More minor fixes and updates.
958 2004-11-18  Werner LEMBERG  <wl@gnu.org>
960         * tmac/www.tmac (HTML-NS, HTML-TAG-NS, HTML-TAG-NEXT): Simplified.
961         (HTML</p>): Minor clean-up.
963         * tmac/groff_www.man: Updated.
965         * src/devices/grohtml/grohtml.man: Revised and updated.
967         * NEWS: Updated.
969 2004-11-18  Gaius Mulley  <gaius@glam.ac.uk>
971         * src/devices/grohtml/post-html.cpp (html_printer::do_heading):
972         Fix space insertion.
973         (html_printer::do_links): Fix rules generation around automatic
974         heading links.
976         * tmac/www.tmac (LK): Use HTML-TAG-NS.
977         (HR): Simplify.
978         No longer emit empty line for non-HTML devices.
980 2004-11-17  Werner LEMBERG  <wl@gnu.org>
982         * doc/Makefile.in (prepare_examples, webpage.html): Handle
983         `groff.css'.
985         * doc/Makefile.sub (EXAMPLEFILES, CLEANNOTSRCDIRADD,
986         prepare_examples, webpage.html): Handle `groff.css'.
988 2004-11-15  Werner LEMBERG  <wl@gnu.org>
990         * NEWS, README, doc/webpage.ms: Updated.
992         * tmac/www.tmac (HTML, HTML-TAG): Minor clean-ups.
994 2004-10-30  Gaius Mulley  <gaius@glam.ac.uk>
996         * src/include/printer.h (printer): Remove virtual function
997         `round_width'.
998         Update all source files.
1000         * src/devices/grohtml/post-html.cpp (html_printer): New member
1001         function `round_width'.
1003 2004-10-20  Tadziu Hoffmann  <hoffmann@usm.uni-muenchen.de>
1005         * src/preproc/tbl/table.cpp (table::do_row): Fix handling of the `d'
1006         column key letter suffix.
1008 2004-10-14  Werner LEMBERG  <wl@gnu.org>
1010         * Makefile.in (check): Depend on `site.exp' and `docheck'.
1011         (docheck): Run dejagnu's `runtest' if it exists.
1012         (site.exp): Create dejagnu configuration file.
1014         * Makefile.sub (DISTCLEANFILES): Add files related to dejagnu.
1016 2004-10-13  Werner LEMBERG  <wl@gnu.org>
1018         * src/devices/grohtml/html-text.cpp (html_text_get_alignment),
1019         src/devices/grohtml/post-html.cpp (make_val,
1020         html_printer::handle_state_assertion): Fix compiler warnings.
1022         * src/roff/troff/div.cpp: Include `stringclass.h' and `mtsm.h'.
1023         (diversion::diversion): Fix order of initializers.
1025         * src/roff/troff/div.h: Don't include `mtsm.h'.
1027         * src/roff/troff/env.cpp: Include `stringclass.h' and `mtsm.h'.
1028         (environment::environment): Fix order of initializers.
1029         (environment::make_tag, environment::construct_format_state): Fix
1030         compiler warnings.
1032         * src/roff/troff/input.cpp: Include `stringclass.h' and `mtsm.h'.
1033         (input_iterator::input_iterator, macro::macro): Fix order of
1034         initializers.
1036         * src/roff/troff/mtsm.cpp: Include only necessary header files.
1037         (state_set::add, state_set::val): Fix compiler warnings.
1039         * src/roff/troff/mtsm.h: Don't include `stringclass.h'.
1040         (bool_value_state, int_value_state, units_value_state,
1041         string_value_state): Remove comma after last element which causes
1042         an error with g++ 3.3.3.
1044         * src/roff/troff/node.cpp: Include `stringclass.h'.
1045         (hline_node::hline_node, vline_node::vline_node,
1046         space_char_hmotion_node, left_italic_corrected_node): Fix compiler
1047         warnings.
1048         (zero_width_node::zero_width_node): Fix order of initializers.
1050         * src/roff/troff/node.h: Don't include `mtsm.h'.
1051         (hmotion_node): Fix compiler warnings.
1053         * src/roff/troff/number.cpp: Include `stringclass.h' and `mtsm.h'.
1055 2004-10-12  Gaius Mulley  <gaius@glam.ac.uk>
1057         * doc/groff.css: New file.
1059         * doc/webpage.ms: Use `groff.css'.
1060         Other small fixes.
1062         * tmac/an-old.tmac (need_eo_h): New number register.
1063         (TH): Emit `.eo.tl' tag after title.
1064         (SH): Set `need_eo_h'.
1065         (an-trap): Handle `need_eo_h'.
1066         (an-do-tag): s/HTML-TAG-NS/HTML-TAG-NEXT/.
1068         * tmac/s.tmac (need_eo_h, need_eo_tl): New number registers.
1069         (TL): Always start diversion.
1070         Updated.
1071         (@AI): Always call `par@reset'.
1072         (@AB): Update code for -Thtml.
1073         (cov*tl-au-print): Handle -Thtml.
1074         (par@reset): Handle `need_eo_tl', `need_eo_h'.
1075         (@IP): Simplified.
1076         (@IT-html): Removed.
1077         (@SH): Set `need_eo_h' for -Thtml.
1078         (par@TL): s/HTML-TAG/HTMl-TAG-NS/.
1079         Set `need_eo_tl'.
1080         (@NH): s/HTML-TAG/HTMl-TAG-NS/.
1081         Set `need_eo_h' for -Thtml.
1082         (@EQ, @EN): Don't handle -Thtml specially.
1083         (par@load-init): Don't handle -Thtml specially.
1085         * tmac/www.tmac (www:paraspace): New macro.
1086         (HTML-NS, HTML-TAG-NS): Use new `tag' request.
1087         (HTML</p>, HTML-TAG-NEXT): New macros.
1088         (HnE): Emit tag `.eo.h' instead of break.
1089         (HR): s/HTML-NS/HTML/.
1090         (www-end-nowhere): End diversion only if `www-html' not set.
1091         Emit `.eo.tl' tag.
1092         (ULS, ULE): s|HTML|HTML</p>|.
1093         (LI): Call `www:paraspace'.
1094         (HEAD): New macro.
1096 2004-10-11  Gaius Mulley  <gaius@glam.ac.uk>
1098         * src/roff/troff/request.h (macro): Make `p' public.
1099         New variable `is_a_diversion'.
1100         New member function `is_diversion'.
1103         * src/devices/grohtml/html.h (simple_output): New member function
1104         `force_nl'.
1106         * src/devices/grohtml/html-table.cpp (tabs::compatible): Fix
1107         computation of `total'.
1108         (tabs::check_init): New function.
1109         (html_table::emit_table_header): Emit style data.
1110         (html_table::insert_column): Improved.
1112         * src/devices/grohtml/html-table.h: Updated.
1114         * src/devices/grohtml/html-text.cpp (html_text::html_text):
1115         Initialize `start_space' with TRUE.
1116         (html_text::end_tag, html_start_tag): Fix `P_TAG' and `PRE_TAG'
1117         cases.
1118         (html_text::flush_text): Set `start_space' flag.
1119         (html_text::uses_indent, html_text::remove_para_space,
1120         html_text::get_alignment): New functions.
1121         (html_text::push_para): Updated.
1122         (html_text::do_para): Check for empty argument.
1123         Don't set `space_emitted'.
1124         (html_text::do_space, html_text::emit_space): Updated.
1126         * src/devices/grohtml/html-text.h (tag_definition): New variable
1127         `really_issued'.
1128         (html_text): New member function `uses_indent', `remove_para_space',
1129         `get_alignment'.
1131         * src/devices/grohtml/output.cpp (simple_output::force_nl): New
1132         function.
1133         (simple_output:nl): Always emit `\n'.
1135         * src/devices/grohtml/post-html.cpp: Include `string.h'.
1136         (BASE_POINT_SIZE): Removed.
1137         (base_point_size, head_info): New global variables.
1138         (text_glob): New member functions `is_ll', `is_tl', `is_eo_tl',
1139         `is_eo_h'.
1140         (text_glob::is_nf, text_glob::is_fi): Handle `.fi 0' and `.fi 1'
1141         tags, respectively.
1142         (page::add_and_encode): Pass additional parameter for tag flag.
1143         (assert_pos): New structure.
1144         (assert_state): New class.
1145         (html_printer): Remove `indentation', `prev_indent'.
1146         Add variables `troff_indent', `device_indent', `temp_indent'.
1147         Add variables `seen_indent', `next_indent', `seen_pageoffset',
1148         `next_pageoffset', `seen_linelenght', `next_linelength',
1149         `seen_center', `next_center', `seen_space', `seen_break', `as'.
1150         Add member functions `do_check_center', `do_space', `do_head',
1151         `get_troff_indent', `restore_troff_indent', `handle_assertion',
1152         `handle_state_assertion', `do_end_para', `set_char_and_width'.
1153         Change argument to `do_fill' to `char *'.
1154         Update constructor.
1155         (html_printer::emit_raw): Call `shutdown_table'.
1156         Use new functions.
1157         (html_printer::do_center): Simplified.
1158         (html_printer::do_title): Improved.
1159         (html_printer::write_header): Emit one more newline.
1160         Use new functions.
1161         (html_printer::do_heading, html_printer::do_indent,
1162         html_printer::do_eol, html_printer::do_tab_ts,
1163         html_printer::do_tab, html_printer::do_tab0,
1164         html_printer::calc_po_in, html_printer::next_horiz_pos,
1165         html_printer::remove_courier_tabs,
1166         html_printer::insert_tab0_foreach_tab, html_printer::begin_page):
1167         Updated.
1168         (html_printer::do_linelength, html_printer::do_pageoffset,
1169         html_printer::do_indentation, html_printer::do_tempindent,
1170         html_printer::do_tab_te): Simplified.
1171         (html_printer::do_pointsize): Check whether point size is really
1172         associated a `.tl' tag.
1173         (html_printer::do_break): Rewritten.
1174         (html_printer::troff_tag): Improved.
1175         (html_printer::flush_globs): Updated.
1176         (html_printer::lookahead_for_tables): Handle `is_br'.
1177         Use new functions.
1178         (html_printer::set_char): Check `sbuf_style.f'.
1179         (html_printer::write_navigation): Use string comparison.
1180         (html_printer::~html_printer): Emit `head_info'.
1181         (html_printer::special): Rewritten.
1182         (get_str, make_val): New functions.
1183         (main): New option `s' to set the base point size.
1185         * src/preproc/html/pre-html.cpp (scanArguments): Handle option `s'.
1187 2004-10-10  Gaius Mulley  <gaius@glam.ac.uk>
1189         * src/roff/troff/node.cpp: New extern `debug_state'.
1190         Include `stringclass.h' and `mtsm.h'.
1191         Implement new classes and class members from `node.h'.
1192         (real_output_file): Make `fp' public.
1193         (troff_output_file): New variables `cur_div_level' and `tag_list'.
1194         Update constructors.
1195         (troff_output_file::really_print_line): Check whether we should push
1196         the current troff state and use the state at the start of the
1197         invocation of this diversion.
1198         (troff_output_file::add_to_tag_list): New member function.
1199         (node::add_char): Handle `glyph_comp_np'.
1201         * src/roff/troff/node.h: Include `mtsm.h'.
1202         (node): New variables `state', `push_state', `div_nest_level',
1203         `is_special'.  Update constructors, all descendants.
1204         Pass additional argument to `add_char' member function.
1205         New virtual member functions `is_tag', `debug_node',
1206         `debug_node_list'.  Update all descendants.
1207         (tag_node): New class for handling tags.
1208         (output_file): Add variable `state'.
1210 2004-10-09  Gaius Mulley  <gaius@glam.ac.uk>
1212         * src/roff/troff/mtsm.cpp, src/roff/troff/mtsm.h: New files,
1213         providing a minimal troff state machine to emit meta tags for the
1214         post-grohtml device driver.
1216         * src/roff/troff/Makefile.sub (OBJS, CCSRCS, HDRS): Handle new
1217         files.
1219 2004-10-09  Werner LEMBERG  <wl@gnu.org>
1221         * tmac/trace.tmac: Fix handling of `am' and `am1' calls.
1223 2004-10-06  Gaius Mulley  <gaius@glam.ac.uk>
1225         * src/roff/troff/column.cpp (vjustify_node::copy): Updated.
1227         * src/roff/troff/div.h: Include `mtsm.h'.
1228         (diversion): New variables `any_chars_added', `needs_push',
1229         `saved_seen_break', `saved_seen_space', `saved_seen_eol',
1230         `saved_suppress_next_eol', `modified_tag'.
1231         New virtual member function `is_diversion'.  Update all descendants.
1233         * src/roff/troff/div.cpp (diversion::diversion,
1234         macro_diversion::macro_diversion): Updated.
1235         (do_divert): Handle `seen_break', `seen_space', `seen_eol',
1236         `suppress_next_eol'.
1237         (top_level_diversion::space): Handle `curenv->seen_space'.
1238         (page_offset): Update tag handling.
1239         (space_request, blank_line, flush_output): Don't call `add_html_tag'.
1241         * src/roff/troff/env.h (environment): Make `tabs' public.
1242         Remove `ignore_next_eol', `emitted_node'.
1243         Update `output_line', `output'.
1244         New variables `seen_space', `seen_eol', `suppress_next_eol',
1245         `seen_break'.
1246         New member functions `construct_state', `make_tag',
1247         `construct_format_state, `construct_new_line_state,
1248         `dump_troff_state'.
1249         Remove `add_html_tag', `make_html_tag'.
1251         * src/roff/troff/env.cpp: New externs `suppress_push',
1252         `get_diversion_state', `global_diverted_space'.
1253         (pending_output_line): New variable `was_centered'.
1254         Update constructor and all callers.
1255         (pending_output_line::output): Call `curenv->construct_format_state'.
1256         (environment::environment, environment::copy): Updated.
1257         (environment::output): Handle `was_centered'.
1258         (environment::add_char): Handle construct and diversion state.
1259         (environment::add_node): Handle construct state.
1260         (environment::newline): Handle `was_centered'.
1261         (environment::output_line): Updated.
1262         (environment::possibly_break_line): Updated.
1263         Update tag handling.
1264         (environment::add_html_tag): Replaced with...
1265         (environment::make_tag): New function.
1266         (environment::add_html_tag_tabs, environment::make_html_tag): Removed.
1267         (environment::dump_troff_state): New debugging function.
1268         (environment::construct_state, environment::construct_format_state,
1269         environment::construct_new_line_state): New functions.
1270         (environment::do_break): Updated.
1271         Handle `global_diverted_space'.
1272         (environment::handle_tag): Update tag handling.
1273         (point_size, fill, do_break_request): Don't call `add_html_tag'.
1274         (no_fill): Don't call `add_html_tag'.
1275         Set `suppress_next_eol'.
1276         (center, right_justify, line_length, indent, temporary_indent,
1277         set_tabs):
1278         Update tag handling.
1280         * src/roff/troff/input.cpp: Don't include `stringclass.h'.
1281         (input_iterator): New variables `is_diversion', `diversion_state'.
1282         Update constructors.
1283         (input_stack): New member functions `get_div_level',
1284         `get_diversion_state', `check_end_diversion'.
1285         New variables `div_level', `diversion_state'.  Initialize them.
1286         (suppress_push, global_diverted_space): New global variables.
1287         (input_stack::finish_get, input_stack::finish_peek,
1288         input_stack::remove_boundary, input_stack::end_file,
1289         input_stack::clear, input_stack::pop_macro): Call
1290         `check_end_diversion'.
1291         (input_stack::push): Handle `div_level' and `diversion_state'.
1292         (get_diversion_state): New function.
1293         (diverted_space_node::reread): Handle `global_diverted_space'.
1294         (macro::macro): Update constructors.
1295         (macro::is_diversion): New function.
1296         (macro::operator=): Set `is_a_diversion'.
1297         (string_iterator): New member function `is_diversion'.
1298         (string_iterator::string_iterator): Update constructors.
1299         (string_iterator::fill): Set `div_nest_level'.
1300         (macro_iterator): New member function `is_diversion'.
1301         (do_if_request): Handle `suppress_push'.
1302         (tag, taga): New functions.
1303         (init_input_requests): Add `tag' and `taga' requests.
1305 2004-10-05  Gaius Mulley  <gaius@glam.ac.uk>
1307         * src/include/font.h (font): New member function
1308         `get_image_generator'.
1309         New variables `unscaled_charwidths' and `image_generator'.
1311         * src/libs/libgroff/font.cpp (font::get_width): Always return the
1312         character's unscaled width if `font::unscaled_charwidths' is set.
1313         (font::get_image_generator): New function.
1314         (font::load_desc): Check the `unscaled_charwidths' and
1315         `image_generator' keywords.
1317         * src/libs/libgroff/fontfile.cpp: Initialize
1318         `font::unscaled_charwidths' and `font::image_generator'.
1320         * font/devhtml/DESC.proto: s/html/unscaled_charwidths/.
1322         * font/devhtml/Makefile.sub (DESC): Set `image_generator' keyword.
1324         * man/groff_font.man: Document `unscaled_charwidths' and
1325         `image_generator'.
1327         * src/preproc/html/pre-html.cpp: Include `device.h'.
1328         (image_gen): New global variable.
1329         (imageList::createPage): Use `image_gen'.
1330         (main): Use `image_generator' keyword.
1332 2004-10-04  Gaius Mulley  <gaius@glam.ac.uk>
1334         * tmac/html.tmac: Handle \[sqrtex].
1336 2004-10-04  Gaius Mulley  <gaius@glam.ac.uk>
1338         * src/include/printer.h (printer): New virtual method `round_width'.
1340         * src/devices/grodvi/dvi.cpp, src/devices/grolbp/lbp.cpp,
1341         src/devices/grolj4/lj4.cpp, src/devices/grops/ps.cpp,
1342         src/devices/grotty/tty.cpp (printer::round_width): New function
1343         member.
1345         * src/devices/grohtml/post-html.cpp (printer::round_width): New
1346         function member.
1347         (html_printer::set_numbered_char): Use it.
1349 2004-10-03  Gaius Mulley  <gaius@glam.ac.uk>
1351         * aclocal.m4 (GROFF_GHOSTSCRIPT_PATH): New macro.
1353         * configure.ac: Call GROFF_GHOSTSCRIPT_PATH.
1355         * configure: Regenerated.
1357         * Makefile.in (GHOSTSCRIPT): New variable.
1358         (MDEFINES): Add GHOSTSCRIPT.
1360 2004-10-03  Werner LEMBERG  <wl@gnu.org>
1362         * INSTALL.gen: Updated (taken from texinfo CVS).
1364 2004-09-28  Werner LEMBERG  <wl@gnu.org>
1366         * NEWS: Updated.
1368 2004-09-28  Heinz-Jürgen Oertel  <hj.oertel@surfeu.de>
1370         * tmac/groff_www.man: Revised and updated.
1372 2004-09-26  Werner LEMBERG  <wl@gnu.org>
1374         Fix \$@ and \$* to handle any number of arguments.
1376         * src/roff/troff/input.h (BEGIN_QUOTE, END_QUOTE): New special
1377         characters.
1379         * src/roff/troff/input.cpp (input_iterator::internal_level):
1380         Removed.
1381         (input_stack): New member functions `increase_level' and
1382         `decrease_level'.
1383         (input_stack::get_level): Don't use `internal_level'.
1384         (get_copy, token::next): Handle BEGIN_QUOTE and END_QUOTE.
1385         (end_quote_iterator): Completely removed.
1386         (interpolate_arg): Build string for \$@ and \$* which is then
1387         pushed onto the input stack.
1389 2004-09-23  Keith Marshall  <keith.d.marshall@ntlworld.com>
1391         * tmac/groff_ms.man, doc/groff.texinfo: Document changes from
1392         2004-09-19.
1394 2004-09-23  Werner LEMBERG  <wl@gnu.org>
1396         * tmac/an-old.tmac (ne): Using default scaling operator.
1398 2004-09-19  Keith Marshall  <keith.d.marshall@ntlworld.com>
1400         This change implements the following features:
1402         PORPHANS
1403           New numeric register: Defines number of lines following LP, PP,
1404           QP, IP or XP, which must be kept together, before any automatic
1405           page break.  If insufficient space remains on the current page, a
1406           page break is forced before the new paragraph begins.
1408         HORPHANS
1409           New numeric register: Sets number of lines of following paragraph
1410           which must be kept with a heading, defined by NH or SH, before any
1411           automatic page break.  If insufficient space remains on the
1412           current page, a page break is forced before the heading.
1414         GROWPS
1415           (Thanks to Joerg van den Hoff, for this idea).
1417           New numeric register: Sets the first level of heading (set with
1418           NH), which will keep the same point size as body text; e.g. if
1419           GROWPS is set to 3, .NH 3, .NH 4, ... will produce headings at the
1420           point size specified by \n[PS], but .NH 2 and .NH 1 will have
1421           progressively larger point sizes, determined by \n[PSINCR] (see
1422           below).
1424         PSINCR
1425           New numeric register: Sets the point size increment for each level
1426           of heading, (set with NH), below the threshold level set by
1427           GROWPS; e.g. if \n[PS] = 10, \n[GROWPS] = 3 and \n[PSINCR] = 2.0p,
1428           then .NH 1 will produce 14pt headings, .NH 2 will produce 12pt,
1429           and all other levels will remain at 10pt, (because \n[PS] = 10).
1431         SH
1432           Existing macro now accepts a numeric argument, to make heading
1433           size match that of NH with same argument value, when the
1434           GROWPS/PSINCR feature is enabled.
1436         SN-DOT
1437           New string, set by NH macro, replaces the existing (undocumented)
1438           use of SN, to represent the assigned section number.
1440         SN-NO-DOT
1441           New string, set by NH macro, represents the assigned section
1442           number, but omits the terminal period (periods at intermediate
1443           levels are retained).
1445         SN
1446           String set by NH macro, originally undocumented, now implemented
1447           as an alias for SN-DOT (which reproduces original behaviour).
1449         * tmac/s.tmac (PORPHANS): New register.
1450         (par*start): Use it.
1451         (HORPHANS, GROWPS, PSINCR): New registers.
1452         (SH-NO-TAG, @SH): Use them.
1453         (@NH): Improved.
1455 2004-09-19  Keith Marshall  <keith.d.marshall@ntlworld.com>
1457         * NEWS, doc/groff.texinfo, tmac/groff_ms.man: Document the deletion
1458         of `Ds' and `De' macros.
1460 2004-09-10  Werner LEMBERG  <wl@gnu.org>
1462         In tbl, handle \a as an interpreted leader character if in
1463         compatibility mode.
1465         * src/preproc/tbl/table.h (PREFIX, PREFIX_CHAR, LEADER,
1466         LEADER_CHAR): New macros.
1467         (compatible_flag): New declaration.
1469         * src/preproc/tbl/main.cpp (table_input): Add LEADER_1, LEADER_2,
1470         LEADER_3, and LEADER_4 to `state'.
1471         (table_input::get): Handle `\a'.
1473         * src/preproc/tbl/table.cpp (PREFIX): Removed.
1474         (LEADER_REG): New macro.
1475         (table::init_output): Define LEADER_REG string register if in
1476         compatibility mode.
1478         * src/preproc/tbl/tbl.man: Document it.
1480 2004-08-18  Werner LEMBERG  <wl@gnu.org>
1482         * tmac/doc.tmac (An): Fix error message.
1484 2004-08-06  Werner LEMBERG  <wl@gnu.org>
1486         * src/preproc/tbl/main.cpp (main): Call `fatal' not `error' if a
1487         file can't be opened.  UNIX tbl has the same behaviour.
1489 2004-08-05  Y T  <doarhop@hotmail.com>
1491         * src/preproc/grn/hdb.cpp (compatibility_flag): Add declaration.
1492         (DBRead): If in compatibility mode, take into account the text
1493         when computing figure boundaries.
1495 2004-08-05  Werner LEMBERG  <wl@gnu.org>
1497         * src/preproc/soelim/soelim.man: Improved.  Based on suggestions
1498         from Tadziu Hoffmann.
1500 2004-08-03  Werner LEMBERG  <wl@gnu.org>
1502         * doc/meref.me: Document `_M' register.
1504 2004-08-03  Martin Husemann  <martin@duskware.de>
1506         Make hpftodit work correctly on big-endian systems.
1508         * src/utils/hpftodit/hpftodit.cpp (File): New method
1509         `get_uint32(char *)'.
1510         (entry): New member `orig_value'.
1511         (read_tags): Use new method.
1512         (output_font_name, read_and_output_pcltypeface, dump_ascii):
1513         Updated.
1515 2004-08-01  Werner LEMBERG  <wl@gnu.org>
1517         * tmac/s.tmac: Undo change 2003-06-29.  The proper macro definitions
1518         are already in X11's `macros.t' file.
1520 2004-08-01  Jeff Conrad  <jeff_conrad@msn.com>
1522         * src/utils/hpftodit/hfptodit.cpp (output_font_name, dump_ascii):
1523         Fix casting bug.
1524         (read_and_output_pcltypeface): Handle strings with length <= 4.
1526 2004-07-27  Egil Kvaleberg  <egil@kvaleberg.no>
1528         * tmac/s.tmac (pg@top): Don't save `PO' register.
1529         (pg*end-col, pg*end-page): Directly use `PO' register.
1531 2004-07-27  Werner LEMBERG  <wl@gnu.org>
1533         * man/groff_tmac.man: Mention `trace' and `pic' macro packages.
1535         * src/preproc/refer/refer.cpp (output_references): Check for
1536         empty hash table.
1537         * src/preproc/refer/refer.man: Improve documentation of
1538         `bibliography' command.
1540 2004-07-26  Werner LEMBERG  <wl@gnu.org>
1542         Add requests `fcolor' and `gcolor'.
1544         * src/roff/troff/env.cpp (fill_color_change, glyph_color_change):
1545         New functions.
1546         (init_env_requests): Add `fcolor' and `gcolor'.
1548         * src/roff/troff/input.h: Export do_glyph_color and do_fill_color.
1550         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
1551         Document new requests.
1553 2004-07-24  Werner LEMBERG  <wl@gnu.org>
1555         Add support for fractional point sizes in ms macros.  A value for
1556         PS, VS, FPS, and FVS greater than or equal to 1000 is always divided
1557         by 1000.  For example, `.nr PS 10250' sets the font size to 10.25p.
1559         * tmac/s.tmac (@AU, @AI, par@load-init, par@init, par@reset, NL,
1560         PX): Handle fractional point sizes for PS, VS, FPS, and FVS.
1562         * tmac/groff_ms.man, docs/groff.texinfo, NEWS: Document it.
1564 2004-07-19  Werner LEMBERG  <wl@gnu.org>
1566         * src/preproc/pic/lex.cpp (for_input): Add member `from'.
1567         Update constructor.
1568         (do_for, for_input::get, for_input::peek): Handle negative `by'.
1569         * src/preproc/pic/pic.man, doc/pic.ms, NEWS: Document it.
1571 2004-07-08  Thomas Klausner  <wiz@netbsd.org>
1573         * tmac/doc-syms (doc-str-St--p1003.1-2004): New string.
1574         * tmac/groff_mdoc.man: Updated.
1576 2004-07-05  Werner LEMBERG  <wl@gnu.org>
1578         * doc/groff.texinfo: Further improve documentation of `hcode'.
1580 2004-07-04  Sang Dae Yu  <sdyu@bh.knu.ac.kr>
1582         Improve appearance of arrows in pic.
1584         * src/preproc/pic/object.cpp (draw_arrow): Make outline of filled
1585         arrow head thin.
1586         Use two line segments for drawing non-filled arrow head.
1587         (line_object::print, spline_object::print): Shorten line length to
1588         avoid arrow sticking.
1589         (arc_object::print): Take arrow direction into account.
1591 2004-07-03  Heinz-Jürgen Oertel  <hj.oertel@surfeu.de>
1593         * tmac/groff_www.man: Update documentation of .MPIMG.
1595 2004-07-03  Werner LEMBERG  <wl@gnu.org>
1597         * tmac/an-old.tmac (RI): Always start with font `R'.
1598         (RI, IR): Properly end with font `R'.
1600 2004-07-02  Paul Eggert  <eggert@cs.ucla.edu>
1602         * man/ditroff.man, man/groff_font.man, man/groff_out.man,
1603         src/devices/grohtml/grohtml.man, src/preproc/grn/grn.man,
1604         src/preproc/pic/pic.man, tmac/groff_man.man, tmac/groff_ms.man:
1605         Don't pass more than six arguments to .R, .I, .B, etc., for
1606         compatibility with traditional troff macros.
1608 2004-07-02  Werner LEMBERG  <wl@gnu.org>
1610         * src/roff/troff/input.h: s/COMPATIBLE_SAVE/PUSH_GROFF_MODE/.
1611         s/COMPATIBLE_RESTORE/POP_GROFFCOMP_MODE/.
1612         Update all users.
1613         (PUSH_COMP_MODE): New internal character constant.
1614         Update all users.
1616         * src/roff/troff/input.cpp (get_copy): Handle PUSH_GROFF_MODE,
1617         PUSH_COMP_MODE, and POP_GROFFCOMP_MODE.
1618         (token::next, macro::append): Handle PUSH_COMP_MODE.
1619         (decode_args): Add PUSH_GROFF_MODE or PUSH_COMP_MODE before and
1620         POP_GROFFCOMP after each of the decoded arguments to make them
1621         independent from the compatibility mode status.
1622         (comp_mode): Add `COMP_ENABLE'.
1623         (do_define_string, do_define_macro): Handle COMP_ENABLE.
1624         (define_string, append_string, define_macro, define_indirect_macro,
1625         append_macro, append_indirect_macro): Handle `compatible_flag'.
1626         (chop_macro, substring_request, asciify): Handle PUSH_COMP_MODE.
1628         * man/groff_diff.man, doc/groff.texinfo: Updated.
1630 2004-07-01  Werner LEMBERG  <wl@gnu.org>
1632         * doc/groff.texinfo: Improve documentation of `hcode'.
1633         Use @documentencoding and convert document to latin-1; to do that
1634         make latin characters active and assign proper macros (within a
1635         @tex...@end tex environment).
1636         * doc/Makefile.in (.texinfo.html, groff): Use --enable-encoding.
1637         * doc/Makefile.sub (groff): Ditto.
1639 2004-06-29  Werner LEMBERG  <wl@gnu.org>
1641         Implement two new conditional operators `F <name>' and `S <name>'
1642         which check whether <name> is a valid font or style, respectively.
1644         * src/libs/libgroff/font.cpp (text_file): Add `silent' member.
1645         (text_file::text_file): Updated.
1646         (text_file::error): Don't emit message if `silent' is set.
1647         (font::load_font): Add optional third argument (which is directly
1648         passed to `load'.
1649         (font::load): Add optional second argument to check the header of
1650         a font only, without emitting warning or error messages.
1651         * src/include/font.h (font): Updated.
1653         * src/roff/troff/input.cpp (do_if_request): Implement `S' and `F'
1654         conditionals.
1655         * src/roff/troff/node.cpp (mount_font_no_translate): Add optional
1656         fourth argument to check a font without mounting.
1657         (check_font, check_style): New functions.
1658         * src/roff/troff/node.h: Updated.
1660         * man/groff_diff.man, man/groff.man, NEWS, doc/groff.texinfo:
1661         Updated.
1663 2004-06-27  Werner LEMBERG  <wl@gnu.org>
1665         Implement new string-valued register `.sty' to return the current
1666         style name.
1668         * env.cpp (environment::get_style_name_string): New function.
1669         (init_env_requests): Add `.sty' register.
1670         * env.h (environment): Updated.
1671         * node.cpp (font_info): Make `get_style_name' a friend.
1672         (get_style_name): New function.
1673         * node.h: Updated.
1675         * man/groff_diff.man, man/groff.man, NEWS, doc/groff.texinfo:
1676         Updated.
1678 2004-06-15  Werner LEMBERG  <wl@gnu.org>
1680         * src/preproc/tbl/main.cpp (process_data) <GOT_RIGHT_BRACE>: Handle
1681         `nospaces' option.
1683 2004-06-10  Colin Percival  <colin.percival@wadham.ox.ac.uk>
1685         * doc/meintro.me, doc/meref.me: Don't use \*[td], \n[dy], \*[mo],
1686         and \n[mo] to avoid dependency on current date.
1688 2004-06-08  Werner LEMBERG  <wl@gnu.org>
1690         * Makefile.sub (install_data): New target.
1692 2004-06-04  Werner LEMBERG  <wl@gnu.org>
1694         * src/libs/libxutil/Makefile.sub (EXTRA_CFLAGS): Define.
1696 2004-06-03  Werner LEMBERG  <wl@gnu.org>
1698         * src/devices/xditview/Makefile.sub (EXTRA_LDFLAGS): Fix typo and
1699         order of libraries.
1700         (install_data): Add $(srcdir).
1702         * src/utils/xtotroff/Makefile.sub (EXTRA_LDFLAGS): Fix order of
1703         libraries.
1705 2004-06-02  Werner LEMBERG  <wl@gnu.org>
1707         * aclocal.m4 (GROFF_X11): s/have_no_x/groff_no_x/.
1708         Add X11 stuff to CFLAGS, LDFLAGS, and LIBS temporarily.
1709         Add test for Xmu library.
1710         (GROFF_APPRESDIR_OPTION, GROFF_APPRESDIR_CHECK,
1711         GROFF_APPRESDIR_DEFAULT): New macros.
1713         * configure.ac: Call GROFF_APPRESDIR_OPTION, GROFF_APPRESDIR_CHECK,
1714         and GROFF_APPRESDIR_DEFAULT.
1716         * configure: Regenerated.
1718         * Makefile.in (appresdir): New variable.
1719         (MDEFINES): Add appresdir.
1721         * src/devices/xditview/Makefile.sub (EXTRA_LDFLAGS): Add -Xmu and
1722         -Xt.
1723         (install_data, uninstall_sub): New targets to handle GXditview.ad.
1725         * src/utils/indxbib/Makefiles.ub (install_data): Depend on
1726         `$(srcdir)/eign', not `eign'.
1728         * MANIFEST, INSTALL, NEWS, PROBLEMS: Updated.
1730         * man/groff_out.man, man/roff.man, src/devices/grops/grops.man,
1731         src/devices/xditview/gxditview.man, src/roff/groff/groff.man:
1732         Protect (g)xditview with `\%' to avoid hyphenation.
1733         Other minor formatting.
1735 2004-06-01  Werner LEMBERG  <wl@gnu.org>
1737         Integrate gxditview into groff's standard directory hierarchy.
1739         * src/xditview/*: Moved to ...
1740         * src/devices/xditview/*: Here.
1741         Moved DviChar.h and XFontName.h to src/include.
1742         Moved DviChar.c and XFontName.c to new directory src/libs/libxutil.
1743         Split off `xmalloc' into new file src/libs/libxutil/xmalloc.c.
1744         Moved xtotroff.c to new directory src/utils/xtotroff.
1745         Provide proper Makefile.sub files (reusing the stuff from
1746         Imakefile.in).
1747         DESC renamed to DESC.in.
1748         Removed GXDitview-ad.h, INSTALL, Imakefile.in.
1749         Converted everything from K&R to ANSI C.
1750         Decorated with const where appropriate.
1751         Cast string constants with `String' and `char *' where appropriate.
1752         Made it compile with C++ (used as a C compiler).
1753         Removed other minor compiler warnings.
1755         * src/devices/xditview/device.c: Include config.h, string.h, and
1756         defs.h.
1757         Don't declare `exit', `strtok', `strchr', and `getenv'.
1758         (FONTPATH): Remove.
1760         * src/devices/xditview/font.c: Don't declare `XParseFontName' and
1761         `XFormatFontName'.
1763         * src/devices/xditview/xditview.c: Include config.h.
1764         Include stdio.h earlier.
1765         Protect declaration of `popen' and `pclose' with
1766         NEED_DECLARATION_POPEN and NEED_DECLARATION_PCLOSE.
1767         Replace `caddr_t' with `XtPointer'.
1768         (MakePromptFunc): New typedef.
1769         (DoPrint): Use RETSIGTYPE.
1770         (promptfunction): Change type to MakePromptFunc.
1771         (MakePrompt): Use MakePromptFunc for third argument.
1772         (xmalloc): Removed.
1774         * src/devices/xditview/ad2c: Add casts to `String'.
1776         * src/include/XFontName.h (XFontNameString): Don't use array
1777         notation.
1778         Add prototypes for `XParseFontName', `XFormatFontName',
1779         `XCompareFontName', and `XCopyFontName'.
1781         * src/include/Makefile.sub (HDRS): Add `DviChar.h' and
1782         `XFontName.h'.
1784         * src/utils/xtotroff/xtotroff.c: Include getopt.h.
1785         Don't declare `XParseFontName' and `XFormatFontName'.
1786         (xmalloc): Removed.
1787         (main): Remove `optind' and `optarg'.
1789         * Makefile.in (XDEVDIRS, XPROGDIRS, XLIBDIRS): New variables
1790         (to select programs which need X).
1791         Make XDEVIDIRS depend on `FORCE'.
1792         (X_CFLAGS, X_LIBS, X_EXTRA_LIBS, X_PRE_LIBS): New variables (for
1793         X support).
1794         (MDEFINES): Updated.
1795         (LIBDIRS): Use XLIBDIRS.
1796         (CPROGDIRS): Use XPROGDIRS.
1797         (DEVDIRS): Remove font directories for gxditview.
1798         (ALLDIRS, DISTDIRS): Add XDEVDIRS.
1799         (EXTRADIRS): Remove src/xditview.
1801         * Makefile.sub (DISCLEANFILES): Updated.
1803         * Makefile.comm (LIBXUTIL): New variable.
1804         (.cpp.o, .cpp.obj): Handle EXTRA_CCFLAGS.
1805         (.c.o, .c.obj, .y.o): Handle EXTRA_CFLAGS.
1807         * Makefile.cpg, Makefile.ccpg ($PROG): Handle EXTRA_LDFLAGS.
1809         * aclocal.m4 (GROFF_X11): New function.
1811         * configure.ac: Call GROFF_X11.
1812         Don't create src/xditview/Imakefile.
1813         Don't emit notice how to build gxditview.
1815         * configure: Regenerated.
1817         * test-groff.in (GROFF_BIN_PATH, XENVIRONMENT): Updated.
1819 2004-05-28  Akihiro Sagawa  <sagawa@sohgoh.net>
1821         * Makefile.in (CPPFLAGS): Define.
1822         (MDEFINES): Add CPPFLAGS.
1824 2004-05-27  Werner LEMBERG  <wl@gnu.org>
1826         * arch/misc/Makefile.sub (shdeps.sed): Use $(srcdir).
1828 2004-05-26  Niklas Edmundsson  <nikke@acc.umu.se>
1830         Fix problems with `friend name injections'.
1832         * src/preproc/eqn/box.h (make_mark_box, make_lineup_box,
1833         make_script_box), src/roff/troff/div.h (end_diversions),
1834         src/roff/troff/env.h (title), input.cpp (process_input_stack): Undo
1835         change 2004-04-08.
1837 2004-05-25  Bernd Warken  <bwarken@mayn.de>
1839         * src/preproc/pic/pic.man, doc/pic.ms: Add example for `command'.
1841 2004-05-25  Werner LEMBERG  <wl@gnu.org>
1843         * src/libs/libgroff/cset.cpp, src/libs/libgroff/lf.cpp,
1844         src/libs/libgroff/color.cpp: Include lib.h.
1846 2004-05-25  Paul Eggert  <eggert@cs.ucla.edu>
1848         * PROBLEMS: Update documentation for problems with Sun C++ 5.0
1849         through Forte 6u1, and for how to get GNU make on Solaris.
1851 2004-05-24  Werner LEMBERG  <wl@gnu.org>
1853         * PROBLEMS: Document problems with gcc 3.4.0 on Sun.  Reported
1854         by Paul Eggert.
1856 2004-05-15  Keith Marshall  <keith.d.marshall@ntlworld.com>
1858         * arch/misc/Makefile.sub (shdeps.sed): Don't use `$<' in explicit
1859         rule.
1861 2005-05-14  Werner LEMBERG  <wl@gnu.org>
1863         * REVISION: Set to 2.
1865         * aclocal.m4 (GROFF_STDINT_H): Removed.
1866         (GROFF_INTTYPES_H): Define HAVE_CC_INTTYPES_H.
1868         * configure.ac: Updated.
1869         * configure, src/include/config.hin: Regenerated.
1871         * src/libs/libgroff/tmpname.cpp: Don't include stdint.h but
1872         inttypes.h conditionally.
1874 2003-05-13  Werner LEMBERG  <wl@gnu.org>
1876 Version 1.19.1 released
1877 =======================
1879 2004-05-10  Stephen Gildea  <http://www.gildea.com/stephen>
1881         * src/preproc/refer/label.y (same_author_last_name,
1882         same_author_name): Handle empty sort keys.
1884 2004-05-10  Werner LEMBERG  <wl@gnu.org>
1886         * NEWS, README, TODO, PROJECTS, PROBLEMS, MANIFEST, doc/webpage.ms,
1887         tmac/TODO: Updated.
1889         * tmac/doc-syms (doc-str-Lb-libposix, doc-str-Lb-libpthread,
1890         doc-str-Lb-librt): Reset font.
1891         (Lb): Rename `doc-str-Lb' to `doc-str-Lb1'.
1892         Provide `doc-str-Lb' to reset font.
1893         * tmac/groff_mdoc.man: Updated.
1895 2004-05-08  Jan Schaumann  <jschauma@netmeister.org>
1897         * src/preproc/html/pre-html.cpp (make_message): Make it work for
1898         snprintf versions which don't conform to ANSI C 99 (this is,
1899         counting the string's trailing null byte in the return value).
1901 2004-05-07  Keith Marshall  <keith.d.marshall@ntlworld.com>
1903         * src/roff/troff/node.cpp (suppress_node::tprint): Don't expect
1904         that all implementations of sprintf handle null pointers correctly.
1906 2004-05-04  Werner LEMBERG  <wl@gnu.org>
1908         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
1909         Document `.U' register.
1911         * src/roff/troff/env.cpp (environment::mark_last_line)
1912         [WIDOW_CONTROL]: Fix scope of `p' for new C++ compilers.
1914 2004-05-04  Larry Kollar  <kollar@alltel.net>
1916         New read-only register `.U'; it returns 1 in safer mode and 0
1917         otherwise.
1919         * src/roff/troff/input.cpp (init_input_requests): Implement `.U'
1920         register.
1922 2004-05-03  Werner LEMBERG  <wl@gnu.org>
1924         * install-sh, mkinstalldirs: New versions; taken from texinfo CVS.
1926 2004-04-17  Werner LEMBERG  <wl@gnu.org>
1928         * src/include/font.h (font): Use `int' for ch_index.
1929         * src/libs/libgroff/font.cpp (font::alloc_ch_index,
1930         font::compact): Updated.
1932         * src/roff/groff/pipeline.c (run_pipeline) [_WIN32]: Fix compiler
1933         warnings.
1935         * src/roff/troff/div.cpp (begin_page), src/roff/troff/env.cpp
1936         (hyphen_word): Fix compiler warnings.
1937         * src/roff/troff/input.cpp (get_char_for_escape_name): Return
1938         `char'.
1939         Update all callers.
1940         (get_delim_number, get_line_arg): Change second argument type to
1941         `unsigned char'.
1942         (macro_header::copy, token::next, do_define_string,
1943         do_define_character, substring_request, asciify_macro,
1944         unformat_macro, read_size, non_interpreted_node::interpret,
1945         while_request, main: Fix compiler warnings.
1946         (read_color_draw_node): Initialize `col'.
1948         * src/preproc/tbl/table.cpp (horizontal_span, table_entry): Make
1949         `start_col' and `end_col' of type `int'.
1950         (vertical_rule): Make `col' of type `int'.
1952         * src/preproc/grn/hdb.cpp (DBRead): Protect call to getc with check
1953         for EOF.
1955         * src/preproc/refer/label.y (uppercase_array, lowercase_array):
1956         New arrays.
1957         (format_serial): Use them to remove dependency on ASCII.
1959         * src/devices/grops/ps.cpp (ps_printer::define_encoding): Fix
1960         compiler warning.
1961         * src/devices/grops/psrm.cpp (resource_manager::supply_resource):
1962         Ditto.
1964         * src/devices/grotty/tty.cpp (tty_font::load_tty_font): Fix
1965         compiler warnings.
1966         (glyph): Change type of `hpos' to `int'.
1968         * src/devices/lbp/lbp.cpp (strsep): Removed.  Unused.
1969         * src/devices/lbp/lbp.h (splinerel): Fix compiler warnings.
1971         * src/utils/tfmtodit.cpp (gf::load): Fix compiler warnings.
1973         * src/utils/pfbtops/pfbtops.c (get_text): Fix compiler warning.
1975 2004-04-16  Werner LEMBERG  <wl@gnu.org>
1977         * src/devices/grolbp/lbp.h, src/preproc/grn/gprint.h,
1978         src/preproc/grn/hgraph.cpp, src/preproc/grn/hpoint.cpp,
1979         src/preproc/html/pushback.cpp, src/preproc/html/pushback.h: Use
1980         `double' instead of `float' everywhere.
1981         * src/preproc/grn/main.cpp: Use `double' instead of `float'
1982         everywhere.
1983         (main): Add return value.
1984         * src/preproc/grn/hdb.cpp: Use `double' instead of `float'
1985         everywhere.
1986         Update all user functions.
1988         * src/include/search.h, src/include/ptable.h, src/include/printer.h,
1989         src/preproc/eqn/box.h, src/preproc/pic/object.h,
1990         src/preproc/refer/refer.h, src/preproc/tbl/table.h,
1991         src/preproc/tbl/table.cpp, src/roff/troff/env.h,
1992         src/roff/troff/div.h, src/roff/troff/token.h, src/roff/troff/node.h,
1993         src/roff/troff/input.cpp, src/roff/troff/request.h,
1994         src/roff/troff/node.cpp: Don't mix `struct' and `class' in forward
1995         declarations.
1997         * src/utils/indxbib/signal.c: Include stdlib.h.
1999 2004-04-14  Keith Marshall  <keith.d.marshall@ntlworld.com>
2001         * tmac/s.tmac (@init, RP): Allow initialization of the PO register
2002         before the first page.
2004 2004-04-14  Thomas Klausner  <wiz@netbsd.org>
2006         * tmac/doc-common (doc-volume-as-*): Use lowercase names.
2007         (doc-operating-system-*): Updated.
2008         * tmac/doc-syms (doc-str-St-*): Various small fixes.
2009         (doc-str-Lb-*): Add more library names.
2011 2004-04-10  Art Haas  <ahaas@airmail.net>
2013         * src/utils/hpftodit/hpuni.cpp (hp_msl_to_unicode_list): Don't
2014         use anonymous type.
2016 2004-04-09  Art Haas  <ahaas@airmail.net>
2018         * src/utils/tfmtodit.cpp (lig_chars): Don't use anonymous type.
2020 2004-04-09  Keith Marshall  <keith.d.marshall@ntlworld.com>
2022         * arch/misc/shdeps.sh: Generate better comment for sed script.
2024 2004-04-08  Art Haas  <ahaas@airmail.net>
2026         * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list),
2027         src/libs/libgroff/uniglyph.cpp (unicode_to_glyph_list),
2028         src/libs/libgroff/uniuni.cpp (unicode_decompose_list),
2029         src/preproc/eqn/box.cpp (param_table), src/preproc/grn/hgraph.cpp
2030         (polyfill), src/preproc/grn/main.cpp (polyfill),
2031         src/preproc/refer/command.cpp (command_table),
2032         src/utils/tfmtodit.cpp (lig_table): Don't use anonymous types (which
2033         gcc 3.5 doesn't like).
2035 2004-04-08  Werner LEMBERG  <wl@gnu.org>
2037         Removing many compiler warnings.  groff should now compile with
2038         a C++ compiler used for C files also.  [Simple variable renamings
2039         to avoid shadowing aren't logged in detail.]
2041         * src/devices/grodvi/dvi.cpp: Some local variable renamings.
2042         (draw_dvi_printer::draw) ['c']: Enclose in block.
2044         * src/devices/grohtml/post-html.cpp: Some local variable renamings.
2045         (page::add_line): Fix typos.
2046         * src/devices/grohtml/html-text.cpp: Some local variable renamings.
2048         * src/devices/grolbp/lbp.cpp: Don't define _GNU_SOURCE.
2049         Some local variable renamings.
2050         * src/devices/grolbp/lbp.h: Some local variable renamings.
2052         * src/devices/grolj4/lj4.cpp, src/devices/grotty/tty.cpp: Some local
2053         variable renamings.
2055         * src/libs/libbib/index.cpp (index_search_item_iterator::get_tag):
2056         Remove redundant local variable declaration.
2057         * src/libs/libbib/map.c (mapread, unmap): Don't use K&R style.
2058         Don't use `caddr_t' but `void *'.
2059         Enclose functions with `extern "C"' for C++.
2061         * src/libs/libdriver/input.cpp (remember_filename,
2062         remember_source_filename): Use cast for string constant.
2064         * src/libs/libgroff/font.cpp, src/libs/libgroff/fontfile.cpp,
2065         src/libs/libgroff/nametoindex.cpp, src/libs/libgroff/paper.cpp,
2066         src/libs/libgroff/geometry.cpp: Some local variable renamings.
2067         * src/libs/libgroff/iftoa.c, src/libs/libgroff/itoa.c: Don't use K&R
2068         style.
2069         Enclose functions with `extern "C"' for C++.
2070         * src/libs/libgroff/quotearg.c (TRUE,FALSE): Define as macros.
2071         (needs_quoting): Return `int'.
2072         (quote_arg): Add proper casts to malloc and realloc.
2073         * src/libs/libgroff/spawnvp.c: Compile code only for MS-DOS and
2074         various MS Windows environments.
2075         (spawnvp_wrapper): Add proper cast to malloc.
2077         * src/preproc/eqn/box.h: Remove redundant declarations of
2078         `make_script_box', `make_mark_box' and `make_lineup_box'.
2079         * src/preproc/eqn/eqn.y: Remove redundant declaration of `strsave'.
2080         * src/preproc/eqn/script.cpp, src/preproc/eqn/pile.cpp: Some local
2081         variable renamings.
2083         * src/preproc/grn/hpoint.cpp: Some local variable renamings.
2084         * src/preproc/grn/hgraph.cpp: Some local variable renamings.
2085         (dx, dy): Renamed functions to...
2086         (deltax, deltay): This.
2087         * src/preproc/grn/main.cpp: Some local variable renamings.
2088         (deffont): Add `const'.
2089         (initpic, conv): Use cast for string constant.
2091         * src/preproc/html/pre-html.cpp: Some local variable renamings.
2092         (makeFileName, alterDeviceTo, addZ): Use cast for string constant.
2093         (char_buffer::run_output_filter): Second argument is unused.
2094         * src/preproc/html/pushback.cpp: Some local variable renamings.
2096         * src/preproc/pic/pic.y: Remove redundant declaration of `do_copy'.
2097         * src/preproc/pic/object.cpp: Some local variable renamings.
2099         * src/preproc/refer/label.y (lookup_label): Remove redundant
2100         declaration of local variable.
2102         * src/preproc/soelim.cpp: Remove redundant declaration of
2103         `interpret_lf_args'.
2105         * src/preproc/tbl/main.cpp: Some local variable renamings.
2107         * src/roff/groff/groff.cpp (main): Use cast for string constant.
2108         * src/roff/groff/pipeline.c: Enclose declarations of `error',
2109         `c_fatal', and `i_to_a' with `extern "C"' for C++.
2110         Don't use C++-style comments.
2112         * src/roff/troff/env.h: Remove redundant declaration of `title'.
2113         * src/roff/troff/node.h, src/roff/troff/env.cpp,
2114         src/roff/troff/div.cpp, src/roff/troff/node.cpp: Some local variable
2115         renamings.
2116         * src/roff/troff/div.h: Remove redundant declaration of
2117         `end_diversions'.
2118         * src/roff/troff/troff.h: Remove redundant declaration of
2119         `cleanup_and_exit'
2120         * src/roff/troff/input.cpp: Remove redundant declaration of
2121         `handle_first_page_transition' and `process_input_stack'.
2123         * src/utils/hpftodit.cpp: Some local variable renamings.
2125         * src/utils/indxbib/signal.c: Enclose functions with `extern "C"'
2126         for C++.
2127         Don't define RETSIGTYPE.
2128         * src/utils/indxbib/indxbib.cpp: Some local variable renamings.
2130         * src/utils/pfbtops/pfbtops.cpp: Don't use K&R style.
2131         (error): Use `const' in argument.
2132         (main): Remove redundant declaration of `optind'.
2133         Move declaration of `Version_string' to top-level.
2135         * PROBLEMS: Document difficulties compiling signal.c if a C++
2136         compiler is used for C.
2138 2004-04-07  Werner LEMBERG  <wl@gnu.org>
2140         * Makefile.sub (DISTCLEANFILES): Add `test-groff'.
2142 2004-04-06  Keith Marshall  <keith.d.marshall@ntlworld.com>
2144         Make scripts like nroff.sh and neqn.sh portable across various
2145         (Unix-like) shell implementations from Cygwin, MSYS, etc., which use
2146         non-POSIX path separators.  The idea is to extend those scripts to
2147         decide at run-time (of the script) which path separator to use.
2149         * arch/misc/Makefile.sub: New file.
2150         * arch/misc/shdeps.sh: New file, generating OS dependency fixups.
2151         This script handles @GROFF_BIN_PATH_SETUP@, replacing it with
2152         a proper definition of the variable `GROFF_RUNTIME'.
2154         * Makefile.in (SH_DEPS_SED_SCRIPT): New variable.
2155         (MDEFINES): Add SH_DEPS_SED_SCRIPT.
2156         (PROGDEPDIRS): New variable.
2157         `FORCE' it.
2158         (PROGDIRS): Add PROGDEPDIRS.
2160         * src/preproc/eqn/Makefile.sub (neqn): Call SH_DEPS_SED_SCRIPT.
2161         Don't substitute @SEP@ and @BINDIR@.
2162         * src/preproc/eqn/neqn.sh: Use @GROFF_BIN_PATH_SETUP@.
2163         (PATH): Use GROFF_RUNTIME.
2165         * src/roff/nroff/Makefile.sub (nroff): Call SH_DEPS_SED_SCRIPT.
2166         Don't substitute @SEP@ and @BINDIR@.
2167         * src/roff/nroff/nroff.sh: Use @GROFF_BIN_PATH_SETUP@.
2168         (PATH): Use GROFF_RUNTIME.
2170 2004-04-05  Keith Marshall  <keith.d.marshall@ntlworld.com>
2172         * src/roff/nroff/nroff.sh: Implement work-around for sh.exe from
2173         Cygwin which doesn't handle stderr correctly.
2175 2004-03-08  Werner LEMBERG  <wl@gnu.org>
2177         * Makefile.comm (install_dev, uninstall_dev): Protect `for' loops
2178         against empty argument.  Problem reported by <cgd@broadcom.com>.
2180 2004-03-05  Keith Marshall  <keith.d.marshall@ntlworld.com>
2182         * Makefile.in (SEP): Replaced with...
2183         (RT_SEP, SH_SEP): Separators for the target platform's native path
2184         separator and the build environment, respectively.
2185         (fontpath, tmacpath): Use RT_SEP.
2186         (MDEFINES): Updated.
2188         * contrib/mom/Makefile.sub (GROFF_BIN_PATH): Use SH_SEP.
2189         * doc/Makefile.sub (GROFF_BIN_PATH): Use SH_SEP.
2190         * src/preproc/eqn/Makefile.sub (neqn): Use SH_SEP.
2191         * src/roff/nroff/Makefile.sub (nroff): Use SH_SEP.
2193 2004-03-05  Werner LEMBERG  <wl@gnu.org>
2195         * fonts/devlj4/Makefile.sub (LJ4RES): Set to 1200.  This helps to
2196         reduce alignment problems with newer printers which use built-in
2197         TrueType fonts (instead of the older Intellifonts).  The ideal
2198         solution is to provide a second set of groff metric files, but this
2199         is extremely time-consuming to produce, given that HP's metric
2200         files are very rudimentary.
2202 2004-03-01  Werner LEMBERG  <wl@gnu.org>
2204         * src/devices/grolj4/lj4.cpp (main): Fix argument of getopt_long.
2205         s/operand/argument/ in error message.
2207 2004-03-01  Keith Marshall  <keith.d.marshall@ntlworld.com>
2209         * src/roff/groff/groff.cpp (main): Don't allow option -o if -Thtml
2210         is in use.
2212 2004-03-01  Antti Kantee  <pooka@netbsd.org>
2214         * tmac/s.tmac (XE): Fix error message.
2216 2004-02-27  Jeff Conrad  <jeff_conrad@msn.com>
2218         * src/include/nonposix.h (write, dup, dup2, close) [_MSC_VER]:
2219         New macros.
2221         * src/roff/groff/pipeline.c: Declare strcasecmp.
2222         (run_pipeline) [_WIN32]: Use function name variants which don't
2223         start with `_'.
2224         Fix stream handling.
2226 2004-02-27  Keith Marshall  <keith.d.marshall@ntlworld.com>
2228         * src/include/nonposix.h: Fix declaration of `system_shell_name'.
2229         Declare `spawnvp_wrapper' and macro definitions of spawnvp only
2230         for platforms which use the native Win32 runtime libraries.
2231         (FLUSH_INPUT_PIPE) [_UWIN]: Provide non-empty version.
2233         * src/libs/libgroff/quotearg.c (QUOTE_ARG_MALLOC_ERROR,
2234         QUOTE_ARG_REALLOC_ERROR): Fix string.
2236         * src/preproc/html/pre-html.cpp: Remove declaration of
2237         `spawnvp_wrapper'.
2238         Don't use __MINGW32__.
2239         s/DEBUG_FILE/DEBUG_FILE_DIR/.
2240         (DEBUG_TEXT, DEBUG_NAME, DEBUG_FILE) [DEBUGGING]: New macros.
2241         (OUTPUT_STREAM, PS_OUTPUT_STREAM, REGION_OUTPUT_STREAM): New macros.
2242         (char_buffer::run_output_filter) [MAY_FORK_CHILD_PROCESS]: Fix
2243         calls to `set_redirection' and `WAIT'.
2244         [MAY_SPAWN_ASYNCHRONOUS_CHILD]: Remove unused variable `i' and `j'.
2245         Fix calls to `set_redirection' and `save_and_redirect'.
2246         (char_buffer::do_html, char_buffer::do_image) [DEBUGGING]: Fix calls
2247         to `set_redirection' and `save_and_redirect'.
2248         (usage): Fix message.
2249         (makeTempFiles, main): Use `DEBUG_FILE'.
2251 2004-02-21  Werner LEMBERG  <wl@gnu.org>
2253         * src/roff/troff/troff.h (WARN_TOTAL): Fix value.
2255 2004-02-21  Keith Marshall  <keith.d.marshall@ntlworld.com>
2257         * src/libs/libgroff/quotearg.c: New file, providing proper argument
2258         quoting for MSVC's spawn* and exec* functions.
2259         * src/libs/libgroff/spawnvp.c: New file, providing a wrapper around
2260         spawnvp with proper quoting for MSVC.
2262         * src/libs/libgroff/assert.cpp (program_name),
2263         src/libs/libgroff/new.cpp (program_name): Declare as `extern "C"'.
2264         * src/libs/libgroff/Makefile.sub (OBJS, CSRCS): Updated.
2266         * src/roff/troff/input.cpp (program_name): Declare as `extern "C"'.
2268         * src/include/error.h (program_name): Declare as `extern "C"'.
2269         * src/include/nonposix.h [__MSDOS__ ...]: Handle spawnvp.
2271 2004-02-21  Jeff Conrad  <jeff_conrad@msn.com>
2273         * src/preproc/html/pre-html.cpp [__CYGWIN__ ...]: Declare
2274         spawnvp_wrapper.
2275         [MAY_SPAWN_ASYNCHRONOUS_CHILD]: Declare i and j.
2277 2004-02-20  Jeff Conrad  <jeff_conrad@msn.com>
2279         * src/roff/groff/pipeline.c (cmd) [__MSDOS__ || ...]: New global
2280         variable.
2281         (sbasename) [__MSDOS__ || ...]: New function.
2282         (system_shell_name) [__MSDOS__ || ...]: Use a different, more
2283         generic algorithm.
2284         (system_shell_dash_c, is_system_shell) [__MSDOS__ || ...]: Updated.
2285         (run_pipeline) [_WIN32]: Use _XXX variants for some macros instead
2286         of XXX.
2287         Use STDOUT_FILENO instead of hardcoded file handle.
2288         (signal_catcher) [__MSDOS__]: Moved to non-_WIN32 section.
2290 2004-02-19  Werner LEMBERG  <wl@gnu.org>
2292         * src/roff/troff/div.cpp: Include nonposix.h after troff.h to
2293         avoid warnings w.r.t. redefinition of P_tmpdir for some compilers.
2295 2004-02-18  Werner LEMBERG  <wl@gnu.org>
2297         * font/devlj4/Makefile.sub (DEVFILES): Updated to contain all
2298         new font and mapping files.
2300 2004-02-18  Jeff Conrad  <jeff_conrad@msn.com>
2301             Keith Marshall  <keith.d.marshall@ntlworld.com>
2303         * src/include/nonposix.h (FLUSH_INPUT_PIPE): New macro to empty
2304         an input pipe.  This is needed for the MSVC compiler to make troff's
2305         `-o' option work.
2307         * src/roff/troff/div.cpp: Include nonposix.h.
2308         (cleanup_and_exit): Call FLUSH_INPUT_PIPE.
2310 2004-02-17  Werner LEMBERG  <wl@gnu.org>
2312         * font/devlj4/generate/special.awk: New script.
2313         * font/devlj4/generate/Makefile (S): Use special.awk.
2314         * font/devlj4/*: Regenerated, including the following new files:
2315         Arial (AR, AB, AI, ABI), Times New Roman (TNRR, TNRB, TNRI, TNRBI),
2316         MS Symbol (SYMBOL), Wingdings (WINGDINGS).
2317         * NEWS: Document new lj4 fonts and revised hpftodit.
2319 2004-02-17  Paco Andrés Verdú  <pandres@dragonet.es>
2321         * src/devices/grolbp/lbp.h (vmdvarc): Fix formatting string.
2323 2004-01-25  Werner LEMBERG  <wl@gnu.org>
2325         * src/libs/libgroff/progname.cpp: Replaced with...
2326         * src/libs/libgroff/progname.c: New file.
2327         * src/libs/libgroff/Makefile.sub: Updated accordingly.
2329 2004-01-17  Werner LEMBERG  <wl@gnu.org>
2331         * font/devlj4/generate/Makefile (SYMBOL): Use 9nb28703.tfm.
2333 2004-01-16  Jeff Conrad  <jeff_conrad@msn.com>
2335         * font/devlj4/generate/wingdings.map,
2336         font/devlj4/generate/symbol.map: Include unnamed glyphs.
2337         Use groff glyph names where possible.
2338         * src/devices/grolj4/lj4_font.man: Minor updates.
2340 2004-01-13  Werner LEMBERG  <wl@gnu.org>
2342         * tmac/www.tmac (DC): Handle TTY devices.
2344         * doc/webpage.ms: Document viewCVS from ffii.org.
2345         * NEWS, README: Updated.
2347         * src/roff/groff/groff.man: Mention lj4_font man page.
2349         * font/devlj4/generate/Makefile (SYMBOLMAP, WINGDINGSMAP): New
2350         variables.
2351         (FONTS): Add SYMBOL and WINGDINGS.
2352         (SYMBOL, WINGDINGS): New targets.
2354 2004-01-13  Jeff Conrad  <jeff_conrad@msn.com>
2356         * src/devices/grolj4/lj4_font.man: New man page.
2357         * src/devices/grolj4/Makefile.sub (MAN5): New variable.
2358         * src/devices/grolj4.man: Mention lj4_font man page.
2360         * src/utils/hpftodit/hpftodit.cpp (read_map): Handle line comments.
2361         * src/utils/hpftodit/hpftodit.man: Document it.
2362         (CW): New macro.
2363         Remove details about fonts (which are now in lj4_font.man).
2365         * font/devlj4/generate/symbol.map,
2366         font/devlj4/generate/wingdings.map: New files.
2368 2004-01-12  Werner LEMBERG  <wl@gnu.org>
2370         * README: Mention ffii's viewcvs access.
2372 2004-01-09  Werner LEMBERG  <wl@gnu.org>
2374         * font/devlj4/generate/special.map: Map MSL 228 to U+221F.
2376 2004-01-09  Jeff Conrad  <jeff_conrad@msn.com>
2378         Revert most of the change from 2004-01-03 to better control used
2379         symbol sets.
2381         * src/utils/hpftodit/hpftodit.cpp (symbol_set): New structure.
2382         (text_symbol_sets, special_symbol_sets): New arrays.
2383         (symbol_set_table): New global variable.
2384         (read_symbol_sets): Use search order given in the text_symbol_sets
2385         and special_symbol_sets arrays.  If command line flag -a is not
2386         given, search both arrays.
2387         (output_charset): Require x_height_tag only for command line flag -i.
2389 2004-01-06  Werner LEMBERG  <wl@gnu.org>
2391         Implement string-valued registers \n[.m] and \n[.M] to return the
2392         name of the current drawing and background color, respectively.
2394         * src/roff/troff/symbol.h: Moved to...
2395         * src/include/symbol.h: Here.
2396         Small fixes to make it work outside of the `troff' directory.
2397         * src/roff/troff/symbol.cpp: Moved to...
2398         * src/libs/libgroff/symbol.cpp: Here.
2399         Small fixes to make it work outside of the `troff' directory.
2401         * src/include/Makefile.sub (HDRS), src/libs/libgroff/Makefile.sub
2402         (OBJS, CCSRCS), src/roff/troff/Makefile.sub (OBJS, CCSRCS, HDRS):
2403         Updated.
2405         * src/include/color.h: Include symbol.h.
2406         (color): Add new field `nm'.
2407         * src/libs/libgroff/color.cpp (color::color): Updated.
2409         * src/roff/troff/dictionary.cpp, src/roff/troff/div.cpp,
2410         src/roff/troff/node.cpp, src/roff/troff/number.cpp,
2411         src/roff/troff/reg.cpp: Don't include symbol.h.
2413         * src/roff/troff/env.cpp: Don't include symbol.h.
2414         (environment::get_glyph_color_string,
2415         environment_get_fill_color_string): New member functions.
2416         (init_env_requests): Handle `.m' and `.M' registers.
2417         * src/roff/troff/input.cpp: Don't include symbol.h.
2418         (default_symbol): Moved to symbol.cpp/symbol.h.
2419         (do_glyph_color, do_fill_color, define_color): Pass symbol name
2420         to color constructor.
2421         * src/roff/troff/env.h: Updated.
2423         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
2424         Document new registers.
2426 2004-01-05  Werner LEMBERG  <wl@gnu.org>
2428         * src/roff/troff/node.cpp (space_node::get_breakpoints,
2429         space_node::nbreaks): Protect against zero `next' field.
2431 2004-01-03  Jeff Conrad  <jeff_conrad@msn.com>
2433         In hpftodit, use the symbol sets offered in the TFM.
2435         * src/utils/hpftodit/hpftodit.cpp (NO_GLYPH): New constant.
2436         (symbol_set, text_symbol_sets, special_symbol_sets,
2437         symbol_set_table): Removed.
2438         (get_printcode): Removed.
2439         (read_symbol_sets): Initialize `symbol_set' field with
2440         `NO_SYMBOL_SET'.
2441         Simplify code to just use the `kind' value.
2442         (output_charset): Improve output formatting.
2443         (dump_symbols): Simplified.
2445 2004-01-02  Werner LEMBERG  <wl@gnu.org>
2447         * font/devlj4/generate/text.map: Add more MSL numbers.
2449 2004-01-02  Jeff Conrad  <jeff_conrad@msn.com>
2451         * src/utils/hpftodit/hpftodit.cpp (is_decomposed): New macro.
2452         (text_symbol_sets): Add more symbol sets.
2453         (debug_flag): New static variable (moved from `main').
2454         (get_printcode, show_symset): New functions.
2455         (main): Remove `debug_flag'.
2456         (output_charset): Use `show_symset'.
2457         (dump_symbols):  Use `show_symset'.
2458         Print symsets for all glyphs.
2459         (read_map): Actually call `unicode_to_ucode_make' but this time
2460         correctly.
2462 2004-01-01  Werner LEMBERG  <wl@gnu.org>
2464         * font/devlj4/generate/text.map, font/devlj4/generate/special.map:
2465         Fix placement of comments.
2467 2004-01-01  Jeff Conrad  <jeff_conrad@msn.com>
2469         * src/utils/hpftodit/hpftodit.cpp (main): Read map file also if
2470         option `-d' is given.
2471         (output_charset): Improve warning messages to give more information.
2472         (dump_symbols): Make information more precise.
2473         (usage): Updated.
2474         (read_map): Don't call unicode_to_ucode_name; the glyph names must
2475         appear as-is and shouldn't be decomposed.
2477 2003-12-31  Werner LEMBERG  <wl@gnu.org>
2479         * src/utils/hpftodit/hpftodit.cpp (dump_tags): Handle posture_tag.
2480         * font/devlj4/generate/Makefile (IFLAG): Updated to new units.
2481         (FONTS): Add TrueType font families Arial and Times New Roman.
2482         (TNRR, TNRB, TNRI, TNRBI, AR, AB, AI, ABI): New targets.
2483         * font/devlj4/generate/text.map: Fix Unicode values of `fi' and
2484         `fl'.
2486 2003-12-31  Jeff Conrad  <jeff_conrad@msn.com>
2488         * test-groff.in (SEP): Quote value.
2489         * src/roff/troff/node.cpp (suppress_node::tprint): Change type of
2490         `tem' to `char*' to avoid deallocation of a pointer to a constant
2491         object which some compilers don't like.
2493 2003-12-31  Werner LEMBERG  <wl@gnu.org>
2495         * font/devlj4/generate (text.map, special.map): Rewritten to work
2496         with the new hpftodit version.
2498 2003-12-30  Jeff Conrad  <jeff_conrad@msn.com>
2500         * src/utils/hpftodit/hpftodit.cpp (output_charset): Emit HP symbol
2501         set and 8bit character code for all glyphs also.
2503 2003-12-30  Werner LEMBERG  <wl@gnu.org>
2505         * src/libs/libgroff/strcasecmp.c: Updated from gnulib.
2507 2003-12-29  Werner LEMBERG  <wl@gnu.org>
2509         More fixes for MSVC compiler.
2511         * doc/Makefile.sub, contrib/mom/Makefile.sub (GROFF_BIN_PATH): Use
2512         $(SEP).
2514         * src/include/nonposix.h (STDIN_FILENO, STDOUT_FILENO,
2515         STDERR_FILENO) [_MSC_VER]: Define conditionally.
2516         (getpid) [_MSC_VER]: Remove.
2517         Include direct.h and process.h conditionally.
2519         * src/roff/troff/node.cpp (suppress_node::tprint): Don't use
2520         parentheses for a_delete.
2522         * src/utils/lookbib/lookbib.cpp: Include nonposix.h.
2524         * test-groff: Replaced with...
2525         * test-groff.in: This new template to handle path separator
2526         properly.
2528         * configure.ac: Check for direct.h and process.h.
2529         Generate test-groff script.
2530         * configure, src/include/config.hin: Regenerated.
2532 2003-12-28  Werner LEMBERG  <wl@gnu.org>
2534         Add integral extension glyph.
2535         Add new option `-x' to afmtodit to suppress use of built-in AGL.
2537         * font/devhtml/R.proto, font/devutf8/R.proto: Add `u23AE'.
2539         * font/devps/generate/textmap: Provide entry for `integralex' to
2540         override (old) PUA value of the AGL.
2541         * font/devps/generate/Makefile (SS): Add afmtodit option `-x'.
2542         * font/devps/*: Regenerated.
2544         * src/utils/afmtodit/afmtodit.pl: Add option `-x'.
2545         * src/utils/afmtodit/afmtodit.man, NEWS: Updated.
2547 2003-12-27  Werner LEMBERG  <wl@gnu.org>
2549         Add forgotten `coproduct' symbol (already available for DVI).
2551         * font/devhtml/R.proto, font/devps/generate/textmap,
2552         font/devps/symbolmap, font/devutf8/R.proto, man/groff_char.man,
2553         src/libs/libgroff/uniglyph.cc, src/libs/libgroff/glyphuni.cpp: Add
2554         U+2210 (\[coproduct]).
2556 2003-12-26  Jeff Conrad  <jeff_conrad@msn.com>
2558         hpftodit has been extended to handle TrueType metric files and
2559         more glyphs.  See hpftodit.man for more details.
2561         * src/utils/hpftodit/hpftodit.cpp: Include stdio.h, string.h,
2562         ctype.h, and unicode.h.
2563         s/msl/charcode/ everywhere since we now handle Unicode values also.
2564         (equal, NO, YES, MSL, SYMSET, UNICODE, UNICODE): New macros.
2565         Use it where appropriate.
2566         (MULTIPLIER): Replaced with...
2567         (multiplier): New global static variable.
2568         (scale): Updated.
2569         (tag_type): Add more TFM tags.
2570         (tag_name): New array.
2571         (ENUM_TYPE, FLOAT_TYPE): Removed.
2572         (BYTE_TYPE): New value assigned.
2573         (ASCII_TYPE, RATIONAL_TYPE): New enumeration values.
2574         (text_symbol_sets, special_symbol_sets): Extended to cover more
2575         sets.
2576         (check_type): Add return value.
2577         (check_units): Add parameters to get ppi and upem values.
2578         Handle TrueType TFM data.
2579         (output_font_name): New function.
2580         (output_charset): Add parameter to handle TFM type.
2581         Handle TrueType TFMs also.
2582         (em_fract): New macro.
2583         (dump_tags): Be much more verbose and handle more tags.
2584         (dump_ascii, dump_symbol_sets, dump_symbols): New functions.
2585         (hp_msl_to_ucode_name, unicode_to_ucode_name, is_uname): New
2586         functions.
2587         (read_map): Add parameter to handle TFM type.
2588         Handle both MSL and Unicode mappings.
2589         (main): Add two new command line options `-a' and `-q'.
2590         Updated to make use of new functions.
2591         (usage): Updated.
2593         * src/utils/hpftodit/hpuni.cpp: New file.
2595         * src/utils/hpftodit/Makefile.sub, src/utils/hpftodit/hpftodit.man:
2596         Updated.
2598 2003-12-25  Werner LEMBERG  <wl@gnu.org>
2600         * src/include/nonposix.h (read) [_MSC_VER]: Define.
2602 2003-12-24  Werner LEMBERG  <wl@gnu.org>
2604         * src/utils/afmtodit/afmtodit.man: Some reformulations as suggested
2605         by Michail Vidiassov <master@iaas.msu.ru>.
2607 2003-12-20  Werner LEMBERG  <wl@gnu.org>
2609         * font/devhtml/R.proto: Add u00{47,67}_0306, u00{53,73}_0327,
2610         and u0049_0307.
2611         Add missing latin-2 glyphs.
2612         * font/devutf8/R.proto: Add missing latin-2 glyphs.
2614         * tmac/troffrc: Load `composite.tmac' earlier.
2616         * tmac/dvi.tmac, tmac/ps.tmac, tmac/lbp.tmac: Add u00{47,67}_0306,
2617         u00{53,73}_0327, and u0049_0307.
2618         * tmac/X.tmac: Add u00{47,67}_0306.
2619         * tmac/tty-char.tmac: Use composite glyph names for readability.
2621         * NEWS: Updated.
2623         * src/include/unicode.h: Remove `extern' keywords.
2625 2003-12-20  Nilgün Belma Bugüner  <nilgun@superonline.com>
2627         * tmac/latin5.tmac: New file.
2629 2003-12-19  Werner LEMBERG  <wl@gnu.org>
2631         Add some glyphs needed for Turkish.
2633         * font/devutf8/R.proto: Add u00{47,67}_0306, u00{53,73}_0327,
2634         and u0049_0307.
2636         * tmac/composite.tmac: Add `,' as a synonym for `ac' accent.
2637         * tmac/tty-char.tmac: Add representations for u00{47,67}_0306,
2638         u00{53,73}_0327, and u0049_0307.
2640 2003-12-18  Werner LEMBERG  <wl@gnu.org>
2642         * src/devices/grops/ps.cc (ps_output::put_float): Revert change
2643         from 2001-10-04.
2644         Remove trailing zeros.
2646 2003-12-17  Werner LEMBERG  <wl@gnu.org>
2648         Make \? transparent to end-of-sentence recognition.
2650         * src/roff/troff/input.cc (non_interpreted_node): Add
2651         `ends_sentence' member function.
2653 2003-12-16  Werner LEMBERG  <wl@gnu.org>
2655         * doc/groff.texinfo: Document `dt' request correctly.
2656         Other minor typographical improvements.
2658 2003-12-10  Michail Vidiassov  <master@iaas.msu.ru>
2660         * src/utils/afmtodit/Makefile.sub (afmtodit): Fix typo.
2662 2003-12-10  Richard Stallman  <rms@gnu.org>
2664         * LICENSE: Better wording.
2666 2003-12-09  Werner LEMBERG  <wl@gnu.org>
2668         * aclocal.m4 (GROFF_BROKEN_SPOOLER_FLAGS): Set default value to 0.
2669         * configure, NEWS: Updated.
2671 2003-12-08  Werner LEMBERG  <wl@gnu.org>
2673         * FDL: Updated to version 1.2 (from www.gnu.org/copyleft).
2675 2003-12-07  Bernd Warken  <bwarken@mayn.de>
2677         * LICENSE: Updated.
2679 2003-12-07  Werner LEMBERG  <wl@gnu.org>
2681         * INSTALL: Improved.
2683 2003-12-05  Keith Marshall  <keith.d.marshall@ntlworld.com>
2685         Use path separator character of target platform for compiled-in
2686         default paths.
2688         * aclocal.m4 (GROFF_TARGET_PATH_SEPARATOR): New macro.
2689         * configure.ac: Use GROFF_TARGET_PATH_SEPARATOR.
2690         * configure: Regenerated.
2691         * Makefile.in (SEP): Use GROFF_PATH_SEPARATOR.
2693 2003-12-05  Werner LEMBERG  <wl@gnu.org>
2695         * src/include/nonposix.h (PATH_SEP_CHAR): New definition.
2696         Replace `PATH_SEP[0]' with `PATH_SEP_CHAR' everywhere.
2698 2003-12-04  Bernd Warken  <bwarken@mayn.de>
2700         * LICENSE: New file.
2702 2003-12-03  Werner LEMBERG  <wl@gnu.org>
2704         * src/utils/afmtodit/afmtodit.pl: Comment out code which handles
2705         ligatures present in AFM files since groff currently only
2706         understands some standard ligatures and nothing else.
2708 2003-12-03  Jeff Conrad  <jeff_conrad@msn.com>
2710         * src/roff/groff/groff.cpp (main): Don't run the spooler if
2711         option -v is given.
2713         * src/roff/groff/pipeline.c (run_pipeline) [_WIN32]: Fix error
2714         messages.
2715         Close stdout copy.
2716         Don't use Unix wait flags.
2718 2003-12-02  Werner LEMBERG  <wl@gnu.org>
2720         * src/roff/troff/glyphuni.cpp, src/roff/troff/unicode.cpp,
2721         src/roff/troff/unicode.h, src/roff/troff/uniglyph.cpp,
2722         src/roff/troff/uniuni.cpp: Moved to...
2723         * src/libs/libgroff/glyphuni.cpp, src/libs/libgroff/unicode.cpp,
2724         src/libs/libgroff/unicode.h, src/libs/libgroff/uniglyph.cpp,
2725         src/libs/libgroff/uniuni.cpp: Here.
2727         * src/include/Makefile.sub.old (HDRS),
2728         src/libs/libgroff/Makefile.sub (OBJS, CCSRCS),
2729         src/roff/troff/Makefile.sub (HDRS, PBJS, CCSRCS): Updated.
2731 2003-12-01  Keith Marshall  <keith.d.marshall@ntlworld.com>
2733         * src/preproc/htlp/pre-html.cpp (__tmpfile): Renamed to
2734         `DEBUG_FILE'.
2735         Updated all users.
2737 2003-12-01  Werner LEMBERG  <wl@gnu.org>
2739         * groff.texinfo: Document special behaviour of `.vs 0'.
2740         Improve documentation of `cflags' request.
2741         * NEWS: Updated.
2743 2003-11-29  Werner LEMBERG  <wl@gnu.org>
2745         * font/devlj4/generate/Makefile (CORONET): Use correct TFM.
2746         * font/devlj4/CORONET: Regenerated.
2748 2003-11-24  Werner LEMBERG  <wl@gnu.org>
2750         * src/roff/troff/env.cpp (hyphen_trie::read_patterns_file): Fix loop
2751         if processing hyphenation patterns in traditional mode.
2752         Improve error messages.
2754 2003-11-20  Werner LEMBERG  <wl@gnu.org>
2756         * src/roff/troff/node.cpp (troff_output_file::put_char_width,
2757         troff_output_file::put_char): Fix type of local variable `c'.
2759 2003-11-19  Werner LEMBERG  <wl@gnu.org>
2761         * src/roff/groff/pipeline.c (P): Removed.  Updated all function
2762         declarations.
2763         (i_to_a): Removed.  libgroff already provides this function.
2764         (run_pipeline) [_WIN32]: Don't use itoa but i_to_a.
2766 2003-11-18  Keith Marshall  <keith.d.marshall@ntlworld.com>
2768         * src/roff/groff/pipeline.c (xstrsignal): Fix usage of
2769         HAVE_DECL_SYS_LIST.
2771 2003-11-17  Werner LEMBERG  <wl@gnu.org>
2773         * COPYING: Use correct version.
2775 2003-11-11  Werner LEMBERG  <wl@gnu.org>
2777         LynxOS 4.0.0 doesn't declare vfprintf.
2779         * configure.ac: Check for vfprintf.
2780         * configure: Regenerated.
2781         * src/include/lib.h: Handle `NEED_DECLARATION_VFPRINTF'.
2782         * src/include/config.hin: Regenerated.
2784 2003-11-10  Werner LEMBERG  <wl@gnu.org>
2786         LynxOS 4.0.0 has snprintf (without declaration) but no vsnprintf.
2788         * configure.ac: Check for vsnprintf.
2789         * configure: Regenerated.
2790         * src/include/lib.h: Handle `NEED_DECLARATION_VSNPRINTF' and
2791         `HAVE_VSNPRINTF'.
2792         * src/include/config.hin: Regenerated.
2794 2003-11-09  Werner LEMBERG  <wl@gnu.org>
2796         * aclocal.m4: Updated syntax to autoconf 2.59.
2797         (GROFF_HTML_PROGRAMS): Use AC_FOREACH.
2798         Don't check for gsos2.
2799         (GROFF_SRCDIR, GROFF_BUILDDIR): Removed.  autoconf 2.59 provides
2800         working abs_top_srcdir and abs_top_builddir.
2802         * configure.ac: Updated syntax to autoconf 2.59.
2803         Don't call GROFF_SRCDIR and GROFF_BUILDDIR.
2804         Replace call to AC_DECL_SYS_SIGLIST with call to AC_CHECK_DECLS.
2805         * configure: Regenerated.
2807         * Makefile.in, doc/Makefile.in: s/@top_srcdir@/@abs_top_srcdir@/,
2808         s/@groff_top_builddir@/@abs_top_builddir@/.
2810         * src/roff/groff/pipeline.c (xstrsignal):
2811         s/SYS_SIGLIST_DECLARED/HAVE_DECL_SYS_SIGLIST/.
2813 2003-11-07  Werner LEMBERG  <wl@gnu.org>
2815         * src/devices/grodvi/dvi.cpp (draw_dvi_printer::draw) ['a']: Always
2816         make start angle smaller than end angle to circumvent a bug in tpic
2817         handling of some versions of dvipdfm (and dvipdfmx).
2819 2003-10-30  Werner LEMBERG  <wl@gnu.org>
2821         * src/devices/grops/grops.man: Improve section on creating EPS.
2823 2003-10-29  Werner LEMBERG  <wl@gnu.org>
2825         * contrib/pic2graph/pic2graph.sh: Fix typo (-P-letter ->
2826         -P-pletter).
2828 2003-10-28  Werner LEMBERG  <wl@gnu.org>
2830         * doc/groff.texinfo: Fix documentation of `.if'.
2832 2003-10-27  Michail Vidiassov  <master@iaas.msu.ru>
2834         * src/utils/afmtodit/afmtodit.pl: Handle unmapped characters of
2835         the form `uniXXXX' also.
2837 2003-10-27  Werner LEMBERG  <wl@gnu.org>
2839         * contrib/eqn2graph/eqn2graph.sh, contrib/grap2graph/grap2graph.sh,
2840         contrib/pic2graph/pic2graph.sh: Implement secure management of
2841         temporary files.
2842         Pass `-P-pletter' to groff to avoid data outside of the converted
2843         area -- some versions of `convert' (for example 5.3.8) don't check
2844         the bounding box of the image but always use a fixed image size
2845         (letter paper format).
2846         * contrib/eqn2graph/eqn2graph.man, contrib/grap2graph/grap2graph.man,
2847         contrib/pic2graph/pic2graph.man: Updated.
2849         * src/roff/groff/groff.man: Document $TMP and $TEMP.
2851 2003-10-26  Werner LEMBERG  <wl@gnu.org>
2853         * src/preproc/pic/troff.cpp (troff_output::simple_circle,
2854         troff_output::simple_ellipse, troff_output::simple_arc,
2855         troff_output::simple_line, troff_output::simple_spline,
2856         troff_output::simple_polygon): Insert a space before arguments.
2857         (troff_output::set_fill): Emit `\&' before `\D'Fg...' since the
2858         latter doesn't produce a node, so the following `.sp -1' would do
2859         the wrong thing.
2860         Don't emit `.sp -1' after \M.  This also doesn't produce a token
2861         (and we don't have to care about compatibility mode).
2862         (troff_output::set_color, troff_output::reset_color): Don't emit
2863         `.sp -1' after \M and \m.
2865         * src/roff/troff/input.cpp (old_have_input): New global variable.
2866         (input_stack::get): Handle `old_have_input'.
2867         (process_input_stack) <token::TOKEN_NEWLINE>: Call
2868         `trapping_blank_line' depending on `old_have_input', not
2869         `have_input'.
2871 2003-10-20  Keith Marshall  <keith.d.marshall@ntlworld.com>
2873         * src/libs/libgroff/tmpfile.cpp [__MSDOS__, _Win32]
2874         (WIN32_TMPDIR_ENVVAR, MSDOS_TMPDIR_ENVVAR): New macros, providing
2875         default directory names for temporary files.
2876         [__MSDOS__, _Win32] (temp_init::temp_init): Use them.
2878         * src/roff/groff/pipeline.c [__MSDOS__]: Include stdlib.h.
2879         [__MSDOS__] (run_pipeline): Honour environment variables.
2880         Don't use `tmpnam' but `tempnam' to work around messy
2881         implementation.
2883         * README.MinGW: New file.
2885 2003-10-16  Werner LEMBERG  <wl@gnu.org>
2887         * src/preproc/html/pre-html.cpp (write_upto_newline): Don't use
2888         `(*t)->next' without testing validity of `*t'.
2889         (usage): Make it more readable.
2891 2003-10-16  Keith Marshall  <keith.d.marshall@ntlworld.com>
2893         Make html device run under both MS-DOS and Win32.
2895         * src/preproc/html/pre-html.cpp (MAY_FORK_CHILD_PROCESS,
2896         MAY_SPAWN_ASYNCHRONOUS_CHILD): New macros to control whether
2897         spawn or fork+exec has to be used, and whether parent must sleep
2898         until the child process terminates.  Used in
2899         `char_buffer::run_output_filter'.
2900         (copyofstdoutfd): Removed.
2901         (char_buffer): Replace `write_file_html' and `write_file_troff'
2902         member functions with `emit_troff_output' and `run_output_filter'.
2903         (DEVICE_FORMAT, HTML_OUTPUT_FILTER, IMAGE_OUTPUT_FILTER): New
2904         macros.
2905         (replaceFd): Replaced with...
2906         (set_redirection): New auxiliary function.
2907         (waitForChild): Replaced with...
2908         (save_and_redirect): New auxiliary function for.
2910         (char_buffer::do_html, char_buffer::do_image): Simplified, using new
2911         functions.
2913 2003-10-14  Keith Marshall  <keith.d.marshall@ntlworld.com>
2915         * aclocal.m4 (GROFF_SYS_NERR): Check stdlib.h also.
2916         (GROFF_LIBC): New function.
2917         * configure.ac: Call GROFF_LIBC.
2918         Check for `kill'.
2919         * configure: Regenerated.
2921         * src/include/lib.h: Handle __MINGW32__.
2922         * src/include/nonposix.h [_MSC_VER]: Handle __MINGW32__.
2923         Add macro for `pipe'.
2924         Define P_tmpdir.
2926         * src/roff/groff/pipeline.c (run_pipeline): Handle `no_pipe'
2927         correctly.
2929         * src/utils/indxbib/signal.c (handle_fatal_signal) [!HAVE_KILL]:
2930         Implement.
2932 2003-10-13  Werner LEMBERG  <wl@gnu.org>
2934         Finally fix change 2003-08-26, based on ideas from Chuck Silvers
2935         <chuq@chuq.com>.
2937         * contrib/mom/Makefile.sub: Use a stamp file in the `examples'
2938         directory.
2940 2003-10-12  Werner LEMBERG  <wl@gnu.org>
2942         * src/roff/groff/groff.cpp (help), src/devices/grops/ps.cpp (usage),
2943         src/roff/troff/input.cc (usage): Updated.
2945         * NEWS, doc/groff.texinfo: Updated.
2947 2003-10-12  Peter Miller  <millerp@canb.auug.org.au>
2949         * src/libs/libgroff/searchpath.cpp
2950         (search_path::open_file_cautious): New function which also handles
2951         `-' as stdin and stdout depending on the access mode.
2952         * src/include/searchpath.h (search_path): Updated.
2954         * src/devices/grops/ps.cpp (main): Handle new `-I' switch.
2955         * src/devices/grops/ps.h: Include `searchpath.h'.
2956         * src/devices/grops/psrm.cpp (resource_manager::supply_resource):
2957         Open resource file with `include_search_path.open_file_cautious'.
2958         * src/devices/grops/grops.man: Document new `-I' switch.
2960         * src/devices/grodvi/dvi.cpp (main), src/devices/grolbp/lbp.cpp
2961         (main), src/devices/grolj4/lj4.cpp (main),
2962         src/devices/grotty/tty.cpp (main): Ignore new `-I' switch.
2964         * src/preproc/soelim/soelim.cpp (include_list_length, include_list):
2965         Replaced with...
2966         (include_search_path): New global variable.
2967         (include_path_append): Removed.
2968         (main): Use `include_search_path.command_line_dir' to handle `-I'.
2969         (do_file): Simplify, using new
2970         `include_search_path.open_file_cautious'.
2972         * src/roff/groff/groff.cpp (print_commands): Accept file handle as
2973         parameter.
2974         (main): Pass arguments to `-I' to both troff and devices.
2975         Improve handling of `-V'.
2976         * src/roff/groff/groff.man: Document changes to -I and -V.
2978         * src/roff/troff/input.cpp (include_search_path): New global
2979         variable.
2980         (next_file, source, ps_bbox_request, transparent_file,
2981         process_input_file): Use new
2982         `include_search_path.open_file_cautious'.
2983         (main) Handle `-I' switch.
2984         * src/roff/troff/node.cpp (troff_output_file::really_copy_file):
2985         Use new `include_search_path.open_file_cautious'.
2986         * src/roff/troff/node.h: New extern symbol `include_search_path'.
2987         * src/roff/troff/troff.man: Document new `-I' switch.
2989 2003-09-15  Ruslan Ermilov  <ru@FreeBSD.org>
2991         Support multiple calls of .Lb in LIBRARY section.
2993         * tmac/doc-common (doc-in-library-section): New register.
2994         (doc-section-library): New string.
2995         (Sh): Set `doc-in-library-section'.
2996         (Rd): Updated.
2997         * tmac/doc-syms (Lb): Insert breaks before and after arguments
2998         if in LIBRARY section.
2999         * tmac/doc.tmac (doc-save-global-vars): Updated.
3000         * NEWS, tmac/groff_mdoc.man: Updated.
3002 2003-09-14  Ruslan Ermilov  <ru@FreeBSD.org>
3004         * tmac/doc-common (doc-default-operating-system): New variable.
3005         (Os): Use it.
3007 2003-09-08  Werner LEMBERG  <wl@gnu.org>
3009         * tmac/doc.tmac (doc-reset-reference): Handle data for `%I' also.
3011 2003-08-31  Werner LEMBERG  <wl@gnu.org>
3013         * contrib/mom/Makefile.sub: Fix last change to make it really work.
3014         * Makefile.comm: Use `test ... ||' in favor of `if test ...; then'.
3015         (install_dev, uninstall_dev): Check whether $(DEVSCRIPTS) and
3016         $(DEVFILES) are not empty.
3017         * Makefile.in: Use `test ... ||' in favor of `if test ...; then'.
3019 2003-08-26  Chuck Silvers  <chuq@chuq.com>
3021         * contrib/mom/Makefile.sub (prepare_make_examples): Make it work
3022         with parallel runs of `make'.
3024 2003-08-23  Stephen Gildea  <http://www.gildea.com/stephen>
3026         * src/preproc/ref/ref.cpp (reference::compute_sort_key): Always
3027         insert SORT_SEP.  With certain combinations of sort specifications,
3028         refer sorted entries in the wrong order.  In particular, entries
3029         with a missing field should be be sorted before all entries that
3030         have that field, before refer looks to the next field.
3032 2003-08-23  Werner LEMBERG  <wl@gnu.org>
3034         * src/utils/pfbtops/Makefile.sub (LINK.c): Define it so that the
3035         g++ linker is used.  Reported by Mark J. Reed
3036         <mark.reed@turner.com>.
3038 2003-08-16  Heinz-Jürgen Oertel  <hj.oertel@surfeu.de>
3040         Add key character `x' to tbl which makes tbl call a user-defined
3041         macro on a table cell.
3043         * src/preproc/tbl/table.h (entry_modifier): Add `macro'.
3044         * src/preproc/tbl/table.cpp (block_entry::do_divert): Call
3045         `set_modifier' after printing the compatibility request.
3046         (set_modifier): Print call to `m->macro' if not empty.
3047         * src/preproc/tbl/main.cpp (entry_format::debug_print): Handle
3048         `macro'.
3049         (process_format): Implement cases `x' and `X'.
3050         * src/preproc/tbl/tbl.man, NEWS: Updated.
3052 2003-08-15  Werner LEMBERG  <wl@gnu.org>
3054         * doc/groff.texinfo: Minor fixes.
3056 2003-08-09  Werner LEMBERG  <wl@gnu.org>
3058         * tmac/an-old.tmac [cR]: Fix redefinition of `bp'.
3060 2003-08-07  Werner LEMBERG  <wl@gnu.org>
3062         * doc/Makefile.sub: Not all shells expand wildcards in the `for'
3063         argument list to nothing if there is no file to match.  Use `ls' as
3064         a protection, similar to autoconf.
3066         * Makefile.comm (install_dev, uninstall_dev): Protect `for' against
3067         empty argument lists.
3069         * doc/groff.texinfo: Improve documentation how vertical spacing
3070         and line breaks interact.
3071         Other minor fixes.
3073         * tmac/www.tmac: Initialize `www-htmlimage-gap'.
3075 2003-08-03  Werner LEMBERG  <wl@gnu.org>
3077         * NEWS, src/devices/grops/grops.man: -b16 is necessary to produce
3078         EPS (using eps2eps or similar programs to compute the bounding box).
3080 2003-07-24  Werner LEMBERG  <wl@gnu.org>
3082         * doc/groff.texinfo: Use the new @/ command to avoid overlong lines.
3083         * doc/texinfo.tex: Updated from texinfo 4.6.
3084         * README.CVS: From now on we need texinfo 4.6.
3086 2003-07-23  Werner LEMBERG  <wl@gnu.org>
3088         Add requests `dei1' and `ami1' for completeness.
3090         * src/roff/troff/input.cc (calling_mode): Remove
3091         CALLING_DISABLE_COMP.
3092         (comp_mode): New enumeration.
3093         (do_define_string, define_string, define_nocomp_string,
3094         append_string, append_nocomp_string): Updated.
3095         (do_define_macro): Add third parameter.
3096         (define_macro, define_nocomp_macro, define_indirect_macro,
3097         append_macro, append_nocomp_macro, append_indirect_macro): Updated.
3098         (define_indirect_nocomp_macro, append_indirect_nocomp_macro): New
3099         functions.
3100         (ignore): Updated.
3101         (init_input_requests): Add `dei1' and `ami1'.
3103         * tmac/trace.tmac: Handle de1 and am1.
3104         (de): Improve tracing message.
3105         (am): Add missing `do'.
3106         (return): Use de1.
3108         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
3109         Document new requests.
3111 2003-07-22  Heinz-Jürgen Oertel  <hj.oertel@surfeu.de>
3113         Add option -G to .MPIMG to insert a gap between text and the image.
3115         * tmac/www.tmac (www-finish-left-po, www-finish-right-ll,
3116         www-finish-left-ll): Updated.
3117         (www-image-just, www-image-gap, www-htmlimage-gap): New variables.
3118         (MPIMG): Make option -L and -R optional.
3119         Implement option -G.
3121 2003-07-22  Gaius Mulley  <gaius@glam.ac.uk>
3123         * src/devices/grohtml/post-html.cpp
3124         (html_printer::do_file_components): Don't use `stdout' as lvalue
3125         since it can be a macro.
3127 2003-07-22  Werner LEMBERG  <wl@gnu.org>
3129         * src/libs/libgroff/strerror.c: Include errno.h to be in sync with
3130         the corresponding test in aclocal.m4.
3132 2003-07-21  Werner LEMBERG  <wl@gnu.org>
3134         * src/preproc/html/pre-html.cpp (TRANSPARENT): Don't use colour
3135         names but RGB values directly.  Otherwise pnmtopng depends on
3136         an external file `rgb.txt' which maps colour names to values.
3138 2003-07-20  Werner LEMBERG  <wl@gnu.org>
3140         * aclocal.m4 (GROFF_SYS_ERRLIST): Include stdlib.h for MinGW.
3141         * configure, src/include/config.hin: Regenerated.
3143         * src/libs/libgroff/strerror.c: Include stdlib.h for MinGW.
3145 2003-07-19  Werner LEMBERG  <wl@gnu.org>
3147         * PROBLEMS: Add solution for UTF-8 problem with hyphens.
3149 2003-07-18  Werner LEMBERG  <wl@gnu.org>
3151         * *.man: Switch to non-compatibility mode temporarily if GNU
3152         syntax extensions are used in the particular man page.
3154         * PROBLEMS: Add solutions for SGR problems.
3156 2003-07-17  Werner LEMBERG  <wl@gnu.org>
3158         Don't ignore grotty's command line options if \X'tty: sgr ...' is
3159         used to change the drawing scheme.
3161         * src/devives/grotty/tty.cpp (bold_flag_option,
3162         underline_flag_option, italic_flag_option, reverse_flag_option,
3163         bold_underline_mode_option): New global variables.
3164         (update_options): New function.
3165         (tty_printer::special): Call update_options.
3166         (main): Don't set xxx_flag but xxx_flag_option, then call
3167         update_options.
3169 2003-07-14  Werner LEMBERG  <wl@gnu.org>
3171         Make grotty emit proper Unicode box drawing characters for -Tutf8.
3173         * src/devices/grotty/tty.cpp (START_LINE, END_LINE): New enum
3174         values.
3175         (hline_char, vline_char): New global variables.
3176         (tty_printer::tty_printer): Initialize them.
3177         (tty_printer::draw): Emit START_LINE and END_LINE flags for both
3178         horizontal and vertical lines.
3179         (crossings): New global array.
3180         (tty_printer::end_page): Use it to determine the proper crossing
3181         character for -Tutf8.
3183 2003-07-12  Werner LEMBERG  <wl@gnu.org>
3185         * doc/Makefilesub (HTMLDOCFILESALL): New macro.
3186         (HTMLDOCFILES): Revert to `pic.html'.
3187         (CLEANADD, install_html, uninstall_sub): Use HTMLDOCFILESALL.
3189 2003-07-11  Werner LEMBERG  <wl@gnu.org>
3191         * doc/pic.ms: Improve documentation of absolute coordinates.
3192         Document absolute positioning of pictures.
3194         * NEWS: Add new pic capability.
3196 2003-07-09  Hartmut Henkel  <hartmut_henkel@gmx.de>
3198         * src/libs/libgroff/geometry.cpp (check_output_arc_limits):
3199         Rewritten.
3201 2003-07-07  Werner LEMBERG  <wl@gnu.org>
3203         Implement support for dashed and dotted ellipses in pic.  Based on
3204         a patch from Hartmut Henkel <hartmut_henkel@gmx.de>.
3206         * src/preproc/pic/common.cpp (common_output::ellipse_arc,
3207         common_output::dashed_ellipse, common_output::dotted_ellipse): New
3208         functions.  Ellipse arcs are approximated with circle arcs.
3209         * src/preproc/pic/common.h (common_output): Updated.
3210         * src/preproc/pic/tex.cpp (tex_output::ellipse): Use new ellipse
3211         functions.
3212         * src/preproc/pic/troff.cpp (simple_output::ellipse): Ditto.
3214         * src/preproc/pic/TODO, src/preproc/pic/pic.man: Updated.
3216 2003-07-06  Werner LEMBERG  <wl@gnu.org>
3218         Make grotty work on platforms which have unsigned char as the
3219         default for char.  Based on a patch by Thomas Klausner
3220         <wiz@netbsd.org>.
3222         * src/devices/grotty/tty.cpp (schar): New typedef.
3223         Updated calls to declare_ptable and implement_ptable.
3224         (glyph): Use schar for back_color_idx and fore_color_idx.
3225         (tty_printer): Use schar for curr_fore_idx and curr_back_idx.
3226         (tty_printer::tty_color, tty_printer::tty_printer,
3227         tty_printer::color_to_idx, tty_printer::put_color): Updated.
3229 2003-07-06  Ruslan Ermilov  <ru@FreeBSD.org>
3231         * src/roff/nroff/nroff.sh: Add option -d for completeness.
3232         * src/roff/nroff/nroff.man: Updated.
3234 2003-07-05  Werner LEMBERG  <wl@gnu.org>
3236         * NEWS, tmac/groff_www.man: Updated.
3237         * doc/Makefile.sub: Updated.
3239 2003-07-05  Gaius Mulley  <gaius@glam.ac.uk>
3241         Implement support for multiple HTML output files.
3243         * src/preproc/html/pre-html.cpp (scanArguments): Dummy handling for
3244         -j command line option.
3246         * src/devices/grohtml/post-html.cpp (job_name, multiple_files): New
3247         global variables.
3248         (file): New fields `new_output_file', `require_links',
3249         `output_file_name'.
3250         (file::file): Updated.
3251         (files::set_file_name, files::set_links_required,
3252         files::are_links_required, files::is_new_output_file,
3253         files::file_name, files::next_file_name): New functions.
3254         (header_desc): New fields `no_of_level_one_headings',
3255         `header_filename'.
3256         (header_desc::header_desc): Updated.
3257         (header_desc::write_headings): Handle multiple files.
3258         (html_printer::write_header): Save file name in which header occurs.
3259         (html_printer::determine_header_level): Possibly split files on
3260         level one headings.
3261         (html_printer::do_links, html_printer::troff_tag): Updated.
3262         (html_printer::insert_split_file, html_printer::do_job_name,
3263         html_printer::emit_link, html_printer::write_navigation,
3264         html_printer::do_file_components): New functions.
3265         (html_printer::~html_printer): Handle multiple files.
3266         (main): Handle command line option `-j'.
3268         * src/devices/grohtml/grohtml.man: Updated.
3270         * doc/Makefile.sub (pic.html), doc/Makefile.in (pic.html): New rule
3271         which splits file.
3273         * tmac/www.tmac (JOBNAME): New macro.
3274         * tmac/s.tmac (SH-NO-TAG): New macro.
3275         (@SH): Call SH-NO-TAG.
3276         (@NH): Updated.
3278 2003-07-05  Ruslan Ermilov  <ru@FreeBSD.org>
3280         * tmac/groff_mdoc.man: Improve documentation of punctuation
3281         characters.
3283 2003-07-04  Ruslan Ermilov  <ru@FreeBSD.org>
3285         * tmac/doc.tmac (Bd): Change to doc-Li-font later.
3287 2003-07-03  Werner LEMBERG  <wl@gnu.org>
3289         * tmac/an-old.tmac [cR]: Redefine `bp' to avoid empty lines.
3291 2003-07-01  Ruslan Ermilov  <ru@FreeBSD.org>
3293         * tmac/doc.tmac (doc-do-func, doc-do-func-args): Don't print a comma
3294         after `/*' and `*/'.
3295         Fix spacing.
3296         (Fn, Fo): Reduce indentation in synopsis.
3298         * tmac/doc-common (doc-check-depth): New macro.
3299         (doc-end-macro, Sh, Ss): Use it.
3300         (Cd): Fix behaviour in synopsis.
3301         (In): Make it parsed and callable.
3302         If not in the synopsis, represent the C header file enclosed in
3303         angle brackets.
3304         (doc-str-Rv-std-suffix, doc-str-Rv-stds-suffix, doc-str-Rv-std0):
3305         Use minus, not hyphen.
3307         * tmc/groff_mdoc.man: Updated.
3309 2003-07-01  Werner LEMBERG  <wl@gnu.org>
3311         Integrated grap2graph, contributed by Eric S. Raymond.
3313         * contrib/grap2graph/{Makefile.sub, grap2graph.sh, grap2graph.man}:
3314         New files.
3315         * Makefile.in, NEWS, MANIFEST, contrib/eqn2graph.man,
3316         contrib/pic2graph.man, src/roff/groff/groff.man: Updated.
3318 2003-07-01  Colin Watson  <cjwatson@debian.org>
3320         * src/xditview/*.c: Add prototypes, fix return types, add includes.
3321         Based on work by Fumitoshi UKAI <ukai@debian.or.jp>.
3323 2003-06-31  Ruslan Ermilov  <ru@FreeBSD.org>
3325         * tmac/tty-char.tmac: Provide `lb', `rb', `lk', `rk', `lt', `rt'.
3327 2003-06-31  Werner LEMBERG  <wl@gnu.org>
3329         * doc/Makefile.sub (CLEANADD): Remove all files created by
3330         running `make groff.{pdf,dvi}'.
3332         * Makefile.sub (DISTCLEANFILES): Remove all non-source files from
3333         src/xditview also.
3335 2003-06-30  Werner LEMBERG  <wl@gnu.org>
3337         * Makefile.in (SHELL): Define as @SHELL@.
3338         (mkinstalldirs): Use $(SHELL).
3339         (MDEFINES): Add $(SHELL).
3340         * Makefile.comm (SHELL): Removed.
3342 2003-06-29  Werner LEMBERG  <wl@gnu.org>
3344         * tmac/s.tmac (De, Ds): New aliases for .DE and .DS, respectively.
3345         The X11 documentation files use them.
3346         * tmac/groff_ms.man, doc/groff.texinfo: Document them.
3348 2003-06-15  Robert Goulding  <goulding@Princeton.EDU>
3350         * tmac/e.tmac (@C): Handle .ad also.
3352 2003-06-12  Werner LEMBERG  <wl@gnu.org>
3354         * src/preproc/tbl/tbl.man: Document formatting of text blocks.
3356         * src/roff/troff/input.cc (token::next) <handle_escape_char>:
3357         Assign `n' even here.  It is possible to construct a node
3358         immediately following an escape character:
3360           .di xx
3361           \?\\\?a
3362           .br
3363           .di
3364           .xx
3366 2003-06-10  Werner LEMBERG  <wl@gnu.org>
3368         * README.WIN32: Removed.
3369         * MANIFEST: Updated.
3371 2003-06-07  Werner LEMBERG  <wl@gnu.org>
3373         * src/roff/nroff/nroff.sh: Don't emit SGR for option -u.
3375 2003-06-05  Werner LEMBERG  <wl@gnu.org>
3377         * src/preproc/pic/pic.y <sprintf_args>: Implement workaround for bug
3378         in Compaq C++ V6.5-033 for Compaq Tru64 UNIX V5.1A (Rev. 1885).
3380 2003-06-03  Werner LEMBERG  <wl@gnu.org>
3382         * src/preproc/grn/hdb.cpp (DBRead): Don't close file handle; this
3383         is done by the calling function.
3385 2003-05-22  Ruslan Ermilov  <ru@FreeBSD.org>
3387         * tmac/X.tmac: Fix definition of `em'.
3389 2003-05-22  Werner LEMBERG  <wl@gnu.org>
3391         * src/roff/troff/input.cc (return_macro_request): Fix detection of
3392         argument.
3394 2003-05-18  Werner LEMBERG  <wl@gnu.org>
3396         * tmac/doc.tmac (doc-tag-list): Force horizontal mode after tag
3397         to make items work which consist only of a tag.
3399 2003-05-17  Werner LEMBERG  <wl@gnu.org>
3401         * tmac/doc.tmac (doc-tag-list): Don't use \Z to assure that spaces
3402         aren't stretched in a tag (this can fail with unformatted boxes).
3403         Instead, insert a break and go back one line.
3405 2003-05-16  Werner LEMBERG  <wl@gnu.org>
3407         * src/roff/troff/input.cc (return_macro_request): If called with
3408         argument pop macro twice.  We need this to trace `return'.
3410         * tmac/trace.tmac: Handle `return'.
3411         Fix typos.
3413         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
3414         Document.
3416 2003-05-15  Larry Kollar  <kollar@alltel.net>
3418         * tmac/groff_ms.man, doc/groff.texinfo: Improve documentation of
3419         registers `FPS', `FVS', and `FPD'.
3421 2003-05-15  Werner LEMBERG  <wl@gnu.org>
3423         * src/utils/pfbtops/pfbtops.c (get_text): Handle loop counter
3424         correctly.
3426 2003-05-03  Ruslan Ermilov  <ru@FreeBSD.org>
3428         * tmac/groff_mdoc.man: Slight improvements.
3430 2003-05-03  Werner LEMBERG  <wl@gnu.org>
3432         * tmac/doc-common (doc-header): Emit vertical space of 1v instead of
3433         `doc-header-space' after header line if register `cR' is set.
3435 2003-05-02  Werner LEMBERG  <wl@gnu.org>
3437         * TODO: Updated.
3439 2003-05-01  Ruslan Ermilov  <ru@FreeBSD.org>
3441         * tmac/doc-common (Nd): Use \[em].
3443 2003-05-01  Werner LEMBERG  <wl@gnu.org>
3445         * tmac/doc-ditroff, tmac/doc-nroff (doc-header-space,
3446         doc-footer-space): Initialize to 0.5i.
3447         (doc-setup-page-layout): Don't set doc-header-space and
3448         doc-footer-space.
3450 2003-04-30  Werner LEMBERG  <wl@gnu.org>
3452         * REVISION: Set to 1.
3454         * doc/pic.ms: Document possible problems with `figname'.
3456 2003-04-29  Werner LEMBERG  <wl@gnu.org>
3458 Version 1.19 released
3459 =====================
3461         * VERSION: Set to 1.19.
3462         * REVISION: Set to 0.
3463         * doc/groff.texinfo, doc/webpage.ms, NEWS: Updated.
3465         * src/devices/grohtml/post-html.cpp (html_printer::~html_printer):
3466         Define charset as `US-ASCII' in html output.
3468         * tmac/www.tmac (ULE): Add missing scaling indicator.
3470         * win32-diffs: Removed.
3472 2003-04-28  Werner LEMBERG  <wl@gnu.org>
3474         * doc/groff.texinfo: Document `dn' and `dl' registers if used with
3475         `.da' and `.boxa'.
3476         Document how to insert discardable whitespace with `.ss'.
3478 2003-04-27  Werner LEMBERG  <wl@gnu.org>
3480         * src/preproc/pic/tex.cpp (tex_output::start_picture): Make code
3481         work with plain TeX also.
3483         * src/preproc/pic/pic.man, doc/pic.ms: Fix TeX code example.
3485 2003-04-25  Gaius Mulley  <gaius@glam.ac.uk>
3487         * src/devices/grohtml/post-html.cpp (html_printer::~html_printer):
3488         Use a loose DTD.
3490 2003-04-24  Werner LEMBERG  <wl@gnu.org>
3492         * src/preproc/pic/pic.man, doc/pic.ms: Explain how to get a
3493         vbox with positive height and zero depth if in TeX mode.
3495         * NEWS: Document glyph name changes for grodvi and grolj4.
3497 2003-04-23  Werner LEMBERG  <wl@gnu.org>
3499         * src/preproc/pic/tex.cpp (tex_output::start_picture): Fix TeX code.
3500         * doc/pic.ms: Fixed.
3502 2003-04-21  Werner LEMBERG  <wl@gnu.org>
3504         HP-UX 10.20 has `snprintf' but it isn't declared.
3506         * configure.ac: Add declaration test for snprintf.
3507         * configure: Regenerated.
3508         * src/include/lib.h: Handle `NEED_DECLARATION_SNPRINTF'.
3509         * src/include/config.hin: Regenerated.
3511 2003-04-19  Werner LEMBERG  <wl@gnu.org>
3513         Add keyword `figname' to pic, specifying the name of the picture
3514         box in TeX mode.  Based on a patch from William J Poser
3515         <wjposer@unagi.cis.upenn.edu>.
3517         * src/preproc/pic/pic.y: New token `FIGNAME'.
3518         (macro_name): New rule of type <str>.
3519         (placeless_element): Handle `FIGNAME'.
3520         * src/preproc/pic/lex.cpp (lookup_keyword): Add `figname'.
3521         * src/preproc/pic/main.cpp (graphname): New global variable.
3522         (do_picture): Initialize `graphname'.
3523         * src/preproc/pic/pic.h: Updated.
3524         * src/preproc/pic/tex.cpp (tex_output::start_picture): Use
3525         `graphname'.
3526         Simplify TeX code.
3527         (tex_output::text): Beautify output.
3528         * src/preproc/pic/object.cpp (object_spec::~object_spec): Deallocate
3529         `shaded' and `outlined' unconditionally.
3530         * NEWS, src/preproc/pic/pic.man, doc/pic.ms: Updated.
3531         Minor improvements.
3533         * PROBLEMS, README.CVS: Mention that bison version 1.875b or
3534         greater is necessary.
3536 2003-04-17  Hartmut Henkel  <hartmut_henkel@gmx.de>
3538         Add option -r to soelim to avoid emission of `.lf' lines.
3539         Add option -t to produces TeX comment lines instead of `.lf' lines.
3541         * src/preproc/soelim/soelim.cpp: New global variables `raw_flag'
3542         and `tex_flag'.
3543         (usage): Updated.
3544         (main): Handle `-r' and `-t'.
3545         (set_location): Handle `raw_flag' and `tex_flag'.
3546         * src/preproc/soelim/soelim.man, NEWS: Updated.
3548 2003-04-17  Werner LEMBERG  <wl@gnu.org>
3550         * tmac/hyphenex.sh: Replaced with...
3551         * tmac/hyphenex.pl: This perl script to avoid sed compatibility
3552         nightmares.
3554         * aclocal.m4 (GROFF_HTML_PROGRAMS): Emit useful warning message
3555         if --quiet is used for the configure script.
3556         * configure: Regenerated.
3558 2003-04-16  Werner LEMBERG  <wl@gnu.org>
3560         * src/devices/grohtml/post-html.cpp (text_glob::text_glob):
3561         Add `const' to second argument.
3562         (html_printer::add_table_end): Add `const' to argument.
3563         * src/devices/grohtml/html-text.cpp (html_text::issue_tag): Add
3564         `const' to arguments.
3565         * src/devices/grohtml/html-text.h: Updated.
3567         * src/devices/grolbp/charset.h (symset): Use `unsigned char'.
3568         * src/devices/grolbp/lbp.h (lbpputc): Use `unsigned char' for
3569         argument.
3571         * src/devices/grotty/tty.cpp (tty_printer::make_rgb_string): Use
3572         cast for integer constant.
3574         * src/preproc/html/pre-html.cpp (image_device): Use `const'.
3575         (writeNbytes): Add `const' to first argument.
3576         (writeString): Add `const' to argument.
3577         (char_buffer::can_see): Add `const' to third argument.
3578         * src/preproc/html/pushback.cpp (pushBackBuffer::isString): Add
3579         `const' to argument.
3580         * src/preproc/html/pushback.h: Updated.
3582         * src/preproc/soelim/soelim.cpp (include_list): Add `const'.
3583         (include_path_append): Add `const' to argument.
3584         (do_file): Updated.
3586         * src/roff/troff/uniglyph.cpp (unicode_to_glyph_list): Use `const'
3587         for `value'.
3588         (unicode_to_glyph_init::unicode_to_glyph_init): Updated.
3589         * src/roff/troff/uniuni.cpp (unicode_decompose_list): Use `const'
3590         for `value'.
3591         (unicode_decompose_init::unicode_decompose_init): Updated.
3592         * src/roff/troff/glyphuni.cpp (glyph_to_unicode_list): Use `const'
3593         for `value'.
3594         (glyph_to_unicode_init::glyph_to_unicode_init): Updated.
3595         * src/roff/troff/input.cc (process_startup_file): Add `const' to
3596         argument.
3598         * tmac/hyphenex.sh: Make script more portable by using a here
3599         document.
3601 2003-04-15  Werner LEMBERG  <wl@gnu.org>
3603         Renamed all `*.cc' files to `*.cpp'.
3604         Updated all configuration files, makefiles, and documentation.
3606 2003-04-14  Werner LEMBERG  <wl@gnu.org>
3608         * tmac/hyphenex.sh: Slight improvements.
3610 2003-04-13  Werner LEMBERG  <wl@gnu.org>
3612         * font/devascii/R.proto, font/devcp1037/R.proto,
3613         font/devlatin1/R.proto, font/devutf8/R.proto: Fill up remaining
3614         character slots with unnamed glyphs.
3616         * tmac/an-old.tmac: Fix hyphenation value if `cR' is active.
3617         (an-first): New global variable.
3618         (an-header): Emit vertical space between multiple man pages.
3620 2003-04-11  Werner LEMBERG  <wl@gnu.org>
3622         * doc/groff.texinfo, man/groff_out.man: \S only accepts integer
3623         values.
3625 2003-04-10  Werner LEMBERG  <wl@gnu.org>
3627         * PROBLEMS: Revised.
3629 2003-04-10  Bernd Warken  <bwarken@mayn.de>
3631         * doc/webpage.ms: Improved.
3633 2003-04-09  Werner LEMBERG  <wl@gnu.org>
3635         Add register \n[.height] which returns the value of \H.
3636         Add register \n[.slant] which returns the value of \S.
3638         * src/roff/troff/env.cc (init_env_requests): Implement.
3639         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
3640         Document.
3642 2003-04-08  Werner LEMBERG  <wl@gnu.org>
3644         * tmac/html.tmac: Move some of the data into html-end.tmac.
3645         Remove most of the character translations for eqn since html fonts
3646         now cover those characters.
3647         Load www.tmac.
3648         * tmac/html-end.tmac: New file.
3649         * tmac/troffrc: Load html.tmac not www.tmac for -Thtml.
3650         * tmac/troffrc-end: Load html-end.tmac not html.tmac for -Thtml.
3651         * tmac/Makefile.sub (NORMALFILES): Add html-end.tmac.
3653 2003-04-07  Werner LEMBERG  <wl@gnu.org>
3655         * man/groff_out.man: Document negative values of `N' if -Thtml is
3656         used.
3658 2003-04-06  Werner LEMBERG  <wl@gnu.org>
3660         * Makefile.comm (depend.temp): Check location of YTABC.
3662 2003-04-05  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
3664         * contrib/mom/Makefile.sub (GROFFBIN): New variable for groff
3665         binary path.
3666         (groff_bin_path): Rename to GROFF_BIN_PATH.
3667         (GROFF): Use GROFFBIN and GROFF_BIN_PATH.
3668         * doc/Makefile.in (TROFFBIN): New variable for troff
3669         binary path.
3670         (GROFFBIN): New variable for groff binary path.
3671         (groff_bin_path): Rename to GROFF_BIN_PATH.
3672         (TROFF): Use TROFFBIN.
3673         (GROFF): Use GROFFBIN and GROFF_BIN_PATH.
3674         * doc/Makefile.sub (GROFFBIN): New variable for groff
3675         binary path.
3676         (groff_bin_path): Rename to GROFF_BIN_PATH.
3677         (GROFF): Use GROFFBIN and GROFF_BIN_PATH.
3679         * Makefile.comm (install_dev): Install scripts from DEVSCRIPTS
3680         with INSTALL_SCRIPT.
3681         (uninstall_dev): Uninstall scripts from DEVSCRIPTS.
3682         * Makefile.dev (all): Depend on DEVSCRIPTS.
3683         (install_dev): Likewise.
3684         * font/devdvi/Makefile.sub (DEVSCRIPTS): New variable to hold
3685         scripts.
3686         * font/devps/Makefile.sub (DEVSCRIPTS): Likewise.
3687         (DEVGENSCRIPTS): New variable to hold generated scripts.
3689 2003-04-05  Werner LEMBERG  <wl@gnu.org>
3691         * src/libs/libdriver/input.cc (IntArray::operator[],
3692         IntArray::get_data): Remove meaningless `const' in return value.
3694         * README.CVS: New file.
3696 2003-04-04  Werner LEMBERG  <wl@gnu.org>
3698         Check for stdint.h in C++, not in C.
3700         * aclocal.m4 (GROFF_STDINT_H): New function,
3701         * configure.ac: Check for stdint.h with GROFF_STDINT_H instead of
3702         AC_CHECK_HEADERS.
3703         * configure, src/include/config.hin: Regenerated.
3704         * src/libs/libgroff/tmpname.cc: Use HAVE_CC_STDINT_H.
3707         Fix handling of &nbsp; in grohtml.  To do this, troff emits `N'
3708         with a negative value, representing the width of the unbreakable
3709         space (only for -Thtml).  grohtml then converts this back to
3710         &nbsp; and uses the value of N as its width.
3712         * src/roff/troff/node.cc (space_char_hmotion_node::tprint,
3713         unbreakable_space_node::tprint): Emit `N-<width>'.
3714         * src/include/printer.h (printer::set_numbered_char): Make it
3715         virtual.
3716         Make members `font_table' and `nfonts' protected instead of private.
3717         * src/devices/grohtml/post-html.cc
3718         (html_printer::set_numbered_char): New member function.
3721         * src/libs/libgroff/maxfilename.cc:
3722         s/HAVE_LIMITS_H/HAVE_CC_LIMITS_H/.
3724         * src/roff/troff/node.cc (unbreakable_space_node::tprint): Don't
3725         emit word marker.
3727 2003-04-03  Sergey A. Osokin  <osa@freebsd.org.ru>
3729         * man/roff.man: Small fixes.
3731 2003-04-03  Werner LEMBERG  <wl@gnu.org>
3733         Make groff independent from locale's numeric settings.
3735         * configure.ac: Check for `setlocale'.
3736         * configure, src/include/config.hin: Regenerated.
3738         * src/include/lib.h: Handle HAVE_SETLOCALE.
3740         * src/devices/grodvi/dvi.cc (main), src/devices/grolj4/lj4.cc
3741         (main), src/devices/grops/ps.cc (main), src/preproc/grn/main.cc
3742         (main), src/preproc/pic/main.cc (main): Call `setlocale'.
3745         * doc/groff.texinfo: Change dir category to `Typesetting'.
3746         (Man font macros): Mention that there is no space between arguments
3747         of .BI and friends.
3749         * src/libs/libdriver/printer.cc, src/devices/grotty/tty.cc
3750         (*printer::change_color, *printer::change_fill_color): Add missing
3751         `const'.
3753 2003-04-02  Werner LEMBERG  <wl@gnu.org>
3755         * src/devices/grohtml/html-table.cc (html_table::emit_col,
3756         html_table::is_gap): Compute table widths after converting border
3757         positions to avoid rounding errors.
3759 2003-04-01  Werner LEMBERG  <wl@gnu.org>
3761         * src/devices/grohtml/html-text.cc (html_text::do_space): Handle
3762         `space_emitted' properly.
3764 2003-03-31  Werner LEMBERG  <wl@gnu.org>
3766         * src/devices/grohtml/html-table.cc: Fix column width calculation.
3767         (html_table::set_linelength): Don't add 1.
3768         (html_table::add_indent): Don't subtract 1.
3770         * tmac/html.tmac: Set default page offset to zero.
3772 2003-03-30  Werner LEMBERG  <wl@gnu.org>
3774         Make groff emit `&nbsp;' for `\ ' and `\~' if `-Thtml' is used.
3776         * src/roff/troff/node.cc (space_char_hmotion_node::tprint,
3777         unbreakable_space_node::tprint): New functions.
3778         (troff_output_file): Make space_char_hmotion_mode::tprint and
3779         unbreakable_space_node::tprint to friends.
3780         * src/roff/troff/node.h: Updated.
3782         * font/devhtml/R.proto: Add `&nbsp' at position 0xA0 (as defined
3783         in the HTML standard).
3785 2003-03-29  Werner LEMBERG  <wl@gnu.org>
3787         * src/roff/troff/env.cc (point_size): Fix emission of html tag.
3788         Otherwise, the following code
3790           .di xxx
3791           .ps 10
3792           a
3793           .br
3794           .di
3795           x\*[xxx]
3797         produces `x a' instead of `xa'.  This is a temporary fix, disabling
3798         font changes in diversions for -Thtml.
3800         * tmac/an-old.tmac (TH, SH): Use `HTML-TAG-NS' instead of
3801         `HTML-TAG'.
3802         (an-do-tag-html): Merge with ...
3803         (an-do-tag): This macro.
3804         Change code slightly to circumvent grohtml bug.
3805         * tmac/troffrc-end: Define dummy for HTML-TAG-NS.
3807         * src/devices/grohtml/html-table.cc (html_table::emit_col,
3808         html_table::is_gap): Round `width' properly.
3810         * tmac/html.tmac: Provide some default layout parameters for
3811         grohtml.
3813         * font/devhtml/DESC.proto: Don't use discrete values for `sizes'
3814         command.
3816 2003-03-28  Werner LEMBERG  <wl@gnu.org>
3818         src/devices/grops/ps.cc (ps_printer::do_import): Fix error message.
3820 2003-03-27  Werner LEMBERG  <wl@gnu.org>
3822         * tmac/an-old.tmac (BT): Don't call .tl if register `ps4html' is
3823         defined.
3825 2003-03-20  Werner LEMBERG  <wl@gnu.org>
3827         * src/roff/troff/env.cc (vertical_spacing): Allow zero value for
3828         `.vs'.
3829         * doc/groff.texinfo: Updated.
3831 2003-03-19  Werner LEMBERG  <wl@gnu.org>
3833         * src/roff/troff/input.cc (process_input_stack) <TOKEN_BEGIN_TRAP,
3834         TOKEN_END_TRAP>: Reset `have_input'.
3836 2003-03-18  Werner LEMBERG  <wl@gnu.org>
3838         * src/roff/groff/groff.man: Mention groff_trace man page.
3840 2003-03-16  Werner LEMBERG  <wl@gnu.org>
3842         * Makefile.in (LIBEXT): New variable to indicate the file extension
3843         of library files.  Computed heuristically from $(OBJEXT).
3844         (MDEFINES): Add $(LIBEXT).
3845         * Makefile.lib, Makefile.comm: Use it.
3847         * src/utils/pfbtops/pfbtops.c (get_text): New function.  Split
3848         overlong lines into smaller chunks.
3849         (get_binary): New function.
3850         (main): Use them.
3851         * src/utils/pfbtops/pfbtops.man: Updated.
3853 2003-03-15  Colin Watson  <cjwatson@debian.org>
3855         * src/roff/groff/groff.man: Minor syntax fix.
3857 2003-03-14  Egil Kvaleberg  <egil@kvaleberg.no>
3859         * src/devices/grops/ps.cc (ps_printer::media_set,
3860         ps_printer::~ps_printer): Handle zero paper width and length.
3862 2003-03-13  Werner LEMBERG  <wl@gnu.org>
3864         Add options -p and -l to grodvi.
3866         * src/devices/grodvi/dvi.cc: Include paper.h.
3867         (landscape_flag, user_paper_length, user_paper_width): New global
3868         variables.
3869         (dvi_printer::begin_page): Emit `papersize' special.
3870         Set color after initialization of `cur_h' and `cur_v'.
3871         (main): Add options `-l' and `-p'.
3872         * font/devdvi/Makefile.sub (DESC): Set `papersize'.
3873         * src/devices/grodvi/grodvi.man, NEWS: Updated.
3875         * src/devices/grops/psrm.cc (valid_input_table): Fixed.
3877 2003-03-12  Werner LEMBERG  <wl@gnu.org>
3879         * src/devices/grops/grops.man: Move documentation of .PSPIC to...
3880         * man/groff_tmac.man: This man page.
3881         * man/groff_font.man: Declare `paperwidth' and `paperlength' as
3882         deprecated.
3884         * tmac/X.tmac: Don't load pspic.tmac.
3886 2003-03-11  Werner LEMBERG  <wl@gnu.org>
3888         Make variable `pr' local to libdriver/input.cc.  Based on a patch
3889         by Bernd Warken <bwarken@mayn.de>.
3891         * src/include/driver.h (pr): Removed.
3893         * src/libs/libdriver/input.cc (pr): New global variable.
3894         (do_file): Deallocate `pr'.
3895         * src/libs/libdriver/printer.cc (pr): Removed.
3897         * src/devices/grodvi/dvi.cc (main), src/devices/grohtml/post-html.cc
3898         (main), src/devices/grolbp/lbp.cc (main), src/devices/grolj4/lj4.cc
3899         (main), src/devices/grops/ps.cc (main), src/devices/grotty/tty.cc
3900         (main): Don't delete `pr'.
3902 2003-03-10  Werner LEMBERG  <wl@gnu.org>
3904         * tmac/a4.tmac, tmac/composite.tmac: Use `.do'.
3905         * tmac/papersize.tmac: New file.
3906         * tmac/troffrc: Include `papersize.tmac'.
3907         * tmac/Makefile.sub (NORMALFILES): Add `papersize.tmac'.
3908         * tmac/an-old.tmac: Set LT to LL by default.
3910         * NEWS, MANIFEST, tmac/groff_man.man, man/groff_tmac.man,
3911         doc/groff.texinfo: Updated.
3913         * src/libs/libgroff/paper.cc (add_iso_paper): Fix very embarassing
3914         bug which caused all odd iso papers to have wrong dimensions.
3916         * src/devices/grops/ps.cc (user_paper_width): New global variable.
3917         (main) <'p'>: Set `user_paper_width' also.
3918         (ps_printer::media_width, ps_printer::media_height): Use values
3919         given with option `-p'.
3921 2003-03-09  Werner LEMBERG  <wl@gnu.org>
3923         * src/include/nonposix.h: Provide default for SET_BINARY.
3925         * src/devices/grodvi/dvi.cc, src/devices/grolbp/lbp.cc,
3926         src/devices/grolj4/lj4.cc, src/devices/grops/ps.cc: Call SET_BINARY
3927         unconditionally.
3929         * src/utils/pfbtops/pfbtops.c: Call SET_BINARY unconditionally.
3930         (main): Treat \r\n as \n.
3932 2003-03-08  Werner LEMBERG  <wl@gnu.org>
3934         * tmac/an-old.tmac: Use register `HY' to control hyphenation.
3935         * NEWS, tmac/groff_man.man, doc/groff.texinfo: Document it.
3937 2003-03-07  Werner LEMBERG  <wl@gnu.org>
3939         Added support to access more than 256 glyphs in Type 1 fonts.
3941         * src/devices/grops/ps.cc (subencoding): New structure.
3942         (style): Add `sub' field.
3943         Updated all users.
3944         (ps_printer): Add `subencodings' and `next_subencoding_index' fields.
3945         Add `set_subencoding', `get_subfont' and `encode_subfont' member
3946         functions.
3947         Updated all users.
3948         (ps_printer::set_char): Use `set_subencoding'.
3949         (make_subencoding_name): New function.
3950         (ps_printer::set_style): Handle case where `sty.sub' is not zero.
3951         (ps_printer::~ps_printer): Emit subencoding definitions.
3953         * src/devices/grops/psrm.cc (valid_input_table): New array to
3954         properly support EBCDIC.
3955         (white_space): Add `\f'.
3956         (ps_get_line): Change first argument to be of type `string &'.
3957         Updated all callers.
3958         This allows to get lines of arbitrary length.
3959         Use `valid_input_table'.
3960         Remove warning about non-conforming PS line length.  This seems
3961         not to be of great importance -- for example, dvips don't emit
3962         a warning either.
3963         (PS_LINE_MAX): Removed.
3964         (matches_comment): Change first argument to be of type `string &'.
3966         * src/devices/grops/grops.man, src/devices/grops/TODO: Updated.
3968         * src/utils/afmtodit/afmtodit.pl (%unicode_decomposed,
3969         %AGL_to_unicode, %default_ligatures): New hash tables.
3970         Read all map entries.
3971         Add unencoded characters.
3972         Check for default ligatures if there are no `L' entries.
3973         Print all kern entries.
3974         Print all characters in charset.
3975         * src/utils/afmtodit/afmtodit.man: Updated.
3977         * font/devps/*: Regerated all fonts.
3979         * tmac/latin[129].tmac, tmac/cp1047.tmac: Don't test for existence
3980         of characters, just use `.trin'.  Otherwise the mapping depends
3981         on the font encoding.
3982         * tmac/ps.tmac: Add `fi' and `fl'.
3983         Improve `Fi' and `Fl'.
3984         * tmac/X.tmac, tmac/lbp.tmac, tmac/tty.tmac: Improve `Fi' and `Fl'.
3985         * tmac/Xps.tmac: Fix `em'.
3987         * NEWS: Updated.
3989 2003-03-04  Werner LEMBERG  <wl@gnu.org>
3991         * src/roff/troff/input.cc (charinfo_to_node_list): Reset
3992         `have_input'.
3994 2003-03-03  Werner LEMBERG  <wl@gnu.org>
3996         * Makefile.sub (DISTCLEANFILES): Add gxditview._man.
3998         * font/devps/generate/textmap: Remove entry `similarequal'.
3999         * font/devps/symbolmap: Updated.
4001 2003-03-02  Werner LEMBERG  <wl@gnu.org>
4003         * src/libs/libgroff/font.cc (font::load): Fix error message for
4004         bad character type.
4006         * src/devices/grops/grops.man: Improve documentation of the -b
4007         flag.
4009         * tmac/tty.tmac: Load latin1.tmac for all TTY devices except
4010         `ascii' and `cp1047'.
4012 2003-03-01  Werner LEMBERG  <wl@gnu.org>
4014         Document composite glyphs and the `composite' request.
4016         * man/groff.man, man/groff_diff.man, doc/groff.texinfo: Do it.
4018 2003-02-28  Werner LEMBERG  <wl@gnu.org>
4020         * font/devdvi/generate/ec.map: Add some more Unicode entities.
4021         * font/devdvi/*EC: Updated.
4023         * tmac/composite.tmac, tmac/latin2.tmac, tmac/latin9.tmac: New files.
4024         * tmac/latin1 (latin1-tr): Undo any previous mapping.
4025         * tmac/troffrc: Load `composite.tmac'.
4026         * tmac/Makefile.sub (NORMALFILES): Updated.
4028         * doc/groff.texinfo (Input Encodings): New section.
4029         * NEWS: Updated.
4031 2003-02-27  Werner LEMBERG  <wl@gnu.org>
4033         * doc/texinfo.tex: New version 2003-02-11.06.
4035         * tmac/doc-common (Dt): Don't emit warning for unknown section.
4036         * tmac/groff_mdoc.man: Fix description of `Dt'.
4038 2003-02-26  Egil Kvaleberg  <egil@kvaleberg.no>
4040         * font/devps/prologue.ps: Fix for included Postscript that does
4041         a setpagedevice -- which is now safely ignored.
4043         * NEWS: Updated.
4045         * src/devices/grops/ps.cc: Now sets the page size in the generated
4046         document.  This is done in two ways: Via a %%-comment for gv and
4047         the like, and via a PageSize and setpagedevice for programs that
4048         understands Postscript proper, like ps2pdf.
4050         * src/devices/grops/ps.h: New broken-flag to avoid page size
4051         definition, if required.
4053         * src/devices/grops/grops.man: New broken-flag 16 mentioned.
4055         * doc/Makefile.in: Added -nosetpage flag (via @pnmtops_nosetpage@).
4056         Not really necessary due to the fix in prologue.ps, but cleaner:
4057         Such information does not belong in an .eps file.
4059         * doc/Makefile.sub: See doc/Makefile.in.
4061 2003-02-26  Ralph Corderoy  <ralph@inputplus.co.uk>
4063         * aclocal.m4 (GROFF_PNMTOPS_NOSETPAGE): Use P2 format for testing
4064         instead of P1 since the latter is broken in some versions of netpbm.
4065         * configure: Updated.
4067 2003-02-26  Larry Kollar  <kollar@alltel.net>
4069         Make man pages more customizable.
4071         * tmac/an-old.tmac (FT): New register holding footer distance from
4072         bottom.
4073         (HF): New string holding the default heading font.
4074         (TH): Handle registers `IN' and `SN' set on the command line.
4075         Use `FT'.
4076         (PT, BT): New strings to customize header and footer lines.
4077         (an-header, an-footer): Use them.
4078         (SH, SS): Use `HF'.
4079         * tmac/groff_man.man: Document changes.
4081         * doc/groff.texinfo: Document man changes.
4082         Document Ultrix extensions of man.
4084 2003-02-26  Werner LEMBERG  <wl@gnu.org>
4086         * src/roff/troff/input.cc (do_width, do_if_request): Reset
4087         `have_input' after changing back to old environment.
4089         * src/devices/grolbp/lbp.cc (lbp_printer::set_line_thickness): Move
4090         function up to be defined before first call.  This is necessary to
4091         avoid a compilation problem with Sun's WorkShop 6 C++ compiler.
4093         * src/utils/afmtodit/afmtodit.pl: Make script search for files in
4094         the default font directory also.  Based on a patch from James
4095         J. Ramsey <jjramsey_6x9eq42@yahoo.com>.
4096         * src/utils/afmtodit/Makefile.sub (afmtodit): Handle @FONTDIR@.
4097         * src/utils/afmtodit/afmtodit.man: Document it.
4099         * NEWS: Updated.
4101         * tmac/groff_man.man, doc/groff.texinfo: Many minor fixes.
4103 2003-02-25  Gaius Mulley  <gaius@glam.ac.uk>
4105         * aclocal.m4 (GROFF_HTML_PROGRAMS): Add test for pnmtops.
4106         (GROFF_PNMTOPS_NOSETPAGE): New macro.
4107         * configure.ac: Use it.
4108         * configure: Regenerated.
4109         * Makefile.in: Updated.
4111         * tmac/Makefile.sub (NORMALFILES): Remove www.tmac.
4112         (CLEANADD): Add www.tmac-sed.
4113         (pnmtops_nosetpage): Define default.
4114         (install_data): Handle www.tmac-sed and substitute
4115         @PNMTOPS_NOSETPAGE@.
4116         (stamp-sed): Add www.tmac.
4117         * tmac/www.tmac: Rewritten, based on a patch by Bernd Warken.
4118         It now breaks URLs at suitable places.
4119         (www:substring_ok): New register set by...
4120         (www:@test_substring): New macro.
4121         (www:error): New alias to www-error.
4122         (www:lenstr, www:splitstr, www:url_breaks, www:url_breaks_splitted):
4123         New macros.
4124         (URL): Use www:url_breaks.
4125         (PIMG, MPIMG): Use @PNMTOPS_NOSETPAGE@.
4126         (CDS, CDE): New macros.
4128 2003-02-25  Werner LEMBERG  <wl@gnu.org>
4130         * src/devices/grops/ps.cc (ps_printer::define_encoding): Avoid
4131         buffer overflow.
4133 2003-02-24  Werner LEMBERG  <wl@gnu.org>
4135         Contrary to the PCL5 Developer's Guide, the ascenders in TFM files
4136         can be negative also.
4138         * src/utils/hpftodit/hpftodit.cc (char_info): `ascent' must be
4139         `int16'.
4140         (read_char_table): Avoid negative ascenders.
4141         (output_charset): Add cast.
4142         * font/devlj4/*: Regenerated.
4144         Replace unnamed glyphs for DVI fonts with `uXXXX' glyph names where
4145         possible.
4147         * font/devdvi/generate/{tc,texttt,ec,texmi,texsy,textex}.map: Do it.
4148         * font/devdvi/generate/textex.map: Map glyph 23 to `u21C6' instead
4149         of `<>'.
4150         * font/devdvi/*: Regenerated.
4152         Map `la' and `ra' to U+27E8 and U+27E9.  These two characters have
4153         normal width, while the previously used characters (U+2329 and
4154         U+232A) are classified as wide due to canonical equivalence with the
4155         CJK punctuation characters U+3008 and U+3009.
4157         * font/devutf8/R.proto: Updated.
4158         * src/roff/troff/uniglyph.cc, src/roff/troff/glyphuni.cc: Ditto.
4160         * man/groff_char.man: Simplify handling of table traps by
4161         introducing `start block' and `end block' macros.
4162         (Ns, Ne, 2s, 2e, Ds, De): New macros.
4163         (DL): Make it work with Unix troff also.
4164         Fix code values of `la' and `ra'.
4166         * tmac/dvi.tmac: Define `<>' for CW and CWI.
4168 2003-02-23  Gaius Mulley  <gaius@glam.ac.uk>
4170         * src/devices/grohtml/post-html.cc (element_list::~element_list):
4171         New destructor, fixing a major memory leak.
4173 2003-02-22  Werner LEMBERG  <wl@gnu.org>
4175         * font/devhtml/R.proto, font/devutf8/R.proto: Flip `*f' and `+f'
4176         to be in conformance with Unicode 3.0 and newer.
4178         * font/devlj4/generate/text.map: Add `Eu'.
4179         * font/devlj4/generate/special.map: Flip `*e' and `+e'.
4180         * font/devlj4/S: Regenerated.
4182         * man/groff_char.man: Completely rewritten.
4184         * doc/groff.texinfo: Fix description of request and macro arguments.
4186 2003-02-20  Gaius Mulley  <gaius@glam.ac.uk>
4188         Valgrind fixes.
4190         * src/devices/grohtml/html-table.cc (html_table::~html_table):
4191         Deallocate `columns' list.
4192         * src/devices/grohtml/post-html.cc (char_block::~char_block):
4193         New destructor.
4194         (text_glob::text_glob_html, text_glob::text_glob_special,
4195         text_glob::text_glob_line, text_glob::text_glob_auto_image,
4196         text_glob::text_glob_tag): Avoid memory leaks.
4197         (text_glob::remember_table): Free memory before reassigning.
4199 2003-02-19  Werner LEMBERG  <wl@gnu.org>
4201         Add glyph `+e', greek lunate epsilon symbol, and `-h' (with the
4202         alias `hbar'), the Planck constant over two pi.
4204         * font/devdvi/generate/texmi.map: Use `*e' for position 15 and
4205         `+e' for position 34.
4206         * font/devdvi/generate/texsy.map: Replace `DI' and `HE' with
4207         `u2662' and `u2661'.
4208         * font/devdvi/{MI,S}: Regenerated.
4209         * font/devhtml/R.proto, font/devutf8/R.proto: Add `+e', `-h', `hbar'.
4210         * font/devlbp/*: Add `hbar' alias.
4211         * font/devlj4/generate/special.map: Ditto.
4212         * font/devlj4/S: Regenerated.
4213         * font/devps/generate/symbolchars: Add `+e'.
4214         * font/devps/generate/textmap: Fix PS name for `-h'.
4215         Add `hbar' alias.
4216         * font/devps/symbolmap: Regenerated.
4218         * src/devices/grops/ps.cc (transform_fill): Removed since unused.
4220         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Add `+e',
4221         `-h', `hbar'.
4222         * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Add `+e',
4223         `-h'.
4225         * tmac/X.tmac, tmac/ps.tmac: Provide definitions for `-h' and
4226         `hbar'.
4227         * tmac/tty-char.tmac: Add `+e'.
4229 2003-02-17  Werner LEMBERG  <wl@gnu.org>
4231         Another round trying to really fix problems with `have_input'.
4233         * src/roff/troff/input.cc (input_stack::get): Handle `have_input'.
4234         (token::next) <'\n'>, <\'\n'>: Don't handle `have_input'.
4236         * src/devices/grotty/tty.cc (tty_printer::put_color): Fix color
4237         handling if both foreground and background colors are default.
4239         * doc/groff.texinfo (Debugging): Document .lf differences to
4240         AT&T troff.
4242 2003-02-16  Werner LEMBERG  <wl@gnu.org>
4244         * src/devices/grotty/tty.cc (tty_printer::make_rgb_string): Avoid
4245         null-bytes in created string.
4247         * src/roff/troff/input.cc (lookup_color, interpolate_macro,
4248         alias_macro, lookup_request): Improve warning messages.
4250         * src/roff/troff/node.cc (suppress_node::tprint): Use `strsave',
4251         not `strdup'.
4252         Free `last_image_filename'.
4254         * src/preproc/html/pre-html.cc (char_block::char_block): Initialize
4255         `buffer'.
4256         (imageList::createPage, imageList::createImage): Use `free', not
4257         `a_delete'.
4258         (imageItem::~imageItem): Free `imageName'.
4259         (addRegDef): Use `strsave', not `strdup'.
4260         (get_resolution): Free `pathp'.
4262 2003-02-15  Werner LEMBERG  <wl@gnu.org>
4264         * src/devices/grotty/tty.cc (tty_printer::tty_printer): Fix pointer
4265         to `dummy'.
4267 2003-02-14  Werner LEMBERG  <wl@gnu.org>
4269         Add memory management for colors to deallocate unnamed colors
4270         properly.
4272         * src/include/color.h (color): New members `free_list' and `next'.
4273         New member functions `new' and `delete'.
4274         Add destructor.
4275         * src/libs/libgroff/color.cc: Implement it.
4277         * src/libs/libgroff/font.cc (font::add_kern): Use integer cast
4278         for array size of new operator.
4280         * src/libs/libdriver/input.cc (IntArray::operator[]): Remove
4281         redundant comparison.
4283         * src/roff/troff/input.cc (word_space_node::reread,
4284         hmotion_node::reread): Avoid warning about unused parameter.
4285         (reset_output_registers): Remove redundant parameter.
4286         (define_color): Undo change 2003-02-12.
4288         * src/roff/troff/reg.h: Updated.
4290         * src/roff/troff/node.cc (troff_output_file::really_print_line,
4291         output_file::put_filename, real_output_file::really_put_filename,
4292         ascii_output_file::really_print_line,
4293         break_char_node::get_hyphen_list): Avoid warning about unused
4294         parameter.
4295         (suppress_node::tprint): Updated.
4297         * configure.ac: Check declaration for rand() and srand().
4298         * configure: Regenerated.
4300         * src/preproc/pic/pic.h: Declare fmod(), rand(), and srand()
4301         conditionally.
4302         * src/preproc/pic/pic.y: Remove declaration of fmod(), rand(),
4303         and srand().
4305         * src/preproc/eqn/delim.cc (delim_table): Add missing initializers
4306         to avoid compiler warnings.
4308         * src/preproc/grn/hgraph.cc (HGPrintElt): Second parameter is
4309         unused.
4311         * src/devices/grops/ps.cc (ps_printer::set_char): Last parameter
4312         is unused.
4313         * src/devices/grops/psrm.cc (skip_possible_newline): Remove first
4314         (unused) parameter.
4315         Updated all callers.
4317         * src/devices/grotty/tty.cc (tty_printer::set_char): Last parameter
4318         is unused.
4319         * src/devices/grodvi/dvi.cc (dvi_printer::set_char): Ditto.
4320         * src/devices/grolj4/lj4.cc (lj4_printer::set_char): Ditto.
4322         * src/devices/grohtml/post-html.cc (html_printer::emit_line):
4323         Parameter is unused.
4324         (html_printer::add_table_end): Define parameter conditionally.
4325         * src/devices/grohtml/output.cc (simple_output::special): Parameter
4326         is unused.
4328         * src/devices/grolbp/lbp.cc: Define _GNU_SOURCE conditionally.
4329         (lbp_printer::set_char): Last parameter is unused.
4331         * src/utils/indxbib/indxbib.cc (main): Remove redundant comparison.
4333 2003-02-13  Werner LEMBERG  <wl@gnu.org>
4335         New commands \D'Fr ...', \D'Fc ...', etc. for orthogonality.
4336         Make \D'f ...' move horizontally again for backwards compatibility.
4337         Replace it with \D'Fg ...' where appropriate to avoid dependency
4338         on horizontal resolution.
4340         * src/roff/troff/input.cc (do_get_long_name): New function.
4341         (get_long_name): Call it.
4343         (read_draw_node): Handle `\D'Fx ...' by calling ...
4344         (read_color_draw_node): New function.
4346         (read_rgb, read_cmy, read_cmyk, read_gray): New optional argument
4347         `end'.
4348         Pass it to `do_get_long_name' which is used instead of
4349         `get_long_name'.
4351         * src/libs/libdriver/input.cc (color_from_Df_command): Remove
4352         unnecessary value guard.
4353         (parse_D_command) <'f'>: Add horizontal shift.
4355         * src/preproc/grn/hgraph.cc (HGPrintElt) <POLYGON>: Use \D'Fg ...'.
4356         * src/preproc/pic/troff.cc (troff_output::set_fill): Ditto.
4357         (FILL_MAX): Removed.
4359         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
4360         Updated.
4362 2003-02-12  Werner LEMBERG  <wl@gnu.org>
4364         * src/roff/troff/input.cc (do_name_test, do_expr_test,
4365         do_zero_width): Push `\n' if closing delimiter is missing.
4367         (token::next) <ESCAPE_NEWLINE>, <'\n'>, <\'\n'>: Reset `have_input'.
4368         <'F'>: Make \F non-transparent at the beginning of line.
4369         (process_input_stack) <token::TOKEN_CHAR, token::TOKEN_NEWLINE,
4370         token::TOKEN_REQUEST, token::TOKEN_BEGIN_TRAP>: Don't handle
4371         `have_input'.
4373         (define_color): Free color in case of reassignment.
4375         * doc/groff.texinfo (@Defesc, @DefescList, @DefescItem,
4376         @DefescListEnd): Use @Var, not @var.
4377         Fix all calls.
4379         * src/preproc/grn/hgraph.cc (HGPrintElt): Fix typo.
4381         * src/preproc/pic/object.cc (object_spec::~object_spec): Free
4382         `shaded' and `outlined' arrays.
4383         (object_spec::object_spec): Initialize `shaded' and `outlined'.
4384         (graphic_object::set_fill_color, graphic_object::set_outline_color):
4385         Use strsave.
4386         (closed_object::set_fill_color): Ditto.
4387         * src/preproc/pic/troff.cc (troff_output::set_color): Use strsave
4388         instead of strdup.
4389         (troff_output::reset_color): Use a_delete instead of free.
4390         * src/preproc/pic/main.cc (do_file): Free `out' in case of error.
4392 2003-02-11  Werner LEMBERG  <wl@gnu.org>
4394         * doc/groff.texinfo: Improve documentation of `ad'.
4395         Document that \D'f...' is dependent on the horizontal resolution.
4396         * man/groff_diff.man: Improve documentation of \D'f...'.
4398         * src/preproc/grn/hgraph.cc (HGPrintElt) <POLYGON>: Don't emit
4399         compensating \h'...' for \D'f ...' since the latter no longer moves
4400         current position.
4401         * src/preproc/pic/troff.cc (troff_output::set_fill): Ditto.
4403 2003-02-10  Werner LEMBERG  <wl@gnu.org>
4405         Improve error messages for `x F' (and `F') commands.
4407         * src/include/error.h: Add declaration for
4408         `current_source_filename'.
4409         * src/libs/libgroff/filename.cc: Add `current_source_filename'.
4410         * src/libs/libgroff/error.cc (do_error_with_file_and_line): Add
4411         parameter for source file string.
4412         Updated all callers.
4414         * src/libs/libdriver/input.cc: Add `current_source_filename'.
4415         (remember_source_filename): New function.
4416         (parse_x_command <'F'>, do_file <'F'>): Use it.
4418 2003-02-09  Werner LEMBERG  <wl@gnu.org>
4420         Make grotty not emit warnings about unknown colors more than
4421         necessary.
4423         * src/devices/grotty/tty.cc: Include `ptable.h'.
4424         (TTY_MAX_COLORS): Removed.
4425         (DEFAULT_COLOR_IDX): Defined to -1.
4426         (glyph): Change `back_color_idx' and `fore_color_idx' to `char'.
4427         (tty_printer): Change `curr_back_idx' and `curr_fore_idx' to `char'.
4428         Change `tty_colors' to be a ptable.
4429         First arg of `put_color' is now `char'.
4430         New functions `make_rgb_string' and `tty_color'.
4431         (tty_printer::tty_printer): Use `tty_color'.
4432         (tty_printer::color_to_idx): Return value is now `char'.
4433         Use `tty_color'.
4435         * src/include/color.h (color): Add `print_color' member function.
4436         * src/libs/libgroff/color.cc (color::print_color): Implement it.
4438 2003-02-08  Werner LEMBERG  <wl@gnu.org>
4440         Valgrind fixes.
4442         * src/devices/grops/ps.cc (ps_printer::define_encoding): Close
4443         encoding file.
4445         * src/include/ptable.h (PTABLE::~PTABLE, PTABLE::define): Always
4446         assume that value has been allocated with `new[]', thus use
4447         `a_delete' for deallocation.
4449         * src/libs/libdriver/input.cc (get_integer_arg,
4450         get_possibly_int_args, parse_x_command, do_file): Use `a_delete'
4451         where appropriate.
4453         * src/libs/libgroff/new.cc (delete) [!COOKIE_BUG]: Define.
4454         * src/libs/libgroff/nametoindex.cc
4455         (character_indexer::named_char_index): Use `new <type>[1]'.
4457         * src/preproc/eqn/lex.cc (init_table, do_definition): Use `new
4458         <type>[1]'.
4459         * src/preproc/eqn/text.cc (set_special_char_type): Ditto.
4460         (split_text): Use `a_delete'.
4462         * src/preproc/pic/pic.y (define_label, define_variable): Use `new
4463         <type>[1]'.
4465         * src/roff/troff/env.cc (environment::choose_breakpoint): Avoid
4466         harmless memory leak.
4467         (hyphen_trie::read_patterns_file): Initialize `buf'.
4468         * src/roff/troff/node.cc (troff_output_file::troff_output_file):
4469         Initialize `current_fill_color'and `current_glyph_color'.
4470         * src/roff/troff/glyphuni.cc
4471         (glyph_to_unicode_init::glyph_to_unicode_init): Use `new <type>[1]'.
4472         * src/roff/troff/uniuni.cc
4473         (unicode_decompose_init::unicode_decompose_init): Ditto.
4474         * src/roff/troff/uniglyph.cc
4475         (unicode_to_glyph_init::unicode_to_glyph_init): Ditto.
4477 2003-01-26  Werner LEMBERG  <wl@gnu.org>
4479         * src/utils/indxbib/indxbib.cc (main) [__EMX__]: Check with
4480         `access' before calling `unlink'.
4481         (do_file): Handle __EMX__.
4483         * src/include/nonposix.h: Handle __EMX__.
4485         * Makefile.in (SEP): New variable; set to @PATH_SEPARATOR@.
4486         (fontpath,tmacpath): Use it.
4487         (MDEFINES): Add it.
4488         Sorted alphabetically.
4490         * src/preproc/eqn/neqn.sh, src/roff/nroff/nroff.sh: Use
4491         @SEP@.
4492         * src/preproc/eqn/Makefile.sub, src/roff/nroff/Makefile.sub: Handle
4493         @SEP@.
4495 2003-01-27  Werner LEMBERG  <wl@gnu.org>
4497         * src/libs/libgroff/strcasecmp.c, src/libs/libgroff/strncasecmp.c:
4498         New files, copied from gnulib.
4499         * src/libs/libgroff/Makefile.sub (CSRCS): Add them.
4500         * configure.ac: Updated.
4501         * configure: Regenerated.
4503         * src/include/config.hin: Regenerated.
4504         * src/include/lib.h [!HAVE_STRCASECMP]: Declare `strcasecmp'.
4505         Don't define `strcasecmp' as `strcmp'.
4506         [!HAVE_STRNCASECMP]: Declare `strncasecmp'.
4507         Dont define `strncasecmp' as `strncmp'.
4509         * src/roff/groff/pipeline.c [!HAVE_STRCASECMP, !HAVE_STRNCASECMP]:
4510         Removed.
4512 2003-01-26  Werner LEMBERG  <wl@gnu.org>
4514         * src/utils/indxbib/indxbib.cc (main) [__EMX__]: Fix typo:
4515         s/unline/unlink/.
4517 2003-01-25  Werner LEMBERG  <wl@gnu.org>
4519         * doc/groff.texinfo (Ligatures and Kerning): Mention limitations.
4521 2003-01-24  Werner LEMBERG  <wl@gnu.org>
4523         Add US-english hyphenation exceptions (converted from Barbara
4524         Beeton's hyphenation exception log reports which appear irregularly
4525         in TUGBoat).
4527         * tmac/hyphen.us: Updated to latest version.
4528         * tmac/README: Updated.
4529         * tmac/hyphenex.us, tmac/hyphenex.sh: New files.
4530         * tmac/troffrc: Load `hyphenex.us'.
4531         * tmac/Makefile.sub (NORMALFILES): Add `hyphenex.us'.
4532         * doc/groff.texinfo: Updated.
4534 2003-01-23  Werner LEMBERG  <wl@gnu.org>
4536         Improve hyphenation slightly.  This is a first step in redesigning
4537         the hyphenation algorithm to make it more flexible (e.g. allowing
4538         kerns and ligatures between the hyphenation character and the
4539         following character -- while not used normally in English, other
4540         languages like German would benefit).
4542         * src/roff/troff/env.cc (environment::hyphenate_line): Use
4543         assertion instead of if-clause.
4544         Let `get_hyphen_list' return the number of involved characters in
4545         the hyphenation pattern instead of computing it directly (which
4546         often yields too small values).
4547         * src/roff/troff/node.h (*::get_hyphen_list): Add second parameter.
4548         * src/roff/troff/node.cc (*::get_hyphen_list): Handle new second
4549         parameter.
4551 2003-01-22  Werner LEMBERG  <wl@gnu.org>
4553         Fixing a bug which caused groff to hang if the hyphenation exception
4554         dictionary tried to grow.
4556         * src/roff/troff/env.cc (hyphen_trie::insert_hyphenation,
4557         hyphen_trie::read_patterns_file, do_hyphenation_patterns_file): Use
4558         pointer to dictionary.
4560 2003-01-20  Werner LEMBERG  <wl@gnu.org>
4562         * src/utils/afmtodit/afmtodit.pl: Add switch `-m' to suppress
4563         negative left italic correction.
4564         * src/utils/afmtodit/afmtodit.man: Document it.
4566         * font/devps/generate/Makefile (RFLAG): Add `-m'.
4567         * font/devps/{AB,AR,BMB,BMR,CB,CR,EURO,HB,HR,HNB,HNR,NB,NR,PB,PR,
4568         S,TB,TR,ZD,ZDR}: Regenerated with afmtodit options `-i 0 -m'.
4570         * NEWS: Updated.
4572 2003-01-16  Werner LEMBERG  <wl@gnu.org>
4574         * NEWS: Updated.
4576 2003-01-16  Jörgen Grahn  <jgrahn@algonet.se>
4578         * src/preproc/refer/refer.man: Mention REFER environment variable.
4580 2003-01-05  Werner LEMBERG  <wl@gnu.org>
4582         Similar to \[is], the square root glyph (\[sr]) and the square root
4583         extension glyph (\[radicalex]) are now text symbols.  The new
4584         mathematical versions are called \[sqrt] and \[sqrtex],
4585         respectively.
4587         * font/devX*/S: Regenerated.
4588         * font/devdvi/generate/texex.map: Rename `sr[0123]' to `sqrt[0123]'.
4589         * font/devdvi/generate/texsy.map: Rename `sr' to `sqrt'.
4590         * font/devdvi/EX, font/devdvi/S: Regenerated.
4591         * font/devhtml/R.proto, font/devutf8/R.proto: Add `sqrt'.
4592         * font/devlj4/generate/special.map: Add `sqrt'.
4593         * font/devlj4/S: Regenerated.
4594         * font/devps/generate/textmap: Add `sqrt'.
4595         * font/devps/S, font/devps/symbolmap: Regenerated.
4597         * src/preproc/eqn/sqrt.cc (SQRT_CHAR, RADICAL_EXTENSION_CHAR,
4598         SQRT_CHAIN, BAR_CHAIN): Use `sqrt*' and `sqrtex*'.
4599         * src/roff/troff/input.cc (init_charset_table): Make `sqrtex'
4600         overlap horizontally.
4602         * tmac/X.tmac, tmac/ps.tmac, tmac/lj4.tmac: Add `sqrtex'.
4603         * tmac/dvi.tmac: Add `sr', and `sqrtex'.
4604         Fix `radicalex'.
4606         * doc/groff.texinfo, man/groff_diff.man: Document that `radicalex'
4607         and `sqrtex' are overlapping glyphs.
4609 2003-01-04  Werner LEMBERG  <wl@gnu.org>
4611         * font/devdvi/generate/texsy.map: Add `is'.
4612         * font/devps/symbolmap: Regenerated.
4613         * font/devdvi/*TC, MI, S: Regenerated.
4615         * tmac/dvi.tmac: Remove `is'.
4617 2003-01-03  Werner LEMBERG  <wl@gnu.org>
4619         `is' is now a text symbol (only relevant for dvi).  The math variant
4620         can be accessed with `integral'.
4622         * font/devX*/S: Regenerated.
4623         * font/devdvi/generate/texex.map: Remove `is'.
4624         * font/devdvi/EX: Updated.
4625         * font/devhtml/R.proto, font/devutf8/R.proto: Add `integral'.
4626         * font/devlj4/generate/special.map: Ditto.
4627         * font/devlj4/S: Regenerated.
4628         * font/devps/generate/textmap: Add `integral'.
4629         * font/devps/S: Regenerated.
4631         * tmac/dvi.tmac: Define `is'.
4633         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Add `integral'.
4635         * src/preproc/tbl/main.cc (process_format): Fix error message.
4637 2003-01-02  Werner LEMBERG  <wl@gnu.org>
4639         * font/devhtml/R.proto, font/devutf8/R.proto: Add `ne' and `nc'.
4640         * font/devps/textmap: Fix entries for `ne' and `nc'.
4641         * font/devps/symbolmap: Regenerated.
4643         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list),
4644         src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Add `18',
4645         `38', `58', `78', `-+', `|=', `nc', `ne'.
4647         * tmac/dvi.tmac: Add `nm', `ne', `nc'.
4648         Use `schar' for `aq'.
4649         * tmac/ps.tmac, tmac/X.tmac: Add `nc' and `ne'.
4650         * tmac/ec.tmac: Add `SC' to special fonts for `CW' and `CWI'.
4651         * tmac/tty.tmac: Add `ne'.
4653         * src/roff/troff/node.cc (make_glyph_node): Test with `get_macro'
4654         for fallback glyphs.
4656 2002-12-29  Werner LEMBERG  <wl@gnu.org>
4658         Add glyph `|='.
4660         * font/devX*/*: Regenerated.
4661         * font/devdvi/generate/ec.map: Remove `eq'.
4662         * font/devdvi/generate/texsy.map: Make `~=' the same as `~~'.
4663         Assign `|=' to position 39.
4664         * font/devdvi/*EC, S: Regenerated.
4665         * font/devhtml/R.proto, font/devutf8/R.proto: Add `|='.
4666         * font/devlj4/generate/special.map: Make `~=' the same as `~~'.
4667         Assign `|=' to position 549.
4668         * font/devps/generate/textmap, font/devps/enerate/symbolmap: Remove
4669         `equalmath'.
4670         Add `uni2243' for `|='.
4672         * tmac/ec.tmac: Add `eq'.
4673         * tmac/dvi.tmac: Add `=~'.
4674         * tmac/tty-char.tmac, tmac/ps.tmac, tmac/X.tmac, tmac/lbp.tmac: Add
4675         `|='.
4677 2002-12-21  Werner LEMBERG  <wl@gnu.org>
4679         * font/devdvi/generate/tc.map: Remove `**'.
4680         * font/devdvi/*TC: Regenerated.
4681         * font/devhtml/R.proto, font/devutf8/R.proto: Add `18', `38', `58',
4682         `78', `<<', `>>'.
4683         * font/devutf8/NOTES: Updated.
4685         * src/roff/troff/charinfo.h (charinfo): Add `setx_macro' function.
4686         Don't give default parameter to `set_macro'.
4687         * src/roff/troff/input.cc (do_define_character): Use `setx_macro'
4688         instead of `set_macro'.
4689         (charinfo::setx_macro): Implement it.
4690         (charinfo::set_macro): Don't change `mode'.
4692         * tmac/tty.tmac: Add `18', `38', `58', `78', `<<', `>>'.
4693         * tmac/ps.tmac, tmac/X.tmac: Add `<<', `>>'.
4694         * tmac/dvi.tmac: Define `!=' with `.schar'.
4696 2002-12-20  Werner LEMBERG  <wl@gnu.org>
4698         * font/devX*/S: Regenerated.
4699         * font/devdvi/generate/ec.map: Remove `pl'.
4700         * font/devdvi/generate/tc.map: Remove `mi', `14', `12', `34'.
4701         * font/devdvi/*{TC,EC}: Regenerated.
4702         * font/devhtml/R.proto: Add `-+'.
4703         Remove double entries for `rk', `lk', `lt', `rt', `rb', `lb'.
4704         * font/devlbp/*: Remove `or'.
4705         * font/devlj4/generate/special.map: Remove `or'.
4706         * font/devlj4/S: Regenerated.
4707         * font/devps/generate/textmap: Add `fiveeighths', `oneeighth',
4708         `seveneighths', `threeeighths'.
4709         Remove `plusmath'.
4710         Replace `minusplus' with `uni2213'.
4711         * font/devps/symbolmap: Regenerated.
4712         * font/devutf8/R.proto: Replace `shc' with unnamed glyph.
4713         Add `-+'.
4715         * src/roff/troff/charinfo.h (charinfo): Add `is_normal' inline
4716         function.
4717         * src/roff/troff/node.cc (troff_output_file::put_char_width):
4718         Call glyph_color and fill_color even if tcommand_flag isn't set.
4719         (make_node, node::add_char): Check not ci->is_fallback but
4720         ci->is_normal.
4722         * tmac/lj4.tmac, tmac/lbp.tmac: Define `or'.
4723         * tmac/ec.tmac: Add .rchar entry for `f/'.
4724         Don't remove `12', `14', `34'.
4725         Define `pl' to be always roman.
4726         * tmac/ps.tmac (ps-frac, ps-frac-mono): New macros.
4727         Define `18', `38', `58', `78'.
4728         * tmac/tty.tmac: Add `-+'.
4729         * tmac/dvi.tmac: Define `f/'.
4730         (dvi-frac): Use `f/'.
4731         * tmac/X.tmac (X-frac, X-frac-mono): New macros.
4732         Define `18', `38', `58', `78'.
4734 2002-12-15  Colin Watson  <cjwatson@debian.org>
4736         * contrib/pic2graph/pic2graph.sh: Add missing `;;'.
4738 2002-12-10  Werner LEMBERG  <wl@gnu.org>
4740         Add glyph `tno', a textual variant of `no'.
4742         * font/devX*/*: Regenerated.
4743         * font/{devcp1047,devlatin1,devutf8,devhtml}/R.proto: Add `tno'.
4744         * font/devdvi/generate/{tc.map: Replace `no' with `tno'.
4745         * font/devdvi/generated/{texsy,textex}.map: Add `tno'.
4746         * font/devdvi/*: Regenerated.
4747         * font/devlbp/*: Add `tno'.
4748         * font/devlj4/generate/tex.map: Replace `no' with `tno'.
4749         * font/devlj4/*: Regenerated.
4750         * font/devps/generate/textmap: Replace `no' with `tno'.
4751         * font/devps/generate/symbolchars: Add `no'.
4752         * font/devps/*: Regenerated.
4754         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Add `tno'.
4756         * tmac/cp1047.tmac, tmac/latin1.tmac: Replace `no' with `tno'.
4757         * tmac/tty-char.tmac: Add entry for `tno' and `3d'.
4759         * NEWS: Updated.
4761         * tmac/dvi.tmac: Replace most `\\' with `\E'.
4762         Add definition for `sd'.
4763         * tmac/X.tmac, tmac/ps.tmac: Replace most `\\' with `\E'.
4765         * tmac/eqnrc <dvi>: Use `integral' instead of `is' glyph.
4767 2002-12-08  Werner LEMBERG  <wl@gnu.org>
4769         * tmac/an-old.tmac (TH): Use integer value for `IN' if in nroff
4770         mode to avoid rounding errors.
4771         (an-do-tag, an-do-tag-html, RS, RE): Remove redundant `.br'.
4773         * src/roff/groff/groff.man, src/roff/nroff/nroff.man,
4774         src/roff/troff/troff.man: Improve documentation of -T.
4776 2002-12-07  Jeff Conrad  <jeff_conrad@msn.com>
4778         * src/roff/groff/pipeline.c: Don't define `const' for _WIN32.
4779         (run_pipeline) [_WIN32]: Provide working function without `fork'.
4781 2002-12-06  Werner LEMBERG  <wl@gnu.org>
4783         * font/devps/generate/freeeuro.sfd: Make dimensions of Euro.symbol
4784         glyphs compatible to Adobe's Euro fonts (scaling them down a bit).
4785         Scaling Euro.sansserif glyphs down to have the same height as
4786         digits.
4787         Removed unnecessary points; added some extrema.
4789         * font/devps/EURO, font/devps/freeeuro.afm, font/devps/freeeuro.pfa:
4790         Regenerated.
4792 2002-12-04  Werner LEMBERG  <wl@gnu.org>
4794         * font/devps/generate/freeeuro.sfd: Add glyphs `Euro.symbol.slanted'
4795         and `Euro.symbol.bold.slanted'.
4796         Improve some glyph offsets and widths.
4797         * font/devps/EURO, font/devps/freeeuro.afm, font/devps/freeeuro.pfa:
4798         Regenerated.
4799         * font/devps/generate/Makefile (freeeuro.afm freeeuro.pfa): Fix
4800         typo.
4801         * font/devps/generate/sfdtopfa.pe: Generate PFA in current
4802         direcory.
4804         * tmac/europs.tmac: Updated to new glyph indices.
4805         Use Euro.symbol for font familiy `A'.
4807         * doc/groff.texinfo: Minor improvements.
4809 2002-12-02  Werner LEMBERG  <wl@gnu.org>
4811         * font/devdvi/generate.tc.map: s/%O/%0/.
4812         * font/devdvi/*TC: Regenerated.
4814         * src/roff/troff/div.cc (init_div_requests): Sorted.
4816         * tmac/dvi.tmac: Remove `Ye'.
4817         * tmac/ec.tmac: Remove `Ye'.
4818         Add .rchar entry for `de'.
4820         * man/groff.man, man/groff_diff.man: Document register `.pe'.
4821         * doc/groff.texinfo: Document registers `.pe', `.n', and `.w'.
4822         * NEWS: Updated.
4824 2002-11-30  Werner LEMBERG  <wl@gnu.org>
4826         Add PS font for various Euro glyphs.
4828         * font/devps/generate/freeeuro.sfd: New master font file for
4829         pfaedit.
4830         * font/devps/generate/sfdtopfa.pe: New conversion script for
4831         pfaedit.
4832         * font/devps/generate/Makefile (FONTS): Add `EURO'.
4833         (EURO, freeeuro.afm, freeeuro.pfa): New rules.
4834         * font/devps/freeeuro.pfa, font/devps/freeeuro.afm: Generated from
4835         `freeeuro.sfd'.
4836         * font/devps/EURO: Generated from `freeeuro.afm'.
4837         * font/devps/download: Add `freeuro.pfa'.
4838         * font/devps/Makefile.sub (NORMALFILES): Adde `EURO' and
4839         `freeeuro.pfa'.
4841         * tmac/europs.tmac: New file.
4842         * tmac/ps.tmac: Include `europs.tmac'.
4843         * tmac/Makefile.sub (DISTFILES): Add `europs.tmac'.
4845 2002-11-29  Werner LEMBERG  <wl@gnu.org>
4847         * font/devdvi/generate/texsy.map: Remove `lh' and `rh'.
4848         * font/devdvi/S: Regenerated.
4849         * font/devhtml/R.proto: Fix `CR' and `ci'.
4850         Add `OK'.
4851         * font/devps/generate/textmap: Fix `lh', `rh', and `sq'.
4852         Remove `bs'.
4853         * font/devps/symbolmap: Regenerated.
4854         * font/devutf8/R.proto: Fix `CR' and `ci'.
4855         Add `OK'.
4856         * font/devutf8/NOTES: Updated.
4858         * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Fix `CR' and
4859         `ci'.
4860         Add `OK'.
4861         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Ditto.
4863         * tmac/dvi.tmac: Add `lh' and `rh'.
4864         * tmac/Xps.tmac: Fix `lh' and `rh'.
4865         * tmac/X.tmac: Add `OK'.
4866         * tmac/lj4.tmac: Ditto.
4868 2002-11-24  Werner LEMBERG  <wl@gnu.org>
4870         * font/devX*/S: Regenerated.
4871         * font/devascii/R.proto, font/devcp1047/R.proto: Remove glyphs `lb',
4872         `lc', `lf', `lk', `lt', `rb', `rc', `rf', `rk', and `rt'.
4873         * font/devdvi/generate/texsy.map: Remove `or' glyph.
4874         * font/devdvi/S: Regenerated.
4875         * font/devhtml/R.proto, font/devutf8/R.proto: Add/fix glyphs
4876         `parenlefttp', `parenleftex', `parenleftbt', `parenrighttp',
4877         `parenrightex', `parenrightbt', `bracketlefttp', `bracketleftex',
4878         `bracketleftbt', `bracketrighttp', `bracketrightex',
4879         `bracketrightbt', `bracelefttp', `braceleftmid', `braceleftbt',
4880         `braceex', `braceleftex', `bracerightex', `bracerighttp',
4881         `bracerightmid', `bracerightbt', `lt', `lk', `lb', `rt', `rk',
4882         `rb', and `bv'.
4883         * src/roff/troff/glyphuni.cc, src/roff/troff/uniglyph.cc: Ditto.
4884         * font/devutf8/NOTES: Updated.
4885         * font/devlj4/generate/special.map: Add glyph `braceex'.
4886         * font/devlj4/S: Regenerated.
4888         * tmac/tty-char.tmac: Add glyphs `lf', `rf', `lc', and `rc'.
4890 2002-11-14  Werner LEMBERG  <wl@gnu.org>
4892         * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Add `va'
4893         and `vA'.
4894         Fix code for `an'.
4895         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Ditto.
4897         * doc/texinfo.tex: New version from texinfo 4.3.
4898         * doc/groff.texinfo: Updated for texinfo 4.3.
4899         Use @tie{} where appropriate.
4900         * font/devdvi/generate/ec.map: Don't include `or' and `bv'.
4901         * font/devdvi/generate/tc.map: Remove `rn'.
4902         * font/devdvi/*TC, font/devdvi/*EC: Regenerated.
4903         * font/devhtml/R.proto, font/devutf8/R.proto: Add `vA'.
4904         Fix code for `an'.
4905         * font/devX100/*, font/devX100-12/*, font/devX75/*,
4906         font/devX75-12/*: Regenerated.
4908         * tmac/dvi.tmac: Add special fonts `SA' and `SB'.
4909         Use .char (again) for `br', `ul', `rn', `or', and `ru'.
4910         Improve definition of `an'.
4911         * tmac/ps.tmac: Use .char (again) for `br', `ul', `rn', `or', and
4912         `ru'.
4913         * tmac/lj4.tmac: Use .char (again) for `br', `ul', `rn', and `ru'.
4914         * tmac/X.tmac: Add definition for `or'.
4915         * tmac/Xps.tmac: Undo change 2002-11-05.
4916         * tmac/lbp.tmac: Add definitions for `br', `rn', `ul', and `ru'.
4918 2002-11-11  Werner LEMBERG  <wl@gnu.org>
4920         * src/roff/troff/node.cc (troff_output_file::put_char): Always
4921         call flush_tbuf.
4923 2002-11-10  Werner LEMBERG  <wl@gnu.org>
4925         Added three new requests `schar', `fschar', and `rfschar'.  `schar'
4926         defines a glyph which is searched after the check for fonts declared
4927         with `.special' (and before the check for all mounted special
4928         fonts).  `fschar' defines a glyph for a particular font which is
4929         searched after the check for fonts declared with `.fspecial' (and
4930         before the check for fonts declared with `.special').  `rfschar'
4931         removes glyphs defined with `fschar'.
4933         * src/roff/troff/token.h (char_mode): New enum.
4934         Declare do_define_character.
4935         * src/roff/troff/charinfo.h (charinfo): Replace `fallback' with
4936         `mode'.
4937         (charinfo::is_fallback): Updated.
4938         (charinfo::is_special): New method.
4939         * src/roff/troff/input.cc (do_define_character): Add and use
4940         optional second parameter used as a prefix for font-specific glyph
4941         names.
4942         (define_character, define_fallback_character): Updated.
4943         (define_special_character): New function.
4944         (init_input_requests): Add `schar'.
4945         (charinfo::charinfo, charinfo::set_macro): Updated.
4946         * src/roff/troff/node.cc: Include `stringclass.h'.
4947         (make_glyph_node): Handle special glyphs defined with `.schar' and
4948         `.fschar'.
4949         (define_font_special_character, remove_font_special_character): New
4950         functions.
4951         (init_node_requests): Sorted.
4952         Add `fschar' and `rfschar'.
4953         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
4954         Document new requests.
4956         * font/devhtml/R.proto, font/devutf8/R.proto: Add `va'.
4957         * tmac/dvi.tmac: Add `va' for CW and CWI (using `.fschar').
4959 2002-11-08  Werner LEMBERG  <wl@gnu.org>
4961         Added new font `SC' (cmtex10) to devdvi.
4963         * devdvi/generate/Makefile (FONTS): Add `SC'.
4964         (SC): New rule.
4965         * devdvi/generate/textex.map: New map file for cmtex.
4966         * devdvi/SC: New.
4967         * devdvi/Makefile.sub (DEVFILES): Updated.
4968         * tmac/dvi.tmac: Add fspecial entries for SC.
4969         Add `MI', `S' and `CW' to the `special' call.  Otherwise, `SC' is
4970         found before `S' since the font position of `SC' is lower due to the
4971         gaps in DESC's `font' line.
4972         * tmac/ec.tmac: Add a `special' call.
4973         * NEWS: Updated.
4975         * font/devhtml/R.proto: Remove double entry for `ti'.
4976         * tmac/tty.tmac: Add entries for `IJ', `ij', and `bq'.
4977         * tmac/tty-char.tmac: Remove entry for `bq'.
4978         * tmac/lbp.tmac: Add entries for `lq', `rq', `fo', `fc', and `em'.
4979         * tmac/ec.tmac: Don't remove `aq' glyph.
4980         * tmac/X.tmac: Fix entry for `em'.
4981         Add entries for `fo' and `fc'.
4982         * tmac/dvi.tmac: Add entries for `em', `en', `hy', `fo', and `fc'.
4984         * doc/groff.texinfo, man/groff.man, man/groff_diff.man: Fix
4985         documentation of `special' and `fspecial' requests.
4987 2002-11-05  Werner LEMBERG  <wl@gnu.org>
4989         * font/devascii/R.proto, font/devcp1047/R.proto,
4990         font/devlatin1/R.proto: Remove entry for `.i'.
4991         * font/devdvi/generate/textt.map: Add entry for `ad'.
4992         * font/devdvi/generate/texr.map, font/devdvi/generate/texb.map,
4993         font/devdvi/generate/texi.map: Add dummy glyph name `slash@for@l'.
4994         We need this for getting kerning values to compose `/l' and `/L'.
4995         * font/devdvi: Regenerated font definition files for CM fonts.
4996         * font/devhtml/R.proto: Add entries for "'C", "'c", `IJ', and `ij'.
4997         * font/devutf8/R.proto: Ditto.
4998         Remove double entry for `ti'.
5000         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Fix entries
5001         for (groff) ligatures, `la', and `ra'.
5002         Add "'C", "'c", `IJ', and `ij'.
5003         Remove double entry for `ti'.
5004         * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Remove all
5005         double entries.
5006         Add "'C", "'c", `IJ', and `ij'.
5007         Fix entries for (groff) ligatures, `la', and `ra'.
5009         * tmac/ps.tmac (ps-achar): New macro.
5010         Define "'c" and "'C".
5011         * tmac/tty.tmac: Add entry for `.i'.
5012         * tmac/X.tmac (X-achar): New macro.
5013         Define "'c", "'C", and `:Y'.
5014         Add entries for `IJ' and `ij'.
5015         * tmac/Xps.tmac (Xps-achar): New macro.
5016         Define "'c" and "'C".
5017         Add entries for `IJ' and `ij'.
5018         * tmac/lbp.tmac (lbp-achar): New macro.
5019         Add fallback characters for all groff ligatures and many other
5020         glyphs.
5021         * tmac/dvi.tmac: Fix definitions of `_' and `ul'.
5022         Add entries for `/l' and `/L'.
5023         Define "'c" and "'C".
5024         Add entries for `IJ' and `ij'.
5026 2002-11-02  Larry Kollar  <kollar@alltel.net>
5028         * PROBLEMS: Document how to solve Mac OS X compilation problems.
5030 2002-11-02  Werner LEMBERG  <wl@gnu.org>
5032         Adding support for composite glyphs: \[xxx yyy ...] and the
5033         `composite' request.
5035         * src/roff/troff/glyphuni.cc: New file for mapping groff glyph names
5036         to Unicode-based glyph names.
5037         * src/roff/troff/uniglyph.cc: New file for mapping Unicode-based
5038         glyph names to groff glyph names.
5039         * src/roff/troff/uniuni.cc: New file for canonically decomposing
5040         Unicode-based glyph names.
5041         * src/roff/troff/unicode.cc, src/roff/troff/unicode.h: New files
5042         for handling Unicode glyph names.
5043         * src/roff/troff/input.cc: Include unicode.h.
5044         (composite_glyph_name): New function.
5045         (token::next) <'['>: Handle Unicode glyph names and composite
5046         glyphs.
5047         (composite_dictionary): New dictionary for the `composite' request.
5048         (composite_request): Implement `composite' request.
5049         (init_input_requests): Add `composite'.
5050         Alphabetically sorted.
5051         * src/roff/troff/env.cc (tabs_save, tabs_restore): Removed (already
5052         commented out).
5053         (init_env_requests): Alphabetically sorted.
5054         Removed `tas' and `tar' (already commented out).
5055         * src/roff/troff/Makefile.sub: Updated.
5057 2002-10-31  Ruslan Ermilov  <ru@FreeBSD.org>
5059         * src/roff/nroff/nroff.man, src/roff/nroff/nroff.sh: Fix description
5060         of options.
5062 2002-10-29  Werner LEMBERG  <wl@gnu.org>
5064         Fix computation of .trunc register.  Additionally, its value (and
5065         the value of the .ne register) is now always set before entering the
5066         trap.
5068         * src/roff/troff/div.cc (diversion::need): Set `truncated_space' and
5069         `needed_space' before calling `space'.
5070         (top_level_diversion::space): Remove special code for 'sp before the
5071         first page.
5072         Call `begin_page' with the discarded space as a parameter.
5073         (top_level_diversion::begin_page): Add optional parameter to set
5074         `truncated_space'.
5075         * src/roff/troff/div.h: Updated.
5077         * doc/groff.texinfo: Improve documentation of .sp, \n[.trunc], and
5078         \n[.ne].
5080         * tmac/an-old.tmac (SH, SS, TP, IP, HP, TS): Undo change 2002-10-26.
5081         (LP): Remove superfluous call to `br'.
5082         * tmac/doc-common (doc-paragraph): Undo change 2002-10-26.
5083         * tmac/doc.tmac (Bd, Bl, doc-set-vertical-and-indent): Ditto.
5085 2002-10-26  Werner LEMBERG  <wl@gnu.org>
5087         * tmac/doc-ditroff: Remove useless switch/variable -rC.
5088         (doc-setup-header): Don't set page register `%'.
5089         * tmac/doc-nroff: Remove variable `C'.
5090         (doc-setup-page-layout): Set doc-header-space to .5i unconditionally.
5091         (doc-setup-header): Don't set page register `%'.
5092         Don't call `bp'.
5093         * tmac/doc-common (doc-header): Call `ns'.
5094         (doc-paragraph): Protect .sp with .br so that it survives traps
5095         possibly set by the user.
5096         * tmac/doc.tmac (Bd, Bl, doc-set-vertical-and-indent): Ditto.
5098         * tmac/doc*: Replace ' with . for consistency if no effect.
5100 2002-10-26  Werner LEMBERG  <wl@gnu.org>
5102         * tmac/an-old.tmac (SH, SS, TP, IP, HP, TS): Protect .sp with .br
5103         so that it survives traps possibly set by the user.
5105         * src/roff/troff/node.cc: Fix the changes from 2002-10-23.
5106         (troff_output_file::set_font): Call flush_tbuf if necessary.
5107         (troff_output_file::fill_color, troff_output_file::glyph_color): Call
5108         flush_tbuf and do_motion only if necessary.
5109         (troff_output_file::start_special,
5110         troff_output_file::put_char_width, troff_output_file::put_char,
5111         troff_output_file::draw): Updated.
5112         (word_space_node::tprint, space_node::tprint, hmotion_node::tprint,
5113         vmotion_node::tprint): Undo change 2002-10-23.
5115 2002-10-25  Werner LEMBERG  <wl@gnu.org>
5117         * tmac/www.tmac (DC): Fix case of overlapping images.
5119 2002-10-23  Werner LEMBERG  <wl@gnu.org>
5121         * src/roff/troff/node.cc (troff_output_file::fill_color,
5122         troff_output_file::glyph_color): Set current color before testing
5123         color_flag.
5124         (troff_output_file::put_char_width, troff_output_file::put_char,
5125         troff_output_file::draw): Don't call flush_tbuf and/or do_motion
5126         before glyph_color.
5127         (troff_output_file::file_color, troff_output_file::glyph_color):
5128         Call do_motion.
5129         (word_space_node::tprint, space_node::tprint, hmotion_node::tprint,
5130         vmotion_node::tprint): Move first, then call fill_color.
5132 2002-10-20  Werner LEMBERG  <wl@gnu.org>
5134         * doc/groff.texinfo, man/groff_tmac.man: Document that it is not
5135         possible to use multiple main macro packages.
5137 2002-10-19  Werner LEMBERG  <wl@gnu.org>
5139         * src/devices/grops/ps.cc (cmyk_flag): New global variable.
5140         (ps_printer::set_color): Set `cmyk_flag' for CMY and CMYK colors.
5141         (ps_printer::~ps_printer): Emit `%%Extensions: CMYK' if `cmyk_flag'
5142         is set.
5143         * font/devps/prologue.ps (Fk, Ck): Enclose definitions with a
5144         `where' construction since `cmyksetcolor' is a PS Level 2 operator.
5146 2002-10-16  Werner LEMBERG  <wl@gnu.org>
5148         * NEWS, doc/webpage.ms: Updated.
5150 2002-10-14  Werner LEMBERG  <wl@gnu.org>
5152         * src/roff/troff/node.cc (troff_output_file::put_char_width,
5153         troff_output_file::put_char, troff_output_file::fill_color,
5154         troff_output_file::glyph_color): Handle case where color pointer
5155         is null.
5157 2002-10-13  Ruslan Ermilov  <ru@FreeBSD.org>
5159         Add the new -r option to grotty.  It is similar to the -i option
5160         except it tells grotty(1) to use the "reverse video" attribute to
5161         render italic fonts.
5163         * src/devices/grotty/tty.cc (reverse_flag): New global variable.
5164         (SGR_REVERSE, SGR_NO_REVERSE): New macros.
5165         (tty_printer::make_underline, tty_printer::put_color,
5166         tty_printer::end_page): Use it.
5167         (main): Add -r switch.
5168         (usage): Updated.
5169         * src/devices/grotty/grotty.man: Document it.
5171 2002-10-11  Ruslan Ermilov  <ru@FreeBSD.org>
5173         * src/roff/troff/env.cc (hyphen_trie::read_patterns_file): Add
5174         cast to `unsigned char' to properly read patterns with 8bit
5175         characters.
5177 2002-10-08  Werner LEMBERG  <wl@gnu.org>
5179         * REVISION: Increased to 2.
5181 Local Variables:
5182 version-control: never
5183 coding: latin-1
5184 End: