* doc/pic.ms: Mention that compass points of line objects are
[s-roff.git] / ChangeLog
blob6225baf920827b5ab31e917ba07956bcc9b53bcd
1 2008-01-11  Werner LEMBERG  <wl@gnu.org>
3         * doc/pic.ms: Mention that compass points of line objects are
4         arbitrarily located.
6 2008-01-06  Werner LEMBERG  <wl@gnu.org>
8         * src/roff/troff/node.cpp (left_italic_corrected_node::add_self):
9         Don't remove itself if there is no glyph associated with the node
10         yet.  This happens, for example, in this situation:
12           .ll 15000u
13           .ft I
14           x x
15           (\,f
17 2008-01-05  Werner LEMBERG  <wl@gnu.org>
19         * man/groff_char.man, man/groff.man: Revised.
21         * src/preproc/eqn/lex.cpp (troff_defs): Fix typo.
23 2008-01-04  Werner LEMBERG  <wl@gnu.org>
24         * */*: s/Osanna/Ossanna/.
26         * */*.man: Replace .URL with .UR/.UE (except in groff_www.tmac).
27         Replace .MTO with .MT/.ME (except in groff_www.tmac).
28         Insert `\:' in URLs where appropriate.
29         Don't include www.tmac (except in groff_www.tmac).
31         * man/groff.man (.ESC[]): Fix font of closing bracket.
32         (.ESCq): Fix font of closing quote character.
33         Many other improvements.
35 2007-12-30  Bernhard Fisseni  <bfi@ikp.uni-bonn.de
37         * src/devices/grohtml/post-html.cc
38         (html_printer::writeHeadMetaStyle): Fix CSS output.
40 2007-12-29  Werner LEMBERG  <wl@gnu.org>
42         * tmac/ec.tmac: Add CM fonts to the .fspecial lines; those fonts
43         contain additional glyphs (like some uppercase Greek letters).
45 2007-12-06  Werner LEMBERG  <wl@gnu.org>
47         * NEWS: Updated.
49 2007-12-06  Colin Watson  <cjwatson@debian.org>
51         * src/roff/nroff/nroff.sh: Add options -w and -W.
52         * src/roff/nroff/nroff.man: Document them.
54 2007-12-06  Karl Berry  <karl@freefriends.org>
56         * tmac/hyphenex.pl: Update header output.
58 2007-11-29  Werner LEMBERG  <wl@gnu.org>
60         * src/devices/grotty/tty.cpp (tty_printer::line): Fix line lengths.
62 2007-11-20  Werner LEMBERG  <wl@gnu.org>
64         * doc/pic.ms: Add Heinz-Jürgen's 3d boxes example.
66 2007-11-17  Werner LEMBERG  <wl@gnu.org>
68         * src/roff/nroff/nroff.sh: Handle GROFF_TYPESETTER environment
69         variable.  Problem reported by Michael G Schwern
70         <schwern@pobox.com>.
72         * src/roff/nroff/nroff.man: Document it.
73         Other minor updates.
75 2007-11-17  Heinz-Jürgen Oertel <hj.oertel@t-online.de>
77         * src/groff/preproc/pic/lex.cpp (table): Add box attributes
78         `xslanted' and `yslanted'.
80         * src/groff/preproc/pic/object.cpp (object_spec::object_spec):
81         Initialize `xslanted' and `yslanted'.
82         (graphic_object): Add methods `set_xlanted' and `set_yslanted'.
83         (closed_object): Ditto.
84         Add members `xslanted' and `yslanted'.
85         (box_object::print): Use them.
86         (object_spec::make_object): Handle slant values.
87         * src/groff/preproc/pic/object.h (IS_XSLANTED, IS_YSLANTED): New
88         constants.
89         (object_spec): Add members `xslanted' and `yslanted'.
90         * src/groff/preproc/pic/pic.y (XSLANTED, YSLANTED): New left-valued
91         tokens.
92         Add rules for them.
93         
94         * src/groff/preproc/pic/pic.man, NEWS, doc/pic.ms: Document above
95         changes.
97 2007-11-16  Werner LEMBERG  <wl@gnu.org>
99         * tmac/hyphenex.pl: Generate copyright notice (this has been
100         approved by Barbara Beeton).
101         * tmac/hyphenex.us: Updated.
103 2007-11-10  Michail Vidiassov  <master@iaas.msu.ru>
105         * tmac/doc-syms (doc-str-St--susv3): New string.
106         * tmac/groff_mdoc.man: Document it.
108 2007-11-08  Werner LEMBERG  <wl@gnu.org>
110         * src/preproc/preconv/preconv.cpp (emacs_to_mime): Add `utf-16be'
111         `utf-16le', `utf-16be-with-signature', `utf-16le-with-signature'.
112         (is_comment_line): Handle '\" and '\# also.
114         * src/preproc/preconv/preconv.man: Revise and make complete.
116 2007-10-25  Werner LEMBERG  <wl@gnu.org>
118         * tmac/cs.tmac: New file holding Czech strings, contributed by
119         Marcela Maslanova <mmaslano@redhat.com>.
120         * tmac/hyphen.cs, tmac/hyphenex.cs: New hyphenation pattern files
121         for Czech, taken from CTAN.
122         * LICENSES: Updated.
123         * tmac/Makefile (NORMALFILES): Add Czech stuff.
124         * doc/groff_tmac.man: Mention cs.tmac.
126 2007-10-21  Werner LEMBERG  <wl@gnu.org>
128         * src/roff/troff/input.cpp (do_ps_file): Handle `%X' in header
129         comments correctly.  Reported by Frank Jahnke
130         <jahnke@sonatabio.com>.
132 2007-10-02  Ruslan Ermilov  <ru@FreeBSD.org>
134         * tmac/doc-common, tmac/groff_doc.man: Add FreeBSD 6.2, document
135         FreeBSD 5.5 and 7.0.
137         * tmac/doc-syms: Give better names for System V releases.
139 2007-09-25  Gaius Mulley  <gaius@glam.ac.uk>
141         * doc/Makefile.in, doc/Makefile.sub (.ms.html): Add -P-V switch to
142         the production of html files.
143         (pic.html): Ditto.
144         Remove background colour switch.
145         (.SUFFIXES, clean): Handle *.xhtml files.
147         * src/devices/grohtml/grohtml.man: Document that -V option now
148         generates an HTML-4.01 validator or XHTML validator.
150         * src/devices/grohtml/html-text.cpp (html_text::end_tag,
151         html_text::start_tag): Suppress <small>, <big>, and <color> tags if
152         we are inside a <pre> block.
154         * src/devices/grohtml/post-html.cpp
155         (html_printer::handle_valid_flag): Add a parameter to indicate
156         whether it needs to generate a paragraph block.
157         (html_printer::write_navigation): Updated.
158         (html_printer::do_file_components): Generate an HTML-4.01 blue
159         validator button also.
161 2007-09-23  Axel Kielhorn  <A.Kielhorn@web.de>
163         * man/groff.man: Fix URL of CSTR 54.
165 2007-09-23  Werner LEMBERG  <wl@gnu.org>
167         * man/groff_char.man: Normalize character set names as defined
168         by IANA.  Based on a patch from Axel Kielhorn.
170         * src/preproc/refer/label.y: Undo change from 2007-09-19.
172 2007-09-19  Werner LEMBERG  <wl@gnu.org>
174         * src/roff/troff/input.cpp (interpolate_arg): Remove compiler
175         warning.
177         * src/preproc/eqn/pile.cpp (pile_box::output, matrix_box::output):
178         Remove compiler warning.
180         * src/preproc/refer/label.y: Remove compiler warning.
182         * src/preproc/pic/pic.y: Remove doubled token entries.
184 2007-09-19  Gaius Mulley  <gaius@glam.ac.uk>
186         * doc/groff.texinfo: Document new .O register and add cross
187         reference entries.
189         * NEWS: Updated.
191         * src/devices/grohtml/grohtml.man: Document new -V and -y options.
193         * src/devices/grohtml/html-table.cpp: Add support for XHTML 1.1.
194         (html_table:: emit_colspan, html_table::emit_td): New methods.
195         (html_table::emit_col):  Use html_table::emit_td.
196         (html_table::emit_table_header): Use html_table::emit_colspan if
197         dialect xhtml is specified.
198         (html_table::finish_row): Updated.
200         * src/devices/grohtml/html-table.h (html_table): Declare
201         emit_colspan, emit_td.
203         * src/devices/grohtml/html-text.cpp: Modified tags to comply with
204         xhtml if this dialect was requested.
206         * src/devices/grohtml/html-text.h (html_dialect): New enumeration.
207         (html_text): Add new variable `dialect'.
209         * src/devices/grohtml/post-html.cpp: Modify header tags to be XHTML
210         compliant.
211         (valid_flag, groff_sig, dialect): New global variables. 
212         (html_printer::handle_valid_flag, html_printer::do_math,
213         html_printer::write_html_anchor, html_printer::write_xhtml_anchor,
214         html_printer::do_math, html_printer::handle_valid_flag): New
215         methods.
216         (html_printer::emit_line, html_printer::emit_raw,
217         html_printer::do_check_center, html_printer::write_title,
218         write_rule, html_printer::writeHeadMetaStyle, generate_img_src,
219         html_printer::begin_page): Altered to be XHTML compliant.
220         (html_printer::write_header): Updated.
221         (html_printer::troff_tag): Call do_math.
222         (html_printer::insert_split_file, html_printer::do_file_components,
223         html_printer::write_navigation): Create XHTML file components if
224         necessary and also produces a groff signature if requested.
225         (~html_printer): Call writeHeadMetaStyle at appropriate places
226         depending upon html_dialect.
227         (html_printer::special): Handle new tags `html<?p>' and `math<?p>'.
228         (main): Added options -x, -V, and -y.
229         (usage): Updated.
231         * src/preproc/eqn/box.cpp: Create a distinction between
232         the MathML device and the XHTML device.
233         (do_text): Issue a newline at the end of the equation if XHTML was
234         specified.
235         (box::top_level): Prefix the output of an equation by the .MATHML
236         macro.
237         (output_string): Suppress \n if XHTML was specified.
239         * src/preproc/eqn/main.cpp (xhtml): New global flag.
240         (inline_equation): Skip leading spaces after inline equation for
241         XHTML device.
242         (main): Set `xhtml' flag if `-Tmathml:xhtml' is specified.
244         * src/preproc/eqn/eqn.h (xhtml): New external flag.
246         * src/preproc/eqn/text.cpp (entity_table): Fix typo.
248         * src/preproc/html/pre-html.cpp (html_dialect): New enumeration.
249         (dialect, eqn_flag): New global variables.
250         (html_system): Improve debugging support.
251         (alterDeviceTo): Test for -Txhtml when altering device to the image
252         device and reset to -Txhtml.
253         (addZ): Renamed to...
254         (addArg): This.
255         Introducea a general parameter.
256         (print_args): New debugging function.
257         (char_buffer::run_output_filter): Use print_args and addArg rather
258         than addZ.
259         (char_buffer::do_html, char_buffer::do_image): Add -rxhtml=1 command
260         line parameter as an argument to the html generation of text when
261         xhtml is needed.  Include -e on the command line if mathml is
262         required.
263         (scanArguments): Allow -e, -V, -y and -x options.
264         -V, -y are handled by the back end.  -e sets `eqn_flag'.
265         -x determines HTML dialect.
267         * src/roff/groff/groff.cpp (possible_command): New method
268         `clear_name'.
269         (main):  Set eflag if -e is present on command line.
270         Set is_xhtml if -Txhtml is present.
271         Pass `-x x' to the HTML pre and post processors.
272         Pass `-e' to the HTML pre processor if required.
273         Pass `-Tmathml:xhtml' to eqn if XHTML is requested.
275         * src/roff/troff/input.cpp (init_input_requests): Introduce new
276         number register `\n[.O]'.
278         * tmac/s.tmac: (LP): Use .nop for semantic sugar.
279         (cov*ab-init) reformat.
280         (@EQ): Use EQN-HTML-IMAGE and friends rather than HTML-IMAGE.
281         (CHECK-FOOTER-AND-KEEP): Define FS, FE such that they use
282         <cite></cite> for the html device rather than generate images for
283         footnotes.
285         * tmac/troffrc-end: Define EQN-HTML-IMAGE,
286         EQN-HTML-IMAGE-END, EQN-HTML-IMAGE-RIGHT,
287         EQN-HTML-IMAGE-LEFT, EQN-HTML-IMAGE-INLINE,
288         EQN-HTML-DO-IMAGE, EQN-HTML-IMAGE-END as null strings.
290         * tmac/www.tmac: (HTML<?p>): New macro.
291         (MATH<?p>): New macro.
292         (IMG, PIMG, MPIMG, HR): Use XHTML compliant syntax.
293         (www-emit-ltag): New macro.
294         (www-push-li): Updated.
295         (ULS): Ensure that tags are balanced in order by use of
296         www-emit-ltag.
297         (ULE): Likewise: Use www-emit-ltag and shut down paragraphs in
298         order.
299         (OLS, OLE, DLS, DLE): Ditto.
300         <global>: Define EQ and EN to EQN-HTML-IMAGE and EQN-HTML-IMAGE-END
301         respectively.
302         (www-li-ul, www-li-ol, www-li-dl): Updated.
303         (EQN-HTML-IMAGE, EQN-HTML-IMAGE-RIGHT, EQN-HTML-IMAGE-LEFT,
304         EQN-HTML-IMAGE-INLINE, EQN-HTML-DO-IMAGE, EQN-HTML-IMAGE-END,
305         MATHML): New macros.
307 2007-09-17  Werner LEMBERG  <wl@gnu.org>
309         * man/groff_font.man: Document `unicode' keyword.
310         * doc/groff.texinfo (DESC File Format): Synchronize with
311         groff_font.man.
313 2007-09-15  Werner LEMBERG  <wl@nu.org>
315         * man/groff.man: Document `\_'.
316         * doc/groff.texinfo: Ditto.
317         Remove references to `\@' which isn't a valid escape sequence in
318         groff.
321         * tmac/unicode.tmac: Add ` and '.
322         * tmac/html.tmac: Load unicode.tmac.
324 2007-09-14  Werner LEMBERG  <wl@gnu.org>
326         * tmac/unicode.tmac: Make `-' a pure input character by mapping it
327         to `hy'.
329         * src/roff/troff/input.cpp (init_charset_table): Handle `hy'.
331 2007-09-11  Werner LEMBERG  <wl@gnu.org>
333         * src/libs/libgroff/string.cpp (string::remove_spaces): Fix memory
334         allocation.
336         * src/preproc/tbl/table.cpp (table::allocate): Initialize
337         `blockflag' array.
339 2007-09-10  Keith Marshall  <keith.d.marshall@ntlworld.com>
341         * README.MinGW: Add warnings about use of MSYS-RXVT, and about
342         defective GnuWin32 versions of netpbm/libpng.
344 2007-07-15  Keith Marshall  <keith.d.marshall@ntlworld.com>
346         * tmac/s.tmac (cov*first-page-init): Remove invoking trap, to avoid
347         possible recursion.
349 2007-07-11  Werner LEMBERG  <wl@gnu.org>
351         * gendef.sh: Add shebang.
353 2007-07-05  Werner LEMBERG  <wl@gnu.org>
355         * tmac/papersize.tmac: Fix dimensions of executive paper format. 
356         Reported by John Rupley <rupley@u.arizona.edu>.
358 2007-07-02  Keith Marshall  <keith.d.marshall@ntlworld.com>
360         * tmac/s.tmac (cov*first-page-init): Emit error message if not in
361         top-level environment.
363 2007-06-12  Werner LEMBERG  <wl@gnu.org>
365         * src/devices/xditview/TODO, NEWS: Updated.
366         * src/devices/xditview/Makefile.sub (install_data, uninstall_sub):
367         Handle `GXditview-color'.
368         * src/devices/xditview/gxditview.man: Updated.
370         * m4/groff.m4 (GROFF_APPRESDIR_CHECK): Updated.
371         * m4/codeset.m4, m4/glibc21.m4, m4/iconv.m4, m4/lib-link.m4: Updated
372         from `gnulib' git repository.
374         * configure.ac: Updated.
375         * configure: Regenerated (using autoconf 2.61).
377         * config.guess, config.sub: Updated from `config' CVS repository.
378         * config.rpath, install-sh, mkinstalldirs: Updated from `gnulib' git
379         repository.
381 2007-06-12  Tadziu Hoffmann  <hoffmann@usm.uni-muenchen.de>
383         * src/devices/xditview/GXditview.ad: Split off color definitions
384         into...
385         * src/devices/xditview/GXditview-color.ad: This new file.
387 2007-06-08  Fabrice Ménard  <menard.fabrice@wanadoo.fr>.
389         * tmac/fr.tmac: Handle chapter system for `me'.
391 2007-06-05  Tadziu Hoffmann  <hoffmann@usm.uni-muenchen.de>
393         * src/devices/xditview/xditview.c (main): Add support for
394         accelerators.
396         * src/devices/xditview/GXditview.ad: Updated.
397         Make widget more colourful.
399 2007-05-30  Werner LEMBERG <wl@gnu.org>
401         * tmac/groff_mdoc.man: Convert `-' to `\-' where appropriate.
402         Recommend `tbl' instead of `-column' lists for more complicated
403         cases.
405 2007-05-21  Werner LEMBERG  <wl@gnu.org>
407         * src/devices/grops/ps.cpp (ps_printer::set_char): Handle subfonts
408         correctly.
410 2007-04-10  Werner LEMBERG  <wl@gnu.org>
412         In pic, make rounded boxes work with colors.  Reported by Urs Eggli
413         <Urs.Eggli@zuerich.ch>.
415         * src/preproc/pic/common.h (common_output), src/preproc/pix/output.h
416         (output): Add color parameter to `rounded_box' member function.
418         * src/preproc/pic/common.cpp (common_output::rounded_box): Use it.
420         * src/preproc/pic/object.cpp (box_object::print): Pass `color_fill'
421         to `out->rounded_box'.
423 2007-04-09  Michail Vidiassov  <master@iaas.msu.ru>
425         * font/devps/generate/textmap: Add Greek letters and some more.
427         * src/utils/afmtodit/afmtodit.tables: Change values of `Delta',
428         `Omega', and `mu' to the ones from aglfn.txt.
430 2007-04-08  Keith Marshall  <keith.d.marshall@ntlworld.com>
432         * tmac/s.tmac (SN): Define unconditionally.
433         (SN-STYLE): New string; define.
435         * NEWS, tmac/groff_ms.man, doc/groff.texinfo (SN-STYLE): Document it.
437 2007-03-22  Werner LEMBERG  <wl@gnu.org>
439         * tmac/pspic.tmac: Fix harmless numeric overflow warning.  Reported
440         by Jörg van den Hoff <j.van_den_hoff@fzd.de>.
442 2007-03-20  Werner LEMBERG  <wl@gnu.org>
444         * tmac/trace.tmac (rn): Added.
445         (nr, ds, ds1, as, as1, substring): Restore escape character while
446         executing the macro.
447         (nr): Remove dead code.
449         * src/preproc/eqn/box.cpp (box::top_level): Use \E in string
450         definitions to make them traceable.
452 2007-03-19  Werner LEMBERG  <wl@gnu.org>
454         * src/roff/troff/input.cpp (get_copy): Add third argument to control
455         whether \E shall be expanded.
456         (get_char_for_escape_name): Allow \E.
458 2007-03-15  Werner LEMBERG  <wl@gnu.org>
460         * tmac/s.tmac (MO, CH, pg*OH, pg*EH, pg*OF, pg*EF, *, [., .],
461         par*define-font-macro, \[hooko]): Use \E to make it traceable.
463         (ref*field): Add argument to control the space between previous and
464         current argument.
465         Update all callers.
466         (ref*add-N): Fix handling of opening parenthesis.  Problem reported
467         by Jörg van den Hoff <j.van_den_hoff@fzd.de>.
469 2007-03-14  Werner LEMBERG  <wl@gnu.org>
471         * tmac/trace.tmac (als): Added.
472         (de, de1, am, am1): Make traced macros aliased with .als work.
474 2007-02-25  Werner LEMBERG  <wl@gnu.org>
476         * src/devices/xditview/TODO: Add some more items.
478         * Makefile.comm (.man.n): Add @APPRESDIR@.
479         Sort entries.
481         * src/devices/xditview/gxditview.man: Document GXditview resource
482         file.
483         Other documentation enhancements based on a patch from Jörg.
485 2007-02-25  Tadziu Hoffmann  <hoffmann@usm.uni-muenchen.de>
486             Joerg van den Hoff <j.van_den_hoff@fzd.de>
488         * src/devices/xditview/GXditview.ad: Make all keys work regardless
489         of the current mouse position.
491 2007-02-20  Werner LEMBERG  <wl@gnu.org>
493         * tmac/groff_man.man: Revised to improve visual appearance.
494         Reduce use of future tense.
496         * tmac/groff_trace.man: Revosed to improve visual appearance.
498 2007-02-19  Eric S. Raymond  <esr@snark.thyrsus.com>
500         Make groff.man viewer-portable.
502         * tmac/groff.man: Eliminate use of .eo/.ec.
503         (.REQ): Surround args 2 through N with quotes.  This will enable us
504         not to rely on the shift request, which is nonportable.
505         (ExecFF): Remove.  The code is simpler without it.
507 2007-02-18  Eric S. Raymond  <esr@snark.thyrsus.com>
509         * tmac/groff_www.man: Viewer-portability fixes.
511 2007-02-16  Eric S. Raymond  <esr@snark.thyrsus.com>
513         * man/groff.man: Remove some unneeded code and a no-longer-used
514         inclusion of the www macros.
516 2007-02-12  Werner LEMBERG  <wl@gnu.org>
518         * src/preproc/tbl/table.cpp (compute_span_width): Fix use of
519         AVAILABLE_REG.
520         (table::compute_widths): Simplify.
522 2007-02-11  Werner LEMBERG  <wl@gnu.org>
524         * src/preproc/tbl/table.h: Don't include `stdbool.h'.
525         (table): Replace `bool' type with `char' for orthogonality.
526         Update all users.
528         * src/preproc/tbl/table.cpp (block_entry::do_divert): Fix usage of
529         AVAILABLE_REG and COLCOUNT_REG.
530         (table::table): Fix order call of initializers.
531         (table::~table): Deallocate `blockflag'.
533 2007-02-09  Eric S. Raymond  <esr@snark.thyrsus.com>
535         A try at the new rule for block column allocation is now enabled by
536         the new `experimental' global option: The horizontal space up to the
537         right margin which is not used by columns without text blocks is
538         evenly distributed to the columns with text blocks.
540         It doesn't work right as yet; there appears to be some error in the
541         computation of `3avail', the available line length.  The purpose of
542         this patch is (a) to make experimenting with other formulas easy,
543         and (b) leave the infrastructure for flag `experimental' in place
544         for future experiments.  Do not document any behavior associated
545         with this flag!
547         * src/preproc/tbl/table.h: Include `stdbool.h'.
548         (table): Make `flags' public.
549         Add `count_block_columns' function.
550         Add `blockflag' array.
551         Add `EXPERIMENTAL' enumeration value.
553         * src/preproc/tbl/table.cpp (AVAILABLE_REG, COLCOUNT_REG): New
554         macros.
555         (table_entry): New member `parent' so that class and subclass
556         members can set a parent field.  Update all users.
557         (block_entry::do_divert): Handle `EXPERIMENTAL' flag.
558         (block_entry::do_width): Set the parent's `blockflag'.
559         (table::allocate): Handle `blockflag'.
560         (table::count_block_columns): New function.
561         (compute_span_width): Adjust AVAILABLE_REG.
562         (table::compute_widths): Handle COLCOUNT_REG and AVAILABLE_REG.
564         * src/preproc/tbl/main.cpp (process_options): Handle `experimental'
565         option.
567 2007-02-08  Zhao, Yu (William)  <yzhao2@alcatel-lucent.com>
569         * src/devices/grodvi/dvi.cpp (draw_dvi_printer::draw) <'e'>: Set
570         line thickness.
572 2007-02-08  Werner LEMBERG  <wl@gnu.org>
574         * man/groff_out.man (offset): Make it work reliably.
576 2007-02-07  Eric S. Raymond  <esr@snark.thyrsus.com>
578         * man/groff_out.man: Simplify some font changes so \fP is less
579         likely to do something surprising.
580         
581         * man/groff_out.man: We can simplify the command macros still
582         further if we stop trying to hide structural requests inside them. 
583         Also, fix some instances of \} at start of line without a dot, and
584         make some font changes explicit in strings.
585         
586         * man/groff_out.man: Cleanup -- remove now-unneeded uses of .do and
587         .cp.
588         
589         * man/groff_out.man: Final step: Reduce x-command, get rid of eo/ec
590         calls and fix macros to do without them.  File should now be
591         viewer-portable.
592         
593         * man/groff_out.man: Fourth step: Eliminate use of eqn in favor of
594         micromotions that produce the same visual result and can be lifted
595         to XML-DocBook.
596         
597         * man/groff_out.man: Third step: Reduce Da-comand, fix a
598         call-sequence bug in the original.
599         
600         * man/groff_out.man: Second step: Reduce D-commmand and D-command+,
601         move font-change escapes to portable form.
603         * man/groff_out.man: First step in macro simplification; eliminate
604         list1..n, simplify .offset and .index_offset so they no longer
605         require groff-specific features or eqn (instead, use troff
606         micromotions for subscripting).
608 2007-02-06  Eric S. Raymond  <esr@snark.thyrsus.com>
610         * src/preproc/eqn/eqn.man: Minor corrections.
612         * tmac/an-ext.tmac: Change .UR/.UE and .MT/.ME so the start macro no
613         longer takes a second argument that is pasted to the end of the
614         generated text.  Instead, the end macro takes an argument that does
615         the same thing.
617         * man/ditroff.man, man/groff_diff.man, man/groff.man,
618         man/groff_out.man, man/groff_tmac.man, man/roff.man,
619         src/roff/groff/groff.man, src/roff/grog/grog.man,
620         tmac/groff_man.man, tmac/groff_trace.man: Update accordingly.
622         * src/roff/troff/troff.man: .SY and .YS are canned macros now,
623         so we can use them here.
624         
625 2007-02-05  Eric S. Raymond  <esr@snark.thyrsus.com>
627         * src/preproc/eqn/lex.cpp, src/preproc/eqn/eqn.man:
628         By popular demand, make ... set three lower dots again
629         and introduce a new predefined macro 'cdots' to set
630         three centered dots.
632 2007-02-05  Werner LEMBERG  <wl@gnu.org>
634         * src/preproc/eqn/eqn.man: Revised.
636         * src/preproc/eqn/text.cpp (map, special_char_boc::output): Use
637         `const'.
638         (spacing_type): Fix typo.
639         (special_to_entity): Use `const'.
640         Remove unused variable.
641         * src/preproc/eqn/other.cpp (font_box::output): Use `const'.
643 2007-02-05  Eric S. Raymond  <esr@snark.thyrsus.com>
645         * src/devices/grotty/grotty.man: \m[] and \M[] aren't portable,
646         which is a shame as the effect was cute.
648 2007-02-04  Eric S. Raymond  <esr@snark.thyrsus.com>
650         * man/groff_tmac.man, man/groff_diff.man: Portability conversion;
651         rip out over-elaborate macrology, use .EX/.EE and .UR/.UE where
652         possible, remove preamble declarations and macros that are no
653         longer needed.  Conversion checked using the protocol described in
654         tmac/TESTING-HINTS.
656 2007-02-03  Werner LEMBERG  <wl@gnu.org>
658         * tmac/an-old.tmac (LP, IP, HP): Use .ns to suppress additional
659         vertical space.
661 2007-02-03  Eric S. Raymond  <esr@snark.thyrsus.com>
663         * tmac/groff_man.man: Documented the extension macros, and 
664         added portability advice.
666         * MORE.STUFF: More-stuff entries for doclifter and pic2plot.
669         Add support for MathML output to eqn.  
671         The strategy used is very simple and relies on the fact that the box
672         models of eqn and Presentation MathML differ in only trivial ways. 
673         It leaves the grammar and existing internal object structures
674         unchanged.  A new global, `output_format', is defined as an
675         enumerated type with values {troff, mathml}.  Most of the functions
676         and methods that emit actual output acquire a top-level conditional,
677         dispatching on this global, which has one arm for troff mode and one
678         for MathML mode.  In most cases the MathML arm is drastically
679         simpler.
681         (This strategy could be easily generalized to support other output
682         formats.  TeX is a possibility that leaps to mind.)
684         The only even moderately tricky changes are in the lexer.  Some of
685         the predefined macros used constructs like `up', `down', `fwd',
686         `back', and `vcenter' that have no equivalents in MathML.  I
687         attacked this problem in these ways:
689         1. I eliminated three uses of `back' to compose characters in favor
690            of using equivalent groff specials `\(<<', `\(>>', and `\(<>'
691            that did not exist when these macros were written.  (This will be
692            a quality improvement for troff users.)
694         2. I eliminated one use of `vcenter' by using \\(md.  (Likewise...)
696         3. I then split the table of pre-definitions in three; one large
697            common table and two small troff-specific and MathML-specific
698            tables.  Use of troff-only operations (up, down, back, fwd,
699            vcenter) is now confined to the former.  The latter now uses
700            `size big' and drops out the explicit positioning operations,
701            counting on MathML processors to do them.
703         POTENTIAL TROUBLE SPOTS:
705         Here are notes for reviewers on places I'm not 100% sure I've done
706         the right thing:
708         * In the process of preparing the troff table, I translated three
709           definitions (dot_def, dotdot_def, and utilde def) that previously
710           used explicit \v escapes to use `up' and `down' instead.  I
711           modeled the new definitions on the way `vec' and `dyad' work, but
712           it's possible I got something subtle wrong.
714         * I'm not certain the MathML implementation of font_box::output() is
715           right, because I don't quite get what the switcheroo between
716           `current_roman_font' and `old_roman_font' is supposed to
717           accomplish.  It does seem to generare good MathML, though.
719         Finally, I made one purely cosmetic change in `text.cpp'; I replaced
720         with an enum some magic numbers for spacing types that I thought
721         were too ugly to live.
723         REMAINING ISSUES:
725         The entirety of eqn is translated when `-TMathML' is specified, 
726         with the following exceptions...
728         Limitations that cannot be fixed include non-support for special,
729         up/down/fwd/back, and vcenter.
731         Limitations that might be fixable include non-support for mark and
732         lineup.  I will investigate further, but if these can be implemented
733         at all it's going to be in a very complicated and nasty way.
735         The way character boxes are output means that each digit of a
736         multi-digit number gets its own <mn></mn> tag pair in the MathHTML. 
737         While this is not technically wrong for Presentation MathML, it is
738         ugly and inefficient.  Fixing this will require implementing a
739         little state machine in the `text.cpp' output method.
741         * src/preproc/eqn/box.cpp, src/preproc/eqn/delim.cpp, 
742         src/preproc/eqn/eqn.h, src/preproc/eqn/eqn.man, 
743         src/preproc/eqn/lex.cpp, src/preproc/eqn/limit.cpp,
744         src/preproc/eqn/list.cpp, src/preproc/eqn/main.cpp, 
745         src/preproc/eqn/other.cpp, src/preproc/eqn/over.cpp, 
746         src/preproc/eqn/pile.cpp, src/preproc/eqn/script.cpp,
747         src/preproc/eqn/sqrt.cpp, src/preproc/eqn/text.cpp,
748         src/preproc/eqn/eqn.man: MathML output mode.
750         * NEWS: Document it.
752 2007-02-02  Eric S. Raymond  <esr@snark.thyrsus.com>
754         * src/roff/groff/groff.man: Converted to use .SY/.OP/.YS
755         and for cross-viewer portability.  Conversion checked 
756         using the protocol described in tmac/TESTING-HINTS.
758 2007-02-02  Werner LEMBERG  <wl@gnu.org>
760         * tmac/an-ext.tmac (ME): Don't use `\:'.
762         * src/roff/grog/grog.man: Further refinements and normalizations.
764 2007-02-02  Eric S. Raymond  <esr@snark.thyrsus.com>
766         * src/roff/grog/grog.man: Converted to use .SY/.OP/.YS and for
767         cross-viewer portability.  Conversion checked using the protocol
768         described in tmac/TESTING-HINTS.
770 2007-02-01  Eric S. Raymond  <esr@thyrsus.com>
772         * tmac/TESTING-HINTS: Added.
774 2007-02-01  Eric S. Raymond  <esr@thyrsus.com>
776         Enable the support for Bell archaisms on .SC, so the `-r bell'
777         switch is no longer needed to format old AT&T papers like
778         the EQN user guide.
780         * tmac/s.tmac (.SC, .UC, .P1, .P2): Updated.
782         * tmac/groff_ms.man, doc/groff.texinfo, NEWS: Updated.
784 2007-02-01  Eric S. Raymond  <esr@thyrsus.com>
786         Add some Bell labs extensions to the -ms macros.
788         * tmac/s.tmac (.SC, .UC, .P1, .P2) [bell]: New macros.
790         * tmac/groff_ms.man, doc/groff.texinfo, NEWS: Document `-r bell'.
792 2007-01-30  Werner LEMBERG  <wl@gnu.org>
794         * tmac/an-ext.tmac (\n[EX]): Rename to \n[mX].
795         (\n[mH]): New register (set if grohtml is used).
796         (\n[SY]): Rename to \n[mS].
797         (\n[a]): Rename to \n[mA].
798         (\n[i]): Rename to \n[mI].
799         (mU): New auxiliary input trap macro.
800         (UR, UE): Replace stub with real definition.
801         (URL): Remove.
802         (MT, ME): New macros.
803         (MTO): Remove.
804         (EX, EE): Don't insert vertical space.
805         Use a register to store (and restore) the current font.
807         * man/ditroff.man, man/groff_diff.man, man/roff.man: Revised, based
808         on patches from Eric Raymond.
809         Fix URL addresses.
811 2007-01-22  Gaius Mulley  <gaius@glam.ac.uk>
813         * tmac/an-old.tmac (an-trap, HP): Make `HP' work as expected.
815 2007-01-22  Werner LEMBERG  <wl@gnu.org>
817         * tmac/an-ext.tmac: Protect against being sourced twice.
818         (URL, EE): Use always two backslashes.
819         (MTO): New macro.
821 2007-01-16  Werner LEMBERG  <wl@gnu.org>
823         * tmac/an-ext.tmac: Remove code for grodvi.
824         (SY): Fix typos.
825         Don't insert empty line.
826         (URL, TQ): Fix typos.
828 2007-01-14  Werner LEMBERG  <wl@gnu.org>
830         * tmac/an-ext.tmac: New file, containing extension macros
831         for -man.  See discussion on the groff mailing list for
832         background information.
833         * tmac/an-old.tmac: Load an-ext.tmac.
834         Decorate .ds and as with comment escapes where appropriate.
835         * tmac/Makefile.sub (NORMALFILES): Add an-ext.tmac.
837 2007-01-05  Werner LEMBERG  <wl@gnu.org>
839         * src/preproc/tbl/tbl.man: Document .T# and \n[TW].
841 2007-01-04  Gaius Mulley  <gaius@glam.ac.uk>
843         Make -me macros ready for grohtml.
845         * tmac/e.tmac: Load devtag.tmac.
846         (need_eo_h, need_eo_tl, need_tl): New registers.
847         (check_need_title, (x-html, )x-html, xp-html): New macros.
848         (@h, hl, ip, @p, sh, (b, (l, EQ, EN, TS, TE, PS, PE, GS, GE, r, i,
849         b, rb, bi, bx, (x, )x, xp): Adapt for use with grohtml.
850         (bp): Rename to @b only if output device is not html.
852 2007-01-01  Werner LEMBERG  <wl@gnu.org>
854         * man/groff_font.man: Document empty lines.
856         * src/utils/afmtodit/afmtodit.pl: Always print a header comment at
857         the very beginning of the output.
858         [!$opt_x]: Fix typo.
860         * font/devps/*: Regenerate font definition files.
862 2007-01-01  Werner LEMBERG  <wl@gnu.org>
864         * font/devps/generate/Makefile (AFMTODIT): Use -c flag.
866         * font/devps/*: Regenerate font definition files.
868 2006-12-31  Werner LEMBERG  <wl@gnu.org>
870         * Makefile.in (oldfontdir): New variable.
871         (MDEFINES): Add $(oldfontdir).
872         (uninstall_dirs): Remove `current' link.
873         Remove $(oldfontdir).
875         * Makefile.comm (oldfontsubdir): New variable.
876         (install_dev): Install files collected in $(OLDDEVFILES) into
877         $(oldfontsubdir).
878         (uninstall_dev): Remove data in $(oldfontsubdir).
879         (.man.n): Handle @OLDFONTDIR@.
881         * src/devices/grodvi/grodvi.man, src/devices/grohtml/grohtml.man,
882         src/devices/grolbp/grolbp.man, src/devices/grolj4/grolj4.man,
883         src/devices/grotty/grotty.man, src/devices/xditview/gxditview.man:
884         Document GROFF_FONT_PATH.
886         * src/devices/grops/grops.man: Document GROFF_FONT_PATH and
887         old font description files.
889         * font/devps/Makefile.sub (OLDDISTFILES, OLDDEVFILES): New
890         variables.
892         * font/devps/old/*: New directory, holding the previous version
893         of the 35 Adobe core font description files.
895         * font/devps/*: Regenerated the 35 Adobe core fonts, using the
896         Adobe-Core35_AFMs-229.tar.bz2 bundle from ftp.dante.de.
898         * NEWS: Document font update.
900 2006-12-31  Werner LEMBERG  <wl@gnu.org>
902         * font/devps/generate/Makefile (symbolsl.afm): Use $(srcdir).
904         * Makefile.comm (fonts): New (empty) target.
905         * Makefile.in (TARGETS): Add `fonts'.
907         * MANIFEST: Add `chem'.
909         * doc/groff.texinfo (Changing Fonts): Font translations with .ftr
910         can't be chained.
912 2006-12-26  Werner LEMBERG  <wl@gnu.org>
914         * src/preproc/grn/hdb.cpp: Include gprint.h later.  From NetBSD.
916 2006-12-19  Werner LEMBERG  <wl@gnu.org>
918         Add support for German.  For activation, simply use -mde or -mden
919         (for traditional and new orthgraphy, respectively) as the last
920         macro package.
922         * tmac/de.tmac, tmac/den.tmac, tmac/hyphen.det, tmac/hyphen.den,
923         tmac/hyphenex.det: New files, partly taken from CTAN.
924         * LICENSES: Updated list of hyphenation patterns.
925         * man/groff_tmac.man: Mention de.tmac and den.tmac.
926         * NEWS: Updated.
928 2006-12-11  Werner LEMBERG  <wl@gnu.org>
930         Support up to 32 macro arguments in pic (and up to 16 on EBCDIC
931         hosts).
933         * src/preproc/pic/lex.cpp (ARG1): Redefine.  Update all users.
934         (MAX_ARG): New macro.  Use it everywhere to replace hard-coded
935         limit of 9 arguments.
936         (process_body): Handle argument numbers with more than a single
937         digit.
938         (interpolate_macro_with_args): Protect against exceeding number of
939         arguments.
941         * NEWS, src/preproc/pic/pic.man, doc/pic.ms: Document it.
943 2006-12-10  Werner LEMBERG  <wl@gnu.org>
945         * Makefile.in (site.exp, docheck): Commented out.  Not working
946         currently.
947         (check): Just emit dummy message.
949 2006-12-08  Werner LEMBERG  <wl@gnu.org>
951         During installation, create soft link from <version> to `current' in
952         <datadir>/groff.
954         * Makefile.comm (install): Renamed to...
955         (do_install): This.
956         (prefix_must_exist): Removed.  Code moved to Makefile.in.
958         * Makefile.in (TARGETS): Remove `install'.
960         (install): New target which first creates the directory given by
961         --prefix, then calling `make' to do the installation, and finishing
962         with the creation of the soft link.
964 2006-11-21  Werner LEMBERG  <wl@gnu.org>
966         * doc/Makefile.sub (uninstall_sub): Fix names for info files.
968 2006-11-18  Werner LEMBERG  <wl@gnu.org>
970         * man/roff.man, doc/groff.texinfo: Improve history of roff, based on
971         information from Tom Van Vleck <thvv@multicians.org>.
973 2006-11-16  Werner LEMBERG  <wl@gnu.org>
975         * tmac/62bit.tmac: New macro package.
976         * tmac/Makefile.sub (NORMALFILES): Add it.
977         * NEWS: Document it.
979         * tmac/trace.tmac: Protect against being loaded again.
980         (nr): Always show result.
982         * doc/groff.texinfo (Input Encodings): Document latin-5.
984         * man/grof_tmac.man: Document sv, latinX, cp1047, 60bit, ec.
986 2006-11-13  Werner LEMBERG  <wl@gnu.org>
988         * doc/groff.texinfo (Page Location Traps) [.wh]: Give more details
989         on negative trap positions.
991 2006-11-10  Werner LEMBERG  <wl@gnu.org>
993         * Makefile.comm (.man.n): Handle @DATASUBDIR@.
995 2006-11-09  Werner LEMBERG  <wl@gnu.org>
997         * INSTALL: Move information about external installation from
998         INSTALL.gen into this file.
999         Updated.
1001         * INSTALL.gen: Update to new version (from texinfo CVS).
1003 2006-11-09  Bernd Warken
1005         * INSTALL.gen: Extend the file by information on `external
1006         installation'.  Reorder the installation instruction as `normal
1007         installation'. 
1009 2006-11-08  Werner LEMBERG  <wl@gnu.org>
1011         * doc/Makefile.sub (install_data): Take care of proper paths while
1012         installing info files.  Bug reported by Bernd Warken.
1014 2006-11-06  Bernd Warken
1016         * src/roff/grog/grog.pl: Rewrite.
1017         - Call by `#! /usr/bin/env perl'.  That isn't replaced.
1018         - Rename usage() to version().
1019         - Use warnings.
1020         - For `use strict', start all global variables with an upper case
1021         character.  Use `my' for all variables.  Use several new variables.
1022         - Add option `-h'.
1023         - Add copyright to GPL and Emacs comment.
1024         - Handle several `-m*' options.
1025         - Fix handling of `-ms' and `-mm'.  Add .TL and .NH.
1026         - Allow options after file names.
1027         - Allow only one `-' parameter (standard input).
1028         - Add option abbreviations.
1029         - Expand the usage information.
1030         - Add `chem'.
1031         - Add single quote "'" as additional first character and allow
1032         arbitrary space after the first character.
1034         * src/roff/grog/grog.sh: Rewrite.
1035         - Remove option `-e' of `sed'.
1036         - Allow file names with space characters.
1037         - Add option `-h'.
1038         - Add copyright to GPL.
1039         - Handle several `-m*' options.
1040         - Fix handling of `-ms' and `-mm'.  Add .TL and .NH.
1041         - Allow options after file names.
1042         - Allow only one `-' parameter (standard input).
1043         - Add option abbreviations.
1044         - Expand the usage information.
1045         - Add `chem'.
1046         - Add single quote "'" as additional first character and allow
1047         arbitrary space after the first character.
1049         * src/roff/grog/Makefile.sub:
1050         - Add copyright to GPL.
1051         - Remove `grog:'.  Move `grog.old:' to `grog:' in order to have a
1052         fair chance to choose between the shell version and the Perl
1053         version of `grog'.  This is now again comparable to grog in groff
1054         version 1.10.
1056         * src/roff/grog/grog.man: Rewrite.
1057         - Move the license to GPL.
1058         - New sections: OPTIONS, DETAILS, EXAMPLES, COPYING.
1059         - Take over some setup and macros from `groffer'.
1060         - Add information on options.
1062 2006-10-28  Werner LEMBERG  <wl@gnu.org>
1064         * tmac/trace.tmac: Improve tracing of `.nr'.
1065         Trace `.substring' also.
1067         * NEWS: Updated.
1069 2006-10-28  Bernd Warken
1071         * man/roff.man, src/roff/groff/groff.man: Add `chem', fix position
1072         of groff development site, fix fonts.
1074         * News: Add information on `chem' and `groffer'.
1076 2006-10-26  Bernd Warken
1078         * Makefile.in (OTHERDIRS, NOMAKEDIRS): Add `chem' bundle.
1080 2006-10-26  Werner LEMBERG  <wl@gnu.org>
1082         Add `\%^' escape to handle the parameters to a macro as a string
1083         argument.
1085         * src/roff/troff/input.h (DOUBLE_QUOTE): New special character.
1087         * src/roff/troff/input.cpp (input_iterator, input_stack,
1088         macro_iterator): Add `space_follows_arg' member function.
1089         (macro_iterator::add_arg): Add parameter to set the `space_follows'
1090         flag.
1091         (arg_list): Add member `space_follows'.
1092         Update constructor and all callers.
1093         (decode_args): Store discarded double quotes.
1094         (interpolate_args): Handle DOUBLE_QUOTE.
1095         Add `\%^' escape.
1096         (get_copy, token::next, composite_glyph_name): Handle DOUBLE_QUOTE.
1098         * tmac/trace.tmac: Trace .nr, .ds, .ds1, .as, .as1.
1100         * docs/groff.texinfo (Parameters), man/groff.man,
1101         man/groff_diff.man, NEWS: Document it.
1103 2006-10-24  Bernd Warken
1105         * Makefile.in (NOMAKEDIRS): Add groffer subdirectories.
1107 2006-10-24  Werner LEMBERG  <wl@gnu.org>
1109         * tmac/groff_trace.man: Mention problem with `\\\\'.
1111 2006-10-23  Werner LEMBERG  <wl@gnu.org>
1113         * doc/groff.texinfo (Expressions): Improve documentation of `!'.
1115         * tmac/trace.tmac (return): Don't call `substring'.
1117 2006-09-10  Werner LEMBERG  <wl@gnu.org>
1119         * src/roff/troff/input.cpp (read_size): Revert previous change
1120         w.r.t. `\s-[-...]'.
1122         * doc/groff.texinfo (Fractional Size Types): Clarify syntax of \s.
1124 2006-09-09  Werner LEMBERG  <wl@gnu.org>
1126         * src/roff/troff/input.cpp (read_size): Fix `\s[-\n[.s]]' so that it
1127         behave the same as `\s-[\n[.s]]' (this is, emit a warning and set
1128         point size to 1).  Reported by Gunnar Ritter.
1129         Also catch `\s-[-...]' and friends (causing an error).
1131 2006-09-06  Werner LEMBERG  <wl@gnu.org>
1133         * src/roff/troff/env.cpp (environment::do_break): Insert zero-width
1134         space only if there is no previous space.  This fixes a bug which
1135         caused unwanted filling of the last line in a paragraph.  Thanks to
1136         Gunnar Ritter for an analysis.
1138 2006-09-03  Werner LEMBERG  <wl@gnu.org>
1140         * src/roff/groff/groff.cpp (main): Pass -U flag to pic also.
1141         Reported by Jennifer Sayers <jenjen@isu.usyd.edu.au>.
1143 2006-09-01  Nick Stoughton  <nick@msbit.com>
1144             Werner LEMBERG  <wl@gnu.org>
1146         Add a request `pev' to print environment information (similar to
1147         `pnr' and `ptr' to print number registers and traps).
1149         * src/roff/troff/env.h (environment): Add member function print_env.
1151         * src/roff/troff/env.cpp: (environment::print_env): New function to
1152         print a given environment state.
1153         (print_env): New global function to iterate through the
1154         environments, printing each one.
1155         (init_env_requests): Register `pev'.
1157         * doc/groff.texinfo (Debugging), man/groff.man, man/groff_diff.man,
1158         NEWS: Document `pev' request.
1160 2006-09-01  Bernd Warken
1162         * src/preproc/soelim/soelim.cpp (usage): Fix option argument of
1163         `-I' to `dir'.
1165 2006-09-01  Werner LEMBERG  <wl@gnu.org>
1167         * src/preproc/pic/main.cpp (usage): Add missing options.
1169 2006-08-25  Werner LEMBERG  <wl@gnu.org>
1171         * src/preproc/soelim/soelim.man: Document how to insert `\' and ` '
1172         in file names.
1174 2006-08-19  Werner LEMBERG  <wl@gnu.org>
1176         * configure: Regenerated.
1178 2006-08-18  Keith Marshall  <keith.d.marshall@ntlworld.com>
1180         * m4/groff.m4 (GROFF_MAKEINFO): Correct `makeinfo version testing
1181         logic; it previously caused an `expr' syntax error, if no version of
1182         `makinfo' was present.  Also, remove dependency on `makeinfo' in VPATH
1183         builds, if an up to date `groff.info' is present in either `builddir'
1184         or in `srcdir'.
1186 2006-08-12  Tadziu Hoffmann  <hoffmann@usm.uni-muenchen.de>
1188         * font/devps/prologue.ps: Add BPhook.
1190         * src/devices/grops/grops.man: Document BPHook.
1191         Reorder some sections for better readability.
1193 2006-08-12  Werner LEMBERG  <wl@gnu.org>
1195         * src/include/lib.h (getlocale): New macro.
1196         (setlocale, LC_ALL, LC_CTYPE) [!HAVE_SETLOCALE]: Define, as
1197         suggested by Bruno.
1199         * src/preproc/preconv/preconv.cpp (main): Use getlocale.
1201 2006-08-11  Werner LEMBERG  <wl@gnu.org>
1203         Add new flag to .cflags to enable hyphenation without looking at
1204         hcode values.
1206         * src/roff/troff/charinfo.h (charinfo): New enumeration value
1207         `IGNORE_HCODES'.
1208         New member function `ignore_hcodes'.
1210         * src/roff/troff/node.cpp (break_char_node::add_self,
1211         node::add_char): Updated.
1213         * doc/groff.texinfo, man/groff_diff.man, NEWS: Document it.
1215 2006-08-09  Werner LEMBERG  <wl@gnu.org>
1217         Support composite Unicode characters again.  Reported by Colin.
1219         * font/devhtml/R.proto: Renamed to...
1220         * font/devhtml/R.in: This.
1222         * font/devutf8/R.proto: Renamed to...
1223         * font/devutf8/R.in: This.
1224         Add `charset' line.
1226         * font/make-Rproto: New script.
1227         * font/devhtml/R.proto, font/devutf8/R.proto: Generated.
1229 2006-07-26  Werner LEMBERG  <wl@gnu.org>
1231         * README: Fix description of CVS access.  Reported by Joachim.
1233 2006-07-11  Werner LEMBERG  <wl@gnu.org>
1235         Add a request `.fzoom' and a number register `.zoom' to magnify
1236         fonts.
1238         * src/include/font.h (font): Add member variable `zoom'.
1239         Add member functions `set_zoom' and `get_zoom'.
1240         Remove `static' attribute from `scale' member function.
1242         * src/libs/libgroff/font.cpp (font::font): Updated.
1243         (scale_round): New version with three parameters to handle zoom
1244         factor.
1245         (font::scale, font::get_width): Handle zoom factor.
1246         (font::set_zoom, font::get_zoom): New functions.
1247         (font::load): Handle `zoom' while computing `space_width'.
1249         * src/roff/troff/env.h: Declare `env_get_zoom'.
1250         (environment): Add member function `get_zoom'.
1252         * src/roff/troff/env.cpp (environment::get_zoom): New function.
1253         (init_env_requests): Initialize `.zoom' register.
1255         * src/roff/troff/node.cpp (font_info): New member functions
1256         `set_zoom' and `get_zoom'.
1257         (tfont): New member function `get_zoom'.
1258         (env_get_zoom): New function.
1259         (troff_output_file::set_font): Handle zoom factor.
1260         (font_zoom_request): New function.
1261         (init_node_requests): Initialize `fzoom' request.
1263         * docs/groff.texinfo (Changing Fonts), man/groff.man,
1264         man/groff_diff.man, NEWS: Document `fzoom' request and `.zoom'
1265         register.
1267         * src/roff/troff/TODO: Updated.
1269 2006-07-10  Werner LEMBERG  <wl@gnu.org>
1271         * doc/groff.texinfo (Drawing Requests): Improve documentation of
1272         \D'P ...'.
1274 2006-07-02  Werner LEMBERG  <wl@gnu.org>
1276         * man/groff_tmac.man: Document usage of .PSPIC within diversions.
1278 2006-07-01  Werner LEMBERG  <wl@gnu.org>
1280         * tmac/pspic.tmac: Make .PSPIC work for all devices.
1281         Print image file name for devices which don't support PS image
1282         inclusion.
1283         Handle multiple inclusions.
1284         Add lots of comments.
1286         * tmac/dvi.tmac, tmac/html.tmac, tmac/ps.tmac: Don't load
1287         pspic.tmac.
1289         * tmac/troffrc: Load pspic.tmac.
1291         * man/groff_tmac.man: Update .PSPIC documentation.
1293         * NEWS: Updated.
1295 2006-06-29  Werner LEMBERG  <wl@gnu.org>
1297         * src/roff/troff/input.cpp (interpolate_macro):
1298         s/probably/possibly/, as suggested by Keith.
1300 2006-06-28  Werner LEMBERG  <wl@gnu.org>
1302         Add support for \D'p...' to grotty.
1304         * src/devices/grotty/grotty.cpp (tty_printer::draw): Move most of
1305         its code to...
1306         (tty_printer::line): This function.
1307         (tty_printer::draw): Rewritten; just call either draw_line or
1308         draw_polygon.
1309         (tty_printer::draw_line, tty_printer::draw_polygon): New functions.
1311         * src/devices/grotty/grotty.man, NEWS: Document it.
1313 2006-06-27  Werner LEMBERG  <wl@gnu.org>
1315         * src/preproc/refer/command.h (have_bibliography): New variable
1316         declaration.
1318         * src/preproc/refer/command.cpp (bibliography_command): Set
1319         `have_bibliography'.
1321         * src/preproc/refer/refer.cpp: Initialize `have_bibliography'.
1322         (output_references): Emit warning only if `have_bibliography' is
1323         set.
1325 2006-06-15  Michail Vidiassov  <master@iaas.msu.ru>
1327         * font/devps/Makefile.sub (DISTFILES): Add freeeuro.afm.
1328         * font/devps/generate/Makefile (clean): Don't remove symbolsl.afm
1329         and zapfdr.afm.
1331 2006-06-15  Werner LEMBERG  <wl@gnu.org>
1333         * src/preproc/tbl/tbl.man: Document limitations of .TS/.TE within a
1334         macro (as suggested by Tadziu Hoffmann).
1336 2006-06-12  Werner LEMBERG  <wl@gnu.org>
1338         * src/preproc/tbl/tbl.man: Add example for use of .TS/.TE within a
1339         macro (as suggested by Tadziu Hoffmann).
1341 2006-06-05  Werner LEMBERG  <wl@gnu.org>
1343         * tmac/strip.sed: Strip `\#' also.
1345         * doc/groff.texinfo (Operators in Conditionals): Document usage of
1346         \? for string comparison.
1348 2006-06-04  Werner LEMBERG  <wl@gnu.org>
1350         * doc/groff.texinfo: Add more index entries for copy-in mode.
1351         (Changing Fonts) <.ft>: Document that a font definition file must
1352         not be called `DESC'.
1354 2006-05-31  Werner LEMBERG  <wl@gnu.org>
1356         * src/roff/troff/input.cpp (token::next) <\N>: Catch negative values
1357         here.
1359         * doc/Makefile.sub (EXAMPLEFILES): Move gnu.eps to...
1360         (PROCESSEDEXAMPLEFILES): Here.
1362 2006-05-30  Werner LEMBERG  <wl@gnu.org>
1364         * src/libs/libgroff/font.cpp (font::load): Reject fonts called
1365         `DESC'.
1366         Reduce number of false positives for `.if F ...' conditionals.
1367         Improve warning messages.
1369 2006-05-29  Werner LEMBERG  <wl@gnu.org>
1371         * tmac/Makefile.sub: Add copyright notice.
1372         (NORMALFILES): Add man.tmac and ms.tmac.
1373         (SPECIALFILES): Remove man.tmac and ms.tmac.
1374         (CLEANADD): Remove man.tmac-sed and ms.tmac-sed.
1375         (install_data, uninstall_sub): Don't handle man.tmac and ms.tmac
1376         specially.
1377         (stamp-sed): Don't handle man.tmac and ms.tmac.
1378         Remove obsolete components in sed's regexp.
1380         * doc/Makefile.sub (EXAMPLEFILES): Add gnu.eps.
1382         * Makefile.in (OTHERDIRS, NOMAKEDIRS): Add hdtbl.
1384 2006-05-28  Werner LEMBERG  <wl@gnu.org>
1386         * doc/groff.texinfo (History): Correct death circumstances of Joe
1387         Ossanna.
1389 2006-05-27  Werner LEMBERG  <wl@gnu.org>
1391         * tmac/an-old.tmac (an-do-tag): Simplify.
1393 2006-05-26  Werner LEMBERG  <wl@gnu.org>
1395         * tmac/an-old.tmac (an-do-tag): Make margin characters work.
1396         (an-header, an-p-footer): Use named environment.
1398         * src/roff/troff/env.cpp (environment::copy): Copy margin character
1399         node.
1401 2006-05-21  Werner LEMBERG  <wl@gnu.org>
1403         * tmac/trace.tmac (de1): Fix serious typo (.di -> .do) and minor
1404         omissions.
1406 2006-05-11  Keith Marshall  <keith.d.marshall@ntlworld.com>
1408         * src/roff/groff/groff.man: Remove superfluous word `intermediate'.
1410 2006-05-10  Keith Marshall  <keith.d.marshall@ntlworld.com>
1412         * src/roff/groff/groff.man: Update copyright notice.
1413         Improved wording to describe effect of `-Z' option.
1415 2006-05-06  Werner LEMBERG  <wl@gnu.org>
1417         * tmac/www.tmac: Decorate `.ds' with trailing `\"' where missing.
1418         Normalize handling of `"' in arguments.
1419         (PIMG): Remove debug message.
1420         Simplify code.
1422 2006-05-05  Werner LEMBERG  <wl@gnu.org>
1424         * src/devices/grohtml/post-html.cpp (page::add_and_encode): Don't
1425         swallow character immediately after `\[...]'.
1426         Simplify code.
1428 2006-05-02  Gaius Mulley  <gaius@glam.ac.uk>
1430         * tmac/www.tmac (PIMG): Fix the HTML device specific components.
1432 2006-05-02  Larry Kollar  <kollar@alltel.net>
1434         * tmac/www.tmac (PIMG): Really default to `-C' if the alignment
1435         option is missing.
1437 2006-04-30  Michail Vidiassov  <master@iaas.msu.ru>
1439         * src/utils/afmtodit/afmtodit.pl: New option `-c' to add font
1440         information as a comment in output.
1441         * src/utils/afmtodit/afmtodit.man, NEWS: Document it.
1443 2006-04-26  Werner LEMBERG  <wl@gnu.org>
1445         * src/devices/grohtml/post-html.cpp (html_printer::~html_printer):
1446         Handle current_paragraph only if it is non-NULL.
1448         * src/libs/libdriver/input.cpp (parse_x_command <'F'>, do_file
1449         <'F'>): Use `get_extended_arg' to behave as documented.  Reported by
1450         Bill Ward <william.a.ward.jr@erdc.usace.army.mil>.
1453         Surround the (pseudo) file name for the .pso request with `<' and
1454         `>'.
1456         * src/roff/troff/node.cpp (real_output_file, troff_output_file): Add
1457         second parameter to `really_put_filename' and `put_filename'.
1458         (troff_output_file::really_put_filename): Emit `<' and `>' around
1459         filename if second argument is set.
1460         * src/roff/troff/node.h: Updated.
1462         * src/roff/troff/input.cpp (file_iterator::file_iterator,
1463         file_iterator::set_location): Update to changes in node.cpp.
1465 2006-04-25  Tetsurou Okazaki  <okazaki@FreeBSD.org>
1467         * src/preproc/preconv/preconv.cpp (do_file): Fix conditional
1468         preprocessor expression (I18N -> HAVE_ICONV).
1469         (main): Fix handling of option `-h'.
1470         Fix conditional preprocessor expression.
1472 2006-04-04  Werner LEMBERG  <wl@gnu.org>
1474         Implement new number register `.br' which is set to 1 if a macro has
1475         been called as .foo and to 0 if called as 'bar.  This is useful for
1476         -mtrace so that requests can be reliably traced too.
1478         * src/roff/troff/input.cpp (input_iterator): Add virtual function
1479         `get_break_flag'.
1480         (macro_iterator): Add `with_break' member and `get_break_flag'
1481         function.
1482         Update constructors.
1483         (input_stack): Add function `get_break_flag'.
1484         (break_flag_reg): New number register class.
1485         (input_init_requests): Register `.br'.
1487         * src/roff/troff/TODO: Updated.
1489         * tmac/trace.tmac: s/!!sp/!!!sp/.
1490         Modify definitions of `de', `de1', `am', and `am1' to use \n[.br].
1492         * docs/groff.texinfo (Requests), man/groff.man, man/groff_diff.man,
1493         NEWS: Document it.
1495 2006-03-29  Werner LEMBERG  <wl@gnu.org>
1497         * src/devices/grops/ps.cpp: s/must not/should not/ in warning
1498         messages where appropriate.
1500 2006-03-28  Werner LEMBERG  <wl@gnu.org>
1502         * configure.ac: Call AC_PROG_EGREP.
1503         * configure: Regenerated.
1505         * Makefile.in (EGREP): New variable.
1506         (MDEFINES): Add $(EGREP).
1508         * src/roff/grog/grog.sh: Treat .TH between .TS and .TE properly
1509         (bug reported by Robert Goulding <Goulding.2@nd.edu>).
1510         Use @EGREP@.
1512         * src/roff/grog/Makefile.sub (grog, grog.old): Use $(EGREP).
1514 2006-03-27  Werner LEMBERG  <wl@gnu.org>
1516         Add two requests `.device' and `.devicem' which are equivalent to
1517         `\X' and `\Y', respectively.
1519         * src/roff/troff/input.cpp (device_request, device_macro_request):
1520         New functions.
1521         (init_input_requests): Register them.
1523         * doc/groff.texinfo (Postprocessor Access), man/groff_diff.man,
1524         man/groff.man, NEWS: Document them.
1526 2006-03-27  Gaius Mulley  <gaius@glam.ac.uk>
1528         * src/roff/troff/input.cpp (encode_char): Emit special characters
1529         for -Thtml as `\[...]'.
1530         * src/devices/grohtml/post-html.cpp (page::add_and_encode): Updated.
1532         * doc/groff.texinfo (Postprocessor Access) <\X>: Updated.
1534 2006-03-27  Werner LEMBERG  <wl@gnu.org>
1536         * tmac/Makefile.sub (NORMALFILES, SPECIALFILES): Add various missing
1537         files.
1539 2006-03-26  Werner LEMBERG  <wl@gnu.org>
1541         * doc/groff.texinfo (Writing Macros): More documentation on
1542         end-of-macro symbol of `.de'.
1543         (Diversions): Minor addition to `.di' description.
1545         * src/devices/grops/grops.man: Some clarifications regarding
1546         insertion of PostScript snippets.
1548 2006-03-25  Michail Vidiassov  <master@iaas.msu.ru>
1550         Add rules to generate `symbolsl.afm'.
1552         * font/devps/generate/zapfdr.sed,
1553         font/devps/generate/symbolsl.awk: New files.
1555         * font/devps/generate/Makefile (symbolfont, PRINTAFM): New
1556         variables.
1557         (SS, clean): Updated.
1558         (freeeuro.afm): Use $(srcdir).
1559         (symbolsl.afm): New rule.
1560         (zapfdr.afm): Use zapfdr.sed.
1562 2006-03-22  Dwight Aplevich  <aplevich@uwaterloo.ca>
1564         * src/preproc/pic/pic.y (expr <INT>): Fix code.
1566 2006-03-22  Jörgen Grahn <jgrahn@algonet.se>
1568         * tmac/sv.tmac: Add missing translations and activate support for
1569         other macro packages.
1571 2006-03-21  Francis GUDIN  <fgudin@nerim.net>
1573         * tmac/doc-syms (Dx): New macro to identify DragonFly.
1574         (doc-str-St--ieee1275-94, doc-str-St--isoC-amd1,
1575         doc-str-St--isoC-tcor1, doc-str-St--isoC-tcor2): New standard
1576         strings.
1577         (doc-operating-system-FreeBSD-5.5, doc-operating-system-FreeBSD-7.0,
1578         doc-operating-system-NetBSD-1.6.3, doc-operating-system-NetBSD-4.0
1579         doc-operating-system-DragonFly-*): New operating system strings.
1581         * tmac/groff_mdoc.man, NEWS: Document `Dx'.
1583 2006-03-21  Werner LEMBERG  <wl@gnu.org>
1585         * src/preproc/pic/pic.y (object_spec THEN): For compatibility with
1586         both DWB pic and dpic, make
1588           right;
1589           line then down;
1591         equal to
1593           right;
1594           line right then down;
1596         instead of
1598           right;
1599           line 0 then down;
1601         * doc/pic.ms: Document this.
1603 2006-03-20  Werner LEMBERG  <wl@gnu.org>
1605         * doc/pic.ms: With permission of Eric Raymond, put it under the
1606         GPL.
1608         * NEWS: Updated.
1610 2006-03-19  Werner LEMBERG  <wl@gnu.org>
1612         * src/preproc/pic/pic.y (expr <INT>): Really return integer part.
1614         * src/preproc/pic/objects.cpp (object_spec::make_line): Handle `at'
1615         attribute in combination with `with'.  Bug reported by Jennifer
1616         Sayers <jenjen@mail.usyd.edu.au>.
1618 2006-03-19  Miklos Somogyi  <msom@netspace.net.au>
1620         * doc/groff.texinfo (Manipulating Spacing): Improve documentation of
1621         `.sp'.
1623 2006-03-18  Werner LEMBERG  <wl@gnu.org>
1625         * LICENSE: Renamed to...
1626         * LICENSES: This.  Collect all licensing information in this file.
1627         * tmac/README, src/libs/snprintf/README: Removed.
1629         * src/devices/grops/grops.man: Add section how to install fonts.
1631         * src/utils/xtotroff/xtotroff.c: Add GPL.
1633 2006-03-17  Werner LEMBERG  <wl@gnu.org>
1635         * Makefile.comm (.y.cpp): Fix #line arguments in output.
1637 2006-03-13  Werner LEMBERG  <wl@gnu.org>
1639         * src/preproc/tbl/tbl.man: Mention default length of text blocks.
1641         * tmac/doc-common (Os): Add more Darwin versions.
1642         * tmac/groff_mdoc.man: Document them.
1644         * doc/groff.texinfo (Operators in Conditionals): Mention that `c'
1645         works with \N'...' also.
1646         * man/groff_diff.man: Ditto.  Remove use of future tense where
1647         possible.
1649 2006-03-12  Michail Vidiassov  <master@iaas.msu.ru>
1651         * font/devps/generate/make-zapfdr, font/devps/symbolsl.ps,
1652         font/devps/zapfdr.ps: Add `%%EndComments' line.
1654 2006-03-10  Larry Kollar  <kollar@alltel.net>
1656         * doc/groff.texinfo (Headers and footers): Document PT, HD, and BT.
1658 2006-03-10  Werner LEMBERG  <wl@gnu.org>
1660         * src/devices/grops/ps.cpp (ps_printer::do_exec, ps_printer::do_def,
1661         ps_printer::do_mdef): Overlong lines now cause a warning message,
1662         not an error.
1664 2006-03-09  Werner LEMBERG  <wl@gnu.org>
1666         * font/devps/generate/make-zapfdr: New script for generating
1667         `zapfdr.ps'.
1669 2006-03-08  Werner LEMBERG  <wl@gnu.org>
1671         * doc/groff.css (pre): Fix `background-color' value.
1673 2006-03-04  Larry Kollar  <kollar@alltel.net>
1675         * tmac/groff_ms.man: Document PT, HD, and BT.
1677 2006-03-04  Werner LEMBERG  <wl@gnu.org>
1679         * src/roff/troff/node.cpp (make_glyph_node): Improve warning message
1680         for single-letter glyph names.
1682 2006-03-02  Werner LEMBERG  <wl@gnu.org>
1684         * tmac/sv.tmac: New file; currently holding only the Swedish strings
1685         for -mm.
1686         * tmac/hyphen.sv: New hyphenation pattern file for Swedish, taken
1687         from CTAN.
1688         * tmac/README: Updated.
1690 2006-02-27  Werner LEMBERG  <wl@gnu.org>
1692         * tmac/trans.tmac (Liec, Letdate, Letns!14): Add it (for -mm).
1693         * tmac/fr.tmac: Add French translations.
1695         * tmac/composite.tmac: Add entry for `:'.
1697 2006-02-26  Werner LEMBERG  <wl@gnu.org>
1699         * doc/Makefile.sub (HTMLEXAMPLEFILESALL): New variable.
1700         (CLEANADD): Use it.
1701         (install_html, uninstall_sub): Updated.
1703 2006-02-26  Bruno Haible  <bruno@clisp.org>
1705         Introduce Unicode fonts.
1707         * font/devhtml/DESC.proto: Mark as unicode.
1708         * font/devhtml/R.proto: Remove all charset entries that are already
1709         in glyphuni.cpp.
1710         * font/devutf8/DESC.proto: Mark as unicode.
1711         * font/devutf8/R.proto: Remove all charset entries.
1712         * src/include/font.h (font): New static field `is_unicode'.
1713         Change order of fields.
1714         * src/libs/libgroff/font.cpp: Include unicode.h.
1715         (font::font): Update for changed order of fields.
1716         (font::contains, font::get_width, font::get_height, font::get_depth,
1717         font::get_italic_correction, font::get_left_italic_correction,
1718         font::get_subscript_correction, font::get_character_type,
1719         font::get_code, font::get_special_device_encoding): Handle both the
1720         explicitly enumerated glyphs and use general code for Unicode fonts.
1721         (font::load): Make the charset section optional when the font is
1722         declared unicode.
1723         (font::load_desc): Recognize the `unicode' attribute.
1724         * src/libs/libgroff/fontfile.cpp (font::is_unicode): New variable.
1726 2006-02-26  Claudio Fontana  <claudio@gnu.org>
1728         * Makefile.in: Add comment about DESTDIR.
1730         * Makefile.sub: Add DESTDIR to install and uninstall targets
1731         to support staged installations.
1732         * Makefile.comm: Likewise.
1733         * doc/Makefile.sub: Likewise.
1734         * contrib/eqn2graph/Makefile.sub: Likewise.
1735         * contrib/grap2graph/Makefile.sub: Likewise.
1736         * contrib/pic2graph/Makefile.sub: Likewise.
1737         * src/devices/xditview/Makefile.sub: Likewise.
1738         * src/preproc/eqn/Makefile.sub: Likewise.
1739         * src/roff/grog/Makefile.sub: Likewise.
1740         * src/roff/nroff/Makefile.sub: Likewise.
1741         * src/utils/afmtodit/Makefile.sub: Likewise.
1742         * src/utils/indxbib/Makefile.sub: Likewise.
1743         * tmac/Makefile.sub: Likewise.
1745 2006-02-24  Werner LEMBERG  <wl@gnu.org>
1747         * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list): Use entry
1748         for \-.
1749         Remove commented out entries for \' and \` (there are no such glyph
1750         names).
1752         * src/libs/libgroff/uniglyph.cpp (unicode_to_glyph_list): Remove
1753         commented out entries for \' and \`.
1756         * */*: s/legal/valid/ where appropriate.
1758 2006-06-23  Werner LEMBERG  <wl@gnu.org>
1760         * font/devhtml/R.proto, font/devutf8/R.proto: Remove incorrect \'
1761         and \` entries.
1763 2006-02-22  Werner LEMBERG  <wl@gnu.org>
1765         Remove all remaining traces from the `shc' glyph.
1767         * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list),
1768         src/libs/libgroff/uniglyph.cpp (unicode_to_glyph_list): Remove
1769         entry for `shc'.
1771         * font/devlatin1/R.proto, font/devcp1046/R.proto: Replace `shc'
1772         entry with unnamed glyph.
1774         * tmac/html/tmac: Remove `shc' entry from call to `.cflags'.
1776         * src/preproc/preconv/preconv.cpp (unicode_entity): Handle U+00AD
1777         specially.
1779 2006-02-22  Bruno Haible  <bruno@clisp.org>
1781         Concretize the `glyph' datatype.
1783         * src/include/font.h (glyph): Remove class.
1784         (glyph): Renamed from struct `glyphinfo'.
1785         (glyph_to_index): New inline function.
1786         (glyph_to_name): Make extern, not inline.
1787         (glyph_to_number): Update.
1788         (font): Use `glyph *' instead of `glyph'.
1790         * src/libs/libgroff/nametoindex.cpp (charinfo): Inherit from class
1791         `glyph'.  Make `name' field public.
1792         (character_indexer, number_to_glyph, name_to_glyph): Use `glyph *'
1793         instead of `glyph'.
1794         (glyph_to_name): Renamed from `glyph::glyph_name'.
1796         * src/roff/troff/charinfo.h (charinfo): Inherit from class `glyph'.
1797         Use `glyph *' instead of `glyph'.
1799         * src/roff/troff/input.cpp (name_to_glyph, number_to_glyph): Use
1800         `glyph *' instead of `glyph'.
1801         (glyph_to_name): Renamed from `glyph::glyph_name'.
1803         * src/libs/libgroff/font.cpp: Use `glyph *' instead of `glyph',
1804         and `glyph_to_index' instead of `glyph::glyph_index'.
1806         * src/include/printer.h (printer): Use `glyph *' instead of `glyph'.
1807         * src/libs/libdriver/printer.cpp: Likewise.
1808         * src/devices/grodvi/dvi.cpp: Likewise.
1809         * src/devices/grohtml/post-html.cpp: Likewise.
1810         * src/devices/grolbp/lbp.cpp: Likewise.
1811         * src/devices/grolj4/lj4.cpp: Likewise.
1812         * src/devices/grops/ps.cpp: Likewise.
1813         * src/devices/grotty/tty.cpp: Likewise.
1815 2006-02-22  Werner LEMBERG  <wl@gnu.org>
1817         * font/devdvi/generate/tc.map: Add `sr' glyph.
1818         * font/devdvi/*TC: Regenerated.
1820         * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list): Use entry
1821         for `sqrt'.
1823 2006-02-21  Werner LEMBERG  <wl@gnu.org>
1825         * man/groff_char.man: Explain `***' marker.
1827 2006-02-17  Bruno Haible  <bruno@clisp.org>
1829         * src/libs/libgroff/nametoindex.cpp (character_indexer): Rename
1830         methods and fields from *_index to *_glyph.
1831         (character_indexer::named_char_glyph): Test for `charNNN' name
1832         here...
1833         (name_to_glyph): ... not here.
1835 2006-02-17  Bruno Haible  <bruno@clisp.org>
1837         * src/include/font.h (name_to_glyph): Renamed from
1838         font::name_to_index.
1839         (number_to_glyph): Renamed from font::number_to_index.
1840         (glyph_to_name): Renamed from font::index_to_name.
1841         (glyph_to_number): Renamed from font::index_to_number.
1842         * src/libs/libgroff/nametoindex.cpp: Likewise.
1843         * src/roff/troff/charinfo.h (charinfo::as_glyph): Renamed from
1844         charinfo::get_index.
1846         * src/roff/troff/input.cpp: All callers changed.
1847         * src/roff/troff/node.cpp: Likewise.
1848         * src/libs/libgroff/font.cpp: Likewise.
1849         * src/devices/grops/ps.cpp: Likewise.
1850         * src/devices/grohtml/post-html.cpp: Likewise.
1851         * src/libs/libdriver/printer.cpp: Likewise.
1853 2006-02-17  Werner LEMBERG  <wl@gnu.org>
1855         * src/include/ptable.h, src/include/itable.h
1856         (NEXT_PTABLE_SIZE_DEFINED): Use it to avoid multiple declaration
1857         of external symbol `next_ptable_size' (used by both header files).
1859 2006-02-15  Bruno Haible  <bruno@clisp.org>
1861         * src/include/font.h (glyphinfo): New class.
1862         (glyph): Change internal representation.
1863         Change constructor signature.
1864         New method glyph::glyph_number().
1865         (glyph::glyph, glyph glyph::undefined_glyph, glyph::glyph_index,
1866         glyph::operator==, glyph::operator!=): Update.
1867         (font::index_to_name, font::index_to_number): New functions.
1869         * src/include/itable.h: New file, based on src/include/ptable.h.
1871         * src/libs/libgroff/nametoindex.cpp: Include itable.h.
1872         (class charinfo): New class.
1873         (class character_indexer): Change table result type from `int' to
1874         `class charinfo'.
1875         Add table with integer key.
1876         (character_indexer::character_indexer): Update.
1877         (character_indexer::ascii_char_index): Update.
1878         (character_indexer::numbered_char_index): Use NULL as name, not a
1879         string starting with a space.
1880         (character_indexer::named_char_index): Update.
1881         (font::number_to_index, font::name_to_index): Remove no-op cast.
1882         (glyph::glyph_name): New method.
1883         * src/roff/troff/charinfo.h (class charinfo): Inherit from class
1884         glyphinfo.
1885         (NUMBERED): Remove flag bit.
1886         (charinfo::numbered, charinfo::get_index): Update.
1888         * src/roff/troff/input.cpp (charinfo::charinfo): Update.
1889         (charinfo::set_number, charinfo::get_number): Update.
1890         (glyph::glyph_name): New method.
1892 2006-02-15  Werner LEMBERG  <wl@gnu.org>
1894         * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list): Fix
1895         entries for `>>', `<<', `*f', and `+f'.  Reported by Bruno.
1897 2006-02-13  Werner LEMBERG  <wl@gnu.org>
1899         * font/devps/prologue.ps (RE): Check `UniqueID' also, similar to
1900         dvips.
1902 2006-02-11  Werner LEMBERG  <wl@gnu.org>
1904         * src/include/font.h: s/glyph_t/glyph/.
1905         Update all callers.
1907         * src/devices/grotty/tty.cpp: s/glyph/tty_glyph/.
1908         s/output_character_t/output_character/.
1910 2006-02-11  Bruno Haible  <bruno@clisp.org>
1912         New accessor method glyph_t::glyph_name().
1914         * src/include/ptable.h (declare_ptable): Add a return value to the
1915         `define' method, and declare a `lookupassoc' method.
1916         (implement_ptable): Return the stored key in `define'.  Implement
1917         lookupassoc.
1918         * src/include/font.h (glyph_t): Add `name' field.  Add an argument
1919         to the constructor.
1920         (glyph_t::glyph_name): New method.
1922         * src/libs/libgroff/nametoindex.cpp (character_indexer): Change
1923         return type of methods and field member type to glyph_t.
1924         (character_indexer::character_indexer): Update.
1925         (character_indexer::ascii_char_index): Allocate a name for the
1926         glyph.
1927         Return a glyph_t with name.
1928         (character_indexer::numbered_char_index): Return a glyph_t without a
1929         name.
1930         (character_indexer::named_char_index): Return a glyph_t with a name.
1931         (font::number_to_index, font::name_to_index): Update.
1933         * src/roff/troff/input.cpp (charinfo::charinfo): Use the symbol as
1934         the glyph's name.
1936 2006-02-11  Bruno Haible  <bruno@clisp.org>
1938         * src/devices/grotty/tty.cpp (output_character_t): New type.
1939         (tty_printer::make_bold, tty_printer::add_char,
1940         tty_printer::put_char): Change argument type to output_character_t.
1941         (crossings): Change element type to output_character_t.
1943 2006-02-11  Bruno Haible  <bruno@clisp.org>
1945         Make the glyph data type abstract.
1947         * src/include/font.h (glyph_t): New class.
1948         (name_to_index, number_to_index): Change return type to glyph_t.
1949         (font::contains, font::get_width, font::get_height, font::get_depth,
1950         font::get_character_type, font::get_kern, font::get_skew,
1951         font::get_italic_correction, font::get_left_italic_correction,
1952         font::get_subscript_correction, font::get_code,
1953         font::get_special_device_encoding, font::add_entry,
1954         font::copy_entry, font::add_kern, font::hash_kern): Change argument
1955         type to glyph_t.
1957         * src/libs/libgroff/font.cpp (font_kern_list): Change members
1958         type and constructor argument types to glyph_t.
1959         (font::contains, font::get_width, font::get_height, font::get_depth,
1960         font::get_character_type, font::get_kern, font::get_skew,
1961         font::get_italic_correction, font::get_left_italic_correction,
1962         font::get_subscript_correction, font::get_code,
1963         font::get_special_device_encoding, font::add_entry,
1964         font::copy_entry, font::add_kern, font::hash_kern): Change argument
1965         type to glyph_t.
1966         (font::load): Use glyph_t variables.
1968         * src/libs/libgroff/nametoindex.cpp (name_to_index,
1969         number_to_index): Change return type to glyph_t.
1971         * src/roff/troff/charinfo.h (charinfo::index): Change type to
1972         glyph_t.
1973         (charinfo::get_index): Change return type to glyph_t.
1975         * src/roff/troff/env.cpp: Include font.h.
1977         * src/roff/troff/node.cpp: Include font.h before charinfo.h.
1979         * src/roff/troff/input.cpp: Include font.h before charinfo.h.
1980         (charinfo::charinfo): Update.
1981         (name_to_index, number_to_index): Change return type to glyph_t.
1983         * src/include/printer.h (printer::set_char_and_width): Change return
1984         type to glyph_t.
1986         * src/libs/libdriver/printer.cpp (printer::set_char_and_width):
1987         Change return type to glyph_t.
1989         * src/devices/grodvi/dvi.cpp (dvi_printer::set_char): Change
1990         argument type to glyph_t.
1992         * src/devices/grohtml/post-html.cpp (page::add_and_encode): Update.
1993         (html_printer::space_glyph): Renamed from space_char_index.
1994         (html_printer::add_to_sbuf, html_printer::sbuf_continuation,
1995         html_printer::overstrike, html_printer::set_char): Change argument
1996         type to glyph_t.
1997         (html_printer::set_char_and_width): Change return type to glyph_t.
1999         * src/devices/grolbp/lbp.cpp (lbp_printer::set_char): Change
2000         argument type to glyph_t.
2002         * src/devices/grolj4/lj4.cpp (lj4_printer::set_char): Change
2003         argument type to glyph_t.
2005         * src/devices/grops/ps.cpp (ps_printer::space_glyph): Renamed from
2006         space_char_index.
2007         (ps_printer::set_subencoding, ps_printer::set_char): Change argument
2008         type to glyph_t.
2010         * src/devices/grotty/tty.cpp (tty_printer::set_char): Change
2011         argument type to glyph_t.
2013 2006-02-11  Bruno Haible  <bruno@clisp.org>
2015         * src/roff/troff/input.cpp (font::name_to_index): Never return a
2016         negative value.
2018         * src/libs/libgroff/font.cpp (font::load): Remove failure tests for
2019         font::name_to_index.
2021 2006-02-10  Werner LEMBERG  <wl@gnu.org>
2023         * doc/groff.texinfo (Assigning Formats): Number registers are always
2024         interpolated.
2025         Apply some rephrasing, contributed by Michael Burt.
2027 2006-02-07  Werner LEMBERG  <wl@gnu.org>
2029         * tmac/fr.tmac <ms>: Set `HY' register.
2031 2006-02-07  Werner LEMBERG  <wl@gnu.org>
2033         Add framework for simple adaptation of the main macro packages (mm,
2034         me, ms, mom) to different locales.  In particular, add support for
2035         French.  For activation, simply use `-mfr' as the last macro
2036         package.  This feature has been contributed by Fabrice Ménard
2037         <menard.fabrice@wanadoo.fr>.
2039         * tmac/fr.tmac, tmac/trans.tmac, tmac/hyphen.fr, tmac/LOCALIZATION:
2040         New files.
2041         * tmac/README: Mention hyphen.fr.
2042         * man/groff_tmac.man: Mention fr.tmac.
2043         * NEWS: Updated.
2045 2006-01-27  Werner LEMBERG  <wl@gnu.org>
2047         * man/groff_font.man: Updated documentation of `entity_name' field.
2048         Avoid future tense.
2050 2006-01-27  Bruno Haible  <bruno@clisp.org>
2052         * font/devhtml/R.proto: Remove the entity names from the font's
2053         special_encoding_encoding column.
2054         * src/devices/grohtml/post-html.cpp (get_html_entity): New function,
2055         handling the entity names here.
2056         (get_html_translation): Use it.  Change return type to `const
2057         char *'.
2058         (page::add_and_encode): Update, removing a useless cast.
2060 2006-01-26  Werner LEMBERG  <wl@gnu.org>
2062         This change is based on a patch by Bruno Haible <bruno@clisp.org>.
2064         * src/include/device.h: Add comments.
2065         * src/include/font.h: Add comments.
2066         * src/include/unicode.h: Likewise.
2067         * src/include/ptable.h, src/libs/libgroff/ptable.cpp: Likewise.
2069 2006-01-26  Keith Marshall  <keith.d.marshall@ntlworld.com>
2071         Suppress `.st' request emission by `grn'.
2073         * src/preproc/grn/main.cpp (USE_ST_REQUEST): New macro.
2074         (conv): Use it.
2076 2006-01-22  Werner LEMBERG  <wl@gnu.org>
2078         * install-sh: New version; taken from texinfo CVS.
2080 2006-01-21  Werner LEMBERG  <wl@gnu.org>
2082         * src/preproc/preconv/preconv.cpp (main): Set program_name.  Bug
2083         reported by Alexander E. Patrakov <patrakov@ums.usu.ru>.
2085 2006-01-19  Bruno Haible  <bruno@clisp.org>
2087         Let `make -k install' install more files.
2089         * Makefile.in (MAKE_K_FLAG): New variable.  Use it everywhere where
2090         $(MAKE) and $(MDEFINES) are used.
2091         (CPROGDIRS): Remove $(XPROGDIRS).  Treat $(XPROGDIRS) like
2092         $(CPROGDIRS) everywhere.
2093         ($(DEVDIRS) $(XDEVDIRS) $(OTHERDEVDIRS) $(TTYDEVDIRS)): Don't depend
2094         on $(XPROGDIRS).
2095         ($(OTHERDIRS)): Likewise.
2098         * src/devices/grohtml/post-html.cpp (get_html_translation): Remove
2099         failure test for font::name_to_index -- it can never fail.
2101 2006-01-19  Werner LEMBERG  <wl@gnu.org>
2103         * src/devices/grops/grops.man: Fix section on creating EPS files.
2104         Don't use future time in manual.
2105         Other minor fixes.
2107 2006-01-15  Gaius Mulley  <gaius@glam.ac.uk>
2109         * tmac/www.tmac: New macro LINKSTYLE which allows users to set
2110         various typographical URL attributes for non-HTML devices.
2112         * tmac/groff_www.man: Document LINKSTYLE.
2114 2006-01-11  Werner LEMBERG  <wl@gnu.org>
2116         * configure.ac: Test for getc_unlocked (needed for localcharset).
2117         * configure, src/include/config.hin: Regenerated.
2119         * src/libs/libgroff/Makefile.sub (EXTRA_CFLAGS): Define
2120         ENABLE_RELOCATABLE.
2122         * src/libs/libgroff/relocatable.h: New dummy header file for
2123         localcharset.c.
2125         * src/libs/libgroff/localcharset.c: Updated to (unchanged) CVS
2126         gnulib version.
2128 2006-01-10  Bruno Haible  <bruno@clisp.org>
2130         Work around unportability of nl_langinfo(CODESET).
2132         * m4/glibc21.m4: New file, from gnulib.
2133         * Makefile.sub (M4MACROS): Add m4/glibc21.m4.
2134         * configure.ac: Also test for stddef.h, and invoke jm_GLIBC21.
2135         * Makefile.in (HOST, GLIBC21): New variables.
2136         (MDEFINES): Pass them to subdirectories.
2137         * src/include/relocate.h (relocatep): Define with C linkage.
2138         * src/include/localcharset.h: New file, from gnulib.
2139         * src/libs/libgroff/localcharset.c: New file, from gnulib with a
2140         modification for relocate().
2141         * src/libs/libgroff/config.charset: New file, from gnulib.
2142         * src/libs/libgroff/ref-add.sin: New file, from gnulib.
2143         * src/libs/libgroff/ref-del.sin: New file, from gnulib.
2144         * src/libs/libgroff/Makefile.sub (EXTRA_CFLAGS): Also define LIBDIR.
2145         (OBJS): Add localcharset.o.
2146         (CSRCS): Add localcharset.c.
2147         (all): Add dependencies to charset.alias, ref-add.sed, ref-del.sed.
2148         (charset.alias): New rule.
2149         (PACKAGE): New variable.
2150         (ref-add.sed, ref-del.sed): New rules.
2151         (MKINSTALLDIRS): New variable.
2152         (install_data): Depend on install_charset_data.
2153         (install_charset_data): New rule for creating or updating
2154         charset.alias.
2155         (uninstall_sub): Depend on uninstall_charset_data.
2156         (uninstall_charset_data): New rule for uninstalling or updating
2157         charset.alias.
2158         * src/preproc/preconv/preconv.cpp: Include localcharset.h instead
2159         of <langinfo.h>.
2160         (main): Initialize default_encoding from locale_charset() instead of
2161         nl_langinfo(CODESET).
2163         * aclocal.m4, configure, src/include/config.hin: Regenerated.
2165 2006-01-10  Werner LEMBERG  <wl@gnu.org>
2167         * src/preproc/preconv/preconv.cpp (conversion_iconv): Use
2168         ICONV_CONST in call to iconv.  Reported by Robert Goulding.
2170 2006-01-07  Werner LEMBERG  <wl@gnu.org>
2172         * font/devps/generate/freeeuro.sfd: Run auto-hinter with recent
2173         fontforge version.
2174         Bump font version to 001.001.
2176         * font/devps/generate/Makefile (freeeuro.afm, freeeuro.pfa):
2177         Call fontforge, not pfaedit.
2179         * font/devps/freeeuro.afm, font/devps/freeeuro.pfa: Regenerated.
2181 2006-01-05  Ruslan Ermilov  <ru@FreeBSD.org>
2183         * tmac/doc-common: Add new FreeBSD and NetBSD versions.
2184         * tmac/groff_mdoc.man: Updated.
2186 2006-01-05  Werner LEMBERG  <wl@gnu.org>
2188         * src/preproc/preconv/preconv.cpp: s/debug/debug_flag/.
2189         (raw_flag): New global variable.
2190         (do_file): Use .lf to set file name (if `raw_flag' isn't set).
2191         Don't pass BOM to `conversion_utf8'.
2192         (usage): Updated.
2193         (main): Handle `-r' command line switch to set `raw_flag'.
2194         (get_BOM): Fix encodings in `BOM_table'.
2196         * src/preproc/preconv/preconv.man: New file.  Not complete yet.
2197         * src/preproc/proconv/Makefile.sub (MAN1): New variable.
2199 2006-01-04  Werner LEMBERG  <wl@gnu.org>
2201         * src/preproc/preconv/preconv.cpp (emacs_to_mime): As suggested by
2202         Bruno, comment out most encodings to support only a small set of
2203         coding tags, thus reducing potential problems with legacy encodings
2204         and character sets in the future.
2205         Add many XEmacs coding tags (now commented out).
2206         Add `cp1047'.
2207         (check_encoding_tag): Renamed to...
2208         (check_coding_tag): This.
2209         (get_BOM): Return encoding as specified by BOM.
2210         Test for UTF32-LE too.
2211         (do_file): Don't check for coding tag if a BOM has been found.
2213 2006-01-03  Bruno Haible  <bruno@clisp.org>
2215         * m4/groff.m4: Renamed from aclocal.m4.
2216         * m4/codeset.m4: New file, from gnulib.
2217         * m4/iconv.m4: New file, from gnulib.
2218         * m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4: New files, from
2219         gnulib.
2220         * config.rpath: New file, from gnulib.
2221         * config.guess, config.sub: New files, from gnulib.
2222         * Makefile.sub (M4MACROS): New variable.
2223         (configure): Fix typo.
2224         (aclocal.m4): New rule.
2225         (stamp-h.in): Depend on aclocal.m4.
2226         * configure.ac: Invoke AM_ICONV and AM_LANGINFO_CODESET.
2227         * Makefile.in (LIBICONV): New variable.
2228         (MDEFINES): Pass it to recursive makes.
2229         * src/preproc/preconv/preconv.cpp: Use HAVE_LANGINFO_CODESET and
2230         HAVE_ICONV instead of I18N macro.
2231         * src/preproc/preconv/Makefile.sub (EXTRA_LDFLAGS): New variable.
2233         * aclocal.m4, configure, src/include/config.hin: (Re)generated.
2235 2006-01-03  Werner LEMBERG  <wl@gnu.org>
2237         * doc/Makefile.in (webpage.html): Simplify.
2238         * doc/Makefile.sub (webpage.html): Synchronize with doc/Makefile.in.
2239         * doc/webpage.ms, tmac/groff_www.man, tmac/www.tmac: Minor updates.
2241 2006-01-01  Werner LEMBERG  <wl@gnu.org>
2243         * tmac/doc-common (Os): Add some Darwin versions.
2244         * tmac/groff_mdoc.man: Document them.
2246 2006-01-01  Bruno Haible  <bruno@clisp.org>
2248         * src/preproc/preconv/preconv.cpp (emacs_to_mime): Various
2249         corrections:
2250           . Don't map ascii to latin-1.
2251           . Don't use IBMxxx encodings but cpxxx for portability.
2252           . Map cp932, cp936, cp949, cp950 to itself.
2253         (emacs2mime): Protect calls to strcasecmp.
2254         (conversion_iconv): Add missing call to iconv_close.
2255         (do_file): Emit error message in case of unsupported encoding.
2257 2005-12-31  Werner LEMBERG  <wl@gnu.org>
2259         Integrate preconv into the groff binary.  Changes based on a patch
2260         from Michail Vidiassov.
2262         * src/roff/groff/pipeline.h (MAX_COMMANDS): Increase by 1.
2264         * src/roff/groff/groff.cpp (PRECONV_INDEX): New macro.
2265         (SOELIM_INDEX): Updated.
2266         (help, synopsis): Updated.
2267         (main): Add command line options `-k' and `-K enc' to select
2268         encoding.
2269         Add support for GROFF_ENCODING environment variable.
2271         * src/roff/groff/groff.man: Updated and revised.
2274         Start with autoconf support for preconv.
2276         * configure.ac: Call AC_C_BIGENDIAN.
2277         * configure, src/include/config.hin: Regenerated.
2279 2005-12-30  Werner LEMBERG  <wl@gnu.org>
2281         New preprocessor `preconv' to convert input encodings to something
2282         groff can understand.  Not yet integrated within groff.  Proper
2283         autoconf stuff is missing too.
2285         Tomohiro Kubota has written a first draft of this program, and some
2286         ideas have been reused (while almost no code has been taken
2287         actually).
2289         * src/preproc/preconv/preconv.cpp. src/preproc/preconv/Makefile.sub:
2290         New files.
2292         * MANIFEST, Makefile.in (CCPROGDIRS), test-groff.in
2293         (GROFF_BIN_PATH): Add preconv.
2295 2005-12-12  Werner LEMBERG  <wl@gnu.org>
2297         * aclocal.m4 (GROFF_MAKEINFO): Fix regexps to be POSIX conformant.
2298         In particular, don't use `\+' since it is a GNU sed extension.
2300         * configure: Regenerated.
2302 2005-12-09  Werner LEMBERG  <wl@gnu.org>
2304         * src/libs/libgroff/make-uniuni: New script to generate uniuni.cpp. 
2306         * src/libs/libgroff/uniuni.cpp: Regenerated, using data from Unicode
2307         4.1.0.
2310         * src/utils/afmtodit/make-afmtodit-tables: New script to generate
2311         afmtodit.tables.
2313         * src/utils/afmtodit/afmtodit.tables: New file, representing Unicode
2314         4.1.0 data.
2316         * src/utils/afmtodit/afmtodit.pl (%unicode_decomposed,
2317         %AGL_to_unicode): Removed.  Replace it with a tag.
2319         * src/utils/afmtodit/Makefile.sub (afmtodit): Adjust sed expression
2320         to replace tag with actual file contents.
2322 2005-12-08  Werner LEMBERG  <wl@gnu.org>
2324         The change 2005-06-20 can indeed cause problems, so we follow the
2325         advice by using marks.
2327         * font/devps/prologue.ps (PBEGIN): Use `mark'.
2328         (PEND): Use `cleartomark'.
2330 2005-12-07  Michail Vidiassov  <master@iaas.msu.ru>
2332         * src/utils/afmtodit.pl: Fix kerning output to avoid warnings for
2333         glyphs which have kern values but aren't handled (glyph variants,
2334         for example).
2336 2005-12-02  Werner LEMBERG  <wl@gnu.org>
2338         * src/devices/grops/ps.cpp (ps_printer::get_subfont): Use correct
2339         subfont index.  Reported by Michail Vidiassov <master@iaas.msu.ru>.
2341 2005-11-28  Gaius Mulley  <gaius@glam.ac.uk>
2343         * doc/Makefile.in: Separate rule for webpage.html so that extra
2344         command line options can be passed to grohtml.
2345         * doc/groff.css: Change all margins to 0%.
2346         * doc/webpage.ms: Now use new macros ALN, LNS, and LNE so that left
2347         navigation is exploited.  Also update webpage to contain new
2348         sections on licenses, mailing lists, cvs/ftp access, groff
2349         dependencies, and bug reports.
2350         * tmac/groff_www.man: Document the new macros ALN, LNS, and LNE.
2351         * tmac/www.tmac: Implement the new macros ALN, LNS, and LNE.
2352         
2353 2005-11-25  Gaius Mulley  <gaius@glam.ac.uk>
2355         * src/devices/grohtml/post-html.cpp
2356         (html_printer::do_file_components): Add fputs calls to emit the
2357         head contents and shut down the head tag whenever a new file
2358         component is generated.
2360 2005-11-22  Gaius Mulley  <gaius@glam.ac.uk>
2362         * src/devices/grohtml/post-html.cpp (html_printer::flush_page): Add
2363         call to flush_text to flush any outstanding html tags on the
2364         paragraph stack.
2366 2005-11-18  Werner LEMBERG  <wl@gnu.org>
2368         * aclocal.m4 (GROFF_MAKEINFO): Use `groff.info' in tests.
2369         Announce makeinfo version.
2370         * configure: Regenerated.
2372 2005-11-18  Mike Frysinger <vapier@gentoo.org>
2374         * Makefile.in: Declare proper dependencies between make targets.
2376         * doc/Makefile.in: Rename groff info page to `groff.info'.
2377         * doc/Makefile.sub: Likewise.
2378         * doc/groff.texinfo: Likewise.
2380 2005-11-17  Peter O'Gorman  <mlists@thewrittenword.com>
2382         * src/utils/pfbtops/pfbtops.c, src/utils/xtotroff/xtotroff.c: Move
2383         definition of __GETOPT_PREFIX to the beginning of file to ensure
2384         that it is defined even on platforms where getopt.h is already
2385         included by other header files.
2387 2005-11-10  Gaius Mulley  <gaius@glam.ac.uk>
2389         * src/devices/grohtml/post-html.cpp (html_printer::do_heading):
2390         Reset font to NULL to ensure that a font block is recreated during
2391         the next paragraph.
2393 2005-11-04  Werner LEMBERG  <wl@gnu.org>
2395         * aclocal.m4 (GROFF_MAKEINFO): Fix sed expression.
2396         * configure: Regenerated.
2398 2005-10-27  Werner LEMBERG  <wl@gnu.org>
2400         * aclocal.m4 (GROFF_MAKEINFO): New function for checking whether
2401         makeinfo 4.8 or newer is available.
2402         * configure.ac: Call GROFF_MAKEINFO.
2403         * configure: Regenerated.
2405         * Makefile.in (MAKEINFO): Use autoconf variable.
2406         (MDEFINES): Add MAKEINFO.
2408         * doc/Makefile.in (MAKEINFO): Use autoconf variable.
2409         * doc/Makefile.sub (MAKEINFO): Remove.
2411 2005-10-26  Werner LEMBERG  <wl@gnu.org>
2413         * REVISION: Set to 3.
2415 2005-10-17  Werner LEMBERG  <wl@gnu.org>
2417         Mention $MANPAGER variable used with some `man' systems.
2419         * doc/webpage.ms, src/devices/grotty/grotty.man, NEWS: Updated.
2421 2005-09-13  Werner LEMBERG  <wl@gnu.org>
2423         * tmac/hyphenex.us: New version (`ushyphex.tex' from ftp.dante.de).
2425 2005-09-04  Werner LEMBERG  <wl@gnu.org>
2427 Version 1.19.2 released
2428 =======================
2430         * tmac/groff_ms.man, doc/groff.texinfo: Synchronize.
2432         * doc/webpage.ms: Updated.
2434         * install-sh, mkinstalldirs: New versions; taken from texinfo CVS.
2436 2005-09-04  Jörgen Grahn <jgrahn@algonet.se>
2438         * tmac/groff_ms.man: Document `PO' better.
2440 2005-09-03  Werner LEMBERG  <wl@gnu.org>
2442         * NEWS: Document grotty changes.
2444 2005-09-01  Keith Marshall  <keith.d.marshall@ntlworld.com>
2446         Backward compatibility support for `man' program.
2448         * tmac/an-old.tmac (LL): Initialize it to respect prior LL register
2449         assignment, prior `.ll' request and then package defaults, in this
2450         specified order of decreasing priority.
2452         * tmac/groff_man.man, doc/groff.texinfo (Man options): Document
2453         altered `LL' register initialization priorities.
2455 2005-08-29  Gary W. Swearingen  <garys@opusnet.com>
2457         * tmac/groff_mdoc.man: Go into more details how the `AUTHORS'
2458         section should look like.
2460 2005-08-29  Werner LEMBERG  <wl@gnu.org>
2462         * tmac/groff_mdoc.man: The month's name in a call to .Dd shouldn't
2463         be abbreviated.
2465 2005-08-27  Bernd Warken
2467         * tmac/groff_man.man: Add man(7) too SEE ALSO and more minor
2468         fixes.
2470 2005-08-11  Bernd Warken
2472         * tmac/www.tmac (URL, MTO): Handle empty \\$1 better.
2474 2005-08-09  Bernd Warken
2476         * tmac/www.tmac (URL, MTO): Use bold series if color support is
2477         deactivated.
2479 2005-08-02  Bernd Warken
2481         * doc/Makefile.sub (uninstall_sub): Use --remove, not --delete
2482         as argument to $(INSTALL_INFO).  The latter isn't portable.
2483         Remove $(HTMLEXAMPLEFILES) too.
2485         * Makefile.in (uninstall_dirs): Remove $(datadir)/doc/groff and
2486         $(datadir)/doc too.
2487         Suppress warning messages and return always true.
2489         * tmac/Makefile.sub (uninstall_sub): Remove www.tmac too.
2491 2005-07-02  Bernd Warken
2493         * src/devices/xditview/gxditview.man: Change many `.I' to `.B'.
2494         * man/groff_out.man: More markup and minor improvements.
2495         * src/roff/groff/groff.man: Minor improvements.
2497 2005-06-28  Werner LEMBERG  <wl@gnu.org>
2499         * ChangeLog: Split off older entries into...
2500         * ChangeLog.115 ChangeLog.116, ChangeLog.117, ChangeLog.118: New
2501         files.
2503 2005-06-26  Bernd Warken
2505         * src/devices/xditview/gxditview.man: More minor fixes.
2507 2005-06-24  Werner LEMBERG  <wl@gnu.org>
2509         * src/preproc/pic/troff.cpp (troff_output::set_fill,
2510         troff_output::set_color, troff_output::reset_color): Use .bcolor and
2511         .fcolor instead of \m and \M, respectively.
2513 2005-06-23  Bernd Warken
2515         * src/devices/xditview/gxditview.man: More minor fixes.
2516         * README: Formatting issues.
2517         Mention some problems with Debian.
2519 2005-06-23  Bernd Warken
2521         * src/devices/xditview/gxditview.man: Revised and improved.
2523 2005-06-22  Werner LEMBERG  <wl@gnu.org>
2525         Another round in fixing getopt problems.  Hopefully the last one!
2526         This time we use the getopt stuff from gnulib and define a prefix
2527         unconditionally so that there are no collisions with any other
2528         getopt implementations.  This is a slight waste of space in case
2529         we already use a GNU getopt implementation, but on
2530         the other hand it really simplifies life.
2532         * src/include/getopt.h: Use gnulib version.
2534         * src/include/getopt_int.h: Use gnulib version.
2536         * src/include/groff-getopt.h: Removed.  Obsolete now.
2538         * src/include/lib.h: Regarding getopt, don't handle any platform
2539         specially; just include getopt.h.
2540         (__GETOPT_PREFIX): Define (before getopt.h).
2542         * src/include/Makefile.sub (HDRS): Updated.
2544         * src/libs/libgroff/getopt1.c, src/libs/libgroff/getopt.c: Use
2545         gnulib version.
2547         * src/libs/libgroff/Makefile.sub (EXTRA_CFLAGS): Set
2548         __GETOPT_PREFIX.
2550         * src/utils/pfbtops/pfbtops.c, src/utils/xtotroff/xtotroff.c
2551         (__GETOPT_PREFIX): Define (before getopt.h).
2553 2005-06-21  Werner LEMBERG  <wl@gnu.org>
2555         * src/include/lib.h: Provide a fix for Mac OS X to not include
2556         groff-getopt.h.
2558 2005-06-20  Denis M. Wilson  <dmw@oxytropis.plus.com>
2560         * font/devps/prologue.ps (EP): Dont' use `bind'.  Reason: Using
2561         `bind' to define a procedure which contains `showpage' means that an
2562         invocation of `showpage' may execute wrongly (the exact effect
2563         depending on the interpreter).  Not usually a problem except under
2564         transformations, such as combining pages.
2565         (PEND): Don't call `clear'.  Reason: Using `clear' in the definition
2566         of /PEND means that stack underflow will occur if the stack is
2567         deliberately non-empty before document inclusion.  If included
2568         files are found to be generally badly behaved, we could replace the
2569         `clear' with `mark' in /PBEGIN and `cleartomark' in /PEND (I've
2570         never found this necessary).
2572 2005-06-20  Jörgen Grahn  <jgrahn@algonet.se>
2574         * src/preproc/soelim/soelim.cpp (do_file): Append trailing zero
2575         earlier to get correct error message.
2577 2005-06-16  Bernd Warken
2578         * src/roff/nroff/nroff.sh: Add support for iso-8859-15.
2580 2005-06-15  Werner LEMBERG  <wl@gnu.org>
2582         Another try to update getopt files.  This time we add a dummy
2583         gettext.h file to satisfy the dependency.
2585         * src/include/getopt.h, src/libs/libgroff/getopt.c,
2586         src/libs/libgroff/getopt1.c: Updated from GNU libc CVS.
2588         * src/include/getopt_int.h: New file (from GNU libc CVS).
2590         * src/include/gettext.h: Dummy file which just defines a gettext()
2591         macro.
2593         * src/include/groff-getopt.h: Updated.
2595         * src/include/Makefile.sub (HDRS): Add getopt_int.h and gettext.h.
2598         * src/libs/libdriver/input.cpp (IntArray): Remove superfluous
2599         `const' keywords in return value.
2601         * src/preproc/html/pushback.cpp (pushBackBuffer::~pushBackBuffer):
2602         Remove redundant variable `old'.
2603         (pushBackBuffer::skipToNewline): Remove redundant variable `ch'.
2605         * src/preproc/tbl/main.cpp (process_table): Remove redundant
2606         variable `c'.
2609         Fix more friend name injection problems since modern C++ compilers
2610         fail otherwise.  We simply provide (global) declarations for all
2611         functions declared as friends.  This is not really necessary but
2612         doesn't harm.
2614         * src/preproc/eqn/lex.cpp: Provide declarations for get_char,
2615         peek_char, and get_location.
2617         * src/preproc/refer/ref.h: Provide declarations for
2618         compare_reference, same_reference, same_year, same_date,
2619         same_author_last_name, and same_author_name.
2621         * src/roff/troff/div.h: Provide declarations for do_divert and
2622         page_offset.
2624         * src/roff/troff/env.h: Provide declarations for title_length,
2625         space_size, fill, no_fill, adjust, no_adjust, center, right_justify,
2626         vertical_spacing, post_vertical_spacing, line_spacing, line_length,
2627         indent, temporary_indent, do_underline, do_input_trap, set_tabs,
2628         margin_character, no_number, number_lines, leader_character,
2629         tab_character, hyphenate_request, no_hyphenate,
2630         hyphen_line_max_request, hyphenation_space_request,
2631         hyphenation_margin_request, line_width, tabs_save, tabs_restore,
2632         line_tabs_request, widow_control_request, and do_divert.
2634         * src/roff/troff/input.cpp: Provide declaration for chop_macro.
2636         * src/roff/troff/node.cpp: Provide declarations for class
2637         tfont_spec.
2638         Provide declaration for make_tfont.
2640 2005-05-29  Werner LEMBERG  <wl@gnu.org>
2642         * doc/fdl.texi: Updated to version 1.2.  Reported by Bernd Warken.
2644 2005-05-28  Werner LEMBERG  <wl@gnu.org>
2646         * src/devices/grolbp/lbp.cpp, src/devices/grolbp/lbp.h: Remove
2647         redundant semicolons.
2649         * src/preproc/eqn/Makefile.sub, src/preproc/html/Makefile.sub,
2650         src/preproc/soelim/Makefile.sub, src/preproc/tbl/Makefile.sub:
2651         Define `MLIB'.  Some compilers need this for linking with libgroff.
2653 2005-05-27  Werner LEMBERG  <wl@gnu.org>
2655         * MANIFEST, README, doc/webpage.ms: Updated.
2657 2005-05-26  Werner LEMBERG  <wl@gnu.org>
2659         * All affected files: Update postal address of FSF.
2661 2005-05-25  Keith Marshall  <keith.d.marshall@ntlworld.com>
2662             Bernd Warken
2664         * README: More fixes.
2666         * README.CVS: Removed.  Its contents is now part of the README file.
2668 2005-05-21  Werner LEMBERG  <wl@gnu.org>
2670         * README: Updated.  Based on a patch from Bernd Warken.
2672 2005-05-16  Keith Marshall  <keith.d.marshall@ntlworld.com>
2674         Miscellaneous script portability enhancements.
2676         * aclocal.m4: (GROFF_CSH_HACK): Add space in shebang prototype for
2677         generated conftest.sh script, conforming to portability
2678         recommendation in autoconf docs.
2679         * configure: Likewise, for code generated by GROFF_CSH_HACK.
2680         * contrib/eqn2graph/eqn2graph.sh: Add space in shebang, conforming
2681         to portability recommendation in autoconf docs.
2682         * contrib/grap2graph/grap2graph.sh: Likewise.
2683         * contrib/pic2graph/pic2graph.sh: Likewise.
2684         * font/devps/generate/afmname: Likewise.
2685         * src/devices/xditview/ad2c: Likewise.
2686         * src/preproc/eqn/neqn.sh: Likewise.
2687         * src/roff/grog/grog.pl: Likewise.
2688         * src/roff/grog/grog.sh: Likewise.
2689         * src/roff/nroff/nroff.sh: Likewise.
2690         * PROBLEMS: Likewise, in embedded script examples.
2692 2005-05-16  Keith Marshall  <keith.d.marshall@ntlworld.com>
2694         Improve portability of `pdfroff' shell script.
2696         * arch/misc/shdeps.sh: Add space in shebang, conforming to
2697         portability guidelines in `autoconf' docs.
2698         (PATH_SEARCH_SETUP): New substitution; emits PATH_SEPARATOR
2699         initialization code.  Used by contrib/pdfmark/pdfroff.sh's
2700         `searchpath' function.
2702 2005-05-14  Werner LEMBERG  <wl@gnu.org>
2704         * contrib/pic2graph/pic2graph.sh, contrib/graph2graph.sh,
2705         contrib/eqn2graph.sh: Add option `-trim' to `convert' which is
2706         needed for newer ImageMagick versions.
2708 2005-05-07  Werner LEMBERG  <wl@gnu.org>
2710         * src/preproc/refer/refer.man: Many small typographic fixes.
2712 2005-05-06  Jeff Conrad  <jeff_conrad@msn.com>
2714         * src/devices/grohtml/post-html.cpp (assert_state::~assert_state):
2715         Use `char *' cast for a_delete.
2717 2005-05-03  Werner LEMBERG  <wl@gnu.org>
2719         * src/libs/libgroff/maxpathname.cpp: Include stdlib.h.
2720         src/libs/libgroff/relocate.cpp: Use path_name_max everywhere.
2722 2005-05-03  Jeff Conrad  <jeff_conrad@msn.com>
2724         * src/devices/grohtml/post-html.cpp: Use casts to `char *' if using
2725         `a_delete' for `const char *'.
2727 2005-05-03  Werner LEMBERG  <wl@gnu.org>
2729         * src/devices/grohtml/post-html.cpp,
2730         src/devices/grohtml/html-table.cpp,
2731         src/devices/grohtml/html-text.cpp, src/devices/grohtml/output.cpp:
2732         Replace malloc/free with new/delete/a_delete.
2734         * src/devices/grolbp/lbp.h: Remove superfluous semicolons which
2735         are prohibited with ANSI C++.
2736         (lbpprintf, vdmprintf): Remove useless `inline' keyword (since the
2737         function has a variable number of arguments).
2739         * src/preproc/grn/main.cpp (doinput): Change return type to `int'.
2740         Simplify function and update all callers.
2742 2005-05-02  Werner LEMBERG  <wl@gnu.org>
2744         Undo getopt changes from 2005-04-30.  We don't want a dependency
2745         on gettext.
2747         * src/include/getopt_int.h: Removed.
2749         * src/include/getopt.h, src/include/groff-getopt.h,
2750         src/include/Makefile.sub, src/libs/libgroff/getopt.c,
2751         src/libs/libgroff/getopt1.c: Revert to previous version.
2754         * src/include/nonposix.h (access) [_MSC_VER]: New macro.
2756         * src/include/posix.h (F_OK): Define conditionally.
2758         * src/devices/grotty/tty.cpp (tty_printer::make_underline): Use
2759         different variable name in second `for' loop to avoid MSVC compiler
2760         problem.
2762 2005-04-30  Werner LEMBERG  <wl@gnu.org>
2764         AC_TYPE_SIGNAL from current autoconf can fail if CC=g++.
2766         * aclocal.m4 (GROFF_TYPE_SIGNAL): New function.
2767         * configure.ac: Use GROFF_TYPE_SIGNAL, not AC_TYPE_SIGNAL.
2768         * configure, src/include/config.hin: Regenerated.
2770         * PROBLEMS: Updated.
2773         Update getopt files.
2775         * src/include/getopt.h, src/libs/libgroff/getopt.c,
2776         src/libs/libgroff/getopt1.c: Updated from GNU libc CVS.
2778         * src/include/getopt_int.h: New file (from GNU libc CVS).
2780         * src/include/groff-getopt.h: Updated.
2782         * src/include/Makefile.sub (HDRS): Add getopt_int.h.
2785         * font/devutf8/NOTES: Updated.
2787 2005-04-28  Werner LEMBERG  <wl@gnu.org>
2789         Bug fix for Win32 relocatable code.  Based on a patch from Keith
2790         Marshall.
2792         * src/libs/libgroff/maxpathname.cpp (PATH_MAX): Test for `_MAX_PATH'
2793         also.
2795         * src/libs/libgroff/relocate.c (DEBUG): Define it conditionally.
2796         (searchpath) [_WIN32]: Use `_fullpath', not `realpath'.
2798 2005-04-28  Keith Marshall  <keith.d.marshall@ntlworld.com>
2800         Correct `gnu.eps' handling for build from distribution tarball, with
2801         separate source and build directories.
2803         * doc/Makefile.sub: (examples.stamp): New target; forces copy of
2804         grnexmpl.g, groff.css and gnu.eps from source to build directory;
2805         generate gnu.eps from gnu.xpm if required; touch examples.stamp.
2806         (prepare_examples): Make it depend on examples.stamp.
2807         (CLEANADD): Add examples.stamp.
2809 2005-04-27  Werner LEMBERG  <wl@gnu.org>
2811         Implement the rule
2813           position: `(' position `)'
2815         in pic.
2817         * src/preproc/pic/pic.y (position, position_not_place): Handle
2818         additional parentheses.
2820         * doc/pic.ms: Updated.
2822 2005-04-23  Larry Jones  <lawrence.jones@ugs.com>
2824         * src/utils/xtotroff/xtotroff.c (MapFont): Fix variable declaration.
2826 2005-04-18  Werner LEMBERG  <wl@gnu.org>
2828         * src/roff/groff/pipeline.c: Don't include ctype.h.
2830 2005-04-13  Werner LEMBERG  <wl@gnu.org>
2832         * src/roff/nroff/nroff.man: Document option `-M'.
2834 2005-04-13  Bruce Lilly  <blilly@erols.com>
2836         * src/roff/nroff/nroff.sh: Make the script accept option `-M'.
2838 2005-04-01  Kees Zeelenberg  <kzlg@users.sourceforge.net>
2839             Werner LEMBERG  <wl@gnu.org>
2841         Add binary relocation support for Windows platforms.
2843         * src/include/Makefile.sub (defs.h): Add `INSTALLPATH'.
2845         * src/include/relocate.h, src/libs/libgroff/relocate.cpp: New files.
2847         * src/libs/libgroff/searchpath.cpp: Handle `relocate'.
2848         (search_path::search_path, search_path::open_file_cautious): Use
2849         `relocate'.
2851         * src/libs/libgroff/Makefile.sub (OBJS, CCSRCS),
2852         src/include/Makefile.sub (HDRS): Updated.
2854 2005-04-01  Werner LEMBERG  <wl@gnu.org>
2856         * src/devices/grohtml/post-html.cpp: Don't use strdup/free but
2857         strsave/a_delete.
2859         * src/libs/libgroff/font.cpp: Replace strdup with strsave.
2861         * src/libs/libgroff/maxfilename.cpp: Don't include limits.h since
2862         lib.h already does it.
2864         * src/libs/libgroff/maxpathname.cpp: New file, defining
2865         path_name_max.
2867         * src/include/lib.h: Add prototype for path_name_max.
2869         * src/libs/libgroff/Makefile.sub (OBJS, CCSRCS): Updated.
2871         * src/include/nonposix.h (PATH_EXT): New macro.
2873 2005-03-28  Werner LEMBERG  <wl@gnu.org>
2875         Add support for double- and zero-width characters in grotty.
2877         * src/devices/grotty/tty.cpp (glyph): Add width.
2878         (tty_printer::make_underline, tty_printer::make_bold,
2879         tty_printer::add_character): Add parameter to pass character width.
2880         Update all callers.
2881         (tty_printer::end_page): Increase hpos by actual character width.
2883         * font/devutf8/R.proto: Specify zero width for non-spacing
2884         characters.
2886         * tmac/unicode.tmac: Remove definitions for non-spacing entities.
2888         * Makefile.comm (extraclean): Remove more junk files.
2890 2005-03-25  Werner LEMBERG  <wl@gnu.org>
2892         * configure.ac: Undo change from 2005-03-24.
2893         * configure: Regenerated.
2895 2005-03-24  Werner LEMBERG  <wl@gnu.org>
2897         * Makefile.in (NOMAKEDIRS): Add contrib/gdiffmk/tests.
2898         (dist): Search Makefile while descending into $(EXTRADIRS).
2900         * doc/Makefile.in (.PHONY): Add.
2901         (clean): Don't remove *.png and *.eps.
2902         Don't handle *.gif.
2903         (realclean): Remove *.png and *.eps.
2904         (extraclean): Depend on distclean.
2906         * configure.ac: Add copyright.
2907         Handle contrib/pdfmark/Makefile.
2909         * configure: Regenerated.
2911 2005-03-18  Larry Kollar  <kollar@alltel.net>
2913         Add numbered and definition lists to www.tmac.
2915         * tmac/www.tmac (www-ul-level1, www-ul-level2, www-ul-level3,
2916         www-ol-level1, www-ol-level2, www-ol-level3, www-ol-tmp): New
2917         auxiliary string registers.
2918         (www-ul-level, www-ol-level, www-dl-level, www-ol-ctr1, www-ol-ctr2,
2919         www-ol-ctr3, www-dl-shift): New auxiliary number registers.
2920         (www-level): Removed.
2921         (www-level1, www-level2, www-level3): Initialize to empty.
2922         (www-level0, www-level4, www-level5, www-level6, www-level7,
2923         www-level8, www-level9): New string registers.
2924         (www-push-li, www-pop-li): New macros.
2925         (www-push-level, www-pop-level): Renamed to...
2926         (www-push-ul-level, www-pop-ul-level): This.
2927         Updated.
2928         (www-push-ol-level, www-pop-ol-level): New macros.
2929         (ULS, ULE): Updated.
2930         (OLS, OLE, DLS, DLE): New user macros.
2931         (LI): Removed.  It is aliased to one of...
2932         (www-li-ul, www-li-ol, www-li-dl): New macros.
2934         * tmac/groff_www.man: Document new macros.
2936         * NEWS: Updated.
2938 2005-03-18  Werner LEMBERG  <wl@gnu.org>
2940         * tmac/doc-common (doc-operating-system-NetBSD-2.0.1,
2941         doc-operating-system-NetBSD-2.0.2): New strings.
2943         * tmac/groff_mdoc.man: Updated.
2945 2005-03-17  Werner LEMBERG  <wl@gnu.org>
2947         * doc/Makefile.sub (CLEANADD): Add `groff.html'.
2949 2005-03-17  Werner LEMBERG  <wl@gnu.org>
2951         * src/libs/libgroff/hypot.c: Renamed to...
2952         * src/libs/libgroff/hypot.cpp: This.  Updated to C++.
2954         * src/libs/libgroff/Makefile.sub (CCSRCS, CSRCS): Updated.
2956         * src/include/lib.h: Updated.
2958 2005-03-16  Werner LEMBERG  <wl@gnu.org>
2960         Add workaround for broken hypot() on Interix.
2962         * src/libs/libgroff/hypot.c: New wrapper file for `hypot'.
2964         * src/libs/libgroff/Makefile.sub (OBJS): Add `hypot.o'.
2965         (CSRCS): Add `hypot.c'.
2967         * src/include/lib.h: Declare `groff_hypot'.
2969         * src/preproc/grn/hgraph.cpp: Don't declare `hypot'.
2970         Use `groff_hypot'.
2972         * src/preproc/pic/pic.h: Don't declare `hypot'.
2974         * src/preproc/pic/object.cpp (hypot): Use `groff_hypot'.
2976 2005-03-15  Gaius Mulley  <gaius@glam.ac.uk>
2978         * src/devices/grohtml/post-html.cpp
2979         (html_printer::lookahead_for_tables): End .ce properly to avoid a
2980         segfault.
2982 2005-03-15  Werner LEMBERG  <wl@gnu.org>
2984         makeinfo 4.8 doesn't produce good HTML output from groff.texinfo.
2986         * doc/fixinfo.sh: New script to postprocess makeinfo's HTML output.
2988         * doc/Makefile.in (.texinfo.html): Call fixinfo.sh.
2990 2005-03-14  Werner LEMBERG  <wl@gnu.org>
2992         Add Cyrillic support to devutf8 and devhtml.
2994         * font/devutf8/R.proto, font/devhtml/R.proto: Add Cyrillic blocks.
2996         * tmac/unicode.tmac: New file.
2998         * tmac/tty.tmac: Include unicode.tmac if device is utf8.
3000         * tmac/Makefile.sub (NORMALFILES): Add unicode.tmac.
3002         * NEWS: Updated.
3004 2005-03-02  Keith Marshall  <keith.d.marshall@ntlworld.com>
3006         * src/libs/libdriver/printer.cpp (check_for_output_error): New
3007         function.  It has been introduced to catch peculiar error contexts
3008         on MS-Windows platforms.
3010 2005-02-28  Werner LEMBERG  <wl@gnu.org>
3012         * src/roff/troff/input.cpp (string_iterator::fill): Protect against
3013         null pointer.
3015         * tmac/papersize.tmac: Convert `paper' string contents to lowercase.
3017         * configure: Regenerated.
3019         * NEWS: Updated.
3021 2005-02-28  Keith Marshall  <keith.d.marshall@ntlworld.com>
3023         Integrate `pdfmark' into normal groff build system;
3024         install macro `pdfmark' packages, build and install `pdfroff',
3025         and PDF format documentation.
3027         * Makefile.comm: Add PDFDOCDIR.
3029         * Makefile.in: (MDEFINES) ALT_AWK_PROGS, ALT_GHOSTSCRIPT_PROGS,
3030         pdfdocdir, make_pdfdoc, make_install_pdfdoc: New variables.
3031         (unstall_dirs): Add pdfdocdir.
3033         * aclocal.m4: (GROFF_GHOSTSCRIPT_PREFS): New function; support
3034         `--with-alt-gs' option, set ALT_GHOSTSCRIPT_PROGS.
3035         (GROFF_GHOSTSCRIPT_PATH): Support `--with-gs' option, force use of
3036         GROFF_GHOSTSCRIPT_PREFS, set GHOSTSCRIPT.
3037         (GROFF_HTML_PROGRAMS): Force use of GROFF_GHOSTSCRIPT_PATH; tidy up.
3038         (GROFF_AWK_PREFS): New function; support `--with-alt-awk' option,
3039         set ALT_AWK_PROGS.
3040         (GROFF_AWK_PATH): New function; support `--with-awk' option, force
3041         use of GROFF_AWK_PREFS.
3042         (GROFF_PDFDOC_PROGRAMS): New function; force use of GROFF_AWK_PATH
3043         and GROFF_GHOSTSCRIPT_PATH, set make_pdfdoc and make_install_pdfdoc.
3045         * configure.ac: Add AC_PREREQ(2.59), GROFF_PDFDOC_PROGRAMS.
3046         Remove GROFF_GHOSTSCRIPT_PATH, (forced by GROFF_PDFDOC_PROGRAMS, and
3047         also by modified GROFF_HTML_PROGRAMS).
3049 2005-02-27  Gaius Mulley  <gaius@glam.ac.uk>
3051         * src/devices/grohtml/html-text.cpp (html_text::do_pre): Preserve
3052         paragraph spacing.
3053         (html_text::done_para): Unset `start_space'.
3054         (html_text::remove_para_align): Call `retrieve_para_space' for the
3055         spacing.
3057         * src/devices/grohtml/post-html.cpp (html_printer::emit_raw): Unset
3058         `seen_space'.
3059         (html_printer::do_check_center): Emit vertical space if necessary.
3061         * src/roff/troff/env.cpp (environment_switch): Preserve
3062         `seen_space', `seen_eol', and `suppress_next_eol' while switching
3063         environments.
3065         * src/roff/troff/node.cpp (suppress_node::suppress_node): Set
3066         `is_special'.
3068 2005-02-20  Werner LEMBERG  <wl@gnu.org>
3070         * src/preproc/eqn/eqn.man, NEWS: Document various extensions of
3071         eqn.
3073 2005-02-17  Werner LEMBERG  <wl@gnu.org>
3075         * doc/pic.ms, man/groff.man: Fix typos.
3077         * doc/groff.texinfo: Fix typos.
3078         (\LEmacro): Get proper mathematical spacing.
3080 2005-02-16  Werner LEMBERG  <wl@gnu.org>
3082         * aclocal.m4 (GROFF_APPRESDIR_CHECK): Improve warning message.
3083         * configure: Regenerated with autoconf 2.59b.
3085 2005-02-16  Gaius Mulley  <gaius@glam.ac.uk>
3087         * src/devices/grohtml/post-html.cpp (html_printer::is_line_start,
3088         html_printer::start_font): Fix handling of preformatted text.
3090 2005-02-15  Gaius Mulley  <gaius@glam.ac.uk>
3092         These patches modify the indentation implementation to use `<p
3093         style=margin-left: n%>'.  Many thanks to Peter and Larry for
3094         suggesting this solution.  Grohtml only uses tables for `.IP' and
3095         related tags when the first operand has a short width.
3097         Similarly, they modify all vertical space code.  By default, grohtml
3098         sets up a style sheet which uses no vertical space between `table',
3099         `pre', and `p' tags.  It forces spaces when it needs them using
3100         `style="margin-top: 1em"'.
3102         * src/devices/grohtml/html-table.cpp: Include `html-text.h'.
3103         (html_table::emit_table_header, html_table::emit_new_row):
3104         Rewritten.
3105         (html_table::set_space): New function.
3106         (html_indent::html_indent): Don't set `is_used'.
3107         (html_indent::begin): Rewritten.
3108         (html_indent::end): Remove code in function.
3110         * src/devices/grohtml/html-table.h: Updated.
3111         (html_table): Make `out' public.
3113         * src/devices/grohtml/html-text.cpp (html_text::html_text):
3114         Initialize `start_space' with FALSE.
3115         (html_text::end_tag) <P_TAG, PRE_TAG>: Updated.
3116         (html_text::issue_tag): Add argument to handle space style.
3117         (html_text::start_tag) <P_TAG, PRE_TAG>: Updated.
3118         (html_text::flush_text): Don't set `start_space'.
3119         (html_text::push_para): Don't set `p->really_issued'.
3120         (html_text::do_emittext): Updated.
3121         (html_text::do_para): Add paremeter to handle space.
3122         Update all callers.
3123         (html_text::retrieve_para_space): New function.
3125         * src/devices/grohtml/html-text.h (STYLE_VERTICAL_SPACE): New macro.
3126         (tag_definition): Remove `really_issued'.
3127         (html_text): Updated.
3129         * src/devices/grohtml/post-html.cpp (html_printer): Add variables
3130         `current_column' and `row_space'.
3131         Update constructor.
3132         (html_printer::emit_raw, html_printer::write_header,
3133         html_printer::do_indent, html_printer::do_check_center,
3134         html_printer::do_tab_ts): Handle vertical space.
3135         (html_printer:do_tab_te, html_printer::do_end_para): Call
3136         `remove_para_space'.
3137         (html_printer::do_col): Rewritten.
3138         (html_printer::flush_globs): Remove debugging code.
3139         (html_printer::is_line_start): New function.
3140         (html_printer::start_font): Use `is_line_start'.
3141         (html_printer::writeHeadMetaStyle): New function.
3142         (html_printer::do_file_components, html_printer::~html_printer):
3143         Call `writeHeadMetaStyle'.
3145         * tmac/www.tmac (www-handle-percent): New macro.
3146         (MPIMG): Handle percent values for width and height parameters.
3147         (DC): Updated.
3149         * tmac/groff_www.man: Updated.
3151 2005-02-14  Werner LEMBERG  <wl@gnu.org>
3153         * src/utils/afmtodit/afmtodit.pl: Remove an incorrect `my' from
3154         $psname and $italic_angle.
3155         Immediately restart file input loops if `split' returns an empty
3156         array.
3158 2005-02-13  Michail Vidiassov  <master@iaas.msu.ru>
3159             Werner LEMBERG  <wl@gnu.org>
3161         Update afmtodit to better support Unicode (Michail).
3162         Update afmtodit to use Perl 5 syntax (Werner).
3164         * src/utils/afmtodit/afmtodit.pl: Don't use `getopts.pl' but
3165         `Getopts::Std'.
3166         Decorate variables with `my' where necessary.
3167         Use `defined' where necessary to avoid warnings.
3168         Don't use `do' for subroutine calls.
3169         Other minor syntax updates.
3170         Check for both `uXXXX[X[X]]' and `uniXXXX'.
3171         Handle glyph variants properly.
3172         (%unicode_decomposed, %AGL_to_unicode): Don't use `u' prefix in
3173         strings.
3175         * src/utils/afmtodit/afmtodit.man: Updated.
3177 2005-02-13  Werner LEMBERG  <wl@gnu.org>
3179         Make groff.texinfo work with texinfo 4.8.
3181         * doc/groff.texinfo (@Var): Use @r and @slanted.
3182         (@defdummy, @Def*): Use @c to avoid empty lines.
3183         (\angles): Replaced with...
3184         (\Langlemacro, \Ranglemacro): New TeX macros.
3185         (@Langlemacro, @Ranglemacro): New variables defined with @set.
3186         (@angles): Use @Langlemacro and @Ranglemacro.
3187         (\LE): Replaced with...
3188         (\LEmacro): New TeX macro.
3189         (@LEmacro): New variable defined with @set.
3190         (@LE): Use @LEmacro.
3191         (@Lparenmacro, @Rparenmacro, @Lbrackmacro, @Rbrackmacro): New
3192         variables defined with @set.
3193         (@lparen, @rparen, @lbrack, @rbrack): Replaced with...
3194         (@Lparen, @Rparen, @Lbrack, @Rbrack): New macros.
3195         Update all callers.
3197         Other minor updates.
3199         * doc/texinfo.tex: Update to texinfo version 4.8.
3201         * README.CVS: Updated.
3203 2005-02-09  Alejandro López-Valencia <palopez@etb.net.co> (tiny change)
3205         * doc/groff.texinfo (ms Document Control Registers): Document `HY'
3206         and `FAM' registers.
3208 2005-02-05  Werner LEMBERG  <wl@gnu.org>
3210         * tmac/groff_mdoc.man, tmac/doc-common, tmac/doc-ditroff,
3211         tmac/doc-nroff, tmac/doc-old.tmac, tmac/doc-syms, tmac/doc.tmac:
3212         Update BSD license.
3214 2005-02-01  Werner LEMBERG  <wl@gnu.org>
3216         * src/roff/groff/groff.man: Add information about paper size.
3218 2005-01-25  Werner LEMBERG  <wl@gnu.org>
3220         * src/roff/nroff/nroff.sh: Handle `*.ISO8859-1' in locale.  From
3221         NetBSD bin/29114.
3223 2005-01-22  Ruslan Ermilov  <ru@FreeBSD.org>
3225         * tmac/doc.tmac (Sm): Improved.  It didn't work properly in many
3226         cases.
3227         (Re): Emit a warning if called without `.Rs'.
3228         (doc-finish-reference): Use parameter for decreasing
3229         `doc-reference-count'.
3230         (doc-print-reference): Pass specific count parameters to
3231         `doc-finish-reference'.
3233 2005-01-21  Werner LEMBERG  <wl@gnu.org>
3235         * src/libs/libdriver/input.cpp (delete_current_env, do_file):
3236         Reset pointers to zero after deallocation.  This fixes a crash
3237         if a driver is called with multiple input files.  Reported by
3238         Ken Chilton <ken@chiltonfamily.org>.
3240         * src/devices/grops/grops.man: Add more info on DSC.
3242 2005-01-17  Ruslan Ermilov  <ru@FreeBSD.org>
3244         * tmac/doc-common (Dd), tmac/doc-ditroff (gX, doc-setup-header):
3245         Remove dead code.
3247 2005-01-17  Werner LEMBERG  <wl@gnu.org>
3249         * src/roff/troff/div.cpp (top_level_diversion::space): Protect
3250         against division by zero.
3252 2005-01-13  Ruslan Ermilov  <ru@FreeBSD.org>
3254         * tmac/doc.tmac (Ef): Restore doc-curr-font and doc-curr-size.
3256 2004-12-19  Werner LEMBERG  <wl@gnu.org>
3258         * install-sh: New version; taken from texinfo CVS.
3260 2004-12-17  Werner LEMBERG  <wl@gnu.org>
3262         * tmac/devtag.tmac: Protect against loading twice.
3263         Protect agains compatibility mode.
3264         * tmac/www.tmac: Protect against loading twice.
3265         Load `devtag.tmac' before switching off compatibility mode.
3266         * tmac/an-old.tmac, tmac/s.tmac: Load `devtag.tmac'.
3268 2004-12-16  Mike Bianchi  <mbianchi@Foveal.com>
3270         * configure.ac: Produce `contrib/gdiffmk/tests/runtests'.
3271         * configure: Updated.
3273 2004-12-15  Thomas Klausner  <wiz@netbsd.org>
3275         * tmac/doc-syms, tmac/groff_mdoc.man: Add `libpam' library.
3277 2004-12-15  Werner LEMBERG  <wl@gnu.org>
3279         Make `test-groff' work again -- previously, wrong paths have been
3280         used.  Additionally, it can now be called from anywhere.
3282         * test-groff.in: Don't test for groff binary.  This is no longer
3283         necessary since the proper paths are determined by `configure'.
3284         (EXEEXT): Removed.  No longer used.
3285         (srcdir, builddir): Use values provided by the configure script.
3286         (XENVIRONMENT): Updated.
3288         * INSTALL: Updated.
3290 2004-12-14  Gaius Mulley  <gaius@glam.ac.uk>
3292         Make .tag and .taga work for all devices (but only grohtml actually
3293         handles them).
3295         * src/devices/grohtml/post-html.cpp: s/html-tag/devtag/.
3296         (text_glob::is_br, page::add_tag, html_printer::troff_tag,
3297         html_printer::handle_assertion): Don't use hard-coded string
3298         lengths.
3299         (html_printer::lookahead_for_table): Reset `tbl' properly if
3300         necessary.
3301         (html_printer::devtag): New function, handling `devtag'.
3302         (html_printer::special): Don't handle `html-tag'.
3304         * src/include/printer.h, src/libs/libdriver/printer.cpp
3305         (printer::devtag): New virtual function.
3307         * src/libs/libdriver/input.cpp (parse_x_command) <'X'>: Handle
3308         `devtag'.
3310         * src/roff/troff/env.cpp, src/roff/troff/mtsm.cpp,
3311         src/roff/troff/node.cpp: s/html-tag/devtag/.
3313         * src/roff/troff/input.cpp (tag, taga): Always call
3314         curenv->add_node.
3316         * tmac/an-old.tmac, tmac/s.tmac, tmac/troffrc-end: Use DEVTAG*
3317         macros instead of HTML-TAG*.
3319         * tmac/devtag.tmac: New file, defining the DEVTAG-* macros.
3321         * tmac/www.tmac: Load devtag.tmac.
3322         Replace HTML-TAG* macros with DEVTAG* macros.
3323         (HTML, HTML-NS): Changed definitions.
3324         (URL): Use HTML-NS.
3325         (HTML-TAG, HTML-TAG-NS, HTML-TAG-NEXT): Removed.
3327         * tmac/Makefile.sub (NORMALFILES): Add devtag.tmac.
3329 2004-12-10  Werner LEMBERG  <wl@gnu.org>
3331         Import Mike's `gdiffmk' package.
3333         * contrib/gdiffmk/*: New files.
3334         * Makefile.in (OTHERDIRS): Add contrib/gdiffmk.
3335         * NEWS: Updated.
3337 2004-12-08  Werner LEMBERG  <wl@gnu.org>
3339         Import Keith's `pdfmark' package.  Integration is very preliminary.
3341         * contrib/pdfmark/*: New files.
3342         * Makefile.in (OTHERDIRS): Add contrib/pdfmark.
3343         * NEWS: Updated.
3345 2004-12-07  Gaius Mulley  <gaius@glam.ac.uk>
3347         Fix a bug with title handling in HTML.
3349         * src/devices/grohtml/post-html.cpp (text_glob::is_nf,
3350         text_glob::is_fi, text_glob::is_ce): Use strlen to compute string
3351         length.
3352         (html_printer::handle_tag_within_title): New function.
3353         (html_printer::do_title): Use it.
3355         * tmac/s.tmac (TL): Don't set `need_eo_tl'.
3356         (cov*tl-au-print): Emit `.eo.tl' tag.
3358 2004-12-05  Alejandro López-Valencia  <dradul@etb.net.co>
3360         * man/groff_char.man: Minor imrovements.
3362 2004-12-04  Werner LEMBERG  <wl@gnu.org>
3364         * src/preproc/eqn/eqn.man: Revised.
3366 2004-11-25  Werner LEMBERG  <wl@gnu.org>
3368         * src/utils/xtotroff/xtotroff.c: Reformat to be similar to other
3369         groff source files.
3370         Include config.h.
3371         Include limits.h.
3372         Remove X_NOT_STDC_ENV conditional.
3373         (Version_string, program_name): New global variables.
3374         (groff_flag): Removed.
3375         (MapFont): Updated.
3376         (usage): Take a stream as argument.
3377         Use `program_name'.
3378         Update all callers.
3379         (main): Add `long_options' array for `--help' and `--version'.
3380         Make `-g' a dummy option.
3381         Handle `-v' and unknown options.
3382         Remove unused `position' variable.
3384         * src/utils/xtotroff/Makefile.sub (MAN1): Define.
3385         (XLIBS): Add LIBGROFF.
3387         * src/utils/xtotroff/xtotroff.man, src/utils/xtotroff/Makefile.in:
3388         New files.
3390         * src/devices/xditview/Dvi.c (default_font_map): Split into three
3391         parts to avoid compiler warning.
3392         (resources): Don't initialize with `default_font_map'.
3393         (ClassInitialize): Initialize first element of `resources'.
3395         * src/devices/xditview/Makefile.sub (devdir, xtotroff, DPIS, fonts):
3396         Removed.
3398         * src/utils/lkbib/lkbib.man, src/utils/lookbib/lookbib.man,
3399         src/utils/pfbtops/pfbtops.man: Revised, updated.
3401         * configure.ac: Generate src/utils/xtotroff/Makefile.
3402         * configure: Regenerated.
3404 2004-11-24  Werner LEMBERG  <wl@gnu.org>
3406         First fixes to get produce HTML.
3408         * src/devices/grohtml/post-html.cpp (generate_img_src): Add `alt'
3409         attribute.
3411         * tmac/www.tmac (IMG, PIMG, MPIMG): Add `alt' attribute.
3412         (HR, LI): Use `HTML</p>', not `HTML'.
3414         * doc/webpage.ms: Minor updates.
3416 2004-11-23  Larry Kollar  <kollar@alltel.net>
3418         Add option -S grohtml to determine the file split level.
3420         * src/devices/grohtml/post-html.cpp (split_level): New global
3421         variable.
3422         (html_header::determine_header_level): Use split_level.
3423         (main): Handle `-S' command line option.
3424         Sort options.
3426         * src/preproc/html/pre-html.cpp (scanArguments): Updated.
3428         * src/devices/grohtml/grohtml.man: Document it.
3429         Sort options.
3431         * NEWS: Document it.
3433 2004-11-23  Y T  <doarhop@hotmail.com>
3435         * tmac/s.tmac (ref*add-V, ref*add-N): New macros for handling
3436         the volume and number refer entries.
3438 2004-11-22  Werner LEMBERG  <wl@gnu.org>
3440         * src/devices/grohtml/html-table.cpp
3441         (html_table::emit_table_header): Don't emit `cols' attribute which
3442         doesn't exist in HTML 4.0 and is thus invalid.
3444         * NEWS: More minor fixes and updates.
3446 2004-11-18  Werner LEMBERG  <wl@gnu.org>
3448         * tmac/www.tmac (HTML-NS, HTML-TAG-NS, HTML-TAG-NEXT): Simplified.
3449         (HTML</p>): Minor clean-up.
3451         * tmac/groff_www.man: Updated.
3453         * src/devices/grohtml/grohtml.man: Revised and updated.
3455         * NEWS: Updated.
3457 2004-11-18  Gaius Mulley  <gaius@glam.ac.uk>
3459         * src/devices/grohtml/post-html.cpp (html_printer::do_heading):
3460         Fix space insertion.
3461         (html_printer::do_links): Fix rules generation around automatic
3462         heading links.
3464         * tmac/www.tmac (LK): Use HTML-TAG-NS.
3465         (HR): Simplify.
3466         No longer emit empty line for non-HTML devices.
3468 2004-11-17  Werner LEMBERG  <wl@gnu.org>
3470         * doc/Makefile.in (prepare_examples, webpage.html): Handle
3471         `groff.css'.
3473         * doc/Makefile.sub (EXAMPLEFILES, CLEANNOTSRCDIRADD,
3474         prepare_examples, webpage.html): Handle `groff.css'.
3476 2004-11-15  Werner LEMBERG  <wl@gnu.org>
3478         * NEWS, README, doc/webpage.ms: Updated.
3480         * tmac/www.tmac (HTML, HTML-TAG): Minor clean-ups.
3482 2004-10-30  Gaius Mulley  <gaius@glam.ac.uk>
3484         * src/include/printer.h (printer): Remove virtual function
3485         `round_width'.
3486         Update all source files.
3488         * src/devices/grohtml/post-html.cpp (html_printer): New member
3489         function `round_width'.
3491 2004-10-20  Tadziu Hoffmann  <hoffmann@usm.uni-muenchen.de>
3493         * src/preproc/tbl/table.cpp (table::do_row): Fix handling of the `d'
3494         column key letter suffix.
3496 2004-10-14  Werner LEMBERG  <wl@gnu.org>
3498         * Makefile.in (check): Depend on `site.exp' and `docheck'.
3499         (docheck): Run dejagnu's `runtest' if it exists.
3500         (site.exp): Create dejagnu configuration file.
3502         * Makefile.sub (DISTCLEANFILES): Add files related to dejagnu.
3504 2004-10-13  Werner LEMBERG  <wl@gnu.org>
3506         * src/devices/grohtml/html-text.cpp (html_text_get_alignment),
3507         src/devices/grohtml/post-html.cpp (make_val,
3508         html_printer::handle_state_assertion): Fix compiler warnings.
3510         * src/roff/troff/div.cpp: Include `stringclass.h' and `mtsm.h'.
3511         (diversion::diversion): Fix order of initializers.
3513         * src/roff/troff/div.h: Don't include `mtsm.h'.
3515         * src/roff/troff/env.cpp: Include `stringclass.h' and `mtsm.h'.
3516         (environment::environment): Fix order of initializers.
3517         (environment::make_tag, environment::construct_format_state): Fix
3518         compiler warnings.
3520         * src/roff/troff/input.cpp: Include `stringclass.h' and `mtsm.h'.
3521         (input_iterator::input_iterator, macro::macro): Fix order of
3522         initializers.
3524         * src/roff/troff/mtsm.cpp: Include only necessary header files.
3525         (state_set::add, state_set::val): Fix compiler warnings.
3527         * src/roff/troff/mtsm.h: Don't include `stringclass.h'.
3528         (bool_value_state, int_value_state, units_value_state,
3529         string_value_state): Remove comma after last element which causes
3530         an error with g++ 3.3.3.
3532         * src/roff/troff/node.cpp: Include `stringclass.h'.
3533         (hline_node::hline_node, vline_node::vline_node,
3534         space_char_hmotion_node, left_italic_corrected_node): Fix compiler
3535         warnings.
3536         (zero_width_node::zero_width_node): Fix order of initializers.
3538         * src/roff/troff/node.h: Don't include `mtsm.h'.
3539         (hmotion_node): Fix compiler warnings.
3541         * src/roff/troff/number.cpp: Include `stringclass.h' and `mtsm.h'.
3543 2004-10-12  Gaius Mulley  <gaius@glam.ac.uk>
3545         * doc/groff.css: New file.
3547         * doc/webpage.ms: Use `groff.css'.
3548         Other small fixes.
3550         * tmac/an-old.tmac (need_eo_h): New number register.
3551         (TH): Emit `.eo.tl' tag after title.
3552         (SH): Set `need_eo_h'.
3553         (an-trap): Handle `need_eo_h'.
3554         (an-do-tag): s/HTML-TAG-NS/HTML-TAG-NEXT/.
3556         * tmac/s.tmac (need_eo_h, need_eo_tl): New number registers.
3557         (TL): Always start diversion.
3558         Updated.
3559         (@AI): Always call `par@reset'.
3560         (@AB): Update code for -Thtml.
3561         (cov*tl-au-print): Handle -Thtml.
3562         (par@reset): Handle `need_eo_tl', `need_eo_h'.
3563         (@IP): Simplified.
3564         (@IT-html): Removed.
3565         (@SH): Set `need_eo_h' for -Thtml.
3566         (par@TL): s/HTML-TAG/HTMl-TAG-NS/.
3567         Set `need_eo_tl'.
3568         (@NH): s/HTML-TAG/HTMl-TAG-NS/.
3569         Set `need_eo_h' for -Thtml.
3570         (@EQ, @EN): Don't handle -Thtml specially.
3571         (par@load-init): Don't handle -Thtml specially.
3573         * tmac/www.tmac (www:paraspace): New macro.
3574         (HTML-NS, HTML-TAG-NS): Use new `tag' request.
3575         (HTML</p>, HTML-TAG-NEXT): New macros.
3576         (HnE): Emit tag `.eo.h' instead of break.
3577         (HR): s/HTML-NS/HTML/.
3578         (www-end-nowhere): End diversion only if `www-html' not set.
3579         Emit `.eo.tl' tag.
3580         (ULS, ULE): s|HTML|HTML</p>|.
3581         (LI): Call `www:paraspace'.
3582         (HEAD): New macro.
3584 2004-10-11  Gaius Mulley  <gaius@glam.ac.uk>
3586         * src/roff/troff/request.h (macro): Make `p' public.
3587         New variable `is_a_diversion'.
3588         New member function `is_diversion'.
3591         * src/devices/grohtml/html.h (simple_output): New member function
3592         `force_nl'.
3594         * src/devices/grohtml/html-table.cpp (tabs::compatible): Fix
3595         computation of `total'.
3596         (tabs::check_init): New function.
3597         (html_table::emit_table_header): Emit style data.
3598         (html_table::insert_column): Improved.
3600         * src/devices/grohtml/html-table.h: Updated.
3602         * src/devices/grohtml/html-text.cpp (html_text::html_text):
3603         Initialize `start_space' with TRUE.
3604         (html_text::end_tag, html_start_tag): Fix `P_TAG' and `PRE_TAG'
3605         cases.
3606         (html_text::flush_text): Set `start_space' flag.
3607         (html_text::uses_indent, html_text::remove_para_space,
3608         html_text::get_alignment): New functions.
3609         (html_text::push_para): Updated.
3610         (html_text::do_para): Check for empty argument.
3611         Don't set `space_emitted'.
3612         (html_text::do_space, html_text::emit_space): Updated.
3614         * src/devices/grohtml/html-text.h (tag_definition): New variable
3615         `really_issued'.
3616         (html_text): New member function `uses_indent', `remove_para_space',
3617         `get_alignment'.
3619         * src/devices/grohtml/output.cpp (simple_output::force_nl): New
3620         function.
3621         (simple_output:nl): Always emit `\n'.
3623         * src/devices/grohtml/post-html.cpp: Include `string.h'.
3624         (BASE_POINT_SIZE): Removed.
3625         (base_point_size, head_info): New global variables.
3626         (text_glob): New member functions `is_ll', `is_tl', `is_eo_tl',
3627         `is_eo_h'.
3628         (text_glob::is_nf, text_glob::is_fi): Handle `.fi 0' and `.fi 1'
3629         tags, respectively.
3630         (page::add_and_encode): Pass additional parameter for tag flag.
3631         (assert_pos): New structure.
3632         (assert_state): New class.
3633         (html_printer): Remove `indentation', `prev_indent'.
3634         Add variables `troff_indent', `device_indent', `temp_indent'.
3635         Add variables `seen_indent', `next_indent', `seen_pageoffset',
3636         `next_pageoffset', `seen_linelenght', `next_linelength',
3637         `seen_center', `next_center', `seen_space', `seen_break', `as'.
3638         Add member functions `do_check_center', `do_space', `do_head',
3639         `get_troff_indent', `restore_troff_indent', `handle_assertion',
3640         `handle_state_assertion', `do_end_para', `set_char_and_width'.
3641         Change argument to `do_fill' to `char *'.
3642         Update constructor.
3643         (html_printer::emit_raw): Call `shutdown_table'.
3644         Use new functions.
3645         (html_printer::do_center): Simplified.
3646         (html_printer::do_title): Improved.
3647         (html_printer::write_header): Emit one more newline.
3648         Use new functions.
3649         (html_printer::do_heading, html_printer::do_indent,
3650         html_printer::do_eol, html_printer::do_tab_ts,
3651         html_printer::do_tab, html_printer::do_tab0,
3652         html_printer::calc_po_in, html_printer::next_horiz_pos,
3653         html_printer::remove_courier_tabs,
3654         html_printer::insert_tab0_foreach_tab, html_printer::begin_page):
3655         Updated.
3656         (html_printer::do_linelength, html_printer::do_pageoffset,
3657         html_printer::do_indentation, html_printer::do_tempindent,
3658         html_printer::do_tab_te): Simplified.
3659         (html_printer::do_pointsize): Check whether point size is really
3660         associated a `.tl' tag.
3661         (html_printer::do_break): Rewritten.
3662         (html_printer::troff_tag): Improved.
3663         (html_printer::flush_globs): Updated.
3664         (html_printer::lookahead_for_tables): Handle `is_br'.
3665         Use new functions.
3666         (html_printer::set_char): Check `sbuf_style.f'.
3667         (html_printer::write_navigation): Use string comparison.
3668         (html_printer::~html_printer): Emit `head_info'.
3669         (html_printer::special): Rewritten.
3670         (get_str, make_val): New functions.
3671         (main): New option `s' to set the base point size.
3673         * src/preproc/html/pre-html.cpp (scanArguments): Handle option `s'.
3675 2004-10-10  Gaius Mulley  <gaius@glam.ac.uk>
3677         * src/roff/troff/node.cpp: New extern `debug_state'.
3678         Include `stringclass.h' and `mtsm.h'.
3679         Implement new classes and class members from `node.h'.
3680         (real_output_file): Make `fp' public.
3681         (troff_output_file): New variables `cur_div_level' and `tag_list'.
3682         Update constructors.
3683         (troff_output_file::really_print_line): Check whether we should push
3684         the current troff state and use the state at the start of the
3685         invocation of this diversion.
3686         (troff_output_file::add_to_tag_list): New member function.
3687         (node::add_char): Handle `glyph_comp_np'.
3689         * src/roff/troff/node.h: Include `mtsm.h'.
3690         (node): New variables `state', `push_state', `div_nest_level',
3691         `is_special'.  Update constructors, all descendants.
3692         Pass additional argument to `add_char' member function.
3693         New virtual member functions `is_tag', `debug_node',
3694         `debug_node_list'.  Update all descendants.
3695         (tag_node): New class for handling tags.
3696         (output_file): Add variable `state'.
3698 2004-10-09  Gaius Mulley  <gaius@glam.ac.uk>
3700         * src/roff/troff/mtsm.cpp, src/roff/troff/mtsm.h: New files,
3701         providing a minimal troff state machine to emit meta tags for the
3702         post-grohtml device driver.
3704         * src/roff/troff/Makefile.sub (OBJS, CCSRCS, HDRS): Handle new
3705         files.
3707 2004-10-09  Werner LEMBERG  <wl@gnu.org>
3709         * tmac/trace.tmac: Fix handling of `am' and `am1' calls.
3711 2004-10-06  Gaius Mulley  <gaius@glam.ac.uk>
3713         * src/roff/troff/column.cpp (vjustify_node::copy): Updated.
3715         * src/roff/troff/div.h: Include `mtsm.h'.
3716         (diversion): New variables `any_chars_added', `needs_push',
3717         `saved_seen_break', `saved_seen_space', `saved_seen_eol',
3718         `saved_suppress_next_eol', `modified_tag'.
3719         New virtual member function `is_diversion'.  Update all descendants.
3721         * src/roff/troff/div.cpp (diversion::diversion,
3722         macro_diversion::macro_diversion): Updated.
3723         (do_divert): Handle `seen_break', `seen_space', `seen_eol',
3724         `suppress_next_eol'.
3725         (top_level_diversion::space): Handle `curenv->seen_space'.
3726         (page_offset): Update tag handling.
3727         (space_request, blank_line, flush_output): Don't call `add_html_tag'.
3729         * src/roff/troff/env.h (environment): Make `tabs' public.
3730         Remove `ignore_next_eol', `emitted_node'.
3731         Update `output_line', `output'.
3732         New variables `seen_space', `seen_eol', `suppress_next_eol',
3733         `seen_break'.
3734         New member functions `construct_state', `make_tag',
3735         `construct_format_state, `construct_new_line_state,
3736         `dump_troff_state'.
3737         Remove `add_html_tag', `make_html_tag'.
3739         * src/roff/troff/env.cpp: New externs `suppress_push',
3740         `get_diversion_state', `global_diverted_space'.
3741         (pending_output_line): New variable `was_centered'.
3742         Update constructor and all callers.
3743         (pending_output_line::output): Call `curenv->construct_format_state'.
3744         (environment::environment, environment::copy): Updated.
3745         (environment::output): Handle `was_centered'.
3746         (environment::add_char): Handle construct and diversion state.
3747         (environment::add_node): Handle construct state.
3748         (environment::newline): Handle `was_centered'.
3749         (environment::output_line): Updated.
3750         (environment::possibly_break_line): Updated.
3751         Update tag handling.
3752         (environment::add_html_tag): Replaced with...
3753         (environment::make_tag): New function.
3754         (environment::add_html_tag_tabs, environment::make_html_tag): Removed.
3755         (environment::dump_troff_state): New debugging function.
3756         (environment::construct_state, environment::construct_format_state,
3757         environment::construct_new_line_state): New functions.
3758         (environment::do_break): Updated.
3759         Handle `global_diverted_space'.
3760         (environment::handle_tag): Update tag handling.
3761         (point_size, fill, do_break_request): Don't call `add_html_tag'.
3762         (no_fill): Don't call `add_html_tag'.
3763         Set `suppress_next_eol'.
3764         (center, right_justify, line_length, indent, temporary_indent,
3765         set_tabs):
3766         Update tag handling.
3768         * src/roff/troff/input.cpp: Don't include `stringclass.h'.
3769         (input_iterator): New variables `is_diversion', `diversion_state'.
3770         Update constructors.
3771         (input_stack): New member functions `get_div_level',
3772         `get_diversion_state', `check_end_diversion'.
3773         New variables `div_level', `diversion_state'.  Initialize them.
3774         (suppress_push, global_diverted_space): New global variables.
3775         (input_stack::finish_get, input_stack::finish_peek,
3776         input_stack::remove_boundary, input_stack::end_file,
3777         input_stack::clear, input_stack::pop_macro): Call
3778         `check_end_diversion'.
3779         (input_stack::push): Handle `div_level' and `diversion_state'.
3780         (get_diversion_state): New function.
3781         (diverted_space_node::reread): Handle `global_diverted_space'.
3782         (macro::macro): Update constructors.
3783         (macro::is_diversion): New function.
3784         (macro::operator=): Set `is_a_diversion'.
3785         (string_iterator): New member function `is_diversion'.
3786         (string_iterator::string_iterator): Update constructors.
3787         (string_iterator::fill): Set `div_nest_level'.
3788         (macro_iterator): New member function `is_diversion'.
3789         (do_if_request): Handle `suppress_push'.
3790         (tag, taga): New functions.
3791         (init_input_requests): Add `tag' and `taga' requests.
3793 2004-10-05  Gaius Mulley  <gaius@glam.ac.uk>
3795         * src/include/font.h (font): New member function
3796         `get_image_generator'.
3797         New variables `unscaled_charwidths' and `image_generator'.
3799         * src/libs/libgroff/font.cpp (font::get_width): Always return the
3800         character's unscaled width if `font::unscaled_charwidths' is set.
3801         (font::get_image_generator): New function.
3802         (font::load_desc): Check the `unscaled_charwidths' and
3803         `image_generator' keywords.
3805         * src/libs/libgroff/fontfile.cpp: Initialize
3806         `font::unscaled_charwidths' and `font::image_generator'.
3808         * font/devhtml/DESC.proto: s/html/unscaled_charwidths/.
3810         * font/devhtml/Makefile.sub (DESC): Set `image_generator' keyword.
3812         * man/groff_font.man: Document `unscaled_charwidths' and
3813         `image_generator'.
3815         * src/preproc/html/pre-html.cpp: Include `device.h'.
3816         (image_gen): New global variable.
3817         (imageList::createPage): Use `image_gen'.
3818         (main): Use `image_generator' keyword.
3820 2004-10-04  Gaius Mulley  <gaius@glam.ac.uk>
3822         * tmac/html.tmac: Handle \[sqrtex].
3824 2004-10-04  Gaius Mulley  <gaius@glam.ac.uk>
3826         * src/include/printer.h (printer): New virtual method `round_width'.
3828         * src/devices/grodvi/dvi.cpp, src/devices/grolbp/lbp.cpp,
3829         src/devices/grolj4/lj4.cpp, src/devices/grops/ps.cpp,
3830         src/devices/grotty/tty.cpp (printer::round_width): New function
3831         member.
3833         * src/devices/grohtml/post-html.cpp (printer::round_width): New
3834         function member.
3835         (html_printer::set_numbered_char): Use it.
3837 2004-10-03  Gaius Mulley  <gaius@glam.ac.uk>
3839         * aclocal.m4 (GROFF_GHOSTSCRIPT_PATH): New macro.
3841         * configure.ac: Call GROFF_GHOSTSCRIPT_PATH.
3843         * configure: Regenerated.
3845         * Makefile.in (GHOSTSCRIPT): New variable.
3846         (MDEFINES): Add GHOSTSCRIPT.
3848 2004-10-03  Werner LEMBERG  <wl@gnu.org>
3850         * INSTALL.gen: Updated (taken from texinfo CVS).
3852 2004-09-28  Werner LEMBERG  <wl@gnu.org>
3854         * NEWS: Updated.
3856 2004-09-28  Heinz-Jürgen Oertel  <hj.oertel@surfeu.de>
3858         * tmac/groff_www.man: Revised and updated.
3860 2004-09-26  Werner LEMBERG  <wl@gnu.org>
3862         Fix \$@ and \$* to handle any number of arguments.
3864         * src/roff/troff/input.h (BEGIN_QUOTE, END_QUOTE): New special
3865         characters.
3867         * src/roff/troff/input.cpp (input_iterator::internal_level):
3868         Removed.
3869         (input_stack): New member functions `increase_level' and
3870         `decrease_level'.
3871         (input_stack::get_level): Don't use `internal_level'.
3872         (get_copy, token::next): Handle BEGIN_QUOTE and END_QUOTE.
3873         (end_quote_iterator): Completely removed.
3874         (interpolate_arg): Build string for \$@ and \$* which is then
3875         pushed onto the input stack.
3877 2004-09-23  Keith Marshall  <keith.d.marshall@ntlworld.com>
3879         * tmac/groff_ms.man, doc/groff.texinfo (ms Document Control
3880         Registers): Document changes from 2004-09-19.
3882 2004-09-23  Werner LEMBERG  <wl@gnu.org>
3884         * tmac/an-old.tmac (ne): Using default scaling operator.
3886 2004-09-19  Keith Marshall  <keith.d.marshall@ntlworld.com>
3888         This change implements the following features:
3890         PORPHANS
3891           New numeric register: Defines number of lines following LP, PP,
3892           QP, IP or XP, which must be kept together, before any automatic
3893           page break.  If insufficient space remains on the current page, a
3894           page break is forced before the new paragraph begins.
3896         HORPHANS
3897           New numeric register: Sets number of lines of following paragraph
3898           which must be kept with a heading, defined by NH or SH, before any
3899           automatic page break.  If insufficient space remains on the
3900           current page, a page break is forced before the heading.
3902         GROWPS
3903           (Thanks to Joerg van den Hoff, for this idea).
3905           New numeric register: Sets the first level of heading (set with
3906           NH), which will keep the same point size as body text; e.g. if
3907           GROWPS is set to 3, .NH 3, .NH 4, ... will produce headings at the
3908           point size specified by \n[PS], but .NH 2 and .NH 1 will have
3909           progressively larger point sizes, determined by \n[PSINCR] (see
3910           below).
3912         PSINCR
3913           New numeric register: Sets the point size increment for each level
3914           of heading, (set with NH), below the threshold level set by
3915           GROWPS; e.g. if \n[PS] = 10, \n[GROWPS] = 3 and \n[PSINCR] = 2.0p,
3916           then .NH 1 will produce 14pt headings, .NH 2 will produce 12pt,
3917           and all other levels will remain at 10pt, (because \n[PS] = 10).
3919         SH
3920           Existing macro now accepts a numeric argument, to make heading
3921           size match that of NH with same argument value, when the
3922           GROWPS/PSINCR feature is enabled.
3924         SN-DOT
3925           New string, set by NH macro, replaces the existing (undocumented)
3926           use of SN, to represent the assigned section number.
3928         SN-NO-DOT
3929           New string, set by NH macro, represents the assigned section
3930           number, but omits the terminal period (periods at intermediate
3931           levels are retained).
3933         SN
3934           String set by NH macro, originally undocumented, now implemented
3935           as an alias for SN-DOT (which reproduces original behaviour).
3937         * tmac/s.tmac (PORPHANS): New register.
3938         (par*start): Use it.
3939         (HORPHANS, GROWPS, PSINCR): New registers.
3940         (SH-NO-TAG, @SH): Use them.
3941         (@NH): Improved.
3943 2004-09-19  Keith Marshall  <keith.d.marshall@ntlworld.com>
3945         * NEWS, doc/groff.texinfo (ms Display and Keeps), tmac/groff_ms.man:
3946         Document the deletion of `Ds' and `De' macros.
3948 2004-09-10  Werner LEMBERG  <wl@gnu.org>
3950         In tbl, handle \a as an interpreted leader character if in
3951         compatibility mode.
3953         * src/preproc/tbl/table.h (PREFIX, PREFIX_CHAR, LEADER,
3954         LEADER_CHAR): New macros.
3955         (compatible_flag): New declaration.
3957         * src/preproc/tbl/main.cpp (table_input): Add LEADER_1, LEADER_2,
3958         LEADER_3, and LEADER_4 to `state'.
3959         (table_input::get): Handle `\a'.
3961         * src/preproc/tbl/table.cpp (PREFIX): Removed.
3962         (LEADER_REG): New macro.
3963         (table::init_output): Define LEADER_REG string register if in
3964         compatibility mode.
3966         * src/preproc/tbl/tbl.man: Document it.
3968 2004-08-18  Werner LEMBERG  <wl@gnu.org>
3970         * tmac/doc.tmac (An): Fix error message.
3972 2004-08-06  Werner LEMBERG  <wl@gnu.org>
3974         * src/preproc/tbl/main.cpp (main): Call `fatal' not `error' if a
3975         file can't be opened.  UNIX tbl has the same behaviour.
3977 2004-08-05  Y T  <doarhop@hotmail.com>
3979         * src/preproc/grn/hdb.cpp (compatibility_flag): Add declaration.
3980         (DBRead): If in compatibility mode, take into account the text
3981         when computing figure boundaries.
3983 2004-08-05  Werner LEMBERG  <wl@gnu.org>
3985         * src/preproc/soelim/soelim.man: Improved.  Based on suggestions
3986         from Tadziu Hoffmann.
3988 2004-08-03  Werner LEMBERG  <wl@gnu.org>
3990         * doc/meref.me: Document `_M' register.
3992 2004-08-03  Martin Husemann  <martin@duskware.de>
3994         Make hpftodit work correctly on big-endian systems.
3996         * src/utils/hpftodit/hpftodit.cpp (File): New method
3997         `get_uint32(char *)'.
3998         (entry): New member `orig_value'.
3999         (read_tags): Use new method.
4000         (output_font_name, read_and_output_pcltypeface, dump_ascii):
4001         Updated.
4003 2004-08-01  Werner LEMBERG  <wl@gnu.org>
4005         * tmac/s.tmac: Undo change 2003-06-29.  The proper macro definitions
4006         are already in X11's `macros.t' file.
4008 2004-08-01  Jeff Conrad  <jeff_conrad@msn.com>
4010         * src/utils/hpftodit/hfptodit.cpp (output_font_name, dump_ascii):
4011         Fix casting bug.
4012         (read_and_output_pcltypeface): Handle strings with length <= 4.
4014 2004-07-27  Egil Kvaleberg  <egil@kvaleberg.no>
4016         * tmac/s.tmac (pg@top): Don't save `PO' register.
4017         (pg*end-col, pg*end-page): Directly use `PO' register.
4019 2004-07-27  Werner LEMBERG  <wl@gnu.org>
4021         * man/groff_tmac.man: Mention `trace' and `pic' macro packages.
4023         * src/preproc/refer/refer.cpp (output_references): Check for
4024         empty hash table.
4025         * src/preproc/refer/refer.man: Improve documentation of
4026         `bibliography' command.
4028 2004-07-26  Werner LEMBERG  <wl@gnu.org>
4030         Add requests `fcolor' and `gcolor'.
4032         * src/roff/troff/env.cpp (fill_color_change, glyph_color_change):
4033         New functions.
4034         (init_env_requests): Add `fcolor' and `gcolor'.
4036         * src/roff/troff/input.h: Export do_glyph_color and do_fill_color.
4038         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo
4039         (Colors): Document new requests.
4041 2004-07-24  Werner LEMBERG  <wl@gnu.org>
4043         Add support for fractional point sizes in ms macros.  A value for
4044         PS, VS, FPS, and FVS greater than or equal to 1000 is always divided
4045         by 1000.  For example, `.nr PS 10250' sets the font size to 10.25p.
4047         * tmac/s.tmac (@AU, @AI, par@load-init, par@init, par@reset, NL,
4048         PX): Handle fractional point sizes for PS, VS, FPS, and FVS.
4050         * tmac/groff_ms.man, docs/groff.texinfo (ms Document Control
4051         Registers), NEWS: Document it.
4053 2004-07-19  Werner LEMBERG  <wl@gnu.org>
4055         * src/preproc/pic/lex.cpp (for_input): Add member `from'.
4056         Update constructor.
4057         (do_for, for_input::get, for_input::peek): Handle negative `by'.
4058         * src/preproc/pic/pic.man, doc/pic.ms, NEWS: Document it.
4060 2004-07-08  Thomas Klausner  <wiz@netbsd.org>
4062         * tmac/doc-syms (doc-str-St--p1003.1-2004): New string.
4063         * tmac/groff_mdoc.man: Updated.
4065 2004-07-05  Werner LEMBERG  <wl@gnu.org>
4067         * doc/groff.texinfo (Manipulating Hyphenation): Further improve
4068         documentation of `hcode'.
4070 2004-07-04  Sang Dae Yu  <sdyu@bh.knu.ac.kr>
4072         Improve appearance of arrows in pic.
4074         * src/preproc/pic/object.cpp (draw_arrow): Make outline of filled
4075         arrow head thin.
4076         Use two line segments for drawing non-filled arrow head.
4077         (line_object::print, spline_object::print): Shorten line length to
4078         avoid arrow sticking.
4079         (arc_object::print): Take arrow direction into account.
4081 2004-07-03  Heinz-Jürgen Oertel  <hj.oertel@surfeu.de>
4083         * tmac/groff_www.man: Update documentation of .MPIMG.
4085 2004-07-03  Werner LEMBERG  <wl@gnu.org>
4087         * tmac/an-old.tmac (RI): Always start with font `R'.
4088         (RI, IR): Properly end with font `R'.
4090 2004-07-02  Paul Eggert  <eggert@cs.ucla.edu>
4092         * man/ditroff.man, man/groff_font.man, man/groff_out.man,
4093         src/devices/grohtml/grohtml.man, src/preproc/grn/grn.man,
4094         src/preproc/pic/pic.man, tmac/groff_man.man, tmac/groff_ms.man:
4095         Don't pass more than six arguments to .R, .I, .B, etc., for
4096         compatibility with traditional troff macros.
4098 2004-07-02  Werner LEMBERG  <wl@gnu.org>
4100         * src/roff/troff/input.h: s/COMPATIBLE_SAVE/PUSH_GROFF_MODE/.
4101         s/COMPATIBLE_RESTORE/POP_GROFFCOMP_MODE/.
4102         Update all users.
4103         (PUSH_COMP_MODE): New internal character constant.
4104         Update all users.
4106         * src/roff/troff/input.cpp (get_copy): Handle PUSH_GROFF_MODE,
4107         PUSH_COMP_MODE, and POP_GROFFCOMP_MODE.
4108         (token::next, macro::append): Handle PUSH_COMP_MODE.
4109         (decode_args): Add PUSH_GROFF_MODE or PUSH_COMP_MODE before and
4110         POP_GROFFCOMP after each of the decoded arguments to make them
4111         independent from the compatibility mode status.
4112         (comp_mode): Add `COMP_ENABLE'.
4113         (do_define_string, do_define_macro): Handle COMP_ENABLE.
4114         (define_string, append_string, define_macro, define_indirect_macro,
4115         append_macro, append_indirect_macro): Handle `compatible_flag'.
4116         (chop_macro, substring_request, asciify): Handle PUSH_COMP_MODE.
4118         * man/groff_diff.man, doc/groff.texinfo: Updated.
4120 2004-07-01  Werner LEMBERG  <wl@gnu.org>
4122         * doc/groff.texinfo: Improve documentation of `hcode'.
4123         Use @documentencoding and convert document to latin-1; to do that
4124         make latin characters active and assign proper macros (within a
4125         @tex...@end tex environment).
4126         * doc/Makefile.in (.texinfo.html, groff): Use --enable-encoding.
4127         * doc/Makefile.sub (groff): Ditto.
4129 2004-06-29  Werner LEMBERG  <wl@gnu.org>
4131         Implement two new conditional operators `F <name>' and `S <name>'
4132         which check whether <name> is a valid font or style, respectively.
4134         * src/libs/libgroff/font.cpp (text_file): Add `silent' member.
4135         (text_file::text_file): Updated.
4136         (text_file::error): Don't emit message if `silent' is set.
4137         (font::load_font): Add optional third argument (which is directly
4138         passed to `load'.
4139         (font::load): Add optional second argument to check the header of
4140         a font only, without emitting warning or error messages.
4141         * src/include/font.h (font): Updated.
4143         * src/roff/troff/input.cpp (do_if_request): Implement `S' and `F'
4144         conditionals.
4145         * src/roff/troff/node.cpp (mount_font_no_translate): Add optional
4146         fourth argument to check a font without mounting.
4147         (check_font, check_style): New functions.
4148         * src/roff/troff/node.h: Updated.
4150         * man/groff_diff.man, man/groff.man, NEWS, doc/groff.texinfo:
4151         Updated.
4153 2004-06-27  Werner LEMBERG  <wl@gnu.org>
4155         Implement new string-valued register `.sty' to return the current
4156         style name.
4158         * env.cpp (environment::get_style_name_string): New function.
4159         (init_env_requests): Add `.sty' register.
4160         * env.h (environment): Updated.
4161         * node.cpp (font_info): Make `get_style_name' a friend.
4162         (get_style_name): New function.
4163         * node.h: Updated.
4165         * man/groff_diff.man, man/groff.man, NEWS, doc/groff.texinfo:
4166         Updated.
4168 2004-06-15  Werner LEMBERG  <wl@gnu.org>
4170         * src/preproc/tbl/main.cpp (process_data) <GOT_RIGHT_BRACE>: Handle
4171         `nospaces' option.
4173 2004-06-10  Colin Percival  <colin.percival@wadham.ox.ac.uk>
4175         * doc/meintro.me, doc/meref.me: Don't use \*[td], \n[dy], \*[mo],
4176         and \n[mo] to avoid dependency on current date.
4178 2004-06-08  Werner LEMBERG  <wl@gnu.org>
4180         * Makefile.sub (install_data): New target.
4182 2004-06-04  Werner LEMBERG  <wl@gnu.org>
4184         * src/libs/libxutil/Makefile.sub (EXTRA_CFLAGS): Define.
4186 2004-06-03  Werner LEMBERG  <wl@gnu.org>
4188         * src/devices/xditview/Makefile.sub (EXTRA_LDFLAGS): Fix typo and
4189         order of libraries.
4190         (install_data): Add $(srcdir).
4192         * src/utils/xtotroff/Makefile.sub (EXTRA_LDFLAGS): Fix order of
4193         libraries.
4195 2004-06-02  Werner LEMBERG  <wl@gnu.org>
4197         * aclocal.m4 (GROFF_X11): s/have_no_x/groff_no_x/.
4198         Add X11 stuff to CFLAGS, LDFLAGS, and LIBS temporarily.
4199         Add test for Xmu library.
4200         (GROFF_APPRESDIR_OPTION, GROFF_APPRESDIR_CHECK,
4201         GROFF_APPRESDIR_DEFAULT): New macros.
4203         * configure.ac: Call GROFF_APPRESDIR_OPTION, GROFF_APPRESDIR_CHECK,
4204         and GROFF_APPRESDIR_DEFAULT.
4206         * configure: Regenerated.
4208         * Makefile.in (appresdir): New variable.
4209         (MDEFINES): Add appresdir.
4211         * src/devices/xditview/Makefile.sub (EXTRA_LDFLAGS): Add -Xmu and
4212         -Xt.
4213         (install_data, uninstall_sub): New targets to handle GXditview.ad.
4215         * src/utils/indxbib/Makefiles.ub (install_data): Depend on
4216         `$(srcdir)/eign', not `eign'.
4218         * MANIFEST, INSTALL, NEWS, PROBLEMS: Updated.
4220         * man/groff_out.man, man/roff.man, src/devices/grops/grops.man,
4221         src/devices/xditview/gxditview.man, src/roff/groff/groff.man:
4222         Protect (g)xditview with `\%' to avoid hyphenation.
4223         Other minor formatting.
4225 2004-06-01  Werner LEMBERG  <wl@gnu.org>
4227         Integrate gxditview into groff's standard directory hierarchy.
4229         * src/xditview/*: Moved to ...
4230         * src/devices/xditview/*: Here.
4231         Moved DviChar.h and XFontName.h to src/include.
4232         Moved DviChar.c and XFontName.c to new directory src/libs/libxutil.
4233         Split off `xmalloc' into new file src/libs/libxutil/xmalloc.c.
4234         Moved xtotroff.c to new directory src/utils/xtotroff.
4235         Provide proper Makefile.sub files (reusing the stuff from
4236         Imakefile.in).
4237         DESC renamed to DESC.in.
4238         Removed GXDitview-ad.h, INSTALL, Imakefile.in.
4239         Converted everything from K&R to ANSI C.
4240         Decorated with const where appropriate.
4241         Cast string constants with `String' and `char *' where appropriate.
4242         Made it compile with C++ (used as a C compiler).
4243         Removed other minor compiler warnings.
4245         * src/devices/xditview/device.c: Include config.h, string.h, and
4246         defs.h.
4247         Don't declare `exit', `strtok', `strchr', and `getenv'.
4248         (FONTPATH): Remove.
4250         * src/devices/xditview/font.c: Don't declare `XParseFontName' and
4251         `XFormatFontName'.
4253         * src/devices/xditview/xditview.c: Include config.h.
4254         Include stdio.h earlier.
4255         Protect declaration of `popen' and `pclose' with
4256         NEED_DECLARATION_POPEN and NEED_DECLARATION_PCLOSE.
4257         Replace `caddr_t' with `XtPointer'.
4258         (MakePromptFunc): New typedef.
4259         (DoPrint): Use RETSIGTYPE.
4260         (promptfunction): Change type to MakePromptFunc.
4261         (MakePrompt): Use MakePromptFunc for third argument.
4262         (xmalloc): Removed.
4264         * src/devices/xditview/ad2c: Add casts to `String'.
4266         * src/include/XFontName.h (XFontNameString): Don't use array
4267         notation.
4268         Add prototypes for `XParseFontName', `XFormatFontName',
4269         `XCompareFontName', and `XCopyFontName'.
4271         * src/include/Makefile.sub (HDRS): Add `DviChar.h' and
4272         `XFontName.h'.
4274         * src/utils/xtotroff/xtotroff.c: Include getopt.h.
4275         Don't declare `XParseFontName' and `XFormatFontName'.
4276         (xmalloc): Removed.
4277         (main): Remove `optind' and `optarg'.
4279         * Makefile.in (XDEVDIRS, XPROGDIRS, XLIBDIRS): New variables
4280         (to select programs which need X).
4281         Make XDEVIDIRS depend on `FORCE'.
4282         (X_CFLAGS, X_LIBS, X_EXTRA_LIBS, X_PRE_LIBS): New variables (for
4283         X support).
4284         (MDEFINES): Updated.
4285         (LIBDIRS): Use XLIBDIRS.
4286         (CPROGDIRS): Use XPROGDIRS.
4287         (DEVDIRS): Remove font directories for gxditview.
4288         (ALLDIRS, DISTDIRS): Add XDEVDIRS.
4289         (EXTRADIRS): Remove src/xditview.
4291         * Makefile.sub (DISCLEANFILES): Updated.
4293         * Makefile.comm (LIBXUTIL): New variable.
4294         (.cpp.o, .cpp.obj): Handle EXTRA_CCFLAGS.
4295         (.c.o, .c.obj, .y.o): Handle EXTRA_CFLAGS.
4297         * Makefile.cpg, Makefile.ccpg ($PROG): Handle EXTRA_LDFLAGS.
4299         * aclocal.m4 (GROFF_X11): New function.
4301         * configure.ac: Call GROFF_X11.
4302         Don't create src/xditview/Imakefile.
4303         Don't emit notice how to build gxditview.
4305         * configure: Regenerated.
4307         * test-groff.in (GROFF_BIN_PATH, XENVIRONMENT): Updated.
4309 2004-05-28  Akihiro Sagawa  <sagawa@sohgoh.net>
4311         * Makefile.in (CPPFLAGS): Define.
4312         (MDEFINES): Add CPPFLAGS.
4314 2004-05-27  Werner LEMBERG  <wl@gnu.org>
4316         * arch/misc/Makefile.sub (shdeps.sed): Use $(srcdir).
4318 2004-05-26  Niklas Edmundsson  <nikke@acc.umu.se>
4320         Fix problems with `friend name injections'.
4322         * src/preproc/eqn/box.h (make_mark_box, make_lineup_box,
4323         make_script_box), src/roff/troff/div.h (end_diversions),
4324         src/roff/troff/env.h (title), input.cpp (process_input_stack): Undo
4325         change 2004-04-08.
4327 2004-05-25  Bernd Warken  <bwarken@mayn.de>
4329         * src/preproc/pic/pic.man, doc/pic.ms: Add example for `command'.
4331 2004-05-25  Werner LEMBERG  <wl@gnu.org>
4333         * src/libs/libgroff/cset.cpp, src/libs/libgroff/lf.cpp,
4334         src/libs/libgroff/color.cpp: Include lib.h.
4336 2004-05-25  Paul Eggert  <eggert@cs.ucla.edu>
4338         * PROBLEMS: Update documentation for problems with Sun C++ 5.0
4339         through Forte 6u1, and for how to get GNU make on Solaris.
4341 2004-05-24  Werner LEMBERG  <wl@gnu.org>
4343         * PROBLEMS: Document problems with gcc 3.4.0 on Sun.  Reported
4344         by Paul Eggert.
4346 2004-05-15  Keith Marshall  <keith.d.marshall@ntlworld.com>
4348         * arch/misc/Makefile.sub (shdeps.sed): Don't use `$<' in explicit
4349         rule.
4351 2004-05-14  Werner LEMBERG  <wl@gnu.org>
4353         * REVISION: Set to 2.
4355         * aclocal.m4 (GROFF_STDINT_H): Removed.
4356         (GROFF_INTTYPES_H): Define HAVE_CC_INTTYPES_H.
4358         * configure.ac: Updated.
4359         * configure, src/include/config.hin: Regenerated.
4361         * src/libs/libgroff/tmpname.cpp: Don't include stdint.h but
4362         inttypes.h conditionally.
4364 2004-05-13  Werner LEMBERG  <wl@gnu.org>
4366 Version 1.19.1 released
4367 =======================
4369 2004-05-10  Stephen Gildea  <http://www.gildea.com/stephen>
4371         * src/preproc/refer/label.y (same_author_last_name,
4372         same_author_name): Handle empty sort keys.
4374 2004-05-10  Werner LEMBERG  <wl@gnu.org>
4376         * NEWS, README, TODO, PROJECTS, PROBLEMS, MANIFEST, doc/webpage.ms,
4377         tmac/TODO: Updated.
4379         * tmac/doc-syms (doc-str-Lb-libposix, doc-str-Lb-libpthread,
4380         doc-str-Lb-librt): Reset font.
4381         (Lb): Rename `doc-str-Lb' to `doc-str-Lb1'.
4382         Provide `doc-str-Lb' to reset font.
4383         * tmac/groff_mdoc.man: Updated.
4385 2004-05-08  Jan Schaumann  <jschauma@netmeister.org>
4387         * src/preproc/html/pre-html.cpp (make_message): Make it work for
4388         snprintf versions which don't conform to ANSI C 99 (this is,
4389         counting the string's trailing null byte in the return value).
4391 2004-05-07  Keith Marshall  <keith.d.marshall@ntlworld.com>
4393         * src/roff/troff/node.cpp (suppress_node::tprint): Don't expect
4394         that all implementations of sprintf handle null pointers correctly.
4396 2004-05-04  Werner LEMBERG  <wl@gnu.org>
4398         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
4399         Document `.U' register.
4401         * src/roff/troff/env.cpp (environment::mark_last_line)
4402         [WIDOW_CONTROL]: Fix scope of `p' for new C++ compilers.
4404 2004-05-04  Larry Kollar  <kollar@alltel.net>
4406         New read-only register `.U'; it returns 1 in safer mode and 0
4407         otherwise.
4409         * src/roff/troff/input.cpp (init_input_requests): Implement `.U'
4410         register.
4412 2004-05-03  Werner LEMBERG  <wl@gnu.org>
4414         * install-sh, mkinstalldirs: New versions; taken from texinfo CVS.
4416 2004-04-17  Werner LEMBERG  <wl@gnu.org>
4418         * src/include/font.h (font): Use `int' for ch_index.
4419         * src/libs/libgroff/font.cpp (font::alloc_ch_index,
4420         font::compact): Updated.
4422         * src/roff/groff/pipeline.c (run_pipeline) [_WIN32]: Fix compiler
4423         warnings.
4425         * src/roff/troff/div.cpp (begin_page), src/roff/troff/env.cpp
4426         (hyphen_word): Fix compiler warnings.
4427         * src/roff/troff/input.cpp (get_char_for_escape_name): Return
4428         `char'.
4429         Update all callers.
4430         (get_delim_number, get_line_arg): Change second argument type to
4431         `unsigned char'.
4432         (macro_header::copy, token::next, do_define_string,
4433         do_define_character, substring_request, asciify_macro,
4434         unformat_macro, read_size, non_interpreted_node::interpret,
4435         while_request, main: Fix compiler warnings.
4436         (read_color_draw_node): Initialize `col'.
4438         * src/preproc/tbl/table.cpp (horizontal_span, table_entry): Make
4439         `start_col' and `end_col' of type `int'.
4440         (vertical_rule): Make `col' of type `int'.
4442         * src/preproc/grn/hdb.cpp (DBRead): Protect call to getc with check
4443         for EOF.
4445         * src/preproc/refer/label.y (uppercase_array, lowercase_array):
4446         New arrays.
4447         (format_serial): Use them to remove dependency on ASCII.
4449         * src/devices/grops/ps.cpp (ps_printer::define_encoding): Fix
4450         compiler warning.
4451         * src/devices/grops/psrm.cpp (resource_manager::supply_resource):
4452         Ditto.
4454         * src/devices/grotty/tty.cpp (tty_font::load_tty_font): Fix
4455         compiler warnings.
4456         (glyph): Change type of `hpos' to `int'.
4458         * src/devices/lbp/lbp.cpp (strsep): Removed.  Unused.
4459         * src/devices/lbp/lbp.h (splinerel): Fix compiler warnings.
4461         * src/utils/tfmtodit.cpp (gf::load): Fix compiler warnings.
4463         * src/utils/pfbtops/pfbtops.c (get_text): Fix compiler warning.
4465 2004-04-16  Werner LEMBERG  <wl@gnu.org>
4467         * src/devices/grolbp/lbp.h, src/preproc/grn/gprint.h,
4468         src/preproc/grn/hgraph.cpp, src/preproc/grn/hpoint.cpp,
4469         src/preproc/html/pushback.cpp, src/preproc/html/pushback.h: Use
4470         `double' instead of `float' everywhere.
4471         * src/preproc/grn/main.cpp: Use `double' instead of `float'
4472         everywhere.
4473         (main): Add return value.
4474         * src/preproc/grn/hdb.cpp: Use `double' instead of `float'
4475         everywhere.
4476         Update all user functions.
4478         * src/include/search.h, src/include/ptable.h, src/include/printer.h,
4479         src/preproc/eqn/box.h, src/preproc/pic/object.h,
4480         src/preproc/refer/refer.h, src/preproc/tbl/table.h,
4481         src/preproc/tbl/table.cpp, src/roff/troff/env.h,
4482         src/roff/troff/div.h, src/roff/troff/token.h, src/roff/troff/node.h,
4483         src/roff/troff/input.cpp, src/roff/troff/request.h,
4484         src/roff/troff/node.cpp: Don't mix `struct' and `class' in forward
4485         declarations.
4487         * src/utils/indxbib/signal.c: Include stdlib.h.
4489 2004-04-14  Keith Marshall  <keith.d.marshall@ntlworld.com>
4491         * tmac/s.tmac (@init, RP): Allow initialization of the PO register
4492         before the first page.
4494 2004-04-14  Thomas Klausner  <wiz@netbsd.org>
4496         * tmac/doc-common (doc-volume-as-*): Use lowercase names.
4497         (doc-operating-system-*): Updated.
4498         * tmac/doc-syms (doc-str-St-*): Various small fixes.
4499         (doc-str-Lb-*): Add more library names.
4501 2004-04-10  Art Haas  <ahaas@airmail.net>
4503         * src/utils/hpftodit/hpuni.cpp (hp_msl_to_unicode_list): Don't
4504         use anonymous type.
4506 2004-04-09  Art Haas  <ahaas@airmail.net>
4508         * src/utils/tfmtodit.cpp (lig_chars): Don't use anonymous type.
4510 2004-04-09  Keith Marshall  <keith.d.marshall@ntlworld.com>
4512         * arch/misc/shdeps.sh: Generate better comment for sed script.
4514 2004-04-08  Art Haas  <ahaas@airmail.net>
4516         * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list),
4517         src/libs/libgroff/uniglyph.cpp (unicode_to_glyph_list),
4518         src/libs/libgroff/uniuni.cpp (unicode_decompose_list),
4519         src/preproc/eqn/box.cpp (param_table), src/preproc/grn/hgraph.cpp
4520         (polyfill), src/preproc/grn/main.cpp (polyfill),
4521         src/preproc/refer/command.cpp (command_table),
4522         src/utils/tfmtodit.cpp (lig_table): Don't use anonymous types (which
4523         gcc 3.5 doesn't like).
4525 2004-04-08  Werner LEMBERG  <wl@gnu.org>
4527         Removing many compiler warnings.  groff should now compile with
4528         a C++ compiler used for C files also.  [Simple variable renamings
4529         to avoid shadowing aren't logged in detail.]
4531         * src/devices/grodvi/dvi.cpp: Some local variable renamings.
4532         (draw_dvi_printer::draw) ['c']: Enclose in block.
4534         * src/devices/grohtml/post-html.cpp: Some local variable renamings.
4535         (page::add_line): Fix typos.
4536         * src/devices/grohtml/html-text.cpp: Some local variable renamings.
4538         * src/devices/grolbp/lbp.cpp: Don't define _GNU_SOURCE.
4539         Some local variable renamings.
4540         * src/devices/grolbp/lbp.h: Some local variable renamings.
4542         * src/devices/grolj4/lj4.cpp, src/devices/grotty/tty.cpp: Some local
4543         variable renamings.
4545         * src/libs/libbib/index.cpp (index_search_item_iterator::get_tag):
4546         Remove redundant local variable declaration.
4547         * src/libs/libbib/map.c (mapread, unmap): Don't use K&R style.
4548         Don't use `caddr_t' but `void *'.
4549         Enclose functions with `extern "C"' for C++.
4551         * src/libs/libdriver/input.cpp (remember_filename,
4552         remember_source_filename): Use cast for string constant.
4554         * src/libs/libgroff/font.cpp, src/libs/libgroff/fontfile.cpp,
4555         src/libs/libgroff/nametoindex.cpp, src/libs/libgroff/paper.cpp,
4556         src/libs/libgroff/geometry.cpp: Some local variable renamings.
4557         * src/libs/libgroff/iftoa.c, src/libs/libgroff/itoa.c: Don't use K&R
4558         style.
4559         Enclose functions with `extern "C"' for C++.
4560         * src/libs/libgroff/quotearg.c (TRUE,FALSE): Define as macros.
4561         (needs_quoting): Return `int'.
4562         (quote_arg): Add proper casts to malloc and realloc.
4563         * src/libs/libgroff/spawnvp.c: Compile code only for MS-DOS and
4564         various MS Windows environments.
4565         (spawnvp_wrapper): Add proper cast to malloc.
4567         * src/preproc/eqn/box.h: Remove redundant declarations of
4568         `make_script_box', `make_mark_box' and `make_lineup_box'.
4569         * src/preproc/eqn/eqn.y: Remove redundant declaration of `strsave'.
4570         * src/preproc/eqn/script.cpp, src/preproc/eqn/pile.cpp: Some local
4571         variable renamings.
4573         * src/preproc/grn/hpoint.cpp: Some local variable renamings.
4574         * src/preproc/grn/hgraph.cpp: Some local variable renamings.
4575         (dx, dy): Renamed functions to...
4576         (deltax, deltay): This.
4577         * src/preproc/grn/main.cpp: Some local variable renamings.
4578         (deffont): Add `const'.
4579         (initpic, conv): Use cast for string constant.
4581         * src/preproc/html/pre-html.cpp: Some local variable renamings.
4582         (makeFileName, alterDeviceTo, addZ): Use cast for string constant.
4583         (char_buffer::run_output_filter): Second argument is unused.
4584         * src/preproc/html/pushback.cpp: Some local variable renamings.
4586         * src/preproc/pic/pic.y: Remove redundant declaration of `do_copy'.
4587         * src/preproc/pic/object.cpp: Some local variable renamings.
4589         * src/preproc/refer/label.y (lookup_label): Remove redundant
4590         declaration of local variable.
4592         * src/preproc/soelim.cpp: Remove redundant declaration of
4593         `interpret_lf_args'.
4595         * src/preproc/tbl/main.cpp: Some local variable renamings.
4597         * src/roff/groff/groff.cpp (main): Use cast for string constant.
4598         * src/roff/groff/pipeline.c: Enclose declarations of `error',
4599         `c_fatal', and `i_to_a' with `extern "C"' for C++.
4600         Don't use C++-style comments.
4602         * src/roff/troff/env.h: Remove redundant declaration of `title'.
4603         * src/roff/troff/node.h, src/roff/troff/env.cpp,
4604         src/roff/troff/div.cpp, src/roff/troff/node.cpp: Some local variable
4605         renamings.
4606         * src/roff/troff/div.h: Remove redundant declaration of
4607         `end_diversions'.
4608         * src/roff/troff/troff.h: Remove redundant declaration of
4609         `cleanup_and_exit'
4610         * src/roff/troff/input.cpp: Remove redundant declaration of
4611         `handle_first_page_transition' and `process_input_stack'.
4613         * src/utils/hpftodit.cpp: Some local variable renamings.
4615         * src/utils/indxbib/signal.c: Enclose functions with `extern "C"'
4616         for C++.
4617         Don't define RETSIGTYPE.
4618         * src/utils/indxbib/indxbib.cpp: Some local variable renamings.
4620         * src/utils/pfbtops/pfbtops.cpp: Don't use K&R style.
4621         (error): Use `const' in argument.
4622         (main): Remove redundant declaration of `optind'.
4623         Move declaration of `Version_string' to top-level.
4625         * PROBLEMS: Document difficulties compiling signal.c if a C++
4626         compiler is used for C.
4628 2004-04-07  Werner LEMBERG  <wl@gnu.org>
4630         * Makefile.sub (DISTCLEANFILES): Add `test-groff'.
4632 2004-04-06  Keith Marshall  <keith.d.marshall@ntlworld.com>
4634         Make scripts like nroff.sh and neqn.sh portable across various
4635         (Unix-like) shell implementations from Cygwin, MSYS, etc., which use
4636         non-POSIX path separators.  The idea is to extend those scripts to
4637         decide at run-time (of the script) which path separator to use.
4639         * arch/misc/Makefile.sub: New file.
4640         * arch/misc/shdeps.sh: New file, generating OS dependency fixups.
4641         This script handles @GROFF_BIN_PATH_SETUP@, replacing it with
4642         a proper definition of the variable `GROFF_RUNTIME'.
4644         * Makefile.in (SH_DEPS_SED_SCRIPT): New variable.
4645         (MDEFINES): Add SH_DEPS_SED_SCRIPT.
4646         (PROGDEPDIRS): New variable.
4647         `FORCE' it.
4648         (PROGDIRS): Add PROGDEPDIRS.
4650         * src/preproc/eqn/Makefile.sub (neqn): Call SH_DEPS_SED_SCRIPT.
4651         Don't substitute @SEP@ and @BINDIR@.
4652         * src/preproc/eqn/neqn.sh: Use @GROFF_BIN_PATH_SETUP@.
4653         (PATH): Use GROFF_RUNTIME.
4655         * src/roff/nroff/Makefile.sub (nroff): Call SH_DEPS_SED_SCRIPT.
4656         Don't substitute @SEP@ and @BINDIR@.
4657         * src/roff/nroff/nroff.sh: Use @GROFF_BIN_PATH_SETUP@.
4658         (PATH): Use GROFF_RUNTIME.
4660 2004-04-05  Keith Marshall  <keith.d.marshall@ntlworld.com>
4662         * src/roff/nroff/nroff.sh: Implement work-around for sh.exe from
4663         Cygwin which doesn't handle stderr correctly.
4665 2004-03-08  Werner LEMBERG  <wl@gnu.org>
4667         * Makefile.comm (install_dev, uninstall_dev): Protect `for' loops
4668         against empty argument.  Problem reported by <cgd@broadcom.com>.
4670 2004-03-05  Keith Marshall  <keith.d.marshall@ntlworld.com>
4672         * Makefile.in (SEP): Replaced with...
4673         (RT_SEP, SH_SEP): Separators for the target platform's native path
4674         separator and the build environment, respectively.
4675         (fontpath, tmacpath): Use RT_SEP.
4676         (MDEFINES): Updated.
4678         * doc/Makefile.sub (GROFF_BIN_PATH): Use SH_SEP.
4679         * src/preproc/eqn/Makefile.sub (neqn): Use SH_SEP.
4680         * src/roff/nroff/Makefile.sub (nroff): Use SH_SEP.
4682 2004-03-05  Werner LEMBERG  <wl@gnu.org>
4684         * font/devlj4/Makefile.sub (LJ4RES): Set to 1200.  This helps to
4685         reduce alignment problems with newer printers which use built-in
4686         TrueType fonts (instead of the older Intellifonts).  The ideal
4687         solution is to provide a second set of groff metric files, but this
4688         is extremely time-consuming to produce, given that HP's metric
4689         files are very rudimentary.
4691 2004-03-01  Werner LEMBERG  <wl@gnu.org>
4693         * src/devices/grolj4/lj4.cpp (main): Fix argument of getopt_long.
4694         s/operand/argument/ in error message.
4696 2004-03-01  Keith Marshall  <keith.d.marshall@ntlworld.com>
4698         * src/roff/groff/groff.cpp (main): Don't allow option -o if -Thtml
4699         is in use.
4701 2004-03-01  Antti Kantee  <pooka@netbsd.org>
4703         * tmac/s.tmac (XE): Fix error message.
4705 2004-02-27  Jeff Conrad  <jeff_conrad@msn.com>
4707         * src/include/nonposix.h (write, dup, dup2, close) [_MSC_VER]:
4708         New macros.
4710         * src/roff/groff/pipeline.c: Declare strcasecmp.
4711         (run_pipeline) [_WIN32]: Use function name variants which don't
4712         start with `_'.
4713         Fix stream handling.
4715 2004-02-27  Keith Marshall  <keith.d.marshall@ntlworld.com>
4717         * src/include/nonposix.h: Fix declaration of `system_shell_name'.
4718         Declare `spawnvp_wrapper' and macro definitions of spawnvp only
4719         for platforms which use the native Win32 runtime libraries.
4720         (FLUSH_INPUT_PIPE) [_UWIN]: Provide non-empty version.
4722         * src/libs/libgroff/quotearg.c (QUOTE_ARG_MALLOC_ERROR,
4723         QUOTE_ARG_REALLOC_ERROR): Fix string.
4725         * src/preproc/html/pre-html.cpp: Remove declaration of
4726         `spawnvp_wrapper'.
4727         Don't use __MINGW32__.
4728         s/DEBUG_FILE/DEBUG_FILE_DIR/.
4729         (DEBUG_TEXT, DEBUG_NAME, DEBUG_FILE) [DEBUGGING]: New macros.
4730         (OUTPUT_STREAM, PS_OUTPUT_STREAM, REGION_OUTPUT_STREAM): New macros.
4731         (char_buffer::run_output_filter) [MAY_FORK_CHILD_PROCESS]: Fix
4732         calls to `set_redirection' and `WAIT'.
4733         [MAY_SPAWN_ASYNCHRONOUS_CHILD]: Remove unused variable `i' and `j'.
4734         Fix calls to `set_redirection' and `save_and_redirect'.
4735         (char_buffer::do_html, char_buffer::do_image) [DEBUGGING]: Fix calls
4736         to `set_redirection' and `save_and_redirect'.
4737         (usage): Fix message.
4738         (makeTempFiles, main): Use `DEBUG_FILE'.
4740 2004-02-21  Werner LEMBERG  <wl@gnu.org>
4742         * src/roff/troff/troff.h (WARN_TOTAL): Fix value.
4744 2004-02-21  Keith Marshall  <keith.d.marshall@ntlworld.com>
4746         * src/libs/libgroff/quotearg.c: New file, providing proper argument
4747         quoting for MSVC's spawn* and exec* functions.
4748         * src/libs/libgroff/spawnvp.c: New file, providing a wrapper around
4749         spawnvp with proper quoting for MSVC.
4751         * src/libs/libgroff/assert.cpp (program_name),
4752         src/libs/libgroff/new.cpp (program_name): Declare as `extern "C"'.
4753         * src/libs/libgroff/Makefile.sub (OBJS, CSRCS): Updated.
4755         * src/roff/troff/input.cpp (program_name): Declare as `extern "C"'.
4757         * src/include/error.h (program_name): Declare as `extern "C"'.
4758         * src/include/nonposix.h [__MSDOS__ ...]: Handle spawnvp.
4760 2004-02-21  Jeff Conrad  <jeff_conrad@msn.com>
4762         * src/preproc/html/pre-html.cpp [__CYGWIN__ ...]: Declare
4763         spawnvp_wrapper.
4764         [MAY_SPAWN_ASYNCHRONOUS_CHILD]: Declare i and j.
4766 2004-02-20  Jeff Conrad  <jeff_conrad@msn.com>
4768         * src/roff/groff/pipeline.c (cmd) [__MSDOS__ || ...]: New global
4769         variable.
4770         (sbasename) [__MSDOS__ || ...]: New function.
4771         (system_shell_name) [__MSDOS__ || ...]: Use a different, more
4772         generic algorithm.
4773         (system_shell_dash_c, is_system_shell) [__MSDOS__ || ...]: Updated.
4774         (run_pipeline) [_WIN32]: Use _XXX variants for some macros instead
4775         of XXX.
4776         Use STDOUT_FILENO instead of hardcoded file handle.
4777         (signal_catcher) [__MSDOS__]: Moved to non-_WIN32 section.
4779 2004-02-19  Werner LEMBERG  <wl@gnu.org>
4781         * src/roff/troff/div.cpp: Include nonposix.h after troff.h to
4782         avoid warnings w.r.t. redefinition of P_tmpdir for some compilers.
4784 2004-02-18  Werner LEMBERG  <wl@gnu.org>
4786         * font/devlj4/Makefile.sub (DEVFILES): Updated to contain all
4787         new font and mapping files.
4789 2004-02-18  Jeff Conrad  <jeff_conrad@msn.com>
4790             Keith Marshall  <keith.d.marshall@ntlworld.com>
4792         * src/include/nonposix.h (FLUSH_INPUT_PIPE): New macro to empty
4793         an input pipe.  This is needed for the MSVC compiler to make troff's
4794         `-o' option work.
4796         * src/roff/troff/div.cpp: Include nonposix.h.
4797         (cleanup_and_exit): Call FLUSH_INPUT_PIPE.
4799 2004-02-17  Werner LEMBERG  <wl@gnu.org>
4801         * font/devlj4/generate/special.awk: New script.
4802         * font/devlj4/generate/Makefile (S): Use special.awk.
4803         * font/devlj4/*: Regenerated, including the following new files:
4804         Arial (AR, AB, AI, ABI), Times New Roman (TNRR, TNRB, TNRI, TNRBI),
4805         MS Symbol (SYMBOL), Wingdings (WINGDINGS).
4806         * NEWS: Document new lj4 fonts and revised hpftodit.
4808 2004-02-17  Paco Andrés Verdú  <pandres@dragonet.es>
4810         * src/devices/grolbp/lbp.h (vmdvarc): Fix formatting string.
4812 2004-01-25  Werner LEMBERG  <wl@gnu.org>
4814         * src/libs/libgroff/progname.cpp: Replaced with...
4815         * src/libs/libgroff/progname.c: New file.
4816         * src/libs/libgroff/Makefile.sub: Updated accordingly.
4818 2004-01-17  Werner LEMBERG  <wl@gnu.org>
4820         * font/devlj4/generate/Makefile (SYMBOL): Use 9nb28703.tfm.
4822 2004-01-16  Jeff Conrad  <jeff_conrad@msn.com>
4824         * font/devlj4/generate/wingdings.map,
4825         font/devlj4/generate/symbol.map: Include unnamed glyphs.
4826         Use groff glyph names where possible.
4827         * src/devices/grolj4/lj4_font.man: Minor updates.
4829 2004-01-13  Werner LEMBERG  <wl@gnu.org>
4831         * tmac/www.tmac (DC): Handle TTY devices.
4833         * doc/webpage.ms: Document viewCVS from ffii.org.
4834         * NEWS, README: Updated.
4836         * src/roff/groff/groff.man: Mention lj4_font man page.
4838         * font/devlj4/generate/Makefile (SYMBOLMAP, WINGDINGSMAP): New
4839         variables.
4840         (FONTS): Add SYMBOL and WINGDINGS.
4841         (SYMBOL, WINGDINGS): New targets.
4843 2004-01-13  Jeff Conrad  <jeff_conrad@msn.com>
4845         * src/devices/grolj4/lj4_font.man: New man page.
4846         * src/devices/grolj4/Makefile.sub (MAN5): New variable.
4847         * src/devices/grolj4.man: Mention lj4_font man page.
4849         * src/utils/hpftodit/hpftodit.cpp (read_map): Handle line comments.
4850         * src/utils/hpftodit/hpftodit.man: Document it.
4851         (CW): New macro.
4852         Remove details about fonts (which are now in lj4_font.man).
4854         * font/devlj4/generate/symbol.map,
4855         font/devlj4/generate/wingdings.map: New files.
4857 2004-01-12  Werner LEMBERG  <wl@gnu.org>
4859         * README: Mention ffii's viewcvs access.
4861 2004-01-09  Werner LEMBERG  <wl@gnu.org>
4863         * font/devlj4/generate/special.map: Map MSL 228 to U+221F.
4865 2004-01-09  Jeff Conrad  <jeff_conrad@msn.com>
4867         Revert most of the change from 2004-01-03 to better control used
4868         symbol sets.
4870         * src/utils/hpftodit/hpftodit.cpp (symbol_set): New structure.
4871         (text_symbol_sets, special_symbol_sets): New arrays.
4872         (symbol_set_table): New global variable.
4873         (read_symbol_sets): Use search order given in the text_symbol_sets
4874         and special_symbol_sets arrays.  If command line flag -a is not
4875         given, search both arrays.
4876         (output_charset): Require x_height_tag only for command line flag -i.
4878 2004-01-06  Werner LEMBERG  <wl@gnu.org>
4880         Implement string-valued registers \n[.m] and \n[.M] to return the
4881         name of the current drawing and background color, respectively.
4883         * src/roff/troff/symbol.h: Moved to...
4884         * src/include/symbol.h: Here.
4885         Small fixes to make it work outside of the `troff' directory.
4886         * src/roff/troff/symbol.cpp: Moved to...
4887         * src/libs/libgroff/symbol.cpp: Here.
4888         Small fixes to make it work outside of the `troff' directory.
4890         * src/include/Makefile.sub (HDRS), src/libs/libgroff/Makefile.sub
4891         (OBJS, CCSRCS), src/roff/troff/Makefile.sub (OBJS, CCSRCS, HDRS):
4892         Updated.
4894         * src/include/color.h: Include symbol.h.
4895         (color): Add new field `nm'.
4896         * src/libs/libgroff/color.cpp (color::color): Updated.
4898         * src/roff/troff/dictionary.cpp, src/roff/troff/div.cpp,
4899         src/roff/troff/node.cpp, src/roff/troff/number.cpp,
4900         src/roff/troff/reg.cpp: Don't include symbol.h.
4902         * src/roff/troff/env.cpp: Don't include symbol.h.
4903         (environment::get_glyph_color_string,
4904         environment_get_fill_color_string): New member functions.
4905         (init_env_requests): Handle `.m' and `.M' registers.
4906         * src/roff/troff/input.cpp: Don't include symbol.h.
4907         (default_symbol): Moved to symbol.cpp/symbol.h.
4908         (do_glyph_color, do_fill_color, define_color): Pass symbol name
4909         to color constructor.
4910         * src/roff/troff/env.h: Updated.
4912         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
4913         Document new registers.
4915 2004-01-05  Werner LEMBERG  <wl@gnu.org>
4917         * src/roff/troff/node.cpp (space_node::get_breakpoints,
4918         space_node::nbreaks): Protect against zero `next' field.
4920 2004-01-03  Jeff Conrad  <jeff_conrad@msn.com>
4922         In hpftodit, use the symbol sets offered in the TFM.
4924         * src/utils/hpftodit/hpftodit.cpp (NO_GLYPH): New constant.
4925         (symbol_set, text_symbol_sets, special_symbol_sets,
4926         symbol_set_table): Removed.
4927         (get_printcode): Removed.
4928         (read_symbol_sets): Initialize `symbol_set' field with
4929         `NO_SYMBOL_SET'.
4930         Simplify code to just use the `kind' value.
4931         (output_charset): Improve output formatting.
4932         (dump_symbols): Simplified.
4934 2004-01-02  Werner LEMBERG  <wl@gnu.org>
4936         * font/devlj4/generate/text.map: Add more MSL numbers.
4938 2004-01-02  Jeff Conrad  <jeff_conrad@msn.com>
4940         * src/utils/hpftodit/hpftodit.cpp (is_decomposed): New macro.
4941         (text_symbol_sets): Add more symbol sets.
4942         (debug_flag): New static variable (moved from `main').
4943         (get_printcode, show_symset): New functions.
4944         (main): Remove `debug_flag'.
4945         (output_charset): Use `show_symset'.
4946         (dump_symbols):  Use `show_symset'.
4947         Print symsets for all glyphs.
4948         (read_map): Actually call `unicode_to_ucode_make' but this time
4949         correctly.
4951 2004-01-01  Werner LEMBERG  <wl@gnu.org>
4953         * font/devlj4/generate/text.map, font/devlj4/generate/special.map:
4954         Fix placement of comments.
4956 2004-01-01  Jeff Conrad  <jeff_conrad@msn.com>
4958         * src/utils/hpftodit/hpftodit.cpp (main): Read map file also if
4959         option `-d' is given.
4960         (output_charset): Improve warning messages to give more information.
4961         (dump_symbols): Make information more precise.
4962         (usage): Updated.
4963         (read_map): Don't call unicode_to_ucode_name; the glyph names must
4964         appear as-is and shouldn't be decomposed.
4966 2003-12-31  Werner LEMBERG  <wl@gnu.org>
4968         * src/utils/hpftodit/hpftodit.cpp (dump_tags): Handle posture_tag.
4969         * font/devlj4/generate/Makefile (IFLAG): Updated to new units.
4970         (FONTS): Add TrueType font families Arial and Times New Roman.
4971         (TNRR, TNRB, TNRI, TNRBI, AR, AB, AI, ABI): New targets.
4972         * font/devlj4/generate/text.map: Fix Unicode values of `fi' and
4973         `fl'.
4975 2003-12-31  Jeff Conrad  <jeff_conrad@msn.com>
4977         * test-groff.in (SEP): Quote value.
4978         * src/roff/troff/node.cpp (suppress_node::tprint): Change type of
4979         `tem' to `char*' to avoid deallocation of a pointer to a constant
4980         object which some compilers don't like.
4982 2003-12-31  Werner LEMBERG  <wl@gnu.org>
4984         * font/devlj4/generate (text.map, special.map): Rewritten to work
4985         with the new hpftodit version.
4987 2003-12-30  Jeff Conrad  <jeff_conrad@msn.com>
4989         * src/utils/hpftodit/hpftodit.cpp (output_charset): Emit HP symbol
4990         set and 8bit character code for all glyphs also.
4992 2003-12-30  Werner LEMBERG  <wl@gnu.org>
4994         * src/libs/libgroff/strcasecmp.c: Updated from gnulib.
4996 2003-12-29  Werner LEMBERG  <wl@gnu.org>
4998         More fixes for MSVC compiler.
5000         * doc/Makefile.sub (GROFF_BIN_PATH): Use $(SEP).
5002         * src/include/nonposix.h (STDIN_FILENO, STDOUT_FILENO,
5003         STDERR_FILENO) [_MSC_VER]: Define conditionally.
5004         (getpid) [_MSC_VER]: Remove.
5005         Include direct.h and process.h conditionally.
5007         * src/roff/troff/node.cpp (suppress_node::tprint): Don't use
5008         parentheses for a_delete.
5010         * src/utils/lookbib/lookbib.cpp: Include nonposix.h.
5012         * test-groff: Replaced with...
5013         * test-groff.in: This new template to handle path separator
5014         properly.
5016         * configure.ac: Check for direct.h and process.h.
5017         Generate test-groff script.
5018         * configure, src/include/config.hin: Regenerated.
5020 2003-12-28  Werner LEMBERG  <wl@gnu.org>
5022         Add integral extension glyph.
5023         Add new option `-x' to afmtodit to suppress use of built-in AGL.
5025         * font/devhtml/R.proto, font/devutf8/R.proto: Add `u23AE'.
5027         * font/devps/generate/textmap: Provide entry for `integralex' to
5028         override (old) PUA value of the AGL.
5029         * font/devps/generate/Makefile (SS): Add afmtodit option `-x'.
5030         * font/devps/*: Regenerated.
5032         * src/utils/afmtodit/afmtodit.pl: Add option `-x'.
5033         * src/utils/afmtodit/afmtodit.man, NEWS: Updated.
5035 2003-12-27  Werner LEMBERG  <wl@gnu.org>
5037         Add forgotten `coproduct' symbol (already available for DVI).
5039         * font/devhtml/R.proto, font/devps/generate/textmap,
5040         font/devps/symbolmap, font/devutf8/R.proto, man/groff_char.man,
5041         src/libs/libgroff/uniglyph.cc, src/libs/libgroff/glyphuni.cpp: Add
5042         U+2210 (\[coproduct]).
5044 2003-12-26  Jeff Conrad  <jeff_conrad@msn.com>
5046         hpftodit has been extended to handle TrueType metric files and
5047         more glyphs.  See hpftodit.man for more details.
5049         * src/utils/hpftodit/hpftodit.cpp: Include stdio.h, string.h,
5050         ctype.h, and unicode.h.
5051         s/msl/charcode/ everywhere since we now handle Unicode values also.
5052         (equal, NO, YES, MSL, SYMSET, UNICODE, UNICODE): New macros.
5053         Use it where appropriate.
5054         (MULTIPLIER): Replaced with...
5055         (multiplier): New global static variable.
5056         (scale): Updated.
5057         (tag_type): Add more TFM tags.
5058         (tag_name): New array.
5059         (ENUM_TYPE, FLOAT_TYPE): Removed.
5060         (BYTE_TYPE): New value assigned.
5061         (ASCII_TYPE, RATIONAL_TYPE): New enumeration values.
5062         (text_symbol_sets, special_symbol_sets): Extended to cover more
5063         sets.
5064         (check_type): Add return value.
5065         (check_units): Add parameters to get ppi and upem values.
5066         Handle TrueType TFM data.
5067         (output_font_name): New function.
5068         (output_charset): Add parameter to handle TFM type.
5069         Handle TrueType TFMs also.
5070         (em_fract): New macro.
5071         (dump_tags): Be much more verbose and handle more tags.
5072         (dump_ascii, dump_symbol_sets, dump_symbols): New functions.
5073         (hp_msl_to_ucode_name, unicode_to_ucode_name, is_uname): New
5074         functions.
5075         (read_map): Add parameter to handle TFM type.
5076         Handle both MSL and Unicode mappings.
5077         (main): Add two new command line options `-a' and `-q'.
5078         Updated to make use of new functions.
5079         (usage): Updated.
5081         * src/utils/hpftodit/hpuni.cpp: New file.
5083         * src/utils/hpftodit/Makefile.sub, src/utils/hpftodit/hpftodit.man:
5084         Updated.
5086 2003-12-25  Werner LEMBERG  <wl@gnu.org>
5088         * src/include/nonposix.h (read) [_MSC_VER]: Define.
5090 2003-12-24  Werner LEMBERG  <wl@gnu.org>
5092         * src/utils/afmtodit/afmtodit.man: Some reformulations as suggested
5093         by Michail Vidiassov <master@iaas.msu.ru>.
5095 2003-12-20  Werner LEMBERG  <wl@gnu.org>
5097         * font/devhtml/R.proto: Add u00{47,67}_0306, u00{53,73}_0327,
5098         and u0049_0307.
5099         Add missing latin-2 glyphs.
5100         * font/devutf8/R.proto: Add missing latin-2 glyphs.
5102         * tmac/troffrc: Load `composite.tmac' earlier.
5104         * tmac/dvi.tmac, tmac/ps.tmac, tmac/lbp.tmac: Add u00{47,67}_0306,
5105         u00{53,73}_0327, and u0049_0307.
5106         * tmac/X.tmac: Add u00{47,67}_0306.
5107         * tmac/tty-char.tmac: Use composite glyph names for readability.
5109         * NEWS: Updated.
5111         * src/include/unicode.h: Remove `extern' keywords.
5113 2003-12-20  Nilgün Belma Bugüner  <nilgun@superonline.com>
5115         * tmac/latin5.tmac: New file.
5117 2003-12-19  Werner LEMBERG  <wl@gnu.org>
5119         Add some glyphs needed for Turkish.
5121         * font/devutf8/R.proto: Add u00{47,67}_0306, u00{53,73}_0327,
5122         and u0049_0307.
5124         * tmac/composite.tmac: Add `,' as a synonym for `ac' accent.
5125         * tmac/tty-char.tmac: Add representations for u00{47,67}_0306,
5126         u00{53,73}_0327, and u0049_0307.
5128 2003-12-18  Werner LEMBERG  <wl@gnu.org>
5130         * src/devices/grops/ps.cc (ps_output::put_float): Revert change
5131         from 2001-10-04.
5132         Remove trailing zeros.
5134 2003-12-17  Werner LEMBERG  <wl@gnu.org>
5136         Make \? transparent to end-of-sentence recognition.
5138         * src/roff/troff/input.cc (non_interpreted_node): Add
5139         `ends_sentence' member function.
5141 2003-12-16  Werner LEMBERG  <wl@gnu.org>
5143         * doc/groff.texinfo: Document `dt' request correctly.
5144         Other minor typographical improvements.
5146 2003-12-10  Michail Vidiassov  <master@iaas.msu.ru>
5148         * src/utils/afmtodit/Makefile.sub (afmtodit): Fix typo.
5150 2003-12-10  Richard Stallman  <rms@gnu.org>
5152         * LICENSE: Better wording.
5154 2003-12-09  Werner LEMBERG  <wl@gnu.org>
5156         * aclocal.m4 (GROFF_BROKEN_SPOOLER_FLAGS): Set default value to 0.
5157         * configure, NEWS: Updated.
5159 2003-12-08  Werner LEMBERG  <wl@gnu.org>
5161         * FDL: Updated to version 1.2 (from www.gnu.org/copyleft).
5163 2003-12-07  Bernd Warken  <bwarken@mayn.de>
5165         * LICENSE: Updated.
5167 2003-12-07  Werner LEMBERG  <wl@gnu.org>
5169         * INSTALL: Improved.
5171 2003-12-05  Keith Marshall  <keith.d.marshall@ntlworld.com>
5173         Use path separator character of target platform for compiled-in
5174         default paths.
5176         * aclocal.m4 (GROFF_TARGET_PATH_SEPARATOR): New macro.
5177         * configure.ac: Use GROFF_TARGET_PATH_SEPARATOR.
5178         * configure: Regenerated.
5179         * Makefile.in (SEP): Use GROFF_PATH_SEPARATOR.
5181 2003-12-05  Werner LEMBERG  <wl@gnu.org>
5183         * src/include/nonposix.h (PATH_SEP_CHAR): New definition.
5184         Replace `PATH_SEP[0]' with `PATH_SEP_CHAR' everywhere.
5186 2003-12-04  Bernd Warken  <bwarken@mayn.de>
5188         * LICENSE: New file.
5190 2003-12-03  Werner LEMBERG  <wl@gnu.org>
5192         * src/utils/afmtodit/afmtodit.pl: Comment out code which handles
5193         ligatures present in AFM files since groff currently only
5194         understands some standard ligatures and nothing else.
5196 2003-12-03  Jeff Conrad  <jeff_conrad@msn.com>
5198         * src/roff/groff/groff.cpp (main): Don't run the spooler if
5199         option -v is given.
5201         * src/roff/groff/pipeline.c (run_pipeline) [_WIN32]: Fix error
5202         messages.
5203         Close stdout copy.
5204         Don't use Unix wait flags.
5206 2003-12-02  Werner LEMBERG  <wl@gnu.org>
5208         * src/roff/troff/glyphuni.cpp, src/roff/troff/unicode.cpp,
5209         src/roff/troff/unicode.h, src/roff/troff/uniglyph.cpp,
5210         src/roff/troff/uniuni.cpp: Moved to...
5211         * src/libs/libgroff/glyphuni.cpp, src/libs/libgroff/unicode.cpp,
5212         src/libs/libgroff/unicode.h, src/libs/libgroff/uniglyph.cpp,
5213         src/libs/libgroff/uniuni.cpp: Here.
5215         * src/include/Makefile.sub.old (HDRS),
5216         src/libs/libgroff/Makefile.sub (OBJS, CCSRCS),
5217         src/roff/troff/Makefile.sub (HDRS, PBJS, CCSRCS): Updated.
5219 2003-12-01  Keith Marshall  <keith.d.marshall@ntlworld.com>
5221         * src/preproc/htlp/pre-html.cpp (__tmpfile): Renamed to
5222         `DEBUG_FILE'.
5223         Updated all users.
5225 2003-12-01  Werner LEMBERG  <wl@gnu.org>
5227         * groff.texinfo: Document special behaviour of `.vs 0'.
5228         Improve documentation of `cflags' request.
5229         * NEWS: Updated.
5231 2003-11-29  Werner LEMBERG  <wl@gnu.org>
5233         * font/devlj4/generate/Makefile (CORONET): Use correct TFM.
5234         * font/devlj4/CORONET: Regenerated.
5236 2003-11-24  Werner LEMBERG  <wl@gnu.org>
5238         * src/roff/troff/env.cpp (hyphen_trie::read_patterns_file): Fix loop
5239         if processing hyphenation patterns in traditional mode.
5240         Improve error messages.
5242 2003-11-20  Werner LEMBERG  <wl@gnu.org>
5244         * src/roff/troff/node.cpp (troff_output_file::put_char_width,
5245         troff_output_file::put_char): Fix type of local variable `c'.
5247 2003-11-19  Werner LEMBERG  <wl@gnu.org>
5249         * src/roff/groff/pipeline.c (P): Removed.  Updated all function
5250         declarations.
5251         (i_to_a): Removed.  libgroff already provides this function.
5252         (run_pipeline) [_WIN32]: Don't use itoa but i_to_a.
5254 2003-11-18  Keith Marshall  <keith.d.marshall@ntlworld.com>
5256         * src/roff/groff/pipeline.c (xstrsignal): Fix usage of
5257         HAVE_DECL_SYS_LIST.
5259 2003-11-17  Werner LEMBERG  <wl@gnu.org>
5261         * COPYING: Use correct version.
5263 2003-11-11  Werner LEMBERG  <wl@gnu.org>
5265         LynxOS 4.0.0 doesn't declare vfprintf.
5267         * configure.ac: Check for vfprintf.
5268         * configure: Regenerated.
5269         * src/include/lib.h: Handle `NEED_DECLARATION_VFPRINTF'.
5270         * src/include/config.hin: Regenerated.
5272 2003-11-10  Werner LEMBERG  <wl@gnu.org>
5274         LynxOS 4.0.0 has snprintf (without declaration) but no vsnprintf.
5276         * configure.ac: Check for vsnprintf.
5277         * configure: Regenerated.
5278         * src/include/lib.h: Handle `NEED_DECLARATION_VSNPRINTF' and
5279         `HAVE_VSNPRINTF'.
5280         * src/include/config.hin: Regenerated.
5282 2003-11-09  Werner LEMBERG  <wl@gnu.org>
5284         * aclocal.m4: Updated syntax to autoconf 2.59.
5285         (GROFF_HTML_PROGRAMS): Use AC_FOREACH.
5286         Don't check for gsos2.
5287         (GROFF_SRCDIR, GROFF_BUILDDIR): Removed.  autoconf 2.59 provides
5288         working abs_top_srcdir and abs_top_builddir.
5290         * configure.ac: Updated syntax to autoconf 2.59.
5291         Don't call GROFF_SRCDIR and GROFF_BUILDDIR.
5292         Replace call to AC_DECL_SYS_SIGLIST with call to AC_CHECK_DECLS.
5293         * configure: Regenerated.
5295         * Makefile.in, doc/Makefile.in: s/@top_srcdir@/@abs_top_srcdir@/,
5296         s/@groff_top_builddir@/@abs_top_builddir@/.
5298         * src/roff/groff/pipeline.c (xstrsignal):
5299         s/SYS_SIGLIST_DECLARED/HAVE_DECL_SYS_SIGLIST/.
5301 2003-11-07  Werner LEMBERG  <wl@gnu.org>
5303         * src/devices/grodvi/dvi.cpp (draw_dvi_printer::draw) ['a']: Always
5304         make start angle smaller than end angle to circumvent a bug in tpic
5305         handling of some versions of dvipdfm (and dvipdfmx).
5307 2003-10-30  Werner LEMBERG  <wl@gnu.org>
5309         * src/devices/grops/grops.man: Improve section on creating EPS.
5311 2003-10-29  Werner LEMBERG  <wl@gnu.org>
5313         * contrib/pic2graph/pic2graph.sh: Fix typo (-P-letter ->
5314         -P-pletter).
5316 2003-10-28  Werner LEMBERG  <wl@gnu.org>
5318         * doc/groff.texinfo: Fix documentation of `.if'.
5320 2003-10-27  Michail Vidiassov  <master@iaas.msu.ru>
5322         * src/utils/afmtodit/afmtodit.pl: Handle unmapped characters of
5323         the form `uniXXXX' also.
5325 2003-10-27  Werner LEMBERG  <wl@gnu.org>
5327         * contrib/eqn2graph/eqn2graph.sh, contrib/grap2graph/grap2graph.sh,
5328         contrib/pic2graph/pic2graph.sh: Implement secure management of
5329         temporary files.
5330         Pass `-P-pletter' to groff to avoid data outside of the converted
5331         area -- some versions of `convert' (for example 5.3.8) don't check
5332         the bounding box of the image but always use a fixed image size
5333         (letter paper format).
5334         * contrib/eqn2graph/eqn2graph.man, contrib/grap2graph/grap2graph.man,
5335         contrib/pic2graph/pic2graph.man: Updated.
5337         * src/roff/groff/groff.man: Document $TMP and $TEMP.
5339 2003-10-26  Werner LEMBERG  <wl@gnu.org>
5341         * src/preproc/pic/troff.cpp (troff_output::simple_circle,
5342         troff_output::simple_ellipse, troff_output::simple_arc,
5343         troff_output::simple_line, troff_output::simple_spline,
5344         troff_output::simple_polygon): Insert a space before arguments.
5345         (troff_output::set_fill): Emit `\&' before `\D'Fg...' since the
5346         latter doesn't produce a node, so the following `.sp -1' would do
5347         the wrong thing.
5348         Don't emit `.sp -1' after \M.  This also doesn't produce a token
5349         (and we don't have to care about compatibility mode).
5350         (troff_output::set_color, troff_output::reset_color): Don't emit
5351         `.sp -1' after \M and \m.
5353         * src/roff/troff/input.cpp (old_have_input): New global variable.
5354         (input_stack::get): Handle `old_have_input'.
5355         (process_input_stack) <token::TOKEN_NEWLINE>: Call
5356         `trapping_blank_line' depending on `old_have_input', not
5357         `have_input'.
5359 2003-10-20  Keith Marshall  <keith.d.marshall@ntlworld.com>
5361         * src/libs/libgroff/tmpfile.cpp [__MSDOS__, _Win32]
5362         (WIN32_TMPDIR_ENVVAR, MSDOS_TMPDIR_ENVVAR): New macros, providing
5363         default directory names for temporary files.
5364         [__MSDOS__, _Win32] (temp_init::temp_init): Use them.
5366         * src/roff/groff/pipeline.c [__MSDOS__]: Include stdlib.h.
5367         [__MSDOS__] (run_pipeline): Honour environment variables.
5368         Don't use `tmpnam' but `tempnam' to work around messy
5369         implementation.
5371         * README.MinGW: New file.
5373 2003-10-16  Werner LEMBERG  <wl@gnu.org>
5375         * src/preproc/html/pre-html.cpp (write_upto_newline): Don't use
5376         `(*t)->next' without testing validity of `*t'.
5377         (usage): Make it more readable.
5379 2003-10-16  Keith Marshall  <keith.d.marshall@ntlworld.com>
5381         Make html device run under both MS-DOS and Win32.
5383         * src/preproc/html/pre-html.cpp (MAY_FORK_CHILD_PROCESS,
5384         MAY_SPAWN_ASYNCHRONOUS_CHILD): New macros to control whether
5385         spawn or fork+exec has to be used, and whether parent must sleep
5386         until the child process terminates.  Used in
5387         `char_buffer::run_output_filter'.
5388         (copyofstdoutfd): Removed.
5389         (char_buffer): Replace `write_file_html' and `write_file_troff'
5390         member functions with `emit_troff_output' and `run_output_filter'.
5391         (DEVICE_FORMAT, HTML_OUTPUT_FILTER, IMAGE_OUTPUT_FILTER): New
5392         macros.
5393         (replaceFd): Replaced with...
5394         (set_redirection): New auxiliary function.
5395         (waitForChild): Replaced with...
5396         (save_and_redirect): New auxiliary function for.
5398         (char_buffer::do_html, char_buffer::do_image): Simplified, using new
5399         functions.
5401 2003-10-14  Keith Marshall  <keith.d.marshall@ntlworld.com>
5403         * aclocal.m4 (GROFF_SYS_NERR): Check stdlib.h also.
5404         (GROFF_LIBC): New function.
5405         * configure.ac: Call GROFF_LIBC.
5406         Check for `kill'.
5407         * configure: Regenerated.
5409         * src/include/lib.h: Handle __MINGW32__.
5410         * src/include/nonposix.h [_MSC_VER]: Handle __MINGW32__.
5411         Add macro for `pipe'.
5412         Define P_tmpdir.
5414         * src/roff/groff/pipeline.c (run_pipeline): Handle `no_pipe'
5415         correctly.
5417         * src/utils/indxbib/signal.c (handle_fatal_signal) [!HAVE_KILL]:
5418         Implement.
5420 2003-10-12  Werner LEMBERG  <wl@gnu.org>
5422         * src/roff/groff/groff.cpp (help), src/devices/grops/ps.cpp (usage),
5423         src/roff/troff/input.cc (usage): Updated.
5425         * NEWS, doc/groff.texinfo: Updated.
5427 2003-10-12  Peter Miller  <millerp@canb.auug.org.au>
5429         * src/libs/libgroff/searchpath.cpp
5430         (search_path::open_file_cautious): New function which also handles
5431         `-' as stdin and stdout depending on the access mode.
5432         * src/include/searchpath.h (search_path): Updated.
5434         * src/devices/grops/ps.cpp (main): Handle new `-I' switch.
5435         * src/devices/grops/ps.h: Include `searchpath.h'.
5436         * src/devices/grops/psrm.cpp (resource_manager::supply_resource):
5437         Open resource file with `include_search_path.open_file_cautious'.
5438         * src/devices/grops/grops.man: Document new `-I' switch.
5440         * src/devices/grodvi/dvi.cpp (main), src/devices/grolbp/lbp.cpp
5441         (main), src/devices/grolj4/lj4.cpp (main),
5442         src/devices/grotty/tty.cpp (main): Ignore new `-I' switch.
5444         * src/preproc/soelim/soelim.cpp (include_list_length, include_list):
5445         Replaced with...
5446         (include_search_path): New global variable.
5447         (include_path_append): Removed.
5448         (main): Use `include_search_path.command_line_dir' to handle `-I'.
5449         (do_file): Simplify, using new
5450         `include_search_path.open_file_cautious'.
5452         * src/roff/groff/groff.cpp (print_commands): Accept file handle as
5453         parameter.
5454         (main): Pass arguments to `-I' to both troff and devices.
5455         Improve handling of `-V'.
5456         * src/roff/groff/groff.man: Document changes to -I and -V.
5458         * src/roff/troff/input.cpp (include_search_path): New global
5459         variable.
5460         (next_file, source, ps_bbox_request, transparent_file,
5461         process_input_file): Use new
5462         `include_search_path.open_file_cautious'.
5463         (main) Handle `-I' switch.
5464         * src/roff/troff/node.cpp (troff_output_file::really_copy_file):
5465         Use new `include_search_path.open_file_cautious'.
5466         * src/roff/troff/node.h: New extern symbol `include_search_path'.
5467         * src/roff/troff/troff.man: Document new `-I' switch.
5469 2003-09-15  Ruslan Ermilov  <ru@FreeBSD.org>
5471         Support multiple calls of .Lb in LIBRARY section.
5473         * tmac/doc-common (doc-in-library-section): New register.
5474         (doc-section-library): New string.
5475         (Sh): Set `doc-in-library-section'.
5476         (Rd): Updated.
5477         * tmac/doc-syms (Lb): Insert breaks before and after arguments
5478         if in LIBRARY section.
5479         * tmac/doc.tmac (doc-save-global-vars): Updated.
5480         * NEWS, tmac/groff_mdoc.man: Updated.
5482 2003-09-14  Ruslan Ermilov  <ru@FreeBSD.org>
5484         * tmac/doc-common (doc-default-operating-system): New variable.
5485         (Os): Use it.
5487 2003-09-08  Werner LEMBERG  <wl@gnu.org>
5489         * tmac/doc.tmac (doc-reset-reference): Handle data for `%I' also.
5491 2003-08-31  Werner LEMBERG  <wl@gnu.org>
5493         * Makefile.comm: Use `test ... ||' in favor of `if test ...; then'.
5494         (install_dev, uninstall_dev): Check whether $(DEVSCRIPTS) and
5495         $(DEVFILES) are not empty.
5496         * Makefile.in: Use `test ... ||' in favor of `if test ...; then'.
5498 2003-08-23  Stephen Gildea  <http://www.gildea.com/stephen>
5500         * src/preproc/ref/ref.cpp (reference::compute_sort_key): Always
5501         insert SORT_SEP.  With certain combinations of sort specifications,
5502         refer sorted entries in the wrong order.  In particular, entries
5503         with a missing field should be be sorted before all entries that
5504         have that field, before refer looks to the next field.
5506 2003-08-23  Werner LEMBERG  <wl@gnu.org>
5508         * src/utils/pfbtops/Makefile.sub (LINK.c): Define it so that the
5509         g++ linker is used.  Reported by Mark J. Reed
5510         <mark.reed@turner.com>.
5512 2003-08-16  Heinz-Jürgen Oertel  <hj.oertel@surfeu.de>
5514         Add key character `x' to tbl which makes tbl call a user-defined
5515         macro on a table cell.
5517         * src/preproc/tbl/table.h (entry_modifier): Add `macro'.
5518         * src/preproc/tbl/table.cpp (block_entry::do_divert): Call
5519         `set_modifier' after printing the compatibility request.
5520         (set_modifier): Print call to `m->macro' if not empty.
5521         * src/preproc/tbl/main.cpp (entry_format::debug_print): Handle
5522         `macro'.
5523         (process_format): Implement cases `x' and `X'.
5524         * src/preproc/tbl/tbl.man, NEWS: Updated.
5526 2003-08-15  Werner LEMBERG  <wl@gnu.org>
5528         * doc/groff.texinfo: Minor fixes.
5530 2003-08-09  Werner LEMBERG  <wl@gnu.org>
5532         * tmac/an-old.tmac [cR]: Fix redefinition of `bp'.
5534 2003-08-07  Werner LEMBERG  <wl@gnu.org>
5536         * doc/Makefile.sub: Not all shells expand wildcards in the `for'
5537         argument list to nothing if there is no file to match.  Use `ls' as
5538         a protection, similar to autoconf.
5540         * Makefile.comm (install_dev, uninstall_dev): Protect `for' against
5541         empty argument lists.
5543         * doc/groff.texinfo: Improve documentation how vertical spacing
5544         and line breaks interact.
5545         Other minor fixes.
5547         * tmac/www.tmac: Initialize `www-htmlimage-gap'.
5549 2003-08-03  Werner LEMBERG  <wl@gnu.org>
5551         * NEWS, src/devices/grops/grops.man: -b16 is necessary to produce
5552         EPS (using eps2eps or similar programs to compute the bounding box).
5554 2003-07-24  Werner LEMBERG  <wl@gnu.org>
5556         * doc/groff.texinfo: Use the new @/ command to avoid overlong lines.
5557         * doc/texinfo.tex: Updated from texinfo 4.6.
5558         * README.CVS: From now on we need texinfo 4.6.
5560 2003-07-23  Werner LEMBERG  <wl@gnu.org>
5562         Add requests `dei1' and `ami1' for completeness.
5564         * src/roff/troff/input.cc (calling_mode): Remove
5565         CALLING_DISABLE_COMP.
5566         (comp_mode): New enumeration.
5567         (do_define_string, define_string, define_nocomp_string,
5568         append_string, append_nocomp_string): Updated.
5569         (do_define_macro): Add third parameter.
5570         (define_macro, define_nocomp_macro, define_indirect_macro,
5571         append_macro, append_nocomp_macro, append_indirect_macro): Updated.
5572         (define_indirect_nocomp_macro, append_indirect_nocomp_macro): New
5573         functions.
5574         (ignore): Updated.
5575         (init_input_requests): Add `dei1' and `ami1'.
5577         * tmac/trace.tmac: Handle de1 and am1.
5578         (de): Improve tracing message.
5579         (am): Add missing `do'.
5580         (return): Use de1.
5582         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
5583         Document new requests.
5585 2003-07-22  Heinz-Jürgen Oertel  <hj.oertel@surfeu.de>
5587         Add option -G to .MPIMG to insert a gap between text and the image.
5589         * tmac/www.tmac (www-finish-left-po, www-finish-right-ll,
5590         www-finish-left-ll): Updated.
5591         (www-image-just, www-image-gap, www-htmlimage-gap): New variables.
5592         (MPIMG): Make option -L and -R optional.
5593         Implement option -G.
5595 2003-07-22  Gaius Mulley  <gaius@glam.ac.uk>
5597         * src/devices/grohtml/post-html.cpp
5598         (html_printer::do_file_components): Don't use `stdout' as lvalue
5599         since it can be a macro.
5601 2003-07-22  Werner LEMBERG  <wl@gnu.org>
5603         * src/libs/libgroff/strerror.c: Include errno.h to be in sync with
5604         the corresponding test in aclocal.m4.
5606 2003-07-21  Werner LEMBERG  <wl@gnu.org>
5608         * src/preproc/html/pre-html.cpp (TRANSPARENT): Don't use colour
5609         names but RGB values directly.  Otherwise pnmtopng depends on
5610         an external file `rgb.txt' which maps colour names to values.
5612 2003-07-20  Werner LEMBERG  <wl@gnu.org>
5614         * aclocal.m4 (GROFF_SYS_ERRLIST): Include stdlib.h for MinGW.
5615         * configure, src/include/config.hin: Regenerated.
5617         * src/libs/libgroff/strerror.c: Include stdlib.h for MinGW.
5619 2003-07-19  Werner LEMBERG  <wl@gnu.org>
5621         * PROBLEMS: Add solution for UTF-8 problem with hyphens.
5623 2003-07-18  Werner LEMBERG  <wl@gnu.org>
5625         * *.man: Switch to non-compatibility mode temporarily if GNU
5626         syntax extensions are used in the particular man page.
5628         * PROBLEMS: Add solutions for SGR problems.
5630 2003-07-17  Werner LEMBERG  <wl@gnu.org>
5632         Don't ignore grotty's command line options if \X'tty: sgr ...' is
5633         used to change the drawing scheme.
5635         * src/devives/grotty/tty.cpp (bold_flag_option,
5636         underline_flag_option, italic_flag_option, reverse_flag_option,
5637         bold_underline_mode_option): New global variables.
5638         (update_options): New function.
5639         (tty_printer::special): Call update_options.
5640         (main): Don't set xxx_flag but xxx_flag_option, then call
5641         update_options.
5643 2003-07-14  Werner LEMBERG  <wl@gnu.org>
5645         Make grotty emit proper Unicode box drawing characters for -Tutf8.
5647         * src/devices/grotty/tty.cpp (START_LINE, END_LINE): New enum
5648         values.
5649         (hline_char, vline_char): New global variables.
5650         (tty_printer::tty_printer): Initialize them.
5651         (tty_printer::draw): Emit START_LINE and END_LINE flags for both
5652         horizontal and vertical lines.
5653         (crossings): New global array.
5654         (tty_printer::end_page): Use it to determine the proper crossing
5655         character for -Tutf8.
5657 2003-07-12  Werner LEMBERG  <wl@gnu.org>
5659         * doc/Makefilesub (HTMLDOCFILESALL): New macro.
5660         (HTMLDOCFILES): Revert to `pic.html'.
5661         (CLEANADD, install_html, uninstall_sub): Use HTMLDOCFILESALL.
5663 2003-07-11  Werner LEMBERG  <wl@gnu.org>
5665         * doc/pic.ms: Improve documentation of absolute coordinates.
5666         Document absolute positioning of pictures.
5668         * NEWS: Add new pic capability.
5670 2003-07-09  Hartmut Henkel  <hartmut_henkel@gmx.de>
5672         * src/libs/libgroff/geometry.cpp (check_output_arc_limits):
5673         Rewritten.
5675 2003-07-07  Werner LEMBERG  <wl@gnu.org>
5677         Implement support for dashed and dotted ellipses in pic.  Based on
5678         a patch from Hartmut Henkel <hartmut_henkel@gmx.de>.
5680         * src/preproc/pic/common.cpp (common_output::ellipse_arc,
5681         common_output::dashed_ellipse, common_output::dotted_ellipse): New
5682         functions.  Ellipse arcs are approximated with circle arcs.
5683         * src/preproc/pic/common.h (common_output): Updated.
5684         * src/preproc/pic/tex.cpp (tex_output::ellipse): Use new ellipse
5685         functions.
5686         * src/preproc/pic/troff.cpp (simple_output::ellipse): Ditto.
5688         * src/preproc/pic/TODO, src/preproc/pic/pic.man: Updated.
5690 2003-07-06  Werner LEMBERG  <wl@gnu.org>
5692         Make grotty work on platforms which have unsigned char as the
5693         default for char.  Based on a patch by Thomas Klausner
5694         <wiz@netbsd.org>.
5696         * src/devices/grotty/tty.cpp (schar): New typedef.
5697         Updated calls to declare_ptable and implement_ptable.
5698         (glyph): Use schar for back_color_idx and fore_color_idx.
5699         (tty_printer): Use schar for curr_fore_idx and curr_back_idx.
5700         (tty_printer::tty_color, tty_printer::tty_printer,
5701         tty_printer::color_to_idx, tty_printer::put_color): Updated.
5703 2003-07-06  Ruslan Ermilov  <ru@FreeBSD.org>
5705         * src/roff/nroff/nroff.sh: Add option -d for completeness.
5706         * src/roff/nroff/nroff.man: Updated.
5708 2003-07-05  Werner LEMBERG  <wl@gnu.org>
5710         * NEWS, tmac/groff_www.man: Updated.
5711         * doc/Makefile.sub: Updated.
5713 2003-07-05  Gaius Mulley  <gaius@glam.ac.uk>
5715         Implement support for multiple HTML output files.
5717         * src/preproc/html/pre-html.cpp (scanArguments): Dummy handling for
5718         -j command line option.
5720         * src/devices/grohtml/post-html.cpp (job_name, multiple_files): New
5721         global variables.
5722         (file): New fields `new_output_file', `require_links',
5723         `output_file_name'.
5724         (file::file): Updated.
5725         (files::set_file_name, files::set_links_required,
5726         files::are_links_required, files::is_new_output_file,
5727         files::file_name, files::next_file_name): New functions.
5728         (header_desc): New fields `no_of_level_one_headings',
5729         `header_filename'.
5730         (header_desc::header_desc): Updated.
5731         (header_desc::write_headings): Handle multiple files.
5732         (html_printer::write_header): Save file name in which header occurs.
5733         (html_printer::determine_header_level): Possibly split files on
5734         level one headings.
5735         (html_printer::do_links, html_printer::troff_tag): Updated.
5736         (html_printer::insert_split_file, html_printer::do_job_name,
5737         html_printer::emit_link, html_printer::write_navigation,
5738         html_printer::do_file_components): New functions.
5739         (html_printer::~html_printer): Handle multiple files.
5740         (main): Handle command line option `-j'.
5742         * src/devices/grohtml/grohtml.man: Updated.
5744         * doc/Makefile.sub (pic.html), doc/Makefile.in (pic.html): New rule
5745         which splits file.
5747         * tmac/www.tmac (JOBNAME): New macro.
5748         * tmac/s.tmac (SH-NO-TAG): New macro.
5749         (@SH): Call SH-NO-TAG.
5750         (@NH): Updated.
5752 2003-07-05  Ruslan Ermilov  <ru@FreeBSD.org>
5754         * tmac/groff_mdoc.man: Improve documentation of punctuation
5755         characters.
5757 2003-07-04  Ruslan Ermilov  <ru@FreeBSD.org>
5759         * tmac/doc.tmac (Bd): Change to doc-Li-font later.
5761 2003-07-03  Werner LEMBERG  <wl@gnu.org>
5763         * tmac/an-old.tmac [cR]: Redefine `bp' to avoid empty lines.
5765 2003-07-01  Ruslan Ermilov  <ru@FreeBSD.org>
5767         * tmac/doc.tmac (doc-do-func, doc-do-func-args): Don't print a comma
5768         after `/*' and `*/'.
5769         Fix spacing.
5770         (Fn, Fo): Reduce indentation in synopsis.
5772         * tmac/doc-common (doc-check-depth): New macro.
5773         (doc-end-macro, Sh, Ss): Use it.
5774         (Cd): Fix behaviour in synopsis.
5775         (In): Make it parsed and callable.
5776         If not in the synopsis, represent the C header file enclosed in
5777         angle brackets.
5778         (doc-str-Rv-std-suffix, doc-str-Rv-stds-suffix, doc-str-Rv-std0):
5779         Use minus, not hyphen.
5781         * tmac/groff_mdoc.man: Updated.
5783 2003-07-01  Werner LEMBERG  <wl@gnu.org>
5785         Integrated grap2graph, contributed by Eric S. Raymond.
5787         * contrib/grap2graph/{Makefile.sub, grap2graph.sh, grap2graph.man}:
5788         New files.
5789         * Makefile.in, NEWS, MANIFEST, contrib/eqn2graph.man,
5790         contrib/pic2graph.man, src/roff/groff/groff.man: Updated.
5792 2003-07-01  Colin Watson  <cjwatson@debian.org>
5794         * src/xditview/*.c: Add prototypes, fix return types, add includes.
5795         Based on work by Fumitoshi UKAI <ukai@debian.or.jp>.
5797 2003-06-31  Ruslan Ermilov  <ru@FreeBSD.org>
5799         * tmac/tty-char.tmac: Provide `lb', `rb', `lk', `rk', `lt', `rt'.
5801 2003-06-31  Werner LEMBERG  <wl@gnu.org>
5803         * doc/Makefile.sub (CLEANADD): Remove all files created by
5804         running `make groff.{pdf,dvi}'.
5806         * Makefile.sub (DISTCLEANFILES): Remove all non-source files from
5807         src/xditview also.
5809 2003-06-30  Werner LEMBERG  <wl@gnu.org>
5811         * Makefile.in (SHELL): Define as @SHELL@.
5812         (mkinstalldirs): Use $(SHELL).
5813         (MDEFINES): Add $(SHELL).
5814         * Makefile.comm (SHELL): Removed.
5816 2003-06-29  Werner LEMBERG  <wl@gnu.org>
5818         * tmac/s.tmac (De, Ds): New aliases for .DE and .DS, respectively.
5819         The X11 documentation files use them.
5820         * tmac/groff_ms.man, doc/groff.texinfo: Document them.
5822 2003-06-15  Robert Goulding  <goulding@Princeton.EDU>
5824         * tmac/e.tmac (@C): Handle .ad also.
5826 2003-06-12  Werner LEMBERG  <wl@gnu.org>
5828         * src/preproc/tbl/tbl.man: Document formatting of text blocks.
5830         * src/roff/troff/input.cc (token::next) <handle_escape_char>:
5831         Assign `n' even here.  It is possible to construct a node
5832         immediately following an escape character:
5834           .di xx
5835           \?\\\?a
5836           .br
5837           .di
5838           .xx
5840 2003-06-10  Werner LEMBERG  <wl@gnu.org>
5842         * README.WIN32: Removed.
5843         * MANIFEST: Updated.
5845 2003-06-07  Werner LEMBERG  <wl@gnu.org>
5847         * src/roff/nroff/nroff.sh: Don't emit SGR for option -u.
5849 2003-06-05  Werner LEMBERG  <wl@gnu.org>
5851         * src/preproc/pic/pic.y <sprintf_args>: Implement workaround for bug
5852         in Compaq C++ V6.5-033 for Compaq Tru64 UNIX V5.1A (Rev. 1885).
5854 2003-06-03  Werner LEMBERG  <wl@gnu.org>
5856         * src/preproc/grn/hdb.cpp (DBRead): Don't close file handle; this
5857         is done by the calling function.
5859 2003-05-22  Ruslan Ermilov  <ru@FreeBSD.org>
5861         * tmac/X.tmac: Fix definition of `em'.
5863 2003-05-22  Werner LEMBERG  <wl@gnu.org>
5865         * src/roff/troff/input.cc (return_macro_request): Fix detection of
5866         argument.
5868 2003-05-18  Werner LEMBERG  <wl@gnu.org>
5870         * tmac/doc.tmac (doc-tag-list): Force horizontal mode after tag
5871         to make items work which consist only of a tag.
5873 2003-05-17  Werner LEMBERG  <wl@gnu.org>
5875         * tmac/doc.tmac (doc-tag-list): Don't use \Z to assure that spaces
5876         aren't stretched in a tag (this can fail with unformatted boxes).
5877         Instead, insert a break and go back one line.
5879 2003-05-16  Werner LEMBERG  <wl@gnu.org>
5881         * src/roff/troff/input.cc (return_macro_request): If called with
5882         argument pop macro twice.  We need this to trace `return'.
5884         * tmac/trace.tmac: Handle `return'.
5885         Fix typos.
5887         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
5888         Document.
5890 2003-05-15  Larry Kollar  <kollar@alltel.net>
5892         * tmac/groff_ms.man, doc/groff.texinfo: Improve documentation of
5893         registers `FPS', `FVS', and `FPD'.
5895 2003-05-15  Werner LEMBERG  <wl@gnu.org>
5897         * src/utils/pfbtops/pfbtops.c (get_text): Handle loop counter
5898         correctly.
5900 2003-05-03  Ruslan Ermilov  <ru@FreeBSD.org>
5902         * tmac/groff_mdoc.man: Slight improvements.
5904 2003-05-03  Werner LEMBERG  <wl@gnu.org>
5906         * tmac/doc-common (doc-header): Emit vertical space of 1v instead of
5907         `doc-header-space' after header line if register `cR' is set.
5909 2003-05-02  Werner LEMBERG  <wl@gnu.org>
5911         * TODO: Updated.
5913 2003-05-01  Ruslan Ermilov  <ru@FreeBSD.org>
5915         * tmac/doc-common (Nd): Use \[em].
5917 2003-05-01  Werner LEMBERG  <wl@gnu.org>
5919         * tmac/doc-ditroff, tmac/doc-nroff (doc-header-space,
5920         doc-footer-space): Initialize to 0.5i.
5921         (doc-setup-page-layout): Don't set doc-header-space and
5922         doc-footer-space.
5924 2003-04-30  Werner LEMBERG  <wl@gnu.org>
5926         * REVISION: Set to 1.
5928         * doc/pic.ms: Document possible problems with `figname'.
5930 2003-04-29  Werner LEMBERG  <wl@gnu.org>
5932 Version 1.19 released
5933 =====================
5935         * VERSION: Set to 1.19.
5936         * REVISION: Set to 0.
5937         * doc/groff.texinfo, doc/webpage.ms, NEWS: Updated.
5939         * src/devices/grohtml/post-html.cpp (html_printer::~html_printer):
5940         Define charset as `US-ASCII' in html output.
5942         * tmac/www.tmac (ULE): Add missing scaling indicator.
5944         * win32-diffs: Removed.
5946 2003-04-28  Werner LEMBERG  <wl@gnu.org>
5948         * doc/groff.texinfo: Document `dn' and `dl' registers if used with
5949         `.da' and `.boxa'.
5950         Document how to insert discardable whitespace with `.ss'.
5952 2003-04-27  Werner LEMBERG  <wl@gnu.org>
5954         * src/preproc/pic/tex.cpp (tex_output::start_picture): Make code
5955         work with plain TeX also.
5957         * src/preproc/pic/pic.man, doc/pic.ms: Fix TeX code example.
5959 2003-04-25  Gaius Mulley  <gaius@glam.ac.uk>
5961         * src/devices/grohtml/post-html.cpp (html_printer::~html_printer):
5962         Use a loose DTD.
5964 2003-04-24  Werner LEMBERG  <wl@gnu.org>
5966         * src/preproc/pic/pic.man, doc/pic.ms: Explain how to get a
5967         vbox with positive height and zero depth if in TeX mode.
5969         * NEWS: Document glyph name changes for grodvi and grolj4.
5971 2003-04-23  Werner LEMBERG  <wl@gnu.org>
5973         * src/preproc/pic/tex.cpp (tex_output::start_picture): Fix TeX code.
5974         * doc/pic.ms: Fixed.
5976 2003-04-21  Werner LEMBERG  <wl@gnu.org>
5978         HP-UX 10.20 has `snprintf' but it isn't declared.
5980         * configure.ac: Add declaration test for snprintf.
5981         * configure: Regenerated.
5982         * src/include/lib.h: Handle `NEED_DECLARATION_SNPRINTF'.
5983         * src/include/config.hin: Regenerated.
5985 2003-04-19  Werner LEMBERG  <wl@gnu.org>
5987         Add keyword `figname' to pic, specifying the name of the picture
5988         box in TeX mode.  Based on a patch from William J Poser
5989         <wjposer@unagi.cis.upenn.edu>.
5991         * src/preproc/pic/pic.y: New token `FIGNAME'.
5992         (macro_name): New rule of type <str>.
5993         (placeless_element): Handle `FIGNAME'.
5994         * src/preproc/pic/lex.cpp (lookup_keyword): Add `figname'.
5995         * src/preproc/pic/main.cpp (graphname): New global variable.
5996         (do_picture): Initialize `graphname'.
5997         * src/preproc/pic/pic.h: Updated.
5998         * src/preproc/pic/tex.cpp (tex_output::start_picture): Use
5999         `graphname'.
6000         Simplify TeX code.
6001         (tex_output::text): Beautify output.
6002         * src/preproc/pic/object.cpp (object_spec::~object_spec): Deallocate
6003         `shaded' and `outlined' unconditionally.
6004         * NEWS, src/preproc/pic/pic.man, doc/pic.ms: Updated.
6005         Minor improvements.
6007         * PROBLEMS, README.CVS: Mention that bison version 1.875b or
6008         greater is necessary.
6010 2003-04-17  Hartmut Henkel  <hartmut_henkel@gmx.de>
6012         Add option -r to soelim to avoid emission of `.lf' lines.
6013         Add option -t to produces TeX comment lines instead of `.lf' lines.
6015         * src/preproc/soelim/soelim.cpp: New global variables `raw_flag'
6016         and `tex_flag'.
6017         (usage): Updated.
6018         (main): Handle `-r' and `-t'.
6019         (set_location): Handle `raw_flag' and `tex_flag'.
6020         * src/preproc/soelim/soelim.man, NEWS: Updated.
6022 2003-04-17  Werner LEMBERG  <wl@gnu.org>
6024         * tmac/hyphenex.sh: Replaced with...
6025         * tmac/hyphenex.pl: This perl script to avoid sed compatibility
6026         nightmares.
6028         * aclocal.m4 (GROFF_HTML_PROGRAMS): Emit useful warning message
6029         if --quiet is used for the configure script.
6030         * configure: Regenerated.
6032 2003-04-16  Werner LEMBERG  <wl@gnu.org>
6034         * src/devices/grohtml/post-html.cpp (text_glob::text_glob):
6035         Add `const' to second argument.
6036         (html_printer::add_table_end): Add `const' to argument.
6037         * src/devices/grohtml/html-text.cpp (html_text::issue_tag): Add
6038         `const' to arguments.
6039         * src/devices/grohtml/html-text.h: Updated.
6041         * src/devices/grolbp/charset.h (symset): Use `unsigned char'.
6042         * src/devices/grolbp/lbp.h (lbpputc): Use `unsigned char' for
6043         argument.
6045         * src/devices/grotty/tty.cpp (tty_printer::make_rgb_string): Use
6046         cast for integer constant.
6048         * src/preproc/html/pre-html.cpp (image_device): Use `const'.
6049         (writeNbytes): Add `const' to first argument.
6050         (writeString): Add `const' to argument.
6051         (char_buffer::can_see): Add `const' to third argument.
6052         * src/preproc/html/pushback.cpp (pushBackBuffer::isString): Add
6053         `const' to argument.
6054         * src/preproc/html/pushback.h: Updated.
6056         * src/preproc/soelim/soelim.cpp (include_list): Add `const'.
6057         (include_path_append): Add `const' to argument.
6058         (do_file): Updated.
6060         * src/roff/troff/uniglyph.cpp (unicode_to_glyph_list): Use `const'
6061         for `value'.
6062         (unicode_to_glyph_init::unicode_to_glyph_init): Updated.
6063         * src/roff/troff/uniuni.cpp (unicode_decompose_list): Use `const'
6064         for `value'.
6065         (unicode_decompose_init::unicode_decompose_init): Updated.
6066         * src/roff/troff/glyphuni.cpp (glyph_to_unicode_list): Use `const'
6067         for `value'.
6068         (glyph_to_unicode_init::glyph_to_unicode_init): Updated.
6069         * src/roff/troff/input.cc (process_startup_file): Add `const' to
6070         argument.
6072         * tmac/hyphenex.sh: Make script more portable by using a here
6073         document.
6075 2003-04-15  Werner LEMBERG  <wl@gnu.org>
6077         Renamed all `*.cc' files to `*.cpp'.
6078         Updated all configuration files, makefiles, and documentation.
6080 2003-04-14  Werner LEMBERG  <wl@gnu.org>
6082         * tmac/hyphenex.sh: Slight improvements.
6084 2003-04-13  Werner LEMBERG  <wl@gnu.org>
6086         * font/devascii/R.proto, font/devcp1037/R.proto,
6087         font/devlatin1/R.proto, font/devutf8/R.proto: Fill up remaining
6088         character slots with unnamed glyphs.
6090         * tmac/an-old.tmac: Fix hyphenation value if `cR' is active.
6091         (an-first): New global variable.
6092         (an-header): Emit vertical space between multiple man pages.
6094 2003-04-11  Werner LEMBERG  <wl@gnu.org>
6096         * doc/groff.texinfo, man/groff_out.man: \S only accepts integer
6097         values.
6099 2003-04-10  Werner LEMBERG  <wl@gnu.org>
6101         * PROBLEMS: Revised.
6103 2003-04-10  Bernd Warken  <bwarken@mayn.de>
6105         * doc/webpage.ms: Improved.
6107 2003-04-09  Werner LEMBERG  <wl@gnu.org>
6109         Add register \n[.height] which returns the value of \H.
6110         Add register \n[.slant] which returns the value of \S.
6112         * src/roff/troff/env.cc (init_env_requests): Implement.
6113         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
6114         Document.
6116 2003-04-08  Werner LEMBERG  <wl@gnu.org>
6118         * tmac/html.tmac: Move some of the data into html-end.tmac.
6119         Remove most of the character translations for eqn since html fonts
6120         now cover those characters.
6121         Load www.tmac.
6122         * tmac/html-end.tmac: New file.
6123         * tmac/troffrc: Load html.tmac not www.tmac for -Thtml.
6124         * tmac/troffrc-end: Load html-end.tmac not html.tmac for -Thtml.
6125         * tmac/Makefile.sub (NORMALFILES): Add html-end.tmac.
6127 2003-04-07  Werner LEMBERG  <wl@gnu.org>
6129         * man/groff_out.man: Document negative values of `N' if -Thtml is
6130         used.
6132 2003-04-06  Werner LEMBERG  <wl@gnu.org>
6134         * Makefile.comm (depend.temp): Check location of YTABC.
6136 2003-04-05  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
6138         * doc/Makefile.in (TROFFBIN): New variable for troff
6139         binary path.
6140         (GROFFBIN): New variable for groff binary path.
6141         (groff_bin_path): Rename to GROFF_BIN_PATH.
6142         (TROFF): Use TROFFBIN.
6143         (GROFF): Use GROFFBIN and GROFF_BIN_PATH.
6144         * doc/Makefile.sub (GROFFBIN): New variable for groff
6145         binary path.
6146         (groff_bin_path): Rename to GROFF_BIN_PATH.
6147         (GROFF): Use GROFFBIN and GROFF_BIN_PATH.
6149         * Makefile.comm (install_dev): Install scripts from DEVSCRIPTS
6150         with INSTALL_SCRIPT.
6151         (uninstall_dev): Uninstall scripts from DEVSCRIPTS.
6152         * Makefile.dev (all): Depend on DEVSCRIPTS.
6153         (install_dev): Likewise.
6154         * font/devdvi/Makefile.sub (DEVSCRIPTS): New variable to hold
6155         scripts.
6156         * font/devps/Makefile.sub (DEVSCRIPTS): Likewise.
6157         (DEVGENSCRIPTS): New variable to hold generated scripts.
6159 2003-04-05  Werner LEMBERG  <wl@gnu.org>
6161         * src/libs/libdriver/input.cc (IntArray::operator[],
6162         IntArray::get_data): Remove meaningless `const' in return value.
6164         * README.CVS: New file.
6166 2003-04-04  Werner LEMBERG  <wl@gnu.org>
6168         Check for stdint.h in C++, not in C.
6170         * aclocal.m4 (GROFF_STDINT_H): New function,
6171         * configure.ac: Check for stdint.h with GROFF_STDINT_H instead of
6172         AC_CHECK_HEADERS.
6173         * configure, src/include/config.hin: Regenerated.
6174         * src/libs/libgroff/tmpname.cc: Use HAVE_CC_STDINT_H.
6177         Fix handling of &nbsp; in grohtml.  To do this, troff emits `N'
6178         with a negative value, representing the width of the unbreakable
6179         space (only for -Thtml).  grohtml then converts this back to
6180         &nbsp; and uses the value of N as its width.
6182         * src/roff/troff/node.cc (space_char_hmotion_node::tprint,
6183         unbreakable_space_node::tprint): Emit `N-<width>'.
6184         * src/include/printer.h (printer::set_numbered_char): Make it
6185         virtual.
6186         Make members `font_table' and `nfonts' protected instead of private.
6187         * src/devices/grohtml/post-html.cc
6188         (html_printer::set_numbered_char): New member function.
6191         * src/libs/libgroff/maxfilename.cc:
6192         s/HAVE_LIMITS_H/HAVE_CC_LIMITS_H/.
6194         * src/roff/troff/node.cc (unbreakable_space_node::tprint): Don't
6195         emit word marker.
6197 2003-04-03  Sergey A. Osokin  <osa@freebsd.org.ru>
6199         * man/roff.man: Small fixes.
6201 2003-04-03  Werner LEMBERG  <wl@gnu.org>
6203         Make groff independent from locale's numeric settings.
6205         * configure.ac: Check for `setlocale'.
6206         * configure, src/include/config.hin: Regenerated.
6208         * src/include/lib.h: Handle HAVE_SETLOCALE.
6210         * src/devices/grodvi/dvi.cc (main), src/devices/grolj4/lj4.cc
6211         (main), src/devices/grops/ps.cc (main), src/preproc/grn/main.cc
6212         (main), src/preproc/pic/main.cc (main): Call `setlocale'.
6215         * doc/groff.texinfo: Change dir category to `Typesetting'.
6216         (Man font macros): Mention that there is no space between arguments
6217         of .BI and friends.
6219         * src/libs/libdriver/printer.cc, src/devices/grotty/tty.cc
6220         (*printer::change_color, *printer::change_fill_color): Add missing
6221         `const'.
6223 2003-04-02  Werner LEMBERG  <wl@gnu.org>
6225         * src/devices/grohtml/html-table.cc (html_table::emit_col,
6226         html_table::is_gap): Compute table widths after converting border
6227         positions to avoid rounding errors.
6229 2003-04-01  Werner LEMBERG  <wl@gnu.org>
6231         * src/devices/grohtml/html-text.cc (html_text::do_space): Handle
6232         `space_emitted' properly.
6234 2003-03-31  Werner LEMBERG  <wl@gnu.org>
6236         * src/devices/grohtml/html-table.cc: Fix column width calculation.
6237         (html_table::set_linelength): Don't add 1.
6238         (html_table::add_indent): Don't subtract 1.
6240         * tmac/html.tmac: Set default page offset to zero.
6242 2003-03-30  Werner LEMBERG  <wl@gnu.org>
6244         Make groff emit `&nbsp;' for `\ ' and `\~' if `-Thtml' is used.
6246         * src/roff/troff/node.cc (space_char_hmotion_node::tprint,
6247         unbreakable_space_node::tprint): New functions.
6248         (troff_output_file): Make space_char_hmotion_mode::tprint and
6249         unbreakable_space_node::tprint to friends.
6250         * src/roff/troff/node.h: Updated.
6252         * font/devhtml/R.proto: Add `&nbsp' at position 0xA0 (as defined
6253         in the HTML standard).
6255 2003-03-29  Werner LEMBERG  <wl@gnu.org>
6257         * src/roff/troff/env.cc (point_size): Fix emission of html tag.
6258         Otherwise, the following code
6260           .di xxx
6261           .ps 10
6262           a
6263           .br
6264           .di
6265           x\*[xxx]
6267         produces `x a' instead of `xa'.  This is a temporary fix, disabling
6268         font changes in diversions for -Thtml.
6270         * tmac/an-old.tmac (TH, SH): Use `HTML-TAG-NS' instead of
6271         `HTML-TAG'.
6272         (an-do-tag-html): Merge with ...
6273         (an-do-tag): This macro.
6274         Change code slightly to circumvent grohtml bug.
6275         * tmac/troffrc-end: Define dummy for HTML-TAG-NS.
6277         * src/devices/grohtml/html-table.cc (html_table::emit_col,
6278         html_table::is_gap): Round `width' properly.
6280         * tmac/html.tmac: Provide some default layout parameters for
6281         grohtml.
6283         * font/devhtml/DESC.proto: Don't use discrete values for `sizes'
6284         command.
6286 2003-03-28  Werner LEMBERG  <wl@gnu.org>
6288         src/devices/grops/ps.cc (ps_printer::do_import): Fix error message.
6290 2003-03-27  Werner LEMBERG  <wl@gnu.org>
6292         * tmac/an-old.tmac (BT): Don't call .tl if register `ps4html' is
6293         defined.
6295 2003-03-20  Werner LEMBERG  <wl@gnu.org>
6297         * src/roff/troff/env.cc (vertical_spacing): Allow zero value for
6298         `.vs'.
6299         * doc/groff.texinfo: Updated.
6301 2003-03-19  Werner LEMBERG  <wl@gnu.org>
6303         * src/roff/troff/input.cc (process_input_stack) <TOKEN_BEGIN_TRAP,
6304         TOKEN_END_TRAP>: Reset `have_input'.
6306 2003-03-18  Werner LEMBERG  <wl@gnu.org>
6308         * src/roff/groff/groff.man: Mention groff_trace man page.
6310 2003-03-16  Werner LEMBERG  <wl@gnu.org>
6312         * Makefile.in (LIBEXT): New variable to indicate the file extension
6313         of library files.  Computed heuristically from $(OBJEXT).
6314         (MDEFINES): Add $(LIBEXT).
6315         * Makefile.lib, Makefile.comm: Use it.
6317         * src/utils/pfbtops/pfbtops.c (get_text): New function.  Split
6318         overlong lines into smaller chunks.
6319         (get_binary): New function.
6320         (main): Use them.
6321         * src/utils/pfbtops/pfbtops.man: Updated.
6323 2003-03-15  Colin Watson  <cjwatson@debian.org>
6325         * src/roff/groff/groff.man: Minor syntax fix.
6327 2003-03-14  Egil Kvaleberg  <egil@kvaleberg.no>
6329         * src/devices/grops/ps.cc (ps_printer::media_set,
6330         ps_printer::~ps_printer): Handle zero paper width and length.
6332 2003-03-13  Werner LEMBERG  <wl@gnu.org>
6334         Add options -p and -l to grodvi.
6336         * src/devices/grodvi/dvi.cc: Include paper.h.
6337         (landscape_flag, user_paper_length, user_paper_width): New global
6338         variables.
6339         (dvi_printer::begin_page): Emit `papersize' special.
6340         Set color after initialization of `cur_h' and `cur_v'.
6341         (main): Add options `-l' and `-p'.
6342         * font/devdvi/Makefile.sub (DESC): Set `papersize'.
6343         * src/devices/grodvi/grodvi.man, NEWS: Updated.
6345         * src/devices/grops/psrm.cc (valid_input_table): Fixed.
6347 2003-03-12  Werner LEMBERG  <wl@gnu.org>
6349         * src/devices/grops/grops.man: Move documentation of .PSPIC to...
6350         * man/groff_tmac.man: This man page.
6351         * man/groff_font.man: Declare `paperwidth' and `paperlength' as
6352         deprecated.
6354         * tmac/X.tmac: Don't load pspic.tmac.
6356 2003-03-11  Werner LEMBERG  <wl@gnu.org>
6358         Make variable `pr' local to libdriver/input.cc.  Based on a patch
6359         by Bernd Warken <bwarken@mayn.de>.
6361         * src/include/driver.h (pr): Removed.
6363         * src/libs/libdriver/input.cc (pr): New global variable.
6364         (do_file): Deallocate `pr'.
6365         * src/libs/libdriver/printer.cc (pr): Removed.
6367         * src/devices/grodvi/dvi.cc (main), src/devices/grohtml/post-html.cc
6368         (main), src/devices/grolbp/lbp.cc (main), src/devices/grolj4/lj4.cc
6369         (main), src/devices/grops/ps.cc (main), src/devices/grotty/tty.cc
6370         (main): Don't delete `pr'.
6372 2003-03-10  Werner LEMBERG  <wl@gnu.org>
6374         * tmac/a4.tmac, tmac/composite.tmac: Use `.do'.
6375         * tmac/papersize.tmac: New file.
6376         * tmac/troffrc: Include `papersize.tmac'.
6377         * tmac/Makefile.sub (NORMALFILES): Add `papersize.tmac'.
6378         * tmac/an-old.tmac: Set LT to LL by default.
6380         * NEWS, MANIFEST, tmac/groff_man.man, man/groff_tmac.man,
6381         doc/groff.texinfo: Updated.
6383         * src/libs/libgroff/paper.cc (add_iso_paper): Fix very embarassing
6384         bug which caused all odd iso papers to have wrong dimensions.
6386         * src/devices/grops/ps.cc (user_paper_width): New global variable.
6387         (main) <'p'>: Set `user_paper_width' also.
6388         (ps_printer::media_width, ps_printer::media_height): Use values
6389         given with option `-p'.
6391 2003-03-09  Werner LEMBERG  <wl@gnu.org>
6393         * src/include/nonposix.h: Provide default for SET_BINARY.
6395         * src/devices/grodvi/dvi.cc, src/devices/grolbp/lbp.cc,
6396         src/devices/grolj4/lj4.cc, src/devices/grops/ps.cc: Call SET_BINARY
6397         unconditionally.
6399         * src/utils/pfbtops/pfbtops.c: Call SET_BINARY unconditionally.
6400         (main): Treat \r\n as \n.
6402 2003-03-08  Werner LEMBERG  <wl@gnu.org>
6404         * tmac/an-old.tmac: Use register `HY' to control hyphenation.
6405         * NEWS, tmac/groff_man.man, doc/groff.texinfo: Document it.
6407 2003-03-07  Werner LEMBERG  <wl@gnu.org>
6409         Added support to access more than 256 glyphs in Type 1 fonts.
6411         * src/devices/grops/ps.cc (subencoding): New structure.
6412         (style): Add `sub' field.
6413         Updated all users.
6414         (ps_printer): Add `subencodings' and `next_subencoding_index' fields.
6415         Add `set_subencoding', `get_subfont' and `encode_subfont' member
6416         functions.
6417         Updated all users.
6418         (ps_printer::set_char): Use `set_subencoding'.
6419         (make_subencoding_name): New function.
6420         (ps_printer::set_style): Handle case where `sty.sub' is not zero.
6421         (ps_printer::~ps_printer): Emit subencoding definitions.
6423         * src/devices/grops/psrm.cc (valid_input_table): New array to
6424         properly support EBCDIC.
6425         (white_space): Add `\f'.
6426         (ps_get_line): Change first argument to be of type `string &'.
6427         Updated all callers.
6428         This allows to get lines of arbitrary length.
6429         Use `valid_input_table'.
6430         Remove warning about non-conforming PS line length.  This seems
6431         not to be of great importance -- for example, dvips don't emit
6432         a warning either.
6433         (PS_LINE_MAX): Removed.
6434         (matches_comment): Change first argument to be of type `string &'.
6436         * src/devices/grops/grops.man, src/devices/grops/TODO: Updated.
6438         * src/utils/afmtodit/afmtodit.pl (%unicode_decomposed,
6439         %AGL_to_unicode, %default_ligatures): New hash tables.
6440         Read all map entries.
6441         Add unencoded characters.
6442         Check for default ligatures if there are no `L' entries.
6443         Print all kern entries.
6444         Print all characters in charset.
6445         * src/utils/afmtodit/afmtodit.man: Updated.
6447         * font/devps/*: Regerated all fonts.
6449         * tmac/latin[129].tmac, tmac/cp1047.tmac: Don't test for existence
6450         of characters, just use `.trin'.  Otherwise the mapping depends
6451         on the font encoding.
6452         * tmac/ps.tmac: Add `fi' and `fl'.
6453         Improve `Fi' and `Fl'.
6454         * tmac/X.tmac, tmac/lbp.tmac, tmac/tty.tmac: Improve `Fi' and `Fl'.
6455         * tmac/Xps.tmac: Fix `em'.
6457         * NEWS: Updated.
6459 2003-03-04  Werner LEMBERG  <wl@gnu.org>
6461         * src/roff/troff/input.cc (charinfo_to_node_list): Reset
6462         `have_input'.
6464 2003-03-03  Werner LEMBERG  <wl@gnu.org>
6466         * Makefile.sub (DISTCLEANFILES): Add gxditview._man.
6468         * font/devps/generate/textmap: Remove entry `similarequal'.
6469         * font/devps/symbolmap: Updated.
6471 2003-03-02  Werner LEMBERG  <wl@gnu.org>
6473         * src/libs/libgroff/font.cc (font::load): Fix error message for
6474         bad character type.
6476         * src/devices/grops/grops.man: Improve documentation of the -b
6477         flag.
6479         * tmac/tty.tmac: Load latin1.tmac for all TTY devices except
6480         `ascii' and `cp1047'.
6482 2003-03-01  Werner LEMBERG  <wl@gnu.org>
6484         Document composite glyphs and the `composite' request.
6486         * man/groff.man, man/groff_diff.man, doc/groff.texinfo: Do it.
6488 2003-02-28  Werner LEMBERG  <wl@gnu.org>
6490         * font/devdvi/generate/ec.map: Add some more Unicode entities.
6491         * font/devdvi/*EC: Updated.
6493         * tmac/composite.tmac, tmac/latin2.tmac, tmac/latin9.tmac: New files.
6494         * tmac/latin1 (latin1-tr): Undo any previous mapping.
6495         * tmac/troffrc: Load `composite.tmac'.
6496         * tmac/Makefile.sub (NORMALFILES): Updated.
6498         * doc/groff.texinfo (Input Encodings): New section.
6499         * NEWS: Updated.
6501 2003-02-27  Werner LEMBERG  <wl@gnu.org>
6503         * doc/texinfo.tex: New version 2003-02-11.06.
6505         * tmac/doc-common (Dt): Don't emit warning for unknown section.
6506         * tmac/groff_mdoc.man: Fix description of `Dt'.
6508 2003-02-26  Egil Kvaleberg  <egil@kvaleberg.no>
6510         * font/devps/prologue.ps: Fix for included Postscript that does
6511         a setpagedevice -- which is now safely ignored.
6513         * NEWS: Updated.
6515         * src/devices/grops/ps.cc: Now sets the page size in the generated
6516         document.  This is done in two ways: Via a %%-comment for gv and
6517         the like, and via a PageSize and setpagedevice for programs that
6518         understands Postscript proper, like ps2pdf.
6520         * src/devices/grops/ps.h: New broken-flag to avoid page size
6521         definition, if required.
6523         * src/devices/grops/grops.man: New broken-flag 16 mentioned.
6525         * doc/Makefile.in: Added -nosetpage flag (via @pnmtops_nosetpage@).
6526         Not really necessary due to the fix in prologue.ps, but cleaner:
6527         Such information does not belong in an .eps file.
6529         * doc/Makefile.sub: See doc/Makefile.in.
6531 2003-02-26  Ralph Corderoy  <ralph@inputplus.co.uk>
6533         * aclocal.m4 (GROFF_PNMTOPS_NOSETPAGE): Use P2 format for testing
6534         instead of P1 since the latter is broken in some versions of netpbm.
6535         * configure: Updated.
6537 2003-02-26  Larry Kollar  <kollar@alltel.net>
6539         Make man pages more customizable.
6541         * tmac/an-old.tmac (FT): New register holding footer distance from
6542         bottom.
6543         (HF): New string holding the default heading font.
6544         (TH): Handle registers `IN' and `SN' set on the command line.
6545         Use `FT'.
6546         (PT, BT): New strings to customize header and footer lines.
6547         (an-header, an-footer): Use them.
6548         (SH, SS): Use `HF'.
6549         * tmac/groff_man.man: Document changes.
6551         * doc/groff.texinfo: Document man changes.
6552         Document Ultrix extensions of man.
6554 2003-02-26  Werner LEMBERG  <wl@gnu.org>
6556         * src/roff/troff/input.cc (do_width, do_if_request): Reset
6557         `have_input' after changing back to old environment.
6559         * src/devices/grolbp/lbp.cc (lbp_printer::set_line_thickness): Move
6560         function up to be defined before first call.  This is necessary to
6561         avoid a compilation problem with Sun's WorkShop 6 C++ compiler.
6563         * src/utils/afmtodit/afmtodit.pl: Make script search for files in
6564         the default font directory also.  Based on a patch from James
6565         J. Ramsey <jjramsey_6x9eq42@yahoo.com>.
6566         * src/utils/afmtodit/Makefile.sub (afmtodit): Handle @FONTDIR@.
6567         * src/utils/afmtodit/afmtodit.man: Document it.
6569         * NEWS: Updated.
6571         * tmac/groff_man.man, doc/groff.texinfo: Many minor fixes.
6573 2003-02-25  Gaius Mulley  <gaius@glam.ac.uk>
6575         * aclocal.m4 (GROFF_HTML_PROGRAMS): Add test for pnmtops.
6576         (GROFF_PNMTOPS_NOSETPAGE): New macro.
6577         * configure.ac: Use it.
6578         * configure: Regenerated.
6579         * Makefile.in: Updated.
6581         * tmac/Makefile.sub (NORMALFILES): Remove www.tmac.
6582         (CLEANADD): Add www.tmac-sed.
6583         (pnmtops_nosetpage): Define default.
6584         (install_data): Handle www.tmac-sed and substitute
6585         @PNMTOPS_NOSETPAGE@.
6586         (stamp-sed): Add www.tmac.
6587         * tmac/www.tmac: Rewritten, based on a patch by Bernd Warken.
6588         It now breaks URLs at suitable places.
6589         (www:substring_ok): New register set by...
6590         (www:@test_substring): New macro.
6591         (www:error): New alias to www-error.
6592         (www:lenstr, www:splitstr, www:url_breaks, www:url_breaks_splitted):
6593         New macros.
6594         (URL): Use www:url_breaks.
6595         (PIMG, MPIMG): Use @PNMTOPS_NOSETPAGE@.
6596         (CDS, CDE): New macros.
6598 2003-02-25  Werner LEMBERG  <wl@gnu.org>
6600         * src/devices/grops/ps.cc (ps_printer::define_encoding): Avoid
6601         buffer overflow.
6603 2003-02-24  Werner LEMBERG  <wl@gnu.org>
6605         Contrary to the PCL5 Developer's Guide, the ascenders in TFM files
6606         can be negative also.
6608         * src/utils/hpftodit/hpftodit.cc (char_info): `ascent' must be
6609         `int16'.
6610         (read_char_table): Avoid negative ascenders.
6611         (output_charset): Add cast.
6612         * font/devlj4/*: Regenerated.
6614         Replace unnamed glyphs for DVI fonts with `uXXXX' glyph names where
6615         possible.
6617         * font/devdvi/generate/{tc,texttt,ec,texmi,texsy,textex}.map: Do it.
6618         * font/devdvi/generate/textex.map: Map glyph 23 to `u21C6' instead
6619         of `<>'.
6620         * font/devdvi/*: Regenerated.
6622         Map `la' and `ra' to U+27E8 and U+27E9.  These two characters have
6623         normal width, while the previously used characters (U+2329 and
6624         U+232A) are classified as wide due to canonical equivalence with the
6625         CJK punctuation characters U+3008 and U+3009.
6627         * font/devutf8/R.proto: Updated.
6628         * src/roff/troff/uniglyph.cc, src/roff/troff/glyphuni.cc: Ditto.
6630         * man/groff_char.man: Simplify handling of table traps by
6631         introducing `start block' and `end block' macros.
6632         (Ns, Ne, 2s, 2e, Ds, De): New macros.
6633         (DL): Make it work with Unix troff also.
6634         Fix code values of `la' and `ra'.
6636         * tmac/dvi.tmac: Define `<>' for CW and CWI.
6638 2003-02-23  Gaius Mulley  <gaius@glam.ac.uk>
6640         * src/devices/grohtml/post-html.cc (element_list::~element_list):
6641         New destructor, fixing a major memory leak.
6643 2003-02-22  Werner LEMBERG  <wl@gnu.org>
6645         * font/devhtml/R.proto, font/devutf8/R.proto: Flip `*f' and `+f'
6646         to be in conformance with Unicode 3.0 and newer.
6648         * font/devlj4/generate/text.map: Add `Eu'.
6649         * font/devlj4/generate/special.map: Flip `*e' and `+e'.
6650         * font/devlj4/S: Regenerated.
6652         * man/groff_char.man: Completely rewritten.
6654         * doc/groff.texinfo: Fix description of request and macro arguments.
6656 2003-02-20  Gaius Mulley  <gaius@glam.ac.uk>
6658         Valgrind fixes.
6660         * src/devices/grohtml/html-table.cc (html_table::~html_table):
6661         Deallocate `columns' list.
6662         * src/devices/grohtml/post-html.cc (char_block::~char_block):
6663         New destructor.
6664         (text_glob::text_glob_html, text_glob::text_glob_special,
6665         text_glob::text_glob_line, text_glob::text_glob_auto_image,
6666         text_glob::text_glob_tag): Avoid memory leaks.
6667         (text_glob::remember_table): Free memory before reassigning.
6669 2003-02-19  Werner LEMBERG  <wl@gnu.org>
6671         Add glyph `+e', greek lunate epsilon symbol, and `-h' (with the
6672         alias `hbar'), the Planck constant over two pi.
6674         * font/devdvi/generate/texmi.map: Use `*e' for position 15 and
6675         `+e' for position 34.
6676         * font/devdvi/generate/texsy.map: Replace `DI' and `HE' with
6677         `u2662' and `u2661'.
6678         * font/devdvi/{MI,S}: Regenerated.
6679         * font/devhtml/R.proto, font/devutf8/R.proto: Add `+e', `-h', `hbar'.
6680         * font/devlbp/*: Add `hbar' alias.
6681         * font/devlj4/generate/special.map: Ditto.
6682         * font/devlj4/S: Regenerated.
6683         * font/devps/generate/symbolchars: Add `+e'.
6684         * font/devps/generate/textmap: Fix PS name for `-h'.
6685         Add `hbar' alias.
6686         * font/devps/symbolmap: Regenerated.
6688         * src/devices/grops/ps.cc (transform_fill): Removed since unused.
6690         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Add `+e',
6691         `-h', `hbar'.
6692         * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Add `+e',
6693         `-h'.
6695         * tmac/X.tmac, tmac/ps.tmac: Provide definitions for `-h' and
6696         `hbar'.
6697         * tmac/tty-char.tmac: Add `+e'.
6699 2003-02-17  Werner LEMBERG  <wl@gnu.org>
6701         Another round trying to really fix problems with `have_input'.
6703         * src/roff/troff/input.cc (input_stack::get): Handle `have_input'.
6704         (token::next) <'\n'>, <\'\n'>: Don't handle `have_input'.
6706         * src/devices/grotty/tty.cc (tty_printer::put_color): Fix color
6707         handling if both foreground and background colors are default.
6709         * doc/groff.texinfo (Debugging): Document .lf differences to
6710         AT&T troff.
6712 2003-02-16  Werner LEMBERG  <wl@gnu.org>
6714         * src/devices/grotty/tty.cc (tty_printer::make_rgb_string): Avoid
6715         null-bytes in created string.
6717         * src/roff/troff/input.cc (lookup_color, interpolate_macro,
6718         alias_macro, lookup_request): Improve warning messages.
6720         * src/roff/troff/node.cc (suppress_node::tprint): Use `strsave',
6721         not `strdup'.
6722         Free `last_image_filename'.
6724         * src/preproc/html/pre-html.cc (char_block::char_block): Initialize
6725         `buffer'.
6726         (imageList::createPage, imageList::createImage): Use `free', not
6727         `a_delete'.
6728         (imageItem::~imageItem): Free `imageName'.
6729         (addRegDef): Use `strsave', not `strdup'.
6730         (get_resolution): Free `pathp'.
6732 2003-02-15  Werner LEMBERG  <wl@gnu.org>
6734         * src/devices/grotty/tty.cc (tty_printer::tty_printer): Fix pointer
6735         to `dummy'.
6737 2003-02-14  Werner LEMBERG  <wl@gnu.org>
6739         Add memory management for colors to deallocate unnamed colors
6740         properly.
6742         * src/include/color.h (color): New members `free_list' and `next'.
6743         New member functions `new' and `delete'.
6744         Add destructor.
6745         * src/libs/libgroff/color.cc: Implement it.
6747         * src/libs/libgroff/font.cc (font::add_kern): Use integer cast
6748         for array size of new operator.
6750         * src/libs/libdriver/input.cc (IntArray::operator[]): Remove
6751         redundant comparison.
6753         * src/roff/troff/input.cc (word_space_node::reread,
6754         hmotion_node::reread): Avoid warning about unused parameter.
6755         (reset_output_registers): Remove redundant parameter.
6756         (define_color): Undo change 2003-02-12.
6758         * src/roff/troff/reg.h: Updated.
6760         * src/roff/troff/node.cc (troff_output_file::really_print_line,
6761         output_file::put_filename, real_output_file::really_put_filename,
6762         ascii_output_file::really_print_line,
6763         break_char_node::get_hyphen_list): Avoid warning about unused
6764         parameter.
6765         (suppress_node::tprint): Updated.
6767         * configure.ac: Check declaration for rand() and srand().
6768         * configure: Regenerated.
6770         * src/preproc/pic/pic.h: Declare fmod(), rand(), and srand()
6771         conditionally.
6772         * src/preproc/pic/pic.y: Remove declaration of fmod(), rand(),
6773         and srand().
6775         * src/preproc/eqn/delim.cc (delim_table): Add missing initializers
6776         to avoid compiler warnings.
6778         * src/preproc/grn/hgraph.cc (HGPrintElt): Second parameter is
6779         unused.
6781         * src/devices/grops/ps.cc (ps_printer::set_char): Last parameter
6782         is unused.
6783         * src/devices/grops/psrm.cc (skip_possible_newline): Remove first
6784         (unused) parameter.
6785         Updated all callers.
6787         * src/devices/grotty/tty.cc (tty_printer::set_char): Last parameter
6788         is unused.
6789         * src/devices/grodvi/dvi.cc (dvi_printer::set_char): Ditto.
6790         * src/devices/grolj4/lj4.cc (lj4_printer::set_char): Ditto.
6792         * src/devices/grohtml/post-html.cc (html_printer::emit_line):
6793         Parameter is unused.
6794         (html_printer::add_table_end): Define parameter conditionally.
6795         * src/devices/grohtml/output.cc (simple_output::special): Parameter
6796         is unused.
6798         * src/devices/grolbp/lbp.cc: Define _GNU_SOURCE conditionally.
6799         (lbp_printer::set_char): Last parameter is unused.
6801         * src/utils/indxbib/indxbib.cc (main): Remove redundant comparison.
6803 2003-02-13  Werner LEMBERG  <wl@gnu.org>
6805         New commands \D'Fr ...', \D'Fc ...', etc. for orthogonality.
6806         Make \D'f ...' move horizontally again for backwards compatibility.
6807         Replace it with \D'Fg ...' where appropriate to avoid dependency
6808         on horizontal resolution.
6810         * src/roff/troff/input.cc (do_get_long_name): New function.
6811         (get_long_name): Call it.
6813         (read_draw_node): Handle `\D'Fx ...' by calling ...
6814         (read_color_draw_node): New function.
6816         (read_rgb, read_cmy, read_cmyk, read_gray): New optional argument
6817         `end'.
6818         Pass it to `do_get_long_name' which is used instead of
6819         `get_long_name'.
6821         * src/libs/libdriver/input.cc (color_from_Df_command): Remove
6822         unnecessary value guard.
6823         (parse_D_command) <'f'>: Add horizontal shift.
6825         * src/preproc/grn/hgraph.cc (HGPrintElt) <POLYGON>: Use \D'Fg ...'.
6826         * src/preproc/pic/troff.cc (troff_output::set_fill): Ditto.
6827         (FILL_MAX): Removed.
6829         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
6830         Updated.
6832 2003-02-12  Werner LEMBERG  <wl@gnu.org>
6834         * src/roff/troff/input.cc (do_name_test, do_expr_test,
6835         do_zero_width): Push `\n' if closing delimiter is missing.
6837         (token::next) <ESCAPE_NEWLINE>, <'\n'>, <\'\n'>: Reset `have_input'.
6838         <'F'>: Make \F non-transparent at the beginning of line.
6839         (process_input_stack) <token::TOKEN_CHAR, token::TOKEN_NEWLINE,
6840         token::TOKEN_REQUEST, token::TOKEN_BEGIN_TRAP>: Don't handle
6841         `have_input'.
6843         (define_color): Free color in case of reassignment.
6845         * doc/groff.texinfo (@Defesc, @DefescList, @DefescItem,
6846         @DefescListEnd): Use @Var, not @var.
6847         Fix all calls.
6849         * src/preproc/grn/hgraph.cc (HGPrintElt): Fix typo.
6851         * src/preproc/pic/object.cc (object_spec::~object_spec): Free
6852         `shaded' and `outlined' arrays.
6853         (object_spec::object_spec): Initialize `shaded' and `outlined'.
6854         (graphic_object::set_fill_color, graphic_object::set_outline_color):
6855         Use strsave.
6856         (closed_object::set_fill_color): Ditto.
6857         * src/preproc/pic/troff.cc (troff_output::set_color): Use strsave
6858         instead of strdup.
6859         (troff_output::reset_color): Use a_delete instead of free.
6860         * src/preproc/pic/main.cc (do_file): Free `out' in case of error.
6862 2003-02-11  Werner LEMBERG  <wl@gnu.org>
6864         * doc/groff.texinfo: Improve documentation of `ad'.
6865         Document that \D'f...' is dependent on the horizontal resolution.
6866         * man/groff_diff.man: Improve documentation of \D'f...'.
6868         * src/preproc/grn/hgraph.cc (HGPrintElt) <POLYGON>: Don't emit
6869         compensating \h'...' for \D'f ...' since the latter no longer moves
6870         current position.
6871         * src/preproc/pic/troff.cc (troff_output::set_fill): Ditto.
6873 2003-02-10  Werner LEMBERG  <wl@gnu.org>
6875         Improve error messages for `x F' (and `F') commands.
6877         * src/include/error.h: Add declaration for
6878         `current_source_filename'.
6879         * src/libs/libgroff/filename.cc: Add `current_source_filename'.
6880         * src/libs/libgroff/error.cc (do_error_with_file_and_line): Add
6881         parameter for source file string.
6882         Updated all callers.
6884         * src/libs/libdriver/input.cc: Add `current_source_filename'.
6885         (remember_source_filename): New function.
6886         (parse_x_command <'F'>, do_file <'F'>): Use it.
6888 2003-02-09  Werner LEMBERG  <wl@gnu.org>
6890         Make grotty not emit warnings about unknown colors more than
6891         necessary.
6893         * src/devices/grotty/tty.cc: Include `ptable.h'.
6894         (TTY_MAX_COLORS): Removed.
6895         (DEFAULT_COLOR_IDX): Defined to -1.
6896         (glyph): Change `back_color_idx' and `fore_color_idx' to `char'.
6897         (tty_printer): Change `curr_back_idx' and `curr_fore_idx' to `char'.
6898         Change `tty_colors' to be a ptable.
6899         First arg of `put_color' is now `char'.
6900         New functions `make_rgb_string' and `tty_color'.
6901         (tty_printer::tty_printer): Use `tty_color'.
6902         (tty_printer::color_to_idx): Return value is now `char'.
6903         Use `tty_color'.
6905         * src/include/color.h (color): Add `print_color' member function.
6906         * src/libs/libgroff/color.cc (color::print_color): Implement it.
6908 2003-02-08  Werner LEMBERG  <wl@gnu.org>
6910         Valgrind fixes.
6912         * src/devices/grops/ps.cc (ps_printer::define_encoding): Close
6913         encoding file.
6915         * src/include/ptable.h (PTABLE::~PTABLE, PTABLE::define): Always
6916         assume that value has been allocated with `new[]', thus use
6917         `a_delete' for deallocation.
6919         * src/libs/libdriver/input.cc (get_integer_arg,
6920         get_possibly_int_args, parse_x_command, do_file): Use `a_delete'
6921         where appropriate.
6923         * src/libs/libgroff/new.cc (delete) [!COOKIE_BUG]: Define.
6924         * src/libs/libgroff/nametoindex.cc
6925         (character_indexer::named_char_index): Use `new <type>[1]'.
6927         * src/preproc/eqn/lex.cc (init_table, do_definition): Use `new
6928         <type>[1]'.
6929         * src/preproc/eqn/text.cc (set_special_char_type): Ditto.
6930         (split_text): Use `a_delete'.
6932         * src/preproc/pic/pic.y (define_label, define_variable): Use `new
6933         <type>[1]'.
6935         * src/roff/troff/env.cc (environment::choose_breakpoint): Avoid
6936         harmless memory leak.
6937         (hyphen_trie::read_patterns_file): Initialize `buf'.
6938         * src/roff/troff/node.cc (troff_output_file::troff_output_file):
6939         Initialize `current_fill_color'and `current_glyph_color'.
6940         * src/roff/troff/glyphuni.cc
6941         (glyph_to_unicode_init::glyph_to_unicode_init): Use `new <type>[1]'.
6942         * src/roff/troff/uniuni.cc
6943         (unicode_decompose_init::unicode_decompose_init): Ditto.
6944         * src/roff/troff/uniglyph.cc
6945         (unicode_to_glyph_init::unicode_to_glyph_init): Ditto.
6947 2003-01-26  Werner LEMBERG  <wl@gnu.org>
6949         * src/utils/indxbib/indxbib.cc (main) [__EMX__]: Check with
6950         `access' before calling `unlink'.
6951         (do_file): Handle __EMX__.
6953         * src/include/nonposix.h: Handle __EMX__.
6955         * Makefile.in (SEP): New variable; set to @PATH_SEPARATOR@.
6956         (fontpath,tmacpath): Use it.
6957         (MDEFINES): Add it.
6958         Sorted alphabetically.
6960         * src/preproc/eqn/neqn.sh, src/roff/nroff/nroff.sh: Use
6961         @SEP@.
6962         * src/preproc/eqn/Makefile.sub, src/roff/nroff/Makefile.sub: Handle
6963         @SEP@.
6965 2003-01-27  Werner LEMBERG  <wl@gnu.org>
6967         * src/libs/libgroff/strcasecmp.c, src/libs/libgroff/strncasecmp.c:
6968         New files, copied from gnulib.
6969         * src/libs/libgroff/Makefile.sub (CSRCS): Add them.
6970         * configure.ac: Updated.
6971         * configure: Regenerated.
6973         * src/include/config.hin: Regenerated.
6974         * src/include/lib.h [!HAVE_STRCASECMP]: Declare `strcasecmp'.
6975         Don't define `strcasecmp' as `strcmp'.
6976         [!HAVE_STRNCASECMP]: Declare `strncasecmp'.
6977         Dont define `strncasecmp' as `strncmp'.
6979         * src/roff/groff/pipeline.c [!HAVE_STRCASECMP, !HAVE_STRNCASECMP]:
6980         Removed.
6982 2003-01-26  Werner LEMBERG  <wl@gnu.org>
6984         * src/utils/indxbib/indxbib.cc (main) [__EMX__]: Fix typo:
6985         s/unline/unlink/.
6987 2003-01-25  Werner LEMBERG  <wl@gnu.org>
6989         * doc/groff.texinfo (Ligatures and Kerning): Mention limitations.
6991 2003-01-24  Werner LEMBERG  <wl@gnu.org>
6993         Add US-english hyphenation exceptions (converted from Barbara
6994         Beeton's hyphenation exception log reports which appear irregularly
6995         in TUGBoat).
6997         * tmac/hyphen.us: Updated to latest version.
6998         * tmac/README: Updated.
6999         * tmac/hyphenex.us, tmac/hyphenex.sh: New files.
7000         * tmac/troffrc: Load `hyphenex.us'.
7001         * tmac/Makefile.sub (NORMALFILES): Add `hyphenex.us'.
7002         * doc/groff.texinfo: Updated.
7004 2003-01-23  Werner LEMBERG  <wl@gnu.org>
7006         Improve hyphenation slightly.  This is a first step in redesigning
7007         the hyphenation algorithm to make it more flexible (e.g. allowing
7008         kerns and ligatures between the hyphenation character and the
7009         following character -- while not used normally in English, other
7010         languages like German would benefit).
7012         * src/roff/troff/env.cc (environment::hyphenate_line): Use
7013         assertion instead of if-clause.
7014         Let `get_hyphen_list' return the number of involved characters in
7015         the hyphenation pattern instead of computing it directly (which
7016         often yields too small values).
7017         * src/roff/troff/node.h (*::get_hyphen_list): Add second parameter.
7018         * src/roff/troff/node.cc (*::get_hyphen_list): Handle new second
7019         parameter.
7021 2003-01-22  Werner LEMBERG  <wl@gnu.org>
7023         Fixing a bug which caused groff to hang if the hyphenation exception
7024         dictionary tried to grow.
7026         * src/roff/troff/env.cc (hyphen_trie::insert_hyphenation,
7027         hyphen_trie::read_patterns_file, do_hyphenation_patterns_file): Use
7028         pointer to dictionary.
7030 2003-01-20  Werner LEMBERG  <wl@gnu.org>
7032         * src/utils/afmtodit/afmtodit.pl: Add switch `-m' to suppress
7033         negative left italic correction.
7034         * src/utils/afmtodit/afmtodit.man: Document it.
7036         * font/devps/generate/Makefile (RFLAG): Add `-m'.
7037         * font/devps/{AB,AR,BMB,BMR,CB,CR,EURO,HB,HR,HNB,HNR,NB,NR,PB,PR,
7038         S,TB,TR,ZD,ZDR}: Regenerated with afmtodit options `-i 0 -m'.
7040         * NEWS: Updated.
7042 2003-01-16  Werner LEMBERG  <wl@gnu.org>
7044         * NEWS: Updated.
7046 2003-01-16  Jörgen Grahn  <jgrahn@algonet.se>
7048         * src/preproc/refer/refer.man: Mention REFER environment variable.
7050 2003-01-05  Werner LEMBERG  <wl@gnu.org>
7052         Similar to \[is], the square root glyph (\[sr]) and the square root
7053         extension glyph (\[radicalex]) are now text symbols.  The new
7054         mathematical versions are called \[sqrt] and \[sqrtex],
7055         respectively.
7057         * font/devX*/S: Regenerated.
7058         * font/devdvi/generate/texex.map: Rename `sr[0123]' to `sqrt[0123]'.
7059         * font/devdvi/generate/texsy.map: Rename `sr' to `sqrt'.
7060         * font/devdvi/EX, font/devdvi/S: Regenerated.
7061         * font/devhtml/R.proto, font/devutf8/R.proto: Add `sqrt'.
7062         * font/devlj4/generate/special.map: Add `sqrt'.
7063         * font/devlj4/S: Regenerated.
7064         * font/devps/generate/textmap: Add `sqrt'.
7065         * font/devps/S, font/devps/symbolmap: Regenerated.
7067         * src/preproc/eqn/sqrt.cc (SQRT_CHAR, RADICAL_EXTENSION_CHAR,
7068         SQRT_CHAIN, BAR_CHAIN): Use `sqrt*' and `sqrtex*'.
7069         * src/roff/troff/input.cc (init_charset_table): Make `sqrtex'
7070         overlap horizontally.
7072         * tmac/X.tmac, tmac/ps.tmac, tmac/lj4.tmac: Add `sqrtex'.
7073         * tmac/dvi.tmac: Add `sr', and `sqrtex'.
7074         Fix `radicalex'.
7076         * doc/groff.texinfo, man/groff_diff.man: Document that `radicalex'
7077         and `sqrtex' are overlapping glyphs.
7079 2003-01-04  Werner LEMBERG  <wl@gnu.org>
7081         * font/devdvi/generate/texsy.map: Add `is'.
7082         * font/devps/symbolmap: Regenerated.
7083         * font/devdvi/*TC, MI, S: Regenerated.
7085         * tmac/dvi.tmac: Remove `is'.
7087 2003-01-03  Werner LEMBERG  <wl@gnu.org>
7089         `is' is now a text symbol (only relevant for dvi).  The math variant
7090         can be accessed with `integral'.
7092         * font/devX*/S: Regenerated.
7093         * font/devdvi/generate/texex.map: Remove `is'.
7094         * font/devdvi/EX: Updated.
7095         * font/devhtml/R.proto, font/devutf8/R.proto: Add `integral'.
7096         * font/devlj4/generate/special.map: Ditto.
7097         * font/devlj4/S: Regenerated.
7098         * font/devps/generate/textmap: Add `integral'.
7099         * font/devps/S: Regenerated.
7101         * tmac/dvi.tmac: Define `is'.
7103         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Add `integral'.
7105         * src/preproc/tbl/main.cc (process_format): Fix error message.
7107 2003-01-02  Werner LEMBERG  <wl@gnu.org>
7109         * font/devhtml/R.proto, font/devutf8/R.proto: Add `ne' and `nc'.
7110         * font/devps/textmap: Fix entries for `ne' and `nc'.
7111         * font/devps/symbolmap: Regenerated.
7113         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list),
7114         src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Add `18',
7115         `38', `58', `78', `-+', `|=', `nc', `ne'.
7117         * tmac/dvi.tmac: Add `nm', `ne', `nc'.
7118         Use `schar' for `aq'.
7119         * tmac/ps.tmac, tmac/X.tmac: Add `nc' and `ne'.
7120         * tmac/ec.tmac: Add `SC' to special fonts for `CW' and `CWI'.
7121         * tmac/tty.tmac: Add `ne'.
7123         * src/roff/troff/node.cc (make_glyph_node): Test with `get_macro'
7124         for fallback glyphs.
7126 2002-12-29  Werner LEMBERG  <wl@gnu.org>
7128         Add glyph `|='.
7130         * font/devX*/*: Regenerated.
7131         * font/devdvi/generate/ec.map: Remove `eq'.
7132         * font/devdvi/generate/texsy.map: Make `~=' the same as `~~'.
7133         Assign `|=' to position 39.
7134         * font/devdvi/*EC, S: Regenerated.
7135         * font/devhtml/R.proto, font/devutf8/R.proto: Add `|='.
7136         * font/devlj4/generate/special.map: Make `~=' the same as `~~'.
7137         Assign `|=' to position 549.
7138         * font/devps/generate/textmap, font/devps/enerate/symbolmap: Remove
7139         `equalmath'.
7140         Add `uni2243' for `|='.
7142         * tmac/ec.tmac: Add `eq'.
7143         * tmac/dvi.tmac: Add `=~'.
7144         * tmac/tty-char.tmac, tmac/ps.tmac, tmac/X.tmac, tmac/lbp.tmac: Add
7145         `|='.
7147 2002-12-21  Werner LEMBERG  <wl@gnu.org>
7149         * font/devdvi/generate/tc.map: Remove `**'.
7150         * font/devdvi/*TC: Regenerated.
7151         * font/devhtml/R.proto, font/devutf8/R.proto: Add `18', `38', `58',
7152         `78', `<<', `>>'.
7153         * font/devutf8/NOTES: Updated.
7155         * src/roff/troff/charinfo.h (charinfo): Add `setx_macro' function.
7156         Don't give default parameter to `set_macro'.
7157         * src/roff/troff/input.cc (do_define_character): Use `setx_macro'
7158         instead of `set_macro'.
7159         (charinfo::setx_macro): Implement it.
7160         (charinfo::set_macro): Don't change `mode'.
7162         * tmac/tty.tmac: Add `18', `38', `58', `78', `<<', `>>'.
7163         * tmac/ps.tmac, tmac/X.tmac: Add `<<', `>>'.
7164         * tmac/dvi.tmac: Define `!=' with `.schar'.
7166 2002-12-20  Werner LEMBERG  <wl@gnu.org>
7168         * font/devX*/S: Regenerated.
7169         * font/devdvi/generate/ec.map: Remove `pl'.
7170         * font/devdvi/generate/tc.map: Remove `mi', `14', `12', `34'.
7171         * font/devdvi/*{TC,EC}: Regenerated.
7172         * font/devhtml/R.proto: Add `-+'.
7173         Remove double entries for `rk', `lk', `lt', `rt', `rb', `lb'.
7174         * font/devlbp/*: Remove `or'.
7175         * font/devlj4/generate/special.map: Remove `or'.
7176         * font/devlj4/S: Regenerated.
7177         * font/devps/generate/textmap: Add `fiveeighths', `oneeighth',
7178         `seveneighths', `threeeighths'.
7179         Remove `plusmath'.
7180         Replace `minusplus' with `uni2213'.
7181         * font/devps/symbolmap: Regenerated.
7182         * font/devutf8/R.proto: Replace `shc' with unnamed glyph.
7183         Add `-+'.
7185         * src/roff/troff/charinfo.h (charinfo): Add `is_normal' inline
7186         function.
7187         * src/roff/troff/node.cc (troff_output_file::put_char_width):
7188         Call glyph_color and fill_color even if tcommand_flag isn't set.
7189         (make_node, node::add_char): Check not ci->is_fallback but
7190         ci->is_normal.
7192         * tmac/lj4.tmac, tmac/lbp.tmac: Define `or'.
7193         * tmac/ec.tmac: Add .rchar entry for `f/'.
7194         Don't remove `12', `14', `34'.
7195         Define `pl' to be always roman.
7196         * tmac/ps.tmac (ps-frac, ps-frac-mono): New macros.
7197         Define `18', `38', `58', `78'.
7198         * tmac/tty.tmac: Add `-+'.
7199         * tmac/dvi.tmac: Define `f/'.
7200         (dvi-frac): Use `f/'.
7201         * tmac/X.tmac (X-frac, X-frac-mono): New macros.
7202         Define `18', `38', `58', `78'.
7204 2002-12-15  Colin Watson  <cjwatson@debian.org>
7206         * contrib/pic2graph/pic2graph.sh: Add missing `;;'.
7208 2002-12-10  Werner LEMBERG  <wl@gnu.org>
7210         Add glyph `tno', a textual variant of `no'.
7212         * font/devX*/*: Regenerated.
7213         * font/{devcp1047,devlatin1,devutf8,devhtml}/R.proto: Add `tno'.
7214         * font/devdvi/generate/{tc.map: Replace `no' with `tno'.
7215         * font/devdvi/generated/{texsy,textex}.map: Add `tno'.
7216         * font/devdvi/*: Regenerated.
7217         * font/devlbp/*: Add `tno'.
7218         * font/devlj4/generate/tex.map: Replace `no' with `tno'.
7219         * font/devlj4/*: Regenerated.
7220         * font/devps/generate/textmap: Replace `no' with `tno'.
7221         * font/devps/generate/symbolchars: Add `no'.
7222         * font/devps/*: Regenerated.
7224         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Add `tno'.
7226         * tmac/cp1047.tmac, tmac/latin1.tmac: Replace `no' with `tno'.
7227         * tmac/tty-char.tmac: Add entry for `tno' and `3d'.
7229         * NEWS: Updated.
7231         * tmac/dvi.tmac: Replace most `\\' with `\E'.
7232         Add definition for `sd'.
7233         * tmac/X.tmac, tmac/ps.tmac: Replace most `\\' with `\E'.
7235         * tmac/eqnrc <dvi>: Use `integral' instead of `is' glyph.
7237 2002-12-08  Werner LEMBERG  <wl@gnu.org>
7239         * tmac/an-old.tmac (TH): Use integer value for `IN' if in nroff
7240         mode to avoid rounding errors.
7241         (an-do-tag, an-do-tag-html, RS, RE): Remove redundant `.br'.
7243         * src/roff/groff/groff.man, src/roff/nroff/nroff.man,
7244         src/roff/troff/troff.man: Improve documentation of -T.
7246 2002-12-07  Jeff Conrad  <jeff_conrad@msn.com>
7248         * src/roff/groff/pipeline.c: Don't define `const' for _WIN32.
7249         (run_pipeline) [_WIN32]: Provide working function without `fork'.
7251 2002-12-06  Werner LEMBERG  <wl@gnu.org>
7253         * font/devps/generate/freeeuro.sfd: Make dimensions of Euro.symbol
7254         glyphs compatible to Adobe's Euro fonts (scaling them down a bit).
7255         Scaling Euro.sansserif glyphs down to have the same height as
7256         digits.
7257         Removed unnecessary points; added some extrema.
7259         * font/devps/EURO, font/devps/freeeuro.afm, font/devps/freeeuro.pfa:
7260         Regenerated.
7262 2002-12-04  Werner LEMBERG  <wl@gnu.org>
7264         * font/devps/generate/freeeuro.sfd: Add glyphs `Euro.symbol.slanted'
7265         and `Euro.symbol.bold.slanted'.
7266         Improve some glyph offsets and widths.
7267         * font/devps/EURO, font/devps/freeeuro.afm, font/devps/freeeuro.pfa:
7268         Regenerated.
7269         * font/devps/generate/Makefile (freeeuro.afm freeeuro.pfa): Fix
7270         typo.
7271         * font/devps/generate/sfdtopfa.pe: Generate PFA in current
7272         direcory.
7274         * tmac/europs.tmac: Updated to new glyph indices.
7275         Use Euro.symbol for font familiy `A'.
7277         * doc/groff.texinfo: Minor improvements.
7279 2002-12-02  Werner LEMBERG  <wl@gnu.org>
7281         * font/devdvi/generate.tc.map: s/%O/%0/.
7282         * font/devdvi/*TC: Regenerated.
7284         * src/roff/troff/div.cc (init_div_requests): Sorted.
7286         * tmac/dvi.tmac: Remove `Ye'.
7287         * tmac/ec.tmac: Remove `Ye'.
7288         Add .rchar entry for `de'.
7290         * man/groff.man, man/groff_diff.man: Document register `.pe'.
7291         * doc/groff.texinfo: Document registers `.pe', `.n', and `.w'.
7292         * NEWS: Updated.
7294 2002-11-30  Werner LEMBERG  <wl@gnu.org>
7296         Add PS font for various Euro glyphs.
7298         * font/devps/generate/freeeuro.sfd: New master font file for
7299         pfaedit.
7300         * font/devps/generate/sfdtopfa.pe: New conversion script for
7301         pfaedit.
7302         * font/devps/generate/Makefile (FONTS): Add `EURO'.
7303         (EURO, freeeuro.afm, freeeuro.pfa): New rules.
7304         * font/devps/freeeuro.pfa, font/devps/freeeuro.afm: Generated from
7305         `freeeuro.sfd'.
7306         * font/devps/EURO: Generated from `freeeuro.afm'.
7307         * font/devps/download: Add `freeuro.pfa'.
7308         * font/devps/Makefile.sub (NORMALFILES): Adde `EURO' and
7309         `freeeuro.pfa'.
7311         * tmac/europs.tmac: New file.
7312         * tmac/ps.tmac: Include `europs.tmac'.
7313         * tmac/Makefile.sub (DISTFILES): Add `europs.tmac'.
7315 2002-11-29  Werner LEMBERG  <wl@gnu.org>
7317         * font/devdvi/generate/texsy.map: Remove `lh' and `rh'.
7318         * font/devdvi/S: Regenerated.
7319         * font/devhtml/R.proto: Fix `CR' and `ci'.
7320         Add `OK'.
7321         * font/devps/generate/textmap: Fix `lh', `rh', and `sq'.
7322         Remove `bs'.
7323         * font/devps/symbolmap: Regenerated.
7324         * font/devutf8/R.proto: Fix `CR' and `ci'.
7325         Add `OK'.
7326         * font/devutf8/NOTES: Updated.
7328         * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Fix `CR' and
7329         `ci'.
7330         Add `OK'.
7331         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Ditto.
7333         * tmac/dvi.tmac: Add `lh' and `rh'.
7334         * tmac/Xps.tmac: Fix `lh' and `rh'.
7335         * tmac/X.tmac: Add `OK'.
7336         * tmac/lj4.tmac: Ditto.
7338 2002-11-24  Werner LEMBERG  <wl@gnu.org>
7340         * font/devX*/S: Regenerated.
7341         * font/devascii/R.proto, font/devcp1047/R.proto: Remove glyphs `lb',
7342         `lc', `lf', `lk', `lt', `rb', `rc', `rf', `rk', and `rt'.
7343         * font/devdvi/generate/texsy.map: Remove `or' glyph.
7344         * font/devdvi/S: Regenerated.
7345         * font/devhtml/R.proto, font/devutf8/R.proto: Add/fix glyphs
7346         `parenlefttp', `parenleftex', `parenleftbt', `parenrighttp',
7347         `parenrightex', `parenrightbt', `bracketlefttp', `bracketleftex',
7348         `bracketleftbt', `bracketrighttp', `bracketrightex',
7349         `bracketrightbt', `bracelefttp', `braceleftmid', `braceleftbt',
7350         `braceex', `braceleftex', `bracerightex', `bracerighttp',
7351         `bracerightmid', `bracerightbt', `lt', `lk', `lb', `rt', `rk',
7352         `rb', and `bv'.
7353         * src/roff/troff/glyphuni.cc, src/roff/troff/uniglyph.cc: Ditto.
7354         * font/devutf8/NOTES: Updated.
7355         * font/devlj4/generate/special.map: Add glyph `braceex'.
7356         * font/devlj4/S: Regenerated.
7358         * tmac/tty-char.tmac: Add glyphs `lf', `rf', `lc', and `rc'.
7360 2002-11-14  Werner LEMBERG  <wl@gnu.org>
7362         * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Add `va'
7363         and `vA'.
7364         Fix code for `an'.
7365         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Ditto.
7367         * doc/texinfo.tex: New version from texinfo 4.3.
7368         * doc/groff.texinfo: Updated for texinfo 4.3.
7369         Use @tie{} where appropriate.
7370         * font/devdvi/generate/ec.map: Don't include `or' and `bv'.
7371         * font/devdvi/generate/tc.map: Remove `rn'.
7372         * font/devdvi/*TC, font/devdvi/*EC: Regenerated.
7373         * font/devhtml/R.proto, font/devutf8/R.proto: Add `vA'.
7374         Fix code for `an'.
7375         * font/devX100/*, font/devX100-12/*, font/devX75/*,
7376         font/devX75-12/*: Regenerated.
7378         * tmac/dvi.tmac: Add special fonts `SA' and `SB'.
7379         Use .char (again) for `br', `ul', `rn', `or', and `ru'.
7380         Improve definition of `an'.
7381         * tmac/ps.tmac: Use .char (again) for `br', `ul', `rn', `or', and
7382         `ru'.
7383         * tmac/lj4.tmac: Use .char (again) for `br', `ul', `rn', and `ru'.
7384         * tmac/X.tmac: Add definition for `or'.
7385         * tmac/Xps.tmac: Undo change 2002-11-05.
7386         * tmac/lbp.tmac: Add definitions for `br', `rn', `ul', and `ru'.
7388 2002-11-11  Werner LEMBERG  <wl@gnu.org>
7390         * src/roff/troff/node.cc (troff_output_file::put_char): Always
7391         call flush_tbuf.
7393 2002-11-10  Werner LEMBERG  <wl@gnu.org>
7395         Added three new requests `schar', `fschar', and `rfschar'.  `schar'
7396         defines a glyph which is searched after the check for fonts declared
7397         with `.special' (and before the check for all mounted special
7398         fonts).  `fschar' defines a glyph for a particular font which is
7399         searched after the check for fonts declared with `.fspecial' (and
7400         before the check for fonts declared with `.special').  `rfschar'
7401         removes glyphs defined with `fschar'.
7403         * src/roff/troff/token.h (char_mode): New enum.
7404         Declare do_define_character.
7405         * src/roff/troff/charinfo.h (charinfo): Replace `fallback' with
7406         `mode'.
7407         (charinfo::is_fallback): Updated.
7408         (charinfo::is_special): New method.
7409         * src/roff/troff/input.cc (do_define_character): Add and use
7410         optional second parameter used as a prefix for font-specific glyph
7411         names.
7412         (define_character, define_fallback_character): Updated.
7413         (define_special_character): New function.
7414         (init_input_requests): Add `schar'.
7415         (charinfo::charinfo, charinfo::set_macro): Updated.
7416         * src/roff/troff/node.cc: Include `stringclass.h'.
7417         (make_glyph_node): Handle special glyphs defined with `.schar' and
7418         `.fschar'.
7419         (define_font_special_character, remove_font_special_character): New
7420         functions.
7421         (init_node_requests): Sorted.
7422         Add `fschar' and `rfschar'.
7423         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
7424         Document new requests.
7426         * font/devhtml/R.proto, font/devutf8/R.proto: Add `va'.
7427         * tmac/dvi.tmac: Add `va' for CW and CWI (using `.fschar').
7429 2002-11-08  Werner LEMBERG  <wl@gnu.org>
7431         Added new font `SC' (cmtex10) to devdvi.
7433         * devdvi/generate/Makefile (FONTS): Add `SC'.
7434         (SC): New rule.
7435         * devdvi/generate/textex.map: New map file for cmtex.
7436         * devdvi/SC: New.
7437         * devdvi/Makefile.sub (DEVFILES): Updated.
7438         * tmac/dvi.tmac: Add fspecial entries for SC.
7439         Add `MI', `S' and `CW' to the `special' call.  Otherwise, `SC' is
7440         found before `S' since the font position of `SC' is lower due to the
7441         gaps in DESC's `font' line.
7442         * tmac/ec.tmac: Add a `special' call.
7443         * NEWS: Updated.
7445         * font/devhtml/R.proto: Remove double entry for `ti'.
7446         * tmac/tty.tmac: Add entries for `IJ', `ij', and `bq'.
7447         * tmac/tty-char.tmac: Remove entry for `bq'.
7448         * tmac/lbp.tmac: Add entries for `lq', `rq', `fo', `fc', and `em'.
7449         * tmac/ec.tmac: Don't remove `aq' glyph.
7450         * tmac/X.tmac: Fix entry for `em'.
7451         Add entries for `fo' and `fc'.
7452         * tmac/dvi.tmac: Add entries for `em', `en', `hy', `fo', and `fc'.
7454         * doc/groff.texinfo, man/groff.man, man/groff_diff.man: Fix
7455         documentation of `special' and `fspecial' requests.
7457 2002-11-05  Werner LEMBERG  <wl@gnu.org>
7459         * font/devascii/R.proto, font/devcp1047/R.proto,
7460         font/devlatin1/R.proto: Remove entry for `.i'.
7461         * font/devdvi/generate/textt.map: Add entry for `ad'.
7462         * font/devdvi/generate/texr.map, font/devdvi/generate/texb.map,
7463         font/devdvi/generate/texi.map: Add dummy glyph name `slash@for@l'.
7464         We need this for getting kerning values to compose `/l' and `/L'.
7465         * font/devdvi: Regenerated font definition files for CM fonts.
7466         * font/devhtml/R.proto: Add entries for "'C", "'c", `IJ', and `ij'.
7467         * font/devutf8/R.proto: Ditto.
7468         Remove double entry for `ti'.
7470         * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Fix entries
7471         for (groff) ligatures, `la', and `ra'.
7472         Add "'C", "'c", `IJ', and `ij'.
7473         Remove double entry for `ti'.
7474         * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Remove all
7475         double entries.
7476         Add "'C", "'c", `IJ', and `ij'.
7477         Fix entries for (groff) ligatures, `la', and `ra'.
7479         * tmac/ps.tmac (ps-achar): New macro.
7480         Define "'c" and "'C".
7481         * tmac/tty.tmac: Add entry for `.i'.
7482         * tmac/X.tmac (X-achar): New macro.
7483         Define "'c", "'C", and `:Y'.
7484         Add entries for `IJ' and `ij'.
7485         * tmac/Xps.tmac (Xps-achar): New macro.
7486         Define "'c" and "'C".
7487         Add entries for `IJ' and `ij'.
7488         * tmac/lbp.tmac (lbp-achar): New macro.
7489         Add fallback characters for all groff ligatures and many other
7490         glyphs.
7491         * tmac/dvi.tmac: Fix definitions of `_' and `ul'.
7492         Add entries for `/l' and `/L'.
7493         Define "'c" and "'C".
7494         Add entries for `IJ' and `ij'.
7496 2002-11-02  Larry Kollar  <kollar@alltel.net>
7498         * PROBLEMS: Document how to solve Mac OS X compilation problems.
7500 2002-11-02  Werner LEMBERG  <wl@gnu.org>
7502         Adding support for composite glyphs: \[xxx yyy ...] and the
7503         `composite' request.
7505         * src/roff/troff/glyphuni.cc: New file for mapping groff glyph names
7506         to Unicode-based glyph names.
7507         * src/roff/troff/uniglyph.cc: New file for mapping Unicode-based
7508         glyph names to groff glyph names.
7509         * src/roff/troff/uniuni.cc: New file for canonically decomposing
7510         Unicode-based glyph names.
7511         * src/roff/troff/unicode.cc, src/roff/troff/unicode.h: New files
7512         for handling Unicode glyph names.
7513         * src/roff/troff/input.cc: Include unicode.h.
7514         (composite_glyph_name): New function.
7515         (token::next) <'['>: Handle Unicode glyph names and composite
7516         glyphs.
7517         (composite_dictionary): New dictionary for the `composite' request.
7518         (composite_request): Implement `composite' request.
7519         (init_input_requests): Add `composite'.
7520         Alphabetically sorted.
7521         * src/roff/troff/env.cc (tabs_save, tabs_restore): Removed (already
7522         commented out).
7523         (init_env_requests): Alphabetically sorted.
7524         Removed `tas' and `tar' (already commented out).
7525         * src/roff/troff/Makefile.sub: Updated.
7527 2002-10-31  Ruslan Ermilov  <ru@FreeBSD.org>
7529         * src/roff/nroff/nroff.man, src/roff/nroff/nroff.sh: Fix description
7530         of options.
7532 2002-10-29  Werner LEMBERG  <wl@gnu.org>
7534         Fix computation of .trunc register.  Additionally, its value (and
7535         the value of the .ne register) is now always set before entering the
7536         trap.
7538         * src/roff/troff/div.cc (diversion::need): Set `truncated_space' and
7539         `needed_space' before calling `space'.
7540         (top_level_diversion::space): Remove special code for 'sp before the
7541         first page.
7542         Call `begin_page' with the discarded space as a parameter.
7543         (top_level_diversion::begin_page): Add optional parameter to set
7544         `truncated_space'.
7545         * src/roff/troff/div.h: Updated.
7547         * doc/groff.texinfo: Improve documentation of .sp, \n[.trunc], and
7548         \n[.ne].
7550         * tmac/an-old.tmac (SH, SS, TP, IP, HP, TS): Undo change 2002-10-26.
7551         (LP): Remove superfluous call to `br'.
7552         * tmac/doc-common (doc-paragraph): Undo change 2002-10-26.
7553         * tmac/doc.tmac (Bd, Bl, doc-set-vertical-and-indent): Ditto.
7555 2002-10-26  Werner LEMBERG  <wl@gnu.org>
7557         * tmac/doc-ditroff: Remove useless switch/variable -rC.
7558         (doc-setup-header): Don't set page register `%'.
7559         * tmac/doc-nroff: Remove variable `C'.
7560         (doc-setup-page-layout): Set doc-header-space to .5i unconditionally.
7561         (doc-setup-header): Don't set page register `%'.
7562         Don't call `bp'.
7563         * tmac/doc-common (doc-header): Call `ns'.
7564         (doc-paragraph): Protect .sp with .br so that it survives traps
7565         possibly set by the user.
7566         * tmac/doc.tmac (Bd, Bl, doc-set-vertical-and-indent): Ditto.
7568         * tmac/doc*: Replace ' with . for consistency if no effect.
7570 2002-10-26  Werner LEMBERG  <wl@gnu.org>
7572         * tmac/an-old.tmac (SH, SS, TP, IP, HP, TS): Protect .sp with .br
7573         so that it survives traps possibly set by the user.
7575         * src/roff/troff/node.cc: Fix the changes from 2002-10-23.
7576         (troff_output_file::set_font): Call flush_tbuf if necessary.
7577         (troff_output_file::fill_color, troff_output_file::glyph_color): Call
7578         flush_tbuf and do_motion only if necessary.
7579         (troff_output_file::start_special,
7580         troff_output_file::put_char_width, troff_output_file::put_char,
7581         troff_output_file::draw): Updated.
7582         (word_space_node::tprint, space_node::tprint, hmotion_node::tprint,
7583         vmotion_node::tprint): Undo change 2002-10-23.
7585 2002-10-25  Werner LEMBERG  <wl@gnu.org>
7587         * tmac/www.tmac (DC): Fix case of overlapping images.
7589 2002-10-23  Werner LEMBERG  <wl@gnu.org>
7591         * src/roff/troff/node.cc (troff_output_file::fill_color,
7592         troff_output_file::glyph_color): Set current color before testing
7593         color_flag.
7594         (troff_output_file::put_char_width, troff_output_file::put_char,
7595         troff_output_file::draw): Don't call flush_tbuf and/or do_motion
7596         before glyph_color.
7597         (troff_output_file::file_color, troff_output_file::glyph_color):
7598         Call do_motion.
7599         (word_space_node::tprint, space_node::tprint, hmotion_node::tprint,
7600         vmotion_node::tprint): Move first, then call fill_color.
7602 2002-10-20  Werner LEMBERG  <wl@gnu.org>
7604         * doc/groff.texinfo, man/groff_tmac.man: Document that it is not
7605         possible to use multiple main macro packages.
7607 2002-10-19  Werner LEMBERG  <wl@gnu.org>
7609         * src/devices/grops/ps.cc (cmyk_flag): New global variable.
7610         (ps_printer::set_color): Set `cmyk_flag' for CMY and CMYK colors.
7611         (ps_printer::~ps_printer): Emit `%%Extensions: CMYK' if `cmyk_flag'
7612         is set.
7613         * font/devps/prologue.ps (Fk, Ck): Enclose definitions with a
7614         `where' construction since `cmyksetcolor' is a PS Level 2 operator.
7616 2002-10-16  Werner LEMBERG  <wl@gnu.org>
7618         * NEWS, doc/webpage.ms: Updated.
7620 2002-10-14  Werner LEMBERG  <wl@gnu.org>
7622         * src/roff/troff/node.cc (troff_output_file::put_char_width,
7623         troff_output_file::put_char, troff_output_file::fill_color,
7624         troff_output_file::glyph_color): Handle case where color pointer
7625         is null.
7627 2002-10-13  Ruslan Ermilov  <ru@FreeBSD.org>
7629         Add the new -r option to grotty.  It is similar to the -i option
7630         except it tells grotty(1) to use the `reverse video' attribute to
7631         render italic fonts.
7633         * src/devices/grotty/tty.cc (reverse_flag): New global variable.
7634         (SGR_REVERSE, SGR_NO_REVERSE): New macros.
7635         (tty_printer::make_underline, tty_printer::put_color,
7636         tty_printer::end_page): Use it.
7637         (main): Add -r switch.
7638         (usage): Updated.
7639         * src/devices/grotty/grotty.man: Document it.
7641 2002-10-11  Ruslan Ermilov  <ru@FreeBSD.org>
7643         * src/roff/troff/env.cc (hyphen_trie::read_patterns_file): Add
7644         cast to `unsigned char' to properly read patterns with 8bit
7645         characters.
7647 2002-10-08  Werner LEMBERG  <wl@gnu.org>
7649         * REVISION: Increased to 2.
7651 Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008
7652   Free Software Foundation, Inc.
7654 Copying and distribution of this file, with or without modification,
7655 are permitted in any medium without royalty provided the copyright
7656 notice and this notice are preserved.
7658 Local Variables:
7659 version-control: never
7660 coding: latin-1
7661 End: