* man/roff.man, doc/groff.texinfo: Improve history of roff, based on
[s-roff.git] / ChangeLog
blobfe3c6d879f2cfe33c99c1fe842346100a1442cc6
1 2006-11-18  Werner LEMBERG  <wl@gnu.org>
3         * man/roff.man, doc/groff.texinfo: Improve history of roff, based on
4         information from Tom Van Vleck <thvv@multicians.org>.
6 2006-11-16  Werner LEMBERG  <wl@gnu.org>
8         * tmac/62bit.tmac: New macro package.
9         * tmac/Makefile.sub (NORMALFILES): Add it.
10         * NEWS: Document it.
12         * tmac/trace.tmac: Protect against being loaded again.
13         (nr): Always show result.
15         * doc/groff.texinfo (Input Encodings): Document latin-5.
17         * man/grof_tmac.man: Document sv, latinX, cp1047, 60bit, ec.
19 2006-11-13  Werner LEMBERG  <wl@gnu.org>
21         * doc/groff.texinfo (Page Location Traps) [.wh]: Give more details
22         on negative trap positions.
24 2006-11-10  Werner LEMBERG  <wl@gnu.org>
26         * Makefile.comm (.man.n): Handle @DATASUBDIR@.
28 2006-11-09  Werner LEMBERG  <wl@gnu.org>
30         * INSTALL: Move information about external installation from
31         INSTALL.gen into this file.
32         Updated.
34         * INSTALL.gen: Update to new version (from texinfo CVS).
36 2006-11-09  Bernd Warken
38         * INSTALL.gen: Extent the file by information on `external
39         installation'.  Reorder the installation instruction as `normal
40         installation'. 
42 2006-11-08  Werner LEMBERG  <wl@gnu.org>
44         * doc/Makefile.sub (install_data): Take care of proper paths while
45         installing info files.  Bug reported by Bernd Warken.
47 2006-11-06  Bernd Warken
49         * src/roff/grog/grog.pl: Rewrite.
50         - Call by `#! /usr/bin/env perl'.  That isn't replaced.
51         - Rename usage() to version().
52         - Use warnings.
53         - For `use strict', start all global variables with an upper case
54         character.  Use `my' for all variables.  Use several new variables.
55         - Add option `-h'.
56         - Add copyright to GPL and Emacs comment.
57         - Handle several `-m*' options.
58         - Fix handling of `-ms' and `-mm'.  Add .TL and .NH.
59         - Allow options after file names.
60         - Allow only one `-' parameter (standard input).
61         - Add option abbreviations.
62         - Expand the usage information.
63         - Add `chem'.
64         - Add single quote "'" as additional first character and allow
65         arbitrary space after the first character.
67         * src/roff/grog/grog.sh: Rewrite.
68         - Remove option `-e' of `sed'.
69         - Allow file names with space characters.
70         - Add option `-h'.
71         - Add copyright to GPL.
72         - Handle several `-m*' options.
73         - Fix handling of `-ms' and `-mm'.  Add .TL and .NH.
74         - Allow options after file names.
75         - Allow only one `-' parameter (standard input).
76         - Add option abbreviations.
77         - Expand the usage information.
78         - Add `chem'.
79         - Add single quote "'" as additional first character and allow
80         arbitrary space after the first character.
82         * src/roff/grog/Makefile.sub:
83         - Add copyright to GPL.
84         - Remove `grog:'.  Move `grog.old:' to `grog:' in order to have a
85         fair chance to choose between the shell version and the Perl
86         version of `grog'.  This is now again comparable to grog in groff
87         version 1.10.
89         * src/roff/grog/grog.man: Rewrite.
90         - Move the license to GPL.
91         - New sections: OPTIONS, DETAILS, EXAMPLES, COPYING.
92         - Take over some setup and macros from `groffer'.
93         - Add information on options.
95 2006-10-28  Werner LEMBERG  <wl@gnu.org>
97         * tmac/trace.tmac: Improve tracing of `.nr'.
98         Trace `.substring' also.
100         * NEWS: Updated.
102 2006-10-28  Bernd Warken
104         * man/roff.man, src/roff/groff/groff.man: Add `chem', fix position
105         of groff development site, fix fonts.
107         * News: Add information on `chem' and `groffer'.
109 2006-10-26  Bernd Warken
111         * Makefile.in (OTHERDIRS, NOMAKEDIRS): Add `chem' bundle.
113 2006-10-26  Werner LEMBERG  <wl@gnu.org>
115         Add `\%^' escape to handle the parameters to a macro as a string
116         argument.
118         * src/roff/troff/input.h (DOUBLE_QUOTE): New special character.
120         * src/roff/troff/input.cpp (input_iterator, input_stack,
121         macro_iterator): Add `space_follows_arg' member function.
122         (macro_iterator::add_arg): Add parameter to set the `space_follows'
123         flag.
124         (arg_list): Add member `space_follows'.
125         Update constructor and all callers.
126         (decode_args): Store discarded double quotes.
127         (interpolate_args): Handle DOUBLE_QUOTE.
128         Add `\%^' escape.
129         (get_copy, token::next, composite_glyph_name): Handle DOUBLE_QUOTE.
131         * tmac/trace.tmac: Trace .nr, .ds, .ds1, .as, .as1.
133         * docs/groff.texinfo (Parameters), man/groff.man,
134         man/groff_diff.man, NEWS: Document it.
136 2006-10-24  Bernd Warken
138         * Makefile.in (NOMAKEDIRS): Add groffer subdirectories.
140 2006-10-24  Werner LEMBERG  <wl@gnu.org>
142         * tmac/groff_trace.man: Mention problem with `\\\\'.
144 2006-10-23  Werner LEMBERG  <wl@gnu.org>
146         * doc/groff.texinfo (Expressions): Improve documentation of `!'.
148         * tmac/trace.tmac (return): Don't call `substring'.
150 2006-09-10  Werner LEMBERG  <wl@gnu.org>
152         * src/roff/troff/input.cpp (read_size): Revert previous change
153         w.r.t. `\s-[-...]'.
155         * doc/groff.texinfo (Fractional Size Types): Clarify syntax of \s.
157 2006-09-09  Werner LEMBERG  <wl@gnu.org>
159         * src/roff/troff/input.cpp (read_size): Fix `\s[-\n[.s]]' so that it
160         behave the same as `\s-[\n[.s]]' (this is, emit a warning and set
161         point size to 1).  Reported by Gunnar Ritter.
162         Also catch `\s-[-...]' and friends (causing an error).
164 2006-09-06  Werner LEMBERG  <wl@gnu.org>
166         * src/roff/troff/env.cpp (environment::do_break): Insert zero-width
167         space only if there is no previous space.  This fixes a bug which
168         caused unwanted filling of the last line in a paragraph.  Thanks to
169         Gunnar Ritter for an analysis.
171 2006-09-03  Werner LEMBERG  <wl@gnu.org>
173         * src/roff/groff/groff.cpp (main): Pass -U flag to pic also.
174         Reported by Jennifer Sayers <jenjen@isu.usyd.edu.au>.
176 2006-09-01  Nick Stoughton  <nick@msbit.com>
177             Werner LEMBERG  <wl@gnu.org>
179         Add a request `pev' to print environment information (similar to
180         `pnr' and `ptr' to print number registers and traps).
182         * src/roff/troff/env.h (environment): Add member function print_env.
184         * src/roff/troff/env.cpp: (environment::print_env): New function to
185         print a given environment state.
186         (print_env): New global function to iterate through the
187         environments, printing each one.
188         (init_env_requests): Register `pev'.
190         * doc/groff.texinfo (Debugging), man/groff.man, man/groff_diff.man,
191         NEWS: Document `pev' request.
193 2006-09-01  Bernd Warken
195         * src/preproc/soelim/soelim.cpp (usage): Fix option argument of
196         `-I' to `dir'.
198 2006-09-01  Werner LEMBERG  <wl@gnu.org>
200         * src/preproc/pic/main.cpp (usage): Add missing options.
202 2006-08-25  Werner LEMBERG  <wl@gnu.org>
204         * src/preproc/soelim/soelim.man: Document how to insert `\' and ` '
205         in file names.
207 2006-08-19  Werner LEMBERG  <wl@gnu.org>
209         * configure: Regenerated.
211 2006-08-18  Keith Marshall  <keith.d.marshall@ntlworld.com>
213         * m4/groff.m4 (GROFF_MAKEINFO): Correct `makeinfo version testing
214         logic; it previously caused an `expr' syntax error, if no version of
215         `makinfo' was present.  Also, remove dependency on `makeinfo' in VPATH
216         builds, if an up to date `groff.info' is present in either `builddir'
217         or in `srcdir'.
219 2006-08-12  Tadziu Hoffmann  <hoffmann@usm.uni-muenchen.de>
221         * font/devps/prologue.ps: Add BPhook.
223         * src/devices/grops/grops.man: Document BPHook.
224         Reorder some sections for better readability.
226 2006-08-12  Werner LEMBERG  <wl@gnu.org>
228         * src/include/lib.h (getlocale): New macro.
229         (setlocale, LC_ALL, LC_CTYPE) [!HAVE_SETLOCALE]: Define, as
230         suggested by Bruno.
232         * src/preproc/preconv/preconv.cpp (main): Use getlocale.
234 2006-08-11  Werner LEMBERG  <wl@gnu.org>
236         Add new flag to .cflags to enable hyphenation without looking at
237         hcode values.
239         * src/roff/troff/charinfo.h (charinfo): New enumeration value
240         `IGNORE_HCODES'.
241         New member function `ignore_hcodes'.
243         * src/roff/troff/node.cpp (break_char_node::add_self,
244         node::add_char): Updated.
246         * doc/groff.texinfo, man/groff_diff.man, NEWS: Document it.
248 2006-08-09  Werner LEMBERG  <wl@gnu.org>
250         Support composite Unicode characters again.  Reported by Colin.
252         * font/devhtml/R.proto: Renamed to...
253         * font/devhtml/R.in: This.
255         * font/devutf8/R.proto: Renamed to...
256         * font/devutf8/R.in: This.
257         Add `charset' line.
259         * font/make-Rproto: New script.
260         * font/devhtml/R.proto, font/devutf8/R.proto: Generated.
262 2006-07-26  Werner LEMBERG  <wl@gnu.org>
264         * README: Fix description of CVS access.  Reported by Joachim.
266 2006-07-11  Werner LEMBERG  <wl@gnu.org>
268         Add a request `.fzoom' and a number register `.zoom' to magnify
269         fonts.
271         * src/include/font.h (font): Add member variable `zoom'.
272         Add member functions `set_zoom' and `get_zoom'.
273         Remove `static' attribute from `scale' member function.
275         * src/libs/libgroff/font.cpp (font::font): Updated.
276         (scale_round): New version with three parameters to handle zoom
277         factor.
278         (font::scale, font::get_width): Handle zoom factor.
279         (font::set_zoom, font::get_zoom): New functions.
280         (font::load): Handle `zoom' while computing `space_width'.
282         * src/roff/troff/env.h: Declare `env_get_zoom'.
283         (environment): Add member function `get_zoom'.
285         * src/roff/troff/env.cpp (environment::get_zoom): New function.
286         (init_env_requests): Initialize `.zoom' register.
288         * src/roff/troff/node.cpp (font_info): New member functions
289         `set_zoom' and `get_zoom'.
290         (tfont): New member function `get_zoom'.
291         (env_get_zoom): New function.
292         (troff_output_file::set_font): Handle zoom factor.
293         (font_zoom_request): New function.
294         (init_node_requests): Initialize `fzoom' request.
296         * docs/groff.texinfo (Changing Fonts), man/groff.man,
297         man/groff_diff.man, NEWS: Document `fzoom' request and `.zoom'
298         register.
300         * src/roff/troff/TODO: Updated.
302 2006-07-10  Werner LEMBERG  <wl@gnu.org>
304         * doc/groff.texinfo (Drawing Requests): Improve documentation of
305         \D'P ...'.
307 2006-07-02  Werner LEMBERG  <wl@gnu.org>
309         * man/groff_tmac.man: Document usage of .PSPIC within diversions.
311 2006-07-01  Werner LEMBERG  <wl@gnu.org>
313         * tmac/pspic.tmac: Make .PSPIC work for all devices.
314         Print image file name for devices which don't support PS image
315         inclusion.
316         Handle multiple inclusions.
317         Add lots of comments.
319         * tmac/dvi.tmac, tmac/html.tmac, tmac/ps.tmac: Don't load
320         pspic.tmac.
322         * tmac/troffrc: Load pspic.tmac.
324         * man/groff_tmac.man: Update .PSPIC documentation.
326         * NEWS: Updated.
328 2006-06-29  Werner LEMBERG  <wl@gnu.org>
330         * src/roff/troff/input.cpp (interpolate_macro):
331         s/probably/possibly/, as suggested by Keith.
333 2006-06-28  Werner LEMBERG  <wl@gnu.org>
335         Add support for \D'p...' to grotty.
337         * src/devices/grotty/grotty.cpp (tty_printer::draw): Move most of
338         its code to...
339         (tty_printer::line): This function.
340         (tty_printer::draw): Rewritten; just call either draw_line or
341         draw_polygon.
342         (tty_printer::draw_line, tty_printer::draw_polygon): New functions.
344         * src/devices/grotty/grotty.man, NEWS: Document it.
346 2006-06-27  Werner LEMBERG  <wl@gnu.org>
348         * src/preproc/refer/command.h (have_bibliography): New variable
349         declaration.
351         * src/preproc/refer/command.cpp (bibliography_command): Set
352         `have_bibliography'.
354         * src/preproc/refer/refer.cpp: Initialize `have_bibliography'.
355         (output_references): Emit warning only if `have_bibliography' is
356         set.
358 2006-06-15  Michail Vidiassov  <master@iaas.msu.ru>
360         * fonts/devps/Makefile.sub (DISTFILES): Add freeeuro.afm.
361         * fonts/devps/generate/Makefile (clean): Don't remove symbolsl.afm
362         and zapfdr.afm.
364 2006-06-15  Werner LEMBERG  <wl@gnu.org>
366         * src/preproc/tbl/tbl.man: Document limitations of .TS/.TE within a
367         macro (as suggested by Tadziu Hoffmann).
369 2006-06-12  Werner LEMBERG  <wl@gnu.org>
371         * src/preproc/tbl/tbl.man: Add example for use of .TS/.TE within a
372         macro (as suggested by Tadziu Hoffmann).
374 2006-06-05  Werner LEMBERG  <wl@gnu.org>
376         * tmac/strip.sed: Strip `\#' also.
378         * doc/groff.texinfo (Operators in Conditionals): Document usage of
379         \? for string comparison.
381 2006-06-04  Werner LEMBERG  <wl@gnu.org>
383         * doc/groff.texinfo: Add more index entries for copy-in mode.
384         (Changing Fonts) <.ft>: Document that a font definition file must
385         not be called `DESC'.
387 2006-05-31  Werner LEMBERG  <wl@gnu.org>
389         * src/roff/troff/input.cpp (token::next) <\N>: Catch negative values
390         here.
392         * doc/Makefile.sub (EXAMPLEFILES): Move gnu.eps to...
393         (PROCESSEDEXAMPLEFILES): Here.
395 2006-05-30  Werner LEMBERG  <wl@gnu.org>
397         * src/libs/libgroff/font.cpp (font::load): Reject fonts called
398         `DESC'.
399         Reduce number of false positives for `.if F ...' conditionals.
400         Improve warning messages.
402 2006-05-29  Werner LEMBERG  <wl@gnu.org>
404         * tmac/Makefile.sub: Add copyright notice.
405         (NORMALFILES): Add man.tmac and ms.tmac.
406         (SPECIALFILES): Remove man.tmac and ms.tmac.
407         (CLEANADD): Remove man.tmac-sed and ms.tmac-sed.
408         (install_data, uninstall_sub): Don't handle man.tmac and ms.tmac
409         specially.
410         (stamp-sed): Don't handle man.tmac and ms.tmac.
411         Remove obsolete components in sed's regexp.
413         * doc/Makefile.sub (EXAMPLEFILES): Add gnu.eps.
415         * Makefile.in (OTHERDIRS, NOMAKEDIRS): Add hdtbl.
417 2006-05-28  Werner LEMBERG  <wl@gnu.org>
419         * doc/groff.texinfo (History): Correct death circumstances of Joe
420         Ossanna.
422 2006-05-27  Werner LEMBERG  <wl@gnu.org>
424         * tmac/an-old.tmac (an-do-tag): Simplify.
426 2006-05-26  Werner LEMBERG  <wl@gnu.org>
428         * tmac/an-old.tmac (an-do-tag): Make margin characters work.
429         (an-header, an-p-footer): Use named environment.
431         * src/roff/troff/env.cpp (environment::copy): Copy margin character
432         node.
434 2006-05-21  Werner LEMBERG  <wl@gnu.org>
436         * tmac/trace.tmac (de1): Fix serious typo (.di -> .do) and minor
437         omissions.
439 2006-05-11  Keith Marshall  <keith.d.marshall@ntlworld.com>
441         * src/roff/groff/groff.man: Remove superfluous word `intermediate'.
443 2006-05-10  Keith Marshall  <keith.d.marshall@ntlworld.com>
445         * src/roff/groff/groff.man: Update copyright notice.
446         Improved wording to describe effect of `-Z' option.
448 2006-05-06  Werner LEMBERG  <wl@gnu.org>
450         * tmac/www.tmac: Decorate `.ds' with trailing `\"' where missing.
451         Normalize handling of `"' in arguments.
452         (PIMG): Remove debug message.
453         Simplify code.
455 2006-05-05  Werner LEMBERG  <wl@gnu.org>
457         * src/devices/grohtml/post-html.cpp (page::add_and_encode): Don't
458         swallow character immediately after `\[...]'.
459         Simplify code.
461 2006-05-02  Gaius Mulley  <gaius@glam.ac.uk>
463         * tmac/www.tmac (PIMG): Fix the HTML device specific components.
465 2006-05-02  Larry Kollar  <kollar@alltel.net>
467         * tmac/www.tmac (PIMG): Really default to `-C' if the alignment
468         option is missing.
470 2006-04-30  Michail Vidiassov  <master@iaas.msu.ru>
472         * src/utils/afmtodit/afmtodit.pl: New option `-c' to add font
473         information as a comment in output.
474         * src/utils/afmtodit/afmtodit.man, NEWS: Document it.
476 2006-04-26  Werner LEMBERG  <wl@gnu.org>
478         * src/devices/grohtml/post-html.cpp (html_printer::~html_printer):
479         Handle current_paragraph only if it is non-NULL.
481         * src/libs/libdriver/input.cpp (parse_x_command <'F'>, do_file
482         <'F'>): Use `get_extended_arg' to behave as documented.  Reported by
483         Bill Ward <william.a.ward.jr@erdc.usace.army.mil>.
486         Surround the (pseudo) file name for the .pso request with `<' and
487         `>'.
489         * src/roff/troff/node.cpp (real_output_file, troff_output_file): Add
490         second parameter to `really_put_filename' and `put_filename'.
491         (troff_output_file::really_put_filename): Emit `<' and `>' around
492         filename if second argument is set.
493         * src/roff/troff/node.h: Updated.
495         * src/roff/troff/input.cpp (file_iterator::file_iterator,
496         file_iterator::set_location): Update to changes in node.cpp.
498 2006-04-25  Tetsurou Okazaki  <okazaki@FreeBSD.org>
500         * src/preproc/preconv/preconv.cpp (do_file): Fix conditional
501         preprocessor expression (I18N -> HAVE_ICONV).
502         (main): Fix handling of option `-h'.
503         Fix conditional preprocessor expression.
505 2006-04-04  Werner LEMBERG  <wl@gnu.org>
507         Implement new number register `.br' which is set to 1 if a macro has
508         been called as .foo and to 0 if called as 'bar.  This is useful for
509         -mtrace so that requests can be reliably traced too.
511         * src/roff/troff/input.cpp (input_iterator): Add virtual function
512         `get_break_flag'.
513         (macro_iterator): Add `with_break' member and `get_break_flag'
514         function.
515         Update constructors.
516         (input_stack): Add function `get_break_flag'.
517         (break_flag_reg): New number register class.
518         (input_init_requests): Register `.br'.
520         * src/roff/troff/TODO: Updated.
522         * tmac/trace.tmac: s/!!sp/!!!sp/.
523         Modify definitions of `de', `de1', `am', and `am1' to use \n[.br].
525         * docs/groff.texinfo (Requests), man/groff.man, man/groff_diff.man,
526         NEWS: Document it.
528 2006-03-29  Werner LEMBERG  <wl@gnu.org>
530         * src/devices/grops/ps.cpp: s/must not/should not/ in warning
531         messages where appropriate.
533 2006-03-28  Werner LEMBERG  <wl@gnu.org>
535         * configure.ac: Call AC_PROG_EGREP.
536         * configure: Regenerated.
538         * Makefile.in (EGREP): New variable.
539         (MDEFINES): Add $(EGREP).
541         * src/roff/grog/grog.sh: Treat .TH between .TS and .TE properly
542         (bug reported by Robert Goulding <Goulding.2@nd.edu>).
543         Use @EGREP@.
545         * src/roff/grog/Makefile.sub (grog, grog.old): Use $(EGREP).
547 2006-03-27  Werner LEMBERG  <wl@gnu.org>
549         Add two requests `.device' and `.devicem' which are equivalent to
550         `\X' and `\Y', respectively.
552         * src/roff/troff/input.cpp (device_request, device_macro_request):
553         New functions.
554         (init_input_requests): Register them.
556         * doc/groff.texinfo (Postprocessor Access), man/groff_diff.man,
557         man/groff.man, NEWS: Document them.
559 2006-03-27  Gaius Mulley  <gaius@glam.ac.uk>
561         * src/roff/troff/input.cpp (encode_char): Emit special characters
562         for -Thtml as `\[...]'.
563         * src/devices/grohtml/post-html.cpp (page::add_and_encode): Updated.
565         * doc/groff.texinfo (Postprocessor Access) <\X>: Updated.
567 2006-03-27  Werner LEMBERG  <wl@gnu.org>
569         * tmac/Makefile.sub (NORMALFILES, SPECIALFILES): Add various missing
570         files.
572 2006-03-26  Werner LEMBERG  <wl@gnu.org>
574         * doc/groff.texinfo (Writing Macros): More documentation on
575         end-of-macro symbol of `.de'.
576         (Diversions): Minor addition to `.di' description.
578         * src/devices/grops/grops.man: Some clarifications regarding
579         insertion of PostScript snippets.
581 2006-03-25  Michail Vidiassov  <master@iaas.msu.ru>
583         Add rules to generate `symbolsl.afm'.
585         * fonts/devps/generate/zapfdr.sed,
586         fonts/devps/generate/symbolsl.awk: New files.
588         * fonts/devps/generate/Makefile (symbolfont, PRINTAFM): New
589         variables.
590         (SS, clean): Updated.
591         (freeeuro.afm): Use $(srcdir).
592         (symbolsl.afm): New rule.
593         (zapfdr.afm): Use zapfdr.sed.
595 2006-03-22  Dwight Aplevich  <aplevich@uwaterloo.ca>
597         * src/preproc/pic/pic.y (expr <INT>): Fix code.
599 2006-03-22  Jörgen Grahn <jgrahn@algonet.se>
601         * tmac/sv.tmac: Add missing translations and activate support for
602         other macro packages.
604 2006-03-21  Francis GUDIN  <fgudin@nerim.net>
606         * tmac/doc-syms (Dx): New macro to identify DragonFly.
607         (doc-str-St--ieee1275-94, doc-str-St--isoC-amd1,
608         doc-str-St--isoC-tcor1, doc-str-St--isoC-tcor2): New standard
609         strings.
610         (doc-operating-system-FreeBSD-5.5, doc-operating-system-FreeBSD-7.0,
611         doc-operating-system-NetBSD-1.6.3, doc-operating-system-NetBSD-4.0
612         doc-operating-system-DragonFly-*): New operating system strings.
614         * tmac/groff_mdoc.man, NEWS: Document `Dx'.
616 2006-03-21  Werner LEMBERG  <wl@gnu.org>
618         * src/preproc/pic/pic.y (object_spec THEN): For compatibility with
619         both DWB pic and dpic, make
621           right;
622           line then down;
624         equal to
626           right;
627           line right then down;
629         instead of
631           right;
632           line 0 then down;
634         * doc/pic.ms: Document this.
636 2006-03-20  Werner LEMBERG  <wl@gnu.org>
638         * doc/pic.ms: With permission of Eric Raymond, put it under the
639         GPL.
641         * NEWS: Updated.
643 2006-03-19  Werner LEMBERG  <wl@gnu.org>
645         * src/preproc/pic/pic.y (expr <INT>): Really return integer part.
647         * src/preproc/pic/objects.cpp (object_spec::make_line): Handle `at'
648         attribute in combination with `with'.  Bug reported by Jennifer
649         Sayers <jenjen@mail.usyd.edu.au>.
651 2006-03-19  Miklos Somogyi  <msom@netspace.net.au>
653         * doc/groff.texinfo (Manipulating Spacing): Improve documentation of
654         `.sp'.
656 2006-03-18  Werner LEMBERG  <wl@gnu.org>
658         * LICENSE: Renamed to...
659         * LICENSES: This.  Collect all licensing information in this file.
660         * tmac/README, src/libs/snprintf/README: Removed.
662         * src/devices/grops/grops.man: Add section how to install fonts.
664         * src/utils/xtotroff/xtotroff.c: Add GPL.
666 2006-03-17  Werner LEMBERG  <wl@gnu.org>
668         * Makefile.comm (.y.cpp): Fix #line arguments in output.
670 2006-03-13  Werner LEMBERG  <wl@gnu.org>
672         * src/preproc/tbl/tbl.man: Mention default length of text blocks.
674         * tmac/doc-common (Os): Add more Darwin versions.
675         * tmac/groff_mdoc.man: Document them.
677         * doc/groff.texinfo (Operators in Conditionals): Mention that `c'
678         works with \N'...' also.
679         * man/groff_diff.man: Ditto.  Remove use of future tense where
680         possible.
682 2006-03-12  Michail Vidiassov  <master@iaas.msu.ru>
684         * fonts/devps/generate/make-zapfdr, fonts/devps/symbolsl.ps,
685         fonts/devps/zapfdr.ps: Add `%%EndComments' line.
687 2006-03-10  Larry Kollar  <kollar@alltel.net>
689         * doc/groff.texinfo (Headers and footers): Document PT, HD, and BT.
691 2006-03-10  Werner LEMBERG  <wl@gnu.org>
693         * src/devices/grops/ps.cpp (ps_printer::do_exec, ps_printer::do_def,
694         ps_printer::do_mdef): Overlong lines now cause a warning message,
695         not an error.
697 2006-03-09  Werner LEMBERG  <wl@gnu.org>
699         * font/devps/generate/make-zapfdr: New script for generating
700         `zapfdr.ps'.
702 2006-03-08  Werner LEMBERG  <wl@gnu.org>
704         * doc/groff.css (pre): Fix `background-color' value.
706 2006-03-04  Larry Kollar  <kollar@alltel.net>
708         * tmac/groff_ms.man: Document PT, HD, and BT.
710 2006-03-04  Werner LEMBERG  <wl@gnu.org>
712         * src/roff/troff/node.cpp (make_glyph_node): Improve warning message
713         for single-letter glyph names.
715 2006-03-02  Werner LEMBERG  <wl@gnu.org>
717         * tmac/sv.tmac: New file; currently holding only the Swedish strings
718         for -mm.
719         * tmac/hyphen.sv: New hyphenation pattern file for Swedish, taken
720         from CTAN.
721         * tmac/README: Updated.
723 2006-02-27  Werner LEMBERG  <wl@gnu.org>
725         * tmac/trans.tmac (Liec, Letdate, Letns!14): Add it (for -mm).
726         * tmac/fr.tmac: Add French translations.
728         * tmac/composite.tmac: Add entry for `:'.
730 2006-02-26  Werner LEMBERG  <wl@gnu.org>
732         * doc/Makefile.sub (HTMLEXAMPLEFILESALL): New variable.
733         (CLEANADD): Use it.
734         (install_html, uninstall_sub): Updated.
736 2006-02-26  Bruno Haible  <bruno@clisp.org>
738         Introduce Unicode fonts.
740         * font/devhtml/DESC.proto: Mark as unicode.
741         * font/devhtml/R.proto: Remove all charset entries that are already
742         in glyphuni.cpp.
743         * font/devutf8/DESC.proto: Mark as unicode.
744         * font/devutf8/R.proto: Remove all charset entries.
745         * src/include/font.h (font): New static field `is_unicode'.
746         Change order of fields.
747         * src/libs/libgroff/font.cpp: Include unicode.h.
748         (font::font): Update for changed order of fields.
749         (font::contains, font::get_width, font::get_height, font::get_depth,
750         font::get_italic_correction, font::get_left_italic_correction,
751         font::get_subscript_correction, font::get_character_type,
752         font::get_code, font::get_special_device_encoding): Handle both the
753         explicitly enumerated glyphs and use general code for Unicode fonts.
754         (font::load): Make the charset section optional when the font is
755         declared unicode.
756         (font::load_desc): Recognize the `unicode' attribute.
757         * src/libs/libgroff/fontfile.cpp (font::is_unicode): New variable.
759 2006-02-26  Claudio Fontana  <claudio@gnu.org>
761         * Makefile.in: Add comment about DESTDIR.
763         * Makefile.sub: Add DESTDIR to install and uninstall targets
764         to support staged installations.
765         * Makefile.comm: Likewise.
766         * doc/Makefile.sub: Likewise.
767         * contrib/eqn2graph/Makefile.sub: Likewise.
768         * contrib/gdiffmk/Makefile.sub: Likewise.
769         * contrib/grap2graph/Makefile.sub: Likewise.
770         * contrib/pic2graph/Makefile.sub: Likewise.
771         * src/devices/xditview/Makefile.sub: Likewise.
772         * src/preproc/eqn/Makefile.sub: Likewise.
773         * src/roff/grog/Makefile.sub: Likewise.
774         * src/roff/nroff/Makefile.sub: Likewise.
775         * src/utils/afmtodit/Makefile.sub: Likewise.
776         * src/utils/indxbib/Makefile.sub: Likewise.
777         * tmac/Makefile.sub: Likewise.
779 2006-02-24  Werner LEMBERG  <wl@gnu.org>
781         * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list): Use entry
782         for \-.
783         Remove commented out entries for \' and \` (there are no such glyph
784         names).
786         * src/libs/libgroff/uniglyph.cpp (unicode_to_glyph_list): Remove
787         commented out entries for \' and \`.
790         * */*: s/legal/valid/ where appropriate.
792 2006-06-23  Werner LEMBERG  <wl@gnu.org>
794         * font/devhtml/R.proto, font/devutf8/R.proto: Remove incorrect \'
795         and \` entries.
797 2006-02-22  Werner LEMBERG  <wl@gnu.org>
799         Remove all remaining traces from the `shc' glyph.
801         * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list),
802         src/libs/libgroff/uniglyph.cpp (unicode_to_glyph_list): Remove
803         entry for `shc'.
805         * font/devlatin1/R.proto, font/devcp1046/R.proto: Replace `shc'
806         entry with unnamed glyph.
808         * tmac/html/tmac: Remove `shc' entry from call to `.cflags'.
810         * src/preproc/preconv/preconv.cpp (unicode_entity): Handle U+00AD
811         specially.
813 2006-02-22  Bruno Haible  <bruno@clisp.org>
815         Concretize the `glyph' datatype.
817         * src/include/font.h (glyph): Remove class.
818         (glyph): Renamed from struct `glyphinfo'.
819         (glyph_to_index): New inline function.
820         (glyph_to_name): Make extern, not inline.
821         (glyph_to_number): Update.
822         (font): Use `glyph *' instead of `glyph'.
824         * src/libs/libgroff/nametoindex.cpp (charinfo): Inherit from class
825         `glyph'.  Make `name' field public.
826         (character_indexer, number_to_glyph, name_to_glyph): Use `glyph *'
827         instead of `glyph'.
828         (glyph_to_name): Renamed from `glyph::glyph_name'.
830         * src/roff/troff/charinfo.h (charinfo): Inherit from class `glyph'.
831         Use `glyph *' instead of `glyph'.
833         * src/roff/troff/input.cpp (name_to_glyph, number_to_glyph): Use
834         `glyph *' instead of `glyph'.
835         (glyph_to_name): Renamed from `glyph::glyph_name'.
837         * src/libs/libgroff/font.cpp: Use `glyph *' instead of `glyph',
838         and `glyph_to_index' instead of `glyph::glyph_index'.
840         * src/include/printer.h (printer): Use `glyph *' instead of `glyph'.
841         * src/libs/libdriver/printer.cpp: Likewise.
842         * src/devices/grodvi/dvi.cpp: Likewise.
843         * src/devices/grohtml/post-html.cpp: Likewise.
844         * src/devices/grolbp/lbp.cpp: Likewise.
845         * src/devices/grolj4/lj4.cpp: Likewise.
846         * src/devices/grops/ps.cpp: Likewise.
847         * src/devices/grotty/tty.cpp: Likewise.
849 2006-02-22  Werner LEMBERG  <wl@gnu.org>
851         * font/devdvi/generate/tc.map: Add `sr' glyph.
852         * font/devdvi/*TC: Regenerated.
854         * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list): Use entry
855         for `sqrt'.
857 2006-02-21  Werner LEMBERG  <wl@gnu.org>
859         * man/groff_char.man: Explain `***' marker.
861 2006-02-17  Bruno Haible  <bruno@clisp.org>
863         * src/libs/libgroff/nametoindex.cpp (character_indexer): Rename
864         methods and fields from *_index to *_glyph.
865         (character_indexer::named_char_glyph): Test for `charNNN' name
866         here...
867         (name_to_glyph): ... not here.
869 2006-02-17  Bruno Haible  <bruno@clisp.org>
871         * src/include/font.h (name_to_glyph): Renamed from
872         font::name_to_index.
873         (number_to_glyph): Renamed from font::number_to_index.
874         (glyph_to_name): Renamed from font::index_to_name.
875         (glyph_to_number): Renamed from font::index_to_number.
876         * src/libs/libgroff/nametoindex.cpp: Likewise.
877         * src/roff/troff/charinfo.h (charinfo::as_glyph): Renamed from
878         charinfo::get_index.
880         * src/roff/troff/input.cpp: All callers changed.
881         * src/roff/troff/node.cpp: Likewise.
882         * src/libs/libgroff/font.cpp: Likewise.
883         * src/devices/grops/ps.cpp: Likewise.
884         * src/devices/grohtml/post-html.cpp: Likewise.
885         * src/libs/libdriver/printer.cpp: Likewise.
887 2006-02-17  Werner LEMBERG  <wl@gnu.org>
889         * src/include/ptable.h, src/include/itable.h
890         (NEXT_PTABLE_SIZE_DEFINED): Use it to avoid multiple declaration
891         of external symbol `next_ptable_size' (used by both header files).
893 2006-02-15  Bruno Haible  <bruno@clisp.org>
895         * src/include/font.h (glyphinfo): New class.
896         (glyph): Change internal representation.
897         Change constructor signature.
898         New method glyph::glyph_number().
899         (glyph::glyph, glyph glyph::undefined_glyph, glyph::glyph_index,
900         glyph::operator==, glyph::operator!=): Update.
901         (font::index_to_name, font::index_to_number): New functions.
903         * src/include/itable.h: New file, based on src/include/ptable.h.
905         * src/libs/libgroff/nametoindex.cpp: Include itable.h.
906         (class charinfo): New class.
907         (class character_indexer): Change table result type from `int' to
908         `class charinfo'.
909         Add table with integer key.
910         (character_indexer::character_indexer): Update.
911         (character_indexer::ascii_char_index): Update.
912         (character_indexer::numbered_char_index): Use NULL as name, not a
913         string starting with a space.
914         (character_indexer::named_char_index): Update.
915         (font::number_to_index, font::name_to_index): Remove no-op cast.
916         (glyph::glyph_name): New method.
917         * src/roff/troff/charinfo.h (class charinfo): Inherit from class
918         glyphinfo.
919         (NUMBERED): Remove flag bit.
920         (charinfo::numbered, charinfo::get_index): Update.
922         * src/roff/troff/input.cpp (charinfo::charinfo): Update.
923         (charinfo::set_number, charinfo::get_number): Update.
924         (glyph::glyph_name): New method.
926 2006-02-15  Werner LEMBERG  <wl@gnu.org>
928         * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list): Fix
929         entries for `>>', `<<', `*f', and `+f'.  Reported by Bruno.
931 2006-02-13  Werner LEMBERG  <wl@gnu.org>
933         * font/devps/prologue.ps (RE): Check `UniqueID' also, similar to
934         dvips.
936 2006-02-11  Werner LEMBERG  <wl@gnu.org>
938         * src/include/font.h: s/glyph_t/glyph/.
939         Update all callers.
941         * src/devices/grotty/tty.cpp: s/glyph/tty_glyph/.
942         s/output_character_t/output_character/.
944 2006-02-11  Bruno Haible  <bruno@clisp.org>
946         New accessor method glyph_t::glyph_name().
948         * src/include/ptable.h (declare_ptable): Add a return value to the
949         `define' method, and declare a `lookupassoc' method.
950         (implement_ptable): Return the stored key in `define'.  Implement
951         lookupassoc.
952         * src/include/font.h (glyph_t): Add `name' field.  Add an argument
953         to the constructor.
954         (glyph_t::glyph_name): New method.
956         * src/libs/libgroff/nametoindex.cpp (character_indexer): Change
957         return type of methods and field member type to glyph_t.
958         (character_indexer::character_indexer): Update.
959         (character_indexer::ascii_char_index): Allocate a name for the
960         glyph.
961         Return a glyph_t with name.
962         (character_indexer::numbered_char_index): Return a glyph_t without a
963         name.
964         (character_indexer::named_char_index): Return a glyph_t with a name.
965         (font::number_to_index, font::name_to_index): Update.
967         * src/roff/troff/input.cpp (charinfo::charinfo): Use the symbol as
968         the glyph's name.
970 2006-02-11  Bruno Haible  <bruno@clisp.org>
972         * src/devices/grotty/tty.cpp (output_character_t): New type.
973         (tty_printer::make_bold, tty_printer::add_char,
974         tty_printer::put_char): Change argument type to output_character_t.
975         (crossings): Change element type to output_character_t.
977 2006-02-11  Bruno Haible  <bruno@clisp.org>
979         Make the glyph data type abstract.
981         * src/include/font.h (glyph_t): New class.
982         (name_to_index, number_to_index): Change return type to glyph_t.
983         (font::contains, font::get_width, font::get_height, font::get_depth,
984         font::get_character_type, font::get_kern, font::get_skew,
985         font::get_italic_correction, font::get_left_italic_correction,
986         font::get_subscript_correction, font::get_code,
987         font::get_special_device_encoding, font::add_entry,
988         font::copy_entry, font::add_kern, font::hash_kern): Change argument
989         type to glyph_t.
991         * src/libs/libgroff/font.cpp (font_kern_list): Change members
992         type and constructor argument types to glyph_t.
993         (font::contains, font::get_width, font::get_height, font::get_depth,
994         font::get_character_type, font::get_kern, font::get_skew,
995         font::get_italic_correction, font::get_left_italic_correction,
996         font::get_subscript_correction, font::get_code,
997         font::get_special_device_encoding, font::add_entry,
998         font::copy_entry, font::add_kern, font::hash_kern): Change argument
999         type to glyph_t.
1000         (font::load): Use glyph_t variables.
1002         * src/libs/libgroff/nametoindex.cpp (name_to_index,
1003         number_to_index): Change return type to glyph_t.
1005         * src/roff/troff/charinfo.h (charinfo::index): Change type to
1006         glyph_t.
1007         (charinfo::get_index): Change return type to glyph_t.
1009         * src/roff/troff/env.cpp: Include font.h.
1011         * src/roff/troff/node.cpp: Include font.h before charinfo.h.
1013         * src/roff/troff/input.cpp: Include font.h before charinfo.h.
1014         (charinfo::charinfo): Update.
1015         (name_to_index, number_to_index): Change return type to glyph_t.
1017         * src/include/printer.h (printer::set_char_and_width): Change return
1018         type to glyph_t.
1020         * src/libs/libdriver/printer.cpp (printer::set_char_and_width):
1021         Change return type to glyph_t.
1023         * src/devices/grodvi/dvi.cpp (dvi_printer::set_char): Change
1024         argument type to glyph_t.
1026         * src/devices/grohtml/post-html.cpp (page::add_and_encode): Update.
1027         (html_printer::space_glyph): Renamed from space_char_index.
1028         (html_printer::add_to_sbuf, html_printer::sbuf_continuation,
1029         html_printer::overstrike, html_printer::set_char): Change argument
1030         type to glyph_t.
1031         (html_printer::set_char_and_width): Change return type to glyph_t.
1033         * src/devices/grolbp/lbp.cpp (lbp_printer::set_char): Change
1034         argument type to glyph_t.
1036         * src/devices/grolj4/lj4.cpp (lj4_printer::set_char): Change
1037         argument type to glyph_t.
1039         * src/devices/grops/ps.cpp (ps_printer::space_glyph): Renamed from
1040         space_char_index.
1041         (ps_printer::set_subencoding, ps_printer::set_char): Change argument
1042         type to glyph_t.
1044         * src/devices/grotty/tty.cpp (tty_printer::set_char): Change
1045         argument type to glyph_t.
1047 2006-02-11  Bruno Haible  <bruno@clisp.org>
1049         * src/roff/troff/input.cpp (font::name_to_index): Never return a
1050         negative value.
1052         * src/libs/libgroff/font.cpp (font::load): Remove failure tests for
1053         font::name_to_index.
1055 2006-02-10  Werner LEMBERG  <wl@gnu.org>
1057         * doc/groff.texinfo (Assigning Formats): Number registers are always
1058         interpolated.
1059         Apply some rephrasing, contributed by Michael Burt.
1061 2006-02-07  Werner LEMBERG  <wl@gnu.org>
1063         * tmac/fr.tmac <ms>: Set `HY' register.
1065 2006-02-07  Werner LEMBERG  <wl@gnu.org>
1067         Add framework for simple adaptation of the main macro packages (mm,
1068         me, ms, mom) to different locales.  In particular, add support for
1069         French.  For activation, simply use `-mfr' as the last macro
1070         package.  This feature has been contributed by Fabrice Ménard
1071         <menard.fabrice@wanadoo.fr>.
1073         * tmac/fr.tmac, tmac/trans.tmac, tmac/hyphen.fr, tmac/LOCALIZATION:
1074         New files.
1075         * tmac/README: Mention hyphen.fr.
1076         * man/groff_tmac.man: Mention fr.tmac.
1077         * NEWS: Updated.
1079 2006-01-27  Werner LEMBERG  <wl@gnu.org>
1081         * man/groff_font.man: Updated documentation of `entity_name' field.
1082         Avoid future tense.
1084 2006-01-27  Bruno Haible  <bruno@clisp.org>
1086         * font/devhtml/R.proto: Remove the entity names from the font's
1087         special_encoding_encoding column.
1088         * src/devices/grohtml/post-html.cpp (get_html_entity): New function,
1089         handling the entity names here.
1090         (get_html_translation): Use it.  Change return type to `const
1091         char *'.
1092         (page::add_and_encode): Update, removing a useless cast.
1094 2006-01-26  Werner LEMBERG  <wl@gnu.org>
1096         This change is based on a patch by Bruno Haible <bruno@clisp.org>.
1098         * src/include/device.h: Add comments.
1099         * src/include/font.h: Add comments.
1100         * src/include/unicode.h: Likewise.
1101         * src/include/ptable.h, src/libs/libgroff/ptable.cpp: Likewise.
1103 2006-01-26  Keith Marshall  <keith.d.marshall@ntlworld.com>
1105         Suppress `.st' request emission by `grn'.
1107         * src/preproc/grn/main.cpp (USE_ST_REQUEST): New macro.
1108         (conv): Use it.
1110 2006-01-22  Werner LEMBERG  <wl@gnu.org>
1112         * install-sh: New version; taken from texinfo CVS.
1114 2006-01-21  Werner LEMBERG  <wl@gnu.org>
1116         * src/preproc/preconv/preconv.cpp (main): Set program_name.  Bug
1117         reported by Alexander E. Patrakov <patrakov@ums.usu.ru>.
1119 2006-01-19  Bruno Haible  <bruno@clisp.org>
1121         Let `make -k install' install more files.
1123         * Makefile.in (MAKE_K_FLAG): New variable.  Use it everywhere where
1124         $(MAKE) and $(MDEFINES) are used.
1125         (CPROGDIRS): Remove $(XPROGDIRS).  Treat $(XPROGDIRS) like
1126         $(CPROGDIRS) everywhere.
1127         ($(DEVDIRS) $(XDEVDIRS) $(OTHERDEVDIRS) $(TTYDEVDIRS)): Don't depend
1128         on $(XPROGDIRS).
1129         ($(OTHERDIRS)): Likewise.
1132         * src/devices/grohtml/post-html.cpp (get_html_translation): Remove
1133         failure test for font::name_to_index -- it can never fail.
1135 2006-01-19  Werner LEMBERG  <wl@gnu.org>
1137         * src/devices/grops/grops.man: Fix section on creating EPS files.
1138         Don't use future time in manual.
1139         Other minor fixes.
1141 2006-01-15  Gaius Mulley  <gaius@glam.ac.uk>
1143         * tmac/www.tmac: New macro LINKSTYLE which allows users to set
1144         various typographical URL attributes for non-HTML devices.
1146         * tmac/groff_www.man: Document LINKSTYLE.
1148 2006-01-11  Werner LEMBERG  <wl@gnu.org>
1150         * configure.ac: Test for getc_unlocked (needed for localcharset).
1151         * configure, src/include/config.hin: Regenerated.
1153         * src/libs/libgroff/Makefile.sub (EXTRA_CFLAGS): Define
1154         ENABLE_RELOCATABLE.
1156         * src/libs/libgroff/relocatable.h: New dummy header file for
1157         localcharset.c.
1159         * src/libs/libgroff/localcharset.c: Updated to (unchanged) CVS
1160         gnulib version.
1162 2006-01-10  Bruno Haible  <bruno@clisp.org>
1164         Work around unportability of nl_langinfo(CODESET).
1166         * m4/glibc21.m4: New file, from gnulib.
1167         * Makefile.sub (M4MACROS): Add m4/glibc21.m4.
1168         * configure.ac: Also test for stddef.h, and invoke jm_GLIBC21.
1169         * Makefile.in (HOST, GLIBC21): New variables.
1170         (MDEFINES): Pass them to subdirectories.
1171         * src/include/relocate.h (relocatep): Define with C linkage.
1172         * src/include/localcharset.h: New file, from gnulib.
1173         * src/libs/libgroff/localcharset.c: New file, from gnulib with a
1174         modification for relocate().
1175         * src/libs/libgroff/config.charset: New file, from gnulib.
1176         * src/libs/libgroff/ref-add.sin: New file, from gnulib.
1177         * src/libs/libgroff/ref-del.sin: New file, from gnulib.
1178         * src/libs/libgroff/Makefile.sub (EXTRA_CFLAGS): Also define LIBDIR.
1179         (OBJS): Add localcharset.o.
1180         (CSRCS): Add localcharset.c.
1181         (all): Add dependencies to charset.alias, ref-add.sed, ref-del.sed.
1182         (charset.alias): New rule.
1183         (PACKAGE): New variable.
1184         (ref-add.sed, ref-del.sed): New rules.
1185         (MKINSTALLDIRS): New variable.
1186         (install_data): Depend on install_charset_data.
1187         (install_charset_data): New rule for creating or updating
1188         charset.alias.
1189         (uninstall_sub): Depend on uninstall_charset_data.
1190         (uninstall_charset_data): New rule for uninstalling or updating
1191         charset.alias.
1192         * src/preproc/preconv/preconv.cpp: Include localcharset.h instead
1193         of <langinfo.h>.
1194         (main): Initialize default_encoding from locale_charset() instead of
1195         nl_langinfo(CODESET).
1197         * aclocal.m4, configure, src/include/config.hin: Regenerated.
1199 2006-01-10  Werner LEMBERG  <wl@gnu.org>
1201         * src/preproc/preconv/preconv.cpp (conversion_iconv): Use
1202         ICONV_CONST in call to iconv.  Reported by Robert Goulding.
1204 2006-01-07  Werner LEMBERG  <wl@gnu.org>
1206         * fonts/devps/generate/freeeuro.sfd: Run auto-hinter with recent
1207         fontforge version.
1208         Bump font version to 001.001.
1210         * fonts/devps/generate/Makefile (freeeuro.afm, freeeuro.pfa):
1211         Call fontforge, not pfaedit.
1213         * fonts/devps/freeeuro.afm, fonts/devps/freeeuro.pfa: Regenerated.
1215 2006-01-05  Ruslan Ermilov  <ru@FreeBSD.org>
1217         * tmac/doc-common: Add new FreeBSD and NetBSD versions.
1218         * tmac/groff_mdoc.man: Updated.
1220 2006-01-05  Werner LEMBERG  <wl@gnu.org>
1222         * src/preproc/preconv/preconv.cpp: s/debug/debug_flag/.
1223         (raw_flag): New global variable.
1224         (do_file): Use .lf to set file name (if `raw_flag' isn't set).
1225         Don't pass BOM to `conversion_utf8'.
1226         (usage): Updated.
1227         (main): Handle `-r' command line switch to set `raw_flag'.
1228         (get_BOM): Fix encodings in `BOM_table'.
1230         * src/preproc/preconv/preconv.man: New file.  Not complete yet.
1231         * src/preproc/proconv/Makefile.sub (MAN1): New variable.
1233 2006-01-04  Werner LEMBERG  <wl@gnu.org>
1235         * src/preproc/preconv/preconv.cpp (emacs_to_mime): As suggested by
1236         Bruno, comment out most encodings to support only a small set of
1237         coding tags, thus reducing potential problems with legacy encodings
1238         and character sets in the future.
1239         Add many XEmacs coding tags (now commented out).
1240         Add `cp1047'.
1241         (check_encoding_tag): Renamed to...
1242         (check_coding_tag): This.
1243         (get_BOM): Return encoding as specified by BOM.
1244         Test for UTF32-LE too.
1245         (do_file): Don't check for coding tag if a BOM has been found.
1247 2006-01-03  Bruno Haible  <bruno@clisp.org>
1249         * m4/groff.m4: Renamed from aclocal.m4.
1250         * m4/codeset.m4: New file, from gnulib.
1251         * m4/iconv.m4: New file, from gnulib.
1252         * m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4: New files, from
1253         gnulib.
1254         * config.rpath: New file, from gnulib.
1255         * config.guess, config.sub: New files, from gnulib.
1256         * Makefile.sub (M4MACROS): New variable.
1257         (configure): Fix typo.
1258         (aclocal.m4): New rule.
1259         (stamp-h.in): Depend on aclocal.m4.
1260         * configure.ac: Invoke AM_ICONV and AM_LANGINFO_CODESET.
1261         * Makefile.in (LIBICONV): New variable.
1262         (MDEFINES): Pass it to recursive makes.
1263         * src/preproc/preconv/preconv.cpp: Use HAVE_LANGINFO_CODESET and
1264         HAVE_ICONV instead of I18N macro.
1265         * src/preproc/preconv/Makefile.sub (EXTRA_LDFLAGS): New variable.
1267         * aclocal.m4, configure, src/include/config.hin: (Re)generated.
1269 2006-01-03  Werner LEMBERG  <wl@gnu.org>
1271         * doc/Makefile.in (webpage.html): Simplify.
1272         * doc/Makefile.sub (webpage.html): Synchronize with doc/Makefile.in.
1273         * doc/webpage.ms, tmac/groff_www.man, tmac/www.tmac: Minor updates.
1275 2006-01-01  Werner LEMBERG  <wl@gnu.org>
1277         * tmac/doc-common (Os): Add some Darwin versions.
1278         * tmac/groff_mdoc.man: Document them.
1280 2006-01-01  Bruno Haible  <bruno@clisp.org>
1282         * src/preproc/preconv/preconv.cpp (emacs_to_mime): Various
1283         corrections:
1284           . Don't map ascii to latin-1.
1285           . Don't use IBMxxx encodings but cpxxx for portability.
1286           . Map cp932, cp936, cp949, cp950 to itself.
1287         (emacs2mime): Protect calls to strcasecmp.
1288         (conversion_iconv): Add missing call to iconv_close.
1289         (do_file): Emit error message in case of unsupported encoding.
1291 2005-12-31  Werner LEMBERG  <wl@gnu.org>
1293         Integrate preconv into the groff binary.  Changes based on a patch
1294         from Michail Vidiassov.
1296         * src/roff/groff/pipeline.h (MAX_COMMANDS): Increase by 1.
1298         * src/roff/groff/groff.cpp (PRECONV_INDEX): New macro.
1299         (SOELIM_INDEX): Updated.
1300         (help, synopsis): Updated.
1301         (main): Add command line options `-k' and `-K enc' to select
1302         encoding.
1303         Add support for GROFF_ENCODING environment variable.
1305         * src/roff/groff/groff.man: Updated and revised.
1308         Start with autoconf support for preconv.
1310         * configure.ac: Call AC_C_BIGENDIAN.
1311         * configure, src/include/config.hin: Regenerated.
1313 2005-12-30  Werner LEMBERG  <wl@gnu.org>
1315         New preprocessor `preconv' to convert input encodings to something
1316         groff can understand.  Not yet integrated within groff.  Proper
1317         autoconf stuff is missing too.
1319         Tomohiro Kubota has written a first draft of this program, and some
1320         ideas have been reused (while almost no code has been taken
1321         actually).
1323         * src/preproc/preconv/preconv.cpp. src/preproc/preconv/Makefile.sub:
1324         New files.
1326         * MANIFEST, Makefile.in (CCPROGDIRS), test-groff.in
1327         (GROFF_BIN_PATH): Add preconv.
1329 2005-12-12  Werner LEMBERG  <wl@gnu.org>
1331         * aclocal.m4 (GROFF_MAKEINFO): Fix regexps to be POSIX conformant.
1332         In particular, don't use `\+' since it is a GNU sed extension.
1334         * configure: Regenerated.
1336 2005-12-09  Werner LEMBERG  <wl@gnu.org>
1338         * src/libs/libgroff/make-uniuni: New script to generate uniuni.cpp. 
1340         * src/libs/libgroff/uniuni.cpp: Regenerated, using data from Unicode
1341         4.1.0.
1344         * src/utils/afmtodit/make-afmtodit-tables: New script to generate
1345         afmtodit.tables.
1347         * src/utils/afmtodit/afmtodit.tables: New file, representing Unicode
1348         4.1.0 data.
1350         * src/utils/afmtodit/afmtodit.pl (%unicode_decomposed,
1351         %AGL_to_unicode): Removed.  Replace it with a tag.
1353         * src/utils/afmtodit/Makefile.sub (afmtodit): Adjust sed expression
1354         to replace tag with actual file contents.
1356 2005-12-08  Werner LEMBERG  <wl@gnu.org>
1358         The change 2005-06-20 can indeed cause problems, so we follow the
1359         advice by using marks.
1361         * font/devps/prologue.ps (PBEGIN): Use `mark'.
1362         (PEND): Use `cleartomark'.
1364 2005-12-07  Michail Vidiassov  <master@iaas.msu.ru>
1366         * src/utils/afmtodit.pl: Fix kerning output to avoid warnings for
1367         glyphs which have kern values but aren't handled (glyph variants,
1368         for example).
1370 2005-12-02  Werner LEMBERG  <wl@gnu.org>
1372         * src/devices/grops/ps.cpp (ps_printer::get_subfont): Use correct
1373         subfont index.  Reported by Michail Vidiassov <master@iaas.msu.ru>.
1375 2005-11-28  Gaius Mulley  <gaius@glam.ac.uk>
1377         * doc/Makefile.in: Separate rule for webpage.html so that extra
1378         command line options can be passed to grohtml.
1379         * doc/groff.css: Change all margins to 0%.
1380         * doc/webpage.ms: Now use new macros ALN, LNS, and LNE so that left
1381         navigation is exploited.  Also update webpage to contain new
1382         sections on licenses, mailing lists, cvs/ftp access, groff
1383         dependencies, and bug reports.
1384         * tmac/groff_www.man: Document the new macros ALN, LNS, and LNE.
1385         * tmac/www.tmac: Implement the new macros ALN, LNS, and LNE.
1386         
1387 2005-11-25  Gaius Mulley  <gaius@glam.ac.uk>
1389         * src/devices/grohtml/post-html.cpp
1390         (html_printer::do_file_components): Add fputs calls to emit the
1391         head contents and shut down the head tag whenever a new file
1392         component is generated.
1394 2005-11-22  Gaius Mulley  <gaius@glam.ac.uk>
1396         * src/devices/grohtml/post-html.cpp (html_printer::flush_page): Add
1397         call to flush_text to flush any outstanding html tags on the
1398         paragraph stack.
1400 2005-11-18  Werner LEMBERG  <wl@gnu.org>
1402         * aclocal.m4 (GROFF_MAKEINFO): Use `groff.info' in tests.
1403         Announce makeinfo version.
1404         * configure: Regenerated.
1406 2005-11-18  Mike Frysinger <vapier@gentoo.org>
1408         * Makefile.in: Declare proper dependencies between make targets.
1410         * doc/Makefile.in: Rename groff info page to `groff.info'.
1411         * doc/Makefile.sub: Likewise.
1412         * doc/groff.texinfo: Likewise.
1414 2005-11-17  Peter O'Gorman  <mlists@thewrittenword.com>
1416         * src/utils/pfbtops/pfbtops.c, src/utils/xtotroff/xtotroff.c: Move
1417         definition of __GETOPT_PREFIX to the beginning of file to ensure
1418         that it is defined even on platforms where getopt.h is already
1419         included by other header files.
1421 2005-11-10  Gaius Mulley  <gaius@glam.ac.uk>
1423         * src/devices/grohtml/post-html.cpp (html_printer::do_heading):
1424         Reset font to NULL to ensure that a font block is recreated during
1425         the next paragraph.
1427 2005-11-04  Werner LEMBERG  <wl@gnu.org>
1429         * aclocal.m4 (GROFF_MAKEINFO): Fix sed expression.
1430         * configure: Regenerated.
1432 2005-10-27  Werner LEMBERG  <wl@gnu.org>
1434         * aclocal.m4 (GROFF_MAKEINFO): New function for checking whether
1435         makeinfo 4.8 or newer is available.
1436         * configure.ac: Call GROFF_MAKEINFO.
1437         * configure: Regenerated.
1439         * Makefile.in (MAKEINFO): Use autoconf variable.
1440         (MDEFINES): Add MAKEINFO.
1442         * doc/Makefile.in (MAKEINFO): Use autoconf variable.
1443         * doc/Makefile.sub (MAKEINFO): Remove.
1445 2005-10-26  Werner LEMBERG  <wl@gnu.org>
1447         * REVISION: Set to 3.
1449 2005-10-17  Werner LEMBERG  <wl@gnu.org>
1451         Mention $MANPAGER variable used with some `man' systems.
1453         * doc/webpage.ms, src/devices/grotty/grotty.man, NEWS: Updated.
1455 2005-09-13  Werner LEMBERG  <wl@gnu.org>
1457         * tmac/hyphenex.us: New version (`ushyphex.tex' from ftp.dante.de).
1459 2005-09-04  Werner LEMBERG  <wl@gnu.org>
1461 Version 1.19.2 released
1462 =======================
1464         * tmac/groff_ms.man, doc/groff.texinfo: Synchronize.
1466         * doc/webpage.ms: Updated.
1468         * install-sh, mkinstalldirs: New versions; taken from texinfo CVS.
1470 2005-09-04  Jörgen Grahn <jgrahn@algonet.se>
1472         * tmac/groff_ms.man: Document `PO' better.
1474 2005-09-03  Werner LEMBERG  <wl@gnu.org>
1476         * NEWS: Document grotty changes.
1478 2005-09-01  Keith Marshall  <keith.d.marshall@ntlworld.com>
1480         Backward compatibility support for `man' program.
1482         * tmac/an-old.tmac (LL): Initialize it to respect prior LL register
1483         assignment, prior `.ll' request and then package defaults, in this
1484         specified order of decreasing priority.
1486         * tmac/groff_man.man, doc/groff.texinfo (Man options): Document
1487         altered `LL' register initialization priorities.
1489 2005-08-29  Gary W. Swearingen  <garys@opusnet.com>
1491         * tmac/groff_mdoc.man: Go into more details how the `AUTHORS'
1492         section should look like.
1494 2005-08-29  Werner LEMBERG  <wl@gnu.org>
1496         * tmac/groff_mdoc.man: The month's name in a call to .Dd shouldn't
1497         be abbreviated.
1499 2005-08-27  Bernd Warken
1501         * tmac/groff_man.man: Add man(7) too SEE ALSO and more minor
1502         fixes.
1504 2005-08-11  Bernd Warken
1506         * tmac/www.tmac (URL, MTO): Handle empty \\$1 better.
1508 2005-08-09  Bernd Warken
1510         * tmac/www.tmac (URL, MTO): Use bold series if color support is
1511         deactivated.
1513 2005-08-02  Bernd Warken
1515         * doc/Makefile.sub (uninstall_sub): Use --remove, not --delete
1516         as argument to $(INSTALL_INFO).  The latter isn't portable.
1517         Remove $(HTMLEXAMPLEFILES) too.
1519         * Makefile.in (uninstall_dirs): Remove $(datadir)/doc/groff and
1520         $(datadir)/doc too.
1521         Suppress warning messages and return always true.
1523         * tmac/Makefile.sub (uninstall_sub): Remove www.tmac too.
1525 2005-07-02  Bernd Warken
1527         * src/devices/xditview/gxditview.man: Change many `.I' to `.B'.
1528         * man/groff_out.man: More markup and minor improvements.
1529         * src/roff/groff/groff.man: Minor improvements.
1531 2005-06-28  Werner LEMBERG  <wl@gnu.org>
1533         * ChangeLog: Split off older entries into...
1534         * ChangeLog.115 ChangeLog.116, ChangeLog.117, ChangeLog.118: New
1535         files.
1537 2005-06-26  Bernd Warken
1539         * src/devices/xditview/gxditview.man: More minor fixes.
1541 2005-06-24  Werner LEMBERG  <wl@gnu.org>
1543         * src/preproc/pic/troff.cpp (troff_output::set_fill,
1544         troff_output::set_color, troff_output::reset_color): Use .bcolor and
1545         .fcolor instead of \m and \M, respectively.
1547 2005-06-23  Bernd Warken
1549         * src/devices/xditview/gxditview.man: More minor fixes.
1550         * README: Formatting issues.
1551         Mention some problems with Debian.
1553 2005-06-23  Bernd Warken
1555         * src/devices/xditview/gxditview.man: Revised and improved.
1557 2005-06-22  Werner LEMBERG  <wl@gnu.org>
1559         Another round in fixing getopt problems.  Hopefully the last one!
1560         This time we use the getopt stuff from gnulib and define a prefix
1561         unconditionally so that there are no collisions with any other
1562         getopt implementations.  This is a slight waste of space in case
1563         we already use a GNU getopt implementation, but on
1564         the other hand it really simplifies life.
1566         * src/include/getopt.h: Use gnulib version.
1568         * src/include/getopt_int.h: Use gnulib version.
1570         * src/include/groff-getopt.h: Removed.  Obsolete now.
1572         * src/include/lib.h: Regarding getopt, don't handle any platform
1573         specially; just include getopt.h.
1574         (__GETOPT_PREFIX): Define (before getopt.h).
1576         * src/include/Makefile.sub (HDRS): Updated.
1578         * src/libs/libgroff/getopt1.c, src/libs/libgroff/getopt.c: Use
1579         gnulib version.
1581         * src/libs/libgroff/Makefile.sub (EXTRA_CFLAGS): Set
1582         __GETOPT_PREFIX.
1584         * src/utils/pfbtops/pfbtops.c, src/utils/xtotroff/xtotroff.c
1585         (__GETOPT_PREFIX): Define (before getopt.h).
1587 2005-06-21  Werner LEMBERG  <wl@gnu.org>
1589         * src/include/lib.h: Provide a fix for Mac OS X to not include
1590         groff-getopt.h.
1592 2005-06-20  Denis M. Wilson  <dmw@oxytropis.plus.com>
1594         * font/devps/prologue.ps (EP): Dont' use `bind'.  Reason: Using
1595         `bind' to define a procedure which contains `showpage' means that an
1596         invocation of `showpage' may execute wrongly (the exact effect
1597         depending on the interpreter).  Not usually a problem except under
1598         transformations, such as combining pages.
1599         (PEND): Don't call `clear'.  Reason: Using `clear' in the definition
1600         of /PEND means that stack underflow will occur if the stack is
1601         deliberately non-empty before document inclusion.  If included
1602         files are found to be generally badly behaved, we could replace the
1603         `clear' with `mark' in /PBEGIN and `cleartomark' in /PEND (I've
1604         never found this necessary).
1606 2005-06-20  Jörgen Grahn  <jgrahn@algonet.se>
1608         * src/preproc/soelim/soelim.cpp (do_file): Append trailing zero
1609         earlier to get correct error message.
1611 2005-06-16  Bernd Warken
1612         * src/roff/nroff/nroff.sh: Add support for iso-8859-15.
1614 2005-06-15  Werner LEMBERG  <wl@gnu.org>
1616         Another try to update getopt files.  This time we add a dummy
1617         gettext.h file to satisfy the dependency.
1619         * src/include/getopt.h, src/libs/libgroff/getopt.c,
1620         src/libs/libgroff/getopt1.c: Updated from GNU libc CVS.
1622         * src/include/getopt_int.h: New file (from GNU libc CVS).
1624         * src/include/gettext.h: Dummy file which just defines a gettext()
1625         macro.
1627         * src/include/groff-getopt.h: Updated.
1629         * src/include/Makefile.sub (HDRS): Add getopt_int.h and gettext.h.
1632         * src/libs/libdriver/input.cpp (IntArray): Remove superfluous
1633         `const' keywords in return value.
1635         * src/preproc/html/pushback.cpp (pushBackBuffer::~pushBackBuffer):
1636         Remove redundant variable `old'.
1637         (pushBackBuffer::skipToNewline): Remove redundant variable `ch'.
1639         * src/preproc/tbl/main.cpp (process_table): Remove redundant
1640         variable `c'.
1643         Fix more friend name injection problems since modern C++ compilers
1644         fail otherwise.  We simply provide (global) declarations for all
1645         functions declared as friends.  This is not really necessary but
1646         doesn't harm.
1648         * src/preproc/eqn/lex.cpp: Provide declarations for get_char,
1649         peek_char, and get_location.
1651         * src/preproc/refer/ref.h: Provide declarations for
1652         compare_reference, same_reference, same_year, same_date,
1653         same_author_last_name, and same_author_name.
1655         * src/roff/troff/div.h: Provide declarations for do_divert and
1656         page_offset.
1658         * src/roff/troff/env.h: Provide declarations for title_length,
1659         space_size, fill, no_fill, adjust, no_adjust, center, right_justify,
1660         vertical_spacing, post_vertical_spacing, line_spacing, line_length,
1661         indent, temporary_indent, do_underline, do_input_trap, set_tabs,
1662         margin_character, no_number, number_lines, leader_character,
1663         tab_character, hyphenate_request, no_hyphenate,
1664         hyphen_line_max_request, hyphenation_space_request,
1665         hyphenation_margin_request, line_width, tabs_save, tabs_restore,
1666         line_tabs_request, widow_control_request, and do_divert.
1668         * src/roff/troff/input.cpp: Provide declaration for chop_macro.
1670         * src/roff/troff/node.cpp: Provide declarations for class
1671         tfont_spec.
1672         Provide declaration for make_tfont.
1674 2005-05-29  Werner LEMBERG  <wl@gnu.org>
1676         * doc/fdl.texi: Updated to version 1.2.  Reported by Bernd Warken.
1678 2005-05-28  Werner LEMBERG  <wl@gnu.org>
1680         * contrib/pdfmark/Makefile.sub (.ms.pdf): Use `--stylesheet', not
1681         `--style'.
1683         * src/devices/grolbp/lbp.cpp, src/devices/grolbp/lbp.h: Remove
1684         redundant semicolons.
1686         * src/preproc/eqn/Makefile.sub, src/preproc/html/Makefile.sub,
1687         src/preproc/soelim/Makefile.sub, src/preproc/tbl/Makefile.sub:
1688         Define `MLIB'.  Some compilers need this for linking with libgroff.
1690 2005-05-27  Werner LEMBERG  <wl@gnu.org>
1692         * MANIFEST, README, doc/webpage.ms: Updated.
1694 2005-05-26  Werner LEMBERG  <wl@gnu.org>
1696         * All affected files: Update postal address of FSF.
1698 2005-05-25  Keith Marshall  <keith.d.marshall@ntlworld.com>
1699             Bernd Warken
1701         * README: More fixes.
1703         * README.CVS: Removed.  Its contents is now part of the README file.
1705 2005-05-21  Werner LEMBERG  <wl@gnu.org>
1707         * README: Updated.  Based on a patch from Bernd Warken.
1709 2005-05-16  Keith Marshall  <keith.d.marshall@ntlworld.com>
1711         Miscellaneous script portability enhancements.
1713         * aclocal.m4: (GROFF_CSH_HACK): Add space in shebang prototype for
1714         generated conftest.sh script, conforming to portability
1715         recommendation in autoconf docs.
1716         * configure: Likewise, for code generated by GROFF_CSH_HACK.
1717         * contrib/eqn2graph/eqn2graph.sh: Add space in shebang, conforming
1718         to portability recommendation in autoconf docs.
1719         * contrib/gdiffmk/gdiffmk.sh: Likewise.
1720         * contrib/gdiffmk/tests/runtests.in: Likewise.
1721         * contrib/grap2graph/grap2graph.sh: Likewise.
1722         * contrib/groffer/groffer.sh: Likewise.
1723         * contrib/mm/mmroff.pl: Likewise.
1724         * contrib/mom/momdoc/appendices.html: Likewise.
1725         * contrib/pic2graph/pic2graph.sh: Likewise.
1726         * font/devps/generate/afmname: Likewise.
1727         * src/devices/xditview/ad2c: Likewise.
1728         * src/preproc/eqn/neqn.sh: Likewise.
1729         * src/roff/grog/grog.pl: Likewise.
1730         * src/roff/grog/grog.sh: Likewise.
1731         * src/roff/nroff/nroff.sh: Likewise.
1732         * PROBLEMS: Likewise, in embedded script examples.
1734 2005-05-16  Keith Marshall  <keith.d.marshall@ntlworld.com>
1736         Improve portability of `pdfroff' shell script.
1738         * arch/misc/shdeps.sh: Add space in shebang, conforming to
1739         portability guidelines in `autoconf' docs.
1740         (PATH_SEARCH_SETUP): New substitution; emits PATH_SEPARATOR
1741         initialization code.  Used by contrib/pdfmark/pdfroff.sh's
1742         `searchpath' function.
1744 2005-05-14  Werner LEMBERG  <wl@gnu.org>
1746         * contrib/pic2graph/pic2graph.sh, contrib/graph2graph.sh,
1747         contrib/eqn2graph.sh: Add option `-trim' to `convert' which is
1748         needed for newer ImageMagick versions.
1750 2005-05-07  Werner LEMBERG  <wl@gnu.org>
1752         * src/preproc/refer/refer.man: Many small typographic fixes.
1754 2005-05-06  Jeff Conrad  <jeff_conrad@msn.com>
1756         * src/devices/grohtml/post-html.cpp (assert_state::~assert_state):
1757         Use `char *' cast for a_delete.
1759 2005-05-03  Werner LEMBERG  <wl@gnu.org>
1761         * src/libs/libgroff/maxpathname.cpp: Include stdlib.h.
1762         src/libs/libgroff/relocate.cpp: Use path_name_max everywhere.
1764 2005-05-03  Jeff Conrad  <jeff_conrad@msn.com>
1766         * src/devices/grohtml/post-html.cpp: Use casts to `char *' if using
1767         `a_delete' for `const char *'.
1769 2005-05-03  Werner LEMBERG  <wl@gnu.org>
1771         * src/devices/grohtml/post-html.cpp,
1772         src/devices/grohtml/html-table.cpp,
1773         src/devices/grohtml/html-text.cpp, src/devices/grohtml/output.cpp:
1774         Replace malloc/free with new/delete/a_delete.
1776         * src/devices/grolbp/lbp.h: Remove superfluous semicolons which
1777         are prohibited with ANSI C++.
1778         (lbpprintf, vdmprintf): Remove useless `inline' keyword (since the
1779         function has a variable number of arguments).
1781         * src/preproc/grn/main.cpp (doinput): Change return type to `int'.
1782         Simplify function and update all callers.
1784 2005-05-02  Werner LEMBERG  <wl@gnu.org>
1786         Undo getopt changes from 2005-04-30.  We don't want a dependency
1787         on gettext.
1789         * src/include/getopt_int.h: Removed.
1791         * src/include/getopt.h, src/include/groff-getopt.h,
1792         src/include/Makefile.sub, src/libs/libgroff/getopt.c,
1793         src/libs/libgroff/getopt1.c: Revert to previous version.
1796         * src/include/nonposix.h (access) [_MSC_VER]: New macro.
1798         * src/include/posix.h (F_OK): Define conditionally.
1800         * src/devices/grotty/tty.cpp (tty_printer::make_underline): Use
1801         different variable name in second `for' loop to avoid MSVC compiler
1802         problem.
1804 2005-04-30  Werner LEMBERG  <wl@gnu.org>
1806         AC_TYPE_SIGNAL from current autoconf can fail if CC=g++.
1808         * aclocal.m4 (GROFF_TYPE_SIGNAL): New function.
1809         * configure.ac: Use GROFF_TYPE_SIGNAL, not AC_TYPE_SIGNAL.
1810         * configure, src/include/config.hin: Regenerated.
1812         * PROBLEMS: Updated.
1815         Update getopt files.
1817         * src/include/getopt.h, src/libs/libgroff/getopt.c,
1818         src/libs/libgroff/getopt1.c: Updated from GNU libc CVS.
1820         * src/include/getopt_int.h: New file (from GNU libc CVS).
1822         * src/include/groff-getopt.h: Updated.
1824         * src/include/Makefile.sub (HDRS): Add getopt_int.h.
1827         * font/devutf8/NOTES: Updated.
1829 2005-04-28  Werner LEMBERG  <wl@gnu.org>
1831         Bug fix for Win32 relocatable code.  Based on a patch from Keith
1832         Marshall.
1834         * src/libs/libgroff/maxpathname.cpp (PATH_MAX): Test for `_MAX_PATH'
1835         also.
1837         * src/libs/libgroff/relocate.c (DEBUG): Define it conditionally.
1838         (searchpath) [_WIN32]: Use `_fullpath', not `realpath'.
1840 2005-04-28  Keith Marshall  <keith.d.marshall@ntlworld.com>
1842         Correct `gnu.eps' handling for build from distribution tarball, with
1843         separate source and build directories.
1845         * doc/Makefile.sub: (examples.stamp): New target; forces copy of
1846         grnexmpl.g, groff.css and gnu.eps from source to build directory;
1847         generate gnu.eps from gnu.xpm if required; touch examples.stamp.
1848         (prepare_examples): Make it depend on examples.stamp.
1849         (CLEANADD): Add examples.stamp.
1851 2005-04-27  Werner LEMBERG  <wl@gnu.org>
1853         Implement the rule
1855           position: `(' position `)'
1857         in pic.
1859         * src/preproc/pic/pic.y (position, position_not_place): Handle
1860         additional parentheses.
1862         * doc/pic.ms: Updated.
1864 2005-04-23  Larry Jones  <lawrence.jones@ugs.com>
1866         * src/utils/xtotroff/xtotroff.c (MapFont): Fix variable declaration.
1868 2005-04-18  Werner LEMBERG  <wl@gnu.org>
1870         * src/roff/groff/pipeline.c: Don't include ctype.h.
1872 2005-04-13  Werner LEMBERG  <wl@gnu.org>
1874         * src/roff/nroff/nroff.man: Document option `-M'.
1876 2005-04-13  Bruce Lilly  <blilly@erols.com>
1878         * src/roff/nroff/nroff.sh: Make the script accept option `-M'.
1880 2005-04-01  Kees Zeelenberg  <kzlg@users.sourceforge.net>
1881             Werner LEMBERG  <wl@gnu.org>
1883         Add binary relocation support for Windows platforms.
1885         * src/include/Makefile.sub (defs.h): Add `INSTALLPATH'.
1887         * src/include/relocate.h, src/libs/libgroff/relocate.cpp: New files.
1889         * src/libs/libgroff/searchpath.cpp: Handle `relocate'.
1890         (search_path::search_path, search_path::open_file_cautious): Use
1891         `relocate'.
1893         * src/libs/libgroff/Makefile.sub (OBJS, CCSRCS),
1894         src/include/Makefile.sub (HDRS): Updated.
1896 2005-04-01  Werner LEMBERG  <wl@gnu.org>
1898         * src/devices/grohtml/post-html.cpp: Don't use strdup/free but
1899         strsave/a_delete.
1901         * src/libs/libgroff/font.cpp: Replace strdup with strsave.
1903         * src/libs/libgroff/maxfilename.cpp: Don't include limits.h since
1904         lib.h already does it.
1906         * src/libs/libgroff/maxpathname.cpp: New file, defining
1907         path_name_max.
1909         * src/include/lib.h: Add prototype for path_name_max.
1911         * src/libs/libgroff/Makefile.sub (OBJS, CCSRCS): Updated.
1913         * src/include/nonposix.h (PATH_EXT): New macro.
1915 2005-03-28  Werner LEMBERG  <wl@gnu.org>
1917         Add support for double- and zero-width characters in grotty.
1919         * src/devices/grotty/tty.cpp (glyph): Add width.
1920         (tty_printer::make_underline, tty_printer::make_bold,
1921         tty_printer::add_character): Add parameter to pass character width.
1922         Update all callers.
1923         (tty_printer::end_page): Increase hpos by actual character width.
1925         * font/devutf8/R.proto: Specify zero width for non-spacing
1926         characters.
1928         * tmac/unicode.tmac: Remove definitions for non-spacing entities.
1930         * Makefile.comm (extraclean): Remove more junk files.
1932 2005-03-25  Werner LEMBERG  <wl@gnu.org>
1934         * configure.ac: Undo change from 2005-03-24.
1935         * configure: Regenerated.
1937 2005-03-24  Werner LEMBERG  <wl@gnu.org>
1939         * Makefile.in (NOMAKEDIRS): Add contrib/gdiffmk/tests.
1940         (dist): Search Makefile while descending into $(EXTRADIRS).
1942         * doc/Makefile.in (.PHONY): Add.
1943         (clean): Don't remove *.png and *.eps.
1944         Don't handle *.gif.
1945         (realclean): Remove *.png and *.eps.
1946         (extraclean): Depend on distclean.
1948         * configure.ac: Add copyright.
1949         Handle contrib/pdfmark/Makefile.
1951         * configure: Regenerated.
1953 2005-03-18  Larry Kollar  <kollar@alltel.net>
1955         Add numbered and definition lists to www.tmac.
1957         * tmac/www.tmac (www-ul-level1, www-ul-level2, www-ul-level3,
1958         www-ol-level1, www-ol-level2, www-ol-level3, www-ol-tmp): New
1959         auxiliary string registers.
1960         (www-ul-level, www-ol-level, www-dl-level, www-ol-ctr1, www-ol-ctr2,
1961         www-ol-ctr3, www-dl-shift): New auxiliary number registers.
1962         (www-level): Removed.
1963         (www-level1, www-level2, www-level3): Initialize to empty.
1964         (www-level0, www-level4, www-level5, www-level6, www-level7,
1965         www-level8, www-level9): New string registers.
1966         (www-push-li, www-pop-li): New macros.
1967         (www-push-level, www-pop-level): Renamed to...
1968         (www-push-ul-level, www-pop-ul-level): This.
1969         Updated.
1970         (www-push-ol-level, www-pop-ol-level): New macros.
1971         (ULS, ULE): Updated.
1972         (OLS, OLE, DLS, DLE): New user macros.
1973         (LI): Removed.  It is aliased to one of...
1974         (www-li-ul, www-li-ol, www-li-dl): New macros.
1976         * tmac/groff_www.man: Document new macros.
1978         * NEWS: Updated.
1980 2005-03-18  Werner LEMBERG  <wl@gnu.org>
1982         * tmac/doc-common (doc-operating-system-NetBSD-2.0.1,
1983         doc-operating-system-NetBSD-2.0.2): New strings.
1985         * tmac/groff_mdoc.man: Updated.
1987 2005-03-17  Werner LEMBERG  <wl@gnu.org>
1989         * doc/Makefile.sub (CLEANADD): Add `groff.html'.
1991 2005-03-17  Werner LEMBERG  <wl@gnu.org>
1993         * src/libs/libgroff/hypot.c: Renamed to...
1994         * src/libs/libgroff/hypot.cpp: This.  Updated to C++.
1996         * src/libs/libgroff/Makefile.sub (CCSRCS, CSRCS): Updated.
1998         * src/include/lib.h: Updated.
2000 2005-03-16  Werner LEMBERG  <wl@gnu.org>
2002         Add workaround for broken hypot() on Interix.
2004         * src/libs/libgroff/hypot.c: New wrapper file for `hypot'.
2006         * src/libs/libgroff/Makefile.sub (OBJS): Add `hypot.o'.
2007         (CSRCS): Add `hypot.c'.
2009         * src/include/lib.h: Declare `groff_hypot'.
2011         * src/preproc/grn/hgraph.cpp: Don't declare `hypot'.
2012         Use `groff_hypot'.
2014         * src/preproc/pic/pic.h: Don't declare `hypot'.
2016         * src/preproc/pic/object.cpp (hypot): Use `groff_hypot'.
2018 2005-03-15  Gaius Mulley  <gaius@glam.ac.uk>
2020         * src/devices/grohtml/post-html.cpp
2021         (html_printer::lookahead_for_tables): End .ce properly to avoid a
2022         segfault.
2024 2005-03-15  Werner LEMBERG  <wl@gnu.org>
2026         makeinfo 4.8 doesn't produce good HTML output from groff.texinfo.
2028         * doc/fixinfo.sh: New script to postprocess makeinfo's HTML output.
2030         * doc/Makefile.in (.texinfo.html): Call fixinfo.sh.
2032 2005-03-14  Werner LEMBERG  <wl@gnu.org>
2034         Add Cyrillic support to devutf8 and devhtml.
2036         * font/devutf8/R.proto, font/devhtml/R.proto: Add Cyrillic blocks.
2038         * tmac/unicode.tmac: New file.
2040         * tmac/tty.tmac: Include unicode.tmac if device is utf8.
2042         * tmac/Makefile.sub (NORMALFILES): Add unicode.tmac.
2044         * NEWS: Updated.
2046 2005-03-02  Keith Marshall  <keith.d.marshall@ntlworld.com>
2048         * src/libs/libdriver/printer.cpp (check_for_output_error): New
2049         function.  It has been introduced to catch peculiar error contexts
2050         on MS-Windows platforms.
2052 2005-02-28  Werner LEMBERG  <wl@gnu.org>
2054         * src/roff/troff/input.cpp (string_iterator::fill): Protect against
2055         null pointer.
2057         * tmac/papersize.tmac: Convert `paper' string contents to lowercase.
2059         * configure: Regenerated.
2061         * NEWS: Updated.
2063 2005-02-28  Keith Marshall  <keith.d.marshall@ntlworld.com>
2065         Integrate `pdfmark' into normal groff build system;
2066         install macro `pdfmark' packages, build and install `pdfroff',
2067         and PDF format documentation.
2069         * Makefile.comm: Add PDFDOCDIR.
2071         * Makefile.in: (MDEFINES) ALT_AWK_PROGS, ALT_GHOSTSCRIPT_PROGS,
2072         pdfdocdir, make_pdfdoc, make_install_pdfdoc: New variables.
2073         (unstall_dirs): Add pdfdocdir.
2075         * aclocal.m4: (GROFF_GHOSTSCRIPT_PREFS): New function; support
2076         `--with-alt-gs' option, set ALT_GHOSTSCRIPT_PROGS.
2077         (GROFF_GHOSTSCRIPT_PATH): Support `--with-gs' option, force use of
2078         GROFF_GHOSTSCRIPT_PREFS, set GHOSTSCRIPT.
2079         (GROFF_HTML_PROGRAMS): Force use of GROFF_GHOSTSCRIPT_PATH; tidy up.
2080         (GROFF_AWK_PREFS): New function; support `--with-alt-awk' option,
2081         set ALT_AWK_PROGS.
2082         (GROFF_AWK_PATH): New function; support `--with-awk' option, force
2083         use of GROFF_AWK_PREFS.
2084         (GROFF_PDFDOC_PROGRAMS): New function; force use of GROFF_AWK_PATH
2085         and GROFF_GHOSTSCRIPT_PATH, set make_pdfdoc and make_install_pdfdoc.
2087         * configure.ac: Add AC_PREREQ(2.59), GROFF_PDFDOC_PROGRAMS.
2088         Remove GROFF_GHOSTSCRIPT_PATH, (forced by GROFF_PDFDOC_PROGRAMS, and
2089         also by modified GROFF_HTML_PROGRAMS).
2091 2005-02-27  Gaius Mulley  <gaius@glam.ac.uk>
2093         * src/devices/grohtml/html-text.cpp (html_text::do_pre): Preserve
2094         paragraph spacing.
2095         (html_text::done_para): Unset `start_space'.
2096         (html_text::remove_para_align): Call `retrieve_para_space' for the
2097         spacing.
2099         * src/devices/grohtml/post-html.cpp (html_printer::emit_raw): Unset
2100         `seen_space'.
2101         (html_printer::do_check_center): Emit vertical space if necessary.
2103         * src/roff/troff/env.cpp (environment_switch): Preserve
2104         `seen_space', `seen_eol', and `suppress_next_eol' while switching
2105         environments.
2107         * src/roff/troff/node.cpp (suppress_node::suppress_node): Set
2108         `is_special'.
2110 2005-02-20  Werner LEMBERG  <wl@gnu.org>
2112         * src/preproc/eqn/eqn.man, NEWS: Document various extensions of
2113         eqn.
2115 2005-02-17  Werner LEMBERG  <wl@gnu.org>
2117         * doc/pic.ms, man/groff.man: Fix typos.
2119         * doc/groff.texinfo: Fix typos.
2120         (\LEmacro): Get proper mathematical spacing.
2122 2005-02-16  Werner LEMBERG  <wl@gnu.org>
2124         * aclocal.m4 (GROFF_APPRESDIR_CHECK): Improve warning message.
2125         * configure: Regenerated with autoconf 2.59b.
2127 2005-02-16  Gaius Mulley  <gaius@glam.ac.uk>
2129         * src/devices/grohtml/post-html.cpp (html_printer::is_line_start,
2130         html_printer::start_font): Fix handling of preformatted text.
2132 2005-02-15  Gaius Mulley  <gaius@glam.ac.uk>
2134         These patches modify the indentation implementation to use `<p
2135         style=margin-left: n%>'.  Many thanks to Peter and Larry for
2136         suggesting this solution.  Grohtml only uses tables for `.IP' and
2137         related tags when the first operand has a short width.
2139         Similarly, they modify all vertical space code.  By default, grohtml
2140         sets up a style sheet which uses no vertical space between `table',
2141         `pre', and `p' tags.  It forces spaces when it needs them using
2142         `style="margin-top: 1em"'.
2144         * src/devices/grohtml/html-table.cpp: Include `html-text.h'.
2145         (html_table::emit_table_header, html_table::emit_new_row):
2146         Rewritten.
2147         (html_table::set_space): New function.
2148         (html_indent::html_indent): Don't set `is_used'.
2149         (html_indent::begin): Rewritten.
2150         (html_indent::end): Remove code in function.
2152         * src/devices/grohtml/html-table.h: Updated.
2153         (html_table): Make `out' public.
2155         * src/devices/grohtml/html-text.cpp (html_text::html_text):
2156         Initialize `start_space' with FALSE.
2157         (html_text::end_tag) <P_TAG, PRE_TAG>: Updated.
2158         (html_text::issue_tag): Add argument to handle space style.
2159         (html_text::start_tag) <P_TAG, PRE_TAG>: Updated.
2160         (html_text::flush_text): Don't set `start_space'.
2161         (html_text::push_para): Don't set `p->really_issued'.
2162         (html_text::do_emittext): Updated.
2163         (html_text::do_para): Add paremeter to handle space.
2164         Update all callers.
2165         (html_text::retrieve_para_space): New function.
2167         * src/devices/grohtml/html-text.h (STYLE_VERTICAL_SPACE): New macro.
2168         (tag_definition): Remove `really_issued'.
2169         (html_text): Updated.
2171         * src/devices/grohtml/post-html.cpp (html_printer): Add variables
2172         `current_column' and `row_space'.
2173         Update constructor.
2174         (html_printer::emit_raw, html_printer::write_header,
2175         html_printer::do_indent, html_printer::do_check_center,
2176         html_printer::do_tab_ts): Handle vertical space.
2177         (html_printer:do_tab_te, html_printer::do_end_para): Call
2178         `remove_para_space'.
2179         (html_printer::do_col): Rewritten.
2180         (html_printer::flush_globs): Remove debugging code.
2181         (html_printer::is_line_start): New function.
2182         (html_printer::start_font): Use `is_line_start'.
2183         (html_printer::writeHeadMetaStyle): New function.
2184         (html_printer::do_file_components, html_printer::~html_printer):
2185         Call `writeHeadMetaStyle'.
2187         * tmac/www.tmac (www-handle-percent): New macro.
2188         (MPIMG): Handle percent values for width and height parameters.
2189         (DC): Updated.
2191         * tmac/groff_www.man: Updated.
2193 2005-02-14  Werner LEMBERG  <wl@gnu.org>
2195         * src/utils/afmtodit/afmtodit.pl: Remove an incorrect `my' from
2196         $psname and $italic_angle.
2197         Immediately restart file input loops if `split' returns an empty
2198         array.
2200 2005-02-13  Michail Vidiassov  <master@iaas.msu.ru>
2201             Werner LEMBERG  <wl@gnu.org>
2203         Update afmtodit to better support Unicode (Michail).
2204         Update afmtodit to use Perl 5 syntax (Werner).
2206         * src/utils/afmtodit/afmtodit.pl: Don't use `getopts.pl' but
2207         `Getopts::Std'.
2208         Decorate variables with `my' where necessary.
2209         Use `defined' where necessary to avoid warnings.
2210         Don't use `do' for subroutine calls.
2211         Other minor syntax updates.
2212         Check for both `uXXXX[X[X]]' and `uniXXXX'.
2213         Handle glyph variants properly.
2214         (%unicode_decomposed, %AGL_to_unicode): Don't use `u' prefix in
2215         strings.
2217         * src/utils/afmtodit/afmtodit.man: Updated.
2219 2005-02-13  Werner LEMBERG  <wl@gnu.org>
2221         Make groff.texinfo work with texinfo 4.8.
2223         * doc/groff.texinfo (@Var): Use @r and @slanted.
2224         (@defdummy, @Def*): Use @c to avoid empty lines.
2225         (\angles): Replaced with...
2226         (\Langlemacro, \Ranglemacro): New TeX macros.
2227         (@Langlemacro, @Ranglemacro): New variables defined with @set.
2228         (@angles): Use @Langlemacro and @Ranglemacro.
2229         (\LE): Replaced with...
2230         (\LEmacro): New TeX macro.
2231         (@LEmacro): New variable defined with @set.
2232         (@LE): Use @LEmacro.
2233         (@Lparenmacro, @Rparenmacro, @Lbrackmacro, @Rbrackmacro): New
2234         variables defined with @set.
2235         (@lparen, @rparen, @lbrack, @rbrack): Replaced with...
2236         (@Lparen, @Rparen, @Lbrack, @Rbrack): New macros.
2237         Update all callers.
2239         Other minor updates.
2241         * doc/texinfo.tex: Update to texinfo version 4.8.
2243         * README.CVS: Updated.
2245 2005-02-09  Alejandro López-Valencia <palopez@etb.net.co> (tiny change)
2247         * doc/groff.texinfo (ms Document Control Registers): Document `HY'
2248         and `FAM' registers.
2250 2005-02-05  Werner LEMBERG  <wl@gnu.org>
2252         * tmac/groff_mdoc.man, tmac/doc-common, tmac/doc-ditroff,
2253         tmac/doc-nroff, tmac/doc-old.tmac, tmac/doc-syms, tmac/doc.tmac:
2254         Update BSD license.
2256 2005-02-01  Werner LEMBERG  <wl@gnu.org>
2258         * src/roff/groff/groff.man: Add information about paper size.
2260 2005-01-25  Werner LEMBERG  <wl@gnu.org>
2262         * src/roff/nroff/nroff.sh: Handle `*.ISO8859-1' in locale.  From
2263         NetBSD bin/29114.
2265 2005-01-22  Ruslan Ermilov  <ru@FreeBSD.org>
2267         * tmac/doc.tmac (Sm): Improved.  It didn't work properly in many
2268         cases.
2269         (Re): Emit a warning if called without `.Rs'.
2270         (doc-finish-reference): Use parameter for decreasing
2271         `doc-reference-count'.
2272         (doc-print-reference): Pass specific count parameters to
2273         `doc-finish-reference'.
2275 2005-01-21  Werner LEMBERG  <wl@gnu.org>
2277         * src/libs/libdriver/input.cpp (delete_current_env, do_file):
2278         Reset pointers to zero after deallocation.  This fixes a crash
2279         if a driver is called with multiple input files.  Reported by
2280         Ken Chilton <ken@chiltonfamily.org>.
2282         * src/devices/grops/grops.man: Add more info on DSC.
2284 2005-01-17  Ruslan Ermilov  <ru@FreeBSD.org>
2286         * tmac/doc-common (Dd), tmac/doc-ditroff (gX, doc-setup-header):
2287         Remove dead code.
2289 2005-01-17  Werner LEMBERG  <wl@gnu.org>
2291         * src/roff/troff/div.cpp (top_level_diversion::space): Protect
2292         against division by zero.
2294 2005-01-13  Ruslan Ermilov  <ru@FreeBSD.org>
2296         * tmac/doc.tmac (Ef): Restore doc-curr-font and doc-curr-size.
2298 2004-12-19  Werner LEMBERG  <wl@gnu.org>
2300         * install-sh: New version; taken from texinfo CVS.
2302 2004-12-17  Werner LEMBERG  <wl@gnu.org>
2304         * tmac/devtag.tmac: Protect against loading twice.
2305         Protect agains compatibility mode.
2306         * tmac/www.tmac: Protect against loading twice.
2307         Load `devtag.tmac' before switching off compatibility mode.
2308         * tmac/an-old.tmac, tmac/s.tmac: Load `devtag.tmac'.
2310 2004-12-16  Mike Bianchi  <mbianchi@Foveal.com>
2312         * configure.ac: Produce `contrib/gdiffmk/tests/runtests'.
2313         * configure: Updated.
2315 2004-12-15  Thomas Klausner  <wiz@netbsd.org>
2317         * tmac/doc-syms, tmac/groff_mdoc.man: Add `libpam' library.
2319 2004-12-15  Werner LEMBERG  <wl@gnu.org>
2321         Make `test-groff' work again -- previously, wrong paths have been
2322         used.  Additionally, it can now be called from anywhere.
2324         * test-groff.in: Don't test for groff binary.  This is no longer
2325         necessary since the proper paths are determined by `configure'.
2326         (EXEEXT): Removed.  No longer used.
2327         (srcdir, builddir): Use values provided by the configure script.
2328         (XENVIRONMENT): Updated.
2330         * INSTALL: Updated.
2332 2004-12-14  Gaius Mulley  <gaius@glam.ac.uk>
2334         Make .tag and .taga work for all devices (but only grohtml actually
2335         handles them).
2337         * src/devices/grohtml/post-html.cpp: s/html-tag/devtag/.
2338         (text_glob::is_br, page::add_tag, html_printer::troff_tag,
2339         html_printer::handle_assertion): Don't use hard-coded string
2340         lengths.
2341         (html_printer::lookahead_for_table): Reset `tbl' properly if
2342         necessary.
2343         (html_printer::devtag): New function, handling `devtag'.
2344         (html_printer::special): Don't handle `html-tag'.
2346         * src/include/printer.h, src/libs/libdriver/printer.cpp
2347         (printer::devtag): New virtual function.
2349         * src/libs/libdriver/input.cpp (parse_x_command) <'X'>: Handle
2350         `devtag'.
2352         * src/roff/troff/env.cpp, src/roff/troff/mtsm.cpp,
2353         src/roff/troff/node.cpp: s/html-tag/devtag/.
2355         * src/roff/troff/input.cpp (tag, taga): Always call
2356         curenv->add_node.
2358         * tmac/an-old.tmac, tmac/s.tmac, tmac/troffrc-end: Use DEVTAG*
2359         macros instead of HTML-TAG*.
2361         * tmac/devtag.tmac: New file, defining the DEVTAG-* macros.
2363         * tmac/www.tmac: Load devtag.tmac.
2364         Replace HTML-TAG* macros with DEVTAG* macros.
2365         (HTML, HTML-NS): Changed definitions.
2366         (URL): Use HTML-NS.
2367         (HTML-TAG, HTML-TAG-NS, HTML-TAG-NEXT): Removed.
2369         * tmac/Makefile.sub (NORMALFILES): Add devtag.tmac.
2371 2004-12-10  Werner LEMBERG  <wl@gnu.org>
2373         Import Mike's `gdiffmk' package.
2375         * contrib/gdiffmk/*: New files.
2376         * Makefile.in (OTHERDIRS): Add contrib/gdiffmk.
2377         * NEWS: Updated.
2379 2004-12-08  Werner LEMBERG  <wl@gnu.org>
2381         Import Keith's `pdfmark' package.  Integration is very preliminary.
2383         * contrib/pdfmark/*: New files.
2384         * Makefile.in (OTHERDIRS): Add contrib/pdfmark.
2385         * NEWS: Updated.
2387 2004-12-07  Gaius Mulley  <gaius@glam.ac.uk>
2389         Fix a bug with title handling in HTML.
2391         * src/devices/grohtml/post-html.cpp (text_glob::is_nf,
2392         text_glob::is_fi, text_glob::is_ce): Use strlen to compute string
2393         length.
2394         (html_printer::handle_tag_within_title): New function.
2395         (html_printer::do_title): Use it.
2397         * tmac/s.tmac (TL): Don't set `need_eo_tl'.
2398         (cov*tl-au-print): Emit `.eo.tl' tag.
2400 2004-12-05  Alejandro López-Valencia  <dradul@etb.net.co>
2402         * man/groff_char.man: Minor imrovements.
2404 2004-12-04  Werner LEMBERG  <wl@gnu.org>
2406         * src/preproc/eqn/eqn.man: Revised.
2408 2004-11-25  Werner LEMBERG  <wl@gnu.org>
2410         * src/utils/xtotroff/xtotroff.c: Reformat to be similar to other
2411         groff source files.
2412         Include config.h.
2413         Include limits.h.
2414         Remove X_NOT_STDC_ENV conditional.
2415         (Version_string, program_name): New global variables.
2416         (groff_flag): Removed.
2417         (MapFont): Updated.
2418         (usage): Take a stream as argument.
2419         Use `program_name'.
2420         Update all callers.
2421         (main): Add `long_options' array for `--help' and `--version'.
2422         Make `-g' a dummy option.
2423         Handle `-v' and unknown options.
2424         Remove unused `position' variable.
2426         * src/utils/xtotroff/Makefile.sub (MAN1): Define.
2427         (XLIBS): Add LIBGROFF.
2429         * src/utils/xtotroff/xtotroff.man, src/utils/xtotroff/Makefile.in:
2430         New files.
2432         * src/devices/xditview/Dvi.c (default_font_map): Split into three
2433         parts to avoid compiler warning.
2434         (resources): Don't initialize with `default_font_map'.
2435         (ClassInitialize): Initialize first element of `resources'.
2437         * src/devices/xditview/Makefile.sub (devdir, xtotroff, DPIS, fonts):
2438         Removed.
2440         * src/utils/lkbib/lkbib.man, src/utils/lookbib/lookbib.man,
2441         src/utils/pfbtops/pfbtops.man: Revised, updated.
2443         * configure.ac: Generate src/utils/xtotroff/Makefile.
2444         * configure: Regenerated.
2446 2004-11-24  Werner LEMBERG  <wl@gnu.org>
2448         First fixes to get produce HTML.
2450         * src/devices/grohtml/post-html.cpp (generate_img_src): Add `alt'
2451         attribute.
2453         * tmac/www.tmac (IMG, PIMG, MPIMG): Add `alt' attribute.
2454         (HR, LI): Use `HTML</p>', not `HTML'.
2456         * doc/webpage.ms: Minor updates.
2458 2004-11-23  Larry Kollar  <kollar@alltel.net>
2460         Add option -S grohtml to determine the file split level.
2462         * src/devices/grohtml/post-html.cpp (split_level): New global
2463         variable.
2464         (html_header::determine_header_level): Use split_level.
2465         (main): Handle `-S' command line option.
2466         Sort options.
2468         * src/preproc/html/pre-html.cpp (scanArguments): Updated.
2470         * src/devices/grohtml/grohtml.man: Document it.
2471         Sort options.
2473         * NEWS: Document it.
2475 2004-11-23  Y T  <doarhop@hotmail.com>
2477         * tmac/s.tmac (ref*add-V, ref*add-N): New macros for handling
2478         the volume and number refer entries.
2480 2004-11-22  Werner LEMBERG  <wl@gnu.org>
2482         * src/devices/grohtml/html-table.cpp
2483         (html_table::emit_table_header): Don't emit `cols' attribute which
2484         doesn't exist in HTML 4.0 and is thus invalid.
2486         * NEWS: More minor fixes and updates.
2488 2004-11-18  Werner LEMBERG  <wl@gnu.org>
2490         * tmac/www.tmac (HTML-NS, HTML-TAG-NS, HTML-TAG-NEXT): Simplified.
2491         (HTML</p>): Minor clean-up.
2493         * tmac/groff_www.man: Updated.
2495         * src/devices/grohtml/grohtml.man: Revised and updated.
2497         * NEWS: Updated.
2499 2004-11-18  Gaius Mulley  <gaius@glam.ac.uk>
2501         * src/devices/grohtml/post-html.cpp (html_printer::do_heading):
2502         Fix space insertion.
2503         (html_printer::do_links): Fix rules generation around automatic
2504         heading links.
2506         * tmac/www.tmac (LK): Use HTML-TAG-NS.
2507         (HR): Simplify.
2508         No longer emit empty line for non-HTML devices.
2510 2004-11-17  Werner LEMBERG  <wl@gnu.org>
2512         * doc/Makefile.in (prepare_examples, webpage.html): Handle
2513         `groff.css'.
2515         * doc/Makefile.sub (EXAMPLEFILES, CLEANNOTSRCDIRADD,
2516         prepare_examples, webpage.html): Handle `groff.css'.
2518 2004-11-15  Werner LEMBERG  <wl@gnu.org>
2520         * NEWS, README, doc/webpage.ms: Updated.
2522         * tmac/www.tmac (HTML, HTML-TAG): Minor clean-ups.
2524 2004-10-30  Gaius Mulley  <gaius@glam.ac.uk>
2526         * src/include/printer.h (printer): Remove virtual function
2527         `round_width'.
2528         Update all source files.
2530         * src/devices/grohtml/post-html.cpp (html_printer): New member
2531         function `round_width'.
2533 2004-10-20  Tadziu Hoffmann  <hoffmann@usm.uni-muenchen.de>
2535         * src/preproc/tbl/table.cpp (table::do_row): Fix handling of the `d'
2536         column key letter suffix.
2538 2004-10-14  Werner LEMBERG  <wl@gnu.org>
2540         * Makefile.in (check): Depend on `site.exp' and `docheck'.
2541         (docheck): Run dejagnu's `runtest' if it exists.
2542         (site.exp): Create dejagnu configuration file.
2544         * Makefile.sub (DISTCLEANFILES): Add files related to dejagnu.
2546 2004-10-13  Werner LEMBERG  <wl@gnu.org>
2548         * src/devices/grohtml/html-text.cpp (html_text_get_alignment),
2549         src/devices/grohtml/post-html.cpp (make_val,
2550         html_printer::handle_state_assertion): Fix compiler warnings.
2552         * src/roff/troff/div.cpp: Include `stringclass.h' and `mtsm.h'.
2553         (diversion::diversion): Fix order of initializers.
2555         * src/roff/troff/div.h: Don't include `mtsm.h'.
2557         * src/roff/troff/env.cpp: Include `stringclass.h' and `mtsm.h'.
2558         (environment::environment): Fix order of initializers.
2559         (environment::make_tag, environment::construct_format_state): Fix
2560         compiler warnings.
2562         * src/roff/troff/input.cpp: Include `stringclass.h' and `mtsm.h'.
2563         (input_iterator::input_iterator, macro::macro): Fix order of
2564         initializers.
2566         * src/roff/troff/mtsm.cpp: Include only necessary header files.
2567         (state_set::add, state_set::val): Fix compiler warnings.
2569         * src/roff/troff/mtsm.h: Don't include `stringclass.h'.
2570         (bool_value_state, int_value_state, units_value_state,
2571         string_value_state): Remove comma after last element which causes
2572         an error with g++ 3.3.3.
2574         * src/roff/troff/node.cpp: Include `stringclass.h'.
2575         (hline_node::hline_node, vline_node::vline_node,
2576         space_char_hmotion_node, left_italic_corrected_node): Fix compiler
2577         warnings.
2578         (zero_width_node::zero_width_node): Fix order of initializers.
2580         * src/roff/troff/node.h: Don't include `mtsm.h'.
2581         (hmotion_node): Fix compiler warnings.
2583         * src/roff/troff/number.cpp: Include `stringclass.h' and `mtsm.h'.
2585 2004-10-12  Gaius Mulley  <gaius@glam.ac.uk>
2587         * doc/groff.css: New file.
2589         * doc/webpage.ms: Use `groff.css'.
2590         Other small fixes.
2592         * tmac/an-old.tmac (need_eo_h): New number register.
2593         (TH): Emit `.eo.tl' tag after title.
2594         (SH): Set `need_eo_h'.
2595         (an-trap): Handle `need_eo_h'.
2596         (an-do-tag): s/HTML-TAG-NS/HTML-TAG-NEXT/.
2598         * tmac/s.tmac (need_eo_h, need_eo_tl): New number registers.
2599         (TL): Always start diversion.
2600         Updated.
2601         (@AI): Always call `par@reset'.
2602         (@AB): Update code for -Thtml.
2603         (cov*tl-au-print): Handle -Thtml.
2604         (par@reset): Handle `need_eo_tl', `need_eo_h'.
2605         (@IP): Simplified.
2606         (@IT-html): Removed.
2607         (@SH): Set `need_eo_h' for -Thtml.
2608         (par@TL): s/HTML-TAG/HTMl-TAG-NS/.
2609         Set `need_eo_tl'.
2610         (@NH): s/HTML-TAG/HTMl-TAG-NS/.
2611         Set `need_eo_h' for -Thtml.
2612         (@EQ, @EN): Don't handle -Thtml specially.
2613         (par@load-init): Don't handle -Thtml specially.
2615         * tmac/www.tmac (www:paraspace): New macro.
2616         (HTML-NS, HTML-TAG-NS): Use new `tag' request.
2617         (HTML</p>, HTML-TAG-NEXT): New macros.
2618         (HnE): Emit tag `.eo.h' instead of break.
2619         (HR): s/HTML-NS/HTML/.
2620         (www-end-nowhere): End diversion only if `www-html' not set.
2621         Emit `.eo.tl' tag.
2622         (ULS, ULE): s|HTML|HTML</p>|.
2623         (LI): Call `www:paraspace'.
2624         (HEAD): New macro.
2626 2004-10-11  Gaius Mulley  <gaius@glam.ac.uk>
2628         * src/roff/troff/request.h (macro): Make `p' public.
2629         New variable `is_a_diversion'.
2630         New member function `is_diversion'.
2633         * src/devices/grohtml/html.h (simple_output): New member function
2634         `force_nl'.
2636         * src/devices/grohtml/html-table.cpp (tabs::compatible): Fix
2637         computation of `total'.
2638         (tabs::check_init): New function.
2639         (html_table::emit_table_header): Emit style data.
2640         (html_table::insert_column): Improved.
2642         * src/devices/grohtml/html-table.h: Updated.
2644         * src/devices/grohtml/html-text.cpp (html_text::html_text):
2645         Initialize `start_space' with TRUE.
2646         (html_text::end_tag, html_start_tag): Fix `P_TAG' and `PRE_TAG'
2647         cases.
2648         (html_text::flush_text): Set `start_space' flag.
2649         (html_text::uses_indent, html_text::remove_para_space,
2650         html_text::get_alignment): New functions.
2651         (html_text::push_para): Updated.
2652         (html_text::do_para): Check for empty argument.
2653         Don't set `space_emitted'.
2654         (html_text::do_space, html_text::emit_space): Updated.
2656         * src/devices/grohtml/html-text.h (tag_definition): New variable
2657         `really_issued'.
2658         (html_text): New member function `uses_indent', `remove_para_space',
2659         `get_alignment'.
2661         * src/devices/grohtml/output.cpp (simple_output::force_nl): New
2662         function.
2663         (simple_output:nl): Always emit `\n'.
2665         * src/devices/grohtml/post-html.cpp: Include `string.h'.
2666         (BASE_POINT_SIZE): Removed.
2667         (base_point_size, head_info): New global variables.
2668         (text_glob): New member functions `is_ll', `is_tl', `is_eo_tl',
2669         `is_eo_h'.
2670         (text_glob::is_nf, text_glob::is_fi): Handle `.fi 0' and `.fi 1'
2671         tags, respectively.
2672         (page::add_and_encode): Pass additional parameter for tag flag.
2673         (assert_pos): New structure.
2674         (assert_state): New class.
2675         (html_printer): Remove `indentation', `prev_indent'.
2676         Add variables `troff_indent', `device_indent', `temp_indent'.
2677         Add variables `seen_indent', `next_indent', `seen_pageoffset',
2678         `next_pageoffset', `seen_linelenght', `next_linelength',
2679         `seen_center', `next_center', `seen_space', `seen_break', `as'.
2680         Add member functions `do_check_center', `do_space', `do_head',
2681         `get_troff_indent', `restore_troff_indent', `handle_assertion',
2682         `handle_state_assertion', `do_end_para', `set_char_and_width'.
2683         Change argument to `do_fill' to `char *'.
2684         Update constructor.
2685         (html_printer::emit_raw): Call `shutdown_table'.
2686         Use new functions.
2687         (html_printer::do_center): Simplified.
2688         (html_printer::do_title): Improved.
2689         (html_printer::write_header): Emit one more newline.
2690         Use new functions.
2691         (html_printer::do_heading, html_printer::do_indent,
2692         html_printer::do_eol, html_printer::do_tab_ts,
2693         html_printer::do_tab, html_printer::do_tab0,
2694         html_printer::calc_po_in, html_printer::next_horiz_pos,
2695         html_printer::remove_courier_tabs,
2696         html_printer::insert_tab0_foreach_tab, html_printer::begin_page):
2697         Updated.
2698         (html_printer::do_linelength, html_printer::do_pageoffset,
2699         html_printer::do_indentation, html_printer::do_tempindent,
2700         html_printer::do_tab_te): Simplified.
2701         (html_printer::do_pointsize): Check whether point size is really
2702         associated a `.tl' tag.
2703         (html_printer::do_break): Rewritten.
2704         (html_printer::troff_tag): Improved.
2705         (html_printer::flush_globs): Updated.
2706         (html_printer::lookahead_for_tables): Handle `is_br'.
2707         Use new functions.
2708         (html_printer::set_char): Check `sbuf_style.f'.
2709         (html_printer::write_navigation): Use string comparison.
2710         (html_printer::~html_printer): Emit `head_info'.
2711         (html_printer::special): Rewritten.
2712         (get_str, make_val): New functions.
2713         (main): New option `s' to set the base point size.
2715         * src/preproc/html/pre-html.cpp (scanArguments): Handle option `s'.
2717 2004-10-10  Gaius Mulley  <gaius@glam.ac.uk>
2719         * src/roff/troff/node.cpp: New extern `debug_state'.
2720         Include `stringclass.h' and `mtsm.h'.
2721         Implement new classes and class members from `node.h'.
2722         (real_output_file): Make `fp' public.
2723         (troff_output_file): New variables `cur_div_level' and `tag_list'.
2724         Update constructors.
2725         (troff_output_file::really_print_line): Check whether we should push
2726         the current troff state and use the state at the start of the
2727         invocation of this diversion.
2728         (troff_output_file::add_to_tag_list): New member function.
2729         (node::add_char): Handle `glyph_comp_np'.
2731         * src/roff/troff/node.h: Include `mtsm.h'.
2732         (node): New variables `state', `push_state', `div_nest_level',
2733         `is_special'.  Update constructors, all descendants.
2734         Pass additional argument to `add_char' member function.
2735         New virtual member functions `is_tag', `debug_node',
2736         `debug_node_list'.  Update all descendants.
2737         (tag_node): New class for handling tags.
2738         (output_file): Add variable `state'.
2740 2004-10-09  Gaius Mulley  <gaius@glam.ac.uk>
2742         * src/roff/troff/mtsm.cpp, src/roff/troff/mtsm.h: New files,
2743         providing a minimal troff state machine to emit meta tags for the
2744         post-grohtml device driver.
2746         * src/roff/troff/Makefile.sub (OBJS, CCSRCS, HDRS): Handle new
2747         files.
2749 2004-10-09  Werner LEMBERG  <wl@gnu.org>
2751         * tmac/trace.tmac: Fix handling of `am' and `am1' calls.
2753 2004-10-06  Gaius Mulley  <gaius@glam.ac.uk>
2755         * src/roff/troff/column.cpp (vjustify_node::copy): Updated.
2757         * src/roff/troff/div.h: Include `mtsm.h'.
2758         (diversion): New variables `any_chars_added', `needs_push',
2759         `saved_seen_break', `saved_seen_space', `saved_seen_eol',
2760         `saved_suppress_next_eol', `modified_tag'.
2761         New virtual member function `is_diversion'.  Update all descendants.
2763         * src/roff/troff/div.cpp (diversion::diversion,
2764         macro_diversion::macro_diversion): Updated.
2765         (do_divert): Handle `seen_break', `seen_space', `seen_eol',
2766         `suppress_next_eol'.
2767         (top_level_diversion::space): Handle `curenv->seen_space'.
2768         (page_offset): Update tag handling.
2769         (space_request, blank_line, flush_output): Don't call `add_html_tag'.
2771         * src/roff/troff/env.h (environment): Make `tabs' public.
2772         Remove `ignore_next_eol', `emitted_node'.
2773         Update `output_line', `output'.
2774         New variables `seen_space', `seen_eol', `suppress_next_eol',
2775         `seen_break'.
2776         New member functions `construct_state', `make_tag',
2777         `construct_format_state, `construct_new_line_state,
2778         `dump_troff_state'.
2779         Remove `add_html_tag', `make_html_tag'.
2781         * src/roff/troff/env.cpp: New externs `suppress_push',
2782         `get_diversion_state', `global_diverted_space'.
2783         (pending_output_line): New variable `was_centered'.
2784         Update constructor and all callers.
2785         (pending_output_line::output): Call `curenv->construct_format_state'.
2786         (environment::environment, environment::copy): Updated.
2787         (environment::output): Handle `was_centered'.
2788         (environment::add_char): Handle construct and diversion state.
2789         (environment::add_node): Handle construct state.
2790         (environment::newline): Handle `was_centered'.
2791         (environment::output_line): Updated.
2792         (environment::possibly_break_line): Updated.
2793         Update tag handling.
2794         (environment::add_html_tag): Replaced with...
2795         (environment::make_tag): New function.
2796         (environment::add_html_tag_tabs, environment::make_html_tag): Removed.
2797         (environment::dump_troff_state): New debugging function.
2798         (environment::construct_state, environment::construct_format_state,
2799         environment::construct_new_line_state): New functions.
2800         (environment::do_break): Updated.
2801         Handle `global_diverted_space'.
2802         (environment::handle_tag): Update tag handling.
2803         (point_size, fill, do_break_request): Don't call `add_html_tag'.
2804         (no_fill): Don't call `add_html_tag'.
2805         Set `suppress_next_eol'.
2806         (center, right_justify, line_length, indent, temporary_indent,
2807         set_tabs):
2808         Update tag handling.
2810         * src/roff/troff/input.cpp: Don't include `stringclass.h'.
2811         (input_iterator): New variables `is_diversion', `diversion_state'.
2812         Update constructors.
2813         (input_stack): New member functions `get_div_level',
2814         `get_diversion_state', `check_end_diversion'.
2815         New variables `div_level', `diversion_state'.  Initialize them.
2816         (suppress_push, global_diverted_space): New global variables.
2817         (input_stack::finish_get, input_stack::finish_peek,
2818         input_stack::remove_boundary, input_stack::end_file,
2819         input_stack::clear, input_stack::pop_macro): Call
2820         `check_end_diversion'.
2821         (input_stack::push): Handle `div_level' and `diversion_state'.
2822         (get_diversion_state): New function.
2823         (diverted_space_node::reread): Handle `global_diverted_space'.
2824         (macro::macro): Update constructors.
2825         (macro::is_diversion): New function.
2826         (macro::operator=): Set `is_a_diversion'.
2827         (string_iterator): New member function `is_diversion'.
2828         (string_iterator::string_iterator): Update constructors.
2829         (string_iterator::fill): Set `div_nest_level'.
2830         (macro_iterator): New member function `is_diversion'.
2831         (do_if_request): Handle `suppress_push'.
2832         (tag, taga): New functions.
2833         (init_input_requests): Add `tag' and `taga' requests.
2835 2004-10-05  Gaius Mulley  <gaius@glam.ac.uk>
2837         * src/include/font.h (font): New member function
2838         `get_image_generator'.
2839         New variables `unscaled_charwidths' and `image_generator'.
2841         * src/libs/libgroff/font.cpp (font::get_width): Always return the
2842         character's unscaled width if `font::unscaled_charwidths' is set.
2843         (font::get_image_generator): New function.
2844         (font::load_desc): Check the `unscaled_charwidths' and
2845         `image_generator' keywords.
2847         * src/libs/libgroff/fontfile.cpp: Initialize
2848         `font::unscaled_charwidths' and `font::image_generator'.
2850         * font/devhtml/DESC.proto: s/html/unscaled_charwidths/.
2852         * font/devhtml/Makefile.sub (DESC): Set `image_generator' keyword.
2854         * man/groff_font.man: Document `unscaled_charwidths' and
2855         `image_generator'.
2857         * src/preproc/html/pre-html.cpp: Include `device.h'.
2858         (image_gen): New global variable.
2859         (imageList::createPage): Use `image_gen'.
2860         (main): Use `image_generator' keyword.
2862 2004-10-04  Gaius Mulley  <gaius@glam.ac.uk>
2864         * tmac/html.tmac: Handle \[sqrtex].
2866 2004-10-04  Gaius Mulley  <gaius@glam.ac.uk>
2868         * src/include/printer.h (printer): New virtual method `round_width'.
2870         * src/devices/grodvi/dvi.cpp, src/devices/grolbp/lbp.cpp,
2871         src/devices/grolj4/lj4.cpp, src/devices/grops/ps.cpp,
2872         src/devices/grotty/tty.cpp (printer::round_width): New function
2873         member.
2875         * src/devices/grohtml/post-html.cpp (printer::round_width): New
2876         function member.
2877         (html_printer::set_numbered_char): Use it.
2879 2004-10-03  Gaius Mulley  <gaius@glam.ac.uk>
2881         * aclocal.m4 (GROFF_GHOSTSCRIPT_PATH): New macro.
2883         * configure.ac: Call GROFF_GHOSTSCRIPT_PATH.
2885         * configure: Regenerated.
2887         * Makefile.in (GHOSTSCRIPT): New variable.
2888         (MDEFINES): Add GHOSTSCRIPT.
2890 2004-10-03  Werner LEMBERG  <wl@gnu.org>
2892         * INSTALL.gen: Updated (taken from texinfo CVS).
2894 2004-09-28  Werner LEMBERG  <wl@gnu.org>
2896         * NEWS: Updated.
2898 2004-09-28  Heinz-Jürgen Oertel  <hj.oertel@surfeu.de>
2900         * tmac/groff_www.man: Revised and updated.
2902 2004-09-26  Werner LEMBERG  <wl@gnu.org>
2904         Fix \$@ and \$* to handle any number of arguments.
2906         * src/roff/troff/input.h (BEGIN_QUOTE, END_QUOTE): New special
2907         characters.
2909         * src/roff/troff/input.cpp (input_iterator::internal_level):
2910         Removed.
2911         (input_stack): New member functions `increase_level' and
2912         `decrease_level'.
2913         (input_stack::get_level): Don't use `internal_level'.
2914         (get_copy, token::next): Handle BEGIN_QUOTE and END_QUOTE.
2915         (end_quote_iterator): Completely removed.
2916         (interpolate_arg): Build string for \$@ and \$* which is then
2917         pushed onto the input stack.
2919 2004-09-23  Keith Marshall  <keith.d.marshall@ntlworld.com>
2921         * tmac/groff_ms.man, doc/groff.texinfo (ms Document Control
2922         Registers): Document changes from 2004-09-19.
2924 2004-09-23  Werner LEMBERG  <wl@gnu.org>
2926         * tmac/an-old.tmac (ne): Using default scaling operator.
2928 2004-09-19  Keith Marshall  <keith.d.marshall@ntlworld.com>
2930         This change implements the following features:
2932         PORPHANS
2933           New numeric register: Defines number of lines following LP, PP,
2934           QP, IP or XP, which must be kept together, before any automatic
2935           page break.  If insufficient space remains on the current page, a
2936           page break is forced before the new paragraph begins.
2938         HORPHANS
2939           New numeric register: Sets number of lines of following paragraph
2940           which must be kept with a heading, defined by NH or SH, before any
2941           automatic page break.  If insufficient space remains on the
2942           current page, a page break is forced before the heading.
2944         GROWPS
2945           (Thanks to Joerg van den Hoff, for this idea).
2947           New numeric register: Sets the first level of heading (set with
2948           NH), which will keep the same point size as body text; e.g. if
2949           GROWPS is set to 3, .NH 3, .NH 4, ... will produce headings at the
2950           point size specified by \n[PS], but .NH 2 and .NH 1 will have
2951           progressively larger point sizes, determined by \n[PSINCR] (see
2952           below).
2954         PSINCR
2955           New numeric register: Sets the point size increment for each level
2956           of heading, (set with NH), below the threshold level set by
2957           GROWPS; e.g. if \n[PS] = 10, \n[GROWPS] = 3 and \n[PSINCR] = 2.0p,
2958           then .NH 1 will produce 14pt headings, .NH 2 will produce 12pt,
2959           and all other levels will remain at 10pt, (because \n[PS] = 10).
2961         SH
2962           Existing macro now accepts a numeric argument, to make heading
2963           size match that of NH with same argument value, when the
2964           GROWPS/PSINCR feature is enabled.
2966         SN-DOT
2967           New string, set by NH macro, replaces the existing (undocumented)
2968           use of SN, to represent the assigned section number.
2970         SN-NO-DOT
2971           New string, set by NH macro, represents the assigned section
2972           number, but omits the terminal period (periods at intermediate
2973           levels are retained).
2975         SN
2976           String set by NH macro, originally undocumented, now implemented
2977           as an alias for SN-DOT (which reproduces original behaviour).
2979         * tmac/s.tmac (PORPHANS): New register.
2980         (par*start): Use it.
2981         (HORPHANS, GROWPS, PSINCR): New registers.
2982         (SH-NO-TAG, @SH): Use them.
2983         (@NH): Improved.
2985 2004-09-19  Keith Marshall  <keith.d.marshall@ntlworld.com>
2987         * NEWS, doc/groff.texinfo (ms Display and Keeps), tmac/groff_ms.man:
2988         Document the deletion of `Ds' and `De' macros.
2990 2004-09-10  Werner LEMBERG  <wl@gnu.org>
2992         In tbl, handle \a as an interpreted leader character if in
2993         compatibility mode.
2995         * src/preproc/tbl/table.h (PREFIX, PREFIX_CHAR, LEADER,
2996         LEADER_CHAR): New macros.
2997         (compatible_flag): New declaration.
2999         * src/preproc/tbl/main.cpp (table_input): Add LEADER_1, LEADER_2,
3000         LEADER_3, and LEADER_4 to `state'.
3001         (table_input::get): Handle `\a'.
3003         * src/preproc/tbl/table.cpp (PREFIX): Removed.
3004         (LEADER_REG): New macro.
3005         (table::init_output): Define LEADER_REG string register if in
3006         compatibility mode.
3008         * src/preproc/tbl/tbl.man: Document it.
3010 2004-08-18  Werner LEMBERG  <wl@gnu.org>
3012         * tmac/doc.tmac (An): Fix error message.
3014 2004-08-06  Werner LEMBERG  <wl@gnu.org>
3016         * src/preproc/tbl/main.cpp (main): Call `fatal' not `error' if a
3017         file can't be opened.  UNIX tbl has the same behaviour.
3019 2004-08-05  Y T  <doarhop@hotmail.com>
3021         * src/preproc/grn/hdb.cpp (compatibility_flag): Add declaration.
3022         (DBRead): If in compatibility mode, take into account the text
3023         when computing figure boundaries.
3025 2004-08-05  Werner LEMBERG  <wl@gnu.org>
3027         * src/preproc/soelim/soelim.man: Improved.  Based on suggestions
3028         from Tadziu Hoffmann.
3030 2004-08-03  Werner LEMBERG  <wl@gnu.org>
3032         * doc/meref.me: Document `_M' register.
3034 2004-08-03  Martin Husemann  <martin@duskware.de>
3036         Make hpftodit work correctly on big-endian systems.
3038         * src/utils/hpftodit/hpftodit.cpp (File): New method
3039         `get_uint32(char *)'.
3040         (entry): New member `orig_value'.
3041         (read_tags): Use new method.
3042         (output_font_name, read_and_output_pcltypeface, dump_ascii):
3043         Updated.
3045 2004-08-01  Werner LEMBERG  <wl@gnu.org>
3047         * tmac/s.tmac: Undo change 2003-06-29.  The proper macro definitions
3048         are already in X11's `macros.t' file.
3050 2004-08-01  Jeff Conrad  <jeff_conrad@msn.com>
3052         * src/utils/hpftodit/hfptodit.cpp (output_font_name, dump_ascii):
3053         Fix casting bug.
3054         (read_and_output_pcltypeface): Handle strings with length <= 4.
3056 2004-07-27  Egil Kvaleberg  <egil@kvaleberg.no>
3058         * tmac/s.tmac (pg@top): Don't save `PO' register.
3059         (pg*end-col, pg*end-page): Directly use `PO' register.
3061 2004-07-27  Werner LEMBERG  <wl@gnu.org>
3063         * man/groff_tmac.man: Mention `trace' and `pic' macro packages.
3065         * src/preproc/refer/refer.cpp (output_references): Check for
3066         empty hash table.
3067         * src/preproc/refer/refer.man: Improve documentation of
3068         `bibliography' command.
3070 2004-07-26  Werner LEMBERG  <wl@gnu.org>
3072         Add requests `fcolor' and `gcolor'.
3074         * src/roff/troff/env.cpp (fill_color_change, glyph_color_change):
3075         New functions.
3076         (init_env_requests): Add `fcolor' and `gcolor'.
3078         * src/roff/troff/input.h: Export do_glyph_color and do_fill_color.
3080         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo
3081         (Colors): Document new requests.
3083 2004-07-24  Werner LEMBERG  <wl@gnu.org>
3085         Add support for fractional point sizes in ms macros.  A value for
3086         PS, VS, FPS, and FVS greater than or equal to 1000 is always divided
3087         by 1000.  For example, `.nr PS 10250' sets the font size to 10.25p.
3089         * tmac/s.tmac (@AU, @AI, par@load-init, par@init, par@reset, NL,
3090         PX): Handle fractional point sizes for PS, VS, FPS, and FVS.
3092         * tmac/groff_ms.man, docs/groff.texinfo (ms Document Control
3093         Registers), NEWS: Document it.
3095 2004-07-19  Werner LEMBERG  <wl@gnu.org>
3097         * src/preproc/pic/lex.cpp (for_input): Add member `from'.
3098         Update constructor.
3099         (do_for, for_input::get, for_input::peek): Handle negative `by'.
3100         * src/preproc/pic/pic.man, doc/pic.ms, NEWS: Document it.
3102 2004-07-08  Thomas Klausner  <wiz@netbsd.org>
3104         * tmac/doc-syms (doc-str-St--p1003.1-2004): New string.
3105         * tmac/groff_mdoc.man: Updated.
3107 2004-07-05  Werner LEMBERG  <wl@gnu.org>
3109         * doc/groff.texinfo (Manipulating Hyphenation): Further improve
3110         documentation of `hcode'.
3112 2004-07-04  Sang Dae Yu  <sdyu@bh.knu.ac.kr>
3114         Improve appearance of arrows in pic.
3116         * src/preproc/pic/object.cpp (draw_arrow): Make outline of filled
3117         arrow head thin.
3118         Use two line segments for drawing non-filled arrow head.
3119         (line_object::print, spline_object::print): Shorten line length to
3120         avoid arrow sticking.
3121         (arc_object::print): Take arrow direction into account.
3123 2004-07-03  Heinz-Jürgen Oertel  <hj.oertel@surfeu.de>
3125         * tmac/groff_www.man: Update documentation of .MPIMG.
3127 2004-07-03  Werner LEMBERG  <wl@gnu.org>
3129         * tmac/an-old.tmac (RI): Always start with font `R'.
3130         (RI, IR): Properly end with font `R'.
3132 2004-07-02  Paul Eggert  <eggert@cs.ucla.edu>
3134         * man/ditroff.man, man/groff_font.man, man/groff_out.man,
3135         src/devices/grohtml/grohtml.man, src/preproc/grn/grn.man,
3136         src/preproc/pic/pic.man, tmac/groff_man.man, tmac/groff_ms.man:
3137         Don't pass more than six arguments to .R, .I, .B, etc., for
3138         compatibility with traditional troff macros.
3140 2004-07-02  Werner LEMBERG  <wl@gnu.org>
3142         * src/roff/troff/input.h: s/COMPATIBLE_SAVE/PUSH_GROFF_MODE/.
3143         s/COMPATIBLE_RESTORE/POP_GROFFCOMP_MODE/.
3144         Update all users.
3145         (PUSH_COMP_MODE): New internal character constant.
3146         Update all users.
3148         * src/roff/troff/input.cpp (get_copy): Handle PUSH_GROFF_MODE,
3149         PUSH_COMP_MODE, and POP_GROFFCOMP_MODE.
3150         (token::next, macro::append): Handle PUSH_COMP_MODE.
3151         (decode_args): Add PUSH_GROFF_MODE or PUSH_COMP_MODE before and
3152         POP_GROFFCOMP after each of the decoded arguments to make them
3153         independent from the compatibility mode status.
3154         (comp_mode): Add `COMP_ENABLE'.
3155         (do_define_string, do_define_macro): Handle COMP_ENABLE.
3156         (define_string, append_string, define_macro, define_indirect_macro,
3157         append_macro, append_indirect_macro): Handle `compatible_flag'.
3158         (chop_macro, substring_request, asciify): Handle PUSH_COMP_MODE.
3160         * man/groff_diff.man, doc/groff.texinfo: Updated.
3162 2004-07-01  Werner LEMBERG  <wl@gnu.org>
3164         * doc/groff.texinfo: Improve documentation of `hcode'.
3165         Use @documentencoding and convert document to latin-1; to do that
3166         make latin characters active and assign proper macros (within a
3167         @tex...@end tex environment).
3168         * doc/Makefile.in (.texinfo.html, groff): Use --enable-encoding.
3169         * doc/Makefile.sub (groff): Ditto.
3171 2004-06-29  Werner LEMBERG  <wl@gnu.org>
3173         Implement two new conditional operators `F <name>' and `S <name>'
3174         which check whether <name> is a valid font or style, respectively.
3176         * src/libs/libgroff/font.cpp (text_file): Add `silent' member.
3177         (text_file::text_file): Updated.
3178         (text_file::error): Don't emit message if `silent' is set.
3179         (font::load_font): Add optional third argument (which is directly
3180         passed to `load'.
3181         (font::load): Add optional second argument to check the header of
3182         a font only, without emitting warning or error messages.
3183         * src/include/font.h (font): Updated.
3185         * src/roff/troff/input.cpp (do_if_request): Implement `S' and `F'
3186         conditionals.
3187         * src/roff/troff/node.cpp (mount_font_no_translate): Add optional
3188         fourth argument to check a font without mounting.
3189         (check_font, check_style): New functions.
3190         * src/roff/troff/node.h: Updated.
3192         * man/groff_diff.man, man/groff.man, NEWS, doc/groff.texinfo:
3193         Updated.
3195 2004-06-27  Werner LEMBERG  <wl@gnu.org>
3197         Implement new string-valued register `.sty' to return the current
3198         style name.
3200         * env.cpp (environment::get_style_name_string): New function.
3201         (init_env_requests): Add `.sty' register.
3202         * env.h (environment): Updated.
3203         * node.cpp (font_info): Make `get_style_name' a friend.
3204         (get_style_name): New function.
3205         * node.h: Updated.
3207         * man/groff_diff.man, man/groff.man, NEWS, doc/groff.texinfo:
3208         Updated.
3210 2004-06-15  Werner LEMBERG  <wl@gnu.org>
3212         * src/preproc/tbl/main.cpp (process_data) <GOT_RIGHT_BRACE>: Handle
3213         `nospaces' option.
3215 2004-06-10  Colin Percival  <colin.percival@wadham.ox.ac.uk>
3217         * doc/meintro.me, doc/meref.me: Don't use \*[td], \n[dy], \*[mo],
3218         and \n[mo] to avoid dependency on current date.
3220 2004-06-08  Werner LEMBERG  <wl@gnu.org>
3222         * Makefile.sub (install_data): New target.
3224 2004-06-04  Werner LEMBERG  <wl@gnu.org>
3226         * src/libs/libxutil/Makefile.sub (EXTRA_CFLAGS): Define.
3228 2004-06-03  Werner LEMBERG  <wl@gnu.org>
3230         * src/devices/xditview/Makefile.sub (EXTRA_LDFLAGS): Fix typo and
3231         order of libraries.
3232         (install_data): Add $(srcdir).
3234         * src/utils/xtotroff/Makefile.sub (EXTRA_LDFLAGS): Fix order of
3235         libraries.
3237 2004-06-02  Werner LEMBERG  <wl@gnu.org>
3239         * aclocal.m4 (GROFF_X11): s/have_no_x/groff_no_x/.
3240         Add X11 stuff to CFLAGS, LDFLAGS, and LIBS temporarily.
3241         Add test for Xmu library.
3242         (GROFF_APPRESDIR_OPTION, GROFF_APPRESDIR_CHECK,
3243         GROFF_APPRESDIR_DEFAULT): New macros.
3245         * configure.ac: Call GROFF_APPRESDIR_OPTION, GROFF_APPRESDIR_CHECK,
3246         and GROFF_APPRESDIR_DEFAULT.
3248         * configure: Regenerated.
3250         * Makefile.in (appresdir): New variable.
3251         (MDEFINES): Add appresdir.
3253         * src/devices/xditview/Makefile.sub (EXTRA_LDFLAGS): Add -Xmu and
3254         -Xt.
3255         (install_data, uninstall_sub): New targets to handle GXditview.ad.
3257         * src/utils/indxbib/Makefiles.ub (install_data): Depend on
3258         `$(srcdir)/eign', not `eign'.
3260         * MANIFEST, INSTALL, NEWS, PROBLEMS: Updated.
3262         * man/groff_out.man, man/roff.man, src/devices/grops/grops.man,
3263         src/devices/xditview/gxditview.man, src/roff/groff/groff.man:
3264         Protect (g)xditview with `\%' to avoid hyphenation.
3265         Other minor formatting.
3267 2004-06-01  Werner LEMBERG  <wl@gnu.org>
3269         Integrate gxditview into groff's standard directory hierarchy.
3271         * src/xditview/*: Moved to ...
3272         * src/devices/xditview/*: Here.
3273         Moved DviChar.h and XFontName.h to src/include.
3274         Moved DviChar.c and XFontName.c to new directory src/libs/libxutil.
3275         Split off `xmalloc' into new file src/libs/libxutil/xmalloc.c.
3276         Moved xtotroff.c to new directory src/utils/xtotroff.
3277         Provide proper Makefile.sub files (reusing the stuff from
3278         Imakefile.in).
3279         DESC renamed to DESC.in.
3280         Removed GXDitview-ad.h, INSTALL, Imakefile.in.
3281         Converted everything from K&R to ANSI C.
3282         Decorated with const where appropriate.
3283         Cast string constants with `String' and `char *' where appropriate.
3284         Made it compile with C++ (used as a C compiler).
3285         Removed other minor compiler warnings.
3287         * src/devices/xditview/device.c: Include config.h, string.h, and
3288         defs.h.
3289         Don't declare `exit', `strtok', `strchr', and `getenv'.
3290         (FONTPATH): Remove.
3292         * src/devices/xditview/font.c: Don't declare `XParseFontName' and
3293         `XFormatFontName'.
3295         * src/devices/xditview/xditview.c: Include config.h.
3296         Include stdio.h earlier.
3297         Protect declaration of `popen' and `pclose' with
3298         NEED_DECLARATION_POPEN and NEED_DECLARATION_PCLOSE.
3299         Replace `caddr_t' with `XtPointer'.
3300         (MakePromptFunc): New typedef.
3301         (DoPrint): Use RETSIGTYPE.
3302         (promptfunction): Change type to MakePromptFunc.
3303         (MakePrompt): Use MakePromptFunc for third argument.
3304         (xmalloc): Removed.
3306         * src/devices/xditview/ad2c: Add casts to `String'.
3308         * src/include/XFontName.h (XFontNameString): Don't use array
3309         notation.
3310         Add prototypes for `XParseFontName', `XFormatFontName',
3311         `XCompareFontName', and `XCopyFontName'.
3313         * src/include/Makefile.sub (HDRS): Add `DviChar.h' and
3314         `XFontName.h'.
3316         * src/utils/xtotroff/xtotroff.c: Include getopt.h.
3317         Don't declare `XParseFontName' and `XFormatFontName'.
3318         (xmalloc): Removed.
3319         (main): Remove `optind' and `optarg'.
3321         * Makefile.in (XDEVDIRS, XPROGDIRS, XLIBDIRS): New variables
3322         (to select programs which need X).
3323         Make XDEVIDIRS depend on `FORCE'.
3324         (X_CFLAGS, X_LIBS, X_EXTRA_LIBS, X_PRE_LIBS): New variables (for
3325         X support).
3326         (MDEFINES): Updated.
3327         (LIBDIRS): Use XLIBDIRS.
3328         (CPROGDIRS): Use XPROGDIRS.
3329         (DEVDIRS): Remove font directories for gxditview.
3330         (ALLDIRS, DISTDIRS): Add XDEVDIRS.
3331         (EXTRADIRS): Remove src/xditview.
3333         * Makefile.sub (DISCLEANFILES): Updated.
3335         * Makefile.comm (LIBXUTIL): New variable.
3336         (.cpp.o, .cpp.obj): Handle EXTRA_CCFLAGS.
3337         (.c.o, .c.obj, .y.o): Handle EXTRA_CFLAGS.
3339         * Makefile.cpg, Makefile.ccpg ($PROG): Handle EXTRA_LDFLAGS.
3341         * aclocal.m4 (GROFF_X11): New function.
3343         * configure.ac: Call GROFF_X11.
3344         Don't create src/xditview/Imakefile.
3345         Don't emit notice how to build gxditview.
3347         * configure: Regenerated.
3349         * test-groff.in (GROFF_BIN_PATH, XENVIRONMENT): Updated.
3351 2004-05-28  Akihiro Sagawa  <sagawa@sohgoh.net>
3353         * Makefile.in (CPPFLAGS): Define.
3354         (MDEFINES): Add CPPFLAGS.
3356 2004-05-27  Werner LEMBERG  <wl@gnu.org>
3358         * arch/misc/Makefile.sub (shdeps.sed): Use $(srcdir).
3360 2004-05-26  Niklas Edmundsson  <nikke@acc.umu.se>
3362         Fix problems with `friend name injections'.
3364         * src/preproc/eqn/box.h (make_mark_box, make_lineup_box,
3365         make_script_box), src/roff/troff/div.h (end_diversions),
3366         src/roff/troff/env.h (title), input.cpp (process_input_stack): Undo
3367         change 2004-04-08.
3369 2004-05-25  Bernd Warken  <bwarken@mayn.de>
3371         * src/preproc/pic/pic.man, doc/pic.ms: Add example for `command'.
3373 2004-05-25  Werner LEMBERG  <wl@gnu.org>
3375         * src/libs/libgroff/cset.cpp, src/libs/libgroff/lf.cpp,
3376         src/libs/libgroff/color.cpp: Include lib.h.
3378 2004-05-25  Paul Eggert  <eggert@cs.ucla.edu>
3380         * PROBLEMS: Update documentation for problems with Sun C++ 5.0
3381         through Forte 6u1, and for how to get GNU make on Solaris.
3383 2004-05-24  Werner LEMBERG  <wl@gnu.org>
3385         * PROBLEMS: Document problems with gcc 3.4.0 on Sun.  Reported
3386         by Paul Eggert.
3388 2004-05-15  Keith Marshall  <keith.d.marshall@ntlworld.com>
3390         * arch/misc/Makefile.sub (shdeps.sed): Don't use `$<' in explicit
3391         rule.
3393 2004-05-14  Werner LEMBERG  <wl@gnu.org>
3395         * REVISION: Set to 2.
3397         * aclocal.m4 (GROFF_STDINT_H): Removed.
3398         (GROFF_INTTYPES_H): Define HAVE_CC_INTTYPES_H.
3400         * configure.ac: Updated.
3401         * configure, src/include/config.hin: Regenerated.
3403         * src/libs/libgroff/tmpname.cpp: Don't include stdint.h but
3404         inttypes.h conditionally.
3406 2004-05-13  Werner LEMBERG  <wl@gnu.org>
3408 Version 1.19.1 released
3409 =======================
3411 2004-05-10  Stephen Gildea  <http://www.gildea.com/stephen>
3413         * src/preproc/refer/label.y (same_author_last_name,
3414         same_author_name): Handle empty sort keys.
3416 2004-05-10  Werner LEMBERG  <wl@gnu.org>
3418         * NEWS, README, TODO, PROJECTS, PROBLEMS, MANIFEST, doc/webpage.ms,
3419         tmac/TODO: Updated.
3421         * tmac/doc-syms (doc-str-Lb-libposix, doc-str-Lb-libpthread,
3422         doc-str-Lb-librt): Reset font.
3423         (Lb): Rename `doc-str-Lb' to `doc-str-Lb1'.
3424         Provide `doc-str-Lb' to reset font.
3425         * tmac/groff_mdoc.man: Updated.
3427 2004-05-08  Jan Schaumann  <jschauma@netmeister.org>
3429         * src/preproc/html/pre-html.cpp (make_message): Make it work for
3430         snprintf versions which don't conform to ANSI C 99 (this is,
3431         counting the string's trailing null byte in the return value).
3433 2004-05-07  Keith Marshall  <keith.d.marshall@ntlworld.com>
3435         * src/roff/troff/node.cpp (suppress_node::tprint): Don't expect
3436         that all implementations of sprintf handle null pointers correctly.
3438 2004-05-04  Werner LEMBERG  <wl@gnu.org>
3440         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
3441         Document `.U' register.
3443         * src/roff/troff/env.cpp (environment::mark_last_line)
3444         [WIDOW_CONTROL]: Fix scope of `p' for new C++ compilers.
3446 2004-05-04  Larry Kollar  <kollar@alltel.net>
3448         New read-only register `.U'; it returns 1 in safer mode and 0
3449         otherwise.
3451         * src/roff/troff/input.cpp (init_input_requests): Implement `.U'
3452         register.
3454 2004-05-03  Werner LEMBERG  <wl@gnu.org>
3456         * install-sh, mkinstalldirs: New versions; taken from texinfo CVS.
3458 2004-04-17  Werner LEMBERG  <wl@gnu.org>
3460         * src/include/font.h (font): Use `int' for ch_index.
3461         * src/libs/libgroff/font.cpp (font::alloc_ch_index,
3462         font::compact): Updated.
3464         * src/roff/groff/pipeline.c (run_pipeline) [_WIN32]: Fix compiler
3465         warnings.
3467         * src/roff/troff/div.cpp (begin_page), src/roff/troff/env.cpp
3468         (hyphen_word): Fix compiler warnings.
3469         * src/roff/troff/input.cpp (get_char_for_escape_name): Return
3470         `char'.
3471         Update all callers.
3472         (get_delim_number, get_line_arg): Change second argument type to
3473         `unsigned char'.
3474         (macro_header::copy, token::next, do_define_string,
3475         do_define_character, substring_request, asciify_macro,
3476         unformat_macro, read_size, non_interpreted_node::interpret,
3477         while_request, main: Fix compiler warnings.
3478         (read_color_draw_node): Initialize `col'.
3480         * src/preproc/tbl/table.cpp (horizontal_span, table_entry): Make
3481         `start_col' and `end_col' of type `int'.
3482         (vertical_rule): Make `col' of type `int'.
3484         * src/preproc/grn/hdb.cpp (DBRead): Protect call to getc with check
3485         for EOF.
3487         * src/preproc/refer/label.y (uppercase_array, lowercase_array):
3488         New arrays.
3489         (format_serial): Use them to remove dependency on ASCII.
3491         * src/devices/grops/ps.cpp (ps_printer::define_encoding): Fix
3492         compiler warning.
3493         * src/devices/grops/psrm.cpp (resource_manager::supply_resource):
3494         Ditto.
3496         * src/devices/grotty/tty.cpp (tty_font::load_tty_font): Fix
3497         compiler warnings.
3498         (glyph): Change type of `hpos' to `int'.
3500         * src/devices/lbp/lbp.cpp (strsep): Removed.  Unused.
3501         * src/devices/lbp/lbp.h (splinerel): Fix compiler warnings.
3503         * src/utils/tfmtodit.cpp (gf::load): Fix compiler warnings.
3505         * src/utils/pfbtops/pfbtops.c (get_text): Fix compiler warning.
3507 2004-04-16  Werner LEMBERG  <wl@gnu.org>
3509         * src/devices/grolbp/lbp.h, src/preproc/grn/gprint.h,
3510         src/preproc/grn/hgraph.cpp, src/preproc/grn/hpoint.cpp,
3511         src/preproc/html/pushback.cpp, src/preproc/html/pushback.h: Use
3512         `double' instead of `float' everywhere.
3513         * src/preproc/grn/main.cpp: Use `double' instead of `float'
3514         everywhere.
3515         (main): Add return value.
3516         * src/preproc/grn/hdb.cpp: Use `double' instead of `float'
3517         everywhere.
3518         Update all user functions.
3520         * src/include/search.h, src/include/ptable.h, src/include/printer.h,
3521         src/preproc/eqn/box.h, src/preproc/pic/object.h,
3522         src/preproc/refer/refer.h, src/preproc/tbl/table.h,
3523         src/preproc/tbl/table.cpp, src/roff/troff/env.h,
3524         src/roff/troff/div.h, src/roff/troff/token.h, src/roff/troff/node.h,
3525         src/roff/troff/input.cpp, src/roff/troff/request.h,
3526         src/roff/troff/node.cpp: Don't mix `struct' and `class' in forward
3527         declarations.
3529         * src/utils/indxbib/signal.c: Include stdlib.h.
3531 2004-04-14  Keith Marshall  <keith.d.marshall@ntlworld.com>
3533         * tmac/s.tmac (@init, RP): Allow initialization of the PO register
3534         before the first page.
3536 2004-04-14  Thomas Klausner  <wiz@netbsd.org>
3538         * tmac/doc-common (doc-volume-as-*): Use lowercase names.
3539         (doc-operating-system-*): Updated.
3540         * tmac/doc-syms (doc-str-St-*): Various small fixes.
3541         (doc-str-Lb-*): Add more library names.
3543 2004-04-10  Art Haas  <ahaas@airmail.net>
3545         * src/utils/hpftodit/hpuni.cpp (hp_msl_to_unicode_list): Don't
3546         use anonymous type.
3548 2004-04-09  Art Haas  <ahaas@airmail.net>
3550         * src/utils/tfmtodit.cpp (lig_chars): Don't use anonymous type.
3552 2004-04-09  Keith Marshall  <keith.d.marshall@ntlworld.com>
3554         * arch/misc/shdeps.sh: Generate better comment for sed script.
3556 2004-04-08  Art Haas  <ahaas@airmail.net>
3558         * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list),
3559         src/libs/libgroff/uniglyph.cpp (unicode_to_glyph_list),
3560         src/libs/libgroff/uniuni.cpp (unicode_decompose_list),
3561         src/preproc/eqn/box.cpp (param_table), src/preproc/grn/hgraph.cpp
3562         (polyfill), src/preproc/grn/main.cpp (polyfill),
3563         src/preproc/refer/command.cpp (command_table),
3564         src/utils/tfmtodit.cpp (lig_table): Don't use anonymous types (which
3565         gcc 3.5 doesn't like).
3567 2004-04-08  Werner LEMBERG  <wl@gnu.org>
3569         Removing many compiler warnings.  groff should now compile with
3570         a C++ compiler used for C files also.  [Simple variable renamings
3571         to avoid shadowing aren't logged in detail.]
3573         * src/devices/grodvi/dvi.cpp: Some local variable renamings.
3574         (draw_dvi_printer::draw) ['c']: Enclose in block.
3576         * src/devices/grohtml/post-html.cpp: Some local variable renamings.
3577         (page::add_line): Fix typos.
3578         * src/devices/grohtml/html-text.cpp: Some local variable renamings.
3580         * src/devices/grolbp/lbp.cpp: Don't define _GNU_SOURCE.
3581         Some local variable renamings.
3582         * src/devices/grolbp/lbp.h: Some local variable renamings.
3584         * src/devices/grolj4/lj4.cpp, src/devices/grotty/tty.cpp: Some local
3585         variable renamings.
3587         * src/libs/libbib/index.cpp (index_search_item_iterator::get_tag):
3588         Remove redundant local variable declaration.
3589         * src/libs/libbib/map.c (mapread, unmap): Don't use K&R style.
3590         Don't use `caddr_t' but `void *'.
3591         Enclose functions with `extern "C"' for C++.
3593         * src/libs/libdriver/input.cpp (remember_filename,
3594         remember_source_filename): Use cast for string constant.
3596         * src/libs/libgroff/font.cpp, src/libs/libgroff/fontfile.cpp,
3597         src/libs/libgroff/nametoindex.cpp, src/libs/libgroff/paper.cpp,
3598         src/libs/libgroff/geometry.cpp: Some local variable renamings.
3599         * src/libs/libgroff/iftoa.c, src/libs/libgroff/itoa.c: Don't use K&R
3600         style.
3601         Enclose functions with `extern "C"' for C++.
3602         * src/libs/libgroff/quotearg.c (TRUE,FALSE): Define as macros.
3603         (needs_quoting): Return `int'.
3604         (quote_arg): Add proper casts to malloc and realloc.
3605         * src/libs/libgroff/spawnvp.c: Compile code only for MS-DOS and
3606         various MS Windows environments.
3607         (spawnvp_wrapper): Add proper cast to malloc.
3609         * src/preproc/eqn/box.h: Remove redundant declarations of
3610         `make_script_box', `make_mark_box' and `make_lineup_box'.
3611         * src/preproc/eqn/eqn.y: Remove redundant declaration of `strsave'.
3612         * src/preproc/eqn/script.cpp, src/preproc/eqn/pile.cpp: Some local
3613         variable renamings.
3615         * src/preproc/grn/hpoint.cpp: Some local variable renamings.
3616         * src/preproc/grn/hgraph.cpp: Some local variable renamings.
3617         (dx, dy): Renamed functions to...
3618         (deltax, deltay): This.
3619         * src/preproc/grn/main.cpp: Some local variable renamings.
3620         (deffont): Add `const'.
3621         (initpic, conv): Use cast for string constant.
3623         * src/preproc/html/pre-html.cpp: Some local variable renamings.
3624         (makeFileName, alterDeviceTo, addZ): Use cast for string constant.
3625         (char_buffer::run_output_filter): Second argument is unused.
3626         * src/preproc/html/pushback.cpp: Some local variable renamings.
3628         * src/preproc/pic/pic.y: Remove redundant declaration of `do_copy'.
3629         * src/preproc/pic/object.cpp: Some local variable renamings.
3631         * src/preproc/refer/label.y (lookup_label): Remove redundant
3632         declaration of local variable.
3634         * src/preproc/soelim.cpp: Remove redundant declaration of
3635         `interpret_lf_args'.
3637         * src/preproc/tbl/main.cpp: Some local variable renamings.
3639         * src/roff/groff/groff.cpp (main): Use cast for string constant.
3640         * src/roff/groff/pipeline.c: Enclose declarations of `error',
3641         `c_fatal', and `i_to_a' with `extern "C"' for C++.
3642         Don't use C++-style comments.
3644         * src/roff/troff/env.h: Remove redundant declaration of `title'.
3645         * src/roff/troff/node.h, src/roff/troff/env.cpp,
3646         src/roff/troff/div.cpp, src/roff/troff/node.cpp: Some local variable
3647         renamings.
3648         * src/roff/troff/div.h: Remove redundant declaration of
3649         `end_diversions'.
3650         * src/roff/troff/troff.h: Remove redundant declaration of
3651         `cleanup_and_exit'
3652         * src/roff/troff/input.cpp: Remove redundant declaration of
3653         `handle_first_page_transition' and `process_input_stack'.
3655         * src/utils/hpftodit.cpp: Some local variable renamings.
3657         * src/utils/indxbib/signal.c: Enclose functions with `extern "C"'
3658         for C++.
3659         Don't define RETSIGTYPE.
3660         * src/utils/indxbib/indxbib.cpp: Some local variable renamings.
3662         * src/utils/pfbtops/pfbtops.cpp: Don't use K&R style.
3663         (error): Use `const' in argument.
3664         (main): Remove redundant declaration of `optind'.
3665         Move declaration of `Version_string' to top-level.
3667         * PROBLEMS: Document difficulties compiling signal.c if a C++
3668         compiler is used for C.
3670 2004-04-07  Werner LEMBERG  <wl@gnu.org>
3672         * Makefile.sub (DISTCLEANFILES): Add `test-groff'.
3674 2004-04-06  Keith Marshall  <keith.d.marshall@ntlworld.com>
3676         Make scripts like nroff.sh and neqn.sh portable across various
3677         (Unix-like) shell implementations from Cygwin, MSYS, etc., which use
3678         non-POSIX path separators.  The idea is to extend those scripts to
3679         decide at run-time (of the script) which path separator to use.
3681         * arch/misc/Makefile.sub: New file.
3682         * arch/misc/shdeps.sh: New file, generating OS dependency fixups.
3683         This script handles @GROFF_BIN_PATH_SETUP@, replacing it with
3684         a proper definition of the variable `GROFF_RUNTIME'.
3686         * Makefile.in (SH_DEPS_SED_SCRIPT): New variable.
3687         (MDEFINES): Add SH_DEPS_SED_SCRIPT.
3688         (PROGDEPDIRS): New variable.
3689         `FORCE' it.
3690         (PROGDIRS): Add PROGDEPDIRS.
3692         * src/preproc/eqn/Makefile.sub (neqn): Call SH_DEPS_SED_SCRIPT.
3693         Don't substitute @SEP@ and @BINDIR@.
3694         * src/preproc/eqn/neqn.sh: Use @GROFF_BIN_PATH_SETUP@.
3695         (PATH): Use GROFF_RUNTIME.
3697         * src/roff/nroff/Makefile.sub (nroff): Call SH_DEPS_SED_SCRIPT.
3698         Don't substitute @SEP@ and @BINDIR@.
3699         * src/roff/nroff/nroff.sh: Use @GROFF_BIN_PATH_SETUP@.
3700         (PATH): Use GROFF_RUNTIME.
3702 2004-04-05  Keith Marshall  <keith.d.marshall@ntlworld.com>
3704         * src/roff/nroff/nroff.sh: Implement work-around for sh.exe from
3705         Cygwin which doesn't handle stderr correctly.
3707 2004-03-08  Werner LEMBERG  <wl@gnu.org>
3709         * Makefile.comm (install_dev, uninstall_dev): Protect `for' loops
3710         against empty argument.  Problem reported by <cgd@broadcom.com>.
3712 2004-03-05  Keith Marshall  <keith.d.marshall@ntlworld.com>
3714         * Makefile.in (SEP): Replaced with...
3715         (RT_SEP, SH_SEP): Separators for the target platform's native path
3716         separator and the build environment, respectively.
3717         (fontpath, tmacpath): Use RT_SEP.
3718         (MDEFINES): Updated.
3720         * contrib/mom/Makefile.sub (GROFF_BIN_PATH): Use SH_SEP.
3721         * doc/Makefile.sub (GROFF_BIN_PATH): Use SH_SEP.
3722         * src/preproc/eqn/Makefile.sub (neqn): Use SH_SEP.
3723         * src/roff/nroff/Makefile.sub (nroff): Use SH_SEP.
3725 2004-03-05  Werner LEMBERG  <wl@gnu.org>
3727         * fonts/devlj4/Makefile.sub (LJ4RES): Set to 1200.  This helps to
3728         reduce alignment problems with newer printers which use built-in
3729         TrueType fonts (instead of the older Intellifonts).  The ideal
3730         solution is to provide a second set of groff metric files, but this
3731         is extremely time-consuming to produce, given that HP's metric
3732         files are very rudimentary.
3734 2004-03-01  Werner LEMBERG  <wl@gnu.org>
3736         * src/devices/grolj4/lj4.cpp (main): Fix argument of getopt_long.
3737         s/operand/argument/ in error message.
3739 2004-03-01  Keith Marshall  <keith.d.marshall@ntlworld.com>
3741         * src/roff/groff/groff.cpp (main): Don't allow option -o if -Thtml
3742         is in use.
3744 2004-03-01  Antti Kantee  <pooka@netbsd.org>
3746         * tmac/s.tmac (XE): Fix error message.
3748 2004-02-27  Jeff Conrad  <jeff_conrad@msn.com>
3750         * src/include/nonposix.h (write, dup, dup2, close) [_MSC_VER]:
3751         New macros.
3753         * src/roff/groff/pipeline.c: Declare strcasecmp.
3754         (run_pipeline) [_WIN32]: Use function name variants which don't
3755         start with `_'.
3756         Fix stream handling.
3758 2004-02-27  Keith Marshall  <keith.d.marshall@ntlworld.com>
3760         * src/include/nonposix.h: Fix declaration of `system_shell_name'.
3761         Declare `spawnvp_wrapper' and macro definitions of spawnvp only
3762         for platforms which use the native Win32 runtime libraries.
3763         (FLUSH_INPUT_PIPE) [_UWIN]: Provide non-empty version.
3765         * src/libs/libgroff/quotearg.c (QUOTE_ARG_MALLOC_ERROR,
3766         QUOTE_ARG_REALLOC_ERROR): Fix string.
3768         * src/preproc/html/pre-html.cpp: Remove declaration of
3769         `spawnvp_wrapper'.
3770         Don't use __MINGW32__.
3771         s/DEBUG_FILE/DEBUG_FILE_DIR/.
3772         (DEBUG_TEXT, DEBUG_NAME, DEBUG_FILE) [DEBUGGING]: New macros.
3773         (OUTPUT_STREAM, PS_OUTPUT_STREAM, REGION_OUTPUT_STREAM): New macros.
3774         (char_buffer::run_output_filter) [MAY_FORK_CHILD_PROCESS]: Fix
3775         calls to `set_redirection' and `WAIT'.
3776         [MAY_SPAWN_ASYNCHRONOUS_CHILD]: Remove unused variable `i' and `j'.
3777         Fix calls to `set_redirection' and `save_and_redirect'.
3778         (char_buffer::do_html, char_buffer::do_image) [DEBUGGING]: Fix calls
3779         to `set_redirection' and `save_and_redirect'.
3780         (usage): Fix message.
3781         (makeTempFiles, main): Use `DEBUG_FILE'.
3783 2004-02-21  Werner LEMBERG  <wl@gnu.org>
3785         * src/roff/troff/troff.h (WARN_TOTAL): Fix value.
3787 2004-02-21  Keith Marshall  <keith.d.marshall@ntlworld.com>
3789         * src/libs/libgroff/quotearg.c: New file, providing proper argument
3790         quoting for MSVC's spawn* and exec* functions.
3791         * src/libs/libgroff/spawnvp.c: New file, providing a wrapper around
3792         spawnvp with proper quoting for MSVC.
3794         * src/libs/libgroff/assert.cpp (program_name),
3795         src/libs/libgroff/new.cpp (program_name): Declare as `extern "C"'.
3796         * src/libs/libgroff/Makefile.sub (OBJS, CSRCS): Updated.
3798         * src/roff/troff/input.cpp (program_name): Declare as `extern "C"'.
3800         * src/include/error.h (program_name): Declare as `extern "C"'.
3801         * src/include/nonposix.h [__MSDOS__ ...]: Handle spawnvp.
3803 2004-02-21  Jeff Conrad  <jeff_conrad@msn.com>
3805         * src/preproc/html/pre-html.cpp [__CYGWIN__ ...]: Declare
3806         spawnvp_wrapper.
3807         [MAY_SPAWN_ASYNCHRONOUS_CHILD]: Declare i and j.
3809 2004-02-20  Jeff Conrad  <jeff_conrad@msn.com>
3811         * src/roff/groff/pipeline.c (cmd) [__MSDOS__ || ...]: New global
3812         variable.
3813         (sbasename) [__MSDOS__ || ...]: New function.
3814         (system_shell_name) [__MSDOS__ || ...]: Use a different, more
3815         generic algorithm.
3816         (system_shell_dash_c, is_system_shell) [__MSDOS__ || ...]: Updated.
3817         (run_pipeline) [_WIN32]: Use _XXX variants for some macros instead
3818         of XXX.
3819         Use STDOUT_FILENO instead of hardcoded file handle.
3820         (signal_catcher) [__MSDOS__]: Moved to non-_WIN32 section.
3822 2004-02-19  Werner LEMBERG  <wl@gnu.org>
3824         * src/roff/troff/div.cpp: Include nonposix.h after troff.h to
3825         avoid warnings w.r.t. redefinition of P_tmpdir for some compilers.
3827 2004-02-18  Werner LEMBERG  <wl@gnu.org>
3829         * font/devlj4/Makefile.sub (DEVFILES): Updated to contain all
3830         new font and mapping files.
3832 2004-02-18  Jeff Conrad  <jeff_conrad@msn.com>
3833             Keith Marshall  <keith.d.marshall@ntlworld.com>
3835         * src/include/nonposix.h (FLUSH_INPUT_PIPE): New macro to empty
3836         an input pipe.  This is needed for the MSVC compiler to make troff's
3837         `-o' option work.
3839         * src/roff/troff/div.cpp: Include nonposix.h.
3840         (cleanup_and_exit): Call FLUSH_INPUT_PIPE.
3842 2004-02-17  Werner LEMBERG  <wl@gnu.org>
3844         * font/devlj4/generate/special.awk: New script.
3845         * font/devlj4/generate/Makefile (S): Use special.awk.
3846         * font/devlj4/*: Regenerated, including the following new files:
3847         Arial (AR, AB, AI, ABI), Times New Roman (TNRR, TNRB, TNRI, TNRBI),
3848         MS Symbol (SYMBOL), Wingdings (WINGDINGS).
3849         * NEWS: Document new lj4 fonts and revised hpftodit.
3851 2004-02-17  Paco Andrés Verdú  <pandres@dragonet.es>
3853         * src/devices/grolbp/lbp.h (vmdvarc): Fix formatting string.
3855 2004-01-25  Werner LEMBERG  <wl@gnu.org>
3857         * src/libs/libgroff/progname.cpp: Replaced with...
3858         * src/libs/libgroff/progname.c: New file.
3859         * src/libs/libgroff/Makefile.sub: Updated accordingly.
3861 2004-01-17  Werner LEMBERG  <wl@gnu.org>
3863         * font/devlj4/generate/Makefile (SYMBOL): Use 9nb28703.tfm.
3865 2004-01-16  Jeff Conrad  <jeff_conrad@msn.com>
3867         * font/devlj4/generate/wingdings.map,
3868         font/devlj4/generate/symbol.map: Include unnamed glyphs.
3869         Use groff glyph names where possible.
3870         * src/devices/grolj4/lj4_font.man: Minor updates.
3872 2004-01-13  Werner LEMBERG  <wl@gnu.org>
3874         * tmac/www.tmac (DC): Handle TTY devices.
3876         * doc/webpage.ms: Document viewCVS from ffii.org.
3877         * NEWS, README: Updated.
3879         * src/roff/groff/groff.man: Mention lj4_font man page.
3881         * font/devlj4/generate/Makefile (SYMBOLMAP, WINGDINGSMAP): New
3882         variables.
3883         (FONTS): Add SYMBOL and WINGDINGS.
3884         (SYMBOL, WINGDINGS): New targets.
3886 2004-01-13  Jeff Conrad  <jeff_conrad@msn.com>
3888         * src/devices/grolj4/lj4_font.man: New man page.
3889         * src/devices/grolj4/Makefile.sub (MAN5): New variable.
3890         * src/devices/grolj4.man: Mention lj4_font man page.
3892         * src/utils/hpftodit/hpftodit.cpp (read_map): Handle line comments.
3893         * src/utils/hpftodit/hpftodit.man: Document it.
3894         (CW): New macro.
3895         Remove details about fonts (which are now in lj4_font.man).
3897         * font/devlj4/generate/symbol.map,
3898         font/devlj4/generate/wingdings.map: New files.
3900 2004-01-12  Werner LEMBERG  <wl@gnu.org>
3902         * README: Mention ffii's viewcvs access.
3904 2004-01-09  Werner LEMBERG  <wl@gnu.org>
3906         * font/devlj4/generate/special.map: Map MSL 228 to U+221F.
3908 2004-01-09  Jeff Conrad  <jeff_conrad@msn.com>
3910         Revert most of the change from 2004-01-03 to better control used
3911         symbol sets.
3913         * src/utils/hpftodit/hpftodit.cpp (symbol_set): New structure.
3914         (text_symbol_sets, special_symbol_sets): New arrays.
3915         (symbol_set_table): New global variable.
3916         (read_symbol_sets): Use search order given in the text_symbol_sets
3917         and special_symbol_sets arrays.  If command line flag -a is not
3918         given, search both arrays.
3919         (output_charset): Require x_height_tag only for command line flag -i.
3921 2004-01-06  Werner LEMBERG  <wl@gnu.org>
3923         Implement string-valued registers \n[.m] and \n[.M] to return the
3924         name of the current drawing and background color, respectively.
3926         * src/roff/troff/symbol.h: Moved to...
3927         * src/include/symbol.h: Here.
3928         Small fixes to make it work outside of the `troff' directory.
3929         * src/roff/troff/symbol.cpp: Moved to...
3930         * src/libs/libgroff/symbol.cpp: Here.
3931         Small fixes to make it work outside of the `troff' directory.
3933         * src/include/Makefile.sub (HDRS), src/libs/libgroff/Makefile.sub
3934         (OBJS, CCSRCS), src/roff/troff/Makefile.sub (OBJS, CCSRCS, HDRS):
3935         Updated.
3937         * src/include/color.h: Include symbol.h.
3938         (color): Add new field `nm'.
3939         * src/libs/libgroff/color.cpp (color::color): Updated.
3941         * src/roff/troff/dictionary.cpp, src/roff/troff/div.cpp,
3942         src/roff/troff/node.cpp, src/roff/troff/number.cpp,
3943         src/roff/troff/reg.cpp: Don't include symbol.h.
3945         * src/roff/troff/env.cpp: Don't include symbol.h.
3946         (environment::get_glyph_color_string,
3947         environment_get_fill_color_string): New member functions.
3948         (init_env_requests): Handle `.m' and `.M' registers.
3949         * src/roff/troff/input.cpp: Don't include symbol.h.
3950         (default_symbol): Moved to symbol.cpp/symbol.h.
3951         (do_glyph_color, do_fill_color, define_color): Pass symbol name
3952         to color constructor.
3953         * src/roff/troff/env.h: Updated.
3955         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
3956         Document new registers.
3958 2004-01-05  Werner LEMBERG  <wl@gnu.org>
3960         * src/roff/troff/node.cpp (space_node::get_breakpoints,
3961         space_node::nbreaks): Protect against zero `next' field.
3963 2004-01-03  Jeff Conrad  <jeff_conrad@msn.com>
3965         In hpftodit, use the symbol sets offered in the TFM.
3967         * src/utils/hpftodit/hpftodit.cpp (NO_GLYPH): New constant.
3968         (symbol_set, text_symbol_sets, special_symbol_sets,
3969         symbol_set_table): Removed.
3970         (get_printcode): Removed.
3971         (read_symbol_sets): Initialize `symbol_set' field with
3972         `NO_SYMBOL_SET'.
3973         Simplify code to just use the `kind' value.
3974         (output_charset): Improve output formatting.
3975         (dump_symbols): Simplified.
3977 2004-01-02  Werner LEMBERG  <wl@gnu.org>
3979         * font/devlj4/generate/text.map: Add more MSL numbers.
3981 2004-01-02  Jeff Conrad  <jeff_conrad@msn.com>
3983         * src/utils/hpftodit/hpftodit.cpp (is_decomposed): New macro.
3984         (text_symbol_sets): Add more symbol sets.
3985         (debug_flag): New static variable (moved from `main').
3986         (get_printcode, show_symset): New functions.
3987         (main): Remove `debug_flag'.
3988         (output_charset): Use `show_symset'.
3989         (dump_symbols):  Use `show_symset'.
3990         Print symsets for all glyphs.
3991         (read_map): Actually call `unicode_to_ucode_make' but this time
3992         correctly.
3994 2004-01-01  Werner LEMBERG  <wl@gnu.org>
3996         * font/devlj4/generate/text.map, font/devlj4/generate/special.map:
3997         Fix placement of comments.
3999 2004-01-01  Jeff Conrad  <jeff_conrad@msn.com>
4001         * src/utils/hpftodit/hpftodit.cpp (main): Read map file also if
4002         option `-d' is given.
4003         (output_charset): Improve warning messages to give more information.
4004         (dump_symbols): Make information more precise.
4005         (usage): Updated.
4006         (read_map): Don't call unicode_to_ucode_name; the glyph names must
4007         appear as-is and shouldn't be decomposed.
4009 2003-12-31  Werner LEMBERG  <wl@gnu.org>
4011         * src/utils/hpftodit/hpftodit.cpp (dump_tags): Handle posture_tag.
4012         * font/devlj4/generate/Makefile (IFLAG): Updated to new units.
4013         (FONTS): Add TrueType font families Arial and Times New Roman.
4014         (TNRR, TNRB, TNRI, TNRBI, AR, AB, AI, ABI): New targets.
4015         * font/devlj4/generate/text.map: Fix Unicode values of `fi' and
4016         `fl'.
4018 2003-12-31  Jeff Conrad  <jeff_conrad@msn.com>
4020         * test-groff.in (SEP): Quote value.
4021         * src/roff/troff/node.cpp (suppress_node::tprint): Change type of
4022         `tem' to `char*' to avoid deallocation of a pointer to a constant
4023         object which some compilers don't like.
4025 2003-12-31  Werner LEMBERG  <wl@gnu.org>
4027         * font/devlj4/generate (text.map, special.map): Rewritten to work
4028         with the new hpftodit version.
4030 2003-12-30  Jeff Conrad  <jeff_conrad@msn.com>
4032         * src/utils/hpftodit/hpftodit.cpp (output_charset): Emit HP symbol
4033         set and 8bit character code for all glyphs also.
4035 2003-12-30  Werner LEMBERG  <wl@gnu.org>
4037         * src/libs/libgroff/strcasecmp.c: Updated from gnulib.
4039 2003-12-29  Werner LEMBERG  <wl@gnu.org>
4041         More fixes for MSVC compiler.
4043         * doc/Makefile.sub, contrib/mom/Makefile.sub (GROFF_BIN_PATH): Use
4044         $(SEP).
4046         * src/include/nonposix.h (STDIN_FILENO, STDOUT_FILENO,
4047         STDERR_FILENO) [_MSC_VER]: Define conditionally.
4048         (getpid) [_MSC_VER]: Remove.
4049         Include direct.h and process.h conditionally.
4051         * src/roff/troff/node.cpp (suppress_node::tprint): Don't use
4052         parentheses for a_delete.
4054         * src/utils/lookbib/lookbib.cpp: Include nonposix.h.
4056         * test-groff: Replaced with...
4057         * test-groff.in: This new template to handle path separator
4058         properly.
4060         * configure.ac: Check for direct.h and process.h.
4061         Generate test-groff script.
4062         * configure, src/include/config.hin: Regenerated.
4064 2003-12-28  Werner LEMBERG  <wl@gnu.org>
4066         Add integral extension glyph.
4067         Add new option `-x' to afmtodit to suppress use of built-in AGL.
4069         * font/devhtml/R.proto, font/devutf8/R.proto: Add `u23AE'.
4071         * font/devps/generate/textmap: Provide entry for `integralex' to
4072         override (old) PUA value of the AGL.
4073         * font/devps/generate/Makefile (SS): Add afmtodit option `-x'.
4074         * font/devps/*: Regenerated.
4076         * src/utils/afmtodit/afmtodit.pl: Add option `-x'.
4077         * src/utils/afmtodit/afmtodit.man, NEWS: Updated.
4079 2003-12-27  Werner LEMBERG  <wl@gnu.org>
4081         Add forgotten `coproduct' symbol (already available for DVI).
4083         * font/devhtml/R.proto, font/devps/generate/textmap,
4084         font/devps/symbolmap, font/devutf8/R.proto, man/groff_char.man,
4085         src/libs/libgroff/uniglyph.cc, src/libs/libgroff/glyphuni.cpp: Add
4086         U+2210 (\[coproduct]).
4088 2003-12-26  Jeff Conrad  <jeff_conrad@msn.com>
4090         hpftodit has been extended to handle TrueType metric files and
4091         more glyphs.  See hpftodit.man for more details.
4093         * src/utils/hpftodit/hpftodit.cpp: Include stdio.h, string.h,
4094         ctype.h, and unicode.h.
4095         s/msl/charcode/ everywhere since we now handle Unicode values also.
4096         (equal, NO, YES, MSL, SYMSET, UNICODE, UNICODE): New macros.
4097         Use it where appropriate.
4098         (MULTIPLIER): Replaced with...
4099         (multiplier): New global static variable.
4100         (scale): Updated.
4101         (tag_type): Add more TFM tags.
4102         (tag_name): New array.
4103         (ENUM_TYPE, FLOAT_TYPE): Removed.
4104         (BYTE_TYPE): New value assigned.
4105         (ASCII_TYPE, RATIONAL_TYPE): New enumeration values.
4106         (text_symbol_sets, special_symbol_sets): Extended to cover more
4107         sets.
4108         (check_type): Add return value.
4109         (check_units): Add parameters to get ppi and upem values.
4110         Handle TrueType TFM data.
4111         (output_font_name): New function.
4112         (output_charset): Add parameter to handle TFM type.
4113         Handle TrueType TFMs also.
4114         (em_fract): New macro.
4115         (dump_tags): Be much more verbose and handle more tags.
4116         (dump_ascii, dump_symbol_sets, dump_symbols): New functions.
4117         (hp_msl_to_ucode_name, unicode_to_ucode_name, is_uname): New
4118         functions.
4119         (read_map): Add parameter to handle TFM type.
4120         Handle both MSL and Unicode mappings.
4121         (main): Add two new command line options `-a' and `-q'.
4122         Updated to make use of new functions.
4123         (usage): Updated.
4125         * src/utils/hpftodit/hpuni.cpp: New file.
4127         * src/utils/hpftodit/Makefile.sub, src/utils/hpftodit/hpftodit.man:
4128         Updated.
4130 2003-12-25  Werner LEMBERG  <wl@gnu.org>
4132         * src/include/nonposix.h (read) [_MSC_VER]: Define.
4134 2003-12-24  Werner LEMBERG  <wl@gnu.org>
4136         * src/utils/afmtodit/afmtodit.man: Some reformulations as suggested
4137         by Michail Vidiassov <master@iaas.msu.ru>.
4139 2003-12-20  Werner LEMBERG  <wl@gnu.org>
4141         * font/devhtml/R.proto: Add u00{47,67}_0306, u00{53,73}_0327,
4142         and u0049_0307.
4143         Add missing latin-2 glyphs.
4144         * font/devutf8/R.proto: Add missing latin-2 glyphs.
4146         * tmac/troffrc: Load `composite.tmac' earlier.
4148         * tmac/dvi.tmac, tmac/ps.tmac, tmac/lbp.tmac: Add u00{47,67}_0306,
4149         u00{53,73}_0327, and u0049_0307.
4150         * tmac/X.tmac: Add u00{47,67}_0306.
4151         * tmac/tty-char.tmac: Use composite glyph names for readability.
4153         * NEWS: Updated.
4155         * src/include/unicode.h: Remove `extern' keywords.
4157 2003-12-20  Nilgün Belma Bugüner  <nilgun@superonline.com>
4159         * tmac/latin5.tmac: New file.
4161 2003-12-19  Werner LEMBERG  <wl@gnu.org>
4163         Add some glyphs needed for Turkish.
4165         * font/devutf8/R.proto: Add u00{47,67}_0306, u00{53,73}_0327,
4166         and u0049_0307.
4168         * tmac/composite.tmac: Add `,' as a synonym for `ac' accent.
4169         * tmac/tty-char.tmac: Add representations for u00{47,67}_0306,
4170         u00{53,73}_0327, and u0049_0307.
4172 2003-12-18  Werner LEMBERG  <wl@gnu.org>
4174         * src/devices/grops/ps.cc (ps_output::put_float): Revert change
4175         from 2001-10-04.
4176         Remove trailing zeros.
4178 2003-12-17  Werner LEMBERG  <wl@gnu.org>
4180         Make \? transparent to end-of-sentence recognition.
4182         * src/roff/troff/input.cc (non_interpreted_node): Add
4183         `ends_sentence' member function.
4185 2003-12-16  Werner LEMBERG  <wl@gnu.org>
4187         * doc/groff.texinfo: Document `dt' request correctly.
4188         Other minor typographical improvements.
4190 2003-12-10  Michail Vidiassov  <master@iaas.msu.ru>
4192         * src/utils/afmtodit/Makefile.sub (afmtodit): Fix typo.
4194 2003-12-10  Richard Stallman  <rms@gnu.org>
4196         * LICENSE: Better wording.
4198 2003-12-09  Werner LEMBERG  <wl@gnu.org>
4200         * aclocal.m4 (GROFF_BROKEN_SPOOLER_FLAGS): Set default value to 0.
4201         * configure, NEWS: Updated.
4203 2003-12-08  Werner LEMBERG  <wl@gnu.org>
4205         * FDL: Updated to version 1.2 (from www.gnu.org/copyleft).
4207 2003-12-07  Bernd Warken  <bwarken@mayn.de>
4209         * LICENSE: Updated.
4211 2003-12-07  Werner LEMBERG  <wl@gnu.org>
4213         * INSTALL: Improved.
4215 2003-12-05  Keith Marshall  <keith.d.marshall@ntlworld.com>
4217         Use path separator character of target platform for compiled-in
4218         default paths.
4220         * aclocal.m4 (GROFF_TARGET_PATH_SEPARATOR): New macro.
4221         * configure.ac: Use GROFF_TARGET_PATH_SEPARATOR.
4222         * configure: Regenerated.
4223         * Makefile.in (SEP): Use GROFF_PATH_SEPARATOR.
4225 2003-12-05  Werner LEMBERG  <wl@gnu.org>
4227         * src/include/nonposix.h (PATH_SEP_CHAR): New definition.
4228         Replace `PATH_SEP[0]' with `PATH_SEP_CHAR' everywhere.
4230 2003-12-04  Bernd Warken  <bwarken@mayn.de>
4232         * LICENSE: New file.
4234 2003-12-03  Werner LEMBERG  <wl@gnu.org>
4236         * src/utils/afmtodit/afmtodit.pl: Comment out code which handles
4237         ligatures present in AFM files since groff currently only
4238         understands some standard ligatures and nothing else.
4240 2003-12-03  Jeff Conrad  <jeff_conrad@msn.com>
4242         * src/roff/groff/groff.cpp (main): Don't run the spooler if
4243         option -v is given.
4245         * src/roff/groff/pipeline.c (run_pipeline) [_WIN32]: Fix error
4246         messages.
4247         Close stdout copy.
4248         Don't use Unix wait flags.
4250 2003-12-02  Werner LEMBERG  <wl@gnu.org>
4252         * src/roff/troff/glyphuni.cpp, src/roff/troff/unicode.cpp,
4253         src/roff/troff/unicode.h, src/roff/troff/uniglyph.cpp,
4254         src/roff/troff/uniuni.cpp: Moved to...
4255         * src/libs/libgroff/glyphuni.cpp, src/libs/libgroff/unicode.cpp,
4256         src/libs/libgroff/unicode.h, src/libs/libgroff/uniglyph.cpp,
4257         src/libs/libgroff/uniuni.cpp: Here.
4259         * src/include/Makefile.sub.old (HDRS),
4260         src/libs/libgroff/Makefile.sub (OBJS, CCSRCS),
4261         src/roff/troff/Makefile.sub (HDRS, PBJS, CCSRCS): Updated.
4263 2003-12-01  Keith Marshall  <keith.d.marshall@ntlworld.com>
4265         * src/preproc/htlp/pre-html.cpp (__tmpfile): Renamed to
4266         `DEBUG_FILE'.
4267         Updated all users.
4269 2003-12-01  Werner LEMBERG  <wl@gnu.org>
4271         * groff.texinfo: Document special behaviour of `.vs 0'.
4272         Improve documentation of `cflags' request.
4273         * NEWS: Updated.
4275 2003-11-29  Werner LEMBERG  <wl@gnu.org>
4277         * font/devlj4/generate/Makefile (CORONET): Use correct TFM.
4278         * font/devlj4/CORONET: Regenerated.
4280 2003-11-24  Werner LEMBERG  <wl@gnu.org>
4282         * src/roff/troff/env.cpp (hyphen_trie::read_patterns_file): Fix loop
4283         if processing hyphenation patterns in traditional mode.
4284         Improve error messages.
4286 2003-11-20  Werner LEMBERG  <wl@gnu.org>
4288         * src/roff/troff/node.cpp (troff_output_file::put_char_width,
4289         troff_output_file::put_char): Fix type of local variable `c'.
4291 2003-11-19  Werner LEMBERG  <wl@gnu.org>
4293         * src/roff/groff/pipeline.c (P): Removed.  Updated all function
4294         declarations.
4295         (i_to_a): Removed.  libgroff already provides this function.
4296         (run_pipeline) [_WIN32]: Don't use itoa but i_to_a.
4298 2003-11-18  Keith Marshall  <keith.d.marshall@ntlworld.com>
4300         * src/roff/groff/pipeline.c (xstrsignal): Fix usage of
4301         HAVE_DECL_SYS_LIST.
4303 2003-11-17  Werner LEMBERG  <wl@gnu.org>
4305         * COPYING: Use correct version.
4307 2003-11-11  Werner LEMBERG  <wl@gnu.org>
4309         LynxOS 4.0.0 doesn't declare vfprintf.
4311         * configure.ac: Check for vfprintf.
4312         * configure: Regenerated.
4313         * src/include/lib.h: Handle `NEED_DECLARATION_VFPRINTF'.
4314         * src/include/config.hin: Regenerated.
4316 2003-11-10  Werner LEMBERG  <wl@gnu.org>
4318         LynxOS 4.0.0 has snprintf (without declaration) but no vsnprintf.
4320         * configure.ac: Check for vsnprintf.
4321         * configure: Regenerated.
4322         * src/include/lib.h: Handle `NEED_DECLARATION_VSNPRINTF' and
4323         `HAVE_VSNPRINTF'.
4324         * src/include/config.hin: Regenerated.
4326 2003-11-09  Werner LEMBERG  <wl@gnu.org>
4328         * aclocal.m4: Updated syntax to autoconf 2.59.
4329         (GROFF_HTML_PROGRAMS): Use AC_FOREACH.
4330         Don't check for gsos2.
4331         (GROFF_SRCDIR, GROFF_BUILDDIR): Removed.  autoconf 2.59 provides
4332         working abs_top_srcdir and abs_top_builddir.
4334         * configure.ac: Updated syntax to autoconf 2.59.
4335         Don't call GROFF_SRCDIR and GROFF_BUILDDIR.
4336         Replace call to AC_DECL_SYS_SIGLIST with call to AC_CHECK_DECLS.
4337         * configure: Regenerated.
4339         * Makefile.in, doc/Makefile.in: s/@top_srcdir@/@abs_top_srcdir@/,
4340         s/@groff_top_builddir@/@abs_top_builddir@/.
4342         * src/roff/groff/pipeline.c (xstrsignal):
4343         s/SYS_SIGLIST_DECLARED/HAVE_DECL_SYS_SIGLIST/.
4345 2003-11-07  Werner LEMBERG  <wl@gnu.org>
4347         * src/devices/grodvi/dvi.cpp (draw_dvi_printer::draw) ['a']: Always
4348         make start angle smaller than end angle to circumvent a bug in tpic
4349         handling of some versions of dvipdfm (and dvipdfmx).
4351 2003-10-30  Werner LEMBERG  <wl@gnu.org>
4353         * src/devices/grops/grops.man: Improve section on creating EPS.
4355 2003-10-29  Werner LEMBERG  <wl@gnu.org>
4357         * contrib/pic2graph/pic2graph.sh: Fix typo (-P-letter ->
4358         -P-pletter).
4360 2003-10-28  Werner LEMBERG  <wl@gnu.org>
4362         * doc/groff.texinfo: Fix documentation of `.if'.
4364 2003-10-27  Michail Vidiassov  <master@iaas.msu.ru>
4366         * src/utils/afmtodit/afmtodit.pl: Handle unmapped characters of
4367         the form `uniXXXX' also.
4369 2003-10-27  Werner LEMBERG  <wl@gnu.org>
4371         * contrib/eqn2graph/eqn2graph.sh, contrib/grap2graph/grap2graph.sh,
4372         contrib/pic2graph/pic2graph.sh: Implement secure management of
4373         temporary files.
4374         Pass `-P-pletter' to groff to avoid data outside of the converted
4375         area -- some versions of `convert' (for example 5.3.8) don't check
4376         the bounding box of the image but always use a fixed image size
4377         (letter paper format).
4378         * contrib/eqn2graph/eqn2graph.man, contrib/grap2graph/grap2graph.man,
4379         contrib/pic2graph/pic2graph.man: Updated.
4381         * src/roff/groff/groff.man: Document $TMP and $TEMP.
4383 2003-10-26  Werner LEMBERG  <wl@gnu.org>
4385         * src/preproc/pic/troff.cpp (troff_output::simple_circle,
4386         troff_output::simple_ellipse, troff_output::simple_arc,
4387         troff_output::simple_line, troff_output::simple_spline,
4388         troff_output::simple_polygon): Insert a space before arguments.
4389         (troff_output::set_fill): Emit `\&' before `\D'Fg...' since the
4390         latter doesn't produce a node, so the following `.sp -1' would do
4391         the wrong thing.
4392         Don't emit `.sp -1' after \M.  This also doesn't produce a token
4393         (and we don't have to care about compatibility mode).
4394         (troff_output::set_color, troff_output::reset_color): Don't emit
4395         `.sp -1' after \M and \m.
4397         * src/roff/troff/input.cpp (old_have_input): New global variable.
4398         (input_stack::get): Handle `old_have_input'.
4399         (process_input_stack) <token::TOKEN_NEWLINE>: Call
4400         `trapping_blank_line' depending on `old_have_input', not
4401         `have_input'.
4403 2003-10-20  Keith Marshall  <keith.d.marshall@ntlworld.com>
4405         * src/libs/libgroff/tmpfile.cpp [__MSDOS__, _Win32]
4406         (WIN32_TMPDIR_ENVVAR, MSDOS_TMPDIR_ENVVAR): New macros, providing
4407         default directory names for temporary files.
4408         [__MSDOS__, _Win32] (temp_init::temp_init): Use them.
4410         * src/roff/groff/pipeline.c [__MSDOS__]: Include stdlib.h.
4411         [__MSDOS__] (run_pipeline): Honour environment variables.
4412         Don't use `tmpnam' but `tempnam' to work around messy
4413         implementation.
4415         * README.MinGW: New file.
4417 2003-10-16  Werner LEMBERG  <wl@gnu.org>
4419         * src/preproc/html/pre-html.cpp (write_upto_newline): Don't use
4420         `(*t)->next' without testing validity of `*t'.
4421         (usage): Make it more readable.
4423 2003-10-16  Keith Marshall  <keith.d.marshall@ntlworld.com>
4425         Make html device run under both MS-DOS and Win32.
4427         * src/preproc/html/pre-html.cpp (MAY_FORK_CHILD_PROCESS,
4428         MAY_SPAWN_ASYNCHRONOUS_CHILD): New macros to control whether
4429         spawn or fork+exec has to be used, and whether parent must sleep
4430         until the child process terminates.  Used in
4431         `char_buffer::run_output_filter'.
4432         (copyofstdoutfd): Removed.
4433         (char_buffer): Replace `write_file_html' and `write_file_troff'
4434         member functions with `emit_troff_output' and `run_output_filter'.
4435         (DEVICE_FORMAT, HTML_OUTPUT_FILTER, IMAGE_OUTPUT_FILTER): New
4436         macros.
4437         (replaceFd): Replaced with...
4438         (set_redirection): New auxiliary function.
4439         (waitForChild): Replaced with...
4440         (save_and_redirect): New auxiliary function for.
4442         (char_buffer::do_html, char_buffer::do_image): Simplified, using new
4443         functions.
4445 2003-10-14  Keith Marshall  <keith.d.marshall@ntlworld.com>
4447         * aclocal.m4 (GROFF_SYS_NERR): Check stdlib.h also.
4448         (GROFF_LIBC): New function.
4449         * configure.ac: Call GROFF_LIBC.
4450         Check for `kill'.
4451         * configure: Regenerated.
4453         * src/include/lib.h: Handle __MINGW32__.
4454         * src/include/nonposix.h [_MSC_VER]: Handle __MINGW32__.
4455         Add macro for `pipe'.
4456         Define P_tmpdir.
4458         * src/roff/groff/pipeline.c (run_pipeline): Handle `no_pipe'
4459         correctly.
4461         * src/utils/indxbib/signal.c (handle_fatal_signal) [!HAVE_KILL]:
4462         Implement.
4464 2003-10-13  Werner LEMBERG  <wl@gnu.org>
4466         Finally fix change 2003-08-26, based on ideas from Chuck Silvers
4467         <chuq@chuq.com>.
4469         * contrib/mom/Makefile.sub: Use a stamp file in the `examples'
4470         directory.
4472 2003-10-12  Werner LEMBERG  <wl@gnu.org>
4474         * src/roff/groff/groff.cpp (help), src/devices/grops/ps.cpp (usage),
4475         src/roff/troff/input.cc (usage): Updated.
4477         * NEWS, doc/groff.texinfo: Updated.
4479 2003-10-12  Peter Miller  <millerp@canb.auug.org.au>
4481         * src/libs/libgroff/searchpath.cpp
4482         (search_path::open_file_cautious): New function which also handles
4483         `-' as stdin and stdout depending on the access mode.
4484         * src/include/searchpath.h (search_path): Updated.
4486         * src/devices/grops/ps.cpp (main): Handle new `-I' switch.
4487         * src/devices/grops/ps.h: Include `searchpath.h'.
4488         * src/devices/grops/psrm.cpp (resource_manager::supply_resource):
4489         Open resource file with `include_search_path.open_file_cautious'.
4490         * src/devices/grops/grops.man: Document new `-I' switch.
4492         * src/devices/grodvi/dvi.cpp (main), src/devices/grolbp/lbp.cpp
4493         (main), src/devices/grolj4/lj4.cpp (main),
4494         src/devices/grotty/tty.cpp (main): Ignore new `-I' switch.
4496         * src/preproc/soelim/soelim.cpp (include_list_length, include_list):
4497         Replaced with...
4498         (include_search_path): New global variable.
4499         (include_path_append): Removed.
4500         (main): Use `include_search_path.command_line_dir' to handle `-I'.
4501         (do_file): Simplify, using new
4502         `include_search_path.open_file_cautious'.
4504         * src/roff/groff/groff.cpp (print_commands): Accept file handle as
4505         parameter.
4506         (main): Pass arguments to `-I' to both troff and devices.
4507         Improve handling of `-V'.
4508         * src/roff/groff/groff.man: Document changes to -I and -V.
4510         * src/roff/troff/input.cpp (include_search_path): New global
4511         variable.
4512         (next_file, source, ps_bbox_request, transparent_file,
4513         process_input_file): Use new
4514         `include_search_path.open_file_cautious'.
4515         (main) Handle `-I' switch.
4516         * src/roff/troff/node.cpp (troff_output_file::really_copy_file):
4517         Use new `include_search_path.open_file_cautious'.
4518         * src/roff/troff/node.h: New extern symbol `include_search_path'.
4519         * src/roff/troff/troff.man: Document new `-I' switch.
4521 2003-09-15  Ruslan Ermilov  <ru@FreeBSD.org>
4523         Support multiple calls of .Lb in LIBRARY section.
4525         * tmac/doc-common (doc-in-library-section): New register.
4526         (doc-section-library): New string.
4527         (Sh): Set `doc-in-library-section'.
4528         (Rd): Updated.
4529         * tmac/doc-syms (Lb): Insert breaks before and after arguments
4530         if in LIBRARY section.
4531         * tmac/doc.tmac (doc-save-global-vars): Updated.
4532         * NEWS, tmac/groff_mdoc.man: Updated.
4534 2003-09-14  Ruslan Ermilov  <ru@FreeBSD.org>
4536         * tmac/doc-common (doc-default-operating-system): New variable.
4537         (Os): Use it.
4539 2003-09-08  Werner LEMBERG  <wl@gnu.org>
4541         * tmac/doc.tmac (doc-reset-reference): Handle data for `%I' also.
4543 2003-08-31  Werner LEMBERG  <wl@gnu.org>
4545         * contrib/mom/Makefile.sub: Fix last change to make it really work.
4546         * Makefile.comm: Use `test ... ||' in favor of `if test ...; then'.
4547         (install_dev, uninstall_dev): Check whether $(DEVSCRIPTS) and
4548         $(DEVFILES) are not empty.
4549         * Makefile.in: Use `test ... ||' in favor of `if test ...; then'.
4551 2003-08-26  Chuck Silvers  <chuq@chuq.com>
4553         * contrib/mom/Makefile.sub (prepare_make_examples): Make it work
4554         with parallel runs of `make'.
4556 2003-08-23  Stephen Gildea  <http://www.gildea.com/stephen>
4558         * src/preproc/ref/ref.cpp (reference::compute_sort_key): Always
4559         insert SORT_SEP.  With certain combinations of sort specifications,
4560         refer sorted entries in the wrong order.  In particular, entries
4561         with a missing field should be be sorted before all entries that
4562         have that field, before refer looks to the next field.
4564 2003-08-23  Werner LEMBERG  <wl@gnu.org>
4566         * src/utils/pfbtops/Makefile.sub (LINK.c): Define it so that the
4567         g++ linker is used.  Reported by Mark J. Reed
4568         <mark.reed@turner.com>.
4570 2003-08-16  Heinz-Jürgen Oertel  <hj.oertel@surfeu.de>
4572         Add key character `x' to tbl which makes tbl call a user-defined
4573         macro on a table cell.
4575         * src/preproc/tbl/table.h (entry_modifier): Add `macro'.
4576         * src/preproc/tbl/table.cpp (block_entry::do_divert): Call
4577         `set_modifier' after printing the compatibility request.
4578         (set_modifier): Print call to `m->macro' if not empty.
4579         * src/preproc/tbl/main.cpp (entry_format::debug_print): Handle
4580         `macro'.
4581         (process_format): Implement cases `x' and `X'.
4582         * src/preproc/tbl/tbl.man, NEWS: Updated.
4584 2003-08-15  Werner LEMBERG  <wl@gnu.org>
4586         * doc/groff.texinfo: Minor fixes.
4588 2003-08-09  Werner LEMBERG  <wl@gnu.org>
4590         * tmac/an-old.tmac [cR]: Fix redefinition of `bp'.
4592 2003-08-07  Werner LEMBERG  <wl@gnu.org>
4594         * doc/Makefile.sub: Not all shells expand wildcards in the `for'
4595         argument list to nothing if there is no file to match.  Use `ls' as
4596         a protection, similar to autoconf.
4598         * Makefile.comm (install_dev, uninstall_dev): Protect `for' against
4599         empty argument lists.
4601         * doc/groff.texinfo: Improve documentation how vertical spacing
4602         and line breaks interact.
4603         Other minor fixes.
4605         * tmac/www.tmac: Initialize `www-htmlimage-gap'.
4607 2003-08-03  Werner LEMBERG  <wl@gnu.org>
4609         * NEWS, src/devices/grops/grops.man: -b16 is necessary to produce
4610         EPS (using eps2eps or similar programs to compute the bounding box).
4612 2003-07-24  Werner LEMBERG  <wl@gnu.org>
4614         * doc/groff.texinfo: Use the new @/ command to avoid overlong lines.
4615         * doc/texinfo.tex: Updated from texinfo 4.6.
4616         * README.CVS: From now on we need texinfo 4.6.
4618 2003-07-23  Werner LEMBERG  <wl@gnu.org>
4620         Add requests `dei1' and `ami1' for completeness.
4622         * src/roff/troff/input.cc (calling_mode): Remove
4623         CALLING_DISABLE_COMP.
4624         (comp_mode): New enumeration.
4625         (do_define_string, define_string, define_nocomp_string,
4626         append_string, append_nocomp_string): Updated.
4627         (do_define_macro): Add third parameter.
4628         (define_macro, define_nocomp_macro, define_indirect_macro,
4629         append_macro, append_nocomp_macro, append_indirect_macro): Updated.
4630         (define_indirect_nocomp_macro, append_indirect_nocomp_macro): New
4631         functions.
4632         (ignore): Updated.
4633         (init_input_requests): Add `dei1' and `ami1'.
4635         * tmac/trace.tmac: Handle de1 and am1.
4636         (de): Improve tracing message.
4637         (am): Add missing `do'.
4638         (return): Use de1.
4640         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
4641         Document new requests.
4643 2003-07-22  Heinz-Jürgen Oertel  <hj.oertel@surfeu.de>
4645         Add option -G to .MPIMG to insert a gap between text and the image.
4647         * tmac/www.tmac (www-finish-left-po, www-finish-right-ll,
4648         www-finish-left-ll): Updated.
4649         (www-image-just, www-image-gap, www-htmlimage-gap): New variables.
4650         (MPIMG): Make option -L and -R optional.
4651         Implement option -G.
4653 2003-07-22  Gaius Mulley  <gaius@glam.ac.uk>
4655         * src/devices/grohtml/post-html.cpp
4656         (html_printer::do_file_components): Don't use `stdout' as lvalue
4657         since it can be a macro.
4659 2003-07-22  Werner LEMBERG  <wl@gnu.org>
4661         * src/libs/libgroff/strerror.c: Include errno.h to be in sync with
4662         the corresponding test in aclocal.m4.
4664 2003-07-21  Werner LEMBERG  <wl@gnu.org>
4666         * src/preproc/html/pre-html.cpp (TRANSPARENT): Don't use colour
4667         names but RGB values directly.  Otherwise pnmtopng depends on
4668         an external file `rgb.txt' which maps colour names to values.
4670 2003-07-20  Werner LEMBERG  <wl@gnu.org>
4672         * aclocal.m4 (GROFF_SYS_ERRLIST): Include stdlib.h for MinGW.
4673         * configure, src/include/config.hin: Regenerated.
4675         * src/libs/libgroff/strerror.c: Include stdlib.h for MinGW.
4677 2003-07-19  Werner LEMBERG  <wl@gnu.org>
4679         * PROBLEMS: Add solution for UTF-8 problem with hyphens.
4681 2003-07-18  Werner LEMBERG  <wl@gnu.org>
4683         * *.man: Switch to non-compatibility mode temporarily if GNU
4684         syntax extensions are used in the particular man page.
4686         * PROBLEMS: Add solutions for SGR problems.
4688 2003-07-17  Werner LEMBERG  <wl@gnu.org>
4690         Don't ignore grotty's command line options if \X'tty: sgr ...' is
4691         used to change the drawing scheme.
4693         * src/devives/grotty/tty.cpp (bold_flag_option,
4694         underline_flag_option, italic_flag_option, reverse_flag_option,
4695         bold_underline_mode_option): New global variables.
4696         (update_options): New function.
4697         (tty_printer::special): Call update_options.
4698         (main): Don't set xxx_flag but xxx_flag_option, then call
4699         update_options.
4701 2003-07-14  Werner LEMBERG  <wl@gnu.org>
4703         Make grotty emit proper Unicode box drawing characters for -Tutf8.
4705         * src/devices/grotty/tty.cpp (START_LINE, END_LINE): New enum
4706         values.
4707         (hline_char, vline_char): New global variables.
4708         (tty_printer::tty_printer): Initialize them.
4709         (tty_printer::draw): Emit START_LINE and END_LINE flags for both
4710         horizontal and vertical lines.
4711         (crossings): New global array.
4712         (tty_printer::end_page): Use it to determine the proper crossing
4713         character for -Tutf8.
4715 2003-07-12  Werner LEMBERG  <wl@gnu.org>
4717         * doc/Makefilesub (HTMLDOCFILESALL): New macro.
4718         (HTMLDOCFILES): Revert to `pic.html'.
4719         (CLEANADD, install_html, uninstall_sub): Use HTMLDOCFILESALL.
4721 2003-07-11  Werner LEMBERG  <wl@gnu.org>
4723         * doc/pic.ms: Improve documentation of absolute coordinates.
4724         Document absolute positioning of pictures.
4726         * NEWS: Add new pic capability.
4728 2003-07-09  Hartmut Henkel  <hartmut_henkel@gmx.de>
4730         * src/libs/libgroff/geometry.cpp (check_output_arc_limits):
4731         Rewritten.
4733 2003-07-07  Werner LEMBERG  <wl@gnu.org>
4735         Implement support for dashed and dotted ellipses in pic.  Based on
4736         a patch from Hartmut Henkel <hartmut_henkel@gmx.de>.
4738         * src/preproc/pic/common.cpp (common_output::ellipse_arc,
4739         common_output::dashed_ellipse, common_output::dotted_ellipse): New
4740         functions.  Ellipse arcs are approximated with circle arcs.
4741         * src/preproc/pic/common.h (common_output): Updated.
4742         * src/preproc/pic/tex.cpp (tex_output::ellipse): Use new ellipse
4743         functions.
4744         * src/preproc/pic/troff.cpp (simple_output::ellipse): Ditto.
4746         * src/preproc/pic/TODO, src/preproc/pic/pic.man: Updated.
4748 2003-07-06  Werner LEMBERG  <wl@gnu.org>
4750         Make grotty work on platforms which have unsigned char as the
4751         default for char.  Based on a patch by Thomas Klausner
4752         <wiz@netbsd.org>.
4754         * src/devices/grotty/tty.cpp (schar): New typedef.
4755         Updated calls to declare_ptable and implement_ptable.
4756         (glyph): Use schar for back_color_idx and fore_color_idx.
4757         (tty_printer): Use schar for curr_fore_idx and curr_back_idx.
4758         (tty_printer::tty_color, tty_printer::tty_printer,
4759         tty_printer::color_to_idx, tty_printer::put_color): Updated.
4761 2003-07-06  Ruslan Ermilov  <ru@FreeBSD.org>
4763         * src/roff/nroff/nroff.sh: Add option -d for completeness.
4764         * src/roff/nroff/nroff.man: Updated.
4766 2003-07-05  Werner LEMBERG  <wl@gnu.org>
4768         * NEWS, tmac/groff_www.man: Updated.
4769         * doc/Makefile.sub: Updated.
4771 2003-07-05  Gaius Mulley  <gaius@glam.ac.uk>
4773         Implement support for multiple HTML output files.
4775         * src/preproc/html/pre-html.cpp (scanArguments): Dummy handling for
4776         -j command line option.
4778         * src/devices/grohtml/post-html.cpp (job_name, multiple_files): New
4779         global variables.
4780         (file): New fields `new_output_file', `require_links',
4781         `output_file_name'.
4782         (file::file): Updated.
4783         (files::set_file_name, files::set_links_required,
4784         files::are_links_required, files::is_new_output_file,
4785         files::file_name, files::next_file_name): New functions.
4786         (header_desc): New fields `no_of_level_one_headings',
4787         `header_filename'.
4788         (header_desc::header_desc): Updated.
4789         (header_desc::write_headings): Handle multiple files.
4790         (html_printer::write_header): Save file name in which header occurs.
4791         (html_printer::determine_header_level): Possibly split files on
4792         level one headings.
4793         (html_printer::do_links, html_printer::troff_tag): Updated.
4794         (html_printer::insert_split_file, html_printer::do_job_name,
4795         html_printer::emit_link, html_printer::write_navigation,
4796         html_printer::do_file_components): New functions.
4797         (html_printer::~html_printer): Handle multiple files.
4798         (main): Handle command line option `-j'.
4800         * src/devices/grohtml/grohtml.man: Updated.
4802         * doc/Makefile.sub (pic.html), doc/Makefile.in (pic.html): New rule
4803         which splits file.
4805         * tmac/www.tmac (JOBNAME): New macro.
4806         * tmac/s.tmac (SH-NO-TAG): New macro.
4807         (@SH): Call SH-NO-TAG.
4808         (@NH): Updated.
4810 2003-07-05  Ruslan Ermilov  <ru@FreeBSD.org>
4812         * tmac/groff_mdoc.man: Improve documentation of punctuation
4813         characters.
4815 2003-07-04  Ruslan Ermilov  <ru@FreeBSD.org>
4817         * tmac/doc.tmac (Bd): Change to doc-Li-font later.
4819 2003-07-03  Werner LEMBERG  <wl@gnu.org>
4821         * tmac/an-old.tmac [cR]: Redefine `bp' to avoid empty lines.
4823 2003-07-01  Ruslan Ermilov  <ru@FreeBSD.org>
4825         * tmac/doc.tmac (doc-do-func, doc-do-func-args): Don't print a comma
4826         after `/*' and `*/'.
4827         Fix spacing.
4828         (Fn, Fo): Reduce indentation in synopsis.
4830         * tmac/doc-common (doc-check-depth): New macro.
4831         (doc-end-macro, Sh, Ss): Use it.
4832         (Cd): Fix behaviour in synopsis.
4833         (In): Make it parsed and callable.
4834         If not in the synopsis, represent the C header file enclosed in
4835         angle brackets.
4836         (doc-str-Rv-std-suffix, doc-str-Rv-stds-suffix, doc-str-Rv-std0):
4837         Use minus, not hyphen.
4839         * tmac/groff_mdoc.man: Updated.
4841 2003-07-01  Werner LEMBERG  <wl@gnu.org>
4843         Integrated grap2graph, contributed by Eric S. Raymond.
4845         * contrib/grap2graph/{Makefile.sub, grap2graph.sh, grap2graph.man}:
4846         New files.
4847         * Makefile.in, NEWS, MANIFEST, contrib/eqn2graph.man,
4848         contrib/pic2graph.man, src/roff/groff/groff.man: Updated.
4850 2003-07-01  Colin Watson  <cjwatson@debian.org>
4852         * src/xditview/*.c: Add prototypes, fix return types, add includes.
4853         Based on work by Fumitoshi UKAI <ukai@debian.or.jp>.
4855 2003-06-31  Ruslan Ermilov  <ru@FreeBSD.org>
4857         * tmac/tty-char.tmac: Provide `lb', `rb', `lk', `rk', `lt', `rt'.
4859 2003-06-31  Werner LEMBERG  <wl@gnu.org>
4861         * doc/Makefile.sub (CLEANADD): Remove all files created by
4862         running `make groff.{pdf,dvi}'.
4864         * Makefile.sub (DISTCLEANFILES): Remove all non-source files from
4865         src/xditview also.
4867 2003-06-30  Werner LEMBERG  <wl@gnu.org>
4869         * Makefile.in (SHELL): Define as @SHELL@.
4870         (mkinstalldirs): Use $(SHELL).
4871         (MDEFINES): Add $(SHELL).
4872         * Makefile.comm (SHELL): Removed.
4874 2003-06-29  Werner LEMBERG  <wl@gnu.org>
4876         * tmac/s.tmac (De, Ds): New aliases for .DE and .DS, respectively.
4877         The X11 documentation files use them.
4878         * tmac/groff_ms.man, doc/groff.texinfo: Document them.
4880 2003-06-15  Robert Goulding  <goulding@Princeton.EDU>
4882         * tmac/e.tmac (@C): Handle .ad also.
4884 2003-06-12  Werner LEMBERG  <wl@gnu.org>
4886         * src/preproc/tbl/tbl.man: Document formatting of text blocks.
4888         * src/roff/troff/input.cc (token::next) <handle_escape_char>:
4889         Assign `n' even here.  It is possible to construct a node
4890         immediately following an escape character:
4892           .di xx
4893           \?\\\?a
4894           .br
4895           .di
4896           .xx
4898 2003-06-10  Werner LEMBERG  <wl@gnu.org>
4900         * README.WIN32: Removed.
4901         * MANIFEST: Updated.
4903 2003-06-07  Werner LEMBERG  <wl@gnu.org>
4905         * src/roff/nroff/nroff.sh: Don't emit SGR for option -u.
4907 2003-06-05  Werner LEMBERG  <wl@gnu.org>
4909         * src/preproc/pic/pic.y <sprintf_args>: Implement workaround for bug
4910         in Compaq C++ V6.5-033 for Compaq Tru64 UNIX V5.1A (Rev. 1885).
4912 2003-06-03  Werner LEMBERG  <wl@gnu.org>
4914         * src/preproc/grn/hdb.cpp (DBRead): Don't close file handle; this
4915         is done by the calling function.
4917 2003-05-22  Ruslan Ermilov  <ru@FreeBSD.org>
4919         * tmac/X.tmac: Fix definition of `em'.
4921 2003-05-22  Werner LEMBERG  <wl@gnu.org>
4923         * src/roff/troff/input.cc (return_macro_request): Fix detection of
4924         argument.
4926 2003-05-18  Werner LEMBERG  <wl@gnu.org>
4928         * tmac/doc.tmac (doc-tag-list): Force horizontal mode after tag
4929         to make items work which consist only of a tag.
4931 2003-05-17  Werner LEMBERG  <wl@gnu.org>
4933         * tmac/doc.tmac (doc-tag-list): Don't use \Z to assure that spaces
4934         aren't stretched in a tag (this can fail with unformatted boxes).
4935         Instead, insert a break and go back one line.
4937 2003-05-16  Werner LEMBERG  <wl@gnu.org>
4939         * src/roff/troff/input.cc (return_macro_request): If called with
4940         argument pop macro twice.  We need this to trace `return'.
4942         * tmac/trace.tmac: Handle `return'.
4943         Fix typos.
4945         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
4946         Document.
4948 2003-05-15  Larry Kollar  <kollar@alltel.net>
4950         * tmac/groff_ms.man, doc/groff.texinfo: Improve documentation of
4951         registers `FPS', `FVS', and `FPD'.
4953 2003-05-15  Werner LEMBERG  <wl@gnu.org>
4955         * src/utils/pfbtops/pfbtops.c (get_text): Handle loop counter
4956         correctly.
4958 2003-05-03  Ruslan Ermilov  <ru@FreeBSD.org>
4960         * tmac/groff_mdoc.man: Slight improvements.
4962 2003-05-03  Werner LEMBERG  <wl@gnu.org>
4964         * tmac/doc-common (doc-header): Emit vertical space of 1v instead of
4965         `doc-header-space' after header line if register `cR' is set.
4967 2003-05-02  Werner LEMBERG  <wl@gnu.org>
4969         * TODO: Updated.
4971 2003-05-01  Ruslan Ermilov  <ru@FreeBSD.org>
4973         * tmac/doc-common (Nd): Use \[em].
4975 2003-05-01  Werner LEMBERG  <wl@gnu.org>
4977         * tmac/doc-ditroff, tmac/doc-nroff (doc-header-space,
4978         doc-footer-space): Initialize to 0.5i.
4979         (doc-setup-page-layout): Don't set doc-header-space and
4980         doc-footer-space.
4982 2003-04-30  Werner LEMBERG  <wl@gnu.org>
4984         * REVISION: Set to 1.
4986         * doc/pic.ms: Document possible problems with `figname'.
4988 2003-04-29  Werner LEMBERG  <wl@gnu.org>
4990 Version 1.19 released
4991 =====================
4993         * VERSION: Set to 1.19.
4994         * REVISION: Set to 0.
4995         * doc/groff.texinfo, doc/webpage.ms, NEWS: Updated.
4997         * src/devices/grohtml/post-html.cpp (html_printer::~html_printer):
4998         Define charset as `US-ASCII' in html output.
5000         * tmac/www.tmac (ULE): Add missing scaling indicator.
5002         * win32-diffs: Removed.
5004 2003-04-28  Werner LEMBERG  <wl@gnu.org>
5006         * doc/groff.texinfo: Document `dn' and `dl' registers if used with
5007         `.da' and `.boxa'.
5008         Document how to insert discardable whitespace with `.ss'.
5010 2003-04-27  Werner LEMBERG  <wl@gnu.org>
5012         * src/preproc/pic/tex.cpp (tex_output::start_picture): Make code
5013         work with plain TeX also.
5015         * src/preproc/pic/pic.man, doc/pic.ms: Fix TeX code example.
5017 2003-04-25  Gaius Mulley  <gaius@glam.ac.uk>
5019         * src/devices/grohtml/post-html.cpp (html_printer::~html_printer):
5020         Use a loose DTD.
5022 2003-04-24  Werner LEMBERG  <wl@gnu.org>
5024         * src/preproc/pic/pic.man, doc/pic.ms: Explain how to get a
5025         vbox with positive height and zero depth if in TeX mode.
5027         * NEWS: Document glyph name changes for grodvi and grolj4.
5029 2003-04-23  Werner LEMBERG  <wl@gnu.org>
5031         * src/preproc/pic/tex.cpp (tex_output::start_picture): Fix TeX code.
5032         * doc/pic.ms: Fixed.
5034 2003-04-21  Werner LEMBERG  <wl@gnu.org>
5036         HP-UX 10.20 has `snprintf' but it isn't declared.
5038         * configure.ac: Add declaration test for snprintf.
5039         * configure: Regenerated.
5040         * src/include/lib.h: Handle `NEED_DECLARATION_SNPRINTF'.
5041         * src/include/config.hin: Regenerated.
5043 2003-04-19  Werner LEMBERG  <wl@gnu.org>
5045         Add keyword `figname' to pic, specifying the name of the picture
5046         box in TeX mode.  Based on a patch from William J Poser
5047         <wjposer@unagi.cis.upenn.edu>.
5049         * src/preproc/pic/pic.y: New token `FIGNAME'.
5050         (macro_name): New rule of type <str>.
5051         (placeless_element): Handle `FIGNAME'.
5052         * src/preproc/pic/lex.cpp (lookup_keyword): Add `figname'.
5053         * src/preproc/pic/main.cpp (graphname): New global variable.
5054         (do_picture): Initialize `graphname'.
5055         * src/preproc/pic/pic.h: Updated.
5056         * src/preproc/pic/tex.cpp (tex_output::start_picture): Use
5057         `graphname'.
5058         Simplify TeX code.
5059         (tex_output::text): Beautify output.
5060         * src/preproc/pic/object.cpp (object_spec::~object_spec): Deallocate
5061         `shaded' and `outlined' unconditionally.
5062         * NEWS, src/preproc/pic/pic.man, doc/pic.ms: Updated.
5063         Minor improvements.
5065         * PROBLEMS, README.CVS: Mention that bison version 1.875b or
5066         greater is necessary.
5068 2003-04-17  Hartmut Henkel  <hartmut_henkel@gmx.de>
5070         Add option -r to soelim to avoid emission of `.lf' lines.
5071         Add option -t to produces TeX comment lines instead of `.lf' lines.
5073         * src/preproc/soelim/soelim.cpp: New global variables `raw_flag'
5074         and `tex_flag'.
5075         (usage): Updated.
5076         (main): Handle `-r' and `-t'.
5077         (set_location): Handle `raw_flag' and `tex_flag'.
5078         * src/preproc/soelim/soelim.man, NEWS: Updated.
5080 2003-04-17  Werner LEMBERG  <wl@gnu.org>
5082         * tmac/hyphenex.sh: Replaced with...
5083         * tmac/hyphenex.pl: This perl script to avoid sed compatibility
5084         nightmares.
5086         * aclocal.m4 (GROFF_HTML_PROGRAMS): Emit useful warning message
5087         if --quiet is used for the configure script.
5088         * configure: Regenerated.
5090 2003-04-16  Werner LEMBERG  <wl@gnu.org>
5092         * src/devices/grohtml/post-html.cpp (text_glob::text_glob):
5093         Add `const' to second argument.
5094         (html_printer::add_table_end): Add `const' to argument.
5095         * src/devices/grohtml/html-text.cpp (html_text::issue_tag): Add
5096         `const' to arguments.
5097         * src/devices/grohtml/html-text.h: Updated.
5099         * src/devices/grolbp/charset.h (symset): Use `unsigned char'.
5100         * src/devices/grolbp/lbp.h (lbpputc): Use `unsigned char' for
5101         argument.
5103         * src/devices/grotty/tty.cpp (tty_printer::make_rgb_string): Use
5104         cast for integer constant.
5106         * src/preproc/html/pre-html.cpp (image_device): Use `const'.
5107         (writeNbytes): Add `const' to first argument.
5108         (writeString): Add `const' to argument.
5109         (char_buffer::can_see): Add `const' to third argument.
5110         * src/preproc/html/pushback.cpp (pushBackBuffer::isString): Add
5111         `const' to argument.
5112         * src/preproc/html/pushback.h: Updated.
5114         * src/preproc/soelim/soelim.cpp (include_list): Add `const'.
5115         (include_path_append): Add `const' to argument.
5116         (do_file): Updated.
5118         * src/roff/troff/uniglyph.cpp (unicode_to_glyph_list): Use `const'
5119         for `value'.
5120         (unicode_to_glyph_init::unicode_to_glyph_init): Updated.
5121         * src/roff/troff/uniuni.cpp (unicode_decompose_list): Use `const'
5122         for `value'.
5123         (unicode_decompose_init::unicode_decompose_init): Updated.
5124         * src/roff/troff/glyphuni.cpp (glyph_to_unicode_list): Use `const'
5125         for `value'.
5126         (glyph_to_unicode_init::glyph_to_unicode_init): Updated.
5127         * src/roff/troff/input.cc (process_startup_file): Add `const' to
5128         argument.
5130         * tmac/hyphenex.sh: Make script more portable by using a here
5131         document.
5133 2003-04-15  Werner LEMBERG  <wl@gnu.org>
5135         Renamed all `*.cc' files to `*.cpp'.
5136         Updated all configuration files, makefiles, and documentation.
5138 2003-04-14  Werner LEMBERG  <wl@gnu.org>
5140         * tmac/hyphenex.sh: Slight improvements.
5142 2003-04-13  Werner LEMBERG  <wl@gnu.org>
5144         * font/devascii/R.proto, font/devcp1037/R.proto,
5145         font/devlatin1/R.proto, font/devutf8/R.proto: Fill up remaining
5146         character slots with unnamed glyphs.
5148         * tmac/an-old.tmac: Fix hyphenation value if `cR' is active.
5149         (an-first): New global variable.
5150         (an-header): Emit vertical space between multiple man pages.
5152 2003-04-11  Werner LEMBERG  <wl@gnu.org>
5154         * doc/groff.texinfo, man/groff_out.man: \S only accepts integer
5155         values.
5157 2003-04-10  Werner LEMBERG  <wl@gnu.org>
5159         * PROBLEMS: Revised.
5161 2003-04-10  Bernd Warken  <bwarken@mayn.de>
5163         * doc/webpage.ms: Improved.
5165 2003-04-09  Werner LEMBERG  <wl@gnu.org>
5167         Add register \n[.height] which returns the value of \H.
5168         Add register \n[.slant] which returns the value of \S.
5170         * src/roff/troff/env.cc (init_env_requests): Implement.
5171         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
5172         Document.
5174 2003-04-08  Werner LEMBERG  <wl@gnu.org>
5176         * tmac/html.tmac: Move some of the data into html-end.tmac.
5177         Remove most of the character translations for eqn since html fonts
5178         now cover those characters.
5179         Load www.tmac.
5180         * tmac/html-end.tmac: New file.
5181         * tmac/troffrc: Load html.tmac not www.tmac for -Thtml.
5182         * tmac/troffrc-end: Load html-end.tmac not html.tmac for -Thtml.
5183         * tmac/Makefile.sub (NORMALFILES): Add html-end.tmac.
5185 2003-04-07  Werner LEMBERG  <wl@gnu.org>
5187         * man/groff_out.man: Document negative values of `N' if -Thtml is
5188         used.
5190 2003-04-06  Werner LEMBERG  <wl@gnu.org>
5192         * Makefile.comm (depend.temp): Check location of YTABC.
5194 2003-04-05  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5196         * contrib/mom/Makefile.sub (GROFFBIN): New variable for groff
5197         binary path.
5198         (groff_bin_path): Rename to GROFF_BIN_PATH.
5199         (GROFF): Use GROFFBIN and GROFF_BIN_PATH.
5200         * doc/Makefile.in (TROFFBIN): New variable for troff
5201         binary path.
5202         (GROFFBIN): New variable for groff binary path.
5203         (groff_bin_path): Rename to GROFF_BIN_PATH.
5204         (TROFF): Use TROFFBIN.
5205         (GROFF): Use GROFFBIN and GROFF_BIN_PATH.
5206         * doc/Makefile.sub (GROFFBIN): New variable for groff
5207         binary path.
5208         (groff_bin_path): Rename to GROFF_BIN_PATH.
5209         (GROFF): Use GROFFBIN and GROFF_BIN_PATH.
5211         * Makefile.comm (install_dev): Install scripts from DEVSCRIPTS
5212         with INSTALL_SCRIPT.
5213         (uninstall_dev): Uninstall scripts from DEVSCRIPTS.
5214         * Makefile.dev (all): Depend on DEVSCRIPTS.
5215         (install_dev): Likewise.
5216         * font/devdvi/Makefile.sub (DEVSCRIPTS): New variable to hold
5217         scripts.
5218         * font/devps/Makefile.sub (DEVSCRIPTS): Likewise.
5219         (DEVGENSCRIPTS): New variable to hold generated scripts.
5221 2003-04-05  Werner LEMBERG  <wl@gnu.org>
5223         * src/libs/libdriver/input.cc (IntArray::operator[],
5224         IntArray::get_data): Remove meaningless `const' in return value.
5226         * README.CVS: New file.
5228 2003-04-04  Werner LEMBERG  <wl@gnu.org>
5230         Check for stdint.h in C++, not in C.
5232         * aclocal.m4 (GROFF_STDINT_H): New function,
5233         * configure.ac: Check for stdint.h with GROFF_STDINT_H instead of
5234         AC_CHECK_HEADERS.
5235         * configure, src/include/config.hin: Regenerated.
5236         * src/libs/libgroff/tmpname.cc: Use HAVE_CC_STDINT_H.
5239         Fix handling of &nbsp; in grohtml.  To do this, troff emits `N'
5240         with a negative value, representing the width of the unbreakable
5241         space (only for -Thtml).  grohtml then converts this back to
5242         &nbsp; and uses the value of N as its width.
5244         * src/roff/troff/node.cc (space_char_hmotion_node::tprint,
5245         unbreakable_space_node::tprint): Emit `N-<width>'.
5246         * src/include/printer.h (printer::set_numbered_char): Make it
5247         virtual.
5248         Make members `font_table' and `nfonts' protected instead of private.
5249         * src/devices/grohtml/post-html.cc
5250         (html_printer::set_numbered_char): New member function.
5253         * src/libs/libgroff/maxfilename.cc:
5254         s/HAVE_LIMITS_H/HAVE_CC_LIMITS_H/.
5256         * src/roff/troff/node.cc (unbreakable_space_node::tprint): Don't
5257         emit word marker.
5259 2003-04-03  Sergey A. Osokin  <osa@freebsd.org.ru>
5261         * man/roff.man: Small fixes.
5263 2003-04-03  Werner LEMBERG  <wl@gnu.org>
5265         Make groff independent from locale's numeric settings.
5267         * configure.ac: Check for `setlocale'.
5268         * configure, src/include/config.hin: Regenerated.
5270         * src/include/lib.h: Handle HAVE_SETLOCALE.
5272         * src/devices/grodvi/dvi.cc (main), src/devices/grolj4/lj4.cc
5273         (main), src/devices/grops/ps.cc (main), src/preproc/grn/main.cc
5274         (main), src/preproc/pic/main.cc (main): Call `setlocale'.
5277         * doc/groff.texinfo: Change dir category to `Typesetting'.
5278         (Man font macros): Mention that there is no space between arguments
5279         of .BI and friends.
5281         * src/libs/libdriver/printer.cc, src/devices/grotty/tty.cc
5282         (*printer::change_color, *printer::change_fill_color): Add missing
5283         `const'.
5285 2003-04-02  Werner LEMBERG  <wl@gnu.org>
5287         * src/devices/grohtml/html-table.cc (html_table::emit_col,
5288         html_table::is_gap): Compute table widths after converting border
5289         positions to avoid rounding errors.
5291 2003-04-01  Werner LEMBERG  <wl@gnu.org>
5293         * src/devices/grohtml/html-text.cc (html_text::do_space): Handle
5294         `space_emitted' properly.
5296 2003-03-31  Werner LEMBERG  <wl@gnu.org>
5298         * src/devices/grohtml/html-table.cc: Fix column width calculation.
5299         (html_table::set_linelength): Don't add 1.
5300         (html_table::add_indent): Don't subtract 1.
5302         * tmac/html.tmac: Set default page offset to zero.
5304 2003-03-30  Werner LEMBERG  <wl@gnu.org>
5306         Make groff emit `&nbsp;' for `\ ' and `\~' if `-Thtml' is used.
5308         * src/roff/troff/node.cc (space_char_hmotion_node::tprint,
5309         unbreakable_space_node::tprint): New functions.
5310         (troff_output_file): Make space_char_hmotion_mode::tprint and
5311         unbreakable_space_node::tprint to friends.
5312         * src/roff/troff/node.h: Updated.
5314         * font/devhtml/R.proto: Add `&nbsp' at position 0xA0 (as defined
5315         in the HTML standard).
5317 2003-03-29  Werner LEMBERG  <wl@gnu.org>
5319         * src/roff/troff/env.cc (point_size): Fix emission of html tag.
5320         Otherwise, the following code
5322           .di xxx
5323           .ps 10
5324           a
5325           .br
5326           .di
5327           x\*[xxx]
5329         produces `x a' instead of `xa'.  This is a temporary fix, disabling
5330         font changes in diversions for -Thtml.
5332         * tmac/an-old.tmac (TH, SH): Use `HTML-TAG-NS' instead of
5333         `HTML-TAG'.
5334         (an-do-tag-html): Merge with ...
5335         (an-do-tag): This macro.
5336         Change code slightly to circumvent grohtml bug.
5337         * tmac/troffrc-end: Define dummy for HTML-TAG-NS.
5339         * src/devices/grohtml/html-table.cc (html_table::emit_col,
5340         html_table::is_gap): Round `width' properly.
5342         * tmac/html.tmac: Provide some default layout parameters for
5343         grohtml.
5345         * font/devhtml/DESC.proto: Don't use discrete values for `sizes'
5346         command.
5348 2003-03-28  Werner LEMBERG  <wl@gnu.org>
5350         src/devices/grops/ps.cc (ps_printer::do_import): Fix error message.
5352 2003-03-27  Werner LEMBERG  <wl@gnu.org>
5354         * tmac/an-old.tmac (BT): Don't call .tl if register `ps4html' is
5355         defined.
5357 2003-03-20  Werner LEMBERG  <wl@gnu.org>
5359         * src/roff/troff/env.cc (vertical_spacing): Allow zero value for
5360         `.vs'.
5361         * doc/groff.texinfo: Updated.
5363 2003-03-19  Werner LEMBERG  <wl@gnu.org>
5365         * src/roff/troff/input.cc (process_input_stack) <TOKEN_BEGIN_TRAP,
5366         TOKEN_END_TRAP>: Reset `have_input'.
5368 2003-03-18  Werner LEMBERG  <wl@gnu.org>
5370         * src/roff/groff/groff.man: Mention groff_trace man page.
5372 2003-03-16  Werner LEMBERG  <wl@gnu.org>
5374         * Makefile.in (LIBEXT): New variable to indicate the file extension
5375         of library files.  Computed heuristically from $(OBJEXT).
5376         (MDEFINES): Add $(LIBEXT).
5377         * Makefile.lib, Makefile.comm: Use it.
5379         * src/utils/pfbtops/pfbtops.c (get_text): New function.  Split
5380         overlong lines into smaller chunks.
5381         (get_binary): New function.
5382         (main): Use them.
5383         * src/utils/pfbtops/pfbtops.man: Updated.
5385 2003-03-15  Colin Watson  <cjwatson@debian.org>
5387         * src/roff/groff/groff.man: Minor syntax fix.
5389 2003-03-14  Egil Kvaleberg  <egil@kvaleberg.no>
5391         * src/devices/grops/ps.cc (ps_printer::media_set,
5392         ps_printer::~ps_printer): Handle zero paper width and length.
5394 2003-03-13  Werner LEMBERG  <wl@gnu.org>
5396         Add options -p and -l to grodvi.
5398         * src/devices/grodvi/dvi.cc: Include paper.h.
5399         (landscape_flag, user_paper_length, user_paper_width): New global
5400         variables.
5401         (dvi_printer::begin_page): Emit `papersize' special.
5402         Set color after initialization of `cur_h' and `cur_v'.
5403         (main): Add options `-l' and `-p'.
5404         * font/devdvi/Makefile.sub (DESC): Set `papersize'.
5405         * src/devices/grodvi/grodvi.man, NEWS: Updated.
5407         * src/devices/grops/psrm.cc (valid_input_table): Fixed.
5409 2003-03-12  Werner LEMBERG  <wl@gnu.org>
5411         * src/devices/grops/grops.man: Move documentation of .PSPIC to...
5412         * man/groff_tmac.man: This man page.
5413         * man/groff_font.man: Declare `paperwidth' and `paperlength' as
5414         deprecated.
5416         * tmac/X.tmac: Don't load pspic.tmac.
5418 2003-03-11  Werner LEMBERG  <wl@gnu.org>
5420         Make variable `pr' local to libdriver/input.cc.  Based on a patch
5421         by Bernd Warken <bwarken@mayn.de>.
5423         * src/include/driver.h (pr): Removed.
5425         * src/libs/libdriver/input.cc (pr): New global variable.
5426         (do_file): Deallocate `pr'.
5427         * src/libs/libdriver/printer.cc (pr): Removed.
5429         * src/devices/grodvi/dvi.cc (main), src/devices/grohtml/post-html.cc
5430         (main), src/devices/grolbp/lbp.cc (main), src/devices/grolj4/lj4.cc
5431         (main), src/devices/grops/ps.cc (main), src/devices/grotty/tty.cc
5432         (main): Don't delete `pr'.
5434 2003-03-10  Werner LEMBERG  <wl@gnu.org>
5436         * tmac/a4.tmac, tmac/composite.tmac: Use `.do'.
5437         * tmac/papersize.tmac: New file.
5438         * tmac/troffrc: Include `papersize.tmac'.
5439         * tmac/Makefile.sub (NORMALFILES): Add `papersize.tmac'.
5440         * tmac/an-old.tmac: Set LT to LL by default.
5442         * NEWS, MANIFEST, tmac/groff_man.man, man/groff_tmac.man,
5443         doc/groff.texinfo: Updated.
5445         * src/libs/libgroff/paper.cc (add_iso_paper): Fix very embarassing
5446         bug which caused all odd iso papers to have wrong dimensions.
5448         * src/devices/grops/ps.cc (user_paper_width): New global variable.
5449         (main) <'p'>: Set `user_paper_width' also.
5450         (ps_printer::media_width, ps_printer::media_height): Use values
5451         given with option `-p'.
5453 2003-03-09  Werner LEMBERG  <wl@gnu.org>
5455         * src/include/nonposix.h: Provide default for SET_BINARY.
5457         * src/devices/grodvi/dvi.cc, src/devices/grolbp/lbp.cc,
5458         src/devices/grolj4/lj4.cc, src/devices/grops/ps.cc: Call SET_BINARY
5459         unconditionally.
5461         * src/utils/pfbtops/pfbtops.c: Call SET_BINARY unconditionally.
5462         (main): Treat \r\n as \n.
5464 2003-03-08  Werner LEMBERG  <wl@gnu.org>
5466         * tmac/an-old.tmac: Use register `HY' to control hyphenation.
5467         * NEWS, tmac/groff_man.man, doc/groff.texinfo: Document it.
5469 2003-03-07  Werner LEMBERG  <wl@gnu.org>
5471         Added support to access more than 256 glyphs in Type 1 fonts.
5473         * src/devices/grops/ps.cc (subencoding): New structure.
5474         (style): Add `sub' field.
5475         Updated all users.
5476         (ps_printer): Add `subencodings' and `next_subencoding_index' fields.
5477         Add `set_subencoding', `get_subfont' and `encode_subfont' member
5478         functions.
5479         Updated all users.
5480         (ps_printer::set_char): Use `set_subencoding'.
5481         (make_subencoding_name): New function.
5482         (ps_printer::set_style): Handle case where `sty.sub' is not zero.
5483         (ps_printer::~ps_printer): Emit subencoding definitions.
5485         * src/devices/grops/psrm.cc (valid_input_table): New array to
5486         properly support EBCDIC.
5487         (white_space): Add `\f'.
5488         (ps_get_line): Change first argument to be of type `string &'.
5489         Updated all callers.
5490         This allows to get lines of arbitrary length.
5491         Use `valid_input_table'.
5492         Remove warning about non-conforming PS line length.  This seems
5493         not to be of great importance -- for example, dvips don't emit
5494         a warning either.
5495         (PS_LINE_MAX): Removed.
5496         (matches_comment): Change first argument to be of type `string &'.
5498         * src/devices/grops/grops.man, src/devices/grops/TODO: Updated.
5500         * src/utils/afmtodit/afmtodit.pl (%unicode_decomposed,
5501         %AGL_to_unicode, %default_ligatures): New hash tables.
5502         Read all map entries.
5503         Add unencoded characters.
5504         Check for default ligatures if there are no `L' entries.
5505         Print all kern entries.
5506         Print all characters in charset.
5507         * src/utils/afmtodit/afmtodit.man: Updated.
5509         * font/devps/*: Regerated all fonts.
5511         * tmac/latin[129].tmac, tmac/cp1047.tmac: Don't test for existence
5512         of characters, just use `.trin'.  Otherwise the mapping depends
5513         on the font encoding.
5514         * tmac/ps.tmac: Add `fi' and `fl'.
5515         Improve `Fi' and `Fl'.
5516         * tmac/X.tmac, tmac/lbp.tmac, tmac/tty.tmac: Improve `Fi' and `Fl'.
5517         * tmac/Xps.tmac: Fix `em'.
5519         * NEWS: Updated.
5521 2003-03-04  Werner LEMBERG  <wl@gnu.org>
5523         * src/roff/troff/input.cc (charinfo_to_node_list): Reset
5524         `have_input'.
5526 2003-03-03  Werner LEMBERG  <wl@gnu.org>
5528         * Makefile.sub (DISTCLEANFILES): Add gxditview._man.
5530         * font/devps/generate/textmap: Remove entry `similarequal'.
5531         * font/devps/symbolmap: Updated.
5533 2003-03-02  Werner LEMBERG  <wl@gnu.org>
5535         * src/libs/libgroff/font.cc (font::load): Fix error message for
5536         bad character type.
5538         * src/devices/grops/grops.man: Improve documentation of the -b
5539         flag.
5541         * tmac/tty.tmac: Load latin1.tmac for all TTY devices except
5542         `ascii' and `cp1047'.
5544 2003-03-01  Werner LEMBERG  <wl@gnu.org>
5546         Document composite glyphs and the `composite' request.
5548         * man/groff.man, man/groff_diff.man, doc/groff.texinfo: Do it.
5550 2003-02-28  Werner LEMBERG  <wl@gnu.org>
5552         * font/devdvi/generate/ec.map: Add some more Unicode entities.
5553         * font/devdvi/*EC: Updated.
5555         * tmac/composite.tmac, tmac/latin2.tmac, tmac/latin9.tmac: New files.
5556         * tmac/latin1 (latin1-tr): Undo any previous mapping.
5557         * tmac/troffrc: Load `composite.tmac'.
5558         * tmac/Makefile.sub (NORMALFILES): Updated.
5560         * doc/groff.texinfo (Input Encodings): New section.
5561         * NEWS: Updated.
5563 2003-02-27  Werner LEMBERG  <wl@gnu.org>
5565         * doc/texinfo.tex: New version 2003-02-11.06.
5567         * tmac/doc-common (Dt): Don't emit warning for unknown section.
5568         * tmac/groff_mdoc.man: Fix description of `Dt'.
5570 2003-02-26  Egil Kvaleberg  <egil@kvaleberg.no>
5572         * font/devps/prologue.ps: Fix for included Postscript that does
5573         a setpagedevice -- which is now safely ignored.
5575         * NEWS: Updated.
5577         * src/devices/grops/ps.cc: Now sets the page size in the generated
5578         document.  This is done in two ways: Via a %%-comment for gv and
5579         the like, and via a PageSize and setpagedevice for programs that
5580         understands Postscript proper, like ps2pdf.
5582         * src/devices/grops/ps.h: New broken-flag to avoid page size
5583         definition, if required.
5585         * src/devices/grops/grops.man: New broken-flag 16 mentioned.
5587         * doc/Makefile.in: Added -nosetpage flag (via @pnmtops_nosetpage@).
5588         Not really necessary due to the fix in prologue.ps, but cleaner:
5589         Such information does not belong in an .eps file.
5591         * doc/Makefile.sub: See doc/Makefile.in.
5593 2003-02-26  Ralph Corderoy  <ralph@inputplus.co.uk>
5595         * aclocal.m4 (GROFF_PNMTOPS_NOSETPAGE): Use P2 format for testing
5596         instead of P1 since the latter is broken in some versions of netpbm.
5597         * configure: Updated.
5599 2003-02-26  Larry Kollar  <kollar@alltel.net>
5601         Make man pages more customizable.
5603         * tmac/an-old.tmac (FT): New register holding footer distance from
5604         bottom.
5605         (HF): New string holding the default heading font.
5606         (TH): Handle registers `IN' and `SN' set on the command line.
5607         Use `FT'.
5608         (PT, BT): New strings to customize header and footer lines.
5609         (an-header, an-footer): Use them.
5610         (SH, SS): Use `HF'.
5611         * tmac/groff_man.man: Document changes.
5613         * doc/groff.texinfo: Document man changes.
5614         Document Ultrix extensions of man.
5616 2003-02-26  Werner LEMBERG  <wl@gnu.org>
5618         * src/roff/troff/input.cc (do_width, do_if_request): Reset
5619         `have_input' after changing back to old environment.
5621         * src/devices/grolbp/lbp.cc (lbp_printer::set_line_thickness): Move
5622         function up to be defined before first call.  This is necessary to
5623         avoid a compilation problem with Sun's WorkShop 6 C++ compiler.
5625         * src/utils/afmtodit/afmtodit.pl: Make script search for files in
5626         the default font directory also.  Based on a patch from James
5627         J. Ramsey <jjramsey_6x9eq42@yahoo.com>.
5628         * src/utils/afmtodit/Makefile.sub (afmtodit): Handle @FONTDIR@.
5629         * src/utils/afmtodit/afmtodit.man: Document it.
5631         * NEWS: Updated.
5633         * tmac/groff_man.man, doc/groff.texinfo: Many minor fixes.
5635 2003-02-25  Gaius Mulley  <gaius@glam.ac.uk>
5637         * aclocal.m4 (GROFF_HTML_PROGRAMS): Add test for pnmtops.
5638         (GROFF_PNMTOPS_NOSETPAGE): New macro.
5639         * configure.ac: Use it.
5640         * configure: Regenerated.
5641         * Makefile.in: Updated.
5643         * tmac/Makefile.sub (NORMALFILES): Remove www.tmac.
5644         (CLEANADD): Add www.tmac-sed.
5645         (pnmtops_nosetpage): Define default.
5646         (install_data): Handle www.tmac-sed and substitute
5647         @PNMTOPS_NOSETPAGE@.
5648         (stamp-sed): Add www.tmac.
5649         * tmac/www.tmac: Rewritten, based on a patch by Bernd Warken.
5650         It now breaks URLs at suitable places.
5651         (www:substring_ok): New register set by...
5652         (www:@test_substring): New macro.
5653         (www:error): New alias to www-error.
5654         (www:lenstr, www:splitstr, www:url_breaks, www:url_breaks_splitted):
5655         New macros.
5656         (URL): Use www:url_breaks.
5657         (PIMG, MPIMG): Use @PNMTOPS_NOSETPAGE@.
5658         (CDS, CDE): New macros.
5660 2003-02-25  Werner LEMBERG  <wl@gnu.org>
5662         * src/devices/grops/ps.cc (ps_printer::define_encoding): Avoid
5663         buffer overflow.
5665 2003-02-24  Werner LEMBERG  <wl@gnu.org>
5667         Contrary to the PCL5 Developer's Guide, the ascenders in TFM files
5668         can be negative also.
5670         * src/utils/hpftodit/hpftodit.cc (char_info): `ascent' must be
5671         `int16'.
5672         (read_char_table): Avoid negative ascenders.
5673         (output_charset): Add cast.
5674         * font/devlj4/*: Regenerated.
5676         Replace unnamed glyphs for DVI fonts with `uXXXX' glyph names where
5677         possible.
5679         * font/devdvi/generate/{tc,texttt,ec,texmi,texsy,textex}.map: Do it.
5680         * font/devdvi/generate/textex.map: Map glyph 23 to `u21C6' instead
5681         of `<>'.
5682         * font/devdvi/*: Regenerated.
5684         Map `la' and `ra' to U+27E8 and U+27E9.  These two characters have
5685         normal width, while the previously used characters (U+2329 and
5686         U+232A) are classified as wide due to canonical equivalence with the
5687         CJK punctuation characters U+3008 and U+3009.
5689         * font/devutf8/R.proto: Updated.
5690         * src/roff/troff/uniglyph.cc, src/roff/troff/glyphuni.cc: Ditto.
5692         * man/groff_char.man: Simplify handling of table traps by
5693         introducing `start block' and `end block' macros.
5694         (Ns, Ne, 2s, 2e, Ds, De): New macros.
5695         (DL): Make it work with Unix troff also.
5696         Fix code values of `la' and `ra'.
5698         * tmac/dvi.tmac: Define `<>' for CW and CWI.
5700 2003-02-23  Gaius Mulley  <gaius@glam.ac.uk>
5702         * src/devices/grohtml/post-html.cc (element_list::~element_list):
5703         New destructor, fixing a major memory leak.
5705 2003-02-22  Werner LEMBERG  <wl@gnu.org>
5707         * font/devhtml/R.proto, font/devutf8/R.proto: Flip `*f' and `+f'
5708         to be in conformance with Unicode 3.0 and newer.
5710         * font/devlj4/generate/text.map: Add `Eu'.
5711         * font/devlj4/generate/special.map: Flip `*e' and `+e'.
5712         * font/devlj4/S: Regenerated.
5714         * man/groff_char.man: Completely rewritten.
5716         * doc/groff.texinfo: Fix description of request and macro arguments.
5718 2003-02-20  Gaius Mulley  <gaius@glam.ac.uk>
5720         Valgrind fixes.
5722         * src/devices/grohtml/html-table.cc (html_table::~html_table):
5723         Deallocate `columns' list.
5724         * src/devices/grohtml/post-html.cc (char_block::~char_block):
5725         New destructor.
5726         (text_glob::text_glob_html, text_glob::text_glob_special,
5727         text_glob::text_glob_line, text_glob::text_glob_auto_image,
5728         text_glob::text_glob_tag): Avoid memory leaks.
5729         (text_glob::remember_table): Free memory before reassigning.
5731 2003-02-19  Werner LEMBERG  <wl@gnu.org>
5733         Add glyph `+e', greek lunate epsilon symbol, and `-h' (with the
5734         alias `hbar'), the Planck constant over two pi.
5736         * font/devdvi/generate/texmi.map: Use `*e' for position 15 and
5737         `+e' for position 34.
5738         * font/devdvi/generate/texsy.map: Replace `DI' and `HE' with
5739         `u2662' and `u2661'.
5740         * font/devdvi/{MI,S}: Regenerated.
5741         * font/devhtml/R.proto, font/devutf8/R.proto: Add `+e', `-h', `hbar'.
5742         * font/devlbp/*: Add `hbar' alias.
5743         * font/devlj4/generate/special.map: Ditto.
5744         * font/devlj4/S: Regenerated.
5745         * font/devps/generate/symbolchars: Add `+e'.
5746         * font/devps/generate/textmap: Fix PS name for `-h'.
5747         Add `hbar' alias.
5748         * font/devps/symbolmap: Regenerated.
5750         * src/devices/grops/ps.cc (transform_fill): Removed since unused.
5752         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Add `+e',
5753         `-h', `hbar'.
5754         * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Add `+e',
5755         `-h'.
5757         * tmac/X.tmac, tmac/ps.tmac: Provide definitions for `-h' and
5758         `hbar'.
5759         * tmac/tty-char.tmac: Add `+e'.
5761 2003-02-17  Werner LEMBERG  <wl@gnu.org>
5763         Another round trying to really fix problems with `have_input'.
5765         * src/roff/troff/input.cc (input_stack::get): Handle `have_input'.
5766         (token::next) <'\n'>, <\'\n'>: Don't handle `have_input'.
5768         * src/devices/grotty/tty.cc (tty_printer::put_color): Fix color
5769         handling if both foreground and background colors are default.
5771         * doc/groff.texinfo (Debugging): Document .lf differences to
5772         AT&T troff.
5774 2003-02-16  Werner LEMBERG  <wl@gnu.org>
5776         * src/devices/grotty/tty.cc (tty_printer::make_rgb_string): Avoid
5777         null-bytes in created string.
5779         * src/roff/troff/input.cc (lookup_color, interpolate_macro,
5780         alias_macro, lookup_request): Improve warning messages.
5782         * src/roff/troff/node.cc (suppress_node::tprint): Use `strsave',
5783         not `strdup'.
5784         Free `last_image_filename'.
5786         * src/preproc/html/pre-html.cc (char_block::char_block): Initialize
5787         `buffer'.
5788         (imageList::createPage, imageList::createImage): Use `free', not
5789         `a_delete'.
5790         (imageItem::~imageItem): Free `imageName'.
5791         (addRegDef): Use `strsave', not `strdup'.
5792         (get_resolution): Free `pathp'.
5794 2003-02-15  Werner LEMBERG  <wl@gnu.org>
5796         * src/devices/grotty/tty.cc (tty_printer::tty_printer): Fix pointer
5797         to `dummy'.
5799 2003-02-14  Werner LEMBERG  <wl@gnu.org>
5801         Add memory management for colors to deallocate unnamed colors
5802         properly.
5804         * src/include/color.h (color): New members `free_list' and `next'.
5805         New member functions `new' and `delete'.
5806         Add destructor.
5807         * src/libs/libgroff/color.cc: Implement it.
5809         * src/libs/libgroff/font.cc (font::add_kern): Use integer cast
5810         for array size of new operator.
5812         * src/libs/libdriver/input.cc (IntArray::operator[]): Remove
5813         redundant comparison.
5815         * src/roff/troff/input.cc (word_space_node::reread,
5816         hmotion_node::reread): Avoid warning about unused parameter.
5817         (reset_output_registers): Remove redundant parameter.
5818         (define_color): Undo change 2003-02-12.
5820         * src/roff/troff/reg.h: Updated.
5822         * src/roff/troff/node.cc (troff_output_file::really_print_line,
5823         output_file::put_filename, real_output_file::really_put_filename,
5824         ascii_output_file::really_print_line,
5825         break_char_node::get_hyphen_list): Avoid warning about unused
5826         parameter.
5827         (suppress_node::tprint): Updated.
5829         * configure.ac: Check declaration for rand() and srand().
5830         * configure: Regenerated.
5832         * src/preproc/pic/pic.h: Declare fmod(), rand(), and srand()
5833         conditionally.
5834         * src/preproc/pic/pic.y: Remove declaration of fmod(), rand(),
5835         and srand().
5837         * src/preproc/eqn/delim.cc (delim_table): Add missing initializers
5838         to avoid compiler warnings.
5840         * src/preproc/grn/hgraph.cc (HGPrintElt): Second parameter is
5841         unused.
5843         * src/devices/grops/ps.cc (ps_printer::set_char): Last parameter
5844         is unused.
5845         * src/devices/grops/psrm.cc (skip_possible_newline): Remove first
5846         (unused) parameter.
5847         Updated all callers.
5849         * src/devices/grotty/tty.cc (tty_printer::set_char): Last parameter
5850         is unused.
5851         * src/devices/grodvi/dvi.cc (dvi_printer::set_char): Ditto.
5852         * src/devices/grolj4/lj4.cc (lj4_printer::set_char): Ditto.
5854         * src/devices/grohtml/post-html.cc (html_printer::emit_line):
5855         Parameter is unused.
5856         (html_printer::add_table_end): Define parameter conditionally.
5857         * src/devices/grohtml/output.cc (simple_output::special): Parameter
5858         is unused.
5860         * src/devices/grolbp/lbp.cc: Define _GNU_SOURCE conditionally.
5861         (lbp_printer::set_char): Last parameter is unused.
5863         * src/utils/indxbib/indxbib.cc (main): Remove redundant comparison.
5865 2003-02-13  Werner LEMBERG  <wl@gnu.org>
5867         New commands \D'Fr ...', \D'Fc ...', etc. for orthogonality.
5868         Make \D'f ...' move horizontally again for backwards compatibility.
5869         Replace it with \D'Fg ...' where appropriate to avoid dependency
5870         on horizontal resolution.
5872         * src/roff/troff/input.cc (do_get_long_name): New function.
5873         (get_long_name): Call it.
5875         (read_draw_node): Handle `\D'Fx ...' by calling ...
5876         (read_color_draw_node): New function.
5878         (read_rgb, read_cmy, read_cmyk, read_gray): New optional argument
5879         `end'.
5880         Pass it to `do_get_long_name' which is used instead of
5881         `get_long_name'.
5883         * src/libs/libdriver/input.cc (color_from_Df_command): Remove
5884         unnecessary value guard.
5885         (parse_D_command) <'f'>: Add horizontal shift.
5887         * src/preproc/grn/hgraph.cc (HGPrintElt) <POLYGON>: Use \D'Fg ...'.
5888         * src/preproc/pic/troff.cc (troff_output::set_fill): Ditto.
5889         (FILL_MAX): Removed.
5891         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
5892         Updated.
5894 2003-02-12  Werner LEMBERG  <wl@gnu.org>
5896         * src/roff/troff/input.cc (do_name_test, do_expr_test,
5897         do_zero_width): Push `\n' if closing delimiter is missing.
5899         (token::next) <ESCAPE_NEWLINE>, <'\n'>, <\'\n'>: Reset `have_input'.
5900         <'F'>: Make \F non-transparent at the beginning of line.
5901         (process_input_stack) <token::TOKEN_CHAR, token::TOKEN_NEWLINE,
5902         token::TOKEN_REQUEST, token::TOKEN_BEGIN_TRAP>: Don't handle
5903         `have_input'.
5905         (define_color): Free color in case of reassignment.
5907         * doc/groff.texinfo (@Defesc, @DefescList, @DefescItem,
5908         @DefescListEnd): Use @Var, not @var.
5909         Fix all calls.
5911         * src/preproc/grn/hgraph.cc (HGPrintElt): Fix typo.
5913         * src/preproc/pic/object.cc (object_spec::~object_spec): Free
5914         `shaded' and `outlined' arrays.
5915         (object_spec::object_spec): Initialize `shaded' and `outlined'.
5916         (graphic_object::set_fill_color, graphic_object::set_outline_color):
5917         Use strsave.
5918         (closed_object::set_fill_color): Ditto.
5919         * src/preproc/pic/troff.cc (troff_output::set_color): Use strsave
5920         instead of strdup.
5921         (troff_output::reset_color): Use a_delete instead of free.
5922         * src/preproc/pic/main.cc (do_file): Free `out' in case of error.
5924 2003-02-11  Werner LEMBERG  <wl@gnu.org>
5926         * doc/groff.texinfo: Improve documentation of `ad'.
5927         Document that \D'f...' is dependent on the horizontal resolution.
5928         * man/groff_diff.man: Improve documentation of \D'f...'.
5930         * src/preproc/grn/hgraph.cc (HGPrintElt) <POLYGON>: Don't emit
5931         compensating \h'...' for \D'f ...' since the latter no longer moves
5932         current position.
5933         * src/preproc/pic/troff.cc (troff_output::set_fill): Ditto.
5935 2003-02-10  Werner LEMBERG  <wl@gnu.org>
5937         Improve error messages for `x F' (and `F') commands.
5939         * src/include/error.h: Add declaration for
5940         `current_source_filename'.
5941         * src/libs/libgroff/filename.cc: Add `current_source_filename'.
5942         * src/libs/libgroff/error.cc (do_error_with_file_and_line): Add
5943         parameter for source file string.
5944         Updated all callers.
5946         * src/libs/libdriver/input.cc: Add `current_source_filename'.
5947         (remember_source_filename): New function.
5948         (parse_x_command <'F'>, do_file <'F'>): Use it.
5950 2003-02-09  Werner LEMBERG  <wl@gnu.org>
5952         Make grotty not emit warnings about unknown colors more than
5953         necessary.
5955         * src/devices/grotty/tty.cc: Include `ptable.h'.
5956         (TTY_MAX_COLORS): Removed.
5957         (DEFAULT_COLOR_IDX): Defined to -1.
5958         (glyph): Change `back_color_idx' and `fore_color_idx' to `char'.
5959         (tty_printer): Change `curr_back_idx' and `curr_fore_idx' to `char'.
5960         Change `tty_colors' to be a ptable.
5961         First arg of `put_color' is now `char'.
5962         New functions `make_rgb_string' and `tty_color'.
5963         (tty_printer::tty_printer): Use `tty_color'.
5964         (tty_printer::color_to_idx): Return value is now `char'.
5965         Use `tty_color'.
5967         * src/include/color.h (color): Add `print_color' member function.
5968         * src/libs/libgroff/color.cc (color::print_color): Implement it.
5970 2003-02-08  Werner LEMBERG  <wl@gnu.org>
5972         Valgrind fixes.
5974         * src/devices/grops/ps.cc (ps_printer::define_encoding): Close
5975         encoding file.
5977         * src/include/ptable.h (PTABLE::~PTABLE, PTABLE::define): Always
5978         assume that value has been allocated with `new[]', thus use
5979         `a_delete' for deallocation.
5981         * src/libs/libdriver/input.cc (get_integer_arg,
5982         get_possibly_int_args, parse_x_command, do_file): Use `a_delete'
5983         where appropriate.
5985         * src/libs/libgroff/new.cc (delete) [!COOKIE_BUG]: Define.
5986         * src/libs/libgroff/nametoindex.cc
5987         (character_indexer::named_char_index): Use `new <type>[1]'.
5989         * src/preproc/eqn/lex.cc (init_table, do_definition): Use `new
5990         <type>[1]'.
5991         * src/preproc/eqn/text.cc (set_special_char_type): Ditto.
5992         (split_text): Use `a_delete'.
5994         * src/preproc/pic/pic.y (define_label, define_variable): Use `new
5995         <type>[1]'.
5997         * src/roff/troff/env.cc (environment::choose_breakpoint): Avoid
5998         harmless memory leak.
5999         (hyphen_trie::read_patterns_file): Initialize `buf'.
6000         * src/roff/troff/node.cc (troff_output_file::troff_output_file):
6001         Initialize `current_fill_color'and `current_glyph_color'.
6002         * src/roff/troff/glyphuni.cc
6003         (glyph_to_unicode_init::glyph_to_unicode_init): Use `new <type>[1]'.
6004         * src/roff/troff/uniuni.cc
6005         (unicode_decompose_init::unicode_decompose_init): Ditto.
6006         * src/roff/troff/uniglyph.cc
6007         (unicode_to_glyph_init::unicode_to_glyph_init): Ditto.
6009 2003-01-26  Werner LEMBERG  <wl@gnu.org>
6011         * src/utils/indxbib/indxbib.cc (main) [__EMX__]: Check with
6012         `access' before calling `unlink'.
6013         (do_file): Handle __EMX__.
6015         * src/include/nonposix.h: Handle __EMX__.
6017         * Makefile.in (SEP): New variable; set to @PATH_SEPARATOR@.
6018         (fontpath,tmacpath): Use it.
6019         (MDEFINES): Add it.
6020         Sorted alphabetically.
6022         * src/preproc/eqn/neqn.sh, src/roff/nroff/nroff.sh: Use
6023         @SEP@.
6024         * src/preproc/eqn/Makefile.sub, src/roff/nroff/Makefile.sub: Handle
6025         @SEP@.
6027 2003-01-27  Werner LEMBERG  <wl@gnu.org>
6029         * src/libs/libgroff/strcasecmp.c, src/libs/libgroff/strncasecmp.c:
6030         New files, copied from gnulib.
6031         * src/libs/libgroff/Makefile.sub (CSRCS): Add them.
6032         * configure.ac: Updated.
6033         * configure: Regenerated.
6035         * src/include/config.hin: Regenerated.
6036         * src/include/lib.h [!HAVE_STRCASECMP]: Declare `strcasecmp'.
6037         Don't define `strcasecmp' as `strcmp'.
6038         [!HAVE_STRNCASECMP]: Declare `strncasecmp'.
6039         Dont define `strncasecmp' as `strncmp'.
6041         * src/roff/groff/pipeline.c [!HAVE_STRCASECMP, !HAVE_STRNCASECMP]:
6042         Removed.
6044 2003-01-26  Werner LEMBERG  <wl@gnu.org>
6046         * src/utils/indxbib/indxbib.cc (main) [__EMX__]: Fix typo:
6047         s/unline/unlink/.
6049 2003-01-25  Werner LEMBERG  <wl@gnu.org>
6051         * doc/groff.texinfo (Ligatures and Kerning): Mention limitations.
6053 2003-01-24  Werner LEMBERG  <wl@gnu.org>
6055         Add US-english hyphenation exceptions (converted from Barbara
6056         Beeton's hyphenation exception log reports which appear irregularly
6057         in TUGBoat).
6059         * tmac/hyphen.us: Updated to latest version.
6060         * tmac/README: Updated.
6061         * tmac/hyphenex.us, tmac/hyphenex.sh: New files.
6062         * tmac/troffrc: Load `hyphenex.us'.
6063         * tmac/Makefile.sub (NORMALFILES): Add `hyphenex.us'.
6064         * doc/groff.texinfo: Updated.
6066 2003-01-23  Werner LEMBERG  <wl@gnu.org>
6068         Improve hyphenation slightly.  This is a first step in redesigning
6069         the hyphenation algorithm to make it more flexible (e.g. allowing
6070         kerns and ligatures between the hyphenation character and the
6071         following character -- while not used normally in English, other
6072         languages like German would benefit).
6074         * src/roff/troff/env.cc (environment::hyphenate_line): Use
6075         assertion instead of if-clause.
6076         Let `get_hyphen_list' return the number of involved characters in
6077         the hyphenation pattern instead of computing it directly (which
6078         often yields too small values).
6079         * src/roff/troff/node.h (*::get_hyphen_list): Add second parameter.
6080         * src/roff/troff/node.cc (*::get_hyphen_list): Handle new second
6081         parameter.
6083 2003-01-22  Werner LEMBERG  <wl@gnu.org>
6085         Fixing a bug which caused groff to hang if the hyphenation exception
6086         dictionary tried to grow.
6088         * src/roff/troff/env.cc (hyphen_trie::insert_hyphenation,
6089         hyphen_trie::read_patterns_file, do_hyphenation_patterns_file): Use
6090         pointer to dictionary.
6092 2003-01-20  Werner LEMBERG  <wl@gnu.org>
6094         * src/utils/afmtodit/afmtodit.pl: Add switch `-m' to suppress
6095         negative left italic correction.
6096         * src/utils/afmtodit/afmtodit.man: Document it.
6098         * font/devps/generate/Makefile (RFLAG): Add `-m'.
6099         * font/devps/{AB,AR,BMB,BMR,CB,CR,EURO,HB,HR,HNB,HNR,NB,NR,PB,PR,
6100         S,TB,TR,ZD,ZDR}: Regenerated with afmtodit options `-i 0 -m'.
6102         * NEWS: Updated.
6104 2003-01-16  Werner LEMBERG  <wl@gnu.org>
6106         * NEWS: Updated.
6108 2003-01-16  Jörgen Grahn  <jgrahn@algonet.se>
6110         * src/preproc/refer/refer.man: Mention REFER environment variable.
6112 2003-01-05  Werner LEMBERG  <wl@gnu.org>
6114         Similar to \[is], the square root glyph (\[sr]) and the square root
6115         extension glyph (\[radicalex]) are now text symbols.  The new
6116         mathematical versions are called \[sqrt] and \[sqrtex],
6117         respectively.
6119         * font/devX*/S: Regenerated.
6120         * font/devdvi/generate/texex.map: Rename `sr[0123]' to `sqrt[0123]'.
6121         * font/devdvi/generate/texsy.map: Rename `sr' to `sqrt'.
6122         * font/devdvi/EX, font/devdvi/S: Regenerated.
6123         * font/devhtml/R.proto, font/devutf8/R.proto: Add `sqrt'.
6124         * font/devlj4/generate/special.map: Add `sqrt'.
6125         * font/devlj4/S: Regenerated.
6126         * font/devps/generate/textmap: Add `sqrt'.
6127         * font/devps/S, font/devps/symbolmap: Regenerated.
6129         * src/preproc/eqn/sqrt.cc (SQRT_CHAR, RADICAL_EXTENSION_CHAR,
6130         SQRT_CHAIN, BAR_CHAIN): Use `sqrt*' and `sqrtex*'.
6131         * src/roff/troff/input.cc (init_charset_table): Make `sqrtex'
6132         overlap horizontally.
6134         * tmac/X.tmac, tmac/ps.tmac, tmac/lj4.tmac: Add `sqrtex'.
6135         * tmac/dvi.tmac: Add `sr', and `sqrtex'.
6136         Fix `radicalex'.
6138         * doc/groff.texinfo, man/groff_diff.man: Document that `radicalex'
6139         and `sqrtex' are overlapping glyphs.
6141 2003-01-04  Werner LEMBERG  <wl@gnu.org>
6143         * font/devdvi/generate/texsy.map: Add `is'.
6144         * font/devps/symbolmap: Regenerated.
6145         * font/devdvi/*TC, MI, S: Regenerated.
6147         * tmac/dvi.tmac: Remove `is'.
6149 2003-01-03  Werner LEMBERG  <wl@gnu.org>
6151         `is' is now a text symbol (only relevant for dvi).  The math variant
6152         can be accessed with `integral'.
6154         * font/devX*/S: Regenerated.
6155         * font/devdvi/generate/texex.map: Remove `is'.
6156         * font/devdvi/EX: Updated.
6157         * font/devhtml/R.proto, font/devutf8/R.proto: Add `integral'.
6158         * font/devlj4/generate/special.map: Ditto.
6159         * font/devlj4/S: Regenerated.
6160         * font/devps/generate/textmap: Add `integral'.
6161         * font/devps/S: Regenerated.
6163         * tmac/dvi.tmac: Define `is'.
6165         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Add `integral'.
6167         * src/preproc/tbl/main.cc (process_format): Fix error message.
6169 2003-01-02  Werner LEMBERG  <wl@gnu.org>
6171         * font/devhtml/R.proto, font/devutf8/R.proto: Add `ne' and `nc'.
6172         * font/devps/textmap: Fix entries for `ne' and `nc'.
6173         * font/devps/symbolmap: Regenerated.
6175         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list),
6176         src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Add `18',
6177         `38', `58', `78', `-+', `|=', `nc', `ne'.
6179         * tmac/dvi.tmac: Add `nm', `ne', `nc'.
6180         Use `schar' for `aq'.
6181         * tmac/ps.tmac, tmac/X.tmac: Add `nc' and `ne'.
6182         * tmac/ec.tmac: Add `SC' to special fonts for `CW' and `CWI'.
6183         * tmac/tty.tmac: Add `ne'.
6185         * src/roff/troff/node.cc (make_glyph_node): Test with `get_macro'
6186         for fallback glyphs.
6188 2002-12-29  Werner LEMBERG  <wl@gnu.org>
6190         Add glyph `|='.
6192         * font/devX*/*: Regenerated.
6193         * font/devdvi/generate/ec.map: Remove `eq'.
6194         * font/devdvi/generate/texsy.map: Make `~=' the same as `~~'.
6195         Assign `|=' to position 39.
6196         * font/devdvi/*EC, S: Regenerated.
6197         * font/devhtml/R.proto, font/devutf8/R.proto: Add `|='.
6198         * font/devlj4/generate/special.map: Make `~=' the same as `~~'.
6199         Assign `|=' to position 549.
6200         * font/devps/generate/textmap, font/devps/enerate/symbolmap: Remove
6201         `equalmath'.
6202         Add `uni2243' for `|='.
6204         * tmac/ec.tmac: Add `eq'.
6205         * tmac/dvi.tmac: Add `=~'.
6206         * tmac/tty-char.tmac, tmac/ps.tmac, tmac/X.tmac, tmac/lbp.tmac: Add
6207         `|='.
6209 2002-12-21  Werner LEMBERG  <wl@gnu.org>
6211         * font/devdvi/generate/tc.map: Remove `**'.
6212         * font/devdvi/*TC: Regenerated.
6213         * font/devhtml/R.proto, font/devutf8/R.proto: Add `18', `38', `58',
6214         `78', `<<', `>>'.
6215         * font/devutf8/NOTES: Updated.
6217         * src/roff/troff/charinfo.h (charinfo): Add `setx_macro' function.
6218         Don't give default parameter to `set_macro'.
6219         * src/roff/troff/input.cc (do_define_character): Use `setx_macro'
6220         instead of `set_macro'.
6221         (charinfo::setx_macro): Implement it.
6222         (charinfo::set_macro): Don't change `mode'.
6224         * tmac/tty.tmac: Add `18', `38', `58', `78', `<<', `>>'.
6225         * tmac/ps.tmac, tmac/X.tmac: Add `<<', `>>'.
6226         * tmac/dvi.tmac: Define `!=' with `.schar'.
6228 2002-12-20  Werner LEMBERG  <wl@gnu.org>
6230         * font/devX*/S: Regenerated.
6231         * font/devdvi/generate/ec.map: Remove `pl'.
6232         * font/devdvi/generate/tc.map: Remove `mi', `14', `12', `34'.
6233         * font/devdvi/*{TC,EC}: Regenerated.
6234         * font/devhtml/R.proto: Add `-+'.
6235         Remove double entries for `rk', `lk', `lt', `rt', `rb', `lb'.
6236         * font/devlbp/*: Remove `or'.
6237         * font/devlj4/generate/special.map: Remove `or'.
6238         * font/devlj4/S: Regenerated.
6239         * font/devps/generate/textmap: Add `fiveeighths', `oneeighth',
6240         `seveneighths', `threeeighths'.
6241         Remove `plusmath'.
6242         Replace `minusplus' with `uni2213'.
6243         * font/devps/symbolmap: Regenerated.
6244         * font/devutf8/R.proto: Replace `shc' with unnamed glyph.
6245         Add `-+'.
6247         * src/roff/troff/charinfo.h (charinfo): Add `is_normal' inline
6248         function.
6249         * src/roff/troff/node.cc (troff_output_file::put_char_width):
6250         Call glyph_color and fill_color even if tcommand_flag isn't set.
6251         (make_node, node::add_char): Check not ci->is_fallback but
6252         ci->is_normal.
6254         * tmac/lj4.tmac, tmac/lbp.tmac: Define `or'.
6255         * tmac/ec.tmac: Add .rchar entry for `f/'.
6256         Don't remove `12', `14', `34'.
6257         Define `pl' to be always roman.
6258         * tmac/ps.tmac (ps-frac, ps-frac-mono): New macros.
6259         Define `18', `38', `58', `78'.
6260         * tmac/tty.tmac: Add `-+'.
6261         * tmac/dvi.tmac: Define `f/'.
6262         (dvi-frac): Use `f/'.
6263         * tmac/X.tmac (X-frac, X-frac-mono): New macros.
6264         Define `18', `38', `58', `78'.
6266 2002-12-15  Colin Watson  <cjwatson@debian.org>
6268         * contrib/pic2graph/pic2graph.sh: Add missing `;;'.
6270 2002-12-10  Werner LEMBERG  <wl@gnu.org>
6272         Add glyph `tno', a textual variant of `no'.
6274         * font/devX*/*: Regenerated.
6275         * font/{devcp1047,devlatin1,devutf8,devhtml}/R.proto: Add `tno'.
6276         * font/devdvi/generate/{tc.map: Replace `no' with `tno'.
6277         * font/devdvi/generated/{texsy,textex}.map: Add `tno'.
6278         * font/devdvi/*: Regenerated.
6279         * font/devlbp/*: Add `tno'.
6280         * font/devlj4/generate/tex.map: Replace `no' with `tno'.
6281         * font/devlj4/*: Regenerated.
6282         * font/devps/generate/textmap: Replace `no' with `tno'.
6283         * font/devps/generate/symbolchars: Add `no'.
6284         * font/devps/*: Regenerated.
6286         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Add `tno'.
6288         * tmac/cp1047.tmac, tmac/latin1.tmac: Replace `no' with `tno'.
6289         * tmac/tty-char.tmac: Add entry for `tno' and `3d'.
6291         * NEWS: Updated.
6293         * tmac/dvi.tmac: Replace most `\\' with `\E'.
6294         Add definition for `sd'.
6295         * tmac/X.tmac, tmac/ps.tmac: Replace most `\\' with `\E'.
6297         * tmac/eqnrc <dvi>: Use `integral' instead of `is' glyph.
6299 2002-12-08  Werner LEMBERG  <wl@gnu.org>
6301         * tmac/an-old.tmac (TH): Use integer value for `IN' if in nroff
6302         mode to avoid rounding errors.
6303         (an-do-tag, an-do-tag-html, RS, RE): Remove redundant `.br'.
6305         * src/roff/groff/groff.man, src/roff/nroff/nroff.man,
6306         src/roff/troff/troff.man: Improve documentation of -T.
6308 2002-12-07  Jeff Conrad  <jeff_conrad@msn.com>
6310         * src/roff/groff/pipeline.c: Don't define `const' for _WIN32.
6311         (run_pipeline) [_WIN32]: Provide working function without `fork'.
6313 2002-12-06  Werner LEMBERG  <wl@gnu.org>
6315         * font/devps/generate/freeeuro.sfd: Make dimensions of Euro.symbol
6316         glyphs compatible to Adobe's Euro fonts (scaling them down a bit).
6317         Scaling Euro.sansserif glyphs down to have the same height as
6318         digits.
6319         Removed unnecessary points; added some extrema.
6321         * font/devps/EURO, font/devps/freeeuro.afm, font/devps/freeeuro.pfa:
6322         Regenerated.
6324 2002-12-04  Werner LEMBERG  <wl@gnu.org>
6326         * font/devps/generate/freeeuro.sfd: Add glyphs `Euro.symbol.slanted'
6327         and `Euro.symbol.bold.slanted'.
6328         Improve some glyph offsets and widths.
6329         * font/devps/EURO, font/devps/freeeuro.afm, font/devps/freeeuro.pfa:
6330         Regenerated.
6331         * font/devps/generate/Makefile (freeeuro.afm freeeuro.pfa): Fix
6332         typo.
6333         * font/devps/generate/sfdtopfa.pe: Generate PFA in current
6334         direcory.
6336         * tmac/europs.tmac: Updated to new glyph indices.
6337         Use Euro.symbol for font familiy `A'.
6339         * doc/groff.texinfo: Minor improvements.
6341 2002-12-02  Werner LEMBERG  <wl@gnu.org>
6343         * font/devdvi/generate.tc.map: s/%O/%0/.
6344         * font/devdvi/*TC: Regenerated.
6346         * src/roff/troff/div.cc (init_div_requests): Sorted.
6348         * tmac/dvi.tmac: Remove `Ye'.
6349         * tmac/ec.tmac: Remove `Ye'.
6350         Add .rchar entry for `de'.
6352         * man/groff.man, man/groff_diff.man: Document register `.pe'.
6353         * doc/groff.texinfo: Document registers `.pe', `.n', and `.w'.
6354         * NEWS: Updated.
6356 2002-11-30  Werner LEMBERG  <wl@gnu.org>
6358         Add PS font for various Euro glyphs.
6360         * font/devps/generate/freeeuro.sfd: New master font file for
6361         pfaedit.
6362         * font/devps/generate/sfdtopfa.pe: New conversion script for
6363         pfaedit.
6364         * font/devps/generate/Makefile (FONTS): Add `EURO'.
6365         (EURO, freeeuro.afm, freeeuro.pfa): New rules.
6366         * font/devps/freeeuro.pfa, font/devps/freeeuro.afm: Generated from
6367         `freeeuro.sfd'.
6368         * font/devps/EURO: Generated from `freeeuro.afm'.
6369         * font/devps/download: Add `freeuro.pfa'.
6370         * font/devps/Makefile.sub (NORMALFILES): Adde `EURO' and
6371         `freeeuro.pfa'.
6373         * tmac/europs.tmac: New file.
6374         * tmac/ps.tmac: Include `europs.tmac'.
6375         * tmac/Makefile.sub (DISTFILES): Add `europs.tmac'.
6377 2002-11-29  Werner LEMBERG  <wl@gnu.org>
6379         * font/devdvi/generate/texsy.map: Remove `lh' and `rh'.
6380         * font/devdvi/S: Regenerated.
6381         * font/devhtml/R.proto: Fix `CR' and `ci'.
6382         Add `OK'.
6383         * font/devps/generate/textmap: Fix `lh', `rh', and `sq'.
6384         Remove `bs'.
6385         * font/devps/symbolmap: Regenerated.
6386         * font/devutf8/R.proto: Fix `CR' and `ci'.
6387         Add `OK'.
6388         * font/devutf8/NOTES: Updated.
6390         * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Fix `CR' and
6391         `ci'.
6392         Add `OK'.
6393         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Ditto.
6395         * tmac/dvi.tmac: Add `lh' and `rh'.
6396         * tmac/Xps.tmac: Fix `lh' and `rh'.
6397         * tmac/X.tmac: Add `OK'.
6398         * tmac/lj4.tmac: Ditto.
6400 2002-11-24  Werner LEMBERG  <wl@gnu.org>
6402         * font/devX*/S: Regenerated.
6403         * font/devascii/R.proto, font/devcp1047/R.proto: Remove glyphs `lb',
6404         `lc', `lf', `lk', `lt', `rb', `rc', `rf', `rk', and `rt'.
6405         * font/devdvi/generate/texsy.map: Remove `or' glyph.
6406         * font/devdvi/S: Regenerated.
6407         * font/devhtml/R.proto, font/devutf8/R.proto: Add/fix glyphs
6408         `parenlefttp', `parenleftex', `parenleftbt', `parenrighttp',
6409         `parenrightex', `parenrightbt', `bracketlefttp', `bracketleftex',
6410         `bracketleftbt', `bracketrighttp', `bracketrightex',
6411         `bracketrightbt', `bracelefttp', `braceleftmid', `braceleftbt',
6412         `braceex', `braceleftex', `bracerightex', `bracerighttp',
6413         `bracerightmid', `bracerightbt', `lt', `lk', `lb', `rt', `rk',
6414         `rb', and `bv'.
6415         * src/roff/troff/glyphuni.cc, src/roff/troff/uniglyph.cc: Ditto.
6416         * font/devutf8/NOTES: Updated.
6417         * font/devlj4/generate/special.map: Add glyph `braceex'.
6418         * font/devlj4/S: Regenerated.
6420         * tmac/tty-char.tmac: Add glyphs `lf', `rf', `lc', and `rc'.
6422 2002-11-14  Werner LEMBERG  <wl@gnu.org>
6424         * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Add `va'
6425         and `vA'.
6426         Fix code for `an'.
6427         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Ditto.
6429         * doc/texinfo.tex: New version from texinfo 4.3.
6430         * doc/groff.texinfo: Updated for texinfo 4.3.
6431         Use @tie{} where appropriate.
6432         * font/devdvi/generate/ec.map: Don't include `or' and `bv'.
6433         * font/devdvi/generate/tc.map: Remove `rn'.
6434         * font/devdvi/*TC, font/devdvi/*EC: Regenerated.
6435         * font/devhtml/R.proto, font/devutf8/R.proto: Add `vA'.
6436         Fix code for `an'.
6437         * font/devX100/*, font/devX100-12/*, font/devX75/*,
6438         font/devX75-12/*: Regenerated.
6440         * tmac/dvi.tmac: Add special fonts `SA' and `SB'.
6441         Use .char (again) for `br', `ul', `rn', `or', and `ru'.
6442         Improve definition of `an'.
6443         * tmac/ps.tmac: Use .char (again) for `br', `ul', `rn', `or', and
6444         `ru'.
6445         * tmac/lj4.tmac: Use .char (again) for `br', `ul', `rn', and `ru'.
6446         * tmac/X.tmac: Add definition for `or'.
6447         * tmac/Xps.tmac: Undo change 2002-11-05.
6448         * tmac/lbp.tmac: Add definitions for `br', `rn', `ul', and `ru'.
6450 2002-11-11  Werner LEMBERG  <wl@gnu.org>
6452         * src/roff/troff/node.cc (troff_output_file::put_char): Always
6453         call flush_tbuf.
6455 2002-11-10  Werner LEMBERG  <wl@gnu.org>
6457         Added three new requests `schar', `fschar', and `rfschar'.  `schar'
6458         defines a glyph which is searched after the check for fonts declared
6459         with `.special' (and before the check for all mounted special
6460         fonts).  `fschar' defines a glyph for a particular font which is
6461         searched after the check for fonts declared with `.fspecial' (and
6462         before the check for fonts declared with `.special').  `rfschar'
6463         removes glyphs defined with `fschar'.
6465         * src/roff/troff/token.h (char_mode): New enum.
6466         Declare do_define_character.
6467         * src/roff/troff/charinfo.h (charinfo): Replace `fallback' with
6468         `mode'.
6469         (charinfo::is_fallback): Updated.
6470         (charinfo::is_special): New method.
6471         * src/roff/troff/input.cc (do_define_character): Add and use
6472         optional second parameter used as a prefix for font-specific glyph
6473         names.
6474         (define_character, define_fallback_character): Updated.
6475         (define_special_character): New function.
6476         (init_input_requests): Add `schar'.
6477         (charinfo::charinfo, charinfo::set_macro): Updated.
6478         * src/roff/troff/node.cc: Include `stringclass.h'.
6479         (make_glyph_node): Handle special glyphs defined with `.schar' and
6480         `.fschar'.
6481         (define_font_special_character, remove_font_special_character): New
6482         functions.
6483         (init_node_requests): Sorted.
6484         Add `fschar' and `rfschar'.
6485         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
6486         Document new requests.
6488         * font/devhtml/R.proto, font/devutf8/R.proto: Add `va'.
6489         * tmac/dvi.tmac: Add `va' for CW and CWI (using `.fschar').
6491 2002-11-08  Werner LEMBERG  <wl@gnu.org>
6493         Added new font `SC' (cmtex10) to devdvi.
6495         * devdvi/generate/Makefile (FONTS): Add `SC'.
6496         (SC): New rule.
6497         * devdvi/generate/textex.map: New map file for cmtex.
6498         * devdvi/SC: New.
6499         * devdvi/Makefile.sub (DEVFILES): Updated.
6500         * tmac/dvi.tmac: Add fspecial entries for SC.
6501         Add `MI', `S' and `CW' to the `special' call.  Otherwise, `SC' is
6502         found before `S' since the font position of `SC' is lower due to the
6503         gaps in DESC's `font' line.
6504         * tmac/ec.tmac: Add a `special' call.
6505         * NEWS: Updated.
6507         * font/devhtml/R.proto: Remove double entry for `ti'.
6508         * tmac/tty.tmac: Add entries for `IJ', `ij', and `bq'.
6509         * tmac/tty-char.tmac: Remove entry for `bq'.
6510         * tmac/lbp.tmac: Add entries for `lq', `rq', `fo', `fc', and `em'.
6511         * tmac/ec.tmac: Don't remove `aq' glyph.
6512         * tmac/X.tmac: Fix entry for `em'.
6513         Add entries for `fo' and `fc'.
6514         * tmac/dvi.tmac: Add entries for `em', `en', `hy', `fo', and `fc'.
6516         * doc/groff.texinfo, man/groff.man, man/groff_diff.man: Fix
6517         documentation of `special' and `fspecial' requests.
6519 2002-11-05  Werner LEMBERG  <wl@gnu.org>
6521         * font/devascii/R.proto, font/devcp1047/R.proto,
6522         font/devlatin1/R.proto: Remove entry for `.i'.
6523         * font/devdvi/generate/textt.map: Add entry for `ad'.
6524         * font/devdvi/generate/texr.map, font/devdvi/generate/texb.map,
6525         font/devdvi/generate/texi.map: Add dummy glyph name `slash@for@l'.
6526         We need this for getting kerning values to compose `/l' and `/L'.
6527         * font/devdvi: Regenerated font definition files for CM fonts.
6528         * font/devhtml/R.proto: Add entries for "'C", "'c", `IJ', and `ij'.
6529         * font/devutf8/R.proto: Ditto.
6530         Remove double entry for `ti'.
6532         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Fix entries
6533         for (groff) ligatures, `la', and `ra'.
6534         Add "'C", "'c", `IJ', and `ij'.
6535         Remove double entry for `ti'.
6536         * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Remove all
6537         double entries.
6538         Add "'C", "'c", `IJ', and `ij'.
6539         Fix entries for (groff) ligatures, `la', and `ra'.
6541         * tmac/ps.tmac (ps-achar): New macro.
6542         Define "'c" and "'C".
6543         * tmac/tty.tmac: Add entry for `.i'.
6544         * tmac/X.tmac (X-achar): New macro.
6545         Define "'c", "'C", and `:Y'.
6546         Add entries for `IJ' and `ij'.
6547         * tmac/Xps.tmac (Xps-achar): New macro.
6548         Define "'c" and "'C".
6549         Add entries for `IJ' and `ij'.
6550         * tmac/lbp.tmac (lbp-achar): New macro.
6551         Add fallback characters for all groff ligatures and many other
6552         glyphs.
6553         * tmac/dvi.tmac: Fix definitions of `_' and `ul'.
6554         Add entries for `/l' and `/L'.
6555         Define "'c" and "'C".
6556         Add entries for `IJ' and `ij'.
6558 2002-11-02  Larry Kollar  <kollar@alltel.net>
6560         * PROBLEMS: Document how to solve Mac OS X compilation problems.
6562 2002-11-02  Werner LEMBERG  <wl@gnu.org>
6564         Adding support for composite glyphs: \[xxx yyy ...] and the
6565         `composite' request.
6567         * src/roff/troff/glyphuni.cc: New file for mapping groff glyph names
6568         to Unicode-based glyph names.
6569         * src/roff/troff/uniglyph.cc: New file for mapping Unicode-based
6570         glyph names to groff glyph names.
6571         * src/roff/troff/uniuni.cc: New file for canonically decomposing
6572         Unicode-based glyph names.
6573         * src/roff/troff/unicode.cc, src/roff/troff/unicode.h: New files
6574         for handling Unicode glyph names.
6575         * src/roff/troff/input.cc: Include unicode.h.
6576         (composite_glyph_name): New function.
6577         (token::next) <'['>: Handle Unicode glyph names and composite
6578         glyphs.
6579         (composite_dictionary): New dictionary for the `composite' request.
6580         (composite_request): Implement `composite' request.
6581         (init_input_requests): Add `composite'.
6582         Alphabetically sorted.
6583         * src/roff/troff/env.cc (tabs_save, tabs_restore): Removed (already
6584         commented out).
6585         (init_env_requests): Alphabetically sorted.
6586         Removed `tas' and `tar' (already commented out).
6587         * src/roff/troff/Makefile.sub: Updated.
6589 2002-10-31  Ruslan Ermilov  <ru@FreeBSD.org>
6591         * src/roff/nroff/nroff.man, src/roff/nroff/nroff.sh: Fix description
6592         of options.
6594 2002-10-29  Werner LEMBERG  <wl@gnu.org>
6596         Fix computation of .trunc register.  Additionally, its value (and
6597         the value of the .ne register) is now always set before entering the
6598         trap.
6600         * src/roff/troff/div.cc (diversion::need): Set `truncated_space' and
6601         `needed_space' before calling `space'.
6602         (top_level_diversion::space): Remove special code for 'sp before the
6603         first page.
6604         Call `begin_page' with the discarded space as a parameter.
6605         (top_level_diversion::begin_page): Add optional parameter to set
6606         `truncated_space'.
6607         * src/roff/troff/div.h: Updated.
6609         * doc/groff.texinfo: Improve documentation of .sp, \n[.trunc], and
6610         \n[.ne].
6612         * tmac/an-old.tmac (SH, SS, TP, IP, HP, TS): Undo change 2002-10-26.
6613         (LP): Remove superfluous call to `br'.
6614         * tmac/doc-common (doc-paragraph): Undo change 2002-10-26.
6615         * tmac/doc.tmac (Bd, Bl, doc-set-vertical-and-indent): Ditto.
6617 2002-10-26  Werner LEMBERG  <wl@gnu.org>
6619         * tmac/doc-ditroff: Remove useless switch/variable -rC.
6620         (doc-setup-header): Don't set page register `%'.
6621         * tmac/doc-nroff: Remove variable `C'.
6622         (doc-setup-page-layout): Set doc-header-space to .5i unconditionally.
6623         (doc-setup-header): Don't set page register `%'.
6624         Don't call `bp'.
6625         * tmac/doc-common (doc-header): Call `ns'.
6626         (doc-paragraph): Protect .sp with .br so that it survives traps
6627         possibly set by the user.
6628         * tmac/doc.tmac (Bd, Bl, doc-set-vertical-and-indent): Ditto.
6630         * tmac/doc*: Replace ' with . for consistency if no effect.
6632 2002-10-26  Werner LEMBERG  <wl@gnu.org>
6634         * tmac/an-old.tmac (SH, SS, TP, IP, HP, TS): Protect .sp with .br
6635         so that it survives traps possibly set by the user.
6637         * src/roff/troff/node.cc: Fix the changes from 2002-10-23.
6638         (troff_output_file::set_font): Call flush_tbuf if necessary.
6639         (troff_output_file::fill_color, troff_output_file::glyph_color): Call
6640         flush_tbuf and do_motion only if necessary.
6641         (troff_output_file::start_special,
6642         troff_output_file::put_char_width, troff_output_file::put_char,
6643         troff_output_file::draw): Updated.
6644         (word_space_node::tprint, space_node::tprint, hmotion_node::tprint,
6645         vmotion_node::tprint): Undo change 2002-10-23.
6647 2002-10-25  Werner LEMBERG  <wl@gnu.org>
6649         * tmac/www.tmac (DC): Fix case of overlapping images.
6651 2002-10-23  Werner LEMBERG  <wl@gnu.org>
6653         * src/roff/troff/node.cc (troff_output_file::fill_color,
6654         troff_output_file::glyph_color): Set current color before testing
6655         color_flag.
6656         (troff_output_file::put_char_width, troff_output_file::put_char,
6657         troff_output_file::draw): Don't call flush_tbuf and/or do_motion
6658         before glyph_color.
6659         (troff_output_file::file_color, troff_output_file::glyph_color):
6660         Call do_motion.
6661         (word_space_node::tprint, space_node::tprint, hmotion_node::tprint,
6662         vmotion_node::tprint): Move first, then call fill_color.
6664 2002-10-20  Werner LEMBERG  <wl@gnu.org>
6666         * doc/groff.texinfo, man/groff_tmac.man: Document that it is not
6667         possible to use multiple main macro packages.
6669 2002-10-19  Werner LEMBERG  <wl@gnu.org>
6671         * src/devices/grops/ps.cc (cmyk_flag): New global variable.
6672         (ps_printer::set_color): Set `cmyk_flag' for CMY and CMYK colors.
6673         (ps_printer::~ps_printer): Emit `%%Extensions: CMYK' if `cmyk_flag'
6674         is set.
6675         * font/devps/prologue.ps (Fk, Ck): Enclose definitions with a
6676         `where' construction since `cmyksetcolor' is a PS Level 2 operator.
6678 2002-10-16  Werner LEMBERG  <wl@gnu.org>
6680         * NEWS, doc/webpage.ms: Updated.
6682 2002-10-14  Werner LEMBERG  <wl@gnu.org>
6684         * src/roff/troff/node.cc (troff_output_file::put_char_width,
6685         troff_output_file::put_char, troff_output_file::fill_color,
6686         troff_output_file::glyph_color): Handle case where color pointer
6687         is null.
6689 2002-10-13  Ruslan Ermilov  <ru@FreeBSD.org>
6691         Add the new -r option to grotty.  It is similar to the -i option
6692         except it tells grotty(1) to use the `reverse video' attribute to
6693         render italic fonts.
6695         * src/devices/grotty/tty.cc (reverse_flag): New global variable.
6696         (SGR_REVERSE, SGR_NO_REVERSE): New macros.
6697         (tty_printer::make_underline, tty_printer::put_color,
6698         tty_printer::end_page): Use it.
6699         (main): Add -r switch.
6700         (usage): Updated.
6701         * src/devices/grotty/grotty.man: Document it.
6703 2002-10-11  Ruslan Ermilov  <ru@FreeBSD.org>
6705         * src/roff/troff/env.cc (hyphen_trie::read_patterns_file): Add
6706         cast to `unsigned char' to properly read patterns with 8bit
6707         characters.
6709 2002-10-08  Werner LEMBERG  <wl@gnu.org>
6711         * REVISION: Increased to 2.
6713 Local Variables:
6714 version-control: never
6715 coding: latin-1
6716 End: