Instead of using the non-standard conforming %+ format string,
[dragonfly.git] / contrib / groff / ChangeLog
1 2002-10-08  Werner LEMBERG  <wl@gnu.org>
2
3         * doc/webpage.ms, NEWS: Updated.
4
5 2002-10-07  Werner LEMBERG  <wl@gnu.org>
6
7         * tmac/doc-common (Ss): Add final `.ns' (similar to `.Sh') to
8         suppress additional whitespace after the header.
9
10         * tmac/doc-ditroff, tmac/doc-nroff (Am): New string to be in sync
11         with NetBSD.
12
13         * src/preproc/grn/grn.man, tmac/groff_mdoc.man, NEWS: Updated.
14
15 2002-10-07  Ruslan Ermilov  <ru@FreeBSD.org>
16
17         * tmac/doc-common(doc-volume-operating-system-ateol): New flag.
18         (Dt): Use it to improve language localization (especially Russian
19         and French).
20
21 2002-10-07  Daniel Senderowicz  <daniel@synchrods.com>
22
23         * src/preproc/grn/gprint.h (BSPLINE, BEZIER): New macros.
24         * src/preproc/grn/hdb.cc (DBGetType): Parse spline and bezier
25         drawing commands.
26         * src/preproc/grn/hgraph.cc (drawwig): Add parameter to control
27         curve type.
28         Call `picurve' for BSPLINE.
29         (HGPrintElt): Handle BSPLINE.
30         * src/preproc/grn/README: Document it.
31
32 2002-10-03  Werner LEMBERG  <wl@gnu.org>
33
34         * src/roff/troff/node.cc (break_char_node::col): New variable.
35         Updated constructor.
36         (space_node::tprint, word_space_node::tprint): Call `fill_color'
37         unconditionally.
38         (space_node::space_node): Remove assertion.
39         (break_char_node::add_self): Pass color argument to space node.
40         * src/roff/troff/input.cc (token::add_to_node_list, token::process):
41         Ditto.
42         * src/roff/troff/env.cc (environment::do_break,
43         environment::add_padding): Ditto.
44
45 2002-10-02  Werner LEMBERG  <wl@gnu.org>
46
47         Redesigning color support in troff.  Colors are no longer
48         represented as separate nodes but are now part of glyph nodes and
49         friends.  This fixes the current formatting misbehaviour due to the
50         changes introduced on 2002-09-20.  Some extra code is necessary for
51         proper grotty support: Without adding color variables to
52         space-related nodes, the background color would be changed too late.
53
54         * src/roff/troff/node.h, src/roff/troff/node.cc:
55         s/current_pagecolor/current_fill_color/.
56         s/current_glyphcolor/current_glyph_color/.
57         (glyph_color_node, fill_color_node): Removed.
58         (node::get_glyph_color, node::get_fill_color): New virtual member
59         functions.
60         (space_node::col): New variable.
61         Updated constructors of space_node and derived classes accordingly.
62         (hmotion_node::col): New variable.
63         Updated constructors of hmotion_node and space_char_hmotion_node
64         accordingly.
65         (vmotion_node::col): New variable.
66         Updated constructor accordingly.
67         (draw_node::gcol, draw_node::fcol): New variables.
68         Updated constructor accordingly.
69         (special_node::gcol, special_node::fcol): New variables.
70         Updated constructors accordingly.
71         (troff_output_file::put_char, troff_output_file::put_charwidth,
72         troff_output_file::draw): Set glyph and fill color.
73         (troff_output_file::start_special): Set glyph and fill color.
74         Always set current font.
75         (troff_output_file::fill_color, troff_output_file::glyph_color):
76         Don't call `do_motion'.
77         (glyph_node::gcol, glyph_node::fcol): New variables.
78         Updated constructors of glyph_node and ligature_node accordingly.
79         (glyph_node::get_glyph_color, glyph_node::get_fill_color): New
80         member functions.
81         (glyph_node::merge_glyph_node,
82         kern_pair_node::add_discretionary_hyphen,
83         node::add_discretionary_hyphen): Updated.
84         (break_char_node::merge_self): Updated.
85         (word_space_node::tprint, space_node::tprint, hmotion_node::tprint,
86         vmotion_node::tprint): Handle color.
87         (make_glyph_node, make_node, node::add_char): Updated.
88
89         * src/roff/troff/env.cc (environment::space_newline,
90         environment::space, environment::output_line, environment::do_break,
91         environment::make_tab_node, environment::add_padding, title):
92         Updated.
93         (environment_switch, environment_copy): Don't add color nodes.
94
95         * src/roff/troff/input.cc (do_glyph_color, do_fill_color): Return
96         nothing.
97         (token::next): Updated.
98         \m and \M now are as transparent as \s.
99         (process_input_stack, token::add_to_node_list, token::process,
100         read_draw_node): Updated.
101         (charinfo_to_node_list): Don't add color nodes.
102
103         * doc/groff.texinfo: Updated.
104
105 2002-09-27  Ruslan Ermilov  <ru@FreeBSD.org>
106
107         * tmac/doc-common (ds-operating-system-FreeBSD-4.*): New version
108         strings.
109
110 2002-09-27  Colin Watson  <cjwatson@debian.org>
111
112         * src/roff/troff/node.cc (bracket_node::copy): Check `list' != 0.
113
114 2002-09-23  Werner LEMBERG  <wl@gnu.org>
115
116         * src/devices/grolbp/lbp.cc: Replace `300' with `font::res' where
117         appropriate.
118         (DEFAULT_LINEWIDTH_FACTOR): New macro.
119         (linewidth_factor): New global variable.
120         (lbp_printer::set_line_thickness): Fix case for size < 0, using
121         linewidth_factor.
122         (long_options): Add -w/--linewidth option.
123         (usage): Updated.
124         (main): Handle -w option to set linewidth_factor.
125         (lbp_printer::lbp_printer): Initialize req_linethickness, not
126         line_thickness.
127
128         * src/devices/grolbp/grolbp.man, NEWS, doc/webpage.ms: Updated.
129
130 2002-09-22  Paco Andrés Verdú  <pandres@dragonet.es>
131
132         Fixed a bug in the line thickness setting code.
133
134         * src/devices/grolbp/lbp.cc (lbp_printer::req_linethickness): New
135         variable.
136         (lbp_printer::set_line_thickness): Pass environment as second
137         parameter.
138         Implement it actually.
139         (lpb_printer::set_char, lbp_printer::draw): Use `req_linethickness'
140         and `set_line_thickness, depending on the current font size.
141
142 2002-09-21  Werner LEMBERG  <wl@gnu.org>
143
144         Some Debian patches.
145
146         * src/roff/groff/pipeline.h (MAX_COMMANDS): Increase to 12.
147         * src/roff/troff/node.cc (bracket_node::copy): Initialize
148         `list->last'.
149
150 2002-09-20  Werner LEMBERG  <wl@gnu.org>
151
152         * configure: Regenerated with autoconf 2.54.
153
154 2002-09-20  Werner LEMBERG  <wl@gnu.org>
155
156         * src/roff/troff/env.h (environment): Rename cur_glyph_color to
157         glyph_color.
158         Rename cur_fill_color to fill_color.
159         * src/roff/troff/env.cc: Updated.
160
161 2002-09-20  Werner LEMBERG  <wl@gnu.org>
162
163         * src/roff/troff/env.cc (title): Copy color status after processing
164         title.
165         * src/roff/troff/input.cc (charinfo_to_node_list): Emit glyph and
166         fill color nodes to reset colors properly.
167
168         * tmac/www.tmac (DC): Fix color handling.
169
170         * src/preproc/pic/pic.man, doc/pic.ms: Document some color issues.
171         * doc/groff.texinfo: Fixing documentation of `tl' request.
172         * doc/webpage.ms: Updated.
173
174 2002-09-19  Werner LEMBERG  <wl@gnu.org>
175
176         * src/roff/troff/env.cc (environent_switch, environment_copy):
177         Emit glyph and fill color nodes to initialize colors properly.
178
179 2002-09-17  Colin Watson  <cjwatson@debian.org>
180
181         * src/roff/troff/env.cc (environment::set_glyph_color,
182         environment::set_fill_color): Fix typo which prevented \m[] work
183         correctly.
184
185 2002-09-17  Werner LEMBERG  <wl@gnu.org>
186
187         Add left and right italic correction to non-slanted PS fonts.  This
188         is an experimental feature to improve image rendering of grohtml.
189
190         * font/devps/generate/Makefile (RFLAG): New variable, set to `-i 0'.
191         ({T,H,C,P,N,BM,A,HN}{R,B}, ZD, S, ZDR): Use it.
192         * font/devps/*: All non-slanted fonts regenerated.
193         * NEWS: Updated.
194
195 2002-09-16  Werner LEMBERG  <wl@gnu.org>
196
197         Add a site-specific font directory.
198
199         * Makefile.in (localfontdir, legacyfontdir): New variables.
200         (fontpath): Use them.
201         (MDEFINES, uninstall_dirs): Updated.
202         * Makefile.comm (.man.n): Add `LOCALFONTDIR' and `LEGACYFONTDIR'.
203         Remove `FONTPATH' and `MACROPATH'.
204
205         * src/roff/troff/troff.man, NEWS: Updated.
206         * doc/groff.texinfo (Font Directories): New section.
207         Other minor fixes.
208
209         * src/devices/grodvi/grodvi.man, src/devices/grohtml/grohtml.man,
210         src/devices/grolbp/grolbp.man, src/devices/grolj4/grolj4.man,
211         src/preproc/grn/grn.man: Minor fixes.
212
213         * src/devices/grohtml/post-html.cc (html_printer::do_tab_ts):
214         Remove unused variable.
215
216 2002-09-11  Werner LEMBERG  <wl@gnu.org>
217
218         * doc/groff.texinfo, man/groff_font.man: Clarify argument of \N.
219         * man/groff_out.man: Fix documentation of 'N'.
220
221 2002-09-09  Gaius Mulley  <gaius@glam.ac.uk>
222
223         * doc/Makefile.in (webpage.html): Depend on gnu.eps also.
224         * src/roff/troff/env.cc (indent): Emit html tag only if break_flag is
225         set.
226         * src/devices/grohtml/post-html.cc (text_glob::is_br_ni): Removed.
227         (text_glob::is_br, html_printer::lookahead_for_tables): Updated.
228         (html_printer::do_tab_ts): Call `emit_table_header' with `FALSE'.
229         * src/devices/grohtml/html-text.cc (html_text::start_tag) <P_TAG,
230         PRE_TAG>: Call `begin' with `FALSE'.
231
232 2002-09-09  Ralph Corderoy  <ralph@inputplus.demon.co.uk>
233
234         * src/libs/libgroff/string.cc (string::extract): Fix position of
235         terminating null byte.
236
237 2002-09-08  Werner LEMBERG  <wl@gnu.org>
238
239         Add global option `nospaces' to tbl so that leading and trailing
240         spaces in data items are ignored.
241
242         * src/libs/libgroff/string.cc (string::remove_spaces): New member
243         function to remove leading and trailing spaces.
244         * src/include/stringclass.h: Updated.
245
246         * src/preproc/tbl/table.h (table): Add flag `NOSPACES'.
247
248         * src/preproc/tbl/main.cc (process_options): Handle `nospaces'
249         option.
250         Fix typo in error messages.
251         (process_data): Implement `nospaces' option.
252         * src/preproc/tbl/tbl.man, NEWS, doc/webpage.ms: Updated.
253
254 2002-09-07  Werner LEMBERG  <wl@gnu.org>
255
256         * src/include/config.hin: Add `HAVE_ISATTY'.
257         * src/libs/libgroff/tmpfile.cc (xtmpfile_list): Drop `const' for
258         `fname' member.
259         * src/libs/libgroff/tmpname.cc: Include `time.h'.
260         * src/libs/libdriver/input.cc (Char): Add `operator==' and
261         `operator!=' for `char'.
262         * doc/groff.texinfo: Replace @ifnottex block for top node with
263         @ifhtml block.
264
265 2002-09-06  Werner LEMBERG  <wl@gnu.org>
266
267         * doc/Makefile.in (.texinfo.html): Add -I switch.
268         * doc/groff.texinfo: Add @ifnottex block for top node to make
269         translation to HTML work.
270
271 2002-09-05  Gaius Mulley  <gaius@glam.ac.uk>
272
273         * src/preproc/html/pre-html.cc (LETTER_LENGTH): Removed.
274         (get_papersize, determine_vertical_offset): Removed.
275         (char_buffer::do_image): Always specify letter size.
276         (main): Updated.
277         (imageList::createPage): Use -dDEVICEHEIGHTPOINTS instead of
278         -sPAPERSIZE.
279
280 2002-09-05  Werner LEMBERG  <wl@gnu.org>
281
282         * doc/groff.texinfo, tmac/groff_man.man: Improve documentation of
283         default indentation.
284
285 2002-09-04  Gaius Mulley  <gaius@glam.ac.uk>
286
287         * src/preproc/html/pre-html.cc (imageList::createPage): Use
288         -sPAPERSIZE for gs.
289         (generateImages): Clean up push-back buffer.
290
291 2002-09-04  Ralph Corderoy  <ralph@inputplus.demon.co.uk>
292
293         * doc/groff.texinfo: Minor fixes.
294
295 2002-08-21  Gaius Mulley  <gaius@glam.ac.uk>
296
297         * src/preproc/html/pre-html.cc (DEFAULT_LINE_LENGTH): New macro.
298         (MAX_WIDTH, A4_LENGTH, A4_OFFSET, LETTER_OFFSET): Removed.
299         (gsPaper): Removed.
300         (determine_vertical_offset): Use LETTER_LENGTH.
301         (createPage): Moved to ...
302         (imageList::createPage): This.
303         Call gs with -dDEVICEWIDTHPOINTS to avoid cropping.
304         (imageList::getMaxX): New function.
305         (createImage): Moved to ...
306         (imageList::createImage): This.
307         (imageList::createImages): New function.
308         (generateImages): Read `maxx' directly.
309         Updated.
310         (scanArguments): Don't specify `gsPaper' for `-o'.
311         (makeTempFiles): Call `xtmpfile' with the last argument set to
312         `TRUE'.
313
314 2002-08-24  Werner LEMBERG  <wl@gnu.org>
315
316         * src/include/nonposix.h (mkdir, WAIT, creat) [_MSC_VER]: Define.
317         (WAIT, _WAIT_CHILD) [!_MSC_VER]: Define.
318         * src/preproc/html/pre-html.cc (waitForChild): Use WAIT.
319         * src/preproc/html/pushback.cc: Include nonposix.h.
320         * src/roff/groff/pipeline.c: Define strcasecmp and strncasecmp
321         conditionally.
322
323 2002-08-23  Werner LEMBERG  <wl@gnu.org>
324
325         Use $(OBJEXT) for the object file extension.
326
327         * Makefile.comm (.SUFFIXES): Add .obj.
328         (.cc.obj, .c.obj): New implicit rules.
329         * Makefile.in (OBJEXT): New variable, initialized from autoconf.
330         (MDEFINES): Add EXEEXT and OBJEXT.
331         * */Makefile.sub: s/.o/.$(OBJEXT)/.
332
333 2002-08-22  Werner LEMBERG  <wl@gnu.org>
334
335         * INSTALL: Mention texinfo 4.2 as a prerequisite.
336
337 2002-08-21  Gaius Mulley  <gaius@glam.ac.uk>
338
339         * src/devices/grohtml/post-html.cc (colType): Make enum global to
340         the file.
341         (html_printer::update_min_max, html_printer::add_table_end): New
342         methods.
343         (html_printer::lookahead_for_tables): Use them.
344         Reset page offset correctly.
345         (html_printer::~html_printer): Add creation of creator comment up.
346
347 2002-08-20  Werner LEMBERG  <wl@gnu.org>
348
349         * tmac/an-old.tmac (T&): New dummy macro to avoid warning.
350         * man/groff_tmac.man: Fix typos.
351         * man/groff_font.man: Minor reordering.
352         * contrib/eqn2graph/eqn2graph.man (Tp): New macro.
353         * contrib/groffer/groffer.man: Fix typos.
354
355 2002-08-18  Gaius Mulley  <gaius@glam.ac.uk>
356
357         Avoid endless loops while scanning for tables.
358
359         * src/devices/grohtml/post-html.cc (list::insert): Set
360         ptr->right->left.
361         (html_printer::next_horiz_pos): Add `text_glob' argument; update
362         all callers.
363         Return immediately if that argument is NULL.
364         (html_printer::calc_nf): Don't test if `g' is NULL.
365         (html_printer::lookahead_for_tables): Use
366         `glyphs.move_right_get_data'.
367         Don't test if `g' is NULL.
368
369 2002-08-18  Gaius Mulley  <gaius@glam.ac.uk>
370
371         A better fix, replacing fix 2002-08-15, for increasing SIZE.
372
373         * src/devices/grohtml/post-html.cc (char_block): Make `buffer'
374         a pointer.
375         (char_block::char_block): Allocate `buffer'.
376         (char_buffer::add_string): Use it.
377
378 2002-08-15  Werner LEMBERG  <wl@gnu.org>
379
380         * src/devices/grops/grops.man, src/devices/grolj4/grolj4.man,
381         src/devices/grodvi/grodvi.man: Document default line thickness.
382
383 2002-08-15  Gaius Mulley  <gaius@glam.ac.uk>
384
385         * src/devices/grohtml/post-html.cc (char_block): Increase SIZE to
386         8192.
387
388 2002-08-14  Werner LEMBERG  <wl@gnu.org>
389
390         * doc/webpage.ms: Updated.
391
392 2002-08-09  Werner LEMBERG  <wl@gnu.org>
393
394         * src/roff/troff/node.cc (node::add_char): Call `freeze_space' for
395         unbreakable space.
396
397 2002-08-08  Aaron Campbell <aaron@monkey.org>
398
399         * src/preproc/pic/object.cc (object_spec::make_move): Fix typo
400         (&& -> &).
401
402 2002-08-08  Werner LEMBERG  <wl@gnu.org>
403
404         * src/roff/troff/input.cc (read_rgb, read_cmy, read_cmyk): Call
405         tok.next().
406         (read_gray): Ditto.
407         Don't push back a space but a newline onto the stack.
408
409 2002-08-07  Gaius Mulley  <gaius@glam.ac.uk>
410
411         Add fonts `CI', `CB', and `CBI' to grohtml which have been omitted
412         inadvertently.
413
414         * src/devices/grohtml/post-html.cc (html_printer::end_font,
415         html_printer::start_font): Handle them.
416         * src/devices/grohtml/html-text.cc (html_text::do_italic): Don't
417         reset bold and tt.
418         (html_text::do_bold): Don't reset italic and tt.
419         (html_text::do_tt, html_text::do_pre): Don't reset bold and italic.
420         * font/devhtml/DESC.proto: Add those fonts.
421         * font/devhtml/Makefile.sub (PROTOFONTS): Updated.
422
423 2002-08-07  Werner LEMBERG  <wl@gnu.org>
424
425         * MORE.STUFF: Added gpresent.
426
427         * tmac/trace.tmac: Show nesting level by a corresponding amount of
428         whitespace before printing the logging message.
429
430 2002-07-31  Colin Watson  <cjwatson@debian.org>
431
432         * src/devices/grohtml/html-table.cc (html_table::finish_row):
433         Initialize `n' to zero.  This fixes a segfault on ARM.
434
435 2002-07-30  Werner LEMBERG  <wl@gnu.org>
436
437         * doc/grnexmpl.me: Remove calls to .st and .sc which are undefined.
438
439 2002-07-29  Werner LEMBERG  <wl@gnu.org>
440
441         * src/preproc/pic/pic.y (print_arg, relative_path): Add missing
442         final semicolon.
443
444 2002-07-28  Colin Watson  <cjwatson@debian.org>
445
446         * src/devices/grohtml/post-html (html_printer::troff_tag): Handle
447         `.ps'.
448         (html_printer::html_printer): Initialize `pointsize'.
449
450 2002-07-26  Werner LEMBERG  <wl@gnu.org>
451
452         * doc/Makefile.sub (PROCESSEDEXAMPLEFILES): Remove gnu.eps and
453         gnu.png.
454         (CLEANNOTSRCDIRADD): Add gnu.eps and gnu.png.
455         (gnu.eps): Add -rle switch to pnmtops.
456         (distfiles): Add gnu.eps and gnu.png.
457
458 2002-07-25  Petter Reinholdtsen  <pere@hungry.com>
459
460         * src/libs/libdriver/input.cc (Char): Add const to `operator=='.
461         Add `operator!='.
462
463 2002-07-24  Werner LEMBERG  <wl@gnu.org>
464
465         * doc/Makefile.in, doc/Makefile.sub (groff_bin_path): Don't use
466         ' \+' but '  *' for sed.
467         (GROFF): Set GROFF_COMMAND_PREFIX to empty value.
468
469 2002-07-23  Werner LEMBERG  <wl@gnu.org>
470
471         * doc/groff.texinfo: Document `papersize' keyword.
472         * NEWS, man/groff_font.man: Updated.
473
474 2002-07-23  Colin Watson  <cjwatson@debian.org>
475
476         Extend papersize keyword to accept more than a single entry.  The
477         first valid will be used.
478
479         * src/libs/libgroff/font.cc (font::load_desc): Implement it.
480         (font::scan_papersize): Really skip final newline.
481         * src/preproc/html/pre-html.cc (get_papersize): Ditto.
482
483 2002-07-23  Werner LEMBERG  <wl@gnu.org>
484
485         * configure.ac: Test for isatty.
486         * configure: Regenerated.
487         * src/include/posix.h: Check HAVE_ISATTY.
488         * src/roff/troff/input.cc [ISATTY_MISSING]: Removed.
489         * src/utils/lookbib/lookbib.cc: Include posix.h.
490         Don't declare isatty.
491
492 2002-07-21  Werner LEMBERG  <wl@gnu.org>
493
494         * NEWS: Add `output' request.
495
496         * REVISION: Increased to 1.
497
498 Version 1.18.0 released
499 =======================
500
501 2002-07-19  Gaius Mulley  <gaius@glam.ac.uk>
502
503         Allow internal glyph indices > 0xFF in grohtml for input characters.
504
505         * src/devices/grohtml/post-html.cc (to_unicode): Use `unsigned int'
506         as parameter.
507         (html_printer::add_to_sbuf): Use `unsigned int' as first parameter.
508         Updated all callers.
509         (html_printer::sbuf_continuation, html_printer::overstrike): Ditto.
510         (html_printer): Updated.
511
512 2002-07-19  Werner LEMBERG  <wl@gnu.org>
513
514         * font/devhtml/R.proto: Updated to HTML 4, adding many glyphs.
515         * font/devutf8/R.proto: Adding some missing glyphs.
516         * font/devutf8/NOTES: Updated.
517
518         * tmac/dvi.tmac: Add more composite glyphs.
519         * tmac/html.tmac: Updated.
520
521         * man/groff_char.man: Add `sum' and `product' entities.
522
523         * NEWS: Updated.
524
525 2002-07-18  Gaius Mulley  <gaius@glam.ac.uk>
526
527         Improved table, tab, and indenting support.
528
529         * src/roff/troff/input.cc (file_iterator::suppress_newline_flag,
530         string_iterator::suppress_newline_flag): Removed.  Updated all
531         function which have used it.
532
533         * src/roff/troff/env.cc: Include `input.h'.
534         (environment::add_node): Accept 0 as parameter.
535         (environment::add_html_tag): Add `force' parameter.
536         Updated all callers.
537         (environment::add_html_tag_tabs): Ditto.
538         For the moment, support left-aligned tabs only.
539         (environment::make_html_tag): New function.
540         (fill, no_fill): Set .br html tag additionally.
541         (environment::newline): Emit `eol.ce' or `eol' tag for html.
542         (environment::add_html_tag_eol): Removed.
543         (tab_stops::distance_to_next_tab): Add variant for handling 
544         nextpos'.
545         (environment::distance_to_next_tab): Ditto.
546         Updated all callers.
547         (environment::handle_tab): Handle tabs for html.
548         
549         * src/roff/troff/env.h: Updated.
550
551         * src/roff/troff/div.cc: Updated all callers of
552         `environment::add_html_tag'.
553
554         * src/devices/grohtml/html-table.cc,
555         src/devices/grohtml/html-table.h: New files.
556
557         * src/devices/grohtml/html-text.cc (html_text): New members
558         `blank_para' and `start_space'.
559         (html_text::issue_tag): Don't emit TABLE_TAG.
560         Handle indentation for PRE_TAG and P_TAG.
561         (html_text::end_tag): Updated.
562         (html_text::table_is_void, html_text::issue_table_begin,
563         html_text::issue_table_end): Removed.
564         (html_text::do_push): Simplified.
565         [DEBUGGING]: Small fix.
566         (html_text::push_para): Add new parameter for indentation; updated
567         all callers.
568         Handle PRE_TAG.
569         (html_text::do_indent, html_text::do_table, html_text::done_table,
570         html_text::is_in_table): Removed.
571         (html_text::do_pre): Handle P_TAG also.
572         (html_text::shutdown): Handle p->indent.
573         (html_text::check_emit_text): Simplified.
574         (html_text::do_emittext): Reset `blank_para'.
575         (html_text::do_para): Add new parameter for indentation; updated
576         all callers.
577         (html_text::remove_indent): New function.
578         (html_text::do_space): Handle verbatim text properly.
579         (html_text::ever_emitted_text, html_text::starts_with_space,
580         html_text::remove_para_align): New functions.
581         (html_text::dump_stack_element, html_text::dump_stack): Updated.
582
583         * src/devices/grohtml/html_text.h (HTML_TAG): Remove TABLE_TAG.
584         Updated.
585
586         * src/devices/grohtml/post-html.cc: Include html-table.h.
587         (INDENTATION): Removed.
588         (text_glob): Added many `is_<foo>' functions.
589         Added table description `tab'.
590         Added `get_arg',`get_tab_args', `remember_table', and `get_table'
591         member functions.
592         (list): Add `insert' and `move_to' member functions.
593         (page): Add `insert_tag' member function.
594         (page::dump_page) [DEBUG_TABLES]: Improved.
595         (html_printer): Add `table' and `max_linelength' elements.
596         Add many `do_<foo>', `insert_<foo>', `next_horiz_pos',
597         `lookahead_for_tables', `shutdown_table', `calc_nf', `calc_po_in',
598         `remove_tabs', `remove_courier_tabs'.
599         (html_printer::emit_raw): Handle indentation.
600         (html_printer::do_center, html_printer::write_header): Updated.
601         (html_printer::is_courier_until_eol): Check for tag.
602         (html_printer::do_linelength): Handle max_linelength.
603         (html_printer::do_page_offset, html_printer::do_indentation): Handle
604         fill_on.
605         (html_printer::do_tempindent): Updated.
606         (html_printer::do_indentedparagraph): Removed.
607         (html_printer::do_indent): Simplified.
608         (html_printer::do_eol): Use `ever_emitted_text'.
609         (html_printer::do_flush, html_printer::do_links): Don't call
610         done_table.
611         (html_printer::do_break): Handle end_tempindent.
612         (html_printer::troff_tag): Get argument.
613         Don't handle `.ip'.
614         Handle `.tab-ts', `.tab-te', `.col', `tab', and `tab0' tags.
615         (html_printer::flush_page): Call `lookahead_for_tables'.
616         Don't call `done_table'.
617         (html_printer::add_to_sbuf): Always call do_indent.
618
619         * src/devices/grohtml/Makefile.sub: Updated.
620
621         * tmac/an-old.tmac (TP): Don't handle html device specially.
622         (an-do-tag-html): New function which will be used instead of
623         `an-do-tag' if html device is used.
624
625         * tmac/html.tmac: Call .po to pass default page offset to grohtml.
626
627         * tmac/s.tmac (@IP): Don't handle html device specially.
628         (@IP-html): New function which will be used instead of `@IP' if
629         html device is used.
630
631         * tmac/www.tmac (HTML-NS, HTML-TAG-NS): New auxiliary macros -- this
632         is a hack which will eventually vanish again.
633         (PIMG): Handle `-C' option correctly if not html.
634         (HR): Use HTML-NS.
635
636 2002-07-17  Werner LEMBERG  <wl@gnu.org>
637
638         * src/utils/afmtodit/afmtodit.pl: Don't use `-P-' for invoking perl.
639
640 2002-07-14  Eric S. Raymond  <esr@thyrsus.com>
641
642         * contrib/pic2graph/pic2graph.*: Use convert(1).
643         * contrib/eqn2graph/eqn2graph.*: Minor fixes.
644
645 2002-07-14  Bernd Warken  <bwarken@mayn.de>
646
647         * tmac/groff_trace.man: New file.
648         * tmac/Makefile.sub: Updated.
649         * NEWS: Updated.
650
651 2002-07-13  Werner LEMBERG  <wl@gnu.org>
652
653         * src/roff/groff/groff.man: Add some cross references.
654
655 2002-07-12  Werner LEMBERG  <wl@gnu.org>
656
657         * src/roff/troff/input.cc (substring_request): Add warnings for
658         string indices out of range.
659
660 2002-07-11  Werner LEMBERG  <wl@gnu.org>
661
662         * font/devdvi/generate/ec.map: Fix typo (`(l' -> `/l').
663         * font/devdvi/*EC: Regenerated.
664
665 2002-07-10  Bernd Warken  <bwarken@mayn.de>
666
667         * man/groff_char.man: Updated and extended.
668
669 2002-07-10  Werner LEMBERG  <wl@gnu.org>
670
671         * src/roff/troff/input.cc (length_macro): Renamed to...
672         (length_request): This.
673         Move call of `tok.next()' to the very end, otherwise the register
674         value hasn't been updated yet.
675         (init_input_requests): Updated.
676
677 2002-07-09  Werner LEMBERG  <wl@gnu.org>
678
679         * src/roff/troff/input.cc (substring_macro): Renamed to...
680         (substring_request): This.
681         (init_input_requests): Updated.
682         * src/roff/troff/request.h: Updated.
683
684 2002-07-08  Robert D. Goulding <goulding@Princeton.EDU>
685
686         * src/roff/grog/grog.sh: Fix typo.
687
688 2002-07-08  Werner LEMBERG  <wl@gnu.org>
689
690         * win32-diffs: Updated.
691
692         Handle `papersize' keyword properly in DESC.
693
694         * src/libs/libgroff/font.cc (font::scan_papersize): Fix argument
695         type.
696         Updated all callers.
697         * src/libs/libgroff/paper.cc: Add four more paper formats used by
698         grolj4.
699         * src/include/paper.h: Updated.
700
701         * src/devices/grolbp/lbp.cc: Remove unnecessary semicolons.
702         Other minor C syntax fixes.
703         (papersize, paperlength, paperwidth): Renamed to `user_*'.
704         (lbp_printer): Add `papersize', `paperlength', and `paperwidth'
705         members.
706         (lbp_printer::lbp_printer): Pass three arguments.
707         Set paper dimensions properly.
708         (make_printer, main): Updated.
709         (handle_unknown_desc_command): Fix error messages.
710         (main): Handle papersize keyword in DESC properly.
711
712         * src/devices/grolj4/lj4.cc (paper_size): Renamed to
713         `user_paper_size'.
714         (lbp_printer::lbp_printer): Pass an argument.
715         Set paper_size properly.
716         (handle_unknown_desc_command): Removed.
717         (make_printer, main): Updated.
718         * src/devices/grolj4/grolj4.man: Minor documentation fix.
719
720         * man/groff_font.man, NEWS: Updated.
721
722 2002-07-07  Werner LEMBERG  <wl@gnu.org>
723
724         Integrated eqn2graph, contributed by Eric S. Raymond.
725
726         * contrib/eqn2graph/{Makefile.sub, eqn2graph.sh, eqn2graph.man}: New
727         files.
728         * Makefile.in, NEWS: Updated.
729
730 2002-06-04  Werner LEMBERG  <wl@gnu.org>
731
732         Changing the substring request to make it fit better with other
733         string manipulation functions in other programming languages:
734         Index 0 is now the first character in the string, and index -1
735         indicates the last character.  Since this request didn't work
736         properly anyway in the last release, it doesn't harm too much to
737         change the syntax.
738
739         * src/roff/troff/input.cc (substring_macro): Use loops to get
740         the real string length (ignoring COMPATIBLE_SAVE and
741         COMPATIBLE_RESTORE) and offsets.
742         Implement change described above.
743
744         * man/groff_char.man, tmac/doc-common (doc-header), tmac/doc.tmac
745         (doc-do-Bd-args, doc-do-Bl-args: Changed accordingly.
746
747         * NEWS, doc/groff.texinfo, man/groff_diff.man: Updated.
748
749 2002-06-03  Werner LEMBERG  <wl@gnu.org>
750
751         Make .chop work with .de1 and friends.  COMPATIBLE_SAVE and
752         COMPATIBLE_RESTORE are completely ignored.
753
754         * src/roff/troff/input.cc (char_list::set, char_list::get): New
755         functions.
756         (macro): `length' field renamed to `len'.
757         Added new field `empty_macro' (1 if macro is empty), to be used
758         instead of checking `len'.
759         Updated all callers.
760         (macro::empty): Updated.
761         (macro::length, macro::set, macro::get): New functions.
762         (macro::append): Ignore COMPATIBLE_SAVE and COMPATIBLE_RESTORE.
763         Set `empty_macro'.
764         (chop_macro): Check and remove trailing COMPATIBLE_SAVE/
765         COMPATIBLE_RESTORE pairs.
766         (asciify): Ignore COMPATIBLE_SAVE and COMPATIBLE_RESTORE.
767         * src/roff/troff/request.h: Updated.
768
769         * doc/groff.texinfo: Document .chop's behaviour better.
770
771 2002-06-02  Werner LEMBERG  <wl@gnu.org>
772
773         * doc/pic.ms: Fix documentation for the addition of positions.
774
775         * tmac/doc.tmac, tmac/an-old.tmac: Need groff version 1.18.
776
777 2002-06-29  Werner LEMBERG  <wl@gnu.org>
778
779         Implementation of string arguments of the form \*[foo arg1 arg2 ...]
780
781         * src/roff/troff/input.cc (have_string_arg): New global variable.
782         (read_mode): New enumeration.
783         (read_escape_name): Use it.  Update all calls.
784         (read_long_escape_name): Use it.  Update all calls.
785         Set have_string_arg if appropriate.
786         (get_char_for_escape_name): Add parameter for handling space
787         character.
788         (interpolate_string_with_args, decode_string_args): New functions.
789         (get_copy, token::next): Call it if necessary.
790         (interpolate_string): Fix error message.
791
792         * NEWS, doc/groff.texinfo, man/groff.man, man/groff_diff.man:
793         Document it.
794
795 2002-06-24  Bernd Warken  <bwarken@mayn.de>
796
797         * man/groff_tmac.man: Updated and extended.
798
799 2002-06-24  Werner LEMBERG  <wl@gnu.org>
800
801         * doc/pic.ms, src/preproc/pic/pic.man: Fix description of `:='.
802
803 2002-06-23  Werner LEMBERG  <wl@gnu.org>
804
805         * doc/pic.ms: Improve documentation of composite block objects.
806
807 2002-06-22  Werner LEMBERG  <wl@gnu.org>
808
809         * src/roff/troff/input.cc (init_registers): Add three registers
810         `seconds', `minutes', and `hours' to hold the current time.
811
812         * NEWS, doc/groff.texinfo, man/groff.man, man/groff_diff.man:
813         Updated.
814
815 2002-06-20  Werner LEMBERG  <wl@gnu.org>
816
817         Make \X accept both `\ ' and `\~', converting them to single space
818         characters.
819
820         * src/roff/troff/token.h (token): Add TOKEN_UNSTRETCHABLE_SPACE.
821         (token::unstretchable_space): New inline function.
822         * src/roff/troff/input.cc (token::next, token::delimiter,
823         token::description, token::add_to_node_list, token::process): Handle
824         TOKEN_UNSTRETCHABLE_NODE.
825         (encode_char): Handle tok.stretchable_space and
826         tok.unstretchable_space.
827
828         * NEWS, doc/groff.texinfo: Document it..
829
830 2002-06-19  Werner LEMBERG  <wl@gnu.org>
831
832         * src/devices/grops/ps.cc (ps_printer::special): Fix error message.
833
834         * src/devices/grotty/tty.cc (tty_printer::special): Add `sgr'
835         keyword to enable/disable SGR output.
836         (tty_printer::change_fill_color): New function.
837         * NEWS, src/devices/grotty/grotty.man: Document `sgr' special.
838
839         * src/roff/troff/input.cc (output_request): Add missing `tok.next()'
840         call.
841
842 2002-06-18  Werner LEMBERG  <wl@gnu.org>
843
844         Add a `color' request and a `.color' register to control usage of
845         colours.
846
847         * src/roff/troff/input.cc (disable_color_flag): Replaced with...
848         (color_flag): This (which is the inverse).
849         (activate_color): New function.
850         (main, init_input_requests): Updated.
851         * src/roff/troff/troff.h, src/roff/troff/node.cc
852         (troff_output_file::fill_color, troff_output_file::glyph_color):
853         Updated.
854
855         * NEWS, doc/groff.texinfo, man/groff_diff.man, man/groff.man:
856         Document the changes.
857
858 2002-06-17  Colin Watson  <cjwatson@debian.org>
859
860         Circumvent bug in autoconf 2.53 regarding top_builddir.
861
862         * aclocal.m4 (GROFF_BUILDDIR): s/top_builddir/groff_top_builddir/.
863         * Makefile.in, doc/Makefile.in:
864         s/@top_builddir@/@groff_top_builddir@/.
865         * configure: Regenerated (with autoconf 2.53).
866
867 2002-06-17  Werner LEMBERG  <wl@gnu.org>
868
869         * src/libs/libgroff/font.cc (font::load_desc): Fix computation of
870         `paperwidth' and `paperlength' for the `papersize' keyword.
871
872 2002-06-16  P. Alejandro Lopez-Valencia  <dradul@007mundo.com>
873
874         * src/devices/grops/grops.man: Add info about Type 42 fonts.
875
876 2002-06-15  Gaius Mulley  <gaius@glam.ac.uk>
877
878         * src/devices/grohtml/post-html.cc (html_printer::emit_raw,
879         html_printer::do_linelength, html_printer::do_pageoffset,
880         html_printer::do_indentation, html_printer::do_tempindent,
881         html_printer::do_break, html_printer::begin_page): Clear indented
882         text.
883         * tmac/html.tmac: Disable hyphenation.
884
885 2002-06-15  Werner LEMBERG  <wl@gnu.org>
886
887         Don't produce HTML files if utility programs are missing.
888
889         * Makefile.in (make_html, make_install_html): New variables.
890         (MDEFINES): Updated.
891
892         * aclocal.m4 (GROFF_HTML_PROGRAMS): New function to test for HTML
893         utility programs.
894         * configure.ac: Use it.
895         * configure: Regenerated.
896
897         * doc/Makefile.sub (PROCESSEDEXAMPLEFILES): Move webpage.html to...
898         (HTMLEXAMPLESFILES): This new variable.
899         (EXAMPLESIMAGEFILES): Renamed to...
900         (HTMLEXAMPLEIMAGEFILES): This.
901         (CLEANADD): Add HTMLEXAMPLEFILES.
902         (all): Use `make_html'.
903         (html): New target.
904         (install_data): Use `make_install_html'.
905         Move html stuff to...
906         (install_html): This new target.
907         (uninstall_sub): Updated.
908
909 2002-06-14  Bernd Warken  <bwarken@mayn.de>
910
911         * src/roff/grog/Makefile.sub (grog): Renamed to...
912         (grog.old): This.
913         (grog): New rule to always install grog.sh as grog.
914
915 2002-06-08  Bernd Warken  <bwarken@mayn.de>
916
917         * src/roff/grog/grog.pl: Fix typo.
918
919 2002-06-07  Werner LEMBERG  <wl@gnu.org>
920
921         * doc/groff.texinfo: Add more info on .tr arguments.
922
923 2002-06-05  Werner LEMBERG  <wl@gnu.org>
924
925         * NEWS, src/roff/grog/grog.man, doc/groff.texinfo: Updated.
926
927         * aclocal.m4 (GROFF_MKSTEMP): Include unistd.h.
928         * configure: Regenerated.
929
930 2002-06-05  Ralph Corderoy  <ralph@inputplus.demon.co.uk>
931
932         * src/roff/troff/symbol.cc (table_sizes): Add more values.
933
934         * src/roff/grog/grog.pl, src/roff/grog/grog.sh: Recognize mom.
935
936 2002-06-04  Werner LEMBERG  <wl@gnu.org>
937
938         * aclocal.m4 (GROFF_PAGE): Don't use `prefix' directly since it
939         is not initialized at the time we need it in case `--prefix' hasn't
940         been set.  Check for `ac_default_prefix' also.
941         Test for `papersize' keyword also and generalize allowed whitespace.
942         * configure: Regenerated.
943
944         * font/devps/Makefile.sub (DESC): Use `papersize' instead of
945         `paperlength'.
946
947         * src/libs/libgroff/Makefile.sub (version, revision): Replaced
948         with...
949         (src_version, src_revision): New variables to avoid overwriting
950         from parent make process.
951         (version.cc): Updated.
952
953         * src/preproc/html/pre-html.cc: Include paper.h and font.h.
954         (linebuf, linebufsize): New global variables.
955         (sys_fatal): Use `fatal' to abort properly.
956         (get_line): New function.
957         (get_resolution): Use it.
958         Improve error messages.
959         (get_papersize): Check `papersize' also.
960         Use `get_line'.
961         Improve error messages.
962
963 2002-06-03  Werner LEMBERG  <wl@gnu.org>
964
965         * Makefile.comm (CLEANNOTSRCDIRADD): New target for files which
966         should be removed only if builddir is not srcdir.
967         (mostlyclean): Handle `CLEANNOTSRCDIRADD'.
968         (clean): Depend on `mostlyclean'.
969         (distclean): Depend on `clean'.
970         (realclean, extraclean): Depend on `distclean'.
971         (.y.cc, .y.o): Simplified.  The output files are no longer written
972         to srcdir but to builddir.
973         * Makefile.in (MDEFINES): Add `version' and `revision'.
974         (uninstall_dirs): Fix order of directories.
975         * doc/Makefile.sub (version, revision): Removed.
976         (CLEANADD): Removed grnexmpl.g, groff, groff-*.
977         Added `HTMLDOCFILES'.
978         (CLEANNOTSRCDIRADD): New target for grnexmpl.h, groff, groff-*.
979         * src/preproc/eqn/Makefile.sub, src/preproc/pic/Makefile.sub,
980         src/preproc/refer/Makefile.sub (YTABC, YTABH): Don't use `srcdir'
981         as prefix.
982
983         * doc/texinfo.tex (\authortt): New macro.
984         (\shortcontt): Define.
985         (\titlepage): Set \tt to \authortt while defining \authorfont.
986         (\appendixbox): New macro.
987         (\chapmacro, \appendixentry): Use \appendixbox to get even
988         indentation for letters.
989         (\summarycontents): Set \tt.
990         (\internalpagesize): Add two arguments for real paper width and
991         height as needed by pdfTeX.
992         (\letterpaper, \smallbook, \afourpaper, \afivepaper, \afourlatex):
993         Updated.
994         (\tempdima, \tempdimb): New temporary dimensions.
995         (\pagesizesyyy): Updated.
996
997 2002-06-02  Werner LEMBERG  <wl@gnu.org>
998
999         Adding a new keyword `papersize' to the DESC file format (similar
1000         but not completely identical to grolbp's extension).  grops now has
1001         a -p command line option to override `papersize'.  Finally, grolbp
1002         has been adapted to the new syntax.
1003
1004         * src/libs/libgroff/paper.cc, src/include/paper.h: New files.  It
1005         defines and initializes the `papersizes[]' array with NUM_PAPERSIZES
1006         elements.
1007         * src/libs/libgroff/Makefile.sub (OBJS): Add `paper.o'.
1008         (CCSRCS): Add `paper.cc'.
1009
1010         * src/include/font.h (font): Add `papersize' element.
1011         * src/libs/libgroff/font.cc (font::unit_scale): New helper function.
1012         (font::scan_papersize): New function.
1013         (font::load_desc): Use it for handling `papersize' keyword.
1014         * src/libs/libgroff/fontfile.cc: Initialize `font::papersize'.
1015
1016         * src/devices/grops/ps.cc: Include paper.h.
1017         (user_paper_length): New global variable.
1018         (ps_printer): Use paper length as initializer.
1019         (make_printer): Updated.
1020         (main): Handle new `-p' option.
1021         * src/devices/grops/grops.man: Updated.
1022
1023         * src/devices/grolbp/lbp.cc: Include paper.h.
1024         s/papersizes/lbp_papersizes/.
1025         (set_papersize): Use new `papersizes' array.
1026         (handle_unknown_desc_command): Don't handle `papersize'.
1027         (main): Use `font::scan_papersize' for handling `-p' option.
1028         * src/devices/grolbp/grolbp.man: Updated.
1029
1030         * man/groff_font.man: Document `papersize'.
1031         * NEWS: Updated.
1032
1033 2002-05-30  Werner LEMBERG  <wl@gnu.org>
1034
1035         * src/devices/grops/TODO: Updated.
1036         * src/devices/grops/grops.man: More info on paper formats.
1037         * man/groff_font.man: Document `paperheight' and `paperwidth'.
1038
1039 2002-05-29  Werner LEMBERG  <wl@gnu.org>
1040
1041         * doc/Makefile.sub (CLEANADD): Add grnexmpl.g, groff, and groff-*
1042         to list only if srcdir != currdir.
1043         (distfiles): New target.
1044
1045         * Makefile.in (EXTRADIRS): Add font/devlj4/generate.
1046         (NOMAKEDIRS): New variable.
1047         (DISTDIRS): Use it.
1048
1049 2002-05-26  Werner LEMBERG  <wl@gnu.org>
1050
1051         Add .output request, similar to \! at top-level.
1052
1053         * src/roff/troff/input.cc (transparent): Remove unused declaration.
1054         (output_request): New function.
1055         (init_input_requests): Add it.
1056         Sorted.
1057         * NEWS, doc/groff.texinfo, man/groff_diff.man, man/groff.man:
1058         Document it.
1059
1060         * Makefile.in (MDEFINES): Add INSTALL_INFO.
1061         (prepare_examples): Fix typo.
1062         * doc/groff.texinfo (@direntry): Fix it.
1063
1064 2002-05-25  Werner LEMBERG  <wl@gnu.org>
1065
1066         Including the doc subdir into groff's Makefile system.
1067
1068         * aclocal.m4 (GROFF_INSTALL_INFO): New function.
1069         * configure.ac: Use it.
1070         Generate `doc/Makefile'.
1071         * configure: Regenerated.
1072
1073         * Makefile.in (infodir, INSTALL_INFO): New variables.
1074         (MDEFINES, uninstall_dirs): Updated.
1075         (OTHERDIRS): Add `doc'.
1076         * Makefile.comm (CLEANDIRADD): New variable.
1077         (mostlyclean): Use it.
1078
1079         * doc/Makefile.sub, doc/Makefile.in: New files.
1080         * doc/Makefile: Removed.
1081
1082         * NEWS, INSTALL: Updated.
1083
1084 2002-05-24  Werner LEMBERG  <wl@gnu.org>
1085
1086         * doc/homepage.ms: Renamed to ...
1087         * doc/webpage.ms: This.
1088         Use `.NHR'.
1089
1090 2002-05-23  Werner LEMBERG  <wl@gnu.org>
1091
1092         Integrating the `mom' macro package, contributed by Peter Schaffter
1093         <df191@ncf.ca>.
1094
1095         * contrib/mom/*: New subdirectory tree.
1096         * Makefile.in (docdir, exampledir, htmldocdir): New variables to
1097         be used for documentation files.
1098         (MDEFINES, uninstall_dirs): Use them.
1099         (OTHERDIRS): Add contrib/mom.
1100         * Makefile.comm (.man.n): Add @DOCDIR@, @EXAMPLEDIR@, and
1101         @HTMLDOCDIR@.
1102         * MANIFEST, NEWS: Updated.
1103
1104 2002-05-22  Gaius Mulley  <gaius@glam.ac.uk>
1105
1106         Change syntax of \O: \O[0] suppresses output, \O[1] enables output
1107         if at outer level; at start-up we are at outer level.
1108
1109         * src/roff/troff/input.cc (do_suppress): Implement it.
1110         Simplify \O[3].
1111
1112         Add option -p to show progress information.
1113         pre-grohtml will now render only one page at a time, reducing the
1114         size of needed disk resources enormously.
1115
1116         * src/preproc/html/pre-html.cc (imagePageStem): Replaced with...
1117         (imagePageName): New global variable.
1118         (psPageName, show_progress, currentPageNo): New global variables.
1119         (html_system): Close saved stderr and stdout handles.
1120         (write_end_image): Accept a parameter to control \O escape.
1121         (write_start_image): Adapted to new \O meaning.
1122         (char_buffer::write_upto_newline): Updated.
1123         (createAllPages): Replaced with...
1124         (createPage): This new function to create a single page for images.
1125         It uses `psselect' from the psutils package.
1126         (removeAllPages): Removed.
1127         (createImage): Updated.
1128         Handle progress display.
1129         (char_buffer::do_html, char_buffer::do_image) [DEBUGGING]: Removed.
1130         (scanArguments): Add option -p.
1131         (makeTempFiles): Updated to create temp files for psPageName and
1132         imagePageName.
1133         (removeTempFiles): Removed.
1134         (main): Updated.
1135
1136         * src/devices/grohtml/post-html.cc (header_desc::write_headings,
1137         html_printer::write_header): Append `\0' to `buffer'.
1138         (html_printer::do_eol): Depend on `current_paragraph->emitted_text'.
1139         (main): Handle -p.
1140         * src/devices/grohtml/html-text.cc (html_text::dump_stack_element):
1141         Handle `text_emitted'.
1142         (html_text::table_is_void): Slightly rewritten.
1143         (stop): New external symbol.
1144         (html_text::do_push) [DEBUGGING]: Use it and simplify.
1145         (html_text::shutdown): Call `dump_stack'.
1146         (html_text::do_space): Rewritten.
1147         * src/devices/grohtml/grohtml.man: Document -p and the need of
1148         `psselect'.
1149
1150         * tmac/www.tmac (DC, HTML-DO-IMAGE, HTML-IMAGE-END): Updated to
1151         new \O syntax.
1152         Call \O[0] if `ps4html' is active.
1153         * tmac/s.tmac (@EQ, @EN): Handle html better.
1154         (@TS, TE): Ditto.
1155         * tmac/html.tmac: Don't use black for background colour.
1156
1157         * src/roff/troff/node.cc: Include `div.h'.
1158         (troff_output_file::really_print_line): Don't use `is_on'. 
1159         (troff_output_file::word_marker, troff_output_file::flush_tbuf
1160         troff_output_file::check_charinfo,
1161         troff_output_file::put_char_width, troff_output_file::put_char,
1162         troff_output_file::determine_line_limits, troff_output_file::draw,
1163         real_output_file::begin_page, glyph_color_node::tprintf,
1164         fill_color_node::tprint, hline_node::tprint, vline_node::tprint):
1165         Use `is_on'.
1166         (troff_output_file::really_on): Call `do_motion'.
1167         (suppress_node::tprint): Use `get_page_number' instead of `%'
1168         register.
1169         Call `reset_output_registers' conditionally on `is_on'.
1170
1171         * doc/groff.texinfo: Document new syntax of \O.
1172         * NEWS, man/groff_diff.man: Updated.
1173
1174 2002-05-22  Werner LEMBERG  <wl@gnu.org>
1175
1176         * MORE.STUFF: Add info about David Frey's deroff implementation.
1177         Mention troff.org.
1178
1179 2002-05-16  Werner LEMBERG  <wl@gnu.org>
1180
1181         Pic's `with' attribute now accepts positions.
1182
1183         * src/preproc/pic/pic.y: Make `.', BOX, CIRCLE, ELLIPSE, ARC, LINE,
1184         ARROW, SPLINE, and `[' left-associative tokens to fix shift/reduce
1185         conflicts.
1186         (object_spec): Add rule for `WITH' and `position'.
1187         (relative_path): Give `corner' the precedence of `CHOP'.
1188         * src/preproc/pic/object.h (path): New members `pos' and
1189         `is_position'.
1190         * src/preproc/pic/object.cc: Updated initializers of `path'.
1191         (path::follow): Handle `is_position'.
1192
1193         * doc/pic.ms: Completely updated grammar description.
1194         Many typographical improvements.
1195
1196 2002-05-15  Werner LEMBERG  <wl@gnu.org>
1197
1198         * src/roff/troff/env.cc(hyphen_trie::hpf_getc): Accept ^^x (char
1199         code of x in range 0-127) also.
1200         * doc/groff.texinfo, man/groff_diff.man: Updated.
1201
1202         Added keywords `north', `south', `east', and `west' for corners
1203         in pic.
1204
1205         * src/preproc/pic/lex.cc (lookup_keyword): Add NORTH, SOUTH, EAST,
1206         and WEST.
1207         (yylex): Handle them.
1208         * src/preproc/pic/pic.y: Add tokens NORTH, SOUTH, EAST, and WEST.
1209         (corner): Handle them.
1210
1211 2002-05-14  Werner LEMBERG  <wl@gnu.org>
1212
1213         * src/devices/grops/grops.man: Clarify handling of `download' file.
1214
1215 2002-05-11  Werner LEMBERG  <wl@gnu.org>
1216
1217         Adding `warnscale' and `spreadwarn' requests, based on a patch from
1218         Jeffrey Friedl <jfriedl@yahoo.com>.
1219
1220         * src/roff/troff/input.cc (spread_limit, warn_scale,
1221         warn_scaling_indicator): New global variables.
1222         (warnscale_request, spreadwarn_requests): New functions.
1223         (main): Initialize `warn_scale' and `warn_scaling_indicator'.
1224         (init_input_requests): Updated.
1225         (error_type): Add `OUTPUT_WARNING'.
1226         (do_error): Handle it.
1227         (output_warning): New warning function which shows output location.
1228         * src/roff/troff/env.h (spread_limit): New external variable.
1229         * src/roff/troff/env.cc (environment::choose_breakpoint): Use
1230         `output_warning'.
1231         (distribute_space): Emit warning if added space is larger than
1232         `spread_limit'.
1233         (environment::possibly_break_line): Emit warning if a line can't
1234         be adjusted on both sides.
1235
1236         * doc/groff.texinfo, man/groff_diff.man, man/groff.man: Document it.
1237
1238 2002-05-08  Werner LEMBERG  <wl@gnu.org>
1239
1240         * src/roff/troff/node.cc (special_node::special_node): Use
1241         env_definite_font(curenv) instead of curenv->get_font().  Otherwise
1242         \X''\% crashes, for example.
1243
1244         * doc/groff.texinfo: Document \! and \? used at top-level.
1245
1246 2002-05-06  Werner LEMBERG  <wl@gnu.org>
1247
1248         * src/preproc/pic/pic.man: Fix some keyword syntax.
1249         Other minor typographical fixes.
1250
1251         * src/roff/groff/groff.man: Fix typos.
1252
1253 2002-05-04  Werner LEMBERG  <wl@gnu.org>
1254
1255         * src/roff/groff/groff.man ([ShortOpt]): Renamed to...
1256         (ShortOpt[]): This to avoid problems with refer.
1257
1258         * doc/pic.ms: Fix typo.
1259         Fix pic grammar description.
1260
1261         * tmac/an-old.tmac (ne): Use de1, not de.
1262
1263 2002-05-03  Werner LEMBERG  <wl@gnu.org>
1264
1265         * doc/groff.texinfo: Finished separation of glyphs and characters.
1266         Don't use the string `Appendix' for appendix headers (both in
1267         the text and the table of contents).
1268         * man/groff_tmac.man, src/roff/troff/troff.man: Fix order of tmac
1269         directories.
1270
1271         Use registers LL and LT (similar to -ms) for controlling the
1272         length of title and line, respectively, in the -man and -mdoc
1273         macro packages.
1274
1275         * tmac/doc-ditroff (doc-setup-page-layout), tmac/doc-nroff
1276         (doc-setup-page-layout): Use \n[LL] and \n[LT].
1277         * tmac/an-old.tmac: Set \n[LL] and \n[LT] if not defined.
1278         (TH): Use \n[LL].
1279         (an-header, an-p-footer): Use \n[LT].
1280         * NEWS, tmac/groff_man.man, tmac/groff_mdoc.man,
1281         doc/groff.texinfo: Document it.
1282
1283 2002-05-02  Werner LEMBERG  <wl@gnu.org>
1284
1285         * doc/fdl.texi: New file.
1286         * doc/groff.texinfo: Include it.
1287         Define and use @copying.
1288         Starting with separating glyph, symbol, and character.
1289
1290 2002-04-27  Werner LEMBERG  <wl@gnu.org>
1291
1292         * Makefile.in (EXEEXT): Set it.
1293         * src/*/Makefile.sub (PROG): Add $(EXEEXT) for all non-script
1294         programs.
1295
1296         * src/include/nonposix.h: Define GS_NAME.
1297         * src/preproc/html/pre-html.cc (createAllPages): Use GS_NAME.
1298
1299         Some preliminary changes for EMX support under OS/2.
1300
1301         * src/preproc/pic/main.cc (main), src/roff/groff/pipeline.c: Add
1302         __EMX__ similar to __MSDOS__.
1303         * src/utils/indxbib/indxbib.cc (main) [__EMX__]: Use `unlink'.
1304
1305 2002-04-25  Werner LEMBERG  <wl@gnu.org>
1306
1307         * doc/groff.texinfo: Integrated groff_out.man.
1308         Some macro fixes.
1309
1310 2002-04-23  Werner LEMBERG  <wl@gnu.org>
1311
1312         * man/groff_out.man: Minor fixes.
1313
1314 2002-04-23  Werner LEMBERG  <wl@gnu.org>
1315
1316         * doc/groff.texinfo: Moving @cindex entries after @Def* to get
1317         correct page references.
1318         Fixed many index entries.
1319
1320 2002-04-23  Bernd Warken  <bwarken@mayn.de>
1321
1322         * man/roff.man: Enlarged.
1323
1324 2002-04-22  Werner LEMBERG  <wl@gnu.org>
1325
1326         * doc/groff.texinfo: More examples, other fixes.
1327
1328 2002-04-20  Werner LEMBERG  <wl@gnu.org>
1329
1330         * src/roff/troff/input.cc (pipe_output): Multiple calls to `pi'
1331         will now form a chain, e.g.
1332
1333           .pi foo
1334           .pi bar
1335
1336         is now the same as
1337
1338           .pi foo | bar
1339
1340         This is for compatibility with plan 9's troff.
1341
1342         * tmac/tty.tmac: Set default tab values to 0.8i to be compatible
1343         with UNIX troff.
1344         * NEWS: Updated.
1345
1346         * doc/groff.texinfo: Add documentation of remaining requests and
1347         registers.
1348
1349 2002-04-19  Werner LEMBERG  <wl@gnu.org>
1350
1351         * doc/groff.texinfo: Add documentation of remaining escapes.
1352
1353         * font/devdvi/generate/tc.map: Remove entry for `sr'.
1354         * font/devdvi/*TC: Regenerated.
1355
1356 2002-04-18  Werner LEMBERG  <wl@gnu.org>
1357
1358         * src/roff/troff/input.cc (token::next): Make \H behave consistently
1359         if not in compatibility mode, i.e., increment relative to the
1360         previous height.
1361         * doc/groff.texinfo: Updated accordingly.
1362
1363 2002-04-17  Werner LEMBERG  <wl@gnu.org>
1364
1365         * doc/groff.texinfo: Document \\, \e, \E, \., and \c.
1366
1367 2002-04-16  Bernd Warken  <bwarken@mayn.de>
1368
1369         * src/roff/groff/groff.man: Improve documentation of -P option.
1370         Other minor fixes.
1371
1372 2002-04-15  Werner LEMBERG  <wl@gnu.org>
1373
1374         Add new escape \F to switch font family.
1375
1376         * src/roff/troff/input.cc (token::next): Handle \F.
1377         * src/roff/troff/env.cc (environment::set_family): Handle
1378         `interrupted' flag.
1379         * NEWS, doc/groff.texinfo, man/groff_diff.man, man/groff.man:
1380         Document it.
1381
1382 2002-04-14  Werner LEMBERG  <wl@gnu.org>
1383
1384         * tmac/doc.tmac (doc-tag-list): Use \Z to avoid stretching of
1385         spaces in tags.
1386
1387 2002-04-13  Werner LEMBERG  <wl@gnu.org>
1388
1389         Implement \f[] as an alternative to \fP.  Change \mP and \MP to
1390         \m[] and \M[], respectively.
1391
1392         * src/roff/troff/symbol.cc (EMPTY_SYMBOL): New global variable.
1393         (symbol::symbol): Handle NULL string and empty string differently.
1394         * src/roff/troff/symbol.h (symbol::is_empty): New inline function.
1395         * src/roff/troff/input.cc (read_escape_name, read_long_escape_name):
1396         Add optional parameter.
1397         Updated calling functions.
1398         (get_copy, do_glyph_color, do_fill_color, token::next): Use
1399         `symbol::is_empty'.
1400         * src/roff/troff/env.cc (environment::set_font): Ditto.
1401
1402         * src/preproc/pic/troff.cc (troff_output::set_fill,
1403         troff_output::reset_color: Updated.
1404
1405         * tmac/www.tmac: Updated.
1406
1407         * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo,
1408         doc/homepage.ms, src/devices/grotty/grotty.man, tmac/groff_www.man:
1409         Updated.
1410
1411         * tmac/Xps.tmac: Remove some redundant code.
1412
1413         * tmac/doc-common, tmac/doc-ditroff, tmac/doc-nroff, tmac/doc.tmac,
1414         tmac/dvi.tmac, contrib/groffer/groffer.man, man/roff.man,
1415         man/groff_out.man, man/groff.man, man/groff_diff.man,
1416         src/roff/groff/groff.man: Replace \f[P] with \f[].
1417
1418 2002-04-13  Bernd Warken  <bwarken@mayn.de>
1419
1420         * src/include/printer.h, src/libs/libdriver/printer.cc
1421         (printer::change_fill_color): New member function.
1422         * src/libs/libdriver/input.cc (parse_D_command): Use it.
1423
1424 2002-04-12  Werner LEMBERG  <wl@gnu.org>
1425
1426         * doc/groff.texinfo: Completed pass on gtroff reference.
1427
1428 2002-04-11  Werner LEMBERG  <wl@gnu.org>
1429
1430         * doc/groff.texinfo: More fixes.
1431
1432 2002-04-11  Bernd Warken  <bwarken@mayn.de>
1433
1434         * src/include/color.h: Decorate with `const'.
1435         Use `size_t'.
1436         Include `stddef.h'.
1437         * src/libs/libgroff.color.cc: Decorate with `const'.
1438         Use `size_t'.
1439         (color::color): Initialize members.
1440         * src/libs/libdriver/input.cc (parse_D_command): Handle `f'
1441         command according to the documentation.
1442
1443         * man/groff_out.man: Updated.
1444         Minor fixes.
1445
1446 2002-04-11  Gaius Mulley  <gaius@glam.ac.uk>
1447
1448         * src/preproc/html/pre-html.cc (write_start_image): Remove
1449         redundant output.
1450         * tmac/www.tmac (DC, HTML-DO-IMAGE): Ditto.
1451
1452         * src/devices/grohtml/post-html.cc (page::add_and_encode): Using
1453         \C'hy' caused an assertion failure.
1454
1455         * src/roff/troff/env.cc (environment::environment): Initialize
1456         `emitted_node'.
1457         (environment::copy): Handle `ignore_next_eol' and `emitted_node'.
1458
1459 2002-04-10  Werner LEMBERG  <wl@gnu.org>
1460
1461         * man/groff_diff.man, man/groff.man, NEWS, doc/groff.texinfo:
1462         Document pvs request and .pvs register.
1463
1464 2002-04-09  Werner LEMBERG  <wl@gnu.org>
1465
1466         * doc/groff.texinfo: Improve and fix documentation of diversions
1467         and environments.
1468
1469 2002-04-08  Werner LEMBERG  <wl@gnu.org>
1470
1471         * doc/groff.texinfo: Fix documentation of drawing functions.
1472         Other minor fixes.
1473
1474 2002-04-07  Werner LEMBERG  <wl@gnu.org>
1475
1476         * doc/groff.texinfo: Better documentation of double quotes as
1477         arguments.
1478         Other minor fixes.
1479
1480 2002-04-06  Werner LEMBERG  <wl@gnu.org>
1481
1482         * man/groff_font.man: Document names of special characters better.
1483         * doc/groff.texinfo: Minor improvements.
1484
1485         * tmac/lbp.tmac: Load latin1.tmac.
1486         * tmac/X.tmac, tmac/Xps.tmac: Load latin1.tmac or cp1047.tmac.
1487
1488         * font/devX*/*: Regenerated (all chars > 0x80 removed).
1489
1490 2002-04-05  Werner LEMBERG  <wl@gnu.org>
1491
1492         * tmac/tty.tmac: Don't use shc request.
1493         * tmac/latin1.tmac, tmac/cp1047.tmac: Translate soft hyphen to `\%'.
1494         * NEWS: Updated.
1495
1496         * man/groff_diff.man: Minor fixes.
1497
1498         * font/devlbp/*: Remove all `charXXX' entities.
1499
1500         * src/libs/libgroff/font.cc (font::~font): Deallocate
1501         `special_device_coding'.
1502         (font::load): Use `new' for allocating `special_device_coding'.
1503         * src/libs/libgroff/nametoindex.cc (character_indexer::lookup_char):
1504         Removed unused member.
1505
1506 2002-04-05  Werner LEMBERG  <wl@gnu.org>
1507
1508         * src/drivers/grops/psrm.cc (skip_possible_newline): New function.
1509         (resource_manager::do_begin_binary,
1510         resource_manager::do_begin_data): Use it.
1511
1512         * doc/texinfo.tex: Updated to version 4.2.
1513
1514         * src/roff/troff/token.h: Add TOKEN_ZERO_WIDTH_BREAK for `\:'.
1515         (token::zero_width_break): New inline function.
1516         * src/roff/troff/input.cc (token::next): Use it.
1517         (token::description): Updated.
1518         (encode_char): Ignore `\%', `\&', `\)', and `\:'.
1519         (token::add_to_node_list, token::process): Use it.
1520         * NEWS, doc/groff.texinfo: Updated.
1521
1522         * src/preproc/eqn/over.cc (over_box::output): Fix typo.
1523         * tmac/tty.tmac: Add missing backslash.
1524
1525 2002-04-04  Tadziu Hoffmann  <hoffmann@usm.uni-muenchen.de>
1526
1527         * src/preproc/eqn/box.cc (set_script_size, box::top_level): Use
1528         `.ps' register instead of `.s' to handle fractional point sizes.
1529         * src/preproc/eqn/limit.cc (limit_box::compute_metrics,
1530         limit_box::output): Ditto.
1531         * src/preproc/eqn/other.cc (size_box::compute_metrics,
1532         size_box::output): Ditto.
1533         * src/preproc/eqn/over.cc (over_box::compute_metrics,
1534         over_box::output): Ditto.
1535         * src/preproc/eqn/script.cc (script_box::compute_metrics,
1536         script_box::output): Ditto.
1537         * src/preproc/eqn/sqrt.cc (sqrt_box::compute_metrics,
1538         sqrt_box::output): Ditto.
1539
1540 2002-04-03  Michael Selway  <mas@ssl.co.uk>
1541
1542         * src/drivers/grops/psrm.cc (resource_manager::do_begin_binary):
1543         Fix typo.
1544
1545 2002-04-03  Werner LEMBERG  <wl@gnu.org>
1546
1547         * doc/homepage.ms: Reduce title size.
1548         * doc/groff.texinfo: Fix documentation of .t register.
1549         Fix handling of colon.
1550         Fix `\' vs. `\\'.
1551
1552         * src/roff/troff/input.cc (exit_troff): Emit LAST_PAGE_EJECTOR
1553         only if page length is positive to avoid a loop.
1554
1555         * tmac/an-old.tmac (ne): Increase page length to avoid problems with
1556         tbl.
1557
1558 2002-04-02  P. Alejandro Lopez-Valencia  <dradul@yahoo.com>
1559
1560         * src/include/nonposix.h, src/roff/groff/pipeline.c:
1561         s/__CYGWIN32__/__CYGWIN__/.
1562
1563 2002-03-28  Gaius Mulley  <gaius@glam.ac.uk>
1564
1565         * doc/gnu.xpm: New image contributed by Emily Mulley.
1566         * doc/Makefile (gnu.eps, gnu.png): Use pnmdepth.
1567         (homepage.html): Be dependent on gnu.eps.
1568         * doc/homepage.ms: Updated to new image.
1569
1570         * src/devices/grohtml/post-html.cc (html_printer): New member
1571         `sbuf_prev_hpos'.
1572         (html_printer::flush_sbuf, html_printer::set_char): Set it.
1573         (html_printer::sbuf_continuation): Use it.
1574
1575 2002-03-28  Werner LEMBERG  <wl@gnu.org>
1576
1577         * src/libs/libgroff/getopt.c: Updated to latest version.
1578
1579         * tmac/README: More on hyphen.tex license.
1580
1581 2002-03-26  Larry Kollar  <kollar@alltel.net>
1582
1583         * doc/groff.texinfo: Add documentation of most missing requests.
1584
1585 2002-03-25  Werner LEMBERG  <wl@gnu.org>
1586
1587         Add three glyphs `t+-', `tmu', and `tdi' which are textual variants
1588         of `+-', `mu', and `di', respectively.
1589
1590         * font/devascii/R.proto, font/devutf8/R.proto,
1591         font/devlatin1/R.proto, font/devhtml/R.proto,
1592         font/devcp1047/R.proto, font/devlpb/*: Add them.
1593         * font/devps/generate/textmap: Ditto.
1594         * font/devps/*: Regenerated.
1595         * font/devlj4/generate/text.map: Add them.
1596         * font/devlj4/*: Regenerated.
1597         * font/devdvi/generate/tc.map: Use them.
1598         * font/devdvi/generate/texsy.map: Add them.
1599         * font/devdvi/*: Regenerated.
1600         * font/devX*/*: Regenerated.
1601
1602         * tmac/latin1.tmac, tmac/cp1047.tmac, tmac/tty.tmac,
1603         tmac/tty-char.tmac: Updated.
1604
1605         * NEWS, man/groff_char.man: Updated.
1606
1607 2002-03-24  Werner LEMBERG  <wl@gnu.org>
1608
1609         * tmac/dvi.tmac, tmac/X.tmac, tmac/ps.tmac, tmac/html.tmac,
1610         tmac/lj4.tmac, tmac/tty.tmac: Replace most `.char' with `.fchar'.
1611         * tmac/ec.tmac: Remove `.rchar' calls (no longer necessary since
1612         we use `.fchar' in dvi.tmac.
1613         * tmac/dvi.tmac: Improve definition of \[Fo] and \[Fc].
1614         * tmac/Xps.tmac: Simplify some char definitions.
1615         Add definition for \[f/].
1616         * man/groff_char.man: Updated for new X.tmac.
1617
1618         * tmac/README: New file.
1619
1620 2002-03-23  Phil Lobbes  <phil@perkpartners.com>
1621
1622         * Makefile.comm (.y.o): New rule for make on Solaris 2.5.1 -- the
1623         internal .y.o rule took precendence over the .y.cc rule, compiling
1624         the yacc files with gcc instead of g++.
1625
1626 2002-03-23  Werner LEMBERG  <wl@gnu.org>
1627
1628         * tmac/dvi.tmac: Add replacement font for `CB'.
1629
1630         * tmac/doc.tmac: s/request/macro/ in messages.
1631         (doc-generic-macro): Improve error message.
1632         * tmac/groff_mdoc.man: Minor improvements.
1633
1634 2002-03-22  Werner LEMBERG  <wl@gnu.org>
1635
1636         * doc/groff.texinfo: Document possible conflict between `tr' and
1637         `char' requests.
1638
1639 2002-03-21  Werner LEMBERG  <wl@gnu.org>
1640
1641         Improve handling of hyphenation patterns.  It is now possible to
1642         use most of TeX's pattern files unmodified.  To make the process
1643         more flexible, a new request `hpfcode' has been added which
1644         provides a character code mapping for the `hpf' request.  See
1645         comment before hpf_getc() for more details.
1646
1647         * src/roff/troff/env.cc (insert_hyphenation, hpf_getc): New
1648         functions.
1649         (read_patterns_file): Additional parameter for exception dictionary.
1650         Extended to recognize \pattern, \hyphenation, and \endinput.
1651         (do_hyphenation_patterns_file): Updated.
1652         * src/roff/troff/env.h (hpf_code_table): New extern.
1653
1654         * src/roff/troff/input.cc (hpf_code_table): New array.
1655         (init_hpf_code_table, hyphenation_patterns_file_code): New
1656         functions.
1657         (hyphenation_code): Handle translation from `trin' correctly.
1658         (main, init_input_requests): Updated.
1659         (charinfo::set_translation): Handle hyphenation code also.
1660
1661         * src/roff/troff/charinfo.h (charinfo::get_translation_input): New
1662         inline function.
1663
1664         * src/roff/troff/env.cc (WORD_MAX): Reduced to 256 since `unsigned
1665         char' is used for offsets in hyphenation exceptions.
1666
1667         * tmac/hyphen.us: Replace with contents of unmodified `hyphen.tex'.
1668
1669         * NEWS, man/groff_diff.man, man/groff.man: Document it.
1670
1671 2002-03-20  Larry Kollar  <kollar@alltel.net>
1672
1673         * doc/groff.texinfo: Add documentation for `hpfa' and `trin'
1674         requests.
1675
1676 2002-03-18  Werner LEMBERG  <wl@gnu.org>
1677
1678         * tmac/html.tmac: Fix serious typo.
1679
1680 2002-03-17  Larry Kollar  <kollar@alltel.net>
1681
1682         * doc/groff.texinfo: Add documentation for `writec' request.
1683
1684 2002-03-17  Werner LEMBERG  <wl@gnu.org>
1685
1686         Added request `hpfa' to append hyphenation patterns.
1687
1688         * src/roff/troff/env.cc (hyphen_trie::read_patterns_file): Add
1689         parameter `append'.
1690         (hyphenation_patterns_file): Renamed to...
1691         (do_hyphenation_patterns_file): This.
1692         (hyphenation_patterns_file, hyphenation_patterns_file_append): New
1693         functions.
1694         (init_hyphen_requests): Updated.
1695         * NEWS, man/groff.man, man/groff_diff.man: Document it.
1696
1697 2002-03-16  Werner LEMBERG  <wl@gnu.org>
1698
1699         Added request `writec' in analogy to `tmc'.
1700
1701         * src/roff/troff/input.cc (write_request): Renamed to...
1702         (do_write_request): This.
1703         Added one parameter.
1704         (write_request, write_request_continue): New functions.
1705         (init_input_requests): Updated.
1706         * NEWS, man/groff.man, man/groff_diff.man: Document it.
1707
1708         * font/devdvi/DESC.in (sizes): Allow all sizes in the range
1709         5-10000pt.
1710         * NEWS: Document it.
1711
1712 2002-03-15  Werner LEMBERG  <wl@gnu.org>
1713
1714         * man/groff.man: Add writem request.
1715
1716         Add request `trin' (translate input) to make `.asciify' work
1717         correctly.  This is necessary since `charXXX' entity names are no
1718         longer hardcoded in font definition files.
1719
1720         * src/roff/troff/charinfo.h (charinfo): Add `asciify_code' and
1721         `translate_input' members.
1722         (charinfo::set_asciify_code, charinfo::get_asciify_code,
1723         charinfo::set_translation_input): New methods.
1724         (charinfo::set_translation): Add third argument.
1725         * src/roff/troff/input.cc (charinfo:set_translation): Set
1726         `asciify_code'.
1727         (do_translate): Add second argument.
1728         (translate_input): New function.
1729         (init_input_requests): Updated.
1730         * src/roff/troff/node.cc (glyph_node::asciify,
1731         composite_node::asciify): Use `get_asciify_code'.
1732
1733         * tmac/cp1047.tmac, tmac/latin1.tmac: Use `trin'.
1734
1735         * NEWS, man/groff.man, man/groff_diff.man: Updated.
1736
1737 2002-03-14  Larry Kollar  <kollar@alltel.net>
1738
1739         * doc/groff.texinfo: Improve documentation of .RS and .RE.
1740
1741 2002-03-14  Werner LEMBERG  <wl@gnu.org>
1742
1743         Add a new request `sizes' similar to the `sizes' command in DESC
1744         files.
1745
1746         * src/roff/troff/env.cc (override_sizes): New function.
1747         (init_env_requests): Use it.
1748         * src/roff/troff/token.h: Export `read_string'.
1749         * NEWS, man/groff_diff.man, man/groff.man: Document it.
1750
1751 2002-03-12  Werner LEMBERG  <wl@gnu.org>
1752
1753         * doc/groff.texinfo: More fixes for texinfo 4.1 and higher.
1754
1755 2002-03-10  Werner LEMBERG  <wl@gnu.org>
1756
1757         * tmac/pspic.tmac: Add support for -Tdvi.
1758         * tmac/dvi.tmac: Include pspic.tmac.
1759         * src/devices/grodvi/grodvi.man: Document it.
1760         * NEWS: Updated.
1761
1762         * font/devlj4/generate/Makefile: Fix URL of metric files.
1763
1764 2002-03-09  Werner LEMBERG  <wl@gnu.org>
1765
1766         * PROBLEMS: The static constructor bug has been fixed in z/OS V1R3.
1767
1768 2002-03-09  Larry Kollar  <kollar@alltel.net>
1769
1770         * tmac/groff_ms.man: Add documentation for RS and RE macros.
1771
1772 2002-03-08  Werner LEMBERG  <wl@gnu.org>
1773
1774         * doc/groff.texinfo: Fixes for texinfo 4.1.
1775
1776 2002-03-07  Werner LEMBERG  <wl@gnu.org>
1777
1778         * src/include/lib.h: Include getopt.h if groff-getopt.h can't be
1779         included.
1780         Handle CYGWIN properly.
1781
1782 2002-03-07  Paco Andrés Verdú  <pandres@dragonet.es>
1783
1784         * font/devlbp/Makefile.sub (DEVFILES): Add some missing fonts.
1785         * tmac/lbp.tmac: Add some font translations.
1786
1787 2002-03-02  Werner LEMBERG  <wl@gnu.org>
1788
1789         * font/devcp1047/R.proto, font/devlatin1/R.proto,
1790         font/devhtml/R.proto: Remove `charXXX'  entries.
1791         * tmac/tty.tmac, tmac/html.tmac: Load latin1.tmac or cp1047.tmac
1792         where appropriate.
1793
1794         * font/devlj4/generate/text.map: Remove `charXXX' entries.
1795         * font/devlj4/*: Regenerated all font definition files.
1796         * tmac/lj4.tmac: Load latin1.tmac.
1797
1798         * src/utils/hpftodit/hpftodit.cc (do_file): Partially undo change
1799         from 2000-06-17: LJ4 metric files are *not* text files.
1800
1801         * tmac/troffrc, tmac/dvi.tmac, tmac/ps.tmac: Don't use .T string
1802         register to test for EBCDIC.
1803
1804 2002-03-01  Werner LEMBERG  <wl@gnu.org>
1805
1806         * src/utils/afmtodit/afmtodit.pl: Skip comment lines in encoding
1807         files (as grops already does).
1808         * src/utils/afmtodit/afmtodit.man: Document comment lines in map
1809         files.
1810         * src/devices/grops/grops.man: Document comment lines in encoding
1811         files.
1812
1813         * tmac/cp1047.tmac: New file.
1814         * tmac/dvi.tmac, tmac/tty-char.tmac: Use it.
1815         * tmac/ps.tmac: Load latin1.tmac or cp1047.tmac.
1816         * tmac/Makefile.sub (NORMALFILES): Updated.
1817
1818         * tmac/ec.tmac: Don't load latin1.tmac again.
1819
1820         * font/devps/generate/lgreekmap, font/devps/generate/symbolchars,
1821         font/devps/generate/dingbats.map,
1822         font/devps/generate/dingbats.rmap, font/devps/text.enc,
1823         font/devps/generate/Makefile (symbolmap): Add header comment.
1824         * font/devps/generate/textmap: Ditto.
1825         Remove `charXXX' entries.
1826         * font/devps/symbolmap: Regenerated.
1827         * font/devps/*: Regenerated all font definition files.
1828
1829 2002-02-28  Werner LEMBERG  <wl@gnu.org>
1830
1831         Add color support to grodvi (for drawing colors are currently
1832         translated to gray values).
1833
1834         * src/devices/grodvi/dvi.cc (FILL_MAX): Removed.
1835         (dvi_printer): Add `cur_color' member.
1836         (dvi_printer::set_color): New function.
1837         (draw_dvi_printer): Remove `fill'.
1838         (draw_dvi_printer::fill_next): Pass environment as parameter.
1839         Update code for new color support translated to gray.
1840         (dvi_printer::set_char): Updated.
1841         (dvi_printer::begin_page, dvi_printer::end_page): Handle color
1842         changes crossing the page border.
1843         (dvi_printer::draw): Updated.
1844         Remove cases `f' and `F'.
1845         * tmac/dvi.tmac: Add color definitions.
1846         * NEWS, src/devices/grodvi/grodvi.man: Updated.
1847
1848         * tmac/an-old.tmac (R): Make this a macro to emit a warning if
1849         used incorrectly.
1850
1851         * aclocal.m4 (GROFF_NEED_DECLARATION): Use test similar to recent
1852         versions of autoconf.
1853         * configure: Updated.
1854
1855         * doc/homepage.ms: Use `.blm'.
1856         * tmac/www.tmac (www-depth): New auxiliary variable.
1857         (www-pop-level): Don't issue HTML tag.
1858         (ULS, ULE, LI): Use absolute indentation.
1859
1860         * src/devices/grops/ps.cc (ps_printer::begin_page,
1861         ps_printer::end_page): Switch forth and back to default color while
1862         starting a new page.
1863
1864 2002-02-27  Werner LEMBERG  <wl@gnu.org>
1865
1866         Add EC and TC fonts to devdvi.
1867
1868         * src/utils/tfmtodit/tfmtodit.man: Document patching of exbase.mf.
1869         * font/devdvi/generate/cork.map: Renamed to...
1870         * font/devdvi/generate/ec.map: This.
1871         Remove entry for `aq'.
1872         * font/devdvi/generate/tc.map: New file.
1873         * font/devdvi/generate/Makefile (*EC, *TC): New creation rules for
1874         EC and TC fonts.
1875         (FONTS): Updated.
1876         * font/devdvi/*EC, font/devdvi/*TC: New font definition files.
1877         * font/devdvi/Makefile.sub (DEVFILES): Updated.
1878         * tmac/ec.tmac: New file.
1879         * tmac/Makefile.sub (NORMALFILES): Updated.
1880         * NEWS, src/devices/grodvi/grodvi.man: Updated.
1881         * man/groff_char.man: Check `ECFONTS' register.
1882
1883         * font/devdvi/{TR,TI,TB,TBI,HR}: Fix `name' field.
1884
1885 2002-02-26  Werner LEMBERG  <wl@gnu.org>
1886
1887         * font/devdvi/generate/*.map: Remove all `charXXX' entries.
1888         * font/devdvi/generate/cork.map: Add 'y and 'Y.
1889         * font/devdvi/*: Updated.
1890         * tmac/dvi.tmac: Formatting.
1891
1892         Add font `HBI' for the dvi output.
1893         Add support for font families `T' and `H'.
1894
1895         * font/devdvi/HBI: New file.
1896         * font/devdvi/B: Renamed to ...
1897         * font/devdvi/TB: This.
1898         * font/devdvi/BI: Renamed to ...
1899         * font/devdvi/TBI: This.
1900         * font/devdvi/I: Renamed to ...
1901         * font/devdvi/TI: This.
1902         * font/devdvi/R: Renamed to ...
1903         * font/devdvi/TR: This.
1904         * font/devdvi/H: Renamed to ...
1905         * font/devdvi/HR: This.
1906         * font/devdvi/Makefile.sub (DEVFILES): Updated.
1907         * font/devdvi/generate/Makefile (HBI): New rule.
1908         (FONTS): Updated.
1909         (R, I, B, BI, H): Renamed to ...
1910         (TR, TI, TB, TBI, HR): This, respectively.
1911         (srcdir): Fixed.
1912         * NEWS, src/devices/grodvi/grodvi.man: Updated.
1913         * font/devdvi/DESC.in: Don't mount R, I, B, BI, and CWI.
1914         Add `styles' and `family' keywords.
1915         * tmac/dvi.tmac: Alias `H' to `HR'.
1916         Add some fspecial requests for italic fonts.
1917         Add TR and TI as special.
1918         Add support for `_' with font CWI.
1919
1920         * src/roff/troff/number.cc (parse_expr): Add missing `break' for
1921         operator `:'.  Until now, the expression `0:1' would return 2
1922         instead of 1.
1923
1924 2002-02-25  Werner LEMBERG  <wl@gnu.org>
1925
1926         * man/groff_char.man: Added some missing PS glyph names (from the
1927         Adobe Glyph List).
1928         * font/devps/generate/textmap, font/devps/symbolmap: Add
1929         `arrowupdn'.
1930
1931         * doc/groff.texinfo: Minor additions and fixes.
1932         * man/groff_diff.man: Remove documentation of fp request.  This
1933         is already covered in the original troff manual.
1934         Updated to be consistent with other doc files.
1935         * NEWS: Updated.
1936
1937 2002-02-24  Werner LEMBERG  <wl@gnu.org>
1938
1939         * aclocal.m4 (GROFF_EBCDIC): Don't include `font/devutf8' in
1940         TTYDEVDIRS.
1941         Define new variable OTHERDEVDIRS (containing `font/devlj4
1942         font/devlbp' if not EBCDIC).
1943         * Makefile.in (TTYDEVDIRS): Always include `font/devutf8'.
1944         (OTHERDEVDIRS): New variable.
1945         (MDEFINES, DEVDIRS, ALLDIRS, DISTDIRS): Updated.
1946         * configure: Regenerated.
1947
1948         * NEWS, src/devices/grotty/grotty.man: Updated.
1949
1950 2002-02-23  Werner LEMBERG  <wl@gnu.org>
1951
1952         * src/roff/troff/input.cc (do_overstrike, do_bracket,
1953         get_line_arg): Honour input level.
1954
1955         Add new symbol `mc' corresponding to U+00B5 MICRO SIGN.
1956
1957         * font/*/*: Implement it in all font files.
1958         * font/devps/generate/textmap, font/devps/generate/symbolchars,
1959         * font/devps/symbolmap: Updated.
1960         * font/devlj4/generate/text.map: Updated.
1961         * font/devdvi/generate/CompileFonts (sizes): Add LaTeX sizes.
1962         * font/devdvi/generate/texmi.map: Updated.
1963
1964         * font/devutf8/R.proto: Remove all `charXXX' entries.
1965         * font/devutf8/NOTES: Updated.
1966
1967         * font/devX*/*: Regenerated with xtotroff, using fonts from XFree86
1968         version 4.1.0.
1969
1970         * tmac/latin1.tmac, tmac/psold.tmac, tmac/tty-char.tmac: Updated.
1971
1972         * NEWS, man/groff_char.man: Updated.
1973
1974 2002-02-21  Phil Lobbes <phil@perkpartners.com>
1975
1976         * src/include/lib.h [HAVE_SNPRINTF]: Include stdarg.h.
1977
1978 2002-02-20  Ralph Corderoy  <ralph@inputplus.demon.co.uk>
1979
1980         * src/roff/grog/grog.pl: Fix computation of $refer.
1981
1982 2002-02-19  Werner LEMBERG  <wl@gnu.org>
1983
1984         * src/include/lib.h [!HAVE_SNPRINTF]: Add declarations for
1985         `snprintf' and `vsnprintf'.
1986
1987         * src/include/htmlindicate.h: Renamed to...
1988         * src/include/htmlhint.h: This.
1989         * src/include/Makefile.sub: Updated.
1990         * src/preproc/eqn/main.cc: Updated.
1991
1992 2002-02-18  Werner LEMBERG  <wl@gnu.org>
1993
1994         * man/roff.man, man/groff_out.man, man/groff.man,
1995         man/groff_diff.man, man/ditroff.man, src/roff/groff/groff.man,
1996         src/roff/troff/troff.man: Updated to latest changes in www.tmac.
1997
1998         * win32-diffs: Updated.
1999
2000 2002-02-17  Werner LEMBERG  <wl@gnu.org>
2001
2002         * doc/Makefile (clean): Add *.eps.
2003         (MEMACROS): Removed.
2004         (TFLAG): New variable.
2005         (TROFF): Use it.
2006         Add -ww.
2007         (GROFF): Use TFLAG, FFLAG, -U, -p, -e, -t, and -ww.
2008         (.me.dit): Fixed.
2009         (.ms.html, .ms.ascii, .ms.ps, homepage.html): Simplify.
2010
2011         * tmac/www.tmac: Use dummy diversion while resetting and disabling
2012         `.tl'.
2013         * tmac/e.tmac: Inserted some more `\"' to remove warnings if used
2014         unstripped.
2015         * src/roff/troff/troff.man: Fix order of parameter description.
2016
2017         * NEWS: Updated.
2018
2019 2002-02-16  Gaius Mulley  <gaius@glam.ac.uk>
2020
2021         Simplify image handling for grohtml.
2022         Fix <p> bug.
2023
2024         * src/devices/grohtml/html-text.cc (DEBUGGING): Don't undefine but
2025         comment out.
2026         (html_text::dump_stack): Don't emit newline while debugging.
2027         (html_text::do_push) [DEBUGGING]: Print more info.
2028         (html_text::check_emit_text): Fix handling of <p>.
2029         * src/devices/grohtml/html.h: Updated.
2030         * src/devices/grohtml/output.cc (FPUTC, FPUTS, PUTC): New macros,
2031         replacing `fputc', `fputs', `putc'.  If DEBUGGING is defined, they
2032         send its data to stderr also.
2033         Update all callers.
2034         (simple_output::space_or_newline) [DEBUGGING]: Removed.
2035         * src/devices/grohtml/post-html.cc (html_printer::do_links,
2036         html_printer::html_printer): Remove `DEBUGGING' conditionals.
2037
2038         * src/include/html-strings.h (HTML_IMAGE_{CENTERED,LEFT,RIGHT,END}):
2039         Removed.
2040         * src/libs/libgroff/htmlhint.cc (is_in_graphic_start,
2041         is_inline_image): Removed.
2042         (html_begin_suppress, html_end_suppress): Don't take a parameter.
2043         (graphic_start, graphic_end): Removed.
2044         * src/include/htmlindicate.h: Updated.
2045         * src/preproc/html/pre-html.cc (DEBUG_HTML): Removed.
2046         (macroset_template): New global variable.
2047         (makeFileName): Use `macroset_template'.
2048         (write_end_image): Don't take a parameter.
2049         Don't emit newline.
2050         (write_start_image: Don't emit newline.
2051         (char_buffer::write_upto_newline): Updated.
2052         (char_buffer::skip_to_newline): Renamed to ...
2053         (char_buffer::skip_until_newline): This.
2054         Fix code.
2055         (char_buffer::write_file_troff, char_buffer::write_file_html):
2056         Simplified.
2057         (createAllPages, createImage) [DEBUGGING]: Handle `debug' flag.
2058         (removeAllPages): Remove `DEBUGGING' conditionals.
2059         (addRegDef, dump_args): New functions.
2060         (char_buffer::do_html, char_buffer::do_image): Handle
2061         `www-image-template' command line variable.
2062         Add more debugging code.
2063         (addps4html): Removed.
2064         (removeTempFiles) [DEBUGGING]: Handle `debug' flag.
2065
2066         * src/preproc/eqn/main.cc: Include `ctype.h'.
2067         (suppress_html): Removed.
2068         (do_file): Updated.
2069         (inline_equation): Use `html_begin_suppress' and
2070         `html_end_suppress'.
2071         * src/preproc/pic/troff.cc: Don't include `htmlindicate.h'.
2072         (troff_output::start_picture, troff_output::finish_picture):
2073         Updated.
2074         * src/preproc/tbl/main.cc: Don't include `htmlindicate.h'.
2075         (process_input_file): Updated.
2076
2077         * src/roff/troff/div.cc (page_number): Set page number only if the
2078         `ps4html' register isn't defined.
2079         * src/roff/troff/input.cc (image_no): New external variable.
2080         (do_suppress): Use it.
2081         * src/roff/troff/node.h (suppress_node::image_id): New member.
2082         * src/roff/troff/node.cc (image_no): Remove `static' keyword.
2083         (suppress_node::suppress_node): Initialize `image_id' member.
2084         (suppress_node::same): Handle `image_id' also.
2085         (suppress_node::copy): Updated.
2086         (last_image_id): New global variable.
2087         (suppress_node::tprint): Use it.
2088
2089         * tmac/an-old.tmac (TS, TE, EQ, EN): Use HTML-IMAGE and
2090         HTML-IMAGE-END.
2091         * tmac/pspic.mac (PSPIC): Fix html support.
2092         * tmac/s.tmac (@EQ, @EN, @TS, TE, PS, PE): Ditto.
2093         * tmac/www.tmac (www-image-template): Set up.
2094         (HTMLINDEX): Renamed to...
2095         (HX): This.
2096         (BODYCOLOR): Renamed to...
2097         (BCL): This.
2098         (BACKGROUND): Renamed to...
2099         (BGIMG): This.
2100         (URL): Change order of parameters for consistency.
2101         (MAILTO): Renamed to...
2102         (MTO): This.
2103         (IMAGE, PNG-IMAGE, MARGIN-PNG-IMAGE): Renamed to...
2104         (IMG, PIMG, MPIMG): This.
2105         (HTML-H-BEGIN, HTML-H-END): Renamed to...
2106         (HnS, HnE): This.
2107         (LINKS): Renamed to...
2108         (LK): This.
2109         (LINE): Renamed to...
2110         (HR): This.
2111         (NO-AUTO-RULE): Renamed to...
2112         (NHR): This.
2113         (HTML-TL): Renamed to...
2114         (HTL): This.
2115         (UL-BEGIN, UL-END): Renamed to...
2116         (ULS, ULE): This.
2117         (DROPCAP): Renamed to...
2118         (DC): This.
2119         (TS, TE, EQ, EN): Provide default definitions.
2120         (www-make-unique-name): Updated.
2121         (HTML-IMAGE-INLINE): Fix typo.
2122         * tmac/groff_www.man: Updated.
2123
2124         * doc/Makefile (homepage.html): Add option -r to grohtml.
2125         Use shortened image name.
2126         * doc/groff.texinfo: Updated info on grohtml strings and macros.
2127         * doc/homepage.ms: Updated and extended.
2128
2129 2002-02-14  Werner LEMBERG  <wl@gnu.org>
2130
2131         Don't use `CSI 39 m' and `CSI 49 m' but `CSI 0 m'.
2132
2133         * src/devices/grotty/tty.cc (SGR_DEFAULT_COLOR,
2134         SGR_BACK_DEFAULT_COLOR): Replaced with ...
2135         (tty_printer::put_color): Use it.
2136         (ttr_printer::end_page): Simplify.
2137
2138 2002-02-13  Werner LEMBERG  <wl@gnu.org>
2139
2140         * tmac/groff_tmac.man: Moved to...
2141         * man/groff_tmac.man: This place.
2142         * tmac/Makefile.sub, man/Makefile.sub: Updated.
2143
2144 2002-02-12  Werner LEMBERG  <wl@gnu.org>
2145
2146         * src/libs/libgroff/Makefile.sub (snprintf.o): Don't use
2147         $(COMPILE.c) to not include groff's assert.h.
2148
2149         * src/drivers/grotty/tty.cc (main): Add GROFF_NO_SGR environment
2150         variable.
2151         * NEWS, src/drivers/grotty/grotty.man: Document it.
2152
2153 2002-02-11  Werner LEMBERG  <wl@gnu.org>
2154
2155         * src/libs/snprintf/snprintf.c: Updated to latest version
2156         (2002-02-11).
2157
2158         * src/roff/grog/grog.pl (process): Fix handling of `.['.  We now
2159         test whether there is `.]' also.
2160         Don't check for spaces after `.['.
2161         * src/roff/grog/grog.sh: Do the same.
2162
2163 2002-02-10  Werner LEMBERG  <wl@gnu.org>
2164
2165         Illegal -> Invalid.
2166
2167         * src/libs/libgroff/illegal.cc: Renamed to ...
2168         * src/libs/libgroff/invalid.cc: This.
2169         (illegal_char_table): Renamed to ...
2170         (invalid_char_table): This.
2171         * src/libs/libgroff/Makefile.sub: Updated.
2172         * win32-diffs: Updated.
2173
2174         * doc/groff.texinfo, src/devices/grops/psrm.cc (ps_get_line),
2175         src/libs/libdriver/input.cc (fatal_command, parse_color_command,
2176         parse_x_command), src/libs/libgroff/font.cc (text_file::next,
2177         font::load), src/preproc/eqn/main.cc (read_line, main),
2178         src/preproc/eqn/lex.cc (file_input::read_line),
2179         src/preproc/pic/lex.cc (file_input::read_line,
2180         simple_file_input::get, simple_file_input::peek),
2181         src/preproc/pic/main.cc (top_input::get, top_input::peek),
2182         src/preproc/pic/pic.man, src/preproc/refer/main.cc
2183         (input_stack::push_file), src/preproc/refer/refer.cc (do_file,
2184         do_bib), src/preproc/tbl/main.cc (table_input::get),
2185         src/preproc/grn/grn.man, src/preproc/grn/main.cc (interpret),
2186         src/roff/troff/input.cc (file_iterator::fill, file_iterator::peek,
2187         do_zero_width, read_request, encode_char, ps_get_line,
2188         transparent_file, get_char_for_escape_name, transparent_translate,
2189         asciify, input_char_description, read_string, set_string),
2190         src/roff/troff/env.cc (environment::add_html_tag),
2191         src/roff/troff/troff.man, tmac/e.tmac (`@(', `(f'): Do it.
2192
2193         * src/include/lib.h: Updated.
2194
2195         * src/preproc/eqn/eqn.cc: Removed.
2196
2197         * NEWS: Updated.
2198
2199         * src/preproc/grn/hdb.cc (DBRead): Fix fscanf() fields.
2200
2201 2002-02-09  Werner LEMBERG  <wl@gnu.org>
2202
2203         * doc/gnu.xpm: New image.
2204         * doc/Makefile (DOCS): Add homepage.ps.
2205         Add rules for converting xpm->png and xpm->eps.
2206         Use `gnu.{xpm,eps}' as image names.
2207         * doc/homepage.ms: Updated.
2208
2209 2002-02-09  Gaius Mulley  <gaius@glam.ac.uk>
2210
2211         * tmac/www.tmac (www-error): New macro, replacing calls to `@error'.
2212         (IMAGE): Change image position parameters to `-L', `-R', and `-C'.
2213         Remove calls to `B1' and `B2'
2214         (PNG-IMAGE): New macro for inclusion of images in PNG format.
2215         (www-left-ll-trap, www-left-po-trap, www-right-ll-trap): New
2216         auxiliary variables for MARGIN-PNG-IMAGE.
2217         (www-finish-left-po, www-finish-right-ll, www-finish-left-ll): New
2218         auxiliary macros for MARGIN-PNG-IMAGE.
2219         (MARGIN-PNG-IMAGE): New macro to put an image in PNG format into
2220         the margin.
2221         (www-heading-no): New auxiliary variable for HTML-H-{BEGIN,END}.
2222         (HTML-H-BEGIN, HTML-H-END): New macros to begin and end a heading.
2223         (DROPCAP): New macro to produce dropcap characters.
2224         (www-do-image): Renamed back to...
2225         (HTML-DO-IMAGE): This.
2226         Updated all callers.
2227
2228         * doc/Makefile (gnubw.eps): Updated.
2229         * doc/homepage.ms: Updated.
2230
2231 2002-02-08  Werner LEMBERG  <wl@gnu.org>
2232
2233         * doc/pic.ms: Fixed typos (\(*tx -> \*(tx).
2234         Added `linethick' to table in section `Style Variables'.
2235
2236 2002-02-08  Gaius Mulley  <gaius@glam.ac.uk>
2237
2238         * src/libs/libdriver/input.cc (get_extended_arg): Fix conditional.
2239
2240 2002-02-07  Werner LEMBERG  <wl@gnu.org>
2241
2242         Adding options -C (compatibility mode) and -c (grotty's old output
2243         scheme) to nroff.
2244
2245         * src/roff/nroff/nroff.sh: Implement it.
2246         Remove `-Wall'.
2247         * NEWS, src/roff/nroff/nroff.man: Updated.
2248
2249         * PROBLEMS: Document bison 1.32 bug.
2250
2251         Some fixes to make groff compile on z/OS 1.2 UNIX (was OS/390).
2252
2253         * src/roff/troff/node.cc (make_tfont): Define it earlier.
2254         * src/roff/troff/div.h: Add prototype for `end_diversions'.
2255         * src/roff/troff/input.cc: Add prototype for `process_input_stack'.
2256         * src/roff/troff/env.h: Add prototype for `title'.
2257
2258         Adding EBCDIC support to grotty.
2259
2260         * src/devices/grotty/tty.cc (CSI): New macro.
2261         (SGR_*, tty_printer::put_color): Use it.
2262
2263 2002-02-06  Werner LEMBERG  <wl@gnu.org>
2264
2265         Implementing color support in grotty.  The new switch -c activates
2266         the old drawing scheme, disabling color at the same time.  The new
2267         switch `-i' selects italic instead of underlining (SGR only).
2268
2269         * src/devices/grotty/tty.cc (putstring): New define instead of
2270         `fputs'.  Updated all callers.
2271         (old_drawing_scheme): New global variable.
2272         (COLOR_CHANGE): New enum value.
2273         (SGR_*): New defines containing color handling escape sequences.
2274         (TTY_MAX_COLORS, DEFAULT_COLOR_IDX): New defines.
2275         (glyph): New members `back_color_idx' and `fore_color_idx'.
2276         (glyph::order): Add COLOR_CHANGE.
2277         (tty_printer): New members `cur_fore_idx', `curr_back_idx',
2278         `is_underline', `is_bold', `cu_flag', `tty_colors'.
2279         New methods `make_underline', `make_bold', `color_to_idx',
2280         `change_color', `put_color'.
2281         (cu_flag): Moved into `tty_printer' class.
2282         (tty_printer::tty_printer): Initialize colors.
2283         (tty_printer::add_char, tty_printer::set_char, tty_printer::special,
2284         tty_printer::draw, tty_printer::end_page): Handle colors also.
2285         (main): Add options `-c' and `-i'.
2286         (usage): Updated.
2287         * NEWS, src/devices/grotty/grotty.man: Updated.
2288
2289         * src/include/errarg.h (errarg): Add support for `unsigned int'.
2290         * src/libs/libgroff/errarg.c: Implement it.
2291
2292         * src/include/printer.h (printer): Add `change_color' method
2293         (currently used by grotty only).
2294         * src/libs/libdriver/printer.cc: Implement it.
2295         * src/libs/libdriver/input.cc (parse_D_command, do_file): Add
2296         call to `pr->change_color'.
2297
2298         * src/roff/troff/node.cc (troff_output_file::fill_color,
2299         troff_output_file::glyph_color): Call `do_motion'.
2300
2301         * tmac/tty.tmac: Add color definitions.
2302
2303         * src/roff/groff/groff.man: Minor fixes.
2304
2305 2002-02-05  Bernd Warken  <bwarken@mayn.de>
2306
2307         * src/libs/libdriver/input.cc: Introduce `EnvInt' typedef and use
2308         it.  This is a preparation for future changes.
2309
2310 2002-02-05  Werner LEMBERG  <wl@gnu.org>
2311
2312         * src/roff/troff/input.cc (process_input_stack): Fix the case
2313         where leading spaces are followed by \f or \s; previously, an
2314         incorrect space width has been used.
2315
2316         * doc/roff.man (quoted_char): Fix argument.
2317         (comment): Define string.
2318
2319 2002-02-04  Larry Kollar  <kollar@alltel.net>
2320
2321         * doc/groff.texinfo: More fixes.
2322
2323 2002-02-04  Werner LEMBERG  <wl@gnu.org>
2324
2325         * src/preproc/eqn/box.cc (output_string): Don't use \\*[...].
2326         * src/preproc/eqn/main.cc (do_file, inline_equation): Call
2327         `restore_compatibility' before `output_string' -- the LINE_STRING
2328         register now already contains proper switches from and to
2329         compatibility mode.
2330
2331         * man/groff_char.man: Add Euro symbol.
2332         * man/groff_diff.man: Improve documentation of `.am1' and `.as1'.
2333         * tmac/tty.tmac: Add `EUR' as replacement for `eu' and `Eu'.
2334         * doc/groff.texinfo (Defstr*): Print strings with full syntax.
2335         Other minor fixes.
2336
2337         * doc/Makefile (.SUFFIXES, .texinfo.pdf, clean): Add support for
2338         texinfo->pdf.
2339         (.texinfo.html): Add support for texinfo->html.
2340
2341 2002-02-03  Werner LEMBERG  <wl@gnu.org>
2342
2343         Added three new requests `ds1', `as1', and `ami'.  The former two
2344         are equivalent to `ds' and `as' with the difference that
2345         compatibility mode is saved on entry, switched off during string
2346         expansion, and restored on exit.  The latter is the pendant to `dei'
2347         for `am'.
2348
2349         (do_define_string): Use `define_mode' and `calling mode'.
2350         Insert COMPATIBLE_SAVE and COMPATIBLE_RESTORE at the beginning and
2351         end of string, respectively.
2352         (define_string, append_string): Use `calling_mode'.
2353         (define_nocomp_string, append_nocomp_string,
2354         define_string_indirect): New functions.
2355         (init_input_requests): Updated.
2356         * NEWS, man/groff_diff.man, man/groff.man: Document it.
2357
2358         * src/preproc/eqn/box.cc (box::top_level, box::extra_space): Use
2359         `as1' for assigning LINE_STRING (this is `10' usually).  Sun's
2360         mm macro package accesses this string register directly.
2361         * src/preproc/eqn/main.cc (inline_equation): Use `as1'.
2362
2363         * tmac/trace.tmac: Trace calls to `am' also.  Make it work in
2364         compatibility mode.
2365
2366 2002-02-02  Larry Kollar  <kollar@alltel.net>
2367
2368         * doc/groff.texinfo, tmac/groff_ms.man: More fixes.
2369
2370 2002-01-31  Werner LEMBERG  <wl@gnu.org>
2371
2372         * tmac/an-old.tmac (I): Use \, and \/ to improve spacing.
2373
2374 2002-01-31  Bernd Warken  <bwarken@mayn.de>
2375
2376         * src/devices/grolbp/lbp.cc (main): Delete `pr'.
2377         * man/groff_out.man: Revised and updated.
2378
2379 2002-01-30  Bernd Warken  <bwarken@mayn.de>
2380
2381         * src/libs/libdriver/input.cc [USE_ENV_STACK]: New macro to comment
2382         out the unused `{' and `}' commands.  Undefined by default.
2383         (IntArray): Make `data' private.
2384         (IntArray::operator[], IntArray::get_data, IntArray::len): Use these
2385         new methods instead.
2386         (skip_line_D, skip_to_end_of_line): New functions.
2387         (get_D_fixed_args): Use `skip_line_D'.
2388         Changed to handle dummy odd arguments by ...
2389         (get_D_fixed_args_odd_dummy): This new function.
2390         (get_D_variable_args): Split some code into ...
2391         (get_possibly_integer_args): This new function.
2392         (send_draw): Use more `const'.
2393         (delete_current_env): New function.
2394         (position_to_end_of_args): Use `size_t'.
2395         Updated.
2396         (send_draw): Updated.
2397         (parse_D_command): Handle `c', `C', and `t' better.
2398         Updated.
2399         (do_file): Updated.
2400
2401 2002-01-29  Werner LEMBERG  <wl@gnu.org>
2402
2403         * NEWS: Revised.
2404         * doc/groff.texinfo: Introduce @Def...List, @Def...Item, and
2405         @Def...ListEnd which replaces @Def...x.  This is necessary to get
2406         proper HTML output -- see the comment in the file for more
2407         information.
2408         Updated all calls.
2409
2410 2002-01-29  Gaius Mulley  <gaius@glam.ac.uk>
2411
2412         Fixes to make color changes of 2002-01-21 work with grohtml.
2413
2414         * src/devices/grohtml/post-html.cc (style): Updated.
2415         (html_printer): Remove unused methods.
2416         (html_printer::do_font, html_printer::draw, html_printer::set_char,
2417         html_printer::special): Updated.
2418         * src/devices/grohtml/html-text.cc (debugStack, turnDebug,
2419         html_text::dump_stack_element, html_text::dump_stack) [DEBUGGING]:
2420         Added some debugging code.
2421         (html_text::start_tag): Updated.
2422         (html_text::do_push): New method.
2423         (html_text::push_para): Call it.
2424         Add method for handling color.
2425         (html_text::do_color): Updated.
2426         (html_text::shutdown): Handle color.
2427         * src/devices/grohtml/html-text.h (tag_definition): New member
2428         `col'.
2429         Updated.
2430
2431 2002-01-28  Werner LEMBERG  <wl@gnu.org>
2432
2433         * tmac/ps.tmac, tmac/html.tmac: Fix compatibility mode issues.
2434
2435 2002-01-27  Gaius Mulley  <gaius@glam.ac.uk>
2436
2437         Add two switches -a and -g to control the antialiasing bits for
2438         text and graphics, respectively.
2439
2440         * src/devices/grohtml/post-html.cc (main): Dummy code for `-a' and
2441         `-g'.
2442         * src/devices/grohtml/grohtml.man: Document them.
2443         * src/preproc/html/pre-html.cc (MIN_ALPHA_BITS, MAX_ALPHA_BITS):
2444         New macros.
2445         (textAlphaBits, graphicAlphaBits, antiAlias): New global variables.
2446         (setupAntiAlias): New function.
2447         (createAllPages): Updated.
2448         (scanArguments): Handle `-a' and `-g'.
2449         (main): Call `setupAntiAlias'.
2450         * NEWS: Updated.
2451
2452 2002-01-27  Werner LEMBERG  <wl@gnu.org>
2453
2454         * doc/groff.texinfo (Def*): Call index function after deffn.
2455
2456         * tmac/html.tmac: Call `nroff' request.
2457
2458 2002-01-26  Larry Kollar  <kollar@alltel.net>
2459
2460         * tmac/groff_ms.man: Add some omissions.
2461
2462 2002-01-25  Larry Kollar  <kollar@alltel.net>
2463
2464         * tmac/groff_ms.man: Typographical improvements.
2465
2466 2002-01-25  Werner LEMBERG  <wl@gnu.org>
2467
2468         * doc/groff.texinfo: Updated version and copyright.
2469         * src/devices/grops/grops.man: Updated.
2470
2471         * tmac/groff_tmac.man: Fix `ig' macro.
2472
2473         * tmac/an-old.tmac (ne): Redefine `ne' request to be a no-op in
2474         nroff mode.
2475         Use `.ne' unconditionally everywhere.
2476         (TS): Only insert some vertical space.  Doing a page break is no
2477         longer necessary due to the redefinition of the `ne' request.
2478
2479         * src/libs/libdriver/input.cc (parse_D_command): Don't emit a
2480         warning for unknown subcommands but parse and pass them to the
2481         device driver.
2482
2483 2002-01-24  Werner LEMBERG  <wl@gnu.org>
2484
2485         * tmac/groff_www.man, NEWS: Fix typos.
2486
2487 2002-01-21  Werner LEMBERG  <wl@gnu.org>
2488
2489         Complete revision of color support:
2490
2491           Adapt programs to the new libdriver/input.cc.
2492
2493           Color spaces are no longer converted to RGB but transferred as-is
2494           in the troff intermediate output format.
2495
2496           Handle default color gracefully.  troff now supports a `default'
2497           color (which can't be changed).
2498
2499           grops will now use the proper color space functions if available.
2500
2501           Update pic.
2502
2503         Note that currently grohtml doesn't handle colors properly.  This
2504         has to be fixed.
2505
2506         * src/libs/libgroff/itoa.c (UINT_DIGITS): New macro.
2507         (ui_to_a): New function.
2508         * src/include/lib.h: Updated.
2509
2510         * src/include/color.h (color_scheme): Replace `NONE' with `DEFAULT'.
2511         (color): Simplified; removed all `double' members and methods.
2512         A new array `components' now holds the color parameters.
2513         (color::is_default, color::get_components): New methods.
2514         (color::operator==, color:operator!=): New.
2515         (Red, Green, Blue, Cyan, Magenta, Yellow, Black, Gray): New macros
2516         to make access to the `components' array more comprehensible.
2517         * src/libs/libgroff/color.cc: Implement new color support.
2518         (atoh): Small fixes.
2519         (color::read_encoding): Simplified for new troff intermediate color
2520         output format.
2521         (default_color): New global variable.
2522
2523         * src/roff/troff/input.cc (default_symbol): New global variable.
2524         (lookup_color): Use it.
2525         (default_black): Removed.
2526         (do_glyph_color, do_fill_color): Simplified.
2527         (define_color): Handle default color.
2528         Improve warnings.
2529         (do_if_request): Handle default color.
2530         * src/roff/troff/env.cc (environment::environment): Initialize
2531         colors with `default_color'.
2532         * src/roff/troff/node.cc (troff_output_file::put): Add method
2533         for `unsigned int'.
2534         (troff_output_file::hex): Removed.
2535         (troff_output_file::fill_color, troff_output_file::glyph_color):
2536         Updated to include/color.h and libdriver/input.cc.
2537
2538         * src/preproc/pic/object.cc (draw_arrow): New parameter to set
2539         fill color properly (identically to the outline color).  \D'f...'
2540         doesn't work any more.
2541         All function calls to it updated.
2542
2543         * src/devices/grohtml/post-html.cc (html_printer::do_body, main):
2544         Updated.
2545         * src/devices/grohtml/html-text.cc (html_text::issue_color_begin):
2546         Updated.
2547
2548         * src/devices/grops/ps.cc (ps_output::put_color): New method.
2549         (ps_printer::sbuf_color): Make a real member instead of pointer.
2550         (ps_printer::fill_color, ps_printer::output_color): Removed.
2551         (ps_printer::ps_printer): Updated.
2552         (ps_printer::set_char): Ditto.
2553         (ps_printer::set_color): Use various color schemes.
2554         Use `put_color' method.
2555         (ps_printer::flush_sbuf): Don't set color.
2556         (ps_printer::fill_path): Take `environment' as parameter.
2557         Simplify color handling.
2558         (ps_printer::set_line_thickness): Renamed to ...
2559         (ps_printer::set_line_thickness_and_color): This (and updated).
2560         (ps_printer::set_color): Change second parameter from `complete'
2561         to `fill' which better describes what it does.
2562         (ps_printer::draw): Call `flush_sbuf' to output graphic commands
2563         and text in the right order.
2564         Updated.
2565         Remove branches for `f' and `F'; this is handled by
2566         libdriver/input.cc.
2567         * src/devices/grops/ps.h: Updated.
2568         * font/devps/prologue (FL): Redefined.
2569         ({F,C}r,k,g: New color functions (with and without filling).
2570
2571         * doc/pic.ms, src/preproc/pic/pic.man: Small fixes.
2572         * man/groff_diff.man, man/groff.man, man/groff_out.man,
2573         doc/groff.texinfo, NEWS: Updated.
2574
2575 2002-01-20  Bernd Warken  <bwarken@mayn.de>
2576
2577         * src/libs/libdriver/input.cc: Completely rewritten.  See comments
2578         in this file for what has been changed.
2579
2580 2002-01-19  Werner LEMBERG  <wl@gnu.org>
2581
2582         * test-groff: Fix GROFF_FONT_PATH.
2583         * tmac/andoc.tmac: Add dummy macros for equation support -- eqnrc
2584         is read before .TH or .Dd is parsed.
2585
2586 2002-01-18  Gaius Mulley  <gaius@glam.ac.uk>
2587
2588         * src/libs/libgroff/geometry.cc (check_output_arc_limits): Fix
2589         quadrant boundaries.
2590
2591 2002-01-18  Werner LEMBERG  <wl@gnu.org>
2592
2593         * devices/grops/ps.cc: Aargh!  Fix the fix of the incorrectly
2594         applied last patch.
2595
2596 2002-01-17  Ruslan Ermilov  <ru@FreeBSD.org>
2597
2598         * tmac/doc.common: Initialize %I register for the %I macro to
2599         avoid (harmless) warning.
2600         * tmac/doc.tmac (Bd): There is no reason to enforce -compact
2601         when in the SYNOPSIS section.
2602
2603 2002-01-17  Bruno Haible  <haible@clisp.cons.org>
2604
2605         * src/preproc/pic/lex.cc (get_token): Fix typo.
2606
2607 2002-01-17  Werner LEMBERG  <wl@gnu.org>
2608
2609         * devices/grops/ps.cc: Fix incorrectly applied last patch.
2610
2611 2002-01-17  Larry Kollar  <kollar@alltel.net>
2612
2613         * tmac/groff_ms.man: Completely rewritten.
2614
2615 2002-01-16  Werner LEMBERG  <wl@gnu.org>
2616
2617         * tmac/an-old.tmac (TS): Force break, inserting some vertical space.
2618
2619 2002-01-15  Gaius Mulley  <gaius@glam.ac.uk>
2620
2621         * devices/grops/ps.cc (ps_printer::fill_path): Fix handling of
2622         fill colors.
2623         (ps_printer::draw): Ditto.
2624
2625 2002-01-14  Ruslan Ermilov  <ru@FreeBSD.org>
2626
2627         * tmac/groff_mdoc.man: Minor fixes.
2628
2629 2002-01-13  Werner LEMBERG  <wl@gnu.org>
2630
2631         * man/groff_out.man: Some fixes.
2632
2633 2002-01-13  Gaius Mulley  <gaius@glam.ac.uk>
2634
2635         * doc/pic.ms: Fix typos.
2636
2637 2002-01-12  Werner LEMBERG  <wl@gnu.org>
2638
2639         * doc/groff.texinfo, doc/groff.man: More on a printable backslash.
2640
2641 2002-01-10  Werner LEMBERG  <wl@gnu.org>
2642
2643         * font/devutf8/R.proto, font/devhtml/R.prot: Add `Eu' and `eu'
2644         symbols.
2645         * NEWS: Updated.
2646
2647 2002-01-09  Bernd Warken  <bwarken@mayn.de>
2648
2649         * man/groff_out.man: Revised.
2650         * man/roff.man: Minor fixes.
2651         * src/roff/troff/troff.man: Some reordering.
2652
2653 2002-01-09  Werner LEMBERG  <wl@gnu.org>
2654
2655         * tmac/an-old.tmac: Add dummy macros for equation support.
2656
2657 2002-01-07  Werner LEMBERG  <wl@gnu.org>
2658
2659         doc/groff.texinfo: Fix documentation of glyph searching algorithm.
2660
2661         * tmac/an-old.tmac: Revert change 2001-12-23.  This breaks too many
2662         man pages.
2663         * tmac/groff_man.man: Small improvements.
2664
2665 2002-01-07  Bernd Warken  <bwarken@mayn.de>
2666
2667         * man/groff_diff.man: Revised.
2668
2669 2002-01-06  Werner LEMBERG  <wl@gnu.org>
2670
2671         * tmac/www.tmac: Remove extraneous backslash.
2672
2673 2002-01-06  Bernd Warken  <bwarken@mayn.de>
2674
2675         * man/ditroff.man, src/roff/groff/groff.man, man/groff.man: Revised.
2676
2677 2002-01-05  Werner LEMBERG  <wl@gnu.org>
2678
2679         Integrated groffer, contributed by Bernd Warken.
2680
2681         * contrib/groffer/*: New.       
2682         * Makefile.in, NEWS: Updated.
2683
2684 2002-01-04  Werner LEMBERG  <wl@gnu.org>
2685
2686         * doc/groff.texinfo: Added macros `@Defmpreg' and `@Defmpregx' for
2687         registers defined in macro packages.
2688         Revising the ms part.
2689
2690 2002-01-04  Larry Kollar  <kollar@alltel.net>
2691
2692         * doc/groff.texinfo: Add documentation for ms macros.
2693
2694 2002-01-02  Werner LEMBERG  <wl@gnu.org>
2695
2696         First step in adding PS support for the Euro symbol.  `eu' is the
2697         official Euro logo, `Eu' is a font-specific glyph variant.
2698
2699         * font/devps/text.enc: Add `Euro' at position 9.
2700         * font/devps/generate/textmap: Add `Euro' as symbol `Eu'.
2701         * font/devps/symbolmap: Regenerated.
2702
2703         * NEWS: Updated.
2704
2705 2002-01-02  Bernd Warken  <bwarken@mayn.de>
2706
2707         * man/roff.man: Revised.
2708
2709 2002-01-01  Bernd Warken  <bwarken@mayn.de>
2710
2711         * src/roff/groff/groff.man: Completely rewritten.
2712
2713 2001-12-31  Werner LEMBERG  <wl@gnu.org>
2714
2715         * doc/Makefile: Updated.
2716
2717 2001-12-30  Werner LEMBERG  <wl@gnu.org>
2718
2719         * tmac/www.tmac: Make all names of internal macros/registers/strings
2720         lowercase, and prepend `www-'.
2721         Other minor changes.
2722         * src/roff/troff/troff.man: Add preprocessor string at BOF.
2723
2724 2001-12-30  Gaius Mulley  <gaius@glam.ac.uk>
2725
2726         Implement option `-b' in grohtml to set the HTML background colour.
2727
2728         * src/devices/grohtml/post-html.cc (default_background): New global
2729         variable.
2730         (html_printer::html_printer): Initialize `background' to
2731         `default_background'.
2732         (main): Implement option `-b'.
2733         (usage): Updated.
2734         * src/preproc/html/pre-html.cc (scanArguments): Add dummy handling
2735         of `-b' option.
2736         * src/devices/grohtml/grohtml.man: Updated.
2737         * doc/Makefile (.ms.html): Use `-b'.
2738         * tmac/html.tmac: Don't set background color.
2739
2740         Add new grohtml tag `.html-tl'.
2741
2742         * src/devices/grohtml/post-html.cc (title_desc): Add `with_h1'
2743         member variable.
2744         (title_desc::title_desc): Updated.
2745         (html_printer::troff_tag): Handle `.html-tl'.
2746         (html_printer::write_title): Use `with_h1'.
2747         * tmac/www.tmac (www-end-nowhere): New auxiliary macro.
2748         (HTML-TL): New macro.
2749
2750         Add support for unordered lists in HTML.
2751
2752         * tmac/www.tmac (www-level): New auxiliary register.
2753         (www-level1, www-level2, www-level3): New auxiliary strings.
2754         (www-push-level, www-pop-level): New auxiliary macros
2755         (UL-BEGIN, UL-END, LI): User macros for unordered lists.
2756
2757         Miscellaneous.
2758
2759         * src/preproc/html/pre-html.cc (DEFAULT_IMAGE_RES): Increase to 100.
2760         (DEFAULT_VERTICAL_OFFSET): Removed.
2761         (IMAGE_BOARDER_PIXELS): Set to 0.
2762         (A4_LENGTH, A4_OFFSET, LETTER_LENGTH, LETTER_OFFSET): New macros.
2763         (vertical_offset): Initialize with 0.
2764         (gsPaper): New global variable.
2765         (get_resolution): Scan for and return unsigned int.
2766         (get_papersize): New function to get paper length from devps/DESC.
2767         (determine_vertical_offset): New function.
2768         (createAllPages): Produce gray-level images and use proper page
2769         length.
2770         (createImage): Use `-quiet' option of pnmcrop.
2771         (addZ): Fix passing of `-Z'.
2772         (scanArguments): Fix handling of `-o'.
2773         (main): Call `determine_vertical_offset'.
2774         * src/devices/grohtml/post-html.cc (html_printer::draw): Comment out
2775         code for `l'.
2776
2777         * src/libs/libgroff/tmpfile.cc (add_tmp_file): Fix buffer length.
2778         * src/roff/troff/node.cc (troff_output_file::check_charinfo): Handle
2779         glyph descenders properly.
2780
2781         * doc/homepage.ms: Include `gnubw.eps'.
2782         * doc/Makefile (gnubw.eps): New rule.
2783         (homepage.html): Depend on `gnubw.eps'.
2784
2785 2001-12-25  Werner LEMBERG  <wl@gnu.org>
2786
2787         * src/roff/troff/input.cc (default_black): Fix return value.
2788
2789 2001-12-24  Ruslan Ermilov  <ru@FreeBSD.org>
2790
2791         * tmac/doc-common (Dt): Change output of architecture strings.
2792         Do some syntax cleanup.
2793         * tmac/groff_mdoc.man: Updated.
2794
2795 2001-12-23  Werner LEMBERG  <wl@gnu.org>
2796
2797         Adding an `itc' request (input line trap accepting \c).
2798
2799         * src/roff/troff/env.h (environment): New member
2800         `continued_input_trap'.
2801         Make `do_input_trap' a friend function instead of `input_trap'.
2802         * src/roff/troff/env.cc (environment::environment,
2803         environment::copy): Updated.
2804         (environment::newline): Implement it.
2805         (do_input_trap): New function.
2806         (input_trap): Call `do_input_trap'.
2807         (input_trap_continued): New function.
2808         (init_env_requests): Updated.
2809         * src/roff/troff/TODO: Updated.
2810
2811         * tmac/an-old.tmac (SH, SS, B, I, SM, SB, TP): Use `.itc' instead of
2812         `.it'.
2813
2814         * src/preproc/grn/hdb.cc (DBRead): Really chop after 127 characters.
2815
2816 2001-12-22  Ruslan Ermilov  <ru@FreeBSD.org>
2817
2818         * tmac/doc-common, tmac/doc-syms: Small updates.
2819
2820 2001-12-22  Colin Watson  <cjwatson@debian.org>
2821
2822         * tmac/an-old.tmac (an-p-footer): Set title length in environment 1.
2823
2824 2001-12-22  Bernd Warken  <bwarken@mayn.de>
2825
2826         * MANIFEST: New file.
2827
2828 2001-12-22  Werner LEMBERG  <wl@gnu.org>
2829
2830         * src/preproc/grn/grn.man: Updated.
2831
2832 2001-12-22  Solar Designer  <solar@openwall.com>
2833
2834         * src/preproc/grn/hdb.cc (MAXSTRING_S): New macro.
2835         (DBRead): Use it.
2836
2837 2001-12-19  Werner LEMBERG  <wl@gnu.org>
2838
2839         Implement a fallback character request `.fchar'.
2840
2841         * src/roff/troff/charinfo.h (charinfo): New flag `fallback'.
2842         (is_fallback): New inline function.
2843         * src/roff/troff/input.cc (do_define_character): New function.
2844         (define_character): Call `do_define_character'.
2845         (define_fallback_character): New function.
2846         (init_input_requests): Add `fchar'.
2847         (charinfo::charinfo): Updated.
2848         (charinfo::set_macro): New argument to set `fallback' flag.
2849         * src/roff/troff/node.cc (make_glyph_node, make_node,
2850         node::add_char): Check `fallback' flag.
2851         * NEWS, man/groff_diff.man, man/groff_man: Updated.
2852
2853 2001-12-16  Werner LEMBERG  <wl@gnu.org>
2854
2855         * groff.texinfo: Document exact search algorithm for glyphs.
2856
2857 2001-12-15  Werner LEMBERG  <wl@gnu.org>
2858
2859         * Makefile.cpg, Makefile.ccpg, Makefile.man: Add dummy file to
2860         the left side of $(MANPAGES) rule to make it always non-empty.
2861
2862 2001-12-14  Werner LEMBERG  <wl@gnu.org>
2863
2864         * src/roff/troff/input.cc (default_black): Define default color
2865         `black' if not yet defined.
2866
2867 2001-12-13  Werner LEMBERG  <wl@gnu.org>
2868
2869         Implement new string-valued register `.fn' to return the current
2870         real (internal) font name.
2871
2872         * env.cc (environment::get_font_name_string): New function.
2873         (init_env_requests): Add `.fn' register.
2874         * env.h (environment): Updated.
2875         * node.cc (font_info): Make `get_font_name' a friend.
2876         (get_font_name): New function.
2877         * node.h: Updated.
2878
2879         * man/groff_diff.man, man/groff.man, NEWS: Updated.
2880
2881 2001-12-12  Ralph Corderoy  <ralph@inputplus.demon.co.uk>
2882
2883         * src/preproc/eqn/main.cc (inline_equation): Fix typos.
2884
2885 2001-12-12  Werner LEMBERG  <wl@gnu.org>
2886
2887         * tmac/groff_man.man, doc/groff.texinfo: There is no .R macro.
2888
2889 2001-12-10  Gaius Mulley  <gaius@glam.ac.uk>
2890
2891         * man/groff_diff.man: Adding documentation for \O.
2892
2893 2001-12-10  Werner LEMBERG  <wl@gnu.org>
2894
2895         * src/preproc/html/pre-html.cc (TROFF_COMMAND): Removed.
2896         (scanArguments): Use PROG_PREFIX for the name of the troff binary.
2897
2898 2001-12-09  Werner LEMBERG  <wl@gnu.org>
2899
2900         * man/roff.man: Revised.
2901         * src/roff/groff/groff.man: Replace man page references with a
2902         pointer to roff.man.
2903
2904 2001-12-09  Bernd Warken  <bwarken@mayn.de>
2905
2906         * man/roff.man: Completely rewritten.
2907
2908 2001-12-06  Ralph Corderoy  <ralph@inputplus.demon.co.uk>
2909
2910         * src/preproc/eqn/main.cc (inline_equation): Improve error message.
2911
2912 2001-12-05  Werner LEMBERG  <wl@gnu.org>
2913
2914         * src/roff/troff/input.cc (get_delim_file_name): Removed since no
2915         longer used.
2916         * src/devices/grohtml/post-html.cc (html_printer::html_printer): Fix
2917         order of initializers.
2918         * NEWS: Updated.
2919
2920 2001-12-05  Gaius Mulley  <gaius@glam.ac.uk>
2921
2922         * doc/groff.texinfo: Fix documentation of \O.
2923
2924         * src/devices/grohtml/html-text.cc (html_text::do_indent,
2925         html_text::do_table, html_text::do_emittext, html_text::do_para):
2926         Use `const' for first argument.
2927         (html_text::do_table): Use cast.
2928         * src/devices/grohtml/html-text.h: Updated.
2929         * src/devices/grohtml/output.cc (simple_output::put_string): Add
2930         method for `const string &s'.
2931         * src/devices/grohtml/html.h: Updated.
2932         * src/devices/grohtml/post-html.cc (MAX_STRING_LENGTH): Removed.
2933         (ANCHOR_TEMPLATE): Modified.
2934         (manufacture_headings): New global variable to handle `-h' option.
2935         (is_subsection): Removed.
2936         (char_buffer::add_string): Add `const' to first argument.
2937         Protect against invalid string argument.
2938         Add method for `const string &s'.
2939         (text_glob): Completely redesigned.
2940         (page): Use `const' for strings and remove string length variable.
2941         (page::add_html): Removed.
2942         (page::add_end_encode): New member function.
2943         (to_unicode): Moved upwards.
2944         (title_desc, header_desc): Updated.
2945         (header_desc::write_headings): Updated to new ANCHOR_TEMPLATE
2946         definition.
2947         (html_printer::is_bold, html_printer::make_bold): New member
2948         functions.
2949         (html_printer::end_of_line): Updated.
2950         (generate_img_src, html_printer::do_auto_image,
2951         html_printer::do_title, html_printer::write_header,
2952         html_printer::determine_header_level, html_printer::do_heading,
2953         html_printer::do_linelength, html_printer::do_pageoffset,
2954         html_printer::do_indentation, html_printer::do_tempindent,
2955         html_printer::do_indentedparagraph, html_printer::do_break,
2956         html_printer::flush_sbuf, get_html_translation,
2957         html_printer::begin_page, html_printer::special): Rewritten to get
2958         rid of static string length limit.
2959         (html_printer::troff_tag): Added `.no-auto-rule'.
2960         (html_printer::flush_globs): Small fix.
2961         (html_printer::determine_space): Don't compute `space_width'.
2962         (html_printer::translate_to_html): Renamed to ...
2963         (html_printer::emit_html): This (with updates).
2964         (html_printer::write_header): Implement `-h' option.
2965         (html_printer::draw): Remove commented-out code.  Handle `F'
2966         command.
2967         (html_printer::add_char_to_sbuf): Removed.
2968         (html_printer::add_to_sbuf): Rewritten.
2969         (html_printer::sbuf_continuation): Fixed.
2970         (html_printer::seen_backwards_escape, reverse,
2971         html_printer::remove_last_char_from_sbuf): Removed.
2972         (char_translate_to_html, str_translate_to_html): Removed.
2973         (html_printer::overstrike): New function member.
2974         (html_printer::set_char): Use it.
2975         (html_printer::do_body): New function member.
2976         (html_printer::~html_printer): Use it.
2977         (main): Handle `-h' option.
2978         (usage): Updated.
2979         * src/devices/grohtml/grohtml.man: Document -h switch.
2980
2981         * src/preproc/html/pre-html.cc: Include searchpath.h
2982         Replace `POSTSCRIPTRES' macro with `postscriptRes' variable.
2983         (get_resolution): New function.
2984         (checkImageDir): Use `0777' permissions in mkdir()
2985         (write_start_image): Rewritten to use `\O[5...]'.
2986         (createImage, generateImages): Updated.
2987         (main): Handle `F' and `h' options.
2988         Use `get_resolution'.
2989
2990         * src/roff/troff/input.cc (begin, end, image): Removed.
2991         (do_suppress): Take parameter.
2992         Handle modified syntax of `\O'.
2993         (token::next): Updated.
2994         (init_markup_requests): Removed.
2995         (main): Updated.
2996
2997         * src/roff/troff/div.h: Add declaration for begin_page().
2998
2999         * tmac/color-html.tmac: Removed.  Contents moved to...
3000         * tmac/html.tmac: Here.  Set background color.
3001         * tmac/color.tmac: Removed.  Contents moved to...
3002         * tmac/ps.tmac: Here.
3003         * tmac/www.tmac: Remove the title command when generating images
3004         for html.
3005         (NO_AUTO_RULE): New macro.
3006         (HTML_DO_IMAGE): Use revised `\O' escapes.
3007         * tmac/Makefile.sub, tmac/groff_www.man, tmac/troffrc: Updated.
3008
3009 2001-12-02  Werner LEMBERG  <wl@gnu.org>
3010
3011         * tmac/groff_mdoc.man: Fix typo.
3012
3013 2001-12-01  Colin Watson  <cjwatson@debian.org>
3014
3015         * man/roff.man: Fix typo.
3016
3017 2001-11-29  Werner LEMBERG  <wl@gnu.org>
3018
3019         * src/libs/libbib/map.c, src/utils/pfbtops/pfbtops.c: Include
3020         stdlib.h.
3021
3022         * src/roff/troff/input.cc (read_draw_node): Emit error message if
3023         more than one argument to \D'f ...'.
3024
3025         * tmac/Makefile.sub (NORMALFILES): Add lbp.tmac.
3026
3027 2001-11-28  Werner LEMBERG  <wl@gnu.org>
3028
3029         * tmac/an-old.tmac, tmac/doc.tmac: Assure that the macro package is
3030         loaded only once.
3031
3032         * tmac/groff_man.man: Minor cosmetic fix.
3033
3034 2001-11-27  Werner LEMBERG  <wl@gnu.org>
3035
3036         * src/roff/groff/groff.man, tmac/groff_tmac.man,
3037         tmac/groff_www.man: s/mwww/www/.
3038
3039 2001-11-26  Werner LEMBERG  <wl@gnu.org>
3040
3041         * aclocal.m4 (GROFF_MKSTEMP): Implement test using C++ linkage.
3042         * configure: Regenerated.
3043         * win32-diffs: Updated.
3044
3045         * tmac/groff_mwww.tmac: Renamed to ...
3046         * tmac/groff_www.tmac: This.
3047         * tmac/mwww.tmac: Removed.
3048         * NEWS, tmac/Makefile.sub: Updated.
3049
3050 2001-11-21  Werner LEMBERG  <wl@gnu.org>
3051
3052         * doc/groff.texinfo: Improve documentation of the `\v' escape.
3053         Fix explanation of `\D' and `rt'.
3054
3055 2001-11-20  Werner LEMBERG  <wl@gnu.org>
3056
3057         * tmac/an-old.tmac (an-header): Set header length equal to page
3058         width.
3059         * doc/groff.texinfo: Improve documentation of `ne' request.  Other
3060         minor fixes.
3061         * NEWS: Small fix.
3062
3063 2001-11-19  Werner LEMBERG  <wl@gnu.org>
3064
3065         * NEWS, man/Makefile.sub: Updated.
3066
3067 2001-11-19  Bernd Warken  <bwarken@mayn.de>
3068
3069         * man/ditroff.man: New file.
3070
3071 2001-11-17  Werner LEMBERG  <wl@gnu.org>
3072
3073         * man/groff_differences.man: Renamed to ...
3074         * man/groff_diff.man: This.  Updated.
3075         * man/Makefile.sub, src/roff/troff/troff.man, NEWS: Updated.
3076
3077         * src/preproc/html/pushbackbuffer.cc: Renamed to ...
3078         * src/preproc/html/pushback.cc: This.  Updated.
3079         * src/preproc/html/pushbackbuffer.h: Renamed to ...
3080         * src/preproc/html/pushback.h: This.
3081         * src/preproc/html/Makefile.sub, src/preproc/html/pre-html.cc:
3082         Updated.
3083
3084         * src/libs/libgroff/htmlindicate.cc: Renamed to ...
3085         * src/libs/libgroff/htmlhint.cc: This.
3086         * src/libs/libgroff/Makefile.sub: Updated.
3087
3088         * tmac/an-old.tmac (an-end): Fix page length.
3089
3090 2001-11-16  Werner LEMBERG  <wl@gnu.org>
3091
3092         * NEWS, man/groff_differences.man, doc/groff.texinfo: Updated.
3093         * man/Makefile.sub: Include groff_differences.man.
3094         * VERSION: Set to 1.18.
3095         * REVISION: Set to 0.
3096
3097 2001-11-16  Bernd Warken  <bwarken@mayn.de>
3098
3099         * src/roff/troff/input.cc (do_define_macro): Allow whitespace before
3100         the second dot (or ending macro name) to end a macro.
3101         * doc/groff.texinfo: Doc fix.
3102
3103 2001-11-16  Ruslan Ermilov  <ru@FreeBSD.org>
3104
3105         * tmac/doc-common (doc-header): Handle very long document titles
3106         better.
3107
3108 2001-11-16  Werner LEMBERG  <wl@gnu.org>
3109
3110         * tmac/doc.tmac (doc-do-Bl-args): Fix .substring requests.
3111
3112 2001-11-15  Werner LEMBERG  <wl@gnu.org>
3113
3114         * src/roff/troff/troff.man: Revised and split into troff.man and...
3115         * man/groff_differences.man: New file.
3116         * NEWS: Updated.
3117
3118 2001-11-13  Werner LEMBERG  <wl@gnu.org>
3119
3120         * tmac/an-old.tmac (TS, TE): New macros for table support.
3121
3122 2001-11-12  Werner LEMBERG  <wl@gnu.org>
3123
3124         * src/include/lib.h: Provide a fix for emx to not include
3125         groff-getopt.h.
3126
3127 2001-10-27  Werner LEMBERG  <wl@gnu.org>
3128
3129         * src/roff/troff/input.cc (substring_macro): Fix computation of
3130         boundary values.
3131
3132 2001-10-20  Werner LEMBERG  <wl@gnu.org>
3133
3134         Undo change from 2001-08-28.
3135
3136         * src/roff/troff/input.cc (have_input): New global variable.
3137         (token::next): Set `have_input' for \f, \H, \R, \s, and \S if not
3138         in compatibility mode.
3139         (process_input_stack): Use it.
3140
3141 2001-10-19  Ruslan Ermilov  <ru@FreeBSD.org>
3142
3143         * tmac/doc.tmac (doc-flag-recursion): Protect arguments against
3144         being handled as end-of-sentence characters,
3145
3146 2001-10-10  Gaius Mulley  <gaius@glam.ac.uk>
3147
3148         * src/roff/troff/input.cc (file_iterator): New members
3149         `suppress_newline_flag' and `seen_escape'.
3150         (file_iterator::next_file): Updated.
3151         (file_iterator::fill): Use it.
3152         (string_iterator): New member `suppress_newline_flag'.
3153         (string_iterator::fill): Set it.
3154         (get_color_element): Use MAX_COLOR_VAL.
3155         * src/roff/troff/env.cc (environment): Remove `need_eol'.
3156         (no_fill): Don't set `env->ignore_next_eol'.
3157         (environment::newline): Handle `eol' tag properly.
3158         Emit `eol.ce'.
3159         (environment::add_html_tag): Set `env->ignore_next_eol'.
3160         Don't handle `.ce'.
3161         * src/roff/troff/env.h (environment): Updated.
3162
3163         * src/devices/grohtml/post-html.cc (text_glob::is_eol_ce): New
3164         member function.
3165         (html_printer::outstanding_eol): New member function.
3166         (html_printer::do_title): Use new functions.
3167         (html_printer::troff_tag): Test `id_eol_ce'.
3168
3169 2001-10-10  Werner LEMBERG  <wl@gnu.org>
3170
3171         * tmac/color.tmac, tmac/color-html.tmac: Use `.do' to make those
3172         files work with -C also.
3173
3174 2001-10-05  Werner LEMBERG  <wl@gnu.org>
3175
3176         * doc/pic.ms: Minor fix.
3177         * src/preproc/html/pre-html.cc (scanArguments): Don't handle `-?'
3178         as a valid command line switch.
3179         * src/devices/grohtml/post-html.cc (main): Ditto.
3180         (usage): Updated.
3181         * src/devices/grohtml/grohtml.man: Updated.
3182         * src/roff/groff/groff.cc (main): Pass `-v' to predriver also.
3183
3184 2001-10-04  Werner LEMBERG  <wl@gnu.org>
3185
3186         Implementing color support in troff, pic, grops, and grohtml.  These
3187         changes are based on a major patch provided by Gaius Mulley
3188         <gaius@glam.ac.uk>.
3189
3190         New request: `defcolor', supporting rgb, cmy, cmyk, and gray
3191         definitions with both hex values and fractions.
3192
3193         New escapes: \m and \M for drawing and background color,
3194         respectively.  This corresponds to the troff output commands `m'
3195         and `DF'.
3196
3197         groff and troff accept command line switch `-c' to disable color
3198         output (which is automatically disabled in compatibility mode).
3199
3200         New scaling indicator `f' for fractions (1f = 65536u).
3201
3202         New conditional operator `m' to test for defined colors with `if'
3203         and `ie'.
3204
3205         New keywords `color' (or `colour', `colored', `coloured'), `outline'
3206         (or `outlined'), and `shaded' added to pic.
3207
3208         * src/include/color.h: New file.
3209         * src/include/driver.h: Include it.
3210         * src/include/printer.h: Include color.h.
3211         (environment): New members `col' and `fill'.
3212         (printer): Remove `adjust_arc_center' member function.
3213         * src/include/Makefile.sub: Updated.
3214
3215         * src/libs/libdriver/input.cc (do_file): Initialize `env.col' and
3216         `env.fill'.
3217         Handle `m' and `DF' troff commands.
3218         * src/libs/libgroff/color.cc: New file.
3219         * src/libs/libgroff/Makefile.sub: Updated.
3220
3221         * src/preproc/html/pre-html.cc (IMAGE_BORDER_PIXELS): Set to 2.
3222         (stop): Removed.
3223         (createImage): Fix computation of `y2'.
3224         Use `pnmcrop' also.
3225         (buffer::write_file_html): Remove calls to `stop'.
3226
3227         * src/preproc/pic/common.h (common_output): New abstract function
3228         members `set_color', `reset_color', `get_last_filled', and
3229         `get_outline_color'.
3230         * src/preproc/pic/object.h: Add `IS_SHADED' and `IS_OUTLINED'.
3231         (object_spec): Add members `shaded' and `outlined'.
3232         * src/preproc/pic/output.h (output): `command' is now abstract.
3233         New function members `set_color', `reset_color', `get_last_filled',
3234         and `get_outline_color'.
3235         * src/preproc/pic/lex.cc (lookup_keyword): Recognize `colo[u]r[ed]',
3236         `outline[d]', and `shaded'.
3237         * src/preproc/pic/object.cc (output::command): Removed.
3238         (output::set_location): Moved to output.h.
3239         (graphic_object): Add protected members `outline_color' and
3240         `color_fill'.
3241         Add member functions `set_outline_color', `get_outline_color', and
3242         `set_fill_color'.
3243         (closed_object): Add member function `set_fill_color'.
3244         Add member `color_fill'.
3245         (graphic_object::print_text): Use `out->set_color' and
3246         `out->reset_color'.
3247         (box_object::print, ellipse_object::print, circle_object::print,
3248         line_object::print, spline_object::print, arc_object::print): Ditto.
3249         (object_spec::make_object): Implement `IS_OUTLINED' and `IS_SHADED'.
3250         * src/preproc/pic/pic.y: Add tokens `COLORED', `OUTLINED', and
3251         `SHADED', making them `%left'.
3252         Add rules `object_spec [SHADED|COLORED|OUTLINED] text'.
3253         * src/preproc/pic/tex.cc (tex_output): New dummy function members
3254         `set_color', `reset_color', `get_last_filled', and
3255         `get_outline_color'.
3256         * src/preproc/pic/troff.cc (simple_output): New abstract function
3257         members `set_color', `reset_color', and `get_last_filled'.
3258         (simple_output::polygon, simple_output::circle,
3259         simple_output::ellipse): Use `get_last_filled'.
3260         (troff_output): New members `last_filled' and `last_outlined'.
3261         New function members `set_color', `reset_color', `get_last_filled',
3262         and `get_outline_color'.
3263         (troff_output::finish_picture): Use `reset_color'.
3264         (troff_output::set_fill): Test `last_filled'.
3265         * src/preproc/pic/pic.man: Updated.
3266
3267         * src/roff/groff/groff.cc (main): Implement `-c' option.
3268         (synopsis, help): Updated.
3269         src/roff/groff/groff.man: Updated.
3270
3271         * src/roff/troff/troff.h: Include color.h.
3272         (warning_type): Add WARN_COLOR.
3273         * src/roff/troff/env.h (environment): New members
3274         `{cur,prev}_{glyph,fill}_color'.
3275         New member functions `get_{prev_,}{glyph,fill}_color'.
3276         * src/roff/troff/env.cc: Initialize and implement them.
3277         * src/roff/troff/input.cc: New global variable `disable_color_flag'.
3278         Replace `NULL' with `0' everywhere for consistency.
3279         (lookup_color, default_black, do_glyph_color, do_fill_color,
3280         get_color_element, read_rgb, read_cmy, read_cmyk, read_gray,
3281         define_color): New functions.
3282         (token::next): Implement \M and \m escapes.
3283         (do_if_request): Implement `m' operator.
3284         (usage): Updated.
3285         (main): Implement `-c' option.
3286         (init_markup_requests): Add `defcolor' request.
3287         (warning_table): Add `color' warning.
3288         * src/roff/troff/node.h (glyph_color_node, fill_color_node): New
3289         classes.
3290         * src/roff/troff/node.cc (troff_output_file): New members
3291         `current_{page,glyph}color'.  New member functions `put_hex',
3292         `glyph_color', and `fill_color'.
3293         (glyph_color_node::*, fill_color_node::*): Implement it.
3294         * src/roff/troff/number.cc (SCALE_INDICATOR_CHARS): Add `f'.
3295         (parse_term): Add support for `f'.
3296         * src/roff/troff/troff.man: Updated.
3297
3298         * src/devices/grodvi/dvi.cc (draw_dvi_printer::draw): Add dummy
3299         entry for `F'.
3300         * src/devices/grolbp/lbp.cc (lbp_printer::draw): Ditto.
3301         * src/devices/grolj4/lj4.cc (lj4_printer::draw): Ditto.
3302
3303         * src/devices/grohtml/html-text.h (HTML_TAG): Add COLOR_TAG.
3304         (tag_definition): Use `void *' for arg1.
3305         (html_text): New member functions `do_color' and `done_color'.
3306         Use `void *' for second parameter of `push_para' member function.
3307         New `push_para' member function with a single parameter.
3308         Use `char *' for parameter of `issue_table_begin' member funtion.
3309         New `issue_color_begin' member function.
3310         * src/devices/grohtml/html-text.cc (html_text::end_tag): Handle
3311         COLOR_TAG.
3312         (html_text::issue_color_begin): New function.
3313         (html_text::issue_table_begin): Use `char *' for parameter.
3314         (html_text::start_tag, html_text::shutdown,
3315         html_text::check_emit_text): Updated.
3316         (html_text::push_para): Use `void *' for second parameter.
3317         Add same function with only one parameter.
3318         (html_text::do_*): Updated.
3319         (html_text::do_color, html_text::done_color): New functions.
3320         * src/devices/grohtml/post-html.cc (style): New member `col'.
3321         Mew member `style' with 6 parameters.
3322         (style::style, style::operator==): Updated.
3323         (html_printer::do_font): Use it.
3324         (html_printer::draw): Add dummy entry for `F'.
3325         (html_printer::set_char): Updated.
3326         * src/devices/grohtml/grohtml.man: Updated.
3327
3328         * src/devices/grops/ps.cc (ps_output::put_float): Use `%g' to have
3329         trailing zeroes removed.
3330         (ps_printer): New members `sbuf_color', `fill_color', and
3331         `output_color'.
3332         Removed member `fill'.
3333         New member function `set_color'.
3334         (ps_printer::ps_printer, ps_printer::set_char): Updated.
3335         (ps_printer::flush_sbuf, ps_printer::set_line_thickness,
3336         ps_printer::fill_path, ps_printer::draw): Use `set_color'.
3337
3338         * tmac/color-html.tmac, tmac/color.tmac: New files.
3339         * tmac/troffrc: Include them.
3340         * tmac/www.tmac (URL, FTP, MAILTO): Use blue color.
3341         * tmac/Makefile.sub: Updated.
3342
3343         * NEWS, doc/groff.texinfo, doc/pic.ms, man/groff_out.man,
3344         man/groff.man: Updated.
3345         * font/devps/prologue.ps: Define FC and CO functions.
3346
3347 2001-10-04  Gaius Mulley  <gaius@glam.ac.uk>
3348
3349         Fix incorrect cropping of images and incorrect handling of special
3350         characters.  Fix handling of file names in \O.
3351
3352         * src/include/geometry.h: New file.
3353         * src/libs/libgroff/geometry.cc: New file.
3354         * src/libs/libdriver/printer.cc (printer::adjust_arc_center): Moved
3355         to `geometry.cc'.
3356         * src/roff/troff/input.cc (get_delim_file_name): Fixed problem with
3357         initial spaces.
3358         (do_suppress): Updated.
3359         * src/roff/troff/node.cc: Include geometry.h.
3360         (troff_output_file::flush_tbuf): Fixed parameters to
3361         `check_output_limits'.
3362         (troff_output_file::check_charinfo): Ditto.
3363         (troff_output_file::determine_line_limits): Add support for `Da'
3364         and `Dl' commands.
3365
3366         * src/devices/grohtml/post-html.cc (str_translate_to_html):
3367         Add new parameter `is_special' to decode special characters from
3368         escape sequences.
3369         (html_printer::do_title, html_printer::do_heading,
3370         html_printer::do_indentedparagraph,
3371         html_printer::translate_to_html, html_printer::special): Updated.
3372
3373 2001-10-03  Werner LEMBERG  <wl@gnu.org>
3374
3375         * Makefile.sub (DISTCLEANFILES): Add stamp-h.
3376         Fix entry for config.h.
3377         * test-groff (GROFF_BIN_PATH): Add $builddir/roff/groff.
3378         * tmac/troffrc: Translate nonbreakable space character to `\~'.
3379         * src/preproc/eqn/eqn.man: Document -d command line option.
3380
3381 2001-09-27  Werner LEMBERG  <wl@gnu.org>
3382
3383         * man/groff.man: Use
3384
3385           .ev xxx
3386           .na
3387           .nh
3388           <table>
3389           .ev
3390
3391         instead of the old code (`.ad .hy' after the table) to suppress
3392         incorrect hyphenation for grohtml output.
3393
3394 2001-09-22  Werner LEMBERG  <wl@gnu.org>
3395
3396         * man/groff_font.man, man/groff_out.man: Minor fixes.
3397
3398 2001-09-20  Werner LEMBERG  <wl@gnu.org>
3399
3400         * PROBLEMS: Updated, reordered.  Improved EPS section (thanks to
3401         Arnold Robbins <arnold@skeeve.com>).
3402
3403 2001-09-09  Werner LEMBERG  <wl@gnu.org>
3404
3405         * configure: Regenerated with autoconf 2.52.
3406
3407         * doc/groff.texinfo: Complete revision of indices.
3408
3409 2001-09-07  Werner LEMBERG  <wl@gnu.org>
3410
3411         * doc/Makefile (clean): Updated to delete all indices.
3412
3413 2001-09-05  Werner LEMBERG  <wl@gnu.org>
3414
3415         * src/roff/troff/troff.man: Remove superfluous line.
3416
3417         * tmac/s.tmac: Enable all warnings only if no -W or -w option is
3418         given on the command line (or rather, if only the default warnings
3419         are set).
3420
3421 2001-09-03  Werner LEMBERG  <wl@gnu.org>
3422
3423         * man/groff.man, src/preproc/eqn/eqn.man, tmac/groff_mdoc.man: Don't
3424         use .ne for TTY devices.
3425
3426 2001-08-31  Werner LEMBERG  <wl@gnu.org>
3427
3428         * src/roff/troff/token.h, src/roff/troff/input.cc:
3429         s/TOKEN_TRANSPARENT_ESCAPE/TOKEN_OPAQUE_ESCAPE/.
3430
3431 2001-08-28  Werner LEMBERG  <wl@gnu.org>
3432
3433         * src/roff/troff/token.h (token_type): Add TOKEN_TRANSPARENT_ESCAPE.
3434         * src/roff/troff/input.cc (token::next): Return
3435         TOKEN_TRANSPARENT_ESCAPE for \f, \H, \R, \s, and \S if not in
3436         compatibility mode.
3437         (token::description): Updated.
3438         (process_input_stack): Reset `bol' for TOKEN_TRANSPARENT_ESCAPE.
3439         (token::add_to_node_list, token::process): Ignore
3440         TOKEN_TRANSPARENT_ESCAPE.
3441
3442 2001-08-27  Werner LEMBERG  <wl@gnu.org>
3443
3444         * tmac/an-old.tmac: Fix `S' string.
3445
3446 2001-08-26  Werner LEMBERG  <wl@gnu.org>
3447
3448         * src/roff/troff/troff.man: Don't use .ne for TTY devices.
3449
3450 2001-08-25  Werner LEMBERG  <wl@gnu.org>
3451
3452         * doc/pic.ms: Replace `\\' with `\e' (and fixing some single
3453         backslashes).
3454         Many other minor fixes.
3455
3456         * configure.ac: Add message at end to inform how to compile
3457         xditview.
3458         * configure: Regenerated.
3459
3460 2001-08-24  Werner LEMBERG  <wl@gnu.org>
3461
3462         * src/include/getopt.h, src/libs/libgroff/{getopt.c, getopt1.c}:
3463         Updated to latest version of libc.
3464
3465 2001-08-23  Werner LEMBERG  <wl@gnu.org>
3466
3467         * configure.ac: Don't create subdirectories before AC_CONFIG_FILES.
3468         Autoconf 2.50 and newer can handle this.
3469         * configure: Regenerated.
3470
3471 2001-08-21  Werner LEMBERG  <wl@gnu.org>
3472
3473         * doc/pic.ms: Fix typo.
3474         * src/preproc/tbl/tbl.man: Document case of global options.
3475
3476 2001-08-21  Gaius Mulley  <gaius@glam.ac.uk>
3477
3478         * src/devices/grohtml/post-html.cc (html_printer::end_font): Fix
3479         handling of `CR' font.
3480
3481 2001-08-20  Werner LEMBERG  <wl@gnu.org>
3482
3483         Use a config.h file.
3484
3485         * src/include/lib.h: Include config.h.
3486         * All C files: Ditto (if necessary).
3487         * All C++ source and header files: Include lib.h first (if
3488         necessary).
3489
3490         * src/include/config.hin: New file (autogenerated by autoheader).
3491         * stamp-h.in: New file.
3492         * configure.ac: Updated.
3493         * aclocal.m4: Add third parameters to AC_DEFINE macros.
3494         (GROFF_ARRAY_DELETE): Simplified.
3495         * Makefile.sub (DISTCLEANFILES): Updated.
3496         Added targets for remaking config.status, config.hin, config.h,
3497         stamp-h.in, and stamp-h.
3498         * configure: Regenerated.
3499
3500 2001-08-19  Werner LEMBERG  <wl@gnu.org>
3501
3502         * NEWS: Updated.
3503
3504 2001-08-18  Sebastian Krahmer  <krahmer@suse.de>
3505
3506         * src/preproc/pic/pic.y (format_number): Use do_sprintf().
3507         (do_sprintf): Use snprintf().
3508
3509 2001-08-18  Werner LEMBERG  <wl@gnu.org>
3510
3511         * src/libs/snprintf/*: Added an snprintf module written by Mark
3512         Martinec.
3513         * src/libs/libgroff/Makefile.sub: Updated.
3514         * configure.ac: Add test for snprintf().
3515         * Makefile.in: Updated.
3516         * configure: Regenerated.
3517
3518         * src/preproc/html/pre-html.cc (make_message): Reactivate code which
3519         uses snprintf().
3520
3521 2001-08-14  Ruslan Ermilov  <ru@FreeBSD.org>
3522
3523         * tmac/doc.tmac (Ex): New implementation.
3524         * tmac/doc-common, tmac/groff_tmac.man: Updated.
3525
3526 2001-08-13  Ruslan Ermilov  <ru@FreeBSD.org>
3527
3528         * tmac/doc.tmac (Rv): Implement support for 0 or more than 1
3529         argument.
3530         * tmac/groff_tmac.man: Updated.
3531
3532 2001-08-13  Werner LEMBERG  <wl@gnu.org>
3533
3534         * src/preproc/tbl/tbl.man: Minor documentation update.
3535
3536 2001-08-13  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3537
3538         * src/libs/libgroff/tmpname.cc: Add prototype for gettimeofday().
3539         * configure.ac: Add declaration test for gettimeofday().
3540         * Makefile.in: Document NEED_DECLARATION_GETTIMEOFDAY defines.
3541         * aclocal.m4: Include sys/time.h for gettimeofday declaration test.
3542         * configure: Regenerated.
3543
3544 2001-08-11  Werner LEMBERG  <wl@gnu.org>
3545
3546         * aclocal.m4 (GROFF_MKSTEMP): Define HAVE_MKSTEMP.
3547         * configure.ac: Add declaration test for strcasecmp().
3548         * Makefile.in: Updated.
3549         * configure: Regenerated.
3550         * src/include/lib.h [!HAVE_MKSTEMP]: Add prototype for mkstemp() --
3551         this is necessary because groff's mkstemp.cc is C++.
3552         Add declaration conditionally for strcasecmp().
3553
3554 2001-08-10  Werner LEMBERG  <wl@gnu.org>
3555
3556         Integrated pic2graph, contributed by Eric S. Raymond.
3557
3558         * contrib/pic2graph/{Makefile.sub, pic2graph.sh, pic2graph.man}: New
3559         files.
3560         * Makefile.in, NEWS: Updated.
3561
3562         * src/preproc/tbl/tbl.man: Revised.
3563
3564 2001-08-09  Eric S. Raymond  <esr@thyrsus.com>
3565
3566         * src/preproc/tbl/tbl.man: Extended to cover all tbl features.
3567
3568 2001-08-09  Werner LEMBERG  <wl@gnu.org>
3569
3570         * src/preproc/tbl/main.cc (process_data): Fix recognition of .lf
3571         requests.
3572
3573 2001-08-08  Paul Eggert  <eggert@twinsun.com>
3574
3575         * Makefile.sub (configure): Depend on configure.ac, not
3576         configure.in.
3577         * INSTALL.gen: Upgrade to autoconf 2.52's INSTALL.
3578
3579 2001-08-07  Werner LEMBERG  <wl@gnu.org>
3580
3581         * src/utils/afmtodit/afmtodit.man, src/roff/groff/groff.man: Minor
3582         fixes.
3583
3584 2001-08-06  Werner LEMBERG  <wl@gnu.org>
3585
3586         * src/roff/troff/troff.man: Improve documentation of -E option.
3587
3588 2001-07-28  Ralph Corderoy  <ralph@inputplus.demon.co.uk>
3589
3590         * src/preproc/html/pushbackbuffer.cc (pushBackBuffer::readNumber):
3591         Simplified.
3592
3593 2001-07-27  Werner LEMBERG  <wl@gnu.org>
3594
3595         * src/preproc/refer/refer.cc: Undo last change.
3596         * src/devices/grohtml/post-html.cc: Ditto.
3597
3598 2001-07-26  Werner LEMBERG  <wl@gnu.org>
3599
3600         * src/preproc/refer/refer.cc: Include `lib.h'.
3601         * src/devices/grohtml/post-html.cc: Ditto.
3602
3603 2001-07-25  Gaius Mulley  <gaius@glam.ac.uk>
3604
3605         * aclocal.m4 (GROFF_PAGE): Add `AC_DEFINE(PAGEA4)'.
3606         * src/preproc/html/pre-html.cc: Use it for DEFAULT_VERTICAL_OFFSET.
3607         * Makefile.in: Comment updated.
3608         * configure: Regenerated.
3609
3610 2001-07-25  Werner LEMBERG  <wl@gnu.org>
3611
3612         * src/preproc/pic/pic.cc: Removed.
3613         * src/preproc/pic/pic_tab.h: Removed.
3614         * src/preproc/refer/label.cc: Removed.
3615
3616         * doc/Makefile (.ms.html): Don't use a file name extension in
3617         argument to grohtml's -I option.
3618         * Makefile.in (dist): Remove CVS directories.
3619         Call `distfiles' target.
3620
3621         * src/devices/grohtml/grohtml.man: Add information about valid
3622         versions of pnmtopng.
3623         * src/preproc/html/pre-html.cc (TRANSPARENT): Use `white' as colour
3624         name instead of number.
3625
3626 2001-07-24  Werner LEMBERG  <wl@gnu.org>
3627
3628         * doc/groff.texinfo: Minor fixes.
3629
3630 2001-07-21  Gaius Mulley  <gaius@glam.ac.uk>
3631
3632         * doc/Makefile (.ms.html): Put image files into a subdirectory.
3633         (clean): Updated.
3634
3635 2001-07-20  Werner LEMBERG  <wl@gnu.org>
3636
3637         * src/libs/libgroff/tmpname.cc: New file, defining get_tempname().
3638         * src/libs/libgroff/mkstemp.cc: New file.
3639         * src/libs/libgroff/mksdir.cc: New file.
3640         * src/libs/libgroff/tmpfile.cc [HAVE_MKSTEMP_PROTO]: Removed.
3641         (xtmpfile) [!HAVE_MKSTEMP]: Removed.
3642         * src/libs/libgroff/Makefile.sub: Updated.
3643         * src/include/lib.h: Add mksdir() prototype.
3644         * src/include/posix.h: Define S_IXUSR if not yet defined.
3645
3646         * src/preproc/html/pre-html.cc (MAX_RETRIES): Removed.
3647         (createAllPages): Use mksdir() instead of current code.
3648         * src/utils/indxbib/indxbib.cc [HAVE_MKSTEMP_PROTO]: Removed.
3649         (main): [!HAVE_MKSTEMP]: Removed.
3650
3651         * aclocal.m4 (GROFF_MKSTEMP): Updated to use new mkstemp.cc file.
3652         (GROFF_INTTYPES_H, GROFF_UNSIGNED_LONG_LONG, GROFF_UINTMAX_T): New
3653         macros.
3654         * configure.ac: Add tests for stdint.h, sys/time.h, and
3655         gettimeofday().
3656         Call new GROFF_xxx macros.
3657         * configure: Regenerated.
3658         * Makefile.in: Comments updated.
3659
3660 2001-07-20  Gaius Mulley  <gaius@glam.ac.uk>
3661
3662         * src/preproc/html/pre-html.cc (scanArguments): Use getopt_long()
3663         instead of current code.
3664         * src/devices/grohtml/post-html.cc (main): Handle `-d' option.
3665         * src/roff/groff/groff.cc (possible_command::insert_args): New
3666         function.
3667         (main): Use it for predriver handling instead of insert_arg().
3668
3669 2001-07-19  Werner LEMBERG  <wl@gnu.org>
3670
3671         * doc/Makefile: Added GROFF_BIN_PATH to make it work with uninstalled
3672         groff also.
3673
3674         * src/include/posix.h: Define S_IWUSR if not yet defined.
3675
3676 2001-07-18  Werner LEMBERG  <wl@gnu.org>
3677
3678         * NEWS: Updated.
3679
3680 2001-07-18  Ruslan Ermilov  <ru@FreeBSD.org>
3681
3682         * tmac/groff_mdoc.man: Document new -width and -column syntax.
3683         Some other minor fixes.
3684         * tmac/an-old.tmac: Add `AT' and `UC' macros.
3685
3686 2001-07-17  Gaius Mulley  <gaius@glam.ac.uk>
3687
3688         Replace call to `troff' with `groff -Z' to make it aware of
3689         GROFF_BIN_PATH.
3690
3691         * src/preproc/html/pre-html.cc (TROFF_COMMAND): New macro.
3692         (troff_command, command_prefix): Removed.
3693         (alterDeviceTo): Use groff.
3694         (addZ): New function.
3695         (char_buffer::do_html): Use it.
3696         (scanArguments): Use TROFF_COMMAND.
3697         (findPrefix): Removed.
3698         (main): Updated.
3699         * src/roff/groff/groff.cc (main): Handle zflag for preprocessors.
3700
3701 2001-07-17  Eric S. Raymond  <esr@snark.thyrsus.com>
3702
3703         * doc/pic.ms: Documentation fixes.
3704
3705 2001-07-17  Werner LEMBERG  <wl@gnu.org>
3706
3707         Replace atexit() with global destructor.
3708
3709         * src/libs/libgroff/tmpfile.cc (xtmpfile_list): Add constructor.
3710         (xtmpfile_list_init): New global structure to deallocate
3711         xtmpfile_list on exit.  Its destructor inherits most code from
3712         remove_tmp_files().
3713         (remove_tmp_files): Deleted.
3714         (add_tmp_file): Simplified.
3715
3716 2001-07-16  Werner LEMBERG  <wl@gnu.org>
3717
3718         Replace strdup() with strsave().
3719
3720         * src/devices/grolbp/lbp.cc [!HAVE_STRDUP]: Removed.
3721         (set_papersize): Use strsave() and a_delete.
3722         (main): Use strsave().
3723         * src/preproc/html/pre-html.cc (make_message, createAllPages,
3724         removeAllPages): Use strsave() and a_delete.
3725
3726         * configure.ac: Remove test for strdup.
3727         * Makefile.in: Comment updated.
3728         * configure: Regenerated.
3729
3730 2001-07-15  Werner LEMBERG  <wl@gnu.org>
3731
3732         * win32-diffs: Updated.
3733
3734 2001-07-14  Werner LEMBERG  <wl@gnu.org>
3735
3736         * src/preproc/html/pre-html.cc (makeTempFiles): Activate new code,
3737         removing the old one.
3738         * src/utils/indxbib/indxbib.cc (main): Remove compiler warning.
3739
3740 2001-07-14  Ralph Corderoy  <ralph@inputplus.demon.co.uk>
3741
3742         * src/libs/libgroff/tmpfile.cc (xtmpfile): Fix guard for `namep'.
3743
3744 2001-07-12  Ruslan Ermilov  <ru@FreeBSD.org>
3745
3746         Merge -xwidth into -width.  Add -xwidth functionality to -column
3747         also.
3748
3749         * tmac/doc.tmac (Bl): Add dummy doc-typeXXX and doc-spaceXXX to
3750         avoid warning.
3751         (doc-do-Bl-args): Merge -xwidth code with -width.  Test whether
3752         string immediately following a leading dot starts with a valid mdoc
3753         argument.
3754         Add similar code to the -column branch.
3755         (doc-Bl-usage): Updated.
3756         * groff_mdoc.man: s/-xwidth/-width/.
3757
3758 2001-07-12  Gaius Mulley  <gaius@glam.ac.uk>
3759
3760         * src/devices/grohtml/post-html.cc (text_glob::is_br): Stop titles
3761         running into centered or non-formatted text.
3762
3763 2001-07-11  Werner LEMBERG  <wl@gnu.org>
3764
3765         Introduce short and long prefixes to have the selection at run-time
3766         whether there is a 8+3 limit for names of temporary files.
3767
3768         * src/libs/libgroff/tmpfile.cc (TMPFILE_PREFIX): Replaced with...
3769         (TMPFILE_PREFIX_SHORT, TMPFILE_PREFIX_LONG): This.
3770         (tmpfile_prefix, tmpfile_prefix_len, use_short_prefix): New
3771         variables.
3772         (temp_init): New global structure to initialize above three
3773         variables.
3774         (xtmptemplate): Use two parameters for long and short prefix.
3775         Simplify code use above three variables.
3776         (xtmpfile): Use long and short prefixes as parameters.
3777         * src/include/lib.h: Updated.
3778
3779         * src/preproc/html/pre-html.cc ({PAGE,PS,REGION}_TEMPLATE): Replace
3780         with ...
3781         ({PAGE,PS,REGION}_TEMPLATE_{SHORT,LONG}): This.
3782         (createAllPages, makeTempFiles): Updated.
3783
3784 2001-07-09  Werner LEMBERG  <wl@gnu.org>
3785
3786         * REVISION: Increased to 3.
3787
3788 Version 1.17.2 released
3789 =======================
3790
3791 2001-07-07  Werner LEMBERG  <wl@gnu.org>
3792
3793         * src/utils/indxbib/indxbib.cc (main): Change type of `name_max'
3794         to size_t.
3795
3796 2001-07-06  Ruslan Ermilov  <ru@FreeBSD.org>
3797
3798         * tmac/doc.tmac (Rv): Make `Rv' really not parseable.
3799         Fix synopsis.
3800         * tmac/groff_mdoc.man: Fix synopsis.
3801
3802 2001-07-05  Ruslan Ermilov  <ru@FreeBSD.org>
3803
3804         * tmac/doc.tmac (doc-inset-list, doc-hang-list, doc-ohang-list):
3805         Restore `doc-Pa-font'.
3806
3807 2001-07-04  Werner LEMBERG  <wl@gnu.org>
3808
3809         * src/utils/indxbib/dirnamemax.c: Moved to ...
3810         * src/libs/libgroff/maxfilename.cc: Here.
3811         s/dir_name_max/file_name_max/.
3812         Add copyright.
3813         * src/include/lib.h: Add file_name_max.
3814         * src/utils/indxbib/indxbib.cc: Updated.
3815         * src/utils/indxbib/Makefile.sub, src/libs/libgroff/Makefile.sub:
3816         Updated.
3817
3818         * src/libs/libgroff/tmpfile.cc (TMPFILE_PREFIX) [__MSDOS__]: Define
3819         as empty.
3820         (xtmpfile) [_MSC_VER]: Removed -- MSVC has mktemp().
3821
3822         * src/preproc/html/pre-html.cc (PAGE_TEMPLATE, PS_TEMPLATE,
3823         REGION_TEMPLATE): New macros.
3824         (createAllPages, makeTempFiles): Use them.
3825         Include `nonposix.h'.
3826         (html_system): New function.
3827         (createAllPages, createImage): Use it.
3828         Use EXE_EXT.
3829
3830         * tmac/www.tmac: Fix typos.
3831
3832 2001-07-03  Werner LEMBERG  <wl@gnu.org>
3833
3834         * tmac/www.tmac: Disable hyphenation in normal text only if output
3835         device is html.
3836         (URL, FTP, MAILTO): Disable hyphenation of actual URL with `\%'.
3837         * tmac/groff_mwww.man, NEWS: Updated.
3838
3839 2001-07-03  Gaius Mulley  <gaius@glam.ac.uk>
3840
3841         * tmac/www.tmac (.IMAGE): Add fourth parameter to specify vertical
3842         image location.
3843
3844 2001-07-02  Ruslan Ermilov  <ru@FreeBSD.org>
3845
3846         * tmac/doc-common, tmac/doc.tmac (doc-display-ft-stack,
3847         doc-display-ps-stack): Implement font and font size stack for
3848         displays.
3849
3850 2001-07-02  Werner LEMBERG  <wl@gnu.org>
3851
3852         * REVISION: Increased to 2.
3853         * src/roff/troff/input.cc (read_size): Fix special case `\s[0]'.
3854
3855         * src/groff/grog/grog.pl (process): Handle `Oo' and `Oc' not at the
3856         beginning of a line.
3857         * src/groff/grog/grog.sh: Ditto.
3858
3859 2001-06-29  Peter Marquardt  <wwwutz@molgen.mpg.de>
3860
3861         * src/preproc/eqn/neqn.sh: Put `export' keyword in a new line to
3862         make it portable.
3863
3864 2001-06-27  Werner LEMBERG  <wl@gnu.org>
3865
3866         Fix problems with preprocessor string for `man' program.
3867
3868         * *.man: Don't use `s' in preprocessor string --  it doesn't exist.
3869         Updated/added copyright.
3870         Moved Emacs's local variable to identify nroff mode to the end of
3871         the file; add local variable if missing.
3872
3873 2001-06-26  Andras Salamon  <andras@cs.wits.ac.za>
3874
3875         * aclocal.m4: Replace AC_LANG_SAVE + AC_LANG_CPLUSPLUS with
3876         AC_LANG_PUSH(C++) and AC_LANG_RESTORE with AC_LANG_POP(C++).
3877         * configure: Regenerated.
3878
3879 2001-06-25  Andras Salamon  <andras@cs.wits.ac.za>
3880
3881         * aclocal.m4 (GROFF_PAGE): Fix page detection code.
3882         * configure: Regenerated.
3883
3884 2001-06-24  Werner LEMBERG  <wl@gnu.org>
3885
3886         * doc/homepage.ms: Don't include arkup.tmac (which no longer exists)
3887         but www.tmac.
3888         * doc/pic.ms: Fix typos.
3889
3890 Version 1.17.1 released
3891 =======================
3892
3893 2001-06-21  Golubev I. N.  <gin@mo.msk.ru>
3894
3895         * aclocal.m4 (GROFF_NEED_DECLARATION): Fix inclusion of strings.h.
3896         * configure: Updated.
3897
3898 2001-06-20  Gaius Mulley  <gaius@glam.ac.uk>
3899
3900         * src/roff/preproc/html/pre-html.cc (make_message): Fix incorrect
3901         image names.
3902         * src/roff/troff/dic.cc (blank_line): Add html tag.
3903
3904 2001-06-19  Gaius Mulley  <gaius@glam.ac.uk>
3905
3906         * src/roff/troff/input.cc (do_suppress): Fix typo.
3907
3908 2001-06-18  Gaius Mulley  <gaius@glam.ac.uk>
3909
3910         Added two new options (-D and -I) to specify image names and a
3911         subdirectory to place the images in.
3912
3913         Change syntax from \\Ox to \\O[x].
3914
3915         * src/devices/grohtml/post-html.cc (main): Add options.
3916         (usage): Updated.
3917         * src/preproc/html/pre-html.cc: Include `stdarg.h'.
3918         Use `NULL' instead of `0' for null string pointers.
3919         (MAX_RETRIES): New macro.
3920         (lengthOfintToStr, intToStr, make_message): New functions.
3921         (makeFileName): Make function static.
3922         Implement -D and -I options.
3923         (checkImageDir): New function.
3924         (write_end_image, write_start_image): Use new syntax of \O.
3925         (createAllPages, removeAllPages): Implement -D and -I options.  Use
3926         make_message().
3927         (createImage): Use make_message().
3928         (addps4html): Add guard for malloc().
3929         (usage, scanArguments): Updated.
3930         (makeTempFiles): Use mkstemp().
3931         (removeTempFiles): Use unlink().
3932         (findPrefix): Add guard for malloc().
3933         (main): Updated.
3934         * src/roff/troff/input.cc (get_delim_file_name): New function to
3935         parse \O.
3936         (do_suppress): Updated to parse new syntax.
3937         * src/devices/grohtml/grohtml.man: Updated.
3938         * tmac/www.tmac: Updated to new syntax.
3939
3940         * NEWS: Updated.
3941
3942 2001-06-15  Werner LEMBERG  <wl@gnu.org>
3943
3944         * src/roff/grog/Makefile.sub: Remove NAMEPREFIX.
3945
3946         * src/devices/grohtml/grohtml.man: Minor improvements.
3947
3948 2001-06-14  Werner LEMBERG  <wl@gnu.org>
3949
3950         * src/preproc/html/Makefile.sub: Remove NAMEPREFIX.
3951
3952 2001-06-11  Werner LEMBERG  <wl@gnu.org>
3953
3954         * man/roff.man, mann/groff.man: Use '\" instead of .\" in the first
3955         line to specify preprocessor options -- mandb 2.3.1 only recognizes
3956         the former.
3957         * src/preproc/grn/grn.man: Add proper '\" string.
3958
3959 2001-06-11  OKAZAKI Tetsurou  <okazaki@be.to>
3960
3961         * test-groff: Don't use PATH but GROFF_BIN_PATH.
3962
3963 2001-06-08  Werner LEMBERG  <wl@gnu.org>
3964
3965         Updated to autoconf 2.50.
3966
3967         * configure.in: Renamed to...
3968         * configure.ac: This.
3969         * aclocal.m4 (AC_OUTPUT_MAKE_DEFS): Removed.
3970         (GROFF_OS390): Updated.
3971         * configure: Regenerated.
3972
3973 2001-05-18  Werner LEMBERG  <wl@gnu.org>
3974
3975         * src/roff/troff/env.c, src/roff/troff/env.h,
3976         src/roff/troff/input.cc, src/roff/troff/troff.man: Undo `ss' change
3977         from 2000-12-21.
3978
3979 2001-05-17  Jeffrey Friedl  <jfriedl@yahoo-inc.com>
3980
3981         * src/roff/troff/input.cc (read_size): Fix special case `\s0'.
3982
3983 2001-05-16  Werner LEMBERG  <wl@gnu.org>
3984
3985         * src/roff/troff/input.cc (read_size): Emit warning if value becomes
3986         less than or equal zero; set it to 1 then.
3987         * src/roff/troff/node.h (node::node): Initialize `last'.
3988
3989 2001-05-08  Werner LEMBERG  <wl@gnu.org>
3990
3991         * tmac/an-old.tmac: Make predefined strings work in compatibility
3992         mode.
3993         Add troff version guard.
3994         * tmac/doc.tmac: Simplify version guard.
3995
3996 2001-05-07  Werner LEMBERG  <wl@gnu.org>
3997
3998         The .ns and .rs requests are now honoured not only in the top-level
3999         but in all diversions (similar to UNIX troff).
4000
4001         This change is based on a patch from Tadziu Hoffmann
4002         <hoffmann@usm.uni-muenchen.de>.
4003
4004         * src/roff/troff/div.h (diversion): Add `no_space_mode' member.
4005         (top_level_diversion): Remove `no_space_mode' member.
4006         * src/roff/troff/div.cc (diversion::diversion,
4007         top_level_diversion::top_level_diversion): Updated.
4008         (macro_diversion::output): Reset `no_space_mode'.
4009         (no_space, restore_spacing): Use `curdiv' unconditionally.
4010         (space_request, blank_line): Check `curdiv->no_space_mode'.
4011         (no_space_mode_reg::get_value, no_space_mode_reg::get_string): Use
4012         `curdiv' unconditionally.
4013         * NEWS, src/roff/troff/troff.man, man/groff.man, doc/groff.texinfo:
4014         Updated.
4015
4016 2001-05-06  Werner LEMBERG  <wl@gnu.org>
4017
4018         Added two new requests `de1' and `am1' which are similar to `de' and
4019         `am' with the difference that compatibility mode is saved on entry,
4020         switched off during macro execution, and restored on exit.
4021
4022         * src/roff/troff/input.h: Added two new special characters
4023         (COMPATIBLE_SAVE, COMPATIBLE_RESTORE).
4024         * src/roff/troff/input.cc (input_iterator): Added two member
4025         functions `save_compatible_flag' and `get_compatible_flag'.
4026         (input_stack): Ditto.
4027         (string_iterator): Ditto.  Also add private member
4028         `saved_compatible_flag'.
4029         (token::next): Use COMPATIBLE_SAVE and COMPATIBLE_RESTORE.
4030         (calling_mode): New enumeration.
4031         (do_define_macro): Use it.  Insert COMPATIBLE_SAVE and
4032         COMPATIBLE_RESTORE at the beginning and end of macro, respectively.
4033         (define_macro, define_indirect_macro, append_macro, ignore): Use
4034         `calling_mode'.
4035         (define_nocomp_macro, append_nocomp_macro): New functions.
4036         (init_input_requests): Updated.
4037         (do_request): Rename local variable `saved_compatible_flag' to
4038         `old_compatible_flag'.
4039         * NEWS, src/roff/troff/troff.man, man/groff.man: Document it.
4040
4041         * tmac/an-old.tmac: Use `de1' instead of `de' request for all
4042         public and trap-invoked macros.  As a consequence, the man macros
4043         work in compatibility mode also.
4044
4045 2001-05-06  Solar Designer  <solar@openwall.com>
4046
4047         * Makefile.in: Use $(mandir).
4048
4049 2001-05-06  Alexios Zavras  <zvr@pobox.com>
4050
4051         * src/utils/afmtodit/afmtodit.pl: Fix serious typo.
4052
4053 2001-05-05  Werner LEMBERG  <wl@gnu.org>
4054
4055         Added `.ns' number register: Returns 1 in no-space mode (if in
4056         top-level diversion), 0 otherwise.
4057
4058         * src/roff/troff/div.cc (no_space_mode_reg): New class.
4059         (init_div_requests): Updated.
4060         * NEWS, src/roff/troff/troff.man, man/groff.man, doc/groff.texinfo:
4061         Document it.
4062
4063 2001-05-04  Werner LEMBERG  <wl@gnu.org>
4064
4065         * src/roff/nroff/nroff.man: Improved documentation (especially
4066         locales).
4067
4068 2001-05-02  Werner LEMBERG  <wl@gnu.org>
4069
4070         Added `brp' request: This is \p as a request.
4071
4072         * src/roff/troff/env.cc (environment::do_break): Add parameter
4073         `spread'.
4074         (do_break_request): New function (was `break_request').
4075         (break_request): Calls `do_break_request'.
4076         (break_spread_request): New; calls `do_break_request'.
4077         (init_env_requests): Updated.
4078         * src/roff/troff/env.h: Updated.
4079         * NEWS, src/roff/troff/troff.man, man/groff.man: Document it.
4080
4081         * REVISION: Increased to 1.
4082         * win32-diffs: Updated.
4083
4084 2001-05-01  Werner LEMBERG  <wl@gnu.org>
4085
4086         * tmac/an-old.tmac: Fix minor compatibility mode issue.
4087         * tmac/troffrc-end: Make it really work in compatibility mode.
4088
4089 2001-04-27  Werner LEMBERG  <wl@gnu.org>
4090
4091         * src/utils/lkbib/lkbib.cc: Switch inclusion order of stdio.h and
4092         stdlib.h.
4093
4094 2001-04-22  Werner LEMBERG  <wl@gnu.org>
4095
4096         * src/libs/libgroff/getopt.c, src/include/getopt.h: Updating to
4097         latest versions from glibc CVS archive.
4098
4099         * MORE.STUFF: Updated, using a patch from Kees Zeelenberg
4100         <c.zeelenberg@hccnet.nl>.
4101
4102 2001-04-21  Werner LEMBERG  <wl@gnu.org>
4103
4104         * configure.in: Move check for mkstemp() to...
4105         * aclocal.m4 (GROFF_MKSTEMP): This new function.
4106         * configure: Regenerated.
4107
4108         * src/include/groff-getopt.h: Don't use variable names in
4109         declarations.
4110
4111         * src/devices/grohtml/html-chars.h: Removed.  It isn't used.
4112         * src/devices/grohtml/Makefile.sub,
4113         src/devices/grohtml/post-html.cc: Updated.
4114
4115 2001-04-21  Albert Chin-A-Young  <china@thewrittenword.com>
4116
4117         * configure.in: Add special check for mkstemp().
4118         * src/libs/libgroff/tmpfile.cc: Use it.
4119         * src/utils/indxbib/indxbib.cc: Ditto.
4120         * src/utils/pfbtops/pfbtops.c (main): Don't use C++ comment style.
4121         * src/devices/grolbp/lbp.h (lbpprintf, lbpputs, vdmprintf): Use
4122         `const'.
4123
4124 2001-04-20  Bruce Lilly  <blilly@erols.com>
4125
4126         `Version_string' as C++ object was not visible to linker from C
4127         object files.
4128         Add `const' to `Version_string'.
4129
4130         * src/utils/pfbtops/pfbtops.c (main), src/roff/groff/groff.cc
4131         (main), src/roff/troff/input.cc (main), src/preproc/tbl/main.cc
4132         (main), src/preproc/pic/main.cc (main), src/preproc/eqn/main.cc
4133         (main), src/preproc/grn/main.cc (main), src/preproc/html/pre-html.cc
4134         (scanArguments), src/preproc/refer/refer.cc (main),
4135         src/preproc/soelim/soelim.cc (main), src/devices/grotty/tty.cc
4136         (main), src/devices/grodvi/dvi.cc (main), src/devices/grolj4/lj4.cc
4137         (main), src/devices/grohtml/post-html.cc (main),
4138         src/devices/grolbp/lbp.cc (main), src/utils/tfmtodit/tfmtodit.cc
4139         (main), src/utils/hpftodit/hpftodit.cc (main),
4140         src/utils/lookbib/lookbib.cc (main), src/utils/indxbib/indxbib.cc
4141         (main), src/utils/lkbib/lkbib.cc (main),
4142         src/utils/addftinfo/addftinfo.cc (main): Implement it.
4143
4144         * src/roff/groff/pipeline.c: Add _UWIN.
4145         * src/include/nonposix.h: Ditto.
4146
4147 2001-04-20  Werner LEMBERG  <wl@gnu.org>
4148
4149         * src/include/lib.h: Use HAVE_STRERROR.
4150         * src/roff/groff/pipeline.c: Ditto.
4151         * src/preproc/html/pre-html.cc: Remove declaration of `strerror'.
4152         * src/libs/libgroff/Makefile.sub (version.cc): Add `extern "C"'.
4153         * src/utils/pfbtops/pfbtops.c: Add copyright notice.
4154         * win32-diffs: Updated.
4155         * src/utils/hpftodit/hpftodit.cc (read_map): Fix compiler warning.
4156
4157 2001-04-19  Werner LEMBERG  <wl@gnu.org>
4158
4159         * src/preproc/html/pre-html.cc (scanArguments): Use `troff_command'
4160         instead of hardwired `"troff"'.
4161         (char_buffer::read_file): Remove unused variables.
4162         (char_buffer::write_file_troff): Ditto.
4163         (char_buffer::write_file_html): Ditto.
4164         (generateImages): Ditto.
4165         (abs): Removed.
4166         * src/utils/addftinfo/addftinfo.cc (main): Fix compilation problem.
4167
4168         * src/include/lib.h: Don't include `groff-getopt.h' for UWIN.
4169
4170         * src/libs/libgroff/font.cc (font::load_desc): Fix compiler warning.
4171         * src/libs/libbib/index.cc (index_search_item_iterator::get_tag,
4172         index_search_item::search1): Ditto.
4173         * src/roff/troff/node.h (width_list): Reorder members.
4174         * src/roff/troff/input.cc (do_define_macro): Fix compiler warning.
4175         (lookup_warning): Ditto.
4176         (prepend_string): Commented out.
4177         * src/roff/troff/dictionary.cc (is_good_size): Fix compiler warning.
4178         * src/roff/troff/reg.cc (number_value_to_ascii): Ditto.
4179         * src/preproc/tbl/main.cc (process_format): Ditto.
4180         * src/preproc/pic/pic.y (define_variable, reset, reset_all): Fix
4181         compiler warnings.
4182         * src/preproc/pic/pic.cc: Updated.
4183         * src/preproc/eqn/lex.cc (init_table): Fix compiler warnings.
4184         * src/preproc/eqn/over.cc (over_box::compute_metrics): Ditto.
4185         * src/preproc/refer/command.cc (execute_command): Ditto.
4186         * src/preproc/refer/ref.cc (sortify_title, find_month): Ditto.
4187         * src/preproc/refer/token.cc (lookup_token): Ditto.
4188         * src/preproc/soelim/soelim.cc: Ditto.
4189         * src/preproc/html/pushbackbuffer.cc (ERROR): Ditto.
4190         (isHexDigit): Commented out.
4191         (pushBackBuffer::isString): Remove unused variable.
4192         * src/devices/grops/ps.cc (ps_printer::special): Fix compiler
4193         warning.
4194         * src/devices/grops/psrm.cc (resource_manager::lookup_font,
4195         resource_manager::read_resource_arg, read_one_of, parse_extensions):
4196         Ditto.
4197         * src/devices/grodvi/dvi.cc (dvi_printer::draw): Ditto.
4198         * src/devices/grolj4/lj4.cc (lj4_font::handle_unknown_font_command,
4199         lookup_paper_size): Ditto.
4200         * src/devices/grohtml/post-html.cc (is_subsection): Commented out.
4201         (text_glob, element_list): Reorder members.
4202         * src/devices/grohtml/html-text.cc (html_text::do_pre): Remove
4203         compiler warning.
4204         * src/devices/grohtml/html-text.h (html_text::emit_space): Change
4205         return value to `void'.
4206         * src/devices/grohtml/output.cc (word_list::word_list): Fix order
4207         of initializers.
4208         * src/devices/grohtml/html.h (simple_output::check_newline,
4209         simple_output::space_or_newline, simple_output::enable_newlines):
4210         Add return value.
4211         * src/devices/grolbp/lbp.cc (wp54charset, set_papersize): Remove
4212         compiler warnings.
4213         * src/utils/tfmtodit/tfmtodit.cc (tfm::load, gf::load, main): Ditto.
4214         * src/utils/hpftodit/hpftodit.cc (File::seek, read_symbol_sets,
4215         output_ligatures, output_charset, read_map): Ditto.
4216         * src/utils/lookbib/lookbib.cc (main): Ditto.
4217         * src/utils/indxbib/indxbib.cc (main, fwrite_or_die): Ditto.
4218         (do_file): Fix typo (`=' -> `==').
4219         * src/utils/lkbib/lkbib.cc (main): Remove compiler warning.
4220         * src/utils/addftinfo/addftinfo.cc (main): Ditto.
4221
4222 2001-04-18  Ruslan Ermilov  <ru@FreeBSD.org>
4223
4224         * src/roff/nroff/nroff.sh: Adding -p (pic) and -t (tbl) options.
4225         Fix usage of GROFF_BIN_PATH.
4226         * src/roff/nroff/nroff.man: Updated.
4227
4228 2001-04-18  Werner LEMBERG  <wl@gnu.org>
4229
4230         * NEWS: Fixing typos.
4231         Updated.
4232
4233 Version 1.17 released
4234 =====================
4235
4236 2001-04-17  Werner LEMBERG  <wl@gnu.org>
4237
4238         * tmac/Makefile.sub (install-data): mdoc.local-s is in current
4239         directory, not in $(srcdir).
4240
4241 2001-04-16  Werner LEMBERG  <wl@gnu.org>
4242
4243         * doc/groff.texinfo: More info on conditionals.
4244
4245 2001-04-15  Werner LEMBERG  <wl@gnu.org>
4246
4247         * doc/groff.texinfo: Added some info about groff internals.
4248
4249         * src/roff/troff/node.cc (make_glyph_node): Emit warning message
4250         about missing special character only if the name is non-null.
4251
4252 2001-04-14  Werner LEMBERG  <wl@gnu.org>
4253
4254         Removing the grohtml-old device driver which is now obsolete.
4255
4256         * src/devices/grohtml-old/*: Removed.
4257         * font/devhtml-old/*: Removed.
4258         * src/libs/libgroff/htmlindicate.cc (graphic_start, graphic_end):
4259         Remove comments.
4260         * Makefile.in (CCPROGDIRS, DEVDIRS): Updated.
4261         * test-groff (PATH): Updated.
4262         * tmac/Makefile.sub (NORMALFILES): Updated.
4263         * tmac/an-old.tmac: Remove special code for html-old device.
4264         Replace `html-or-html-old' register with `an-html'.
4265         * tmac/eqnrc: Updated.
4266         * tmac/html-old.tmac: Removed.
4267         * tmac/troffrc, tmac/troffrc-end: Updated.
4268         * tmac/www.tmac: Remove special code for html-old device.
4269         Replace `html-or-html-old' register with `www-html'.
4270
4271         * src/libs/libgroff/tmpfile.cc (remove_tmp_files),
4272         src/libs/libgroff/htmlindicate.cc (graphic_end),
4273         include/htmlindicate.h, src/preproc/grn/*.cc,
4274         src/roff/groff/env.{cc,h}: Remove `void' parameter if used as a
4275         single argument for consistency with rest of source code.
4276
4277         * aclocal.m4, tmac/an-old.tmac: Fix copyright.
4278
4279 2001-04-13  Ruslan Ermilov  <ru@FreeBSD.org>
4280
4281         * src/roff/troff/troff.man: Fixing typos.
4282
4283 2001-04-13  Werner LEMBERG  <wl@gnu.org>
4284
4285         * doc/pic.ms: Fixing many font switches.
4286         * doc/groff.texinfo: Fixes, additions.
4287         * MORE.STUFF: Updated.
4288
4289 2001-04-12  Gaius Mulley  <gaius@glam.ac.uk>
4290
4291         * src/devices/grohtml/grohtml.man: Updated manual page regarding
4292         simple anchor.
4293         * src/preproc/html/pre-html.cc (createImage): Fixed right hand
4294         cropping of images.
4295         (removeTempFiles): New function to tidy up temporary files.
4296         * src/preproc/html/pre-html.cc (main): Calls `removeTempFiles()'.
4297         Many fixes to do with the new inline suppress node and image regions
4298         are much tighter.
4299         * src/devices/grohtml/post-html.cc: New method `is_auto_img'.
4300         (generate_img_src): New function.
4301         (html_printer::do_auto_image): Utilizes it.
4302         (do_heading, do_title): Include inline images within their contents.
4303         (html_printer::begin_page): Tidied up comments that are issued to
4304         the html output file.
4305         (html_printer::do_fill): Fixed so that `.nf' works with fonts other
4306         than courier.
4307         (text_glob::is_br): New method used by do_heading.
4308         * tmac/s.tmac: If -Thtml then emit $1 in .IP rather than its
4309         equivalent diversion.
4310         * src/include/html-strings.h: Altered image tags to reflect the
4311         inline image node.
4312         * src/include/htmlindicate.h (html_end_suppress): Added `is_inline'
4313         parameter.
4314         * src/preproc/eqn/main.cc: Will suppress generation of image tags if
4315         it is already inside a pic image.  Only emit tags if the argument
4316         `-Tps:html' is present.
4317         * src/preproc/tbl/main.cc: Changes to reflect additional
4318         `html_end_suppress' parameter.
4319         * src/roff/troff/env.cc: Only emit eol tag if a node has been
4320         emitted since the last eol tag was written.
4321         * src/roff/troff/env.h: New boolean `emitted_node'.
4322         * src/roff/troff/input.cc (do_suppress): Handles extra suppress
4323         nodes \O3, \O4, \O5.  No longer use `output_low_mark_miny'.
4324         * src/roff/troff/node.cc (check_charinfo): New method. 
4325         (troff_output_file::determine_line_limits): Alterations to limit
4326         checking.
4327         * tmac/www.tmac: Changes to reflect new suppress nodes.
4328           
4329 2001-04-12  Bruno Haible  <haible@clisp.cons.org>
4330
4331         * src/devices/grohtml/post-html.cc (html_printer::add_to_sbuf):
4332         Escape the html_glyph in the buffer.
4333         (str_translate_to_html): Output the unescaped escaped_char.
4334         * src/devices/grohtml/html-text.cc (issue_table_begin): Set
4335         `frame=void', not `frame=none'.  Add `border=0'.
4336
4337 2001-04-12  Werner LEMBERG  <wl@gnu.org>
4338
4339         * PROBLEMS: Add some words on how to avoid wrapper macros.
4340
4341 2001-04-11  Blake McBride  <blake@florida-software.com>
4342
4343         * src/include/nonposix.h (fileno) [_MSC_VER]: Removed.
4344
4345 2001-04-11  Werner LEMBERG  <wl@gnu.org>
4346
4347         * font/devlbp/Makefile.sub (CLEANADD): Set it.
4348         * tmac/Makefile.sub (CLEANADD): Add tmac.local-s.
4349         * Makefile.in (dist): Don't remove src/xditview/Imakefile, but ...
4350         * Makefile.sub (DISTCLEANFILES): Here.
4351
4352         * libs/libgroff/new.cc: Include `nonposix.h'.
4353         * win32-diffs: Updated.
4354
4355 2001-04-10  Ruslan Ermilov  <ru@FreeBSD.org>
4356
4357         Added skeleton macro for defunct macros.
4358
4359         Updated documentation.
4360
4361         When inside displays, an empty input line warning should be
4362         suppressed.  If another macro call is put inside a display,
4363         all subsequent empty lines found in that display caused a
4364         warning to be emitted.
4365
4366         * tmac/doc.tmac (doc-defunct-macro): New macro.
4367         (Db, Ds, Ex, Or, Sf): Reimplemented using this macro.
4368         (doc-restore-global-vars): Fixed typo.
4369         (doc-empty-line): Check the `doc-display-depth' register to
4370         determine whether we are inside display or not.
4371
4372         * tmac/doc-common: Removed `Or' and `Sf' registers.
4373         Moved obsolete `Ds' macro to doc.tmac.
4374
4375         * tmac/groff_mdoc.man: Bump document date.
4376         Document `.Vt' under ``Variable Types''.
4377         Removed documentation for obsolete `.Or' macro.
4378
4379 2001-04-10  Werner LEMBERG  <wl@gnu.org>
4380
4381         * NEWS: Updated.
4382         * doc/groff.texinfo: Many fixes, additions, clarifications, etc.
4383
4384 2001-04-10  Bruno Haible  <haible@clisp.cons.org>
4385
4386         * src/devices/grodvi/dvi.cc (main): Accept --help and --version.
4387         (usage): Add stream argument. Don't exit.
4388         * src/devices/grohtml/post-html.cc (main): Accept --help and --version.
4389         Write --version output to stdout, not stderr.
4390         (usage): Add stream argument. Don't exit.
4391         * src/devices/grohtml-old/html.cc (main): Accept --help and --version.
4392         (usage): Add stream argument. Don't exit.
4393         * src/devices/grolbp/lbp.cc (long_options): Use symbolic getopt.h
4394         constants.
4395         (usage): Add stream argument. Don't exit.
4396         (main): Write --help output to stdout, not stderr.
4397         * src/devices/grolj4/lj4.cc (main): Accept --help and --version.
4398         (usage): Add stream argument. Don't exit.
4399         * src/devices/grops/ps.cc (main): Accept --help and --version.
4400         (usage): Add stream argument. Don't exit.
4401         * src/devices/grotty/tty.cc (main): Accept --help and --version.
4402         (usage): Add stream argument. Don't exit.
4403         * src/preproc/eqn/main.cc (usage): Add stream argument. Don't exit.
4404         (main): Accept --help and --version.
4405         * src/preproc/grn/main.cc (usage): Add stream argument. Don't exit.
4406         (main): Accept --help and --version.
4407         * src/preproc/html/pre-html.cc (usage): Add stream argument.
4408         (scanArguments): Accept --help and --version.
4409         * src/preproc/pic/main.cc (usage): Add stream argument. Don't exit.
4410         (main): Accept --help and --version.
4411         * src/preproc/refer/refer.cc (main): Accept --help and --version.
4412         (usage): Add stream argument. Don't exit.
4413         * src/preproc/soelim/soelim.cc (usage): Add stream argument. Don't
4414         exit.
4415         (main): Accept --help and --version.
4416         * src/preproc/tbl/main.cc (usage): Add stream argument. Don't exit.
4417         (main): Accept --help and --version.
4418         * src/roff/groff/groff.cc (main): Accept --help and --version.
4419         (synopsis): Add stream argument.
4420         (help): Write --help output to stdout, not stderr.
4421         (usage): Add stream argument. Don't exit.
4422         * src/roff/grog/grog.pl: Accept --help and --version.
4423         (help): New sub.
4424         * src/roff/grog/grog.sh: Accept --help and --version.
4425         * src/roff/nroff/nroff.sh: Accept --help and --version.
4426         * src/roff/troff/input.cc (USAGE_EXIT_CODE): Remove macro.
4427         (usage): Add stream argument. Don't exit.
4428         (main): Accept --help and --version.
4429         * src/utils/addftinfo/addftinfo.cc (main): Accept --help and --version.
4430         (usage): New function with stream argument, doesn't exit.
4431         * src/utils/hpftodit/hpftodit.cc (main): Accept --help and --version.
4432         (usage): New function with stream argument, doesn't exit.
4433         * src/utils/indxbib/indxbib.cc (main): Accept --help and --version.
4434         (usage): Add stream argument. Don't exit.
4435         * src/utils/lkbib/lkbib.cc (usage): Add stream argument. Don't exit.
4436         (main): Accept --help and --version.
4437         * src/utils/lookbib/lookbib.cc (usage): Add stream argument. Don't
4438         exit.
4439         (main): Accept --help and --version.
4440         * src/utils/pfbtops/pfbtops.c (usage): Add stream argument. Don't exit.
4441         (main): Accept --help and --version.
4442         * src/utils/tfmtodit/tfmtodit.cc (main): Accept --help and --version.
4443         (usage): Add stream argument. Don't exit.
4444
4445 2001-04-10  Ruslan Ermilov  <ru@freebsd.org>
4446
4447         Fix indentation in SYNOPSIS.
4448
4449         Updated to include changes of latest BSD mdoc version (basically,
4450         the only change is that `.Fn' and `.Fc' put a final semicolon after
4451         a function declaration in the SYNOPSIS section).
4452
4453         * tmac/doc.tmac (doc-in-synopsis-count): Replaced with ...
4454         (doc-in-synopsis-section): New variable.  Updated all related
4455         functions.
4456         (doc-indent-synopsis-active): New register.
4457         (Nd, Fn, Fo): Use it.
4458         (Cd): It requires manipulation of \n[doc-indent-synopsis] so that
4459         `.Cd' with long argument line produces indented wrapped lines. 
4460         Also, the misplaced `.nop \*[doc-Nm-font]\c'' caused extra
4461         undesirable line break to be output.
4462         (doc-do-func-decl, Nm, Vt, Fn, Fo): Remove extraneous calls to
4463         `.rs'.
4464         (Fn, Fc): Add final `;' to output.
4465         (doc-save-global-vars, doc-restore-global-vars): Updated.
4466         * tmac/doc-common: Remove `Ex' register.
4467         Updated.
4468         * tmac/doc-ditroff, tmac/doc-nroff, tmac/doc-syms: Updated
4469         copyright.
4470
4471 2001-04-06  Ruslan Ermilov  <ru@freebsd.org>
4472
4473         * tmac/doc.tmac (Cd): Simplify code.
4474         * tmac/groff_mdoc.man: Document some behaviour of `Cd' request.
4475
4476 2001-04-06  Werner LEMBERG  <wl@gnu.org>
4477
4478         Implement continuous underlining for nroff mode.  To do that, a new
4479         request in the ditroff language has been added: `x u N' (N is 0
4480         or 1).
4481
4482         \X and \Y are now transparent to end-of-sentence recognition.
4483
4484         * src/include/printer.h (printer): Add `type' parameter to `special'
4485         method.
4486         * src/libs/libdriver/printer.cc (printer::special): Updated.
4487         * src/libs/libdriver/input.cc (do_file): Handle `x u N'.
4488
4489         * src/devices/dvi/dvi.cc (dvi_printer::special): Handle only
4490         specials of type `p'.
4491         * src/devices/grohtml/post-html.cc (html_printer::special): Ditto.
4492         * src/devices/grohtml-old/html.cc (html_printer::special): Ditto.
4493         * src/devices/grops/ps.cc (ps_printer::special): Ditto.
4494         * src/devices/grotty/tty.cc: Add new enum CU_MODE.
4495         (glyph::order): New method.
4496         (tty_printer::add_char): Use it.
4497         (tty_printer::special): New method.
4498         (tty_printer::end_page): Implement it.
4499
4500         * src/roff/troff/node.h (special_node): Add `no_init_string' member.
4501         * src/roff/troff/node.cc (special_node::special_node): Add parameter
4502         to set `no_init_string'.
4503         (special_node::tprint_start): Use it.
4504         (special_node::same, special_node::copy): Updated.
4505         (special_node::ends_sentence): New method.
4506         (troff_output_file::start_special): Add parameter to include
4507         inititialization of special conditionally.
4508
4509         * src/roff/troff/env.h (environment): New member `underline_spaces'.
4510         * src/roff/troff/env.cc (do_underline_special): New function.
4511         (environment::set_font): Use it.
4512         (do_underline): Use it.  This was `underline()'.
4513         (underline): Call `do_underline()'.
4514         (continuous_underline): New function which calls `do_underline()'.
4515         (environment::newline): Use `do_underline_special()'.
4516         (init_env_requests): Updated.
4517
4518         * NEWS, man/troff_out.man: Updated.
4519
4520 2001-04-06  Bruno Haible  <haible@clisp.cons.org>
4521
4522         * font/devutf8/R.proto: Fix code of 'shc'.
4523
4524 2001-04-06  Ruslan Ermilov  <ru@freebsd.org>
4525
4526         Many fixes.  Diag lists can now be nested also; additionally,
4527         `-compact' and `-offset' are supported.
4528
4529         * tmac/doc.tmac (doc-have-indent): Replaced with ...
4530         (doc-list-have-indent-stackXXX): A new register stack.
4531         (doc-have-diag-list): Removed.
4532         (Bl): Use `doc-list-have-indent-stackXXX'.
4533         (El): Updated.
4534         (doc-diag-list): Use `doc-compact-list-stackXXX'.
4535         (doc-tag-list): Use `doc-list-have-indent-stackXXX'.
4536         (doc-set-vertical-and-indent): Ditto.
4537         (doc-next-list-depth): Removed.
4538         (doc-increment-list-stack): Updated.
4539         (doc-decrement-list-stack): Use `doc-list-depth' instead of
4540         `doc-next-list-depth'.
4541         (doc-end-list, doc-end-column-list): Don't use
4542         `doc-increment-list-stack'.
4543         (doc-set-column-tab): Don't use `doc-list-offset-stackXXX'.
4544         (doc-save-global-vars, doc-restore-global-vars): Updated.
4545         * tmac/doc-common: Updated.
4546         * tmac/groff_mdoc.man: Updated.
4547         * NEWS: Fix typo.
4548
4549 2001-04-02  Werner LEMBERG  <wl@gnu.org>
4550
4551         * src/devices/grotty/grotty.man: Fix grammatical error.
4552
4553 2001-03-30  Ruslan Ermilov  <ru@freebsd.org>
4554
4555         Remove .Ld from mdoc package; replace it with special handling of
4556         `...'.
4557
4558         * tmac/doc-common: Remove `Ld' register.
4559         Uncomment `doc-volume-ds-*' strings.
4560         Remove `doc-operating-system-default'.
4561         (Os): Updated.
4562         * tmac/doc-syms (Ld): Removed.
4563         * tmac/doc.tmac (doc-parse-args, doc-parse-arg-vector): Handle
4564         `...' specially.
4565         * NEWS: Updated.
4566
4567         * tmac/groff_mdoc.man: Many fixes and updates.
4568
4569 2001-03-29  Werner LEMBERG  <wl@gnu.org>
4570
4571         * tmac/troffrc-end: Protect data with `.do'.  Reported by T. Kurt
4572         Bond <tkb@tkb.mpl.com>.
4573         * tmac/www.tmac: Save compatibility mode.
4574
4575 2001-03-28  Ruslan Ermilov  <ru@freebsd.org>
4576
4577         * tmac/groff_mdoc.man: Many fixes.
4578
4579 2001-03-28  Werner LEMBERG  <wl@gnu.org>
4580
4581         * src/preproc/soelim/soelim.man: Document that `.<whitespace>so'
4582         isn't recognized.
4583
4584 2001-03-27  Werner LEMBERG  <wl@gnu.org>
4585
4586         * tmac/an-old.tmac (TP, an-do-tag): Reduce line length while in
4587         diversion.  This fixes overlong tags.
4588
4589 2001-03-26  Werner LEMBERG  <wl@gnu.org>
4590
4591         * doc/groff.texinfo: Fixed and improved documentation of fonts.
4592         * tmac/doc-syms: Fix error messages.
4593         * tmac/an-old.tmac: Remove incorrect double backslashes.
4594
4595 2001-03-24  Ruslan Ermilov  <ru@freebsd.org>
4596
4597         * tmac/Makefile.sub: Strip mdoc.local also
4598         * tmac/strip.sed: Fixed.
4599
4600 2001-03-24  Werner LEMBERG  <wl@gnu.org>
4601
4602         * tmac/doc-nroff, tmac/doc-ditroff: Implement -rSxx switch for
4603         selecting the font size.
4604         * tmac/groff_mdoc.man, NEWS: Document it.
4605
4606 2001-03-23  Werner LEMBERG  <wl@gnu.org>
4607
4608         * src/roff/troff/div.cc (save_vertical_space): Add default argument
4609         to `sv' request.
4610         * src/roff/troff/env.cc (family_change): Make `.fam' accept no
4611         argument to restore previous font family.
4612         * src/roff/troff/troff.man, man/groff.man, NEWS: Updated.
4613
4614         * doc/groff.texinfo: More fixes and additions (mainly for font
4615         manipulating commands).
4616
4617         * tmac/groff_mdoc.reference.man: Small updates and renamed to ...
4618         * tmac/groff_mdoc.man: This.  The quick reference has been removed.
4619         * tmac/Makefile.sub, NEWS: Updated.
4620
4621 2001-03-23  Werner LEMBERG  <wl@gnu.org>
4622
4623         Replaced mdoc implementation.  The new version is `state of the
4624         art', using almost all new features of groff 1.17 -- it won't run
4625         with older versions.
4626
4627         * tmac/doc.tmac: Completely rewritten.
4628         * tmac/doc-common: Ditto.
4629         * tmac/doc-nroff: Ditto.
4630         * tmac/doc-ditroff: Ditto.
4631         * tmac/doc-syms: Ditto.
4632         * tmac/mdoc.local: New file.
4633         * tmac/groff_mdoc.samples.man: Replaced with ...
4634         * tmac/groff_mdoc.reference.man: New file, covering mdoc completely.
4635         * tmac/strip.sed: Updated.
4636         * tmac/Makefile.sub: Updated.
4637         * INSTALL: Updated.
4638
4639         * tmac/groff_man.man: Add `man.local' to the FILES section.
4640
4641 2001-03-22  Werner LEMBERG  <wl@gnu.org>
4642
4643         * doc/groff.texinfo: Added many @noindent.
4644         Replaced @end_Example -> @endExample.
4645         Added info whether registers are r/o.
4646         Many other additions and fixes.
4647
4648 2001-03-21  Werner LEMBERG  <wl@gnu.org>
4649
4650         * doc/groff.texinfo: Added macro @Var (and some hacks due to bugs
4651         in makeinfo of texinfo 4.0) to be used in @Def* macros.
4652         Improved @Def* macros: Now the exact syntax of request, register,
4653         and escapes is shown.
4654         Added macros for parentheses and brackets to be used in @Def*.
4655         Many fixes and improvements of the documentation.
4656
4657 2001-03-20  Werner LEMBERG  <wl@gnu.org>
4658
4659         * doc/groff.texinfo: Added new index: `st' (for strings).
4660         Added macros @Defstr(x).
4661         Added macro @Example (adding @group).
4662         Other minor improvements.
4663
4664 2001-03-19  Werner LEMBERG  <wl@gnu.org>
4665
4666         * doc/groff.texinfo: Added two new indices: `es' (for escapes) and
4667         `rq' for requests.  `fn' is no longer used.
4668         Added macros @Defreq(x), @Defreg(x), and @Defesc(x).
4669         Removed @Deffn(x).
4670
4671         * tmac/an-old.tmac (an-p-footer): If `cR' is set, replace page
4672         number with name of man page.
4673
4674 2001-03-19  Larry Kollar  <kollar@alltel.net>
4675
4676         * doc/groff.texinfo: Complete revision.  Added many @Deffn to gain
4677         consistency.
4678
4679 2001-03-19  Werner LEMBERG  <wl@gnu.org>
4680
4681         * man/groff_font.man: Document `prepro', `postpro', and `print'.
4682         * src/roff/groff/groff.man: Improve documentation of `-l' and `-L'.
4683         * src/devices/grohtml/grohtml.man: Fixing typos.
4684
4685 2001-03-19  Gaius Mulley  <gaius@glam.ac.uk>
4686
4687         * tmac/s.tmac (@IP): Pass `.ip' html tag.
4688         * tmac/groff_mwww.man: Remove .LINE macro
4689         * tmac/www.tmac (LINE): Add `.ti'.
4690
4691         * src/devices/grohtml/post-html.cc (html_printer): New member
4692         `indent'.
4693         (html_printer::emit_raw): Use it.
4694         (html_printer::do_linelength): Ditto.
4695         (html_printer::do_pageoffset): Ditto.
4696         (html_printer::do_indentation): Ditto.
4697         (html_printer::do_tempindent): Ditto.
4698         (html_printer::do_break): Ditto.
4699         (html_printer::begin_page): Ditto.
4700         (html_printer::do_indentedparagraph): New function.
4701         (html_printer::troff_tag): Handle `.ip'.
4702         * src/devices/grohtml/html-text.cc (html_text::issue_table_begin):
4703         Add `<td width=...>' handling.
4704         (html_text::do_table): Add parameter.
4705         (html_text::do_indent): Updated.
4706         * src/devices/groohtml/html-text.h: Updated.
4707
4708 2001-03-16  Gaius Mulley  <gaius@glam.ac.uk>
4709
4710         Introduced simple html tables to implement indentation.
4711
4712         * src/devices/grohtml/html.h (word, word_list): New structures.
4713         (simple_output): Use it.
4714         * src/devices/grohtml/post-html.cc: Add `INDENTATION'.
4715         (html_printer): Improve indentation handling.
4716         (html_printer::emit_raw): Set `in_table' element.  Handle
4717         indentation if set.
4718         (html_printer::write_header): Move conditional downwards.
4719         Don't allow whitespace in tags.
4720         (html_printer::do_linelength): Handle line length and indentation
4721         conditionally.
4722         (html_printer::do_pageoffset): Handle indentation conditionally.
4723         (html_printer::do_indentation): Ditto.
4724         (html_printer::do_tempindent): New function member.
4725         (html_printer::do_fill): Take care of indentation.
4726         (html_printer::do_flush): Finish table.
4727         (html_printer::do_links): Ditto.
4728         (html_printer::do_break): New function for handling `.br' and `.ti'.
4729         (html_printer::troff_tag): Use it.
4730         Handle `.ti'.
4731         (html_printer::flush_globs): Fix.
4732         (html_printer::flush_page): Finish table.
4733         (html_printer::html_printer): Fix error message.  Set up
4734         `linelength'.
4735         (html_printer::add_to_sbuf): Remove special handling of character
4736         code 255.
4737         (to_unicode): Remove `stop()'.
4738         (html_printer::write_title): Cleanup.
4739         (html_printer::begin_page): Use `put_string()'.  Handle indentation.
4740         (html_printer::~html_printer): Flush text and end the line.
4741         Use `put_string()'.
4742         * src/devices/grohtml/html_text.h: Add more *_TAG enum values.
4743         * src/devices/grohtml/html_text.cc (html_text::end_tag): Fix
4744         emission of tags.
4745         (html_text::start_tag): Disable newlines.
4746         (html_text::table_is_void): New function.
4747         (html_text::issue_table_begin): Ditto.
4748         (html_text::issue_table_end): Ditto.
4749         (html_text::push_para): Better table handling.
4750         (html_text::do_indent): New function.
4751         (html_text::do_table): Ditto.
4752         (html_text::done_table): Ditto.
4753         (html_text::do_tt): Handle PRE_TAG.
4754         (html_text::is_in_table): New function.
4755         (html_text::check_emit_text): Handle tables.
4756         (html_text::do_emittext): Use `nl()'.
4757         (html_text::do_para): Handle table.
4758         (html_text::remove_def): New function.
4759         * src/devices/grohtml/output.cc (word, word_list): Implement
4760         methods.
4761         (simple_output::end_line): Flush last word.
4762         (simple_output::simple_comment): Ditto.
4763         (simple_output::begin_comment): Recoded.
4764         (simple_output::end_comment): Ditto.
4765         (simple_output::comment_arg): Removed.
4766         (simple_output::check_newline): Improve test and flush last word.
4767         (simple_output::space_or_newline): Improved.
4768         (simple_output::write_newline): Replaced with...
4769         (simple_output::nl): This.
4770         (simple_output::put_raw_char): Flush last word.
4771         (simple_output::check_space): Removed.
4772         (simple_output::put_translated_string): Ditto.
4773         (simple_output::put_string): Simplified.
4774         (simple_output::put_number): Updated.
4775         (simple_output::put_float): Ditto.
4776         (simple_output::put_symbol): Removed.
4777         (simple_output::enable_newlines): Add `check_newline()'.
4778         (simple_output::flush_last_word): New function.
4779
4780         * src/roff/troff/enc.cc (no_fill): Remove call to add_html_tag().
4781         * src/roff/troff/div.cc (page_offset): Add call to add_html_tag().
4782
4783         * tmac/s.tmac (@PP, @IP): Add html conditional code.
4784         * tmac/an-old.tmac (TP): Ditto.
4785
4786 2001-03-09  Ruslan Ermilov  <ru@freebsd.org>
4787
4788         * mdate.sh: Make it POSIX compliant.
4789
4790 2001-03-09  Werner LEMBERG  <wl@gnu.org>
4791
4792         Added the `return' request to end a macro immediately.  It simply
4793         pops iterators from the input stack until a macro iterator is found.
4794
4795         * src/roff/troff/input.cc (input_iterator::is_macro,
4796         macro_iterator::is_macro): New member.
4797         (input_return_boundary): New class to signal an immediate return
4798         to while_request().
4799         (input_stack::add_return_boundary, input_stack::is_return_boundary):
4800         New functions.
4801         (input_stack::clear): Use it.
4802         (input_stack::pop_macro): New function.
4803         (while_request): Use `is_return_boundary()'.
4804         (return_macro_request): New function.
4805         (init_input_requests): Use it.
4806
4807         * src/roff/troff/TODO: Updated.
4808         * NEWS, src/roff/troff/troff.man, man/groff.man: Document it.
4809
4810 2001-03-08  Werner LEMBERG  <wl@gnu.org>
4811
4812         * src/roff/troff/input.cc (input_iterator::is_boundary): Minor
4813         cleanup.
4814
4815 2001-03-07  Werner LEMBERG  <wl@gnu.org>
4816
4817         Make `\B' more rigid.
4818
4819         * src/roff/troff/number.cc (parse_expr, parse_term): Add `rigid'
4820         parameter.
4821         (get_number_rigidly): New function.
4822         * src/roff/troff/input.cc (do_expr_test): Use it.
4823         * src/roff/troff/token.h: Updated.
4824
4825         * src/roff/troff/request.h: Fix typo (init_html_request ->
4826         init_markup_request).
4827
4828 2001-03-04  Gaius Mulley  <gaius@glam.ac.uk>
4829
4830         Fixed grohtml handling of any named glyph for glyph indexes < 0x80. 
4831         Cosmetic changes to `.html-begin', `.html-end', `.html-image' which
4832         are now `.begin', `.end', `.image'.
4833
4834         * src/devices/grohtml/post-html.cc: Adding UNICODE_DESC_START.
4835         (html_printer::add_to_sbuf): Changing type of `code' parameter.
4836         Use add_char_to_sbuf().
4837         (to_unicode): New function.
4838         (char_translate_to_html): Changing type of `ch' parameter.
4839         Use `to_unicode()'.
4840         (html_printer::~html_printer): Comment out doctype string.
4841         * src/preproc/html/pre-html.cc (write_end_image): Use `.end'
4842         instead of `.html-end'.
4843         (write_start_image): Use `.begin' and `.image' instead of
4844         `.html-begin' and `.html-image'.
4845         * src/roff/troff/input.cc: Rename `html_level' to `begin_level'.
4846         (html_begin): Renamed to ...
4847         (begin): This.
4848         (html_end): Renamed to ...
4849         (end): This.
4850         (html_image): Renamed to ...
4851         (image): This.
4852         (init_html_requests): Renamed to ...
4853         (init_markup_requests): This.
4854         * tmac/www.tmac: Updated.
4855
4856 2001-02-28  Bram  <bram@avontuur.org>
4857
4858         * src/libs/libgroff/font.cc (font_widths_cache): Fixing syntax of
4859         constructor.
4860
4861 2001-02-26  David Leonard  <david.leonard@csee.uq.edu.au>
4862
4863         * doc/meref.me: Fixing some typos.
4864
4865 2001-02-16  Werner LEMBERG  <wl@gnu.org>
4866
4867         * src/roff/troff/node.cc (space_node::get_hyphenation_type): New
4868         method.  Return `HYPHEN_MIDDLE' if it was `\:'.
4869         * src/roff/troff/node.h: Updated.
4870
4871 2001-02-17  Ruslan Ermilov  <ru@FreeBSD.org>
4872
4873         * tmac/groff_tmac.man: Fix typo.
4874
4875 2001-02-16  Werner LEMBERG  <wl@gnu.org>
4876
4877         Fixing a bug which prevented proper end-of-sentence recognition
4878         between an `unformatted' box and the following text.  As a
4879         consequence, vertical line distances are no longer preserved in
4880         boxes after a call to `.unformat' -- because boxes aren't
4881         line-oriented (contrary to diversions), this doesn't make sense
4882         anyway.
4883
4884         * src/roff/troff/node.cc (*node::set_unformat_flag): Add return
4885         value.
4886         (vertical_size_node::set_unformat_flag): New method.
4887         * src/roff/troff/node.hh: Updated.
4888         * src/roff/troff/input.cc (word_space_node::reread,
4889         hmotion_node::reread): Reset `unformat' flag after usage.
4890         (unformat_macro): Append only if `set_unformat_flag()' returns
4891         non-zero.
4892         * src/roff/troff/troff.man: Updated.
4893
4894 2001-02-15  Werner LEMBERG  <wl@gnu.org>
4895
4896         * src/roff/troff/troff.man, NEWS, man/groff.man: Improved
4897         documentation of `asciify' and `unformat' requests.
4898
4899 2001-02-13  Werner LEMBERG  <wl@gnu.org>
4900
4901         Redesigned the `unformat' request.  It is no longer connected with
4902         `asciify' but rather uses new `reread()' methods if the `unformat'
4903         flag is set.  Additionally, the handling of space characters after
4904         unformatting has been fixed so that they retain their width.
4905
4906         * src/roff/troff/node.h (width_list): New structure to store
4907         original widths of spaces.
4908         (node): Added `unformat' member.
4909         Replaced `num_spaces' variable with `orig_width' list.
4910         * src/roff/troff/node.cc (*node::asciify,
4911         asciify_reverse_node_list): Removed `unformat_only' flag and related
4912         code.
4913         (word_space_node::asciify, word_space_node::word_space_node): Use
4914         `orig_width'.
4915         (word_space_node::~word_space_node): New destructor.
4916         (word_space_node::copy): Updated to handle `orig_width'.
4917         (hmotion_node::copy, unbreakable_space_node::copy): Updated.
4918         (*node::merge_space): Update `orig_width' list if necessary.
4919         (*node::set_unformat_flag): New methods to set the `unformat' flag.
4920         * src/roff/troff/enc.cc (environment::space_newline): Use
4921         `width_list'.
4922         (environment::space): Added method to handle space width and
4923         sentence space width as parameters.  Use `width_list'.
4924         (environment::make_tab_node): Updated.
4925         * src/roff/troff/env.h: Updated.
4926         * src/roff/troff/input.cc (word_space_node::reread,
4927         unbreakable_space_node::reread, hmotion_node::reread): New methods
4928         to handle nodes specially if `unformat' flag is set.
4929         (do_asciify_macro): Renamed back to ...
4930         (asciify_macro): This.
4931         (unformat_macro): New implementation to simply set the `unformat'
4932         flag.
4933
4934         * MORE.STUFF: Added more info about deroff.
4935
4936 2001-02-08  Werner LEMBERG  <wl@gnu.org>
4937
4938         * src/roff/troff/node.h (unbreakable_space_node, hmotion_node,
4939         space_char_hmotion_node, overstrike_node): Add `get_hyphen_list()'
4940         and `add_self()' methods to avoid hyphenation.  For example, the
4941         hyphen list for `foo\0\0bar' was `foobar', causing insertion of a
4942         soft hyphen after `foo'.  Now the hyphen list is correctly
4943         `foo<ignore><ignore>bar'.
4944
4945 2001-02-05  Yoshiteru Kageyama  <yt-kage@cb3.so-net.ne.jp>
4946
4947         * tmac/groff_tmac.man: Fix `BIR' macro.
4948
4949 2001-02-04  Werner LEMBERG  <wl@gnu.org>
4950
4951         A new escape sequence `\:', inserting a zero-width break point.
4952
4953         * src/roff/troff/input.h: Adding `ESCAPE_COLON'.
4954         * src/roff/troff/input.cc (get_copy, token::next, asciify):
4955         Implement it.
4956         * src/roff/troff/node.h (node): Add `is_escape_colon()' virtual
4957         method.
4958         (space_node): Add `was_escape_colon' member.  Add `is_escape_colon()'
4959         and `asciify()' methods.
4960         * src/roff/troff/node.cc (space_node::space_node): Updated.
4961         (space_node::asciify): Handle `was_escape_colon'.
4962         * NEWS, src/roff/troff/troff.man, man/groff.man: Document it.
4963
4964         Handle `\~' similar to other comparable requests.
4965
4966         * src/roff/troff/input.cc (process_input_stack): Remove now obsolete
4967         label.
4968         (token::next): Move creation of an unbreakable_space_node to...
4969         (token::add_to_node_list): Here.
4970
4971         Fix a bug which sometimes prevented hyphenation of words connected
4972         with `\~' or `\ ' (and other escape sequences handled as
4973         TOKEN_NODE).  This also fixes a hyphenation problem with boxes
4974         (after a call to the `unformat' request).
4975
4976         * src/roff/troff/env.h (environment::possibly_break_line,
4977         environment::hyphenate_line): Introducing `start_here' parameter.
4978         * src/roff/troff/env.cc (environment::space_newline,
4979         environment::space): Use it.
4980         (environment::possibly_break_line, environment::hyphenate_line):
4981         Implement it.
4982         * src/roff/troff/input.cc (process_input_stack): Use it.
4983         * src/roff/troff/node.h (unbreakable_space_node, hmotion_node,
4984         space_char_hmotion_node, overstrike_node): Add
4985         `get_hyphenation_type()' method.
4986         * src/roff/troff/node.cc (break_char_node::asciify): Don't asciify
4987         if `unformat_only' is active.
4988
4989 2001-01-30  Werner LEMBERG  <wl@gnu.org>
4990
4991         Implemented new read-only number register `.linetabs' which
4992         returns 1 if in line-tabs mode, 0 otherwise.
4993
4994         * src/roff/troff/env.h (environment): Add get_line_tabs() member.
4995         * src/roff/troff/env.cc (get_line_tabs): New function.
4996         (init_env_requests): Use it.
4997         * NEWS, src/roff/troff/troff.man, man/groff.man: Document it.
4998
4999         * VERSION, REVISION: Changing to 1.17.0.
5000
5001 2001-01-28  Werner LEMBERG  <wl@gnu.org>
5002
5003         Fixed a bug which prevented hyphenation of words which are finished
5004         with `\)'.
5005
5006         * src/roff/troff/token.h (token): Add enum type
5007         `TOKEN_TRANSPARENT_DUMMY' and method `transparent_dummy()'.
5008         * src/roff/troff/input.cc (token::next, token::description,
5009         get_line_arg, token::add_to_node_list, token::process): Use it.
5010
5011 2001-01-27  Werner LEMBERG  <wl@gnu.org>
5012
5013         * src/roff/troff/div.h (diversion): Add `saved_prev_line_interrupted'.
5014         * src/roff/troff/div.cc (do_divert): Use it.
5015
5016         * src/roff/troff/input.cc (asciify): Add ESCAPE_RIGHT_PARENTHESIS.
5017
5018 2001-01-25  Werner LEMBERG  <wl@gnu.org>
5019
5020         Adding the `linetabs' request.  If set, tab distances are not
5021         computed relative to the input line but relative to the output line.
5022
5023         * src/roff/troff/env.h (environment): New member `line_tabs'.
5024         * src/roff/troff/env.cc (line_tabs_request): Implement request.
5025         (environment::environment, environment::copy): Updated.
5026         (environment::distance_to_next_tab): Use `line_tabs'.
5027         (init_env_requests): Register request.
5028         * src/roff/troff/troff.man, man/groff.man, NEWS: Document it.  Other
5029         fixes.
5030
5031 2001-01-24  Werner LEMBERG  <wl@gnu.org>
5032
5033         Introducing a new read-only register `.int' which is set to a
5034         positive value if the last output line is interrupted (i.e., if it
5035         contains `\c').
5036
5037         * src/roff/troff/env.cc (init_env_requests): Add it.
5038         * NEWS, src/roff/troff/troff.man, man/groff.man: Document it.
5039
5040 2001-01-23  Gaius Mulley  <gaius@glam.ac.uk>
5041
5042         * tmac/mwww.tmac: Call `www.tmac', not `arkup.tmac'.
5043         * src/preproc/html/pre-html.cc (findPrefix): New function which
5044         generates the troff executable name via the system prefix.
5045         * src/preproc/eqn/main.cc: Modified warning message.
5046
5047 2001-01-23  Werner LEMBERG  <wl@gnu.org>
5048
5049         troff's `box' and `boxa' requests didn't preserve temporary
5050         indentation.
5051
5052         * src/roff/troff/div.h (diversion): Add `saved_saved_indent' and
5053         `saved_target_text_length' members.
5054         * src/roff/troff/div.cc (do_divert): Use them.
5055
5056         Tabs (but not yet leaders and fields) are now handled correctly by
5057         `asciify' request.
5058
5059         * node.h (hmotion_node): Add field `was_tab'.
5060         * env.cc (environment::make_tab_node): Set it.
5061         * node.cc (hmotion_node::copy, hmotion_node::asciify): Use it.
5062
5063         Added new request `unformat' which will, contrary to `asciify',
5064         preserve font information after unformatting (i.e., only nodes
5065         dealing with horizontal space are converted back to input
5066         characters).
5067
5068         * input.cc (asciify_macro): Renamed to ...
5069         (do_asciify_macro): this, having a new parameter `unformat_only'.
5070         (asciify_macro, unformat_macro): New; using do_asciify_macro.
5071         (init_input_requests): Added `unformat'.
5072         * node.cc (*_node::asciify), asciify_reverse_node_list: Added
5073         parameter to control asciification process.
5074         * node.h (*_node::asciify): Ditto.
5075         * NEWS, src/roff/troff/troff.man, man/groff.man: Document it.
5076
5077 2001-01-20  Werner LEMBERG  <wl@gnu.org>
5078
5079         * doc/groff.texinfo: Minor improvement of `.in' documentation.
5080
5081 2001-01-18  Werner LEMBERG  <wl@gnu.org>
5082
5083         * tmac/ps.tmac: Remove call of psold.tmac.
5084         * tmac/psold.tmac: Comment updated.
5085         * tmac/psnew.tmac: Removed since no longer needed.
5086         * tmac/Makefile.sub, NEWS, src/devices/grops/grops.man: Updated.
5087
5088         * font/devutf8/R.proto: Adding `shc' glyph.
5089         * font/devutf8/NOTES: Updated.
5090
5091         * test-groff: Updated.
5092
5093 2001-01-15  Gaius Mulley  <gaius@glam.ac.uk>
5094
5095         First cut of the new html device driver.  Changes to pre-html and
5096         the new grohtml are too numerous to be documented here.
5097
5098         Stuff related to `html' has been renamed to `html-old' and `html2'
5099         stuff has been renamed to `html' (including directories).  The new
5100         html device driver is therefore invoked as `-Thtml'.
5101
5102         Added new `\O' escape to suppress output (needed by html driver).
5103
5104         Added functions and code to pass info about input-level commands
5105         (`.in', `.fl', etc.) to html driver.
5106
5107         Three new functions (.html-begin, .html-end, and .html-image) for
5108         better html handling: `html-begin' will execute the remaining line
5109         if at the outermost nesting level, increasing an internal counter.
5110         `html-end' does the same but decreases the internal counter.
5111         `html_image' puts its arguments into a special node (suppress_node)
5112         to define an image region.
5113
5114         The `output' request has been removed.
5115
5116         * tmac/html-tags.tmac: Removed.
5117         * tmac/arkup.tmac: Updated and renamed to ...
5118         * tmac/www.tmac: New file.
5119         * tmac/markup.tmac Updated and renamed to ...
5120         * tmac/mwww.tmac: New file.
5121         * tmac/Makefile.sub: Updated.
5122         * tmac/an-old.tmac: Updated.
5123         * tmac/eqnrc: Updated.
5124         * tmac/groff_man.man
5125         * tmac/groff_markup.man: Updated and renamed to ...
5126         * tmac/groff_mwww.man: New file.
5127         * tmac/groff_tmac.man: Updated.
5128         * tmac/html-old.tmac: Updated and Renamed from html.tmac.
5129         * tmac/html.tmac: Updated and renamed from html2.tmac.
5130         * tmac/pspic.tmac: Updated html support.
5131         * tmac/s.tmac: Added html output support.
5132         * tmac/troffrc, tmac/troffrc-end: Updated.
5133
5134         * Makefile.in, doc/Makefile: Updated.
5135         * doc/groff.texinfo: Added info about new `\O' escape.
5136         * doc/homepage.ms: Use `MAILTO' macro.
5137
5138         * font/devhtml/DESC.proto: Add `C' font.
5139         * font/devhtml/Makefile.sub: Updated.
5140         * font/devhtml/R.proto: Minor fixes.
5141         * font/devhtml-old/Makefile.sub: Updated.
5142
5143         * src/devices/grohtml-old/Makefile.sub: Updated.
5144
5145         * src/libs/libdriver/printer.cc (printer::get_font_from_index): New
5146         method.
5147         * src/libs/libgroff/htmlindicate.cc (html_begin_suppress,
5148         graphic_start): Add `inline' parameter.  Update.
5149         (html_end_suppress, graphic_end): Update.
5150
5151         * src/include/html-strings.h: New file.
5152         * src/include/htmlindicate.h: Comments updated.
5153         * src/include/printer.h: Updated.
5154
5155         * src/preproc/eqn/main.cc (do_file, main): Updated.
5156         * src/preproc/pic/troff.cc (troff_output::start_picture,
5157         troff_output::finish_picture): Updated.
5158         * src/preproc/tbl/main.cc (process_input_file): Updated.
5159
5160         * src/roff/groff/groff.cc (main): Updated.
5161         Pass device arguments to predrivers also.
5162         Use `ps' device for `eqn' preprocessor if `-Thtml' is given.
5163         * src/roff/troff/env.h (environment): Updated.
5164         New elements `need_eol' and `ignore_next_eol' (for html output).
5165         * src/roff/troff/env.cc (environment::environment): Add initializers
5166         for `need_eol' and `ignore_next_eol'.
5167         (environment::add_html_tag_eol, environment::add_html_tag_tabs): New
5168         functions.
5169         (point_size, fill, no_fill, center, right_justify, line_length,
5170         indent, temporary_indent, break_request, handle_tab): Use
5171         `add_html_tag()'.
5172         (set_tabs): Use `add_html_tag_tabs()'.
5173         (environment::add_html_tag): Updated.
5174         (environment::do_break): Updated.
5175         * src/roff/troff/div.cc (space_request, flush_output): Use
5176         `environment::add_html_tag()'.
5177         * src/roff/troff/input.cc: Updated.
5178         New variable `html_level' to indicate nested `html-begin' requests.
5179         (file_iterator::fill): Use `environment::add_html_tag_eol()'.
5180         (non_interpreted_char_node, token_node, non_interpreted_node): Add
5181         `force_tprint()' method.
5182         (token::next): Handle `\O'.
5183         (do_suppress): Implement it.
5184         (html_begin, html_end, html_image): New functions.
5185         (init_output_requests): Renamed to ...
5186         (init_html_requests): this.
5187         (main): Use it.
5188         (macro::append_str, macro::append_unsigned, macro::append_int): New
5189         methods.
5190         New variable `output_low_mark_miny' to limit minimal value of y.
5191         (reset_output_registers): Use it.
5192         (output_request): Removed.
5193         (get_output_registers): New function.
5194         * src/roff/troff/node.h (node): Make `force_tprint()' virtual.
5195         (*_node): Added `force_tprint()' if necessary.
5196         (special_node): New elements `tf' and `get_tfont()'.
5197         (suppress_node): New class.
5198         * src/roff/troff/node.cc:
5199         New global variables `image_no' and `suppress_start_page'.
5200         (real_output_file): New method `is_on()'.
5201         (troff_output_file): New method `start_special(tfont)'.
5202         (troff_output_file::really_print_line): Use `tprint' conditionally.
5203         (real_output_file::print_line): Updated.
5204         (real_output_file::on): Updated.
5205         (*_node): Added `force_tprint()'.
5206         (special_node::special_node): Initializer updated.
5207         (special_node::same, special_node::copy, special_node::tprint_start):
5208         Updated.
5209         (get_reg_int, get_reg_str): New functions.
5210         (suppress_node::*): New methods.
5211         New global variables last_position, last_image_filename;
5212         (min): New inline function.
5213         * src/roff/troff/reg.h, src/roff/troff/request.h,
5214         src/roff/troff/troff.h: Updated.
5215
5216 2001-01-13  Werner LEMBERG  <wl@gnu.org>
5217
5218         * NEWS, src/roff/troff/troff.man, doc/groff.texinfo: Fix
5219         documentation of `asciify' request.
5220
5221 2001-01-12  Werner LEMBERG  <wl@gnu.org>
5222
5223         * src/roff/troff/input.cc: Move definition of special characters
5224         like `ESCAPE_TILDE' to ...
5225         * src/roff/troff/input.h: New file.
5226         * src/roff/troff/Makefile.sub (HDRS): Add it.
5227
5228         Extending the .asciify request to `unformat' space characters also.
5229
5230         * src/roff/troff/node.h (word_space_node): Add `num_spaces' element
5231         to count input space characters.
5232         Update constructors to take care of it.
5233         * src/roff/troff/node.cc (space_char_hmotion_node::asciify): Use
5234         `ESCAPE_SPACE' instead of normal space.
5235         (word_space_node::asciify): New method.
5236         (unbreakable_space_node::asciify): New method.
5237         (word_space_node::merge_space): New method.
5238         * src/roff/troff/env.cc (environment::space_newline,
5239         environment::space): Add code to initialize `num_spaces' (using the
5240         constructor of `word_space_node').
5241         * NEWS, src/roff/troff/troff.man, man/groff.man, doc/groff.texinfo:
5242         Document it.
5243
5244 2001-01-09  Werner LEMBERG  <wl@gnu.org>
5245
5246         * man/groff_char.man: Use table header traps only conditionally.
5247
5248 2001-01-09  Bjarni Ingi Gíslason  <bjarniig@hi.is>
5249
5250         * man/groff_char.man: Add `ý' and `Ý' to the `acute' group.
5251
5252 2001-01-08  Werner LEMBERG  <wl@gnu.org>
5253
5254         Introducing the `box' and `boxa' requests which are similar to
5255         `di' resp. `da' but omitting a partially filled line (which is
5256         restored after ending the diversion).
5257
5258         * src/roff/troff/div.h (diversion): Add elements to save partially
5259         filled line.
5260         * src/roff/troff/div.cc (do_divert): Add parameter `boxing' to save
5261         partially filled line.
5262         (divert, divert_append): Updated.
5263         (box, box_append): New functions.
5264         (init_div_requests): Use them.
5265         * src/roff/troff/env.h (environment): do_divert() is now a friend.
5266         * NEWS, src/roff/troff/troff.man, man/groff.man: Document it.
5267
5268         * doc/groff.texinfo: Fix documentation of `lf' request.
5269
5270 2000-12-25  Werner LEMBERG  <wl@gnu.org>
5271
5272         * src/roff/troff/troff.man, NEWS: Document `writem' request.
5273
5274 2000-12-21  Werner LEMBERG  <wl@gnu.org>
5275
5276         Ignore `ss' request if in compatibility mode.
5277
5278         * src/roff/troff/input.cc: Make `compatible_flag' non-static.
5279         * src/roff/troff/env.h: Added extern `compatible_flag' declaration.
5280         * src/roff/troff/env.cc (space_size): Use it.
5281
5282         * doc/groff.texinfo, src/roff/troff/troff.man: Fix documentation of
5283         `ss' request in nroff mode.
5284
5285         * tmac/an-old.tmac: Fixed some serious bugs introduced with latest
5286         changes.
5287
5288 2000-12-15  Ruslan Ermilov  <ru@FreeBSD.org>
5289
5290         * tmac/troffrc, tmac/troffrc-end: Convert tmac.* to *.tmac.
5291
5292 2000-12-13  Werner LEMBERG  <wl@gnu.org>
5293
5294         * src/preproc/eqn/Makefile.sub (MAN1): Added neqn.man.
5295         * src/preproc/eqn/neqn.man: Small fixes and additions.
5296
5297 2000-12-13  Ruslan Ermilov  <ru@FreeBSD.org>
5298
5299         * src/utils/addftinfo/addftinfo.man, src/devices/grops/grops.man:
5300         Fixing typo.
5301
5302         * src/preproc/eqn/neqn.man: New file.
5303
5304         * src/preproc/tbl/table.cc (table::print): Fix `indent cannot be
5305         negative' warning.
5306
5307         * tmac/e.tmac: Add `T&' macro.
5308         Fix `indent cannot be negative' warning.
5309         * tmac/s.tmac: Fix `indent cannot be negative' warning.
5310
5311 2000-12-07  Werner LEMBERG  <wl@gnu.org>
5312
5313         * src/include/lib.h: Replaced __ALPHA with __alpha symbol.
5314
5315 2000-12-06  Werner LEMBERG  <wl@gnu.org>
5316
5317         * PROBLEMS: Added info about adding -lPW on HP-UX to satisfy the
5318         `alloca' symbol .
5319
5320         * MORE.STUFF: Added info about deroff for djgpp.
5321
5322         * tmac/an-old.tmac, tmac/groff_man.man, doc/groff.texinfo, NEWS: Fix
5323         documentation of -rcR switch.
5324
5325 2000-12-03  Werner LEMBERG  <wl@gnu.org>
5326
5327         * tmac/an-old.tmac: Implementing the -rcR switch (similar to mdoc);
5328         if -rcR=1 (which is now the default in nroff mode), a single, very
5329         long page is created instead of multiple pages: All `ne' and `wh'
5330         requests are put into conditionals; a new macro `an-end' is added to
5331         be called with `em'.
5332
5333         Some other minor cleanups.
5334
5335         * NEWS, tmac/groff_man.man, doc/groff.texinfo: Updated.
5336
5337 2000-12-02  Werner LEMBERG  <wl@gnu.org>
5338
5339         Fixing a bug which prevented hyphenation in words followed
5340         immediately by a TOKEN_NODE (e.g. `\ ', `\~', etc.).
5341
5342         * src/roff/troff/input.cc (process_input_stack <token::TOKEN_NODE>):
5343         Adding possibly_break_line().
5344         * src/roff/troff/env.h (environment): Make possibly_break_line()
5345         public.
5346
5347         Make `\~' usable in .tr request.
5348
5349         * src/roff/troff/token.h (token_type): Add TOKEN_STRETCHABLE_SPACE.
5350         (token): Add stretchable_space().
5351         * src/roff/troff/input.cc (token::next, token::delimiter,
5352         token::description, process_input_stack, do_translate,
5353         add_to_node_list, token::process): Use it.
5354         * src/roff/troff/node.h (node): Add fourth parameter to add_char()
5355         for adjusting the space.
5356         * src/roff/troff/node.cc (node::add_char): Implement it.  Add code
5357         for stretchable space.
5358         * src/roff/troff/input.cc (token::add_to_node_list): Use it.
5359         (make_node): Add code for stretchable space.
5360         * src/roff/troff/env.cc (environment::add_char): Use it.
5361         * src/roff/troff/input.cc: Add ESCAPE_TILDE special character.
5362         (get_copy, token::next, transparent_translate, asciify): Use it.
5363
5364         * NEWS, src/roff/troff/troff.man, src/roff/troff/TODO,
5365         doc/groff.texinfo: Updated.
5366         * man/groff.man: Small reorderings.
5367
5368 2000-11-23  Werner LEMBERG  <wl@gnu.org>
5369
5370         * NEWS: Fixes.
5371         * src/preproc/eqn/main.cc (main): Use `config_macro_path' for -M
5372         option.
5373         * src/roff/troff/input.cc (main): Add `config_macro_path' and
5374         `safer_macro_path' to -M option.
5375         * src/roff/troff/troff.man: Fixes.
5376
5377 2000-11-22  Werner LEMBERG  <wl@gnu.org>
5378
5379         Use safer path (except for config files) if -U isn't specified.  Add
5380         a special macro path (without home and current directory) for config
5381         files.  Add home directory to unsafe path for consistency.  Don't
5382         include the home directory in the font path.
5383
5384         * src/libs/libgroff/macropath.cc: Add `config_macro_path', change
5385         `macro_path'.
5386         * src/include/macropath.h: Add `config_macrp_path'.
5387         * src/libs/libgroff/fontfile.cc: Fix font path.
5388         * src/roff/troff/input.cc (process_startup_file): Use
5389         `config_macro_path'.
5390         (main): Select unsafe path if -U is given.
5391
5392         * src/preproc/eqn/main.cc (main): Fixing search path for
5393         configuration file.
5394         * src/preproc/eqn/eqn.man: Updated.
5395
5396         * src/roff/troff/troff.man, man/roff.man, tmac/groff_tmac.man:
5397         Updated.
5398
5399         * src/preproc/grn/grn.man, src/devices/grodvi/grodvi.man,
5400         src/devices/grohtml/grohtml.man, src/devices/grolbp/grplbp.man,
5401         src/devices/grolj4/grolj4.man, src/devices/grops/grops.man,
5402         src/devices/grotty/grotty.man: Updated.
5403
5404         * Makefile.in: Fix comments.
5405
5406 2000-11-17  Werner LEMBERG  <wl@gnu.org>
5407
5408         * tmac/safer.tmac: Empty file added (again) for compatibility
5409         reasons.
5410         * tmac/Makefile.sub: Updated.
5411
5412 2000-11-16  Werner LEMBERG  <wl@gnu.org>
5413
5414         * src/devices/grodvi/dvi.cc (main),
5415         src/devices/grohtml2/post-html.cc (main),
5416         src/devices/grolbp/lbp.cc (main), src/devices/grolj4/lj4.cc
5417         (main), src/devices/grops/ps.cc (main), src/devices/grotty/tty.cc
5418         (main), src/preproc/eqn/main.cc (main), src/preproc/grn/main.cc
5419         (main), src/preproc/html2/pre-html.cc (main),
5420         src/preproc/pic/main.cc (main), src/preproc/refer/refer.cc (main),
5421         src/preproc/soelim/soelim.cc (main), src/preproc/tbl/main.cc
5422         (main), src/roff/groff/groff.cc (main), src/roff/troff/input.cc
5423         (main), src/utils/hpftodit/hpftodit.cc (main),
5424         src/utils/indxbib/indxbib.cc (main), src/utils/lkbib/lkbib.cc
5425         (main), src/utils/lookbib/lookbib.cc (main),
5426         src/utils/pfbtops/pfbtops.c (main), src/utils/tfmtodit/tfmtodit.cc
5427         (main): Use stdout for -v.
5428         * src/roff/groff/groff.cc (run_commands),
5429         src/roff/groff/pipeline.c (run_pipeline): New parameter `no_pipe'
5430         to make direct printing to stdout possible.
5431         * src/roff/groff/pipeline.h: Updated.
5432
5433         * src/utils/afmtodit/afmtodit.pl: Add -v switch.
5434         * src/utils/afmtodit/Makefile.sub (afmtodit): Use @VERSION@.
5435         * src/utils/afmtodit/afmtodit.man: Updated.
5436
5437         * src/utils/addftinfo/addftinfo.cc (main): Add -v switch.
5438         (version): New function.
5439         (usage): Updated.
5440         * src/utils/addftinfo/addftinfo.man: Updated.
5441
5442         * src/devices/*/*, src/preproc/*/*, src/roff/*/*, src/utils/*/*:
5443         Fixing copyright dates.
5444
5445         * src/preproc/eqn/neqn.sh: Adding GROFF_BIN_PATH to path instead of
5446         replacing it.
5447
5448         * src/devices/grolbp/lbp.cc (main): Use Version_string instead of
5449         version_string.
5450
5451         * src/roff/nroff/Makefile.sub (nroff): Fix use of @VERSION@.
5452
5453 2000-11-15  Werner LEMBERG  <wl@gnu.org>
5454
5455         In all programs, make -v return immediately with exit status 0 to
5456         be compliant with the GNU standard.
5457
5458         * src/devices/grodvi/dvi.cc (main),
5459         src/devices/grohtml2/post-html.cc (main),
5460         src/devices/grolbp/lbp.cc (main), src/devices/grolj4/lj4.cc
5461         (main), src/devices/grops/ps.cc (main), src/devices/grotty/tty.cc
5462         (main) src/preproc/eqn/main.cc (main), src/preproc/grn/main.cc
5463         (main), src/preproc/html2/pre-html.cc (main),
5464         src/preproc/pic/main.cc (main), src/preproc/refer/refer.cc (main),
5465         src/preproc/soelim/soelim.cc (main), src/preproc/tbl/main.cc
5466         (main), src/roff/groff/groff.cc (main), src/roff/troff/input.cc
5467         (main): Implement it.
5468         * NEWS: Updated.
5469
5470         * src/roff/groff/groff.cc (main): Add copyright notice.  Add refer
5471         and postprocessors to the -v option.
5472
5473         * src/roff/grog/grog.pl: Implement -v.
5474         * src/roff/grog/Makefile.sub (grog): Use @VERSION@.
5475         * src/roff/grog/grog.man, doc/groff.texinfo: Updated.
5476
5477         * src/roff/nroff/nroff.sh: Implement -v.
5478         * src/roff/nroff/Makefile.sub (nroff): Use @VERSION@.
5479         * src/roff/nroff/nroff.man: Updated.
5480         
5481         * src/preproc/eqn/main.cc (main): Fix comment typo.
5482
5483         * MORE.STUFF: Added info about djgpp port of grap.
5484
5485 2000-11-14  Werner LEMBERG  <wl@gnu.org>
5486
5487         * src/roff/grog/grog.{pl,sh}: Implemented -C switch for compatibility
5488         mode (or rather, implemented non-compatibility mode).
5489         * NEWS, src/roff/grog/grog.man, doc/groff.texinfo: Updated.
5490
5491         * src/roff/groff/groff.cc (main): Add BIN_PATH to PATH instead of
5492         replacing it -- we don't find gxditview otherwise.
5493         * NEWS, src/roff/groff/groff.man, doc/groff.texinfo: Updated.
5494
5495         * src/preproc/pic/depend: Removed.  Unnecessary.
5496
5497         Implemented dummy keyword `solid' in pic for compatibility with
5498         AT&T pic.
5499
5500         * lex.cc (lookup_keyword): Added `solid'.
5501         * pic.y: Added SOLID with dummy rule.
5502         * pic.cc, pic_tab.h: Regenerated.
5503         * doc/pic.ms: Updated.
5504
5505 2000-11-13  Werner LEMBERG  <wl@gnu.org>
5506
5507         For security reasons, don't use the current directory but the home
5508         directory while searching and scanning troffrc and troffrc-end.
5509         Similarly, replace the current directory with the home directory
5510         in the font path.
5511
5512         * Makefile.in (fontpath, tmacpath): Remove current directory.
5513
5514         * src/libs/libgroff/searchpath.cc (search_path::search_path): Add
5515         two parameters `add_home' and `add_current'.
5516         (search_path::~search_path, search_path::command_line_dir,
5517         search_path::open_file): Remove tests for `dirs' being zero.
5518         * src/include/searchpath.h: Adjust.
5519         * src/libs/libgroff/macropath.cc, src/include/macropath.h: Add
5520         `safer_macro_path'.
5521         * src/libs/libgroff/fontfile.cc: Adjust `font_path'.
5522
5523         * src/roff/troff/troff.h: Add `searchpath.h' and `mac_path'.
5524         * src/roff/troff/input.cc: Use `mac_path', initialized with
5525         `macro_path'.
5526         (process_startup_file): Set `mac_path' to `safer_macro_path'.
5527         * src/roff/troff/env.cc: Use `mac_path'.
5528
5529         * src/preproc/eqn/main.cc (main): Use `safer_macro_path'.
5530
5531         * NEWS, man/roff.man, src/roff/troff/troff.man,
5532         src/roff/groff/groff.man, tmac/groff_tmac.man, arch/djgpp/README:
5533         Updated.
5534
5535 2000-11-12  Werner LEMBERG  <wl@gnu.org>
5536
5537         * src/include/lib.h: Don't include groff-getopt.h for OSF/1.
5538
5539         * aclocal.m4 (GROFF_SYS_ERRLIST): Do test in C, not in C++.
5540         * configure.in: Fix typo in comment.
5541         * configure: Regenerated.
5542
5543         * src/libs/libgroff/*, src/include/*, src/roff/troff/*: Fixing
5544         copyright dates.
5545
5546 2000-11-08  Werner LEMBERG  <wl@gnu.org>
5547
5548         Add system tmac directory (/usr/local/lib/groff/site-tmac).
5549
5550         * Makefile.in: Add $(libdir), $(libprogramdir), and $(systemtmacdir).
5551         (uninstall_dirs): Add $(libdir), $(libprogramdir), and
5552         $(systemtmacdir).
5553         Use @libdir@.
5554         * Makefile.comm (.man.n): Add @SYSTEMMACRODIR@.
5555         * tmac/Makefile.sub (install_data): Create
5556         $(systemtmacdir) and $(localtmacdir).
5557         (uninstall_sub): Use $(systemtmacdir) for wrapper macros.
5558         * man/roff.man, src/roff/troff/troff.man, src/roff/groff/groff.man,
5559         NEWS, doc/groff.texinfo: Updated and minor fixes.
5560
5561         * Makefile.comm, Makefile.in: Added tmac_{s,an}_prefix stuff again.
5562         * tmac/Makefile.sub: Added `wrap' stuff again, but installing into
5563         $(systemtmacdir) since the wrapper files are platform-dependent.
5564
5565 2000-11-01  Werner LEMBERG  <wl@gnu.org>
5566
5567         * doc/groff.texinfo: Fix typo.
5568
5569 2000-10-26  Werner LEMBERG  <wl@gnu.org>
5570
5571         Convert macros `tmac.XXX' to `XXX.tmac'.  Special cases:
5572           tmac.doc.old -> doc-old.tmac
5573           tmac.an.old  -> an-old.tmac
5574
5575         * tmac/tmac.*: Moved to ...
5576         * tmac/*.tmac: this.
5577         * tmac/man.local: Fix comment.
5578         * tmac/groff_man.man, tmac/groff_markup.man, tmac/groff_mdoc.man,
5579         tmac/groff_me.man, tmac/groff_ms.man, tmac/groff_tmac.man: Updated. 
5580         Added some `FILES' sections.  More use of @...@ directives.  Other
5581         minor updates.
5582         * arch/djgpp/README, font/devutf8/NOTES: Updated.
5583         * doc/homepage.ms, doc/groff.texinfo: Updated.
5584         * man/groff.man, man/roff.man: Updated.
5585         * src/devices/grodvi/grodvi.man, src/devices/grolbp/grolbp.man,
5586         src/devices/grolj4/grolj4.man, src/devices/grops/grops.man,
5587         src/devices/grotty/grotty.man: Updated.
5588         * src/preproc/pic/pic.man: Updated.
5589         * src/roff/grog/grog.pl, src/roff/grog/grog.sh: Use -mdoc-old
5590         instead of -mdoc.old.
5591         * src/roff/grog/grog.man: Document -mdoc and -mdoc-old.
5592         * src/roff/nroff/nroff.man: Updated.
5593         * NEWS: Updated.
5594
5595         * tmac/fixmacros.sed, tmac/strip.sed: Add explanatory comment.
5596
5597         * tmac/mm.diff: Removed -- it has no use now since the mm package
5598         is part of groff.
5599
5600         * tmac/*: Removed trailing spaces.
5601
5602         * arch/djgpp/t-groff.bat: Fix GROFF_TMAC_PATH (hyphen.us is now in
5603         the tmac subdirectory also).
5604
5605         * Makefile.comm, Makefile.in: Remove tmac_{s,an}_prefix stuff.
5606         * tmac/Makefile.sub: Adapted to new macro names; removed `wrap'
5607         stuff since it is no longer needed.
5608
5609         * README, PROBLEMS: Updated.
5610
5611 2000-10-25  Werner LEMBERG  <wl@gnu.org>
5612
5613         Invert current behaviour: Search first FOOBAR.tmac, then
5614         tmac.FOOBAR.
5615
5616         * src/roff/troff/input.cc: Introduce MACRO_POSTFIX.
5617         (open_mac_file, macro_source): Implement it.
5618         * src/roff/troff/troff.man, tmac/groff_tmac.man, man/roff.man,
5619         doc/groff.texinfo, NEWS: Document it.
5620
5621         * src/roff/nroff/nroff.man, src/roff/groff/groff.man, man/groff.man:
5622         Small documentation improvements.
5623
5624         * test-groff: Fix GROFF_TMAC_PATH (hyphen.us is now in the tmac
5625         subdirectory also).
5626
5627         * font/devps/Makefile.sub: Fix rules for dingbats.*map.
5628
5629 2000-10-24  Werner LEMBERG  <wl@gnu.org>
5630
5631         Add local tmac directory (groff/site-tmac).
5632
5633         * Makefile.in: Add $(localtmacdir).
5634         (uninstall_dirs): Add $(localtmacdir).
5635         * Makefile.comm (.man.n): Add @LOCALMACRODIR@.
5636         * tmac/Makefile.sub (install_data, uninstall_sub): Handle man.local
5637         in $(localtmacdir).  Create $(localtmacdir).
5638         * man/roff.man, src/roff/troff/troff.man, NEWS, doc/groff.texinfo:
5639         Updated and minor fixes.
5640
5641         Rename font/devps/generate/dingbats[r]map to dingbats.[r]map.
5642
5643         * font/devps/generate/Makefile.sub, arch/djgpp/README: Adjust.
5644
5645 2000-10-23  Werner LEMBERG  <wl@gnu.org>
5646
5647         Move hyphen.us to tmac directory.
5648
5649         * src/roff/troff/hyphen.us: Removed.
5650         * src/tmac/hyphen.us: Added.
5651         * src/roff/troff/Makefile.sub, tmac/Makefile.sub: Updated.
5652
5653         Change installation structure for data files from .../groff/... to
5654         .../groff/<version><revision>/... to be conform with other GNU
5655         programs.
5656
5657         * Makefile.in, Makefile.comm, src/utils/indxbib/Makefile.sub,
5658         doc/Makefile: Implement it.
5659         * aclocal.m4 (GROFF_PAGE): Add test for new directory structure.
5660         * configure: Updated.
5661         * arch/djgpp/README, font/devutf8/NOTES: Use it.
5662         * NEWS: Document it.
5663         * man/roff.man, tmac/groff_tmac.man: Use @FONTPATH@, @FONTDIR@, and
5664         @MACRODIR@ instead of hard-coded directories.
5665
5666 2000-10-22  Werner LEMBERG  <wl@gnu.org>
5667
5668         Implement $GROFF_BIN_PATH environment variable (which defaults to
5669         $bindir) used for child programs of groff and similar wrappers.
5670
5671         * gendefs.sh: Improve documentation.
5672         * Makefile.comm (,man.n), src/include/Makefile.sub (defs.h),
5673         src/preproc/eqn/Makefile.sub (neqn),
5674         src/roff/nroff/Makefile.sub (nroff): Add $(bindir).
5675         * src/preproc/eqn/neqn.sh, src/roff/nroff/nroff.sh: Implement
5676         $GROFF_BIN_PATH.
5677         * src/roff/groff/groff.cc (main): Implement $GROFF_BIN_PATH and
5678         $GROFF_PATH__ (the latter for communication with troff).
5679         * src/roff/troff/input.cc (main): Use $GROFF_PATH__ for $PATH if
5680         set.
5681         * NEWS, src/roff/nroff/nroff.man, src/roff/groff/groff.man,
5682         doc/groff.texinfo: Document it.
5683
5684         * doc/groff.texinfo: Improve documentation of troff's -a option.
5685
5686 2000-10-17  Gaius Mulley  <gaius@glam.ac.uk>
5687
5688         * src/roff/troff/node.cc: Fixed calculation of opminx and fixed
5689         non-intrusive eol marker.
5690         (troff_output_file::determine_line_limits): New function.
5691         (troff_output_file::draw): Use it.
5692         * src/roff/troff/env.cc (environment::add_html_tag): Use output() +
5693         output_pending_lines() instead of output_line().
5694         * src/preproc/eqn/main.cc (do_file): Fix graphic_end().
5695         * src/preproc/html2/pre-html.cc (char_buffer::write_file_troff,
5696         createImage): Small fixes.
5697         
5698 2000-10-14  Werner LEMBERG  <wl@gnu.org>
5699
5700         Replace tmac.safer with a real secure solution.
5701
5702         * src/roff/troff/input.cc (open_request, opena_request, pipe_source,
5703         system_request, pipe_output): Disable requests if in safer mode.
5704         * src/roff/groff/groff.cc (main): Remove reference to tmac.safer.
5705         * tmac/tmac.safer, tmac/groff_msafer.man: Removed.
5706         * tmac/Makefile.sub, NEWS, man/roff.man, tmac/groff_tmac.man,
5707         doc/groff.texinfo, src/roff/groff/groff.man,
5708         src/roff/troff/troff.man, arch/djgpp/README: Updated.
5709
5710         * src/devices/grops/ps.cc (main), src/devices/grops/psrm.cc
5711         (resource_manager::output_prolog): Replace setenv() with putenv().
5712
5713 2000-10-09  Werner LEMBERG  <wl@gnu.org>
5714
5715         * src/libs/libbib/map.c, src/libs/libgroff/getcwd.c,
5716         src/libs/libgroff/strtol.c, src/preproc/html2/image.cc,
5717         src/preproc/html2/pre-html.cc, src/preproc/html2/pushbackbuffer.cc,
5718         src/roff/groff/pipeline.c: Removing `#ifndef errno' to avoid
5719         compilation errors with some compilers.  It seems that this code
5720         is no longer necessary -- if yes, it is easy to add some #ifdef's
5721         for that particular old-fashioned compiler.
5722
5723         * MORE.STUFF: Added info about Meta-tbl.
5724
5725         * doc/groff.texinfo: Added more info about `.if "..."..."'.
5726
5727 2000-10-07  Werner LEMBERG  <wl@gnu.org>
5728
5729         Adding a new escape sequence \B'...': If the string between
5730         the delimiters is a valid numeric expression, return the character
5731         `1', and `0' otherwise.  This is an analogon to \A.
5732
5733         * src/roff/troff/input.cc (do_expr_test): Implement it.
5734         (token::next): Use it.
5735         * src/roff/troff/troff.man, NEWS, man/groff.man: Document it.
5736
5737         * tmac/tmac.trace: Made independent from escape character.
5738
5739 2000-10-06  Werner LEMBERG  <wl@gnu.org>
5740
5741         Adding a new request .dei: define indirect.  The first and second
5742         parameter of .dei are taken from string registers instead directly;
5743         this very special request is needed to make tmac.trace independent
5744         from the escape character (which might even be disabled).
5745
5746         * src/roff/troff/input.cc (do_define_macro): Implement it.
5747         (define_macro_indirect): New function.
5748         (init_input_requests): Use it.
5749
5750         Adding two requests .ecs and .ecr: Save and restore the escape
5751         character.  These two requests are needed to make tmac.trace
5752         independent from the escape character (which might even be
5753         disabled).
5754
5755         * src/roff/troff/input.cc (save_escape_char, restore_escape_char):
5756         Implement it.
5757         (init_input_requests): Use it.
5758
5759         * src/roff/troff/troff.man, NEWS, man/groff.man: Updated.
5760
5761 2000-09-22  Ricardo Soares Guimarães  <ricardo@conectiva.com.br>
5762
5763         Adding a new option -P and new environment variable GROPS_PROLOGUE
5764         to grops, selecting a different prologue file (minor modifications
5765         by WL).
5766
5767         * src/devices/grops/psrm.cc (resource_manager::output_prolog),
5768         src/devices/grops/ps.cc (main): Implement it.
5769         * src/devices/grops/grops.man, NEWS: Document it.
5770
5771 2000-09-22  Werner LEMBERG  <wl@gnu.org>
5772
5773         * INSTALL: Add info about selecting paper format.
5774
5775 2000-09-21  Werner LEMBERG  <wl@gnu.org>
5776
5777         * src/roff/troff/input.cc (main): Fixing compiler warning.
5778         * src/include/{driver.h, lib.h}: Move inclusion of string.h and
5779         strings.h from the former to the latter.
5780         * src/devices/grolbp/lpb.cc, src/include/lib.h: Move strncasecmp()
5781         stuff from the former to the latter.
5782
5783 2000-09-11  Werner LEMBERG  <wl@gnu.org>
5784
5785         Implementing two new requests .tm1 and .tmc: The former is similar
5786         to .tm but can output leading spaces; its syntax is similar to
5787         defining a string, i.e., a `"' can be used to mark the beginning of
5788         the string to be written to stderr: `.tm1 " test'.  The latter is
5789         similar to .tm1 but doesn't write out a final newline character.
5790
5791         * src/roff/troff/input.cc (terminal1, terminal_continue,
5792         do_terminal): New functions.
5793         (init_input_requests): Use them.
5794         * src/roff/troff/troff.man, NEWS, man/groff.man: Updated.
5795
5796 2000-09-09  Werner LEMBERG  <wl@gnu.org>
5797
5798         * tmac/groff_mdoc.samples.man: Small fixes.
5799
5800 2000-09-08  Werner LEMBERG  <wl@gnu.org>
5801
5802         * tmac/groff_mdoc.man: Fixing typo.
5803
5804 2000-09-02  Werner LEMBERG  <wl@gnu.org>
5805
5806         Implementing a .nop request which does nothing.
5807
5808         * src/roff/troff/input.cc (nop_request): New function.
5809         (init_input_requests): Use it.
5810         * src/roff/troff/troff.man, NEWS, man/groff.man: Updated.
5811
5812 2000-09-01  Werner LEMBERG  <wl@gnu.org>
5813
5814         * doc/groff.texinfo: Added some comments.
5815
5816 2000-08-30  Werner LEMBERG  <wl@gnu.org>
5817
5818         * src/roff/troff/TODO: Updated.
5819
5820 2000-08-25  Werner LEMBERG  <wl@gnu.org>
5821
5822         * doc/groff.texinfo: Fix comment how to compile the DVI file.
5823
5824 2000-08-25  Eli Zaretskii  <eliz@is.elta.co.il>
5825
5826         * font/devps/generate/Makefile (SHELL): Define explicitly to
5827         "/bin/sh", for non-Unix platforms.
5828         (extraclean): Use a more portable "" quoting instead of a
5829         backslash (which doesn't work on DOS/Windows).
5830         
5831         * font/devlj4/generate/Makefile (extraclean): Ditto.
5832
5833         * font/devdvi/generate/Makefile (extraclean): Ditto.
5834
5835 2000-08-25  Werner LEMBERG  <wl@gnu.org>
5836
5837         * NEWS, doc/groff.texinfo, tmac/groff_tmac.man, man/roff.man,
5838         src/roff/troff/troff.man: Document Eli's latest changes.
5839
5840 2000-08-25  Eli Zaretskii  <eliz@is.elta.co.il>
5841
5842         * src/roff/troff/input.cc (open_mac_file, macro_source): Support
5843         macro file names of the form NAME.tmac as well as tmac.NAME.
5844
5845 2000-08-25  Werner LEMBERG  <wl@gnu.org>
5846
5847         * src/include/posix.h: Remove definition of FILENAME_MAX.
5848
5849         * src/preproc/html2/pre-html.h, pre-html.cc: Add return type to
5850         `sys_fatal' and `stop' function().
5851
5852         * test-groff: Updated.
5853
5854 2000-08-24  Gaius Mulley  <gaius@glam.ac.uk>
5855
5856         Added the new troff command .output <arg> to suppress output (while
5857         still obeying motion) and also the opminx, opminy, opmaxx, opmaxy
5858         registers (for passing the output dimensions to the output device).
5859
5860         * src/roff/troff/div.cc (top_level_diversion::output): Use `width'
5861         parameter.
5862         * src/roff/troff/node.h, src/roff/troff/node.cc
5863         (troff_output_file::really_print_line,
5864         ascii_output_file::really_print_line,
5865         supress_output_file::really_print_line): Use `width' parameter.
5866         (troff_output_file::really_on, troff_output_file::really_off,
5867         output_file::on, output_file::off, real_output_file::on,
5868         real_output_file::off, real_output_file::really_on,
5869         real_output_file::really_off): New functions.
5870         (real_output_file:public output_file): New variable `output_on'.
5871         (real_output_file::begin_page, real_output_file::copy_file,
5872         real_output_file::transparent_char, real_output_file::print_line):
5873         Use it.
5874         (real_output_file::print_line): Use check_output_limits.
5875         * src/roff/troff/reg.h, src/roff/troff/request.h,
5876         src/roff/troff/input.cc (assign_registers): New function to remove
5877         two `goto's.
5878         (do_ps_file): Use it.
5879         (check_output_limits, reset_output_registers, output_request,
5880         init_output_requests): New functions.
5881         (init_input_requests): Updated.
5882
5883         Added new grohtml2 device and html2 preprocessor (coding
5884         not yet finished) which will eventually replace grohtml.
5885
5886         * Makefile.in, tmac/Makefile.sub, tmac/eqnrc, tmac/troffrc-end:
5887         Updated.
5888         * src/include/htmlindicate.h, src/include/htmlindicate
5889         (html_begin_suppress, html_end_suppress): New functions.
5890         * src/preproc/tbl/main.cc: Use it.
5891         * src/roff/groff/groff.cc: Add support for html2 device (which will
5892         automatically invoke the html2 preprocessor).
5893         * src/roff/troff/input.cc (is_html2): New variable.
5894         * src/roff/troff/troff.h, src/roff/troff/env.h,
5895         src/roff/troff/env.cc (environment::add_html_tag): New function
5896         (uses `is_html2').
5897         (environment::do_break): Use it.
5898         * font/devhtml2/*: New files.
5899         * src/devices/grohtml2: New device.
5900         * src/preproc/html2: New preprocessor.
5901         * tmac/tmac.html-tags, tmac/tmac.html2: New files.
5902
5903 2000-08-23  Werner LEMBERG  <wl@gnu.org>
5904
5905         * src/devices/grolbp/lbp.cc: Same workaround for sinix as for AIX.
5906
5907 2000-08-22  Werner LEMBERG  <wl@gnu.org>
5908
5909         * src/include/lib.h: Provide a fix for IRIX to not include
5910         groff-getopt.h.
5911
5912 2000-08-18  Werner LEMBERG  <wl@gnu.org>
5913
5914         * configure.in: Don't provide an empty value for SH_SCRIPT_SED_CMD
5915         since some non-GNU sed programs can't handle null regexps.
5916         * configure, src/preproc/eqn/Makefile.sub,
5917         src/roff/grog/Makefile.sub, src/roff/nroff/Makefile.sub: Updated.
5918
5919         * src/devices/grolbp/lbp.cc: Add an AIX workaround for an autoconf
5920         bug (string.h and strings.h are both needed according to latest
5921         POSIX standard).
5922
5923         * MORE.STUFF: Added info about unroff and troffcvt.
5924
5925 2000-08-08  Werner LEMBERG  <wl@gnu.org>
5926
5927         * tmac/tmac.a4: Will now work with ms macros also; -ma4 should be
5928         used before -ms.
5929
5930         * tmac/tmac.man.old: Remove unused number register.
5931
5932         * tmac.doc: Minor documentation fix.
5933
5934 2000-08-07  Paul Eggert  <eggert@twinsun.com>
5935
5936         * src/roff/groff/pipeline.c (is_system_shell):
5937         Fix typo: "monocased_shell" no longer exists.
5938
5939 2000-08-07  Paul Eggert  <eggert@twinsun.com>
5940
5941         Remove FILENAME_MAX limits.
5942
5943         * src/roff/groff/pipeline.c (is_system_shell): Do not assume
5944         that the argument length is less than FILENAME_MAX.
5945         * src/libs/libgroff/tmpfile.cc (add_tmp_file): Likewise.
5946         Use struct hack to allocate and free file name.
5947         (struct xtmpfile_list): fname is now part of the structure,
5948         not a pointer to another string.
5949
5950 2000-08-07  Tom Schmidt  <tschmidt@micron.com>
5951
5952         * src/include/posix.h: Add a default value for FILENAME_MAX.
5953
5954 2000-08-06  Paul Eggert  <eggert@twinsun.com>
5955
5956         Add support for new BSD-style man pages (with ".Dd" instead of
5957         ".TH"), so that "groff -man" understands both styles, even
5958         when running "groff -man" on a host whose system man page
5959         macros don't support ".Dd".
5960
5961         * tmac/Makefile.sub (NORMALFILES): Add tmac.an.old.
5962         (stamp-wrap): Source tmac.andoc first when wrapping man macros,
5963         in case the system man macros don't define Dd or TH.
5964
5965         * tmac/tmac.an.old: Renamed from tmac/tmac.an.
5966         * tmac/tmac.an: New one-line file.
5967         * tmac/tmac.andoc (TH): Adjust to the tmac.an.old file renaming.
5968
5969 2000-08-06  Werner LEMBERG  <wl@gnu.org>
5970
5971         * src/roff/troff/troff.man: Fixing typos.
5972
5973 Version 1.16.1 released
5974 =======================
5975
5976 2000-07-31  Werner LEMBERG  <wl@gnu.org>
5977
5978         Preparing release 1.16.1.
5979
5980         * REVISION: Revision number set to 1.
5981         * MORE.STUFF: Added info about port to DOS.
5982         * NEWS, win32-diffs: Updated.
5983
5984         * src/include/nonposix.h: Remove first line -- this file is used
5985         in C also.
5986
5987         * Makefile.in (dist): Delete Imakefile earlier to avoid a soft
5988         link to it.
5989
5990 2000-07-30  Werner LEMBERG  <wl@gnu.org>
5991
5992         * doc/texinfo.tex: Update to latest version.
5993
5994 2000-06-28  Paul Eggert  <eggert@twinsun.com>
5995
5996         * Makefile.in (ENVSETUP): Don't assume POSIX make semantics for
5997         commands that fail.  Don't assume that "export a=b" is valid shell
5998         syntax.  This is needed for Solaris 2.5.1.
5999
6000         * src/libs/libgroff/tmpfile.cc, src/utils/indxbib/indxbib.cc: Fix
6001         comment about missing Solaris headers.
6002
6003         * PROBLEMS: Add section about problems with Sun Make and VPATH.
6004
6005 2000-06-25  Werner LEMBERG  <wl@gnu.org>
6006
6007         * src/devics/grodvi/dvi.cc: Replace _setmode() (for MSC) with
6008         SET_BINARY().
6009
6010         * src/include/posix.h: Use HAVE_UNISTD instead of _MSC_VER.
6011
6012         * win32-diffs: Updated.
6013         * README.WIN32: Added CRs to make all Windows editors happy.
6014
6015         * src/roff/troff/node.cc: Added WIFSIGNALED() macro (copied from
6016         src/roff/groff/pipeline.c).
6017
6018 2000-06-23  Eli Zaretskii  <eliz@is.elta.co.il>
6019
6020         * src/roff/grog/Makefile.sub (grog): Prepend `-e' to
6021         $(SH_SCRIPT_SED_CMD), for the case where its value is empty.
6022
6023 2000-06-17  Eli Zaretskii  <eliz@is.elta.co.il>
6024
6025         * src/utils/tfmtodit/tfmtodit.cc: #include nonposix.h.
6026         (tfm::load, gf::load): Open tfm and gf files in binary mode: these
6027         are binary files.
6028         (main): Support non-Posix systems with several different styles of
6029         slash characters in file names.
6030
6031         * src/utils/pfbtops/pfbtops.c: #include nonposix.h.
6032         (main) [SET_BINARY]: Switch stdin into binary mode.
6033
6034         * src/utils/indxbib/indxbib.cc: #include nonposix.h.
6035         (main): Support file names with several possible slash-type
6036         characters, as given by DIR_SEPS[] in nonposix.h.
6037         (main) [__MSDOS__]: If renaming the temporary index file fails
6038         because it has more than one dot in its trunk, replace the dot
6039         with an underscore and try again.
6040         (do_file): Use FOPEN_RB instead of "r".  Skip every CR before a
6041         Newline.
6042         [__MSDOS__ || _MSC_VER]: Stop at the first ^Z character.
6043
6044         * src/utils/hpftodit/hpftodit.cc: #include nonposix.h.
6045         (File::File): Open the input file in binary mode.  Strip CR
6046         characters from each CR-LF pair.
6047         (xbasename): Support file names with several possible slash-type
6048         characters, as given by DIR_SEPS[] in nonposix.h.
6049
6050         * src/include/Makefile.sub (HDRS): Add nonposix.h.
6051
6052         * src/roff/troff/node.cc [HAVE_UNISTD_H]: Include <unistd.h>.
6053         (WIFEXITED, WEXITSTATUS, WTERMSIG, WIFSTOPPED, WSTOPSIG)
6054         [!_POSIX_VERSION]: Define for traditional Unix systems.
6055         (real_output_file::real_output_file): Remove the MSVC-specific
6056         call to popen, use instead POPEN_WT, appropriately defined on
6057         nonposix.h.  #include nonposix.h.
6058         (real_output_file::~real_output_file): Remove the MSVC-specific
6059         call to pclose, a suitable macro is now defined on nonposix.h.
6060         Use the portable macros WIFEXITED, WIFSIGNALED, WTERMSIG, WSTOPSIG
6061         and WEXITSTATUS instead of assuming traditional Unix
6062         interpretation of the status returned by pclose.
6063
6064         * src/roff/troff/input.cc (pipe_source): Remove the MSVC-specific
6065         call to popen, use POPEN_RT instead (appropriately defined on
6066         nonposix.h).  #include nonposix.h.
6067         (ps_bbox_request): Open the PostScript file in binary mode.
6068         Close the file after processing it.
6069         (getpid) [_MSC_VER]: Remove; a suitable macro is now defined on
6070         nonposix.h.
6071
6072         * src/roff/groff/pipeline.c (run_pipeline) [__MSDOS__ || _WIN32]:
6073         A version of run_pipeline that doesn't use `fork'.
6074         (signal_catcher) [__MSDOS__ || _WIN32]: New function.
6075         (system_shell_name, system_shell_dash_c)
6076         (is_system_shell) [__MSDOS__ || _WIN32]: New functions, to hide
6077         the ugliness of testing DOS/Windows file names for equality, and
6078         support both stock shells and ports of Unix shells.
6079
6080         * src/roff/groff/groff.cc: #include nonposix.h.
6081         (BSHELL): Definition moved to nonposix.h.
6082         (main): Use PATH_SEP[0] instead of literal ':'.  Use BSHELL_DASH_C
6083         instead of a literal "-c".
6084         (xbasename): Support file names with several possible slash-type
6085         characters, as given by DIR_SEPS[] in nonposix.h.
6086         (possible_command::print): Use BSHELL_DASH_C and IS_BSHELL instead
6087         of literal strings.
6088
6089         * src/preproc/soelim/soelim.cc: #include nonposix.h.
6090         (do_file): Use IS_ABSOLUTE instead of testing for a literal '/'.
6091
6092         * src/preproc/pic/Makefile.sub (YTABH): Change pic.tab.h to
6093         pic_tab.h.
6094
6095         * src/preproc/pic/lex.cc: Change pic.tab.h to pic_tab.h.
6096
6097         * src/preproc/eqn/Makefile.sub (YTABH): Rename eqn.tab.h to
6098         eqn_tab.h.
6099
6100         * src/preproc/eqn/lex.cc: #include eqn_tab.h, not eqn.tab.h.
6101
6102         * src/libs/libgroff/tmpfile.cc (DEFAULT_TMPDIR) [P_tmpdir]: If
6103         P_tmpdir is defined, use it instead of the literal "/tmp".
6104         (remove_tmp_files, add_tmp_file): New functions.
6105         (xtmpfile): Record temporary files and register an atexit function
6106         to delete them explicitly, instead of relying on the OS to do
6107         that, which doesn't work on non-Unix systems.
6108
6109         * src/libs/libgroff/searchpath.cc: #include nonposix.h.
6110         (search_path::search_path): Use PATH_SEP instead of a literal
6111         colon.
6112         (search_path::command_line_dir): Ditto.
6113         (search_path::open_file): Use IS_ABSOLUTE, PATH_SEP and DIR_SEPS,
6114         to support non-Posix systems.
6115
6116         * src/libs/libbib/search.cc: #include nonposix.h.
6117         (search_list::add_file): Open the file in binary mode.
6118
6119         * src/libs/libbib/linear.cc: #include nonposix.h.
6120         (file_buffer::load): Remove \r characters preceding \n from the
6121         loaded buffer.
6122
6123         * src/libs/libbib/index.cc: #include nonposix.h.
6124         (make_index_search_item): Open index_filename in O_BINARY mode.
6125         (index_search_item_iterator::get_tag): Ditto.  Remove \r
6126         characters before \n characters.
6127         (index_search_item::check_files): Open files in binary mode.
6128         (index_search_item::munge_filename): Support DOS-style file names
6129         with backslashes and drive letters, use IS_ABSOLUTE.
6130
6131         * src/devices/grops/ps.cc: #include nonposix.h.
6132         (main) [SET_BINARY]: Switch stdout to binary mode.
6133
6134         * src/devices/grolj4/lj4.cc: #include nonposix.h.
6135         (main) [SET_BINARY]: Switch stdout to binary mode.
6136
6137         * src/devices/grolbp/lbp.cc: #include nonposix.h
6138         (fill_pattern) [SET_BINARY]: Switch stdout to binary mode.
6139
6140         * src/devices/grodvi/dvi.cc: #include nonposix.h.
6141         [_MSC_VER]: Remove inclusion of Windows-specific headers (done by
6142         nonposix.h).
6143         (main) [SET_BINARY]: Switch stdout to binary mode.
6144         [_MSC_VER]: Remove an explicit call to _setmode.
6145
6146         * src/include/nonposix.h: New file.
6147
6148         * Makefile.in (ENVSETUP): New variable, to set up case-sensitive
6149         operation when building with DJGPP.
6150         ($(TARGETS), dot, $(LIBDIRS), $(CPROGDIRS), $(CCPROGDIRS))
6151         ($(DEVDIRS), $(TTYDEVDIRS), $(INCDIRS), $(OTHERDIRS)): Use
6152         ENVSETUP.
6153
6154         * Makefile.comm: mv y.tab.[ch] to y_tab.[ch], to make it work on
6155         MS-DOS.
6156         (.man.n): Replace `;' with `|', since FONTPATH, MACROPATH,
6157         etc. can include a semi-colon on DOS/Windows.
6158         (depend.temp): Use depend1.temp instead of depend.temp1, to
6159         prevent files from overerwiting each other on 8+3 filesystems.
6160
6161         * gendef.sh (t): Change definition to work with DOS/Windows.
6162
6163         doc/groff.texinfo: Apart of some typo corrections, I also changed
6164         some index entris, to make them more non-ambiguous, and also put
6165         @ignore around some parts that are not yet written, to allow the
6166         Info output be readable.
6167
6168 2000-06-10  Gael Queri  <gqueri@mail.dotcom.fr>
6169
6170         Replaced specific checks for function declarations with a generic
6171         routine taken from GNU bfd.
6172
6173         * aclocal.m4 (GROFF_NEED_DECLARATION): New function.
6174         GROFF_PUTENV, GROFF_POPEN, GROFF_PCLOSE, GROFF_HYPOT: Removed.
6175         * configure.in: Use it.
6176         * src/devices/grolbp/lbp.cc, src/include/lib.h,
6177         src/preproc/grn/hgraph.cc, src/preproc/pic/pic.h,
6178         src/roff/groff/groff.cc: Use it.
6179         * Makefile.in, configure: Updated.
6180
6181 2000-06-07  Paco Andrés Verdú  <pandres@dragonet.es>
6182
6183         * src/devides/grolbp/lbp.h: Removed unused variables.
6184
6185 2000-05-31  Keith Thompson  <kst@sdsc.edu>
6186
6187         * src/devices/grolbp/lbp.cc (set_papersizes): Add declaration of
6188         strncasecmp().
6189
6190 2000-05-31  Werner LEMBERG  <wl@gnu.org>
6191
6192         * aclocal.m4 (GROFF_SRAND): New function to test the return value
6193         of srand() -- at least SunOS 4.1.3 uses `int' instead of `void'.
6194         * configure.in: Use it.
6195         * src/preproc/pic/pic.y, src/preproc/pic/pic.cc: Use it.
6196         * configure, Makefile.in: Updated.
6197
6198         * configure.in: Add test for strncasecmp().
6199         * src/include/lib.h: Use it.
6200
6201 2000-05-29  Andrej Borsenkow  <Andrej.Borsenkow@mow.siemens.ru>
6202
6203         * src/preproc/grn/Makefile.sub: Add MLIB.
6204
6205 2000-05-29  Nix  <nix@esperi.demon.co.uk>
6206
6207         * Makefile.in: Use @datadir@ and @mandir@ appropriately.
6208
6209 2000-05-29  Werner LEMBERG  <wl@gnu.org>
6210
6211         * src/roff/grog/Makefile.sub, src/roff/grog/grog.sh: Add `@g@'.
6212
6213         * PROBLEMS: Small update.
6214
6215         * src/devices/grolbp/lbp.cc: Various small fixes.
6216
6217 2000-05-28  Keith Thompson  <kst@sdsc.edu>
6218
6219         * src/roff/nroff/nroff.sh: Fix main loop syntax.
6220
6221         * src/utils/indxbib/indxbib.cc: Add declaration of mkstemp().
6222
6223 2000-05-25  Werner LEMBERG  <wl@gnu.org>
6224
6225         * man/roff.man: Removed unused macro.
6226
6227 2000-05-24  Werner LEMBERG  <wl@gnu.org>
6228
6229         * Makefile.in (dist): Remove src/xditview/Imakefile explicitly. 
6230         This is needed e.g. if you do
6231         `make distclean; ./configure; make dist'.
6232
6233 Version 1.16 released
6234 =====================
6235
6236 2000-05-23  Werner LEMBERG  <wl@gnu.org>
6237
6238         Adding font CWI (constant width italic) to devdvi.
6239
6240         * font/devdvi/CWI: New file.
6241         * font/devdvi/generate/Makefile: Add generating rule.
6242         * font/devdvi/DESC.in, font/devdvi/Makefile.sub, win32-diffs,
6243         tmac/tmac.dvi: Use it.
6244         * NEWS: Announce it.
6245
6246         * font/devlj4/*: Regenerated (only adding kernings for `cq' glyph).
6247         * font/devlj4/generate/Makefile: Cosmetic changes only.
6248
6249         * man/groff.man: Removed most of the redundant description of
6250         special characters (which is in groff_char.man).  Added font
6251         translation CB->CR for devdvi.  Other minor fixes.
6252
6253         * tmac/tmac.dvi: Improved appearance of \(co (copyright) and \(rg
6254         (registered) symbols.
6255
6256 2000-05-22  Werner LEMBERG  <wl@gnu.org>
6257
6258         * doc/Makefile: Added rule for creating info files.
6259
6260         * font/devdvi/*: Added kernings for `cq' glyph.  Updated to latest
6261         AMS font metrics.
6262         * font/devdvi/generate/Makefile: Fixed dependencies.
6263
6264         * font/devps/*: Regenerated.  Heavy changes for Bookman and
6265         NewCentury Schoolbook!
6266         * font/devps/generate/afmname: Will now run with GNU awk.
6267         * font/devps/generate/textmap: Added forgotten `cq' glyph name.
6268         * font/devps/generate/Makefile: Cosmetic changes only.
6269
6270 2000-05-21  Werner LEMBERG  <wl@gnu.org>
6271
6272         * tmac/tmac.an: Added a new command line option `-rSxx' (`xx' can be
6273         10, 11, or 12) to support output with 11pt and 12pt base font sizes. 
6274         `.SS' now produces a heading with a smaller size than `.SH'. 
6275         Completely formatted.
6276         * doc/groff.texinfo, tmac/groff_man.man, NEWS: Document it.
6277
6278         * man/groff.man: Improved table appearance.  Use of `eo' request
6279         to reduce number of doubled backslashes in macro definitions.
6280         Replacing `\e' with `\(rs'.  Other minor fixes.
6281
6282         * src/preproc/tbl/main.cc: Insert HTML table end tag before `lf'
6283         to have correct line number.
6284
6285         * INSTALL: Small improvement.
6286
6287 2000-05-20  Bernd Warken  <bwarken@mayn.de>
6288
6289         * man/roff.man, tmac/groff_tmac.man: Updates (with corrections by
6290         WL).
6291
6292 2000-05-19  Bernd Warken  <bwarken@mayn.de>
6293
6294         * man/groff.man: Complete update (with a lot of corrections by WL).
6295
6296 2000-05-18  Werner LEMBERG  <wl@gnu.org>
6297
6298         Adding `cq' (PS name `quoteright') glyph name as an alias for "'".
6299
6300         * font/*/*: Implement it.
6301         * man/groff_char.man, NEWS: Document it.
6302
6303         * src/include/unix.h: Removed.  It isn't used.
6304
6305         * doc/groff.texinfo: Slight improvements.
6306
6307 2000-05-17  Werner LEMBERG  <wl@gnu.org>
6308
6309         * README, win32-diffs: Small fixes and improvements.
6310
6311 2000-05-16  Werner LEMBERG  <wl@gnu.org>
6312
6313         * FDL: New file (the Free Documentation License version 1.1).
6314
6315         * doc/groff.texinfo: Added many start-up values for gtroff.
6316         Some structural improvements of the source code.
6317
6318 2000-05-15  Werner LEMBERG  <wl@gnu.org>
6319
6320         * src/roff/troff/input.cc: Added small comment about troffrc-end.
6321         * src/roff/troff/troff.man: Added info about troffrc-end.
6322
6323 2000-05-14  Werner LEMBERG  <wl@gnu.org>
6324
6325         * Makefile.in (EXTRADIRS): Fix typos.
6326         (dist): Handle deletion of old .tar.gz file correctly.
6327         (DISTDIRS): Include all tty output devices.
6328
6329         * doc/groff.texinfo: Adding more cross references; countless other
6330         fixes.
6331
6332 2000-05-13  Werner LEMBERG  <wl@gnu.org>
6333
6334         * MORE.STUFF: Added Robert Marks's utilities.
6335
6336 2000-05-12  Werner LEMBERG  <wl@gnu.org>
6337
6338         Added win32 port contributed by Blake McBride
6339         <blake@florida-software.com>.
6340
6341         * README.WIN32, win32-diffs: New files.
6342         * NEWS: Updated.
6343
6344         * src/preproc/grn/hgraph.cc (HGSetBrush): Replace `%lf' with `%f'.
6345         (tmove, tmove2): Added parentheses to avoid compiler warnings.
6346         (change): Removed unused variables.
6347
6348         * src/preproc/grn/main.cc (main, conv): Removed unused variables.
6349         (savebounds): Changed return value from `int' to `void'.
6350         * src/preproc/grn/hdb.cc: Ditto.
6351
6352         * src/devices/grolbp/lbp.cc (lbp_printer::draw): Removed superfluous
6353         final backslash in comment to avoid compiler warning.
6354
6355         * src/utils/pfbtops/pfbtops.c: Added `getopt.h'.
6356
6357         * doc/groff.texinfo: More fixes.
6358
6359 2000-05-11  OKAZAKI Tetsurou  <okazaki@be.to>
6360
6361         * tmac/tmac.doc: Documentation fix.
6362
6363 2000-05-11  Werner LEMBERG  <wl@gnu.org>
6364
6365         * doc/groff.texinfo: Reading the source code shows up a lot of
6366         omissions and incorrect data...  More conversion to @Deffn macros.
6367
6368 2000-05-10  Werner LEMBERG  <wl@gnu.org>
6369
6370         * src/roff/troff/reg.cc (number_value_to_ascii): Remove ASCII
6371         dependency.
6372
6373         * src/roff/troff/request.h: Removing unused `no_break_flag'.
6374
6375 2000-05-09  Werner LEMBERG  <wl@gnu.org>
6376
6377         * man/groff.man, man/roff.man, tmac/groff_tmac.man: Minor
6378         improvements.
6379
6380         * doc/groff.texinfo: Extended history section.  More conversion to
6381         @Deffn macros.  More .tr documentation.
6382
6383 2000-05-07  Werner LEMBERG  <wl@gnu.org>
6384
6385         * doc/groff.texinfo: Completed tab section.  Added info about
6386         fields.
6387
6388 2000-05-06  Mike MacIsaac  <mikemac@us.ibm.com>
6389
6390         * PROBLEMS: Describe configure script fix for OS/390 Unix.
6391
6392 2000-05-05  Werner LEMBERG  <wl@gnu.org>
6393
6394         * font/devdvi/DESC.in: Change size 11pt to 10.95pt (as used in
6395         LaTeX 2e).
6396         * NEWS: Document it.
6397
6398         * man/troff.man: Minor optical improvements.
6399
6400 2000-05-03  Werner LEMBERG  <wl@gnu.org>
6401
6402         Adding `dq' (PS name `quotedbl') glyph name as an alias for `"'.
6403
6404         * font/*/*: Implement it.
6405         * man/groff_char.man, NEWS: Document it.
6406
6407 2000-05-02  Werner LEMBERG  <wl@gnu.org>
6408
6409         * tmac/groff_tmac.man, man/groff.man, man/roff.man: Fixing @MANxEXT@
6410         expansion.
6411         * NEWS: Document the three new man pages.
6412
6413         * aclocal.m4 (GROFF_CXX_CHECK): Removing obsolete AC_C_CROSS call.
6414         * configure: Updated.
6415
6416         * font/devcp1047/R.proto: Fixing fatal bug (a missing `"' character).
6417
6418 2000-05-01  Werner LEMBERG  <wl@gnu.org>
6419
6420         Added grap support to grog.
6421
6422         * src/roff/grog/grog.sh, src/roff/grog/grog.pl: Implement it.
6423         * src/roff/grog/grog.man: Document it.
6424
6425         * doc/groff.texinfo, NEWS: Add info about grap support.
6426
6427         Add new man pages comptributed by Bernd Warken <bwarken@mayn.de>
6428         (with slight fixes by me).
6429
6430         * tmac/groff_tmac.man: New file documenting tmac mechanism.
6431         * tmac/Makefile.sub: Add groff_tmac.man.
6432         * man/roff.man: New file giving overview of roff system.
6433         * man/troff.man: A short reference of troff.
6434         * man/Makefile.sub: Add roff.man and troff.man.
6435
6436 2000-04-30  Werner LEMBERG  <wl@gnu.org>
6437
6438         Added grap support to groff.
6439
6440         * src/roff/groff/groff.cc: Implement it.
6441         * src/roff/groff/groff.man: Document it.
6442
6443         * src/devices/grotty/grotty.man: Add cp1047 device.
6444         * src/preproc/eqn/eqn.man, src/preproc/eqn/neqn.sh, tmac/eqnrc:
6445         Ditto.
6446         * src/roff/groff/groff.man: Ditto.
6447         * src/roff/nroff/nroff.sh, src/roff/nroff/nroff.man: Ditto.
6448         * doc/groff.texinfo: Ditto.
6449
6450         * tmac/troffrc: Fix mapping of latin-1 char 160 (non-breakable space)
6451         for cp1047.
6452
6453 2000-04-29  Werner LEMBERG  <wl@gnu.org>
6454
6455         * man/groff_char.man: Add `pc' glyph.
6456         * tmac/tmac.latin1: Replacing `md' glyph with `pc'.
6457         * tmac/tmac.tty: Add `pc' glyph.
6458         * tmac/tmac.tty-char: Use/add `pc' glyph.  Don't call tmac.latin1 if
6459         we use cp1047 output device.
6460
6461         * Makefile.in, aclocal.m4: Don't build utf8 on EBCDIC hosts since
6462         there are still hardcoded latin1->unicode values in utf8's font
6463         definition files.
6464         * configure: Updated.
6465         * NEWS: Minor clarification.  Updated.
6466
6467         * PROBLEMS: Formatted.  Added info about C++ fix pack for OS/390
6468         Unix.
6469
6470 2000-04-28  Werner LEMBERG  <wl@gnu.org>
6471
6472         Adding EBCDIC code page 1047.
6473
6474         * font/devcp1047/R.proto, font/devcp1047/Makefile.sub,
6475         font/devcp1047/DESC.proto: New files.
6476
6477         * aclocal.m4 (GROFF_EBCDIC): Introduce TTYDEVDIRS which can be
6478         either ascii/latin1 or cp1047.
6479         * Makefile.in: Use it.
6480         * configure: Updated.
6481
6482         Replacing and/or adding `md' (mathdot) glyph with `pc'
6483         (periodcentered) in all text fonts.
6484
6485         * font/*/*: Change it.
6486
6487 2000-04-27  Werner LEMBERG  <wl@gnu.org>
6488
6489         * aclocal.m4 (GROFF_OS390): Fixing compiler flags.
6490
6491         * configure.in: Add check for strings.h.
6492         * src/include/driver.h: Use HAVE_STRINGS_H.
6493         * src/devices/grolbp/lpb.cc: Remove string.h.
6494
6495         * src/include/groff-getopt.h: New file.  It will be used instead of
6496         getopt.h (to be included in lib.h) to avoid endless problems with
6497         picky C++ compilers.
6498         * src/include/lib.h: Use groff-getopt.h.
6499         * src/include/Makefile.sub: Updated.
6500
6501         * configure: Updated.
6502         * Makefile.in: Updated.
6503
6504         * NEWS: Mention EBCDIC support.
6505
6506 2000-04-26  Werner LEMBERG  <wl@gnu.org>
6507
6508         * TODO: Some additions.
6509
6510 2000-04-25  Werner LEMBERG  <wl@gnu.org>
6511
6512         * src/roff/troff/troff.man, doc/groff.texinfo: Fixing documentation
6513         of mso request.
6514
6515 2000-04-23  Werner LEMBERG  <wl@gnu.org>
6516
6517         * src/roff/troff/troff.man: Minor fixes.
6518
6519 2000-04-22  Werner LEMBERG  <wl@gnu.org>
6520
6521         * src/roff/troff/troff.man, doc/groff.texinfo, NEWS: Document the
6522         `.T' string register and the incompatible definition of the `.T'
6523         number register (compared to Unix troff).
6524
6525         * man/groff_char.man: Add some missing characters.
6526         * font/devutf8/NOTES: Update.
6527
6528 2000-04-21  Werner LEMBERG  <wl@gnu.org>
6529
6530         * src/include/htmlindicate.h, src/include/lib.h,
6531         src/include/posix.h: Fix copyright.
6532
6533         * src/include/Makefile.sub: Update.
6534
6535 2000-04-20  Werner LEMBERG  <wl@gnu.org>
6536
6537         * src/roff/troff/input.cc (input_char_description): Removing
6538         superfluous space char.
6539
6540         * tmac/tmac.X: Fix typo \(bq -> \(Bq.
6541
6542         * doc/groff.texinfo: Document EBCDIC.
6543
6544 2000-04-19  Werner LEMBERG  <wl@gnu.org>
6545
6546         Introducing `shc' as the glyph name for the soft hyphen character.
6547
6548         * tmac/tmac.tty, tmac/tmac.latin1, tmac/tmac.html,
6549         font/devlatin1/R.proto: Use it.
6550
6551         * NEWS: Updated.
6552
6553 2000-04-18  Werner LEMBERG  <wl@gnu.org>
6554
6555         * src/devices/grops/ps.cc (ps_printer::flush_sbuf): Removing
6556         dependency on ASCII order.
6557
6558 2000-04-16  Sandor BARANY  <S.Barany@infosys.tuwien.ac.at>
6559
6560         * src/libs/libgroff/illegal.c: Added EBCDIC table.
6561         * src/roff/troff/input.cc: Added adaptation to EBCDIC.
6562
6563         * src/preproc/refer/refer.cc, src/roff/troff/env.cc: Minor changes
6564         to increase portability.
6565
6566 2000-04-15  Werner LEMBERG  <wl@gnu.org>
6567
6568         * aclocal.m4: Added GROFF_EBCDIC and GROFF_OS390 tests.
6569         Redefined AC_OUTPUT_MAKE_DEFS to replace ASCII character `012' with
6570         the generic `\n' if under OS/390 Unix.
6571
6572         * configure.in: Call GROFF_EBCDIC and GROFF_OS390.
6573
6574         * configure: Regenerated.
6575
6576 2000-04-14  Werner LEMBERG  <wl@gnu.org>
6577
6578         * doc/groff.texinfo: More conversions to @Deffn.
6579
6580 2000-04-12  Werner LEMBERG  <wl@gnu.org>
6581
6582         * tmac/tmac.psfig: Fix incorrect use of `&' operator by replacing it
6583         with `:'.
6584
6585         * src/roff/nroff/nroff.man: Add note about tmac.tty-char.
6586
6587 2000-04-10  Werner LEMBERG  <wl@gnu.org>
6588
6589         * doc/groff.texinfo: More conversions to @Deffn.
6590
6591 2000-04-08  Werner LEMBERG  <wl@gnu.org>
6592
6593         * src/libs/libgroff/{getopt.c,getopt1.c}, src/include/getopt.h:
6594         Updated to latest version (glibc 2.1.3).
6595
6596 2000-04-07  Werner LEMBERG  <wl@gnu.org>
6597
6598         * doc/Makefile (clean): Include more index files.
6599         Add rule texinfo->dvi.
6600
6601 2000-04-05  Werner LEMBERG  <wl@gnu.org>
6602
6603         * doc/groff.texinfo: Added new index `op' for operators.  More
6604         info on end of sentence characters.  More use of @Deffn.
6605
6606 2000-03-30  Werner LEMBERG  <wl@gnu.org>
6607
6608         * */*.man: Adding a note that a whitespace can be inserted between
6609         a command line option and its parameter -- we are using GNU getopt.
6610
6611         * src/roff/groff/groff.man: Add example of `-m mandoc'.
6612
6613 2000-03-28  Werner LEMBERG  <wl@gnu.org>
6614
6615         Correct anachronism of calling the man macro file with `-man'
6616         instead of `-m man' etc.
6617
6618         * tmac/tmac.man, tmac/tmac.mandoc, tmac/tmac.markup, tmac/tmac.mdoc,
6619         tmac/tmac.me, tmac/tmac.ms: New files tmac.m<package> which simply
6620         load tmac.<package>.
6621
6622         * tmac/Makefile.sub: Updated.  Take care of $(tmac_an_prefix) etc.
6623
6624         * NEWS: Updated.
6625
6626         * doc/groff.texinfo: Updated.
6627
6628         * tmac/groff_man.man: Copyright added.
6629
6630 2000-03-27  Werner LEMBERG  <wl@gnu.org>
6631
6632         * doc/groff.texinfo: Introducing macros `Deffn' and `Defmac' to
6633         typeset the request resp. escape name with a tt font -- due to a
6634         bug in texinfo.tex it is necessary to use the `-e' switch with
6635         texi2dvi.
6636
6637         Improving info about usage of groff units.
6638
6639         Other minor fixes.
6640
6641 2000-03-20  Werner LEMBERG  <wl@gnu.org>
6642
6643         * doc/groff.texinfo: Added section about man macro package
6644         (I've basically taken groff_man.man).  Introducing new indices `ma'
6645         for macros/strings and `gl' for glyph names.  Other minor fixes.
6646
6647         * tmac/groff_man.man: Fixed some typos.
6648
6649 2000-03-19  Werner LEMBERG  <wl@gnu.org>
6650
6651         * doc/groff.texinfo: Removed all occurrences of `you', `we', etc.
6652         Other minor fixes.
6653
6654         * doc/texinfo.tex: New file.
6655
6656 2000-03-18  Werner LEMBERG  <wl@gnu.org>
6657
6658         * doc/groff.texinfo: Improved section on number registers.  Other
6659         minor updates.
6660
6661 2000-03-16  Werner LEMBERG  <wl@gnu.org>
6662
6663         * src/roff/groff/groff.man: Added info about grolbp.  Make nicer
6664         synopsis.
6665
6666         * src/devices/grolbp/grolbp.man, src/roff/nroff/nroff.man,
6667         src/devices/grolj4/grlj4.man, src/devices/grops/grops.man,
6668         src/preproc/eqn/eqn.man, src/utils/afmtodit/afmtodit.man,
6669         src/utils/tfmtodit/tfmtodit.man: Make nicer synopsis.
6670
6671         * src/preproc/grn/grn.man: Better synopsis; added copyright.
6672
6673         * src/roff/grog/grog.man: Updated copyright date.
6674
6675 2000-03-14  Francisco Andrés Verdú  <pandres@dragonet.es>
6676
6677         * configure.in: Added test for strdup.
6678
6679         * src/devices/grolbp/lbp.cc: Added a strdup() version in case none
6680         is available.
6681
6682         Replaced dynamic allocation of arrays `[...]' with `new' operator.
6683
6684         Other minor fixes.
6685
6686 2000-03-12  OKAZAKI Tetsurou  <okazaki@be.to>
6687
6688         * Makefile.comm: Add $(INCLUDES) to $(ALL_CFLAGS).
6689
6690 2000-03-11  Werner LEMBERG  <wl@gnu.org>
6691
6692         * src/preproc/grn/hdb.cc (DBGetType): Added return value to make
6693         compilers silent.
6694         * src/preproc/grn/hgraph.cc: Add #ifdef for hypot().
6695         * src/include/lib.h: Remove some spaces.
6696
6697 2000-03-10  Werner LEMBERG  <wl@gnu.org>
6698
6699         * src/libs/libgroff/tmpfile.cc (xtmptemplate, xtmpfile): Removing
6700         initializers from arguments (some compilers don't like this).
6701
6702 2000-03-09  Gaius Mulley  <gaius@glam.ac.uk>
6703
6704         * src/libs/libgroff/htmlindicate.cc: Added library file which is now
6705         used by pic and eqn to tell grohtml where the graphic regions start
6706         and end.
6707         * src/libs/libgroff/Makefile.sub: Use it.
6708         * src/preproc/eqn/main.cc, src/preproc/pic/troff.cc: Altered to use
6709         graphic_start() and graphic_end() from htmlindicate.cc.
6710
6711 2000-03-09  Werner LEMBERG  <wl@gnu.org>
6712
6713         * tmac/tmac.safer: Will now work correctly in compatibility mode.
6714         * tmac/groff_man.man: More fixes.
6715
6716 2000-03-08  Werner LEMBERG  <wl@gnu.org>
6717
6718         * doc/Makefile: Added texput.log to the `clean' target.
6719         * doc/groff.texinfo: Added info about delimiters for escapes.
6720
6721 2000-03-08  Bernd Warken  <bwarken@mayn.de>
6722
6723         * src/preproc/pic/pic.man: Add info on conversion of pic images to
6724         other graphic formats.
6725
6726 2000-03-07  OKAZAKI Tetsurou  <okazaki@be.to>
6727
6728         * Makefile.in, Makefile.sub, src/preproc/eqn/Makefile.sub,
6729         src/roff/groff/Makefile.sub, src/roff/nroff/Makefile.sub,
6730         src/utils/afmtodit/Makefile.sub: Use $(INSTALL_SCRIPT) for script
6731         files.
6732
6733 2000-03-07  Werner LEMBERG  <wl@gnu.org>
6734
6735         * doc/groff.texinfo: Spelling fixes.
6736
6737 2000-03-06  Werner LEMBERG  <wl@gnu.org>
6738
6739         * tmac/groff_man.man: Completely revised to cover everything in
6740         tmac.an.
6741
6742         * doc/groff.texinfo, src/roff/troff/troff.man: Document evc request.
6743         Other minor fixings.
6744         * src/roff/troff/env.cc (environment_copy): Improve error message and
6745         fix itoa->i_to_a.
6746         * src/roff/troff/TODO: Updated.
6747
6748         * doc/Makefile: Bug fixes -- this is still provisional, though...
6749
6750         * tmac/eqnrc: Small fixes.
6751
6752 2000-03-05  Abramo Bagnara  <abramo@alsa-project.org>
6753
6754         Adding a request `evc' to copy environments.
6755
6756         * src/roff/troff/env.cc (environment::copy, environment_copy):
6757         Implement it.
6758         * src/roff/troff/env.h: Add prototype.
6759
6760 2000-03-05  Francisco Andrés Verdú  <pandres@dragonet.es>
6761
6762         Adding strsep() -- Solaris 8 doesn't have it.
6763
6764         * configure.in: Test it.
6765         * src/devices/grolbp/lbp.cc: Add code.
6766
6767 2000-03-05  Werner LEMBERG  <wl@gnu.org>
6768
6769         * src/roff/troff/div.cc (macro_diversion::output,
6770         top_level_diversion::output): Fixing an incompatibility with
6771         original troff: \x'0' updates the .a register also.  Thanks to
6772         <Andries.Brouwer@cwi.nl> for pointing this out.
6773         * doc/groff.texinfo: Document it.
6774
6775         * Makefile.in: Create Makefile.dep if necessary before calling the
6776         submake process to avoid warning about nonexistent file.
6777
6778         * NEWS, PROJECTS: Updated.
6779
6780 2000-03-04  Werner LEMBERG  <wl@gnu.org>
6781
6782         * tmac/troffrc: Add tmac.lbp.
6783
6784 2000-03-03  Francisco Andrés Verdú  <pandres@dragonet.es>
6785
6786         * tmac/tmac.lbp: New file.
6787         * src/devices/grolbp/grolbp.man: Add documentation of `lbpname'
6788         command.
6789
6790 2000-03-03  Werner LEMBERG  <wl@gnu.org>
6791
6792         * Makefile.in: Fixing $(subdir).
6793
6794         * README, NEWS: Small fixes.
6795
6796         * test-groff: Adding path to grolbp.
6797
6798         * configure.in: The (new) file src/xditview/Imakefile.in will be
6799         also configured -- it is now possible to build gxditview in a
6800         directory different from $srcdir.
6801
6802 2000-03-02  Blake McBride  <blake@florida-software.com>
6803
6804         * src/libs/libgroff/searchpath.cc (open_file): Adapting to WinNT.
6805
6806         * MORE.STUFF: Added website of bell labs and info about plot2dev.
6807
6808 2000-03-01  Colin Phipps  <crp22@cam.ac.uk>
6809
6810         * src/utils/indxbib/indxbib.cc (main): Use mkstemp() for temporary
6811         files.
6812
6813 2000-02-29  Werner LEMBERG  <wl@gnu.org>
6814
6815         Adding GNU getopt to the groff distribution.
6816
6817         * src/include/getopt.h, src/libs/libgroff/{getopt.c,getopt1.c}:
6818         New files.
6819         * src/include/Makefile.sub, src/libs/libgroff/Makefile.sub: Update.
6820         * aclocal.a4: Remove GROFF_GETOPT function.
6821         * configure.in, Makefile.in, PROBLEMS: Update.
6822         * src/include/lib.h: Replace getopt tests with getopt.h.
6823         * src/devices/grolbp/lpb.cc: Remove inclusion of getopt.h.
6824
6825         * doc/groff.texinfo: Further checking/updating.  Adding more index
6826         entries.
6827
6828         * man/groff_out.man: Fix nroff mode activation (for emacs).
6829         * man/groff_font.man: Add missing ligature.
6830
6831 2000-02-28  Werner LEMBERG  <wl@gnu.org>
6832
6833         * doc/groff.texinfo: Further checking/updating.  Adding more index
6834         entries.
6835
6836         * src/devices/grolbp/grolbp.man: Added a comment line at the
6837         beginning of the file (similar to shell scripts) which indicates
6838         that `tbl' should be used as a preprocessor.
6839
6840 2000-02-27  Blake McBride  <blake@florida-software.com>
6841
6842         Adapting groff to MS Visual C++ 6.0 compiler (tested with
6843         Windows NT 4.0).  Uses _MSC_VER define where necessary.
6844
6845         * src/devices/grodvi/dvi.cc: Making stdout a binary stream.
6846         * src/devices/grolj4/lj4.cc: Making getopt variables `extern "C"'.
6847         * src/devices/grohtml/html.cc, src/devices/grops/ps.cc,
6848         src/include/lib.h, src/libs/libgroff/errarg.cc,
6849         src/libs/libgroff/itoa.c, src/libs/libgroff/nametoindex.cc,
6850         src/preproc/refer/label.y, src/preproc/refer/label.cc,
6851         src/roff/groff/pipeline.c, src/roff/troff/column.cc,
6852         src/roff/troff/div.cc, src/roff/troff/env.cc,
6853         src/roff/troff/input.cc, src/roff/troff/node.cc,
6854         src/roff/troff/reg.cc: Renaming itoa() to i_to_a() and iftoa() to
6855         if_to_a() to avoid name clashes.
6856         * src/include/posix.h: Don't use unistd.h.
6857         * src/libs/libgroff/tmpfile.cc: Use `#ifndef...#else...#endif'
6858         clause for integrating non-Unix xtmpfile() code.
6859         * src/roff/troff/input.cc: Adding `public' keyword to macro_header
6860         structure; use "rt" for popen() in pipe_source(); add getpid()
6861         dummy function.
6862         * src/roff/troff/node.cc: Use special versions of popen() in
6863         real_output_file() and pclose() in ~real_output_file().
6864
6865 2000-02-27  Werner LEMBERG  <wl@gnu.org>
6866
6867         Adding a new driver, grolbp, for Canon CAPSL printers (LBP-4 and
6868         LBP-8 series laser printers).  This code has been contributed by
6869         Francisco Andrés Verdú <pandres@dragonet.es>.
6870
6871         * src/devices/grolbp/*: The grolbp output device.
6872         * font/devlpb/*: The font description files.
6873         * Makefile.in: Add grolpb and devlbp subdirectories.
6874
6875         * src/devices/grodvi/grodvi.man, src/devices/grolj4/grolj4.man,
6876         src/devices/grotty/grotty.man,src/roff/troff/troff.man: Minor
6877         typographic fixes.
6878
6879         * doc/groff.texinfo: Further checking/updating.  Adding more index
6880         entries.
6881
6882         * NEWS: Updated.
6883
6884         * src/devices/grolbp/Makefile.sub: Adding $(srcdir).
6885
6886         * man/groff_font.man: Adding info about obsolete DESC keywords.
6887         * src/devices/grolj4/grolj4.man: Documenting additional DESC
6888         keywords.
6889
6890 2000-02-26  Werner LEMBERG  <wl@gnu.org>
6891
6892         * src/preproc/grn/grn.man: Added info about the gremlin file format
6893         (contributed by Daniel Senderowicz <daniel@synchrods.com>).
6894
6895 2000-02-25  Werner LEMBERG  <wl@gnu.org>
6896
6897         * src/preproc/grn/main.cc: Allow values of `narrow' parameter and
6898         friends to be non-integer.
6899
6900         * src/preproc/grn/grn.man: Document it.
6901
6902         * doc/groff.texinfo: Further checking/updating.  Adding more index
6903         entries.
6904
6905 2000-02-24  Werner LEMBERG  <wl@gnu.org>
6906
6907         * src/preproc/grn/main.cc: Introduce BASE_THICKNESS, defining
6908         line thicknesses to be integer multiples of this value.
6909
6910         * src/preproc/grn/grn.man: Commenting out the -s option -- the
6911         corresponding code doesn't work (yet).
6912
6913         * doc/groff.texinfo: Further checking/updating.  Adding more index
6914         entries.
6915
6916 2000-02-23  Werner LEMBERG  <wl@gnu.org>
6917
6918         * src/preproc/grn/{main.cc, hgraph.cc}: Using point units to
6919         specify line thickness instead of base units.  The new default
6920         values are now 0.15,pt 0.45pt, and 0.75pt for thin, middle, and
6921         thick lines respectively.
6922
6923         Removed unused variable `prevval'.
6924
6925         * src/preproc/grn/grn.man: Updated.
6926
6927 2000-02-22  Werner LEMBERG  <wl@gnu.org>
6928
6929         * src/preproc/grn/main.cc: Slight formatting.
6930
6931         * src/roff/groff/groff.man: Formatting fix.
6932         * src/preproc/grn/grn.man: Ditto.
6933
6934         * src/roff/grog/grog.pl: Fixing two embarassing bugs.
6935
6936         * doc/groff.texinfo: Further checking/updating.
6937
6938 2000-02-21  Werner LEMBERG  <wl@gnu.org>
6939
6940         * README, INSTALL, PROJECT, PROBLEMS, BUGREPORT: Updated.
6941
6942         * test-groff: Added grn subdir to path.
6943
6944         * doc/groff.texinfo: Some restructing and other small improvements.
6945
6946         * src/roff/groff/groff.cc (help): Fixed info string.
6947
6948 2000-02-20  Werner LEMBERG  <wl@gnu.org>
6949
6950         * doc/meref.me: Fix description of .GS request.
6951
6952         * src/roff/troff/troff.man: Fixing typo.
6953
6954         Adding the `grn' preprocessor for gremlin graphic files.
6955
6956         * src/preproc/grn/*: This is the Berkeley distribution written by
6957         David Slattengren and Barry Roitblat, adapted to groff by Daniel
6958         Senderowicz and Werner Lemberg.
6959
6960         * doc/grnexampl.{me,g}: A sample for grn.
6961
6962         * Makefile.in: Added subdirectory entry for grn.
6963
6964         * src/roff/groff/groff.cc: Added support for grn.  It can be now
6965         called with the switch `-g'.
6966
6967         * src/roff/groff/groff.man: Updated.
6968
6969         * src/roff/grog/grog.{man,pl,sh}: Updated.
6970
6971         * NEWS: Updated.
6972
6973 2000-02-11  Gaius Mulley  <gaius@glam.ac.uk>
6974
6975         * src/include/lib.h: Added xtmptemplate and made xtmpfile
6976         parametrically polymorphic.
6977
6978         * src/libs/libgroff/tmpfile.cc: Implemented xtmptemplate
6979         and the alterations to xtmpfile.
6980         xtmpfile can be requested to return the filename created
6981         and asked not to unlink the temp file.  The default behaviour
6982         if parameters are absent is exactly the same as before.
6983
6984 2000-02-11  Abramo Bagnara  <abramo@alsa-project.org>
6985
6986         A new request `length' is available which returns the length of a
6987         string in a number register:
6988
6989         * src/roff/troff/input.cc (length_macro): Implement it.
6990         * src/roff/troff/input.cc (init_input_requests): Register it.
6991
6992 2000-02-11  Werner LEMBERG  <wl@gnu.org>
6993
6994         * doc/groff.texinfo, src/roff/troff/troff.man: Add documentation
6995         of the `substring' request.
6996
6997         * src/roff/troff/troff.man, doc/groff.texinfo: Document `length'
6998         request.
6999
7000         * src/roff/troff/TODO, NEWS: Updated.
7001
7002 2000-02-09  Werner LEMBERG  <wl@gnu.org>
7003
7004         * src/roff/groff/groff.man: Added an example.
7005
7006 2000-02-06  Werner LEMBERG  <wl@gnu.org>
7007
7008         I've considerably modified the directory structure of the
7009         distribution to get a more vertical layout.  For example, the number
7010         of top level directories has been reduced from 42 to 6.
7011
7012         As a consequence, many changes, especially to the makefiles, were
7013         necessary:
7014
7015         * The makefile variables `top_builddir' and `top_srcdir' have been
7016         introduced.  Virtually all relative paths have been replaced with
7017         absolute ones using these two variables.
7018
7019         * Dependencies (in the files `Makefile.dep') are no longer part of
7020         the distribution.  Instead, they are created during a `make install'
7021         in the build directory.
7022
7023         * aclocal.m4 (GROFF_SRCDIR, GROFF_BUILDDIR): Two new functions to
7024         make `top_srcdir' and `top_builddir' absolute.
7025
7026         Some other changes:
7027
7028         * Man pages now depend on the files `VERSION' and `REVISION'.
7029
7030         * The added shell script `mkinstalldirs' will replace `mkdir' in
7031         almost all cases.
7032
7033         * VERSION: Version number increased to 1.16.
7034
7035 2000-02-04  Werner LEMBERG  <wl@gnu.org>
7036
7037         * grops/psrm.cc (read_one_of): Fixed pointer incrementation.
7038
7039         * Makefile.in: Removed $(tmac_m) since it is no longer needed
7040         (after an update of the mm stuff).
7041
7042         * troff/Makefile.sub (majorminor.cc): Fix dependencies.
7043
7044 2000-02-03  Werner LEMBERG  <wl@gnu.org>
7045
7046         The .psbb request will now also accept Mac PS images (i.e. using LF
7047         as the EOL character).
7048
7049         * troff/input.cc (ps_get_line): New function, taken from psrm.cc
7050         (with slight modifications).
7051         * troff/input.cc (do_ps_file): Use it.
7052
7053         * test-groff: Add grohtml and grolj4 output devices to PATH.
7054
7055 2000-01-30  Werner LEMBERG  <wl@gnu.org>
7056
7057         * NEWS, MORE.STUFF: Updated.
7058
7059 2000-01-30  Cary D. Renzema  <caryr@dollar.mxim.com>
7060
7061         Add the `srand' command to pic.
7062
7063         * pic/lex.cc, pic/pic.y: Implement it.
7064         * pic/pic.man: Document it.
7065         * pic/pic.cc, pic/pic.tab.h: Regenerated (with yacc).
7066
7067 2000-01-30  Werner LEMBERG  <wl@gnu.org>
7068
7069         Add a new request `.psbb'.  This does exactly what the external
7070         program psbb did.  It scans a PostScript image file for a
7071         %%BoundingBox comment and extracts the bounding box values (in
7072         PostScript units) which are then stored in the four new (read-only)
7073         number registers `llx', `lly', `urx', and `ury'.
7074
7075         This will allow the usage of the .PSPIC macro without worrying
7076         about unsafe behaviour of groff, i.e., it will work without the
7077         `-U' switch of groff.
7078
7079         * troff/input.cc: Implement it.
7080         * tmac/tmac.pspic: Use it.
7081         * troff/troff.man, grops/grops.man, NEWS: Document it.
7082         * psbb/*, Makefile.in: Remove it since it is no longer needed.
7083
7084         This is bloody C code simply adapted from psbb.c!  Any improvements
7085         welcome.
7086
7087 2000-01-29  Werner LEMBERG  <wl@gnu.org>
7088
7089         * man/groff_font.man: Minor clarifications.
7090
7091         * NEWS: Updated.
7092
7093 2000-01-28  Werner LEMBERG  <wl@gnu.org>
7094
7095         * afmtodit/afmtodit.pl: Use new `--' comment delimiter.
7096
7097 2000-01-28  Gaius Mulley  <gaius@glam.ac.uk>
7098
7099         * man/groff_font.man: Brought up to date regarding tcommand
7100         extensions.
7101         * libgroff/font.cc: Handle everything after `--' as a comment
7102         in the font files.
7103         * devps/*: Added comment delimiter inside devps font files.
7104
7105 2000-01-28  Werner LEMBERG  <wl@gnu.org>
7106
7107         * tmac/tmac.arkup, tmac/groff_markup.man: Replace \fC...\fR with
7108         \fC...\fP (which now works as expected).
7109
7110         * troff/troff.man: Fix typo.
7111
7112 2000-01-27  Gaius Mulley  <gaius@glam.ac.uk>
7113
7114         Completed the pass_filenames implementation in troff.
7115
7116         * libdriver/input.cc: Will read the new `F' tcommand.
7117         * troff/node.cc, troff/node.h: Will issue the new `F' tcommand.
7118         * troff/input.cc: Use it.
7119
7120 2000-01-26  Werner LEMBERG  <wl@gnu.org>
7121
7122         * troff/env.cc (set_font): Fix the behaviour of \fP.  The previous
7123         font will now be updated even if an invalid font is selected.
7124
7125 2000-01-24  Werner LEMBERG  <wl@gnu.org>
7126
7127         * doc/homepage.ms: Updated for new tmac.arkup.
7128
7129         * tmac/tmac.html: Disable line breaks after hyphen-like characters.
7130
7131         * tmac/tmac.arkup: Cleanup.
7132
7133         Added `\&' to .HTML macro to `leave vertical mode', so to say.
7134
7135         Removed obsolete .LINK macro completely.
7136
7137         The macros .URL, .FTP, and .MAILTO now accept a third argument which
7138         will be immediately appended to the second argument (to be used with
7139         punctuation, for example).
7140
7141         Disabled .CDFTP macro temporarily for security reasons.
7142
7143         * tmac/groff_markup.man: Complete revision for latest changes in
7144         tmac.arkup -- note that it does not yet format correctly with
7145         grohtml :-(
7146
7147 2000-01-23  Bruno Haible  <haible@clisp.cons.org>
7148
7149         * nroff/nroff.sh: Accept -Tutf8 option and pass it through.
7150         * devutf8/R.proto: Add mappings for wp, lh, rh.
7151         * devutf8/NOTES: Updated.
7152
7153 2000-01-23  Werner LEMBERG  <wl@gnu.org>
7154
7155         * doc/groff.texinfo: Updated version/copyright info.
7156
7157 2000-01-21  Gaius Mulley  <gaius@glam.ac.uk>
7158
7159         Added support for two new directives in device descriptions:
7160         `pass_filenames' (to pass the input file name to the output device)
7161         and `use_charnames_in_special' (to support e.g. accented characters
7162         in the `X' request).
7163
7164         * include/font.h, troff/charinfo.h: Declare it.
7165
7166         * libgroff/font.cc, libgroff/fontfile.cc: Set it.
7167
7168         * devhtml/DESC: Use it.
7169
7170         * troff/input.cc: New function encoded_char.
7171
7172         * troff/token.h: Add test for `specialness'.
7173
7174 2000-01-21  Werner LEMBERG  <wl@gnu.org>
7175
7176         * tmac/Makefile.sub: tmac.a4 and tmac.trace have been removed by
7177         mistake from the list of files to be installed.
7178
7179 2000-01-18  Werner LEMBERG  <wl@gnu.org>
7180
7181         * README: Added info how to apply patches.
7182
7183 2000-01-15  Jan Echternach  <echter@informatik.uni-rostock.de>
7184
7185         * troff/node.cc (ligature_note::operator delete):  Fix g++ warning.
7186
7187 2000-01-15  Gaius Mulley  <gaius@glam.ac.uk>
7188
7189         * troff/input.cc: Add support for troffrc-end.
7190
7191         * tbl/main.cc: Altered to issue table-start and table-end special
7192         characters if using the html device.
7193
7194         * devhtml/*: Modified font files to incorporate html encoding of
7195         characters.
7196
7197         * tmac/groff_markup.man: New file documenting tmac.arkup.
7198
7199         * tmac/troffrc-end: New file.  This is invoked after all user
7200         specified macros.  Currently used by the html device to include
7201         tmac.html.  Thus no need for users to specify -mhtml anymore.
7202
7203         * tmac/Makefile.sub (NORMALFILES): Add troffrc-end.
7204         (MAN7): Add groff_markup.man.
7205
7206         * tmac/tmac.an, tmac/tmac.html: Small html updates.
7207
7208         * tmac/troffrc: tmac.arkup will now be called for the html device.
7209
7210         * libgroff/font.cc, libgroff/font.h: Altered to include reading of
7211         extra device specific information about fonts.
7212
7213         * doc/homepage.ms: New file.  It is an example how an HTML home page
7214         could look like with grohtml.
7215
7216         * doc/Makefile: Add homepage.ms.  Remove rule for pic.html.
7217
7218 2000-01-12  Bruno Haible  <haible@clisp.cons.org>
7219
7220         * devutf8/R.proto: Add mappings for ti, Fn, st, an.  Change mappings
7221         of Im, Re.
7222
7223         * devutf8/NOTES: Updated.
7224
7225 2000-01-08  Bruno Haible  <haible@clisp.cons.org>
7226
7227         * eqn/box.cc, eqn/lex.cc, eqn/other.cc, eqn/over.cc, eqn/special.cc,
7228         eqn/text.cc, grodvi/dvi.cc, grops/ps.cc, grops/psrm.cc,
7229         libbib/index.cc, libbib/linear.cc, libbib/search.cc,
7230         libdriver/printer.cc, libgroff/font.cc, libgroff/string.cc,
7231         pic/lex.cc, pic/object.cc, refer/label.y, refer/ref.cc, tbl/main.cc,
7232         tbl/table.cc, tfmtodit/tfmtodit.cc, troff/dictionary.cc,
7233         troff/div.cc, troff/env.cc, troff/input.cc, troff/node.cc,
7234         troff/node.h, troff/reg.cc: Avoid most "g++ -Wall -Wno-sign-compare"
7235         warnings.
7236
7237         * troff/node.cc (bracket_node::copy): Initialize last to NULL.
7238
7239 2000-01-12  Fabrizio Polacco  <fab@prosa.it>
7240
7241         grolj4: Paper size will be searched case-insensitively.
7242
7243         * include/lib.h: Add check for strcasecmp().
7244         * grolj4/li4.cc (lookup_paper_size): Use strcasecmp().
7245         * configure.in: Check for strcasecmp().
7246
7247 2000-01-11  Werner LEMBERG  <wl@gnu.org>
7248
7249         * troff/Makefile.sub (majorminor.cc): Fix incorrect path to
7250         `REVISION'.
7251
7252 2000-01-10  Werner LEMBERG  <wl@gnu.org>
7253
7254         * Makefile.comm, Makefile.in, doc/Makefile: More fixes for the
7255         revision scheme.
7256
7257         Add a new read-only register, `.Y', which contains the groff
7258         revision.
7259
7260         * troff/input.cc (init_input_requests): Define it.
7261         * troff/Makefile.sub (majorminor.cc): Define `revision' string.
7262         * doc/groff.texinfo, troff/troff.man: Document it.
7263
7264         * libgroff/Makefile.sub (version.cc): Add definition of
7265         `Version_string[]', consisting of `<major>.<minor>.<revision>'
7266         * eqn/main.cc, grodvi/dvi.cc, grolj4/lj4.cc, grops/ps.cc,
7267         grotty/tty.cc, hpftodit/hpftodit.cc, indxbib/indxbib.cc, pic/main.cc,
7268         refer/refer.cc, soelim/soelim.cc, tbl/main.cc, tfmtodit/tfmtodit.cc,
7269         troff/input.cc, pfbtops/pfbtops.c: Use it.
7270
7271 2000-01-10  Fabrizio Polacco  <fab@prosa.it>
7272
7273         Add a revision scheme to the groff package.
7274
7275         * REVISION: New file.
7276         * libgroff/Makefile.sub (version.cc): Use it to define
7277         `revision_string[]'.
7278         * grops/psrm.cc: Use revision_string (converted to an unsigned
7279         integer) in constructor of resource_manager.
7280
7281 2000-01-10  Bruno Haible  <haible@clisp.cons.org>
7282
7283         * devutf8/Makefile.sub, devutf8/DESC.proto, devutf8/R.proto: New
7284         files.
7285         * Makefile.in (DEVDIRS): Add devutf8.
7286         * grotty/tty.cc: Include device.h.
7287         (glyph): Change type of `code' to `unsigned int'.
7288         (tty_printer): New field is_utf8.  Constructor takes device argument.
7289         (tty_printer::tty_printer): If device if `utf8', set is_utf8.
7290         (tty_printer::add_char): Change type of first arg to `unsigned int'.
7291         (tty_printer::put_char): New function.
7292         (tty_printer::end_page): Use put_char() instead of ::putchar().
7293         (make_printer): Pass device to tty_printer constructor.
7294         * nroff.sh: Determine default device by calling 'locale'.  As a
7295         fallback, look at all of $LC_ALL, $LC_CTYPE, $LANG, $LESSCHARSET.
7296         Recognize UTF-8 locales.
7297         * tmac/eqnrc: Recognize utf8 like latin1.
7298         * tmac/troffrc: Device utf8 needs tmac.tty.
7299
7300 2000-01-07  Werner LEMBERG  <wl@gnu.org>
7301
7302         * tmac/Makefile.sub: tmac.a4 and tmac.trace will now be installed.
7303
7304 2000-01-07  Paul Eggert  <eggert@twinsun.com>
7305
7306         Add a new predefined writeable number register, `year',
7307         which contains the current year.
7308
7309         * doc/groff.texinfo, PROBLEMS, troff/troff.man: Document it.
7310         * tmac/tmac.s: Use it.
7311         * troff/input.cc (init_registers): Initialize it.
7312
7313 2000-01-06  Werner LEMBERG  <wl@gnu.org>
7314
7315         * PROBLEMS: Fixed typo.
7316
7317 2000-01-04  Paul Eggert  <eggert@twinsun.com>
7318
7319         * PROBLEMS: Add Y2k advice for the yr number register.
7320
7321 2000-01-03  Paul Eggert  <eggert@twinsun.com>
7322
7323         * doc/groff.texinfo: Fix Y2k bug in documentation of \n(yr.
7324
7325 2000-01-02  Werner LEMBERG  <wl@gnu.org>
7326
7327         * tmac/tmac.arkup: Slight modification of macros to provide better
7328         appearance for non-HTML formats.
7329
7330 2000-01-01  Charles Levert  <charles@comm.polymtl.ca>
7331
7332         * soelim/soelim.cc (include_path_append): realloc(NULL, n)
7333         does not automatically translate to malloc(n) on all OSes
7334         (e.g., SunOS) so do it explicitly.  Also, check the returned
7335         value.
7336
7337 2000-01-01  Werner LEMBERG  <wl@gnu.org>
7338
7339         * tmac/tmac.arkup: Added .LINE macro.  Some formatting.
7340
7341         * Makefile.in: Added $(tmac_m) again since the Makefile in `mm'
7342         expects this variable
7343
7344 2000-01-01  Gaius Mulley  <gaius@glam.ac.uk>
7345
7346         * doc/Makefile: Added instructions to create HTML and text
7347         versions of some files.
7348
7349 1999-12-31  Werner LEMBERG  <wl@gnu.org>
7350
7351         * Updated INSTALL.gen.
7352
7353         * tmac/tmac.arkup: Added fixes so that .FTP and .MAILTO works
7354         better resp. correctly with non-HTML devices.
7355
7356 Version 1.15 released
7357 =====================
7358
7359 1999-12-28  Werner LEMBERG  <wl@gnu.org>
7360
7361         * NEWS, VERSION: Changed to 1.15
7362
7363 1999-12-27  Paul Eggert  <eggert@twinsun.com>
7364
7365         * nroff/nroff.man: -S is safer, not safe.
7366
7367         * groff/groff.cc (main): Use `safer', not `safe', in variable
7368         names.  This does not change the behavior.
7369
7370         * troff/input.cc (main): Likewise.
7371
7372         * nroff/nroff.sh: Likewise.
7373
7374         * troff/input.cc (prepend_string): New function.
7375         (main): Prepend -msafer, so that we check macro libraries for
7376         safety.
7377
7378         * PROBLEMS: Report problem with Sun C++ 5.0 and 5.1.
7379
7380 Version 1.14 released
7381 =====================
7382
7383 1999-12-26  Werner LEMBERG  <wl@gnu.org>
7384
7385         * NEWS, VERSION: Changed to 1.14.
7386
7387 1999-12-24  Werner LEMBERG  <wl@gnu.org>
7388
7389         * refer/refer.cc: Fixing the last fix.
7390
7391 Version 1.13 released
7392 =====================
7393
7394 1999-12-23  Werner LEMBERG  <wl@gnu.org>
7395
7396         * tmac/tmac.an: A typo (`.if' instead of `.ie') made the page
7397         number disappear.
7398
7399         * NEWS: Updated.
7400
7401         * tmac/tmac.safer: Forgot to remove `so' from the `rm' request.
7402
7403         * VERSION: Changed to 1.13 -- to be compliant with the Adobe 3.0
7404         document conventions, the version number must be a real.
7405
7406 Version 1.12.1 released
7407 =======================
7408
7409 1999-12-22  Werner LEMBERG  <wl@gnu.org>
7410
7411         * VERSION: Changed to 1.12.1.
7412
7413 1999-12-22  Alan Rooks  <arooks@istar.ca>
7414
7415         * refer/refer.cc (do_file): Slight modification to satisfy the
7416         `Standard system CC - C++ Compilation System 3.1 03/03/99' on SCO
7417         UnixWare 7.1.
7418
7419 1999-12-20  Werner LEMBERG  <wl@gnu.org>
7420
7421         * changed prep.ai.mit.edu -> ftp.gnu.org; updated copyright
7422         notices.
7423
7424         * tmac/tmac.safer, tmac/groff_msafer.man: Remove `so' (again) from
7425         list of unsafe requests.
7426
7427         * pic/pic.man: Fixed a typo.
7428
7429         * man/groff_out.man: Fixed a typo.
7430
7431 1999-12-18  Werner LEMBERG  <wl@gnu.org>
7432
7433         * Makefile.in: Doc fixes.
7434
7435 1999-12-17  Fabrizio Polacco  <fab@prosa.it>
7436
7437         * groff/groff.cc: Missing `U' option added to getopt().
7438
7439         * troff/troff.man: Missing `U' option added to synopsis.
7440
7441 Version 1.12 released
7442 =====================
7443
7444 1999-12-14  Werner LEMBERG  <wl@gnu.org>
7445
7446         * troff/input.cc (usage), groff/groff.cc (synopsis): Added -U flag
7447         to the synopsis.
7448
7449         * nroff/nroff.sh, nroff/nroff.man: Replaced `secure', `unsecure'
7450         with the more appropriate terms `safer' and `unsafe'.
7451
7452         * libgroff/strerror.c, aclocal.m4, configure.in: Added checks for
7453         sys_nerr and sys_errlist[].
7454
7455         * pic/pic.h, aclocal.m4, configure.in: Added check for hypot().
7456
7457         * pic/pic.y, pic/pic.cc: Added check for fmod().
7458
7459 1999-12-13  Werner LEMBERG  <wl@gnu.org>
7460
7461         * VERSION: Changed to 1.12.
7462
7463         Here some patches from various sources; most of them taken from
7464         the Debian distribution.
7465
7466         * tmac/groff_mdoc.man, tmac/groff_mdoc.samples.man,
7467         tmac/Makefile.sub: New files copied directly from the NetBSD
7468         distribution.  Probably, some additional adaptation later on is
7469         necessary...
7470
7471         * tmac/tmac.safer, tmac/groff_msafer.man: Added `so' to the list
7472         of unsafe requests.
7473
7474         * groff/groff.cc, groff/groff.man, nroff/nroff.sh,
7475         nroff/nroff.man, pic/main.cc, pic/pic.man, troff/input.cc,
7476         troff/troff.man: Added option `-U' for unsafe mode.  Safe mode
7477         (`-S') is now the default.
7478
7479         * README, NEWS: Updated.
7480
7481 1999-12-09  Werner LEMBERG  <wl@gnu.org>
7482
7483         * doc/groff.texinfo: Regenerated nodes and menus with emacs.
7484
7485         * doc/Makefile (clean): Added cleaning commands for groff.texinfo.
7486
7487 1999-12-06  Werner LEMBERG  <wl@gnu.org>
7488
7489         * configure.in: Removed AC_PREFIX_PROGRAM since it causes more
7490         grief than relief today.  Additionally, it is against the GNU
7491         coding standards.
7492
7493         * configure: Recreated.
7494
7495 1999-12-05  Werner LEMBERG  <wl@gnu.org>
7496
7497         * configure.in: Added GROFF_LIBM.
7498
7499         * configure: Recreated.
7500
7501         * aclocal.m4 (GROFF_LIBM): New function which tests whether -lm is
7502         necessary.
7503
7504         * Makefile.in: Added definition of $(LIBM).
7505
7506         * Makefile.comm (LIBM): Removed.
7507
7508         * pfbtops/Makefile.sub: On AIX, -lm is needed also.
7509
7510 1999-12-03  Gaius Mulley  <gaius@glam.ac.uk>
7511
7512         * doc/Makefile: Added rule for generation pic.html.
7513
7514         (clean): Files produced by grohtml will be removed also.
7515
7516         * doc/pic.ms: Small fix.
7517
7518         * tmac/tmac.html: Fixed suppression of headers.
7519
7520 1999-11-16  Gaius Mulley  <gaius@glam.ac.uk>
7521
7522         * tmac/tmac.html: Fixing horizontal arrows.
7523
7524         Turning off hyphenation.
7525
7526         * tmac/tmac.an: Improved support for grohtml; better indentation,
7527         no footers/headers.
7528
7529 1999-10-31  Gaius Mulley  <gaius@glam.ac.uk>
7530
7531         * tmac/tmac.arkup: Added CDFTP macro
7532
7533         * tmac/tmac.html: All headers are turned off for ms, me, and mm
7534         macros.
7535
7536         * tmac/troffrc: Some additions for HTML stuff.
7537
7538 1999-10-06  Gaius Mulley  <gaius@glam.ac.uk>
7539
7540         * tmac/tmac.html: Small changes.
7541
7542 1999-09-26  Werner LEMBERG  <wl@gnu.org>
7543
7544         * doc/groff.texinfo: Minor fixes.
7545
7546 1999-09-26  Gaius Mulley  <gaius@glam.ac.uk>
7547
7548         * devhtml/TR: Changed spacewidth to 3.
7549
7550         * tmac/Makefile.sub (NORMALFILES): Added tmac.arkup.
7551
7552         * tmac/tmac.html: Moved markup macros to tmap.arkup.
7553
7554         * tmac/tmac.arkup: New file.
7555
7556         * grohtml/ChangeLog: New file.
7557
7558 1999-09-16  Werner LEMBERG  <wl@gnu.org>
7559
7560         * doc/groff.texinfo (Common Features): Added Copying chapter.
7561         Changed format to @smallbook.
7562
7563 1999-09-15  Werner LEMBERG  <wl@gnu.org>
7564
7565         * NEWS: Added info about groff.texinfo.
7566
7567         * doc/groff.texinfo: Will now compile (using texi2dvi) without
7568         warning messages.
7569
7570 1999-09-14  Werner LEMBERG  <wl@gnu.org>
7571
7572         * groff/groff.man: More updates.
7573
7574 1999-09-13  Werner LEMBERG  <wl@gnu.org>
7575
7576         * doc/groff.texinfo: New file.  This manual is still very
7577         rudimentary.  It has been originally contributed by Trent
7578         A. Fisher <trent@gnurd.portland.or.us> with first corrections and
7579         additions by me.
7580
7581         * INSTALL: Added information about the `doc' subdir
7582
7583         * troff/troff.man: Minor fixes.
7584
7585         * groff/groff.man: Added missing `-L arg' to SYNOPSIS section;
7586         reordered options.
7587
7588         * troff/input.cc (usage): Added missing `-ffam' to usage message.
7589
7590         * Makefile.in (dist): groff-$(version).tar.gz must be removed
7591         also, otherwise it is included itself in another call of `make
7592         dist'.
7593
7594         * groff/groff.cc (synopsis): Removed superfluous space.
7595
7596         * PROJECTS, PROBLEMS, NEWS: Updated.
7597
7598         * VERSION: Updated to 1.12beta.
7599
7600         * BUG-REPORT: Some cosmetic fixes.  Corrected email address.
7601
7602         * README: Updated: Included documentation about CVS repository,
7603         mailing lists, and daily snapshots.
7604
7605         * tmac/Makefile.sub: Fixed $(tmap_wrap) finally.
7606
7607 1999-09-12  Bjarni Ingi Gislason  <bjarniig@rhi.hi.is>
7608
7609         * tmac/tmac.an: If the tag didn't fit into the space that the
7610         macro `TP' specifies, the rest of the tag went into the space for
7611         the next line.
7612
7613 1999-09-12  Jeffrey Copeland  <jeff@opennt.com> 
7614
7615         * grolj4/lj4.cc: Added duplex printing (option `-d').
7616
7617         * grolj4/grolj4.man: Document duplex printing.
7618
7619 1999-09-12  Werner LEMBERG  <wl@gnu.org>
7620
7621         * doc/Makefile (pic.ps): Fixed rule which caused problems with
7622         non-GNUish sed programs.
7623
7624         * tmac/doc-syms: Removed extra space from -iso8802-3 macro
7625         definition.
7626
7627         * configure.in (LIBS): Added `-lc'
7628
7629         * Makefile.comm (.man.n): Added substitution for @TMAC_AN_PREFIX@.
7630
7631         * pic/tex.cc (solid_arc): Casting M_PI to double.
7632
7633         * libgroff/putenv.c (putenv): Changed function header to ANSI C.
7634
7635         * groff/groff.man, tmac/Makefile.sub (MAN7), tmac/groff_msafer.man
7636         (new file), tmac/msafer.man (deleted), tmac/groff_me.man (new
7637         file), tmac/me.man (deleted): {me,msafer} -> groff_{me,msafer}.
7638
7639         * groff/groff_man.man: New file.  This manual page was originally
7640         written for the Debian GNU/Linux system by Susan G. Kleinmann
7641         <sgk@debian.org>.
7642
7643         * eqn/list.cc (list_box::compute_metrics,
7644         list_box::compute_sublist_width): Removed variable declaration to
7645         avoid shadowing warnings.
7646
7647         * grops/psrm.cc (resource_manager::process_file): Ditto.
7648
7649         * tfmtodit/tfmtodit.cc (main): Ditto.
7650
7651         * libgroff/font.cc (font::load_desc): Renamed auxiliary variable
7652         to avoid shadowing warnings.
7653
7654         * tbl/table.cc (block_entry::do_divert, table::do_row): Renamed
7655         shadowing loop variable.
7656
7657         * groff/groff.man, troff/troff.man: Added doc about grohtml.
7658
7659 1999-09-12  Gaius Mulley  <gaius@glam.ac.uk>
7660
7661         New grohtml frontend to convert groff input to html.
7662
7663         * Makefile.in (CCPROGDIRS, DEVDIRS): Added html device.
7664
7665         * tmac/Makefile.sub (NORMALFILES): Added tmac.html.
7666
7667         * tmac/eqnrc: Added html device.
7668
7669         * tmac/tmac.html: New file.
7670
7671         * eqn/main.cc (do_file, inline_equation), pic/troff.cc
7672         (troff_output::start_picture, troff_output::finish_picture),
7673         tbl/main.cc (process_input_file):
7674         Surrounded output with `graphics_start' and `graphics_end' so that
7675         the html driver can identify non-text portions.
7676
7677         * grodvi/dvi.cc (dvi_printer::set_char), grolj4/lj4.cc
7678         (lj4_printer::set_char), grops/ps.cc (ps_printer::set_char),
7679         grotty/tty.ps (tty_printer::set_char): Additional parameter
7680         `name'.
7681
7682         * include/printer.h: Class printer: New function
7683         set_char_and_width; new variables (is_char_named, is_named_set,
7684         named_command, named_char_s, named_char_n) to hold information
7685         about named characters -- needed by the html driver.
7686
7687         * libdriver/printer.cc (printer::set_ascii_char,
7688         printer::set_special_char): Use set_char_and_width.
7689
7690         * devhtml/*: New device files for html driver.
7691
7692         * grohtml/*: New driver grohtml.
7693
7694 1999-09-11  Wilfredo Sanchez  <wsanchez@apple.com>
7695
7696         * tmac/doc-common, tmac/tmac.an: Removed the word `UNIX' in
7697         default strings.
7698
7699 1999-09-11  Luke Mewburn  <lukem@netbsd.org>
7700
7701         * libgroff/string.cc (search): Small fix to test against NULL
7702         pointer.
7703
7704 1999-09-11  Jeff Conrad  <jeff_conrad@msn.com>
7705
7706         * troff/node.cc (copy): The characters in a bracket escape (e.g.,
7707         \b'abc') were stacked in reverse order when processed in a
7708         diversion.
7709
7710         * troff/node.h: Added `*last' to struct `node' to make the above
7711         fix work.
7712
7713         * troff/input.cc (read_draw_node), libdriver/input.cc (do_file):
7714         The default scale for the 'f' and 't' graphics functions were 'm'
7715         rather than 'u' (i.e., no scaling).
7716
7717 1999-09-11  Peter Miller  <peterm@jna.com.au>
7718
7719         * groff/groff.cc (main), groff.man, soelim/soelim.cc (main,
7720         do_file), soelim/soelim.man: Added `-I file' option to soelim,
7721         defining include paths.
7722
7723         * soelim/soelim.cc (include_path_append): New function.
7724
7725 1999-09-11  Larry Jones  <larry.jones@sdrc.com>
7726
7727         * tbl/main.cc (process_options): Unix (at least Documenter's
7728         Workbench) tbl allows arbitrary non-alpha characters between
7729         options.
7730
7731 1999-09-11  Paul Eggert  <eggert@twinsun.com>
7732
7733         Y2k fixes.  Don't assume that the current year precedes 2000.
7734
7735         * doc/meref.me: Add \n(y2, \n(y4.
7736
7737         * tmac/doc-common (Yr): New number register.
7738         (Dd): Don't assume current year precedes 2000.
7739
7740         * tmac/tmac.e (td): Likewise.
7741         (y2, y4): New number registers.
7742
7743         * pic/pic.man: Update reference for pic paper to May, 1991
7744         version.
7745
7746 1999-09-11  Werner LEMBERG  <wl@gnu.org>
7747
7748         * tmac/Makefile.sub (install_data, stamp-wrap, uninstall_sub):
7749         Removed quotation marks which prevented correct expansion of
7750         $(tmac_wrap).
7751
7752         * devlj4/Makefile.sub (LJ4RES): Fixed value (600 instead of 300).
7753
7754 1999-09-10  Werner LEMBERG  <wl@gnu.org>
7755
7756         * Makefile.sub (DISTCLEANFILES): Added `config.log' and
7757         `config.cache'.
7758
7759         * Removed configure.old.
7760
7761 1999-08-31  Werner LEMBERG  <wl@gnu.org>
7762
7763         * VERSION: Updated to 1.11.1
7764
7765 1999-05-27  Werner LEMBERG  <wl@gnu.org>
7766
7767         * doc/Makefile: changed `.PS' postfix to `.ps' for consistency.
7768
7769         * tmac/Makefile.sub (install_data, stamp-wrap, uninstall_sub):
7770         added quotations around $(tmac_wrap) to avoid syntax error if
7771         variable is empty.
7772
7773         * configure: Newly generated using autoconf 2.13.
7774
7775         * Makefile.in (LDFLAGS): Set variable to @LDFLAGS@.
7776
7777 Fri Aug 15 08:51:47 1997  Eric S. Raymond  <esr@snark.thyrsus.com>
7778
7779         * README, PROJECTS, NEWS, INSTALL, VERSION, 
7780         doc/Makefile. doc/pic.ms, groff/groff.man:
7781         Prepare for 1.11 release.  No code changes.
7782         Documentation for pic added (doc/pic.ms).
7783
7784 Sun Nov 26 11:45:13 1995  James Clark  <jjc@jclark.com>
7785
7786         * Version 1.10 released.
7787
7788 Fri Nov 24 09:56:16 1995  James Clark  <jjc@jclark.com>
7789
7790         * afmtodit/afmtodit.pl: Avoid comment on first line.
7791
7792 Mon Nov 20 11:13:49 1995  James Clark  <jjc@jclark.com>
7793
7794         * aclocal.m4 (GROFF_INSTALL_SH): New macro.
7795         * configure.in: Call it.
7796
7797         * Makefile.sub (configure): Depends on aclocal.m4 not acgroff.m4.
7798         (distfiles): Doesn't depend on config.log or config.cache.
7799
7800 Sun Oct  1 08:45:36 1995  James Clark  <jjc@jclark.com>
7801
7802         * grog/grog.sh: Use print "" rather than print in END rule.
7803
7804 Wed Aug 23 13:30:52 1995  James Clark  <jjc@jclark.com>
7805
7806         * tbl/main.cc (process_data): Don't give error for excess data
7807         entries that are comments.
7808
7809 Fri Jul 28 11:00:27 1995  James Clark  <jjc@jclark.com>
7810
7811         * tbl/main.cc (process_data): Fix case where new for-scope rules
7812         silently change meaning of code.
7813
7814 Tue Jul  4 23:39:51 1995  James Clark  <jjc@jclark.com>
7815
7816         * troff/env.cc (hyphenate): Loop over all consecutive sequences
7817         of non-zero hyphenation codes.
7818
7819 Sat Jul  1 00:42:15 1995  James Clark  <jjc@jclark.com>
7820
7821         * aclocal.m4 (GROFF_POSIX): Use conflicting declaration technique.
7822
7823 Thu Jun 29 13:58:36 1995  James Clark  <jjc@jclark.com>
7824
7825         * tmac/tmac.e (ip): Divert the tag so as to freeze the spaces.
7826
7827 Tue Jun 27 12:30:16 1995  James Clark  <jjc@jclark.com>
7828
7829         * tmac/tmac.andoc: Make it work in compatibility mode.
7830
7831         * refer/token.h (token_info::is_range_sep): New function.
7832         * refer/token.cc (init_special_chars): Make \(en a RANGE_SEP.
7833         * refer/ref.cc (reference::output): More sophisticated check for
7834         multiple pages.
7835
7836         * devps/prologue.ps (MANUAL): New procedure.
7837         * grops/ps.cc (main): New -m option.
7838         (usage): Include -m.
7839         (ps_printer::~ps_printer): Implement -m.
7840
7841         * aclocal.m4 (GROFF_G): New macro.
7842         * configure.in: Call it.
7843         * Makefile.in (g): Provided by configure.
7844
7845         * hpftodit/hpftodit.cc (basename): Rename to xbasename.
7846
7847         * tmac/tmac.tty: Disable warning about bad fonts.  Remove font
7848         translations.
7849
7850         * Makefile.in (tmacpath): Don't include /usr/lib/tmac.
7851         (tmac_m, tmac_s): Deleted.
7852         (sys_tmac_prefix, tmac_wrap, tmac_prefix, tmac_an_prefix,
7853         tmac_s_prefix): New variables.
7854         (MDEFINES): Change accordingly.
7855         * Makefile.comm (.man.n): Use new TMAC_* variables.
7856         * configure.in (GROFF_TMAC): Call.
7857         * aclocal.m4 (GROFF_TMAC): Define.
7858         * tmac/Makefile.sub (stamp_wrap): New target.
7859         (install_data, uninstall_sub): Handle macro wrapping.
7860
7861 Mon Jun 26 14:54:39 1995  James Clark  <jjc@jclark.com>
7862
7863         * tbl/main.cc (main): Ignore -T option.
7864
7865 Thu Jun 22 09:08:06 1995  James Clark  <jjc@jclark.com>
7866
7867         * devlj4/generate/special.map: Add definition of \(nb.
7868
7869         * tmac/tmac.dvi: Add definition of \(nb.
7870
7871         * troff/dictionary.c (dictionary::dictionary): association::v gets
7872         initialized by association::association.
7873
7874         * tmac/Makefile.sub: Avoid using temporary files when installing.
7875
7876         * troff/env.cc (environment::set_font): Make bad font number a
7877         warning.
7878
7879         * Makefile.in (fontpath): Remove $(prefix)/lib/font from fontpath.
7880
7881         * Makefile.in (datadir): Use share rather than lib.
7882
7883         * groff/groff.cc (basename): Rename to xbasename.
7884
7885 Wed Jun 21 16:59:46 1995  James Clark  <jjc@jclark.com>
7886
7887         * Makefile (CCLIBS): Don't use.
7888         * Makefile.ccpg: Likewise.
7889
7890         * acgroff.m4: Rename to...
7891         * aclocal.m4: Modify extensively for autoconf 2.
7892         * configure.in: Likewise.
7893         * Makefile.in: Likewise.
7894
7895         * groff/pipeline.c (const): Declare as empty if __STDC__ not
7896         defined.
7897         (xstrsignal): Check for definition of NSIG. Conditionalize
7898         on SYS_SIGLIST_DECLARED.  Make return type const.
7899
7900 Sat Jun 10 12:28:16 1995  James Clark  <jjc@jclark.com>
7901
7902         * troff/input.cc (interpolate_macro): Rephrase missing space
7903         warning.
7904
7905 Thu May 11 01:07:16 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
7906
7907         * addftinfo/addftinfo.cc, eqn/delim.cc, eqn/lex.cc, eqn/list.cc,
7908         grodvi/dvi.cc, groff/groff.cc, grops/ps.cc, grops/psrm.cc,
7909         grotty/tty.cc, include/ptable.h indxbib/indxbib.cc,
7910         libbib/index.cc, libbib/linear.cc, libbib/search.cc,
7911         libdriver/input.cc, libdriver/printer.cc, libgroff/font.cc,
7912         libgroff/lf.cc, libgroff/nametoindex.cc, libgroff/ptable.cc,
7913         libgroff/string.cc, lkbib/lkbib.cc, lookbib/lookbib.cc,
7914         pic/lex.cc, pic/object.cc, pic/pic.y refer/label.y refer/ref.cc,
7915         refer/refer.cc, refer/token.cc, tbl/main.cc, tbl/table.cc,
7916         tfmtodit/tfmtodit.cc, troff/dictionary.cc, troff/div.cc,
7917         troff/env.cc, troff/input.cc, troff/node.cc, troff/symbol.cc:
7918         Fix 'for' scoping.
7919
7920 Wed Apr 19 21:15:11 1995  James Clark  <jjc@jclark.com>
7921
7922         * troff/input.cc (spring_trap): Push a macro_iterator rather than a
7923         string_iterator.
7924         (spring_trap, postpone_traps, unpostpone_traps): Move to later in
7925         file.
7926         (macro_iterator::macro_iterator): Add additional argument.
7927
7928 Mon Apr 10 12:06:02 1995  James Clark  <jjc@jclark.com>
7929
7930         * troff/div.cc (vertical_size::vertical_size): In place of integer
7931         specifying line spacing use cunits specifying post vertical
7932         space.
7933         (macro_diversion::output, top_level_diversion::output): Likewise.
7934         * troff/div.h: Change declarations accordingly.
7935         * troff/env.cc (pending_output_line): Replace ls field by post_vs
7936         field.
7937         (pending_output_line::pending_output_line,
7938         pending_output_line::output, environment::output,
7939         environment::output_line, environment::output_title,
7940         environment::hyphenate_line):  In place of
7941         integer specifying line spacing use cunits specifying post vertical
7942         space.
7943         (environment::environment): Add post_vertical_spacing and
7944         prev_post_vertical_spacing arguments.
7945         (environment::get_post_vertical_spacing): New function.
7946         (environment::total_post_vertical_spacing): New function.
7947         (environment::post_vertical_spacing): New function.
7948         (init_env_requests): Initialize pvs request and .pvs register.
7949         * troff/env.h: Change declarations.
7950
7951 Tue Mar 28 09:52:07 1995  James Clark  <jjc@jclark.com>
7952
7953         * tmac/tmac.pspic: Immediately remove the temporary file.
7954
7955 Sat Mar 25 10:43:11 1995  James Clark  <jjc@jclark.com>
7956
7957         * tmac/tmac.pspic (PSPIC): Scale graphic uniformly even when
7958         height is specified.
7959
7960 Thu Jan 26 16:20:13 1995  James Clark  <jjc@jclark.com>
7961
7962         * tbl/table.c (struct vertical rule, class table_entry): Use int
7963         not short for start_row and end_row.
7964
7965 Fri Jan 13 13:53:05 1995  James Clark  <jjc@jclark.com>
7966
7967         * troff/input.cc (trapping_blank_line, blank_line_macro): New
7968         functions.
7969         (diverted_space_node::reread, process_input_stack): Call
7970         trapping_blank_line() rather than blank_line().
7971         (init_input_requests): Bind "blm" to blank_line_macro().
7972
7973         * tmac/tmac.s (XA): Use .br and par@reset rather than XA.
7974
7975 Tue Jan 10 11:40:35 1995  James Clark  <jjc@jclark.com>
7976
7977         * troff/env.cc (environment::possibly_break_line): Require that
7978         width total excluding width of final space node be greater than
7979         the target text length.
7980
7981 Tue Jan  3 09:13:37 1995  James Clark  <jjc@jclark.com>
7982
7983         * troff/node.cc (kern_pair_node::vertical_extent): New function.
7984
7985 Sun Dec  4 13:19:07 1994  James Clark  <jjc@jclark.com>
7986
7987         * troff/node.cc (charinfo_node): New class.
7988         (glyph_node, composite_node): Derive from charinfo_node.  Change
7989         member functions accordingly.
7990
7991 Wed Nov 30 10:29:29 1994  James Clark  <jjc@jclark.com>
7992
7993         * nroff/nroff.sh: Use -Tlatin1 not -TLatin1.
7994
7995 Mon Aug  8 10:17:59 1994  James Clark  (jjc@jclark.com)
7996
7997         * tmac/tmac.tty-char: Add definitions for \(ab and \[arrowvertex].
7998
7999         * devps/generate/textmap (notsubset): Add.
8000
8001         * tmac/tmac.a4: New file.
8002
8003 Sun Jul 24 20:08:42 1994  James Clark  (jjc@jclark.com)
8004
8005         * pic/main.cc (had_parse_error): New variable.
8006         (do_picture, do_whole_file): Set had_parse_error if yyparse()
8007         returns non-zero.
8008         (main): Return 1 if had_parse_error is true.
8009
8010 Tue Jul 19 13:40:31 1994  James Clark  (jjc@jclark.com)
8011
8012         * grolj4/lj4.cc (main): Avoid use of strtoul.
8013
8014 Mon Jul 18 15:03:02 1994  James Clark  (jjc@jclark.com)
8015
8016         * nroff/nroff.sh: Default device is -Tlatin1 if $LC_CTYPE is
8017         iso_8859_1 or $LESSCHARSET is latin1.
8018
8019 Sun Jul 10 13:38:35 1994  James Clark  (jjc@jclark.com)
8020
8021         * hpftodit: New directory.
8022         * Makefile.in (CCPROGDIRS): Add hpftodit.
8023         * devlj4/generate: New directory.
8024
8025 Thu Jul  7 23:49:48 1994  James Clark  (jjc@jclark.com)
8026
8027         * configure.in: Don't use AC_VFORK.
8028         * groff/pipeline.c (run_pipeline): Use fork() always.
8029
8030 Wed Jul  6 11:13:17 1994  James Clark  (jjc@jclark.com)
8031
8032         * grops/ps.cc (main): Use %1 not %s in error message for -w.
8033
8034         * Makefile.in (CCPROGDIRS): Add grolj4.
8035         (DEVDIRS): Add devlj4.
8036         * grolj4, devlj4: New directories.
8037         * tmac/troffrc: Handle lj4.
8038         * tmac/tmac.lj4: New file.
8039
8040 Fri Jun 17 18:02:53 1994  James Clark  (jjc@jclark.com)
8041
8042         * tmac/tmac.e (@n): Set indent to 0 before calling |h.
8043
8044 Wed Jun  1 07:33:47 1994  James Clark  (jjc@jclark.com)
8045
8046         * troff/input.cc (do_if_request): At end of second string, switch
8047         environments before getting next token.
8048
8049 Fri May 20 07:39:18 1994  James Clark  (jjc@jclark.com)
8050
8051         * devps/psstrip.sed: Split rule that strips whitespace on either
8052         side of delimiters.
8053
8054 Wed May 18 08:13:47 1994  James Clark  (jjc@jclark.com)
8055
8056         * troff/node.h (font_family::make_definition): Add return value to
8057         declaration.  * troff/symbol.h (symbol::operator==,
8058         symbol::operator!=): Likewise.
8059
8060 Tue May 17 20:46:06 1994  James Clark  (jjc@jclark.com)
8061
8062         * groff/groff.cc (main, help, synopsis): Handle -S.
8063         (possible_command::insert_arg): New function.
8064
8065         * tmac/tmac.safer: New file.
8066         * tmac/msafer.man: New file.
8067         * tmac/Makefile.sub (FILES): Add tmac.safer and msafer.man.
8068
8069 Thu Mar 10 01:58:30 1994  Paul Eggert  (eggert@twinsun.com)
8070
8071         * pic/pic.h, pic/main.cc (safer_flag): New variable.
8072         * pic/pic.y (placeless_element): Avoid unsafe operations if
8073         `safer_flag' is set.
8074         * pic/main.cc (main): Add -S option, which sets `safer_flag'.
8075
8076 Tue May 10 13:02:31 1994  James Clark  (jjc@jclark.com)
8077
8078         * eqn/lex.cc (get_token): Put call to add_context() in block to
8079         work around Sun C++ 4.0 bug.
8080
8081         * include/stringclass.h (operator +): Use ?: instead of `if' to
8082         work around Sun C++ 4.0 bug.
8083
8084 Thu May  5 11:18:03 1994  James Clark  (jjc@jclark.com)
8085
8086         * tbl/main.cc (process_format): Accept - as a synonym for the _
8087         key letter.
8088
8089         * libbib/index.cc (minus_one): Don't declare as const.
8090
8091 Fri Apr 29 09:32:48 1994  James Clark  (jjc@jclark.com)
8092
8093         * troff/input.cc (get_char_for_escape_name): Push back a newline.
8094
8095 Wed Apr 27 21:14:18 1994  James Clark  (jjc@jclark.com)
8096
8097         * troff/input.cc (write_macro_request): New function.
8098         (init_input_requests): Bind write_macro_request to writem.
8099
8100 Sun Apr 17 11:15:38 1994  James Clark  (jjc@jclark.com)
8101
8102         * tmac/tmac.s (@EN): Turn filling back on even if there was no
8103         equation.
8104
8105         * eqn/lex.cc (do_space): Supply missing argument to lex_error.
8106
8107         * tmac/tmac.s (@TS): Renamed from TS.
8108         (TS): Call LP then TS again.
8109         (cov*ab-init): Alias @TS to TS.
8110
8111         * tmac/tmac.s: Allow QP or RS to initialize.
8112
8113         * tmac/tmac.s (par@load-init): New macro.  Call at end of file.
8114         Move initializations of PS and LL here.
8115         (par@init): Don't initialize HY.  Avoid changing environment 0.
8116         (par*env-init): Don't all par@reset.
8117
8118 Thu Apr 14 19:15:45 1994  James Clark  (jjc@jclark.com)
8119
8120         * include/posix.h: Include <fcntl.h> only if not using <osfcn.h>.
8121
8122 Sun Apr 10 09:54:44 1994  James Clark  (jjc@jclark.com)
8123
8124         * Makefile.in (MDEFINES): Add LDFLAGS.
8125         (LDFLAGS): Add definition line.
8126
8127 Thu Apr  7 22:22:22 1994  James Clark  (jjc@jclark.com)
8128
8129         * troff/input.cc (get_optional_char): Split off error check into...
8130         (check_missing_character): New function.
8131         * troff/token.h: Declare it.
8132         * troff/env.cc (margin_character): Don't call get_optional_char.
8133         Only call tok.next() after making the node.
8134
8135         * include/lib.h (getopt): Make 2nd argument char *const *.
8136
8137 Fri Mar 11 07:28:03 1994  James Clark  (jjc@jclark.com)
8138
8139         * nroff/conftest.sh: Deleted.
8140
8141 Fri Mar  4 10:51:36 1994  James Clark  (jjc@jclark.com)
8142
8143         * pic/make-dos-dist: Deleted.
8144
8145 Wed Mar  2 20:59:16 1994  James Clark  (jjc@jclark.com)
8146
8147         * devps/psstrip.sed: Strip comments before stripping trailing
8148         white space.
8149
8150 Sat Feb 19 13:07:16 1994  James Clark  (jjc@jclark.com)
8151
8152         * Version 1.09 released.
8153
8154 Wed Feb 16 16:53:49 1994  James Clark  (jjc@jclark.com)
8155
8156         * tmac/doc-ditroff (hK): Don't reset page number if \nC is > 0.
8157
8158 Mon Feb 14 08:26:40 1994  James Clark  (jjc@jclark.com)
8159
8160         * libgroff/font.cc (font::load_desc): Fix typo in error message.
8161
8162 Sun Feb 13 09:37:38 1994  James Clark  (jjc@jclark.com)
8163
8164         * libgroff/new.cc (operator new): Rewrite so as to avoid warning
8165         about returning without a value.
8166
8167         * troff/charinfo.h (charinfo::get_special_translation): Cast
8168         TRANSLATE_NONE to int.
8169
8170         * refer/token.cc (lookup_token, store_token): Remove bogus loop
8171         test.  Fix test so that it works with n unsigned.
8172
8173         * pic/pic.y (defaults_table): Fully bracket initializer.
8174         * pic/lex.cc (lookup_keyword): Likewise.
8175         * eqn/lex.cc (token_table, def_table): Likewise.
8176         * eqn/box.cc (param_table): Likewise.
8177         * troff/input.cc (warning_table): Likewise.
8178         * libgroff/font.cc (table): Likewise.
8179         * grops/ps.cc (ps_printer::special): Likewise.
8180         * grops/psrm.cc (resource_manager::process_file): Likewise.
8181         * tfmtodit/tfmtodit.cc (lig_chars, lig_table): Likewise.
8182         * refer/command.cc (command_table): Likewise.
8183         * addftinfo/addftinfo.cc (param_table): Likewise.
8184
8185         * troff/symbol.cc (symbol::symbol): Prevent compiler warnings
8186         about temp's being unused.
8187         (unused): New function.
8188
8189         * groff/pipeline.cc: Declare c_fatal.
8190
8191         * libbib/linear.cc (bmpattern::search): Cast patterrn[--j] to
8192         uchar.
8193
8194         * libbib/index.cc (index_search_item::load): Prevent compiler
8195         warnings about fd_closer's being unused.
8196         (unused): New function.
8197
8198 Sat Feb 12 10:31:59 1994  James Clark  (jjc@jclark.com)
8199
8200         * troff/input.cc (copy_mode_error): Make `prefix' static.
8201         Fix typo.
8202
8203         * include/posix.h: Include <osfcn.h> is HAVE_CC_OSFCN_H is
8204         defined.
8205         * acgroff.m4, configure.in, Makefile: Rename HAVE_CC_UNISTD_H to
8206         HAVE_CC_OSFCN_H and modify accordingly.
8207
8208         * troff/input.cc (init_charset_table): radicalex overlaps
8209         horizontally.
8210
8211         * groff/acgroff.m4 (GROFF_ISC_SYSV3): New macro (from
8212         udodo!hans@relay.NL.net).
8213         * groff/configure.in: Call it.
8214
8215         * groff/acgroff.m4 (GROFF_PCLOSE): New macro.
8216         * groff/configure.in: Call it.
8217         * include/lib.h: Conditionalize declaration of pclose.
8218
8219         * troff/div.cc (last_page_number): New global variable.
8220         (top_level_diversion::begin_page): Exit if we just printed the
8221         last page.
8222         * troff/div.h (last_page_number): Declare it.
8223         * troff/input.cc (parse_output_page_list): Set last_page_number.
8224
8225         * eqn/sqrt.cc: Rename \(rn to \[radicalex].
8226         * devps/S, devps/textmap, tmac/tmac.ps, tmac/tmac.dvi,
8227         tmac/tmac.X: Likewise.
8228         * tmac/tmac.ps, tmac/tmac.X, tmac.dvi: Add definitions of \(rn.
8229         * tmac.dvi: Make \(ru and \(ul extend beyond their width by .04m.
8230
8231 Fri Feb 11 11:45:40 1994  James Clark  (jjc@jclark.com)
8232
8233         * tmac/doc-ditroff (hK): Remove groff specific code which
8234         prevented page-breaks between separate manual entries.  If this is
8235         the first page, don't set the page number to 1.
8236
8237         * acgroff.m4 (GROFF_POSIX): New macro.
8238         * configure.in: Use it.
8239
8240         * troff/node.cc (class real_output_file,
8241         real_output_file::real_output_file,
8242         real_output_file::~real_output_file): Conditionalize use of
8243         popen/pclose on POPEN_MISSING.
8244         * troff/node.h: Conditionalize pipe_command on POPEN_MISSING.
8245         * troff/input.cc (pipe_command): Give an error if POPEN_MISSING.
8246         (pipe_source): Similarily.
8247
8248         * acgroff.m4 (GROFF_PROG_CCC): Update message about libg++.
8249
8250         * acgroff.m4 (GROFF_GETOPT, GROFF_PUTENV, GROFF_POPEN): Detect
8251         presence of declarations by trying to compile example with
8252         conflicting declarations.  (gcc only gives a warning for missing
8253         declarations.)
8254
8255 Wed Feb  9 09:12:23 1994  James Clark  (jjc@jclark.com)
8256
8257         * tmac/tmac.pspic (PSPIC): Allow options to specify alignment
8258         (from Ulrich Lauther).
8259
8260 Tue Feb  8 03:56:40 1994  James Clark  (jjc@jclark.com)
8261
8262         * libbib/linear.cc (file_buffer::load): Use S_ISREG macro.
8263
8264 Thu Feb  3 09:34:35 1994  James Clark  (jjc@jclark.com)
8265
8266         * indxbib/indxbib.cc (write_hash_table): Add code for case where
8267         pointers and ints have different sizes.
8268
8269 Sun Jan  9 16:17:51 1994  James Clark  (jjc@jclark.com)
8270
8271         * tmac/tmac.s (par*env-init): Call par@reset.
8272
8273 Fri Jan  7 10:24:27 1994  James Clark  (jjc@jclark.com)
8274
8275         * tmac/tmac.s (@IP): Switch to a new environment when diverting
8276         tag.
8277         (par*push-tag-env, par*pop-tag-env): New macros.
8278
8279 Wed Jan  5 21:18:34 1994  James Clark  (jjc@jclark.com)
8280
8281         * grops/ps.cc (ps_printer::ps_printer): Use MAX_LINE_LENGTH for
8282         initializing `out'.  Reduce MAX_LINE_LENGTH from 79 to 72.
8283
8284         * grops/ps.cc (ps_printer::~ps_printer): Output %%CreationDate
8285         comment.  Include <time.h>.
8286
8287 Wed Dec 15 14:14:00 1993  James Clark  (jjc@jclark.com)
8288
8289         * grops/ps.cc (is_small_h, is_small_v): Deleted.
8290         (ps_printer::flush_sbuf): Use absolute motion only at beginning of
8291         lines.
8292
8293 Tue Dec 14 10:06:34 1993  James Clark  (jjc@jclark.com)
8294
8295         * troff/input.cc (read_request): Only print a prompt if reading
8296         from the terminal.  Also clearerr on EOF if reading from the
8297         terminal.  Declare isatty.
8298
8299 Mon Nov 29 08:38:15 1993  James Clark  (jjc@jclark.com)
8300
8301         * refer/label.y: Rename map_t to map_func and extractor_t to
8302         extractor_func.
8303
8304 Sat Oct 30 06:38:12 1993  James Clark  (jjc@jclark.com)
8305
8306         * include/assert.h: Don't use volatile.
8307         * libgroff/assert.cc: Likewise.
8308
8309 Fri Oct 29 15:00:23 1993  James Clark  (jjc@jclark.com)
8310
8311         * troff/input.cc (abort_request): Look at character in tok before
8312         calling get_copy().
8313
8314 Thu Oct 28 14:09:48 1993  James Clark  (jjc@jclark.com)
8315
8316         * troff/troff.h (NO_RETURN): Deleted.
8317         * troff/div.cc (cleanup_and_exit):  Don't declare aas NO_RETURN.
8318         * troff/input.cc (exit_troff): Likewise
8319
8320         * Makefile.in: Remove `Making ...' messages since GNU make now
8321         gives these. 
8322
8323         * configure.in: Use AC_HAVE_HEADERS(unistd.h) instead of AC_UNISTD_H.
8324
8325 Wed Oct 27 11:12:51 1993  James Clark  (jjc@jclark.com)
8326
8327         * tmac/tmac.s (@init): Initialize PO to \n(.o here, rather than
8328         to constant 1 inch.
8329
8330 Sat Oct 23 10:03:52 1993  James Clark  (jjc@jclark.com)
8331
8332         * tmac/tmac.e (hl): Use \n[.in] rather than \n(.i.
8333
8334 Thu Oct 14 12:09:45 1993  James Clark  (jjc@jclark.com)
8335
8336         * eqn/delim.cc (delim_box::compute_metrics): Don't increase
8337         MARK_REG if there was no left delimiter.
8338
8339 Sat Oct  2 19:54:47 1993  James Clark  (jjc@jclark.com)
8340
8341         * pic/troff.cc (troff_output::text): Set line thickness to
8342         relative before outputting text.
8343
8344         * tmac/tmac.e (@k): Don't zero ?T.
8345         ((z): Likewise.
8346
8347 Sat Sep 25 11:08:43 1993  James Clark  (jjc@jclark.com)
8348
8349         * tmac/tmac.e ($p): Handle possibility that $3 is empty.
8350
8351 Wed Aug 18 08:51:41 1993  James Clark  (jjc@jclark.com)
8352
8353         * troff/input.cc (decode_args): Warn about unquoted tabs (from
8354         Paul Eggert).
8355
8356 Tue Aug 10 08:38:32 1993  James Clark  (jjc@jclark.com)
8357
8358         * troff/input.cc (ignoring): New variable.
8359         (ignore): Set ignoring during call to do_define_macro.
8360         (do_define_macro): Clear ignoring before interpolating terminating
8361         macro.
8362         (copy_mode_error): New function.
8363         (get_char_for_escape_name, read_long_escape_name,
8364         interpolate_arg): Use copy_mode_error.
8365         (warning_table): Add WARN_IG.
8366         * troff/troff.h (WARN_IG): Declare.
8367         (WARN_TOTAL): Change accordingly.
8368
8369         * groff/pipeline.c (strsignal): Rename to xstrsignal.
8370         * groff/groff.cc (strsignal): Delete declaration.
8371
8372 Fri Jul 16 01:43:12 1993  James Clark  (jjc@jclark.com)
8373
8374         * troff/div.cc (page_offset): Use 'm' as default scaling.
8375
8376 Sat Jul  3 09:11:38 1993  James Clark  (jjc@jclark.com)
8377
8378         * nroff/nroff.sh: Ignore -u.
8379
8380 Wed Jun  9 12:17:27 1993  James Clark  (jjc@jclark.com)
8381
8382         * Makefile.in (MDEFINES): Pass down MAKEOVERRIDES.
8383
8384 Fri Jun  4 17:35:47 1993  James Clark  (jjc@jclark.com)
8385
8386         * tmac/tmac.s (par*box-draw): Set adjustment mode to l while
8387         drawing box.
8388         (B2): With -Tascii, leave additional vertical space before
8389         and after. Ensure that the left and right indent is restored to
8390         what it was even if the point size changes.  Don't call
8391         par@finish. Change the indent, line length and title length
8392         directly.  With -Tascii, make the width of the box 1n less.
8393         (B1): Remember 1n at the current point size.  Don't call
8394         par@reset.  Change the indent, line length and title length
8395         directly.  Ensure that the temporary indent is preserved.
8396         (par*box-mark-top): Turn off no spacing mode.
8397
8398 Thu Jun  3 17:47:14 1993  James Clark  (jjc@jclark.com)
8399
8400         * Makefile.in (dist): Use .gz suffix.
8401
8402 Thu May 27 20:04:59 1993  James Clark  (jjc@jclark.com)
8403
8404         * troff/input.cc (main): Add return 0.
8405         * pic/main.cc (main): Use return instead of exit.
8406         * tbl/main.cc (main): Likewise.
8407         * eqn/main.cc (main): Likewise.
8408         * grops/ps.cc (main): Likewise.
8409         * grotty/tty.cc (main): Likewise.
8410         * groff/groff.cc (main): Likewise.
8411         * grodvi/dvi.cc (main): Likewise.
8412         * refer/refer.cc (main): Likewise.
8413         * indxbib/indxbib.cc (main): Likewise.
8414         * lkbib/lkbib.cc (main): Likewise.
8415         * soelim/soelim.cc (main): Likewise.
8416         * addftinfo/addftinfo.cc (main): Likewise.
8417         * acgroff.m4 (GROFF_PROG_CCC, GROFF_CC_COMPILE_CHECK,
8418         GROFF_COOKIE_BUG, GROFF_CC_ANSI_BUG): Likewise.
8419
8420         * troff/token.h (process_input_stack): Don't declare as static.
8421         * troff/input.cc: Likewise.
8422
8423         * troff/node.c (invalidate_fontno): Make it a static member of
8424         class font_family.  Change callers.
8425         * troff/node.c: Change declaration.
8426
8427         * tbl/main.cc (struct input_entry_format): Add explicit public
8428         specifier.
8429         * tbl/table.cc (struct text_stuff, struct single_hline_stuff,
8430         struct double_hline_stuff): Likewise.
8431         * tbl/table.h (struct entry_format): Likewise.
8432         * pic/object.h (struct saved_state): Likewise.
8433
8434         * include/stringclass.h: Add forward declarations of friend
8435         functions that are later declared as inline.  Don't include inline
8436         specifier in friend declaration.
8437
8438         * libgroff/lib.h: Declare popen and pclose.
8439         * acgroff.m4 (GROFF_POPEN): New macro.
8440         * configure.in: Call it.
8441
8442         * include/lib.h (PI): New constant. Undef first if necessary.
8443         * tfmtodit/tfmtodit.cc (main): Use PI rather than M_PI.
8444         * grops/ps.cc (degrees, radians): Likewise.
8445         * libgroff/font.cc (font::get_skew): Likewise.
8446
8447         * grops/ps.cc (is_ascii): New function.
8448         (ps_output::put_string): Use is_ascii.  Use csprint rather than
8449         isprint.
8450         (ps_printer::define_encoding): Use csspace.
8451         * libgroff/strtol.c (ISASCII): New macro.
8452         (strtol): Cast arguments to is*() and tolower() to unsigned char.
8453         Use ISASCII rather than isascii.
8454         * libgroff/cmap.cc: Use isascii() only if <ctype.h> defines it.
8455         * libgroff/cset.cc: Likewise.
8456         * libdriver/input.cc: Include cset.h.
8457         (do_file, get_integer, possibly_get_integer): Use csdigit() rather
8458         than isdigit().
8459
8460         * refer/refer.cc (main): Use %ld rather than %d for longs.
8461
8462         * libbib/index.cc (index_search_item_iterator::get_tag): Use
8463         S_ISREG macro.
8464
8465         * addftinfo/addftinfo.cc (param_t): Add explicit `int'.
8466
8467 Mon May 24 08:51:37 1993  James Clark  (jjc@jclark.com)
8468
8469         * troff/input.cc (hyphenation_code): Skip white space between
8470         char/code pairs.
8471
8472 Sun May 16 08:15:52 1993  James Clark  (jjc at jclark.com)
8473
8474         * tbl/table.h (table::entry_list_tailp): New member.
8475         (table::table): Initialize it.
8476         (table::add_entry): Use entry_list_tailp to avoid O(n^2)
8477         behaviour.
8478
8479 Sat May 15 17:26:00 1993  James Clark  (jjc at jclark.com)
8480
8481         * grotty/tty.cc (tty_printer::add_char): Don't discard characters
8482         with negative horizontal positions. Remove casts of glyph::hpos to
8483         int.
8484         (USHRT_MAX): Delete definition.
8485         (SHRT_MAX, SHRT_MIN): New definitions.
8486         (glyph::hpos): Change type to short.
8487         (tty_printer::end_page): Output multiple backspaces if necessary.
8488          Remove casts of glyph::hpos to int.
8489         
8490 Fri May  7 12:14:37 1993  James Clark  (jjc at jclark.com)
8491
8492         * tmac/tmac.s (@RT): New definition.
8493
8494 Thu May  6 21:36:54 1993  James Clark  (jjc at jclark.com)
8495
8496         * refer/refer.cc (do_file): Make sure current_filename is set when
8497         filename is "-".
8498
8499         * pic/common.cc (common_output::dot_line): Handle zero length
8500         lines.
8501
8502 Sun May  2 19:54:16 1993  James Clark  (jjc at jclark.com)
8503
8504         * tmac/tmac.s (par@reset): Get value for .hy for \n[HY].
8505         (par@init): Initialize \n[HY].
8506
8507 Mon Apr 26 11:43:16 1993  James Clark  (jjc at jclark.com)
8508
8509         * troff/dictionary.cc (dictionary::remove): Continue when
8510         r < j < i.
8511
8512 Sun Apr 25 11:03:00 1993  James Clark  (jjc at jclark.com)
8513
8514         * Makefile.com (.y.cc): Avoid ending up with two versions of
8515         $(YTABH).
8516
8517 Thu Apr 22 21:03:45 1993  James Clark  (jjc at jclark.com)
8518
8519         * tmac/tmac.dvi (\(,c): Define only if it does not exist.
8520         (\(,C): Likewise.  Also fix typo.
8521
8522 Wed Apr 21 08:47:32 1993  James Clark  (jjc at jclark.com)
8523
8524         * lib.h: Delete extraneous semi-colon.
8525
8526         * Add pso request: `so' from a pipe.
8527         * troff/input.c (file_iterator::file_iterator): Add 3rd argument.
8528         (file_iterator::close): New function.
8529         (file_iterator::~file_iterator, file_iterator::next_file): Use
8530         file_iterator::close.
8531         (file_iterator::backtrace): Say `process' rather than `file' when
8532         the stream is popened.
8533         (pipe_source): New function.
8534         (init_input_requests): Bind ".pso" to pipe_source.
8535
8536 Tue Apr 20 00:02:26 1993  James Clark  (jjc at jclark.com)
8537
8538         * afmtodit/afmtodit.pl: Avoid single quotes in comments.
8539
8540         * pfbtops/pfbtops.c: Output 64 characters per line.  Output hex
8541         digits in lower case.
8542
8543 Mon Apr 19 09:55:57 1993  James Clark  (jjc at jclark)
8544
8545         * Version 1.08 released.
8546
8547         * Makefile.in (dist): Insert || true after ln -s commands that
8548         might fail.
8549
8550         * mm: Update to mm 1.16.
8551
8552         * acgroff.m4 (GROFF_CSH_HACK): New macro.
8553         * configure.in: Call GROFF_CSH_HACK.  Substitute for
8554         SH_SCRIPT_SED_CMD.
8555         * Makefile.in (SH_SCRIPT_SED_CMD): New variable.  Include in
8556         MDEFINES.
8557         * nroff/Makefile.sub (nroff): New target.
8558         (install_data): Install nroff.
8559         * eqn/Makefile.sub (neqn): Sed with SH_SCRIPT_SED_CMD.
8560         * grog/Makefile.sub (grog): Sed grog.sh with SH_SCRIPT_SED_CMD.
8561
8562 Sat Apr 17 08:24:28 1993  James Clark  (jjc at jclark)
8563
8564         * eqn/Makefile.sub (neqn): Add chmod +x.
8565
8566         * grog/Makefile.sub (grog): Remove spurious semi-colon.
8567
8568 Fri Apr 16 22:41:57 1993  James Clark  (jjc at jclark)
8569
8570         * troff/input.cc (string_iterator::string_iterator()): Initialize
8571         lineno and count.
8572
8573 Tue Apr 13 10:22:28 1993  James Clark  (jjc at jclark)
8574
8575         * troff/div.cc (macro_diversion::space,
8576         top_level_diversion::space): Don't set high_water_mark.
8577         (macro_diversion::output, top_level_diversion::output): Don't
8578         include post line space in high water mark.
8579
8580 Wed Apr  7 12:48:18 1993  James Clark  (jjc at jclark)
8581
8582         * eqn/eqn.y: Don't define YYDEBUG.
8583         * pic/pic.y: Likewise.
8584
8585 Mon Apr  5 10:15:15 1993  James Clark  (jjc at jclark)
8586
8587         * tmac/tmac.e ([3): Add space after comma following editors.
8588         Change double spaces to single spaces.
8589         ([4): Change double spaces to single spaces.
8590
8591         * grops/ps.h (USE_PS_ADOBE_2_0): New flag for broken_flags.
8592         * grops/ps.cc (ps_printer::~ps_printer): If the USE_PS_ADOBE_2_0
8593         bit is set in broken_flags, use 2.0 rather than 3.0 as the version
8594         after %!PS-Adobe- (for Newsprint).
8595
8596         * troff/div.cc (top_level_diversion::begin_page): When
8597         before_first_page is 1, set page_number to 1.
8598
8599 Sun Apr  4 14:28:53 1993  James Clark  (jjc at jclark)
8600
8601         * eqn/box.cc (box::top_level): Protect equation with \&.
8602
8603 Sat Apr  3 23:27:25 1993  James Clark  (jjc at jclark)
8604
8605         * groff/groff.cc (possible_command::set_name): Delete old name.
8606
8607         * groff/groff.cc (possible_command::~possible_command): Use
8608         a_delete.
8609
8610         * troff/node.cc (troff_output_file::begun_page): New member.
8611         (troff_output_file::troff_output_file): Initialize it.
8612         (troff_output_file::really_begin_page): Only output V command if a
8613         page has been begun.
8614
8615         * pic/pic.y (placeless_element): Delete argument to PRINT after
8616         use.
8617
8618 Fri Apr  2 11:31:02 1993  James Clark  (jjc at jclark)
8619
8620         * Make wrapman work.
8621         * troff/div.h (class top_level_diversion): Replace
8622         first_page_begun by before_first_page (with opposite sense).
8623         * Change first_page_begun to before_first_page inverting sense.
8624         * troff/div.cc (class nl_reg): New class.
8625         (init_div_requests): Use class nl_reg for \n(nl.
8626         (top_level_diversion::begin_page): Don't call
8627         output_file::begin_page if before_first_page is 2;
8628         reset before_first_page afterwards.  If have_next_page_number is
8629         false, then always increment page_number.
8630         * tmac/tmac.an: Set traps within TH rather than at the top-level.
8631         Restore compatibility mode after loading, and then disable
8632         compatibility mode in TH.
8633
8634 Thu Apr  1 11:09:34 1993  James Clark  (jjc at jclark)
8635
8636         * grotty/tty.cc (tty_printer::end_page): Don't discard characters
8637         past last line.
8638         * troff/node.h (output_file::trailer): Declare.
8639         * troff/div.cc (cleanup_and_exit): Call output_file::trailer().
8640         * troff/node.cc (output_file::trailer): New function.
8641         (troff_output_file::~troff_output_file): Move most code into...
8642         (troff_output_file::trailer): New function.
8643         (class troff_output_file): Delete page_length member. Declare
8644         trailer().
8645         (troff_output_file::really_begin_page): Use current page length
8646         for final V command.
8647
8648         * tbl/main.cc (struct options): New decimal_point_char member.
8649         (options::options): Initialize this.
8650         (process_options): Implement decimalpoint option.
8651         (process_data): Pass decimal_point_char option to table::table.
8652         * tbl/table.h (class table): New decimal_point_char member.
8653         (table::table): Add additional argument.
8654         * tbl/table.cc (find_dot): Rename to find_decimal_point. Add
8655         second argument specifying decimal point character.  Use this
8656         instead of '.'.
8657         (table::table): Initialize decimal_point_char.
8658         (table::add_entry): Change call to find_dot.
8659
8660         * troff/input.cc (get_copy, token::next): Implement \V.
8661         (interpolate_environment_variable): New function.
8662
8663 Tue Mar 30 14:41:39 1993  James Clark  (jjc at jclark)
8664
8665         * pic/lex.cc (lookup_keyword): Rename MIN to K_MIN, MAX to K_MAX.
8666         * pic/pic.y: Likewise.
8667
8668         * grotty/tty.cc (tty_printer::add_char, tty_printer::end_page):
8669         Add casts to int.
8670         * refer/ref.cc (reference::insert_field, reference::delete_field):
8671         Likewise.
8672         * troff/number.cc (parse_term): Likewise.
8673
8674         * acgroff.m4 (GROFF_PROG_YACC): New macro.
8675         * configure.in: Use GROFF_PROG_YACC.
8676
8677         * acgroff.m4 (GROFF_PROG_CCC): Don't add -O automatically for gcc
8678         and g++.
8679         * Makefile.in (OPTIMIZE): New define.
8680         (DEBUG): Empty by default.
8681         (CCFLAGS, CFLAGS): Include $(OPTIMIZE).
8682
8683         * acgroff.m4 (GROFF_SYS_SIGLIST): Don't quote program.
8684         (GROFF_ARRAY_DELETE): Likewise.
8685         (GROFF_CC_COMPILE_CHECK): Quote use of $2 and $3.
8686
8687         * troff/env.cc (trie::~trie): Make virtual to shut up g++.
8688
8689         * devps/psstrip.sed: Use different delimiter on last line (so that
8690         it works with BSD 4.4 sed.)
8691
8692 Mon Mar 29 17:07:14 1993  James Clark  (jjc at jclark)
8693
8694         * devps/psstrip.sed: Delete comments.
8695
8696         * acgroff.m4 (AC_GETOPT): Don't test whether <unistd.h> declares
8697         optind, opterr, optarg.
8698         * lib.h: When UNISTD_H_DECLARES_GETOPT is defined, declare optind,
8699         opterr, optarg.
8700
8701 Sun Mar 28 17:44:25 1993  James Clark  (jjc at jclark)
8702
8703         * Makefile.in (check): Dummy target.
8704
8705 Wed Mar  3 04:53:38 1993  James Clark  (jjc at jclark)
8706
8707         * Version 1.07 released.
8708
8709         * Integrate mm 1.11.
8710
8711         * tbl/table.cc (alphabetic_block_entry::print): start_row was used
8712         where start_col was meant.
8713
8714 Thu Feb 25 07:55:36 1993  James Clark  (jjc at jclark)
8715
8716         * grog/grog.sh, grog/grog.pl: Recognize PH and SA as -mm macros.
8717
8718 Wed Feb 24 10:15:34 1993  James Clark  (jjc at jclark)
8719
8720         * troff/input.cc (token::next): Make \z\o'...' and similar things
8721         work.
8722
8723         * env.h (MARGIN_CHARACTER_ON, MARGIN_CHARACTER_NEXT): New
8724         constants.
8725         (environment): Add margin_character_flags member.
8726         * env.cc (environment::environment(symbol),
8727         environment::environment(const environment *): Initialize
8728         margin_character_flags.
8729         (margin_character): Rewrite.
8730         (environment::output_line): Add a margin character if
8731         margin_character_flags is non-zero.  Turn off the
8732         MARGIN_CHARACTER_NEXT bit.  If that makes margin_character_flags
8733         zero, use margin_character_node without copying and then set
8734         margin_character_node to 0.
8735
8736         * devps/DESC.in: Change minimum size to 1000.
8737
8738 Tue Feb 23 14:57:49 1993  James Clark  (jjc at jclark)
8739
8740         * troff/symbol.h (symbol::hash): Change return type to unsigned
8741         long.
8742         * troff/dictionary.cc (dictionary::lookup, dictionary::remove):
8743         Add casts to int.
8744
8745         * test-groff: Use -r rather than -x.
8746
8747         * grops/psfig.diff: Include in distribution again.
8748
8749 Mon Feb 22 09:10:44 1993  James Clark  (jjc at jclark)
8750
8751         * Makefile.in (dist): Use gzip.
8752
8753 Sun Feb 21 11:12:53 1993  James Clark  (jjc at jclark)
8754
8755         * acgroff.m4 (GROFF_GETOPT): Check for declaration of getopt() in
8756         unistd.h as well as in stdlib.h.
8757         * include/lib.h: Include <stdlib.h> is STDLIB_H_DECLARES_GETOPT is
8758         defined; otherwise include <sys/types.h> and <unistd.h> if
8759         UNISTD_H_DECLARES_GETOPT is defined.
8760
8761         * configure.in: use builtin(include, ... rather than include(...
8762         * configure: Regenerate with autoconf 1.3.
8763
8764         * libdriver/print.cc (printer::adjust_arc_center): Use new
8765         algorithm suggested by Andy Fyfe.
8766
8767         * libdriver/printer.cc (printer::adjust_arc_center): New function.
8768         * include/printer.h: Declare this.
8769         * grops/ps.cc (ps_printer::draw): Use it.
8770         * grodvi/dvi.cc (dvi_printer::draw): Use it.
8771
8772 Fri Feb 19 23:13:51 1993  James Clark  (jjc at jclark)
8773
8774         * Makefile.comm (.man.n): Replace macrodir by tmacdir.
8775
8776 Thu Feb 11 16:46:59 1993  James Clark  (jjc at jclark)
8777
8778         * eqn/main.cc (main): Handle "eqn -".
8779
8780 Mon Jan  4 20:29:56 1993  James Clark  (jjc at jclark)
8781
8782         * tmac/tmac.e (++): Install fix from comp.bugs.4sd.
8783
8784         * mm: Integrate version 1.08.
8785
8786         * pic/troff.cc (troff_output::finish_picture): Set
8787         EQN_NO_EXTRA_SPACE reg to 0 rather than removing it.
8788         * eqn/box.cc (box::extra_space): Set EQN_NO_EXTRA_SPACE_REG to 0
8789         if it's not defined. Check whether the register is non-zero rather
8790         than whether it's not defined.
8791         * tmac.e ({, <): Make argument to \x zero if \n(0x is non-zero.
8792
8793         * indxbib/indxbib.cc: Move all signal handling into...
8794         * indxbib/signal.c: New file.
8795         * configure.in: Call AC_RETSIGTYPE.
8796
8797         * acgroff.m4 (GROFF_STRUCT_EXCEPTION): New macro.
8798         * configure.in: Call GROFF_STRUCT_EXCEPTION.
8799         * libgroff/matherr.c: Protect with ifdef HAVE_STRUCT_EXCEPTION.
8800
8801         * troff/input.cc (token::token, token::operator=): Work round SGI
8802         C++ bug.
8803         * pic/object.cc (position::position): Likewise.
8804
8805 Mon Dec 28 21:50:21 1992  James Clark  (jjc at jclark)
8806
8807         * pic/pic.h: Move declaration of hypot().
8808
8809 Wed Dec 16 12:28:29 1992  James Clark  (jjc at jclark)
8810
8811         * pic/pic.h: Declare hypot().
8812
8813         * pic/pic.h: Define M_PI if necessary.
8814
8815 Thu Dec 10 12:03:29 1992  James Clark  (jjc at jclark)
8816
8817         * tmac/tmac.e (re): Add alternative version that doesn't use groff
8818         `.ta T' feature.
8819
8820         * devps/prologue.ps (RE): Handle the possibility that the old font
8821         doesn't have a FontName entry.
8822
8823 Wed Dec  2 10:25:29 1992  James Clark  (jjc at jclark)
8824
8825         * tmac/tmac.e (fam): Redefine to set family in environment 2.
8826         (@C): Use @fam not fam.
8827
8828 Thu Nov 26 16:01:25 1992  James Clark  (jjc at jclark)
8829
8830         * lookbib/lookbib.cc (main): Change type of start to const char *.
8831         * lkbib/lkbib.cc (main): Likewise.
8832
8833         * eqn/lex.cc (definition::definition): Don't use member
8834         initializer syntax for members of anonymous unions.
8835
8836         * troff/input.cc (input_stack::backtrace): Change type of to const
8837         char *.
8838
8839 Wed Nov 25 13:43:09 1992  James Clark  (jjc at jclark)
8840
8841         * include/stringclass.h (class string): Declare inline friend
8842         functions as inline in class declaration.
8843         * troff/hvunits.h (class hunits, class vunits): Likewise.
8844         * include/refid.h (class reference_id): Likewise
8845         * troff/troff.h (points_to_units(units), scale(units, double)):
8846         Delete declarations.
8847         * libdriver/input.cc (get_char): Delete declaration.
8848         * include/lib.h: Change 2nd argument of getopt from const char **
8849         to char **.
8850         * troff/symbol.cc (symbol::symbol): Cast `new char *[n]' to `const
8851         char **' before assigning to a `const char **'.
8852         * tbl/table.cc: Delete extra declarations of prints().
8853
8854 Tue Nov 24 14:33:13 1992  James Clark  (jjc at jclark)
8855
8856         * libgroff/font.cc (font::load_desc): Cast `new char *[n]' to `const
8857         char **' before assigning to a `const char **'.
8858
8859         * libgroff/errarg.cc (errarg::errarg): Don't use member
8860         initializer syntax for members of anonymous unions.
8861
8862 Sat Nov 21 05:02:23 1992  James Clark  (jjc at jclark)
8863
8864         * mm: Integrate version 1.07.
8865
8866 Tue Nov 17 16:44:27 1992  James Clark  (jjc at jclark)
8867
8868         * troff/input.c (translate2): Rename to
8869         (translate_no_transparent).
8870         (init_input_requests): Rename tr2 to trnt.
8871
8872 Mon Nov 16 09:49:32 1992  James Clark  (jjc at jclark)
8873
8874         * troff/charinfo.h (class charinfo): Add transparent_translate field.
8875         (charinfo::set_translation, charinfo::set_special_translation):
8876         Add second argument that specifies value for
8877         transparent_translate.
8878         (charinfo::get_translation, charinfo::get_special_translation):
8879         Add optional second argument that specifies whether translation is
8880         being used for transparent throughput.
8881         * troff/input.cc (charinfo::set_translation,
8882         charinfo::set_special_translation): Handle second argument.
8883         (charinfo::charinfo): Initialize transparent_translate.
8884         (translate): Split main part off into
8885         (do_translate): New function.  Pass argument saying whether
8886         translation applies to transparent throughput.
8887         (translate2): New request.
8888         (init_input_requests): Bind translate2 to `tr2'.
8889
8890 Wed Nov 11 11:43:20 1992  James Clark  (jjc at jclark)
8891
8892         * tbl/table.h (class table): Add `nokeep' flag.
8893         * tbl/main.cc (process_options): Handle `nokeep' option.
8894         * tbl/table.cc (table::init_output, table::do_row, table::do_top,
8895         table::do_bottom): Don't output keep/release macro definitions or
8896         calls when `nokeep' option has been specified.
8897
8898 Sat Nov  7 01:28:33 1992  James Clark  (jjc at jclark)
8899
8900         * tmac/tmac.Xps (Xps-char): Use " as delimiter for \Z.
8901
8902 Wed Nov  4 16:29:04 1992  James Clark  (jjc at jclark)
8903
8904         * tbl/table.cc (table_entry::divert, block_entry::do_divert,
8905         block_entry::divert, alphabetic_block_entry::divert): Add extra
8906         argument giving column separation.
8907         (table::compute_widths): Pass column separation to
8908         table_entry::divert().
8909         (block_entry::do_divert): If an entry spans multiple columns and a
8910         minimumum width has been specified for each column, then set the
8911         line length to the sum of the widths (plus possibly the column
8912         separations).
8913
8914         * troff/input.cc (set_escape_char): Don't set the escape_char
8915         until after calling has_arg().
8916
8917 Tue Nov  3 11:23:27 1992  James Clark  (jjc at jclark)
8918
8919         * tbl/table.cc (table::do_top): Add missing \s0 for double box
8920         case.
8921
8922         * tbl/table.cc (table::print_double_hline): Avoid extra new line
8923         in case where r > nrows - 1.
8924
8925         * tbl/table.cc (BODY_HEIGHT): Deleted.
8926         (LINE_SEP): New definition.
8927         (table::print_single_hline, table::print_double_hline,
8928         table::compute_vrule_top_adjust, table::compute_vrule_bot_adjust,
8929         table::do_row, table::do_top): Use LINE_SEP space before a line
8930         instead of \n[.v]-BODY_HEIGHT-BODY_DEPTH.
8931
8932         * tbl/table.cc (text_entry::print_contents): New function.
8933         (text_string_name, right_text_string_name): Deleted.
8934         (TEXT_STRING, RIGHT_TEXT_STRING): Deleted.
8935         (simple_text_entry::do_width, numeric_text_entry::do_width,
8936         alphabetic_text_entry::do_width): Don't store the contents of the
8937         entry in a string.
8938         (left_text_entry::simple_print, right_text_entry::simple_print,
8939         center_text_entry::simple_print,
8940         alphabetic_text_entry::simple_print,
8941         numeric_text_entry::simple_print): Print the entry directly
8942         instead of using the stored string.
8943
8944 Fri Oct 30 10:39:32 1992  James Clark  (jjc at jclark)
8945
8946         * devps/Makefile: Strip PostScript files.
8947         * devps/prologue: Rename to...
8948         * devps/prologue.ps.
8949         * devps/psstrip.sed: New file.
8950         * devps/download: Use .pfa rather than .ps for installed versions
8951         of fonts.
8952
8953 Thu Oct 29 09:14:43 1992  James Clark  (jjc at jclark)
8954
8955         * troff/env.cc (input_trap): Give a warning if the argument is out
8956         of range.
8957
8958         * troff/env.cc (adjust): Treat negative argument as missing. Round
8959         argument > 5 down to 5.
8960
8961         * troff/env.cc (center, right_justify): Make negative argument zero.
8962
8963         * troff/div.cc (page_offset, vertical_position_traps): Treat
8964         invalid argument as missing.
8965         * troff/env.cc (line_spacing, line_length, title_length, indent,
8966         underline, hyphen_line_max_request, control_char,
8967         no_break_control_char, widow_control_request, adjust, input_trap,
8968         point_size): Likewise.
8969         * troff/node.cc (ligature, kern_request, bold_font, track_kern,
8970         constant_space): Likewise.
8971         * troff/input.cc (compatible, shift, warn_request,
8972         set_escape_char): Likewise.
8973
8974         * tbl/main.cc (format::format): Avoid doing `new int[0]'.
8975         * tbl/table.cc (table::table): Likewise.
8976
8977         * Makefile.dev (install_dev): depends on $(DEVFILES).
8978
8979 Wed Oct 28 08:30:57 1992  James Clark  (jjc at jclark)
8980
8981         * devX75, devX75-12, devX100, devX100-12: New directories.
8982         * Makefile.in: Add these to DEVDIRS.
8983
8984         * troff/Makefile.sub, eqn/Makefile.sub, indxbib/Makefile.sub,
8985         afmtodit/Makefile.sub, tmac/Makefile.sub, nroff/Makefile.sub,
8986         grog/Makefile.sub, mm/Makefile.sub (uninstall_sub): New target.
8987         * Makefile.in (uninstall, uninstall_sub, uninstall_dirs): New
8988         targets.
8989         * Makefile.ccpg, Makefile.cpg, Makefile.dev, Makefile.man
8990         (uninstall): New target.
8991         * Makefile.comm (uninstall, uninstall_sub, uninstall_man,
8992         uninstall_prog, uninstall_dev): New targets.
8993
8994         * troff/div.cc (return_request): Treat an invalid argument as
8995         missing.
8996
8997 Mon Oct 26 11:33:47 1992  James Clark  (jjc at jclark)
8998
8999         * tmac/tmac.e ((f): Set up the environment even when there's a
9000         current diversion.  Transperently throughput a call to @N.
9001         (@N): New macro.
9002
9003 Thu Oct 22 05:05:59 1992  James Clark  (jjc at jclark)
9004
9005         * tbl/table.cc (table::compute_vrule_top_adjust): Round adjustment
9006         up to vertical resolution.
9007
9008         * tbl/table.cc (table::do_row): Change row number after printing
9009         stuff list.
9010
9011         * pic/lex.cc (get_token_after_dot): Make .left and .right work.
9012
9013 Wed Oct 21 14:46:45 1992  James Clark  (jjc at jclark)
9014
9015         * Rename CHANGES to NEWS.
9016
9017 Tue Oct 20 23:25:21 1992  James Clark  (jjc at jclark)
9018
9019         * libgroff/new.cc (operator new): Avoid calling malloc(0).
9020
9021 Mon Oct 19 09:10:13 1992  James Clark  (jjc at jclark)
9022
9023         * man.ultrix: Removed.
9024
9025 Sun Oct 18 06:35:15 1992  James Clark  (jjc at jclark)
9026
9027         * Makefile.comm (extraclean): Delete files whose names begin with
9028         `='.
9029
9030         * pic/troff.cc (troff_output::text): Fix typo in implementation of
9031         aligned text.
9032
9033 Sat Oct 10 09:32:29 1992  James Clark  (jjc at jclark)
9034
9035         * troff/env.cc (hyphenate_request, vertical_spacing, no_number):
9036         * troff/div.cc (page_length, need_space, space_request): Treat
9037         invalid optional argument as missing.
9038         * troff/env.cc (number_lines): If the first argument is present
9039         but not a number, turn on line numbering, don't change the next
9040         line number and parse the remaining arguments.
9041
9042         * tmac/tmac.e (@q): Do the `ne' before changing to environment 2.
9043
9044 Thu Oct  8 10:24:40 1992  James Clark  (jjc at jclark)
9045
9046         * eqn/box.h: Change declaration accordingly.
9047         * eqn/box.cc (set_gsize): Change return type to int.  Return 0 if
9048         the specified size was bad but don't give an error.  Check for
9049         overflow.
9050         * eqn/main.cc (main): Change caller. Leave validation to set_gsize.
9051         * eqn/lex (do_size): Likewise.
9052
9053 Wed Oct  7 09:48:59 1992  James Clark  (jjc at jclark)
9054
9055         * acgroff.m4 (GROFF_PROG_CCC): Use fopen when checking for C++
9056         compatible headers.
9057
9058 Sun Oct  4 18:24:02 1992  James Clark  (jjc at jclark)
9059
9060         * tbl/table.cc (table::init_output): Improve error message when
9061         table won't fit on one page.
9062
9063 Fri Oct  2 10:41:40 1992  James Clark  (jjc at jclark)
9064
9065         * pic/troff.cc (troff_output::start_picture): Generate line
9066         containing a horizontal motion equal to the width of the picture.
9067
9068         * groff/groff.cc (main): Allow PROG_PREFIX to be set at runtime
9069         using GROFF_COMMAND_PREFIX environment variable.
9070
9071 Fri Sep 25 11:40:40 1992  James Clark  (jjc at jclark)
9072
9073         * mdate.sh: Use $NF rather than $(NF).
9074
9075 Tue Sep 22 09:47:24 1992  James Clark  (jjc at jclark)
9076
9077         * pic/main.cc (main):  Use %1 not %c in argument to warning.
9078
9079         * eqn/main.cc (main): Output code to check that geqn was given the
9080         correct -T option.
9081
9082 Mon Sep 21 10:59:16 1992  James Clark  (jjc at jclark)
9083
9084         * Makefile.in (dist): Instead of doing `make -f ../Makefile', do
9085         `ln -s ../Makefile .; make; rm -f Makefile'.
9086
9087         * troff/hyphen: Rename to...
9088         * troff/hyphen.us:
9089         * troff/input.cc (main): Delete -H option. Don't call
9090         read_hyphen_file().
9091         * troff/env.cc: Include searchpath.h and macropath.h.
9092         (exception_dictionary): Deleted.
9093         (ht): Deleted.
9094         (read_hyphen_file): Deleted.
9095         (hyphenation_language): New struct.
9096         (class trie, class hyphen_trie): Move declarations up.
9097         (trie_node::~trie_node): Deleted.
9098         (trie::delete_trie_node): New function.
9099         (trie::do_delete): New pure virtual function.
9100         (hyphen_trie::do_delete): New function.
9101         (trie::~trie): New function.
9102         (hyphen_trie::~hyphen_trie): New function.
9103         (trie::clear): No need to chcek that tp is not 0.
9104         (current_language, language_dictionary): New variables.
9105         (hyphen_word): Give an error if no current language.  Use
9106         exceptions dictionary in current language.
9107         (hyphen_trie::read_patterns_file): Find file using macro_path.
9108         Allow comments (starting with %) in patterns file.  Don't make it
9109         a fatal error if the file can't be found.
9110         (hyphenate): Return if no current language.  Get the exceptions
9111         dictionary and the hyphenation patterns from the current language.
9112         (set_hyphenation_language): New variable.
9113         (hyphenation_patterns_file): New function.
9114         (hyphenation_language_reg): New class.
9115         (hyphenation_language_reg::get_string): New function.
9116         (init_hyphen_requests): Bind "hla" to set_hyphenation_language and
9117         "hpf" to hyphenation_patterns_file.  Initialize `.hla' number
9118         register.
9119         * groff/groff.cc (main, help, synopsis): Delete -H option.
9120         * include/Makefile.sub: Don't define HYPHENFILE.
9121         * Makefile.in: Delete hyphenfile variable and remove from MDEFINES.
9122         * Makefile.comm (.man.n): Don't substitute for HYPHENFILE.
9123         * tmac/troffrc: Set hyphenation language to `us'. Load `hyphen.us'
9124         hyphenation patterns.
9125
9126 Sun Sep 20 09:33:02 1992  James Clark  (jjc at jclark)
9127
9128         * eqn/neqn.sh: New file.
9129         * eqn/Makefile.sub: Handle neqn.sh.
9130
9131         * eqn/eqn.h: Declare `nroff' variable.
9132         * eqn/box.cc (param_table): Add `nroff' param.
9133         (nroff): Define it.
9134         * eqn/lex.cc (yylex): Handle TDEFINE and NDEFINE using `nroff'
9135         variable.
9136         * tmac/eqnrc: Set `nroff' to 1 for -Tascii or -Tlatin1.
9137
9138         * troff/troff.h (WARN_FONT): New warning.
9139         (WARN_TOTAL): Change accordingly.
9140         * troff/input.cc (DEFAULT_WARNING_MASK): Include WARN_FONT.
9141         (warning_table): Add WARN_FONT.
9142         * troff/node.cc (mount_font_no_translate): Pass argument to
9143         font::load_font.  If this is non-zero, give a warning.
9144         Don't give an error message when accessing a font that has already
9145         been found to be invalid.
9146         * include/font.h (font::load, font::load_font): Add additional
9147         optional argument which suppresses error message if the font is
9148         not found.
9149         * libgroff/font.cc (font::load_font): Handle additional argument.
9150         (font::load): Add additional argument. If this is non-null, set it
9151         to 1 and don't give error message.
9152
9153         * include/printer.h (printer::end_page): Add argument giving
9154         length of page.
9155         * libdriver/input.cc (do_file): Pass this.
9156         * grops/ps.cc (ps_printer::end_page): Add argument.
9157         * grodvi/dvi.cc (dvi_printer::end_page,
9158         draw_dvi_printer::end_page): Add argument.
9159         * grotty/tty.cc (class tty_printer): Remove lines_per_page and
9160         columns_per_page members. New member nlines.
9161         (DEFAULT_LINES_PER_PAGE): Deleted.
9162         (tty_printer::tty_printer): Don't compute lines_per_page from
9163         font::paperlength. Don't compute columns_per_page from
9164         font::paperwidth.
9165         (tty_printer::add_char): Don't check horizontal position against
9166         columns_per_page. Grow glyphs vector if neccessary.
9167         (tty_printer::end_page): Add argument giving page_length in units.
9168         Discard lines past end of page.
9169
9170 Wed Sep 16 06:29:52 1992  James Clark  (jjc at jclark)
9171
9172         * tmac/tmac.tty-char: Fix definition of \(/l.
9173
9174         * tmac/tmac.X: Define \(en.
9175
9176 Tue Sep 15 10:37:13 1992  James Clark  (jjc at jclark)
9177
9178         * acgroff.m4 (GROFF_PRINT): If a system has lpr and lp but not
9179         lpq, then use lp rather than lpr.
9180
9181         * tmac/tmac.s (par@reset): Don't call `ad'.
9182         (par*env-init): Call `ad'.
9183
9184 Sun Sep 13 18:48:20 1992  James Clark  (jjc at jclark)
9185
9186         * mdate.sh: Use $(NF) instead of $6 to extract year from output of
9187         date.
9188
9189         * troff/symbol.cc: #undef BLOCK_SIZE if it's defined.
9190         * indxbib/indxbib.cc: Likewise.
9191
9192 Sun Sep  6 09:44:46 1992  James Clark  (jjc at jclark)
9193
9194         * libgroff/putenv.c: New file.
9195         * libgroff/Makefile.sub: Add putenv.c to CSRCS.
9196         * Makefile.in: Say that putenv.o can be one of LIBOBJS.
9197         * configure.in: Test for putenv with AC_REPLACE_FUNCS. Test for
9198         stdlib.h with AC_HAVE_HEADERS.
9199
9200 Sat Sep  5 18:11:52 1992  James Clark  (jjc at jclark)
9201
9202         * indxbib/dirnamemax.c: Include <sys/dir.h> only if <dirent.h>
9203         does not exist.
9204
9205 Fri Sep  4 09:43:26 1992  James Clark  (jjc at jclark)
9206
9207         * eqn/box.cc (gsize): Make it an int.
9208         (set_gsize): Parse argument handling increment or decrement.
9209         (box::top_level): Convert gsize to a string.
9210
9211         * troff/input.cc (exit_troff): Make buf unsigned char [].
9212         Call to make_temp_iterator casts buf to char*.
9213
9214         * Makefile.in ($(TARGETS), dot): Pass $(MDEFINES) to recursive makes.
9215
9216         * Makefile.ccpg (depend.temp): Depends on $(YTABC).
9217         * Makefile.cpg (depend.temp): Likewise.
9218
9219         * Makefile.dep: Remove Makefile.dep from $(REALCLEANFILES).
9220
9221         * Makefile.comm: Add y.output to MOSTLYCLEANFILES.
9222
9223 Thu Sep  3 08:01:55 1992  James Clark  (jjc at jclark)
9224
9225         * tmac/tmac.s (B, I, BI, CW): Rewrite avoiding aliases.
9226
9227 Tue Sep  1 18:24:53 1992  James Clark  (jjc at jclark)
9228
9229         * Version 1.06 released.
9230
9231         * Integrate mm 1.04.
9232
9233 Fri Aug 28 11:28:19 1992  James Clark  (jjc at jclark)
9234
9235         * Makefile.comm, Makefile.ccpg, Makefile.cpg: Fix TAGS target.
9236
9237 Thu Aug 27 11:03:33 1992  James Clark  (jjc at jclark)
9238
9239         * afmtodit/afmtodit.pl: Add -n option that disables generation of
9240         ligatures command.
9241         * devps/generate/Makefile (CR, CB, CI, CBI): Pass -n flag to
9242         afmtodit. Regenerate.
9243
9244         * tmac/tmac.e ()z): Adjust _b if necessary so as to avoid moving
9245         @f back past the current position.
9246
9247         * tmac/tmac.e: Change calls to @R so that comments are not part of
9248         arguments.
9249
9250 Tue Aug 25 10:42:07 1992  James Clark  (jjc at jclark)
9251
9252         * configure.in: Check for mkstemp with AC_HAVE_FUNCS.
9253
9254         * acgroff.m4 (GROFF_PROG_CCC): Don't check for <osfcn.h>. Instead
9255         check that we can link a call to a function declared in <stdio.h>.
9256         (GROFF_UNISTD_H): New macro.
9257         * configure.in: Call it.
9258         * Makefile.in: Document it.
9259         * include/posix.h: New file.
9260         * troff/troff.h: Don't include <osfcn.h>
9261         * troff/input.cc: Include posix.h.
9262         * libgroff/new.cc, libgroff/tmpfile.cc: Include posix.h rather than
9263         osfcn.h.
9264         * indxbib/indxbib.cc, libbib/{search.cc,linear.cc,index.cc}:
9265         Include posix.h rather <sys/types.h>, <sys/stat.h>, <osfcn.h>,
9266         <fcntl.h>.
9267         * indxbib/indxbib.cc (S_IRUSR, S_IRGRP, S_IROTH): Delete definitions.
9268         * libbib/index.cc (S_ISREG, O_RDONLY): Delete definitions.
9269         * libbib/search.cc (O_RDONLY): Delete definition.
9270         * refer/refer.cc, include/driver.h, pic/pic.h, groff/groff.cc:
9271         Don't include <osfcn.h>.
9272
9273         * acgroff.m4 (GROFF_TIME_T): New macro.
9274         * configure.in: Call it.
9275         * Makefile.in: Document it.
9276
9277         * acgroff.m4 (GROFF_TRADITIONAL_CPP): New macro.
9278         * configure.in: Call it.
9279         * Makefile.in: Document -DTRADITIONAL_CPP.
9280         * include/ptable.h: Don't include generic.h.
9281         (name2): Define it.
9282
9283         * tmac/tmac.s (][): Make [T1 and [T2 aliases for [T.
9284         Afterwards remove [T1 and [T2.
9285         (ref*spec!0, ref*spec!2): Use T1 rather than T.
9286         (ref*spec!1, ref*spec!4, ref*spec!4): Use T2 rather than T.
9287         (ref*add-T2): Renamed from ref*add-T.
9288         (ref*add-T1): New macro.
9289
9290 Mon Aug 24 11:11:11 1992  James Clark  (jjc at jclark)
9291
9292         * acgroff.m4 (AC_PROG_CCC): Use GROFF_EXIT rather than exit 1.
9293
9294         * libbib/index.cc: Include <fcntl.h>.
9295         (O_RDONLY): Define if necessary.
9296         (make_index_search_item, index_search_item_iterator::get_tag,
9297         index_search_item::check_files): Use O_RDONLY.
9298         * libbib/seach.cc: Include <fcntl.h>, <sys/types.h>, <sys/stat.h>.
9299         (O_RDONLY): Define if necessary.
9300         (search_list::add_file): Use O_RDONLY.
9301         * indxbib/indxbib.cc: Include <fcntl.h>, <sys/types.h>,
9302         <sys/stat.h>.
9303         (S_IRUSR, S_IRGRP, S_IROTH): Define if necessary.
9304         (main): Use these.
9305
9306         * libbib/index.cc (S_ISREG): Define it if necessary.
9307         (index_search_item::load): Use S_ISREG.
9308
9309         * include/driver.h: Include <errno.h>.
9310
9311 Sun Aug 23 11:32:18 1992  James Clark  (jjc at jclark)
9312
9313         * eqn/box.cc (body_height): Increase default value to 85.
9314         (body_depth): Increase default value to 35.
9315
9316 Fri Aug 21 05:34:42 1992  James Clark  (jjc at jclark)
9317
9318         * eqn/pbox.h (SAVE_FONT_STRING): Define it.
9319         * eqn/box.cc (box::top_level): Hide use of \R in a string that is
9320         protected from expansion with \E.
9321
9322         * acgroff.m4 (GROFF_PAGE): Use `case' to test domain.
9323
9324         * Makefile (Makefile): New target.
9325
9326         * Makefile.sub (configure, distfiles): New targets.
9327
9328         * acgroff.m4 (GROFF_BROKEN_SPOOLER_FLAGS): Avoid using ${var:-val}
9329         construct.
9330
9331 Thu Aug 20 12:27:26 1992  James Clark  (jjc at jclark)
9332
9333         * eqn/box.cc (param_table): Add body_height and body_depth.
9334
9335         * eqn/lex.cc (def_table): Make circumflex in hat_def roman.
9336
9337 Tue Aug 18 16:24:25 1992  James Clark  (jjc at jclark)
9338
9339         * psbb/Makefile.sub: Don't link with libgroff.a.
9340
9341         * acgroff.m4 (GROFF_PUTENV): New macro.
9342         * configure.in: Call GROFF_PUTENV.
9343         * Makefile.in: Document STDLIB_H_DECLARES_PUTENV.
9344         * groff/groff.cc: Don't declare putenv if STDLIB_H_DECLARES_PUTENV
9345         is defined.
9346
9347         * troff/env.cc (distribute_space): Rename force_forward argument
9348         to force_reverse.  Reverse the list if force_reverse is true.
9349
9350 Mon Aug 17 17:49:05 1992  James Clark  (jjc at jclark)
9351
9352         * tmac/tmac.an: Don't define a string `T'. Just define Tm.
9353
9354         * eqn/pile.cc (matrix_box::compute_metrics): Don't allow computed
9355         height or depth to be negative.  Guard against SUP_RAISE quantity
9356         being negative.
9357
9358 Sat Aug 15 08:18:54 1992  James Clark  (jjc at jclark)
9359
9360         * devps/generate/textmap: Add `an' (arrowhorizex).
9361         * tmac/tmac.ps: \(an overlaps horizontally.
9362         * tmac/tmac.dvi, tmac/tmac.tty: Add `an'.
9363
9364         * devps/symbolchars: Add arrowverttp, arrowvertbt.
9365         * devps/textmap: Add arrowvertex.
9366         * eqn/delim.cc (delim_table): Add uparrow, downarrow and
9367         updownarrow delimiters.
9368         * tmac/tmac.ps, tmac/tmac.X: Add definition of \(va.
9369
9370         * tbl/table.cc (simple_entry::position_vertically,
9371         block_entry::position_vertically):  For a centered entry, perform
9372         the motion in two stages.
9373
9374         * refer/refer.cc (split_punct): Don't call lookup_token if there
9375         is no token.
9376
9377 Fri Aug 14 11:14:58 1992  James Clark  (jjc at jclark)
9378
9379         * troff/input.cc (token::next): Delete token_node after copying
9380         token.
9381
9382         * grodvi/grodvi.cc (dvi_printer::dvi_printer): Initialize
9383         cur_point_size.
9384
9385         * libdriver/printer.cc (printer::load_font): Delete old_font_table.
9386
9387         * grops/ps.cc (ps_printer::define_encoding): Delete elements of vec.
9388
9389 Tue Aug 11 13:50:38 1992  James Clark  (jjc at jclark)
9390
9391         * grops/ps.cc (usage): -b option takes an argument.
9392
9393         * devps/prologue (PLG): New procedure.
9394         * grops/ps.cc (main, usage): New -g option.
9395         (ps_printer::~ps_printer):  If guess_flag is set, guess the paper
9396         length using PLG.
9397
9398 Mon Aug 10 11:17:53 1992  James Clark  (jjc at jclark)
9399
9400         * include/cset.h: Include <limits.h> if we have it.
9401
9402         * libgroff/illegal.cc: New file.
9403         * include/lib.h (illegal_input_char): Use table.
9404         * troff/input.cc (ESCAPE_RIGHT_PARENTHESIS): Renumber to 0206.
9405         * pic/lex.cc (ARG1): Renumber to 14.
9406         * eqn/lex.cc (ARG1: Likewise.
9407
9408         * troff/Makefile.sub (majorminor.cc): Handle 3 part versions
9409         (eg 1.05.90) correctly.
9410
9411 Sun Aug  9 13:35:43 1992  James Clark  (jjc at jclark)
9412
9413         * tmac/tmac.e (sr): Deleted. Set $r and $R directly.
9414         Rename $r and $R registers to $v and $V.
9415         ($r, $R): Initialize to 0.
9416         (@v, @V): New macros.
9417         (sz): Call @v.
9418         (@M): Call @V.
9419
9420         * troff/input.cc (main, usage): Add -R option that says not to
9421         load troffrc.
9422         * eqn/main.cc (main, usage): Rename -n to -R.
9423
9424 Sat Aug  8 00:16:00 1992  James Clark  (jjc at jclark)
9425
9426         * devps/DESC.in: Leave font positions 5-9 blank.
9427         * devdvi/DESC.in: Likewise.
9428
9429         * grog/grog.pl: Handle `.PS <file' correctly.
9430
9431         * troff/input.cc (input_stack::push): Improve error message when
9432         input stack limit exceeded.
9433
9434 Fri Aug  7 13:08:16 1992  James Clark  (jjc at jclark)
9435
9436         * refer/refer.cc (main): Fix typo in handling of `a' option.
9437
9438         * refer/refer.cc (do_bib): In state START after a newline remain
9439         in state START.
9440
9441         * groff/groff.sh: Deleted.
9442         * groff/Makefile.sub: Delete handling of groff.sh.
9443
9444         * pic/troff.cc (troff_output::text): Test \n(0p rather than \*(.T
9445         to determine whether to use \X'ps:...'.
9446         * tmac/troffrc: Set 0p register to 0.
9447         * tmac/tmac.ps: Set 0p register to 1.
9448
9449         * groff/groff.cc: Support -X option. Give warning for -TXps and
9450         transform to -X -Tps. Pass troff a -r.X=1 option if -X is used.
9451         * tmac/troffrc: Support -r.X=1.
9452
9453         * pic/troff.cc (troff_output::dot): Don't test
9454         zero_length_line_flag.
9455
9456 Thu Aug  6 13:32:08 1992  James Clark  (jjc at jclark)
9457
9458         * include/lib.h: Declare getopt() and friends unless
9459         STDLIB_H_DECLARES_GETOPT is defined.
9460
9461         * doc/chars.tr: Delete.
9462         * man/groff_char.man: New file.
9463
9464 Wed Aug  5 00:38:58 1992  James Clark  (jjc at jclark)
9465
9466         * tmac/tmac.e (np, bu): Test \n($p with string expression in case
9467         user has changed register format.
9468
9469 Mon Aug  3 11:22:18 1992  James Clark  (jjc at jclark)
9470
9471         * groff/groff.cc: Get rid of device_table.  Get postprocessor from
9472         `postpro' command in DESC file.  Get spooler command from `print'
9473         command in DESC file.  Execute spooler command with /bin/sh.
9474
9475         * groff/groff.cc: Split Unix-specific parts into...
9476         * groff/pipeline.c: New file.
9477
9478         * LICENSE: Delete.
9479         * COPYING: New file.
9480         * all files: Update copyright notices.
9481
9482         * Rearrange files.  Redo Makefiles.  Use autoconf.
9483
9484 Sat Aug  1 09:36:50 1992  James Clark  (jjc at jclark)
9485
9486         * troff/input.c (charinfo_to_node_list): Interpret character
9487         definition with escape_char of `\'.
9488
9489 Tue Jul 28 12:20:12 1992  James Clark  (jjc at jclark)
9490
9491         * lib/strerror.c, lib/iftoa.c, lib/itoa.c: Don't include lib.h.
9492         Define INT_DIGITS as big enough for 64-bit integer.
9493         * lib/strtol.c: Don't include lib.h.
9494         * lib/lib.h: Delete ifdef __cplusplus stuff.
9495
9496 Mon Jul 27 11:08:50 1992  James Clark  (jjc at jclark)
9497
9498         * ps/devps/Makefile: Add DESC to DEVICEFILES.  Separate out rule
9499         for making DESC.  Make $(FONTS) depend on DESC. afmtodit should
9500         get DESC from current directory.
9501
9502 Sun Jul 26 15:38:26 1992  James Clark  (jjc at jclark)
9503
9504         * tbl/main.c (main): Always reset the line number when reading
9505         from stdin.
9506
9507         * tbl/table.c (table::print_single_hline, table::print_double_hline,
9508         table::define_bottom_macro, table::do_row, table::do_top): Round
9509         vertical spacing up to vertical resolution.
9510
9511 Fri Jul 24 14:32:07 1992  James Clark  (jjc at jclark)
9512
9513         * ps/ps.h (enum resource_type): Avoid comma at end of
9514         enumerator-list.
9515         * dvi/dvi.c (class dvi_printer): Likewise.
9516         * dvi/tfmtodit.c (gf::load): Likewise.
9517         * refer/label.y (struct expression): Likewise.
9518         * refer/refer.c (class label_processing_state): Likewise.
9519         * refer/indxbib.c (do_file): Likewise.
9520         * troff/troff.c (enum warning_type): Likewise.
9521         * tbl/main.c (process_data): Likewise.
9522         * troff/charinfo.h (class charinfo):
9523
9524 Wed Jul 22 09:17:58 1992  James Clark  (jjc at jclark)
9525
9526         * dvi/devdvi/textt.map: Add entry for `-'.  Regenerate fonts.
9527
9528 Tue Jul 21 11:39:26 1992  James Clark  (jjc at jclark)
9529
9530         * groff.c: Move to new groff subdirectory.
9531         * groff/Makefile: New file.
9532         * Makefile: Remove handling of groff.c. Add groff to SUBDIRS.
9533
9534         * man/mdate.sh: Use ls -L if supported.
9535
9536         * Consolidate all header files produced by gendef into lib/defs.h.
9537         * lib/macropath.c, lib/fontfile.c, lib/device.c: Include defs.h.
9538         Don't include path.h.
9539         * lib/Makefile (path.h): Don't generate.
9540         * troff/input.c: Include defs.h. Don't include config.h.
9541         * troff/Makefile (config.h): Don't generate.
9542         * refer/index.h: Don't include suffix.h.
9543         * refer/index.c: Include defs.h.
9544         * refer/indxbib.c: Include defs.h.
9545         * refer/refer.h, refer/lkbib.h: Don't include path.h. Include
9546         defs.h.
9547         * refer/Makefile (suffix.h, path.h): Don't generate.
9548         * groff.c: Don't include config.h. Include defs.h.
9549         * Makefile (config.h): Don't generate.
9550         (lib/defs.h): Generate.
9551         (topclean): Remove lib/defs.h.
9552
9553 Mon Jul 20 10:12:57 1992  James Clark  (jjc at jclark)
9554
9555         * lib/malloc.c, lib/getpagesize.h: Deleted.
9556         * Makefile: Add COOKIE_BUG configuration option.  Delete malloc
9557         related stuff.
9558         * lib/Makefile: Delete malloc-related stuff.
9559         * lib/new.c: Workaround COOKIE_BUG if necessary.
9560
9561         * refer/lkbib.c, refer/indxbib.c: Don't include refer.h.  Include
9562         needed header files directly.
9563         * refer/refer.h: Omit definition of DEFAULT_INDEX.
9564         * Makefile: Include definition of DEFAULT_INDEX in path.h.
9565
9566 Sun Jul 19 10:19:22 1992  James Clark  (jjc at jclark)
9567
9568         * lib/font.c (FONT_COMMAND_HANDLER): Pass command name and single
9569         argument.
9570         * lib/font (font::load_desc, font::load): Don't split argument of
9571         unknown command.
9572         (font::handle_unknown_font_command): Change type.
9573         * ps/ps.c (ps_font::handle_unknown_font_command,
9574         handle_unknown_desc_command): Change type.
9575         * dvi/dvi.c (dvi_font::handle_unknown_font_command): Change type.
9576
9577 Fri Jul 17 11:12:49 1992  James Clark  (jjc at jclark)
9578
9579         * lib/font.h (font::handle_unknown_font_command): Add file and
9580         line arguments.
9581         * lib/font.c (font::handle_unknown_font_command):
9582         * ps/ps.c (ps_font::handle_unknown_font_command):
9583         * dvi/dvi.c (dvi_font::handle_unknown_font_command): Add file and
9584         lineno arguments.  Use _with_file_and_line functions for error
9585         reporting.
9586
9587         * lib/fontfile.c (font::unknown_desc_command_handler): New static
9588         data member.
9589         * lib/font.c (font::set_unknown_desc_command_handler): New
9590         function.
9591         (font::load_desc): For unknown commands, call
9592         unknown_desc_command_handler if not null.
9593         * lib/font.h (class font): Declare them.
9594         (FONT_COMMAND_HANDLER): New typedef.
9595         * ps/ps.c (handle_unknown_desc_command): New function.
9596         (main): Set bflag if we had a -b option. Call
9597         font::set_unknown_desc_command_handler.
9598         (broken.h): Don't include.
9599         * ps/Makefile: No need for broken.h.  Pass BROKEN_SPOOLER_FLAGS to
9600         submake 
9601         * ps/devps/Makefile: Add `broken' command to DESC file using
9602         BROKEN_SPOOLER_FLAGS.
9603
9604         * macros/tmac.e ([, ]): Add as synonyms for { and }.
9605
9606         * macros/tmac.e ($p): Only exdent if \$3 > 0.
9607
9608         * macros/tmac.e (@R, @S): New macros.
9609         Declare @, po, $0, $i, $p, df, so, fu, bt, *, ?a, ?b, ?C, ?e, ?H,
9610         ?I, ?n, ?o, ?R, ?s, ?T, ?W, ?w registers with @R.
9611         Declare $H, $[0-9], .. macros with @S.
9612         Declare |0, |1, |2, |3 strings with @S.
9613
9614         * macros/tmac.e (@S): Rename to @U.
9615
9616         * macros/tmac.e (@z): Define @b and bp as empty instead of
9617         deleting them,
9618
9619         * macros/tmac.e (@m): Deleted.
9620         (@h): Don't call @m.
9621         (@z): Don't set @m trap.
9622
9623         * macros/tmac.e ($h, $f): Define |z as empty string.
9624
9625         * macros/tmac.e (@D): Rework to avoid unbalanced .el requests.
9626         (@q): Likewise.
9627
9628         * macros/tmac.e (@h): Set ?H, ?C , ?s registers to 0 rather than
9629         removing them.
9630         ()f): Likewise for * register.
9631
9632         * macros/tmac.e (sr): Don't ever scale the arguments. If the third
9633         argument is missing, don't change $R.  Call sr with three
9634         arguments when initializing.
9635
9636 Thu Jul 16 12:17:12 1992  James Clark  (jjc at jclark)
9637
9638         * macros/tmac.e (sr): New macro.
9639         Initialize $r and $R using sr.
9640
9641         * macros/tmac.e (,): Delete \*(#[.
9642
9643         * troff/env.c (set_tabs): Read the tab type even if the position
9644         is bad.  Allow the position of the first tab stop to be negative.
9645
9646 Wed Jul 15 13:14:37 1992  James Clark  (jjc at jclark)
9647
9648         * refer/dirnamemax.c: Use pathconf() if <unistd.h> defines
9649         _POSIX_VERSION.
9650         * refer/Makefile: Compile dirnamemax.c using -DHAVE_UNISTD_H
9651         rather than -DPATHCONF_MISSING.
9652         * Makefile: Get rid of PATHCONF_MISSING.
9653
9654         * refer/map.c: New file.
9655         * refer/index.c: Interface to mmap through map.c.  Rename map_size
9656         to map_len.
9657         * refer/Makefile: Handle map.c.
9658         * Makefile: Include -DHAVE_MMAP in OLDCFLAGS rather than CFLAGS.
9659
9660 Tue Jul 14 14:15:20 1992  James Clark  (jjc at jclark)
9661
9662         * Makefile: RANLIB should be `true' if there is no ranlib.
9663         * lib/Makefile (libgroff.a): Simplify.
9664         * driver/Makefile (libdriver.a): Simplify.
9665
9666         * Makefile: Change -DWAIT_COREDUMP_0200 to -DWCOREFLAG=0200.
9667         * groff.c (WCOREDUMP): Use WCOREFLAG.  Define only if not already
9668         defined.
9669
9670 Sat Jul 11 09:19:17 1992  James Clark  (jjc at jclark)
9671
9672         * troff/env.c (compare_ranges): Declare as extern "C".
9673
9674         * troff/input.c (init_registers): Use `struct tm' instead of `tm'.
9675
9676         * macros/tmac.s, macros/tmac.e: Change .nx /dev/null to .nx.
9677
9678 Wed Jul  8 11:52:27 1992  James Clark  (jjc at jclark)
9679
9680         * pic/troff.c (troff_output::text): Merge in grops_output::text,
9681         but conditionalize use of \X based on \*(.T.
9682         (grops_output::*): Deleted.
9683         * pic/output.h: Delete declaration of make_grops_output.
9684         * pic/main.c (main): Ignore -p and -x.  driver_extension_flag is 1
9685         by default. -n sets it to 0.
9686         (usage): Corresponding changes.
9687         * groff.c (main): Don't pass -x or -p to pic.
9688         * groff.sh: Likewise.
9689
9690         * ps/ps.c (ps_printer::do_exec, ps_printer::do_file): Force ndefs
9691         to be non-zero.
9692
9693         * ps/devps/afmtodit: Change calculation of asc_boundary and
9694         desc_boundary.  Make these bounds inclusive.
9695         * ps/devps: Regenerate font files.
9696
9697 Tue Jul  7 13:14:15 1992  James Clark  (jjc at jclark)
9698
9699         * macros/tmac.latin1: New file.
9700         * macros/tmac.tty-char: Use tmac.latin1.
9701         (tmac.tty-tr): Deleted.
9702         * macros/Makefile: Install tmac.latin1.
9703         * macros/tmac.dvi: Use tmac.latin1.
9704         * macros/troffrc: Translate \[char160] onto no-break space here.
9705         * macros/{tmac.dvi,tmac.ps,tmac.tty,tmac.X75}: Don't do it here.
9706
9707 Mon Jul  6 11:06:52 1992  James Clark  (jjc at jclark)
9708
9709         * macros/tmac.Xps: Use `do' request.
9710
9711         * macros/tmac.ps: Use `do' request.
9712
9713         * macros/tmac.e (@C): Use `do' request.
9714
9715         * macros/tmac.X, macros/tmac.Xps: Moved from xditview.
9716         * macros/Makefile: Install tmac.X*.
9717
9718         * tty/tmac.tty, tty/tmac.tty-char: Move to macros.
9719         * tty/Makefile: Don't install tmac.tty*.
9720         * macros/Makefile: Install tmac.tty*.
9721
9722         * dvi/tmac.dvi: Move to macros.
9723         * dvi/Makefile: Don't install tmac.dvi.
9724         * macros/Makefile: Install tmac.dvi.
9725
9726         * ps/tmac.ps*: Move to macros.
9727         * ps/Makefile: Don't install tmac.ps*.
9728         * macros/Makefile: Install tmac.ps*.
9729
9730         * eqn/box.c: Provide draw_lines parameter corresponding to -D
9731         option.
9732         * macros/eqnrc: Set draw_lines parameter based on device.
9733         * groff.c: Don't pass -D flag to eqn.
9734         * groff.sh: Likewise.
9735         * eqn/main.c: Warn about use of -D.
9736
9737         * troff/input.c (process_startup_file): New function.
9738         (main): Call process_startup_file().
9739         * macros/troffrc: New file.
9740         * macros/Makefile: Install troffrc.
9741         * groff.c (main): Don't pass extra -m option to troff. For a 
9742         pseudo device pass the name of the pseudo device to troff using
9743         -d.
9744         * groff.sh: Likewise.
9745         * groff.c (possible_command::prepend_arg): Deleted.
9746
9747         * troff/input.c (do_request): New function.
9748         (init_input_requests): Bind "do" to do_request.
9749
9750         * eqn/main.c (main): Instead of loading eqnchar from device directory,
9751         load eqnrc from macro directory.
9752         * macros/eqnrc: New file.
9753         * macros/Makefile: Install eqnrc.
9754         * ps/devps/eqnchar: Deleted.
9755         * ps/devps/Makefile: Don't install eqnchar.
9756         * dvi/devdvi/eqnchar: Deleted.
9757         * dvi/devdvi/Makefile: Don't install eqnchar.
9758         * groff.c (main): Pass -M to eqn. Don't pass -F to eqn. New
9759         variable optM.
9760
9761         * lib/device.[ch]: New files.
9762         * lib/font.h (font::set_device_name, font::get_device_name):
9763         Deleted.
9764         * lib/fontfile.c: Use device.h.
9765         * lib/Makefile: Handle device.[ch]. Make paths.h define DEVICE.
9766         * troff/input.c: Delete definition of `device'.
9767         (main): Don't initialize device.
9768         * troff/troff.h: Include device.h rather than declaring device.
9769         * troff/Makefile: No need to handle DEVICE.
9770         * driver/input.c: Include device.h. Don't use
9771         font::{set,get}_device_name.
9772         * groff.c, Makefile: Rename device.h to config.h.
9773         * groff.c: Use library device variable.
9774         * eqn/main.c: Use library device variable.
9775         * eqn/Makefile: No need to handle DEVICE.
9776
9777         * lib/searchpath.[ch]: New files.
9778         * lib/Makefile: Handle searchpath.[ch].
9779         * troff/input.c (open_file, init_dirs): Deleted.
9780         (macro_dirs): Deleted.
9781         (open_mac_file, macro_source): Use class search_path.
9782         (add_string, struct string_list): Move definition.
9783         (main): Change -M option to use macro_path. Delete call to
9784         init_dirs().
9785         * lib/fontfile.c (font::command_line_font_dir, font::open_file):
9786         Rewrite to use class search_path.
9787         * lib/font.h, lib/fontfile.c (font::cl_font_dirs): Deleted.
9788         * lib/Makefile: fontfile.c depends on searchpath.h.
9789         * lib/Makefile: Rename fontpath.h to paths.h. Make paths.h define
9790         MACROPATH.
9791         * lib/macropath.[ch]: New files.
9792         * troff/Makefile: No need to handle MACROPATH.
9793
9794         * troff/input.c: Delete DUMP code.
9795         * lib/fontfile.c, lib/font.h: Delete
9796         font::forget_command_line_font_dirs.
9797
9798         * troff/input.c (push_token): New function.
9799         (handle_first_page_transition): Use push_token().
9800         (process_input_stack): Change handling of a space at the beginning
9801         of the line.
9802
9803 Sun Jul  5 17:11:09 1992  James Clark  (jjc at jclark)
9804
9805         * troff/input.c (font_dirs): Delete unused variable.
9806
9807         * eqn/lex.c (do_set): Correct error messages.
9808
9809 Sat Jul  4 10:20:55 1992  James Clark  (jjc at jclark)
9810
9811         * troff/input.c (do_define_string): Allow the string name to be
9812         followed immediately by a tab.
9813         (define_character): Likewise.
9814
9815 Thu Jul  2 10:59:15 1992  James Clark  (jjc at jclark)
9816
9817         * ps/ps.c (ps_printer::draw): When drawing an arc, don't allow k to
9818         be negative.
9819
9820         * troff/input.c (input_iterator::is_file): New virtual function.
9821         (file_iterator::is_file): New function.
9822         (input_stack::end_file): New function.
9823         (input_stack::next_file): Handle the situation where there is no
9824         file on the input stack correctly.  Avoid making two passes over
9825         the input stack.
9826         (next_file): Make the filename optional; in this case call
9827         input_stack::end_file().
9828
9829 Wed Jul  1 10:17:25 1992  James Clark  (jjc at jclark)
9830
9831         * dvi/tmac.dvi: Change the definitions of \(ul and _ so that they
9832         produce a real _ charater when the current font is CW and _
9833         otherwise.
9834
9835         * lib/errarg.c (errarg::errarg(const char *)): Invert conditional
9836         expression to work around gcc 2.2 bug.
9837
9838 Wed Jun 24 08:12:24 1992  James Clark  (jjc at jclark)
9839
9840         * eqn/main.c (main): Don't give an error if we can't find eqnchar.
9841
9842         * troff/env.c (environment::add_padding): New function.
9843         (environment::add_char): Use add_padding().
9844         (environment::space): Likewise.
9845         (environment::wrap_up_field): Add some padding if there is none
9846         and there's no current tab.
9847         * troff/env.h: Declare environment::add_padding.
9848
9849 Mon Jun 22 08:37:45 1992  James Clark  (jjc@jclark)
9850
9851         * pic/pic.y: undef fmod and rand before declaring them.
9852
9853 Sun Jun 14 11:40:18 1992  James Clark  (jjc@jclark)
9854
9855         * troff/input.c (main): If the DESC file specifies a font name of
9856         0, then leave the corresponding font position empty.
9857
9858         * nroff.sh: New file.
9859         * Makefile (install.nobin): Install nroff.sh.
9860
9861         * tty/devlatin1/R.proto: Add ao as synonym for de.
9862         * tty/tmac.tty-char: Define ao as o.
9863
9864         * tty/dev{ascii,latin1}/R.proto: Add aq.
9865         * tty/tmac.tty-char: Delete definition of aq.
9866
9867 Mon Jun  8 11:43:20 1992  James Clark  (jjc@jclark)
9868
9869         * troff/input.c (init_charset_table): Don't translate 0240.
9870         * ps/tmac.ps: Translate char160 to space.
9871         * dvi/tmac.dvi: Likewise.
9872         * tty/tmac.tty: Likewise.
9873
9874 Sun Jun  7 10:52:35 1992  James Clark  (jjc@jclark)
9875
9876         * dvi/tmac.dvi: Add support for all Latin-1 characters.
9877
9878         * macros/tmac.s: Delete definitions of \(rg, \(ah, \(ad, \(a-,
9879         \(ao, \(ac, \(ho, \(-D, \(Sd, \(TP, \(Tp, \(ss, \(AE, \(ae, \(OE,
9880         \(oe, \(r?, \(r!.
9881
9882         * tty/tmac.tty-char: Add \(ah.
9883
9884         * dvi/tmac.dvi: Add definitions of Tp, TP, Sd, -D, ho.
9885         No need to define \(FM and \(!/. Conditionalize all character
9886         definitions.
9887
9888         * ps/devps/lgreekmap: Add +h, +f, +p.
9889
9890         * ps/tmac.psnew: New file.
9891         * ps/Makefile: Install tmac.psnew.
9892
9893         * troff/input.c (charinfo_to_node_list): Don't ever interpret
9894         character definitions in compatible mode.
9895
9896         * troff/input.c (remove_character): New function.
9897         (init_input_requests): Bind remove_character to "rchar".
9898
9899         * ps/tmac.psold: New file.
9900         * ps/Makefile: Install tmac.psold.
9901         * ps/tmac.ps: Load tmac.psold. Move definitions of ISO Latin-1
9902         characters into tmac.psold.  Make these definitions unconditional.
9903
9904         * tty/tmac.tty-char: Define \n(_C only if it is not already defined.
9905
9906         * ps/tmac.ps: Don't define \('c and \('C.
9907
9908         * ps/devps/textmap: Move Greek characters to...
9909         * ps/devps/symbolchars:
9910
9911 Sat Jun  6 16:41:17 1992  James Clark  (jjc@jclark)
9912
9913         * ps/devps/text.enc: Add quotesingle.
9914         * ps/devps/textmap: Add +h, +f, +p, Fn, Bq, bq, aq, lz.
9915         * tty/tmac.tty-char: Likewise.
9916         * dvi/devdvi/texmi.map: Add +h, +f, +p.
9917         * dvi/devdvi/texi.map: Add Fn.
9918         * dvi/devdvi/msam.map: Add lz.
9919         * dvi/tmac.dvi: Handle Bq, bq, aq.
9920
9921         * pic/lex.c (get_token): Recognize 'th.
9922         * pic/map.y: Allow `expr'th in contexts where ORDINAL was allowed.
9923
9924 Fri Jun  5 11:20:46 1992  James Clark  (jjc@jclark)
9925
9926         * ps/devps/textmap: Move di, mu, +- to...
9927         * ps/devps/symbolchars:
9928
9929         * macros/tmac.s (@XS): Don't call par@reset or fi.
9930         (XA): Call LP. Turn off adjustment. Reduce line length.
9931
9932         * macros/tmac.s: Initially alias XS to LP.
9933         (XS): Rename to @XS.
9934         (cov*ab-init): Alias XS to @XS.
9935
9936 Thu Jun  4 09:12:05 1992  James Clark  (jjc@jclark)
9937
9938         * troff/token.h: Delete TOKEN_CHAR_HEIGHT, TOKEN_CHAR_SLANT,
9939         TOKEN_FONT_NAME, TOKEN_FONT_POSITION, TOKEN_SIZE tokens.
9940         (token::is_size, token::changes_env): Deleted.
9941         * troff/number.c (parse_term): No need to process \s explicitly.
9942         Call tok.next() only after scale indicator has been processed.
9943         * troff/input.c (do_overstrike, do_bracket): No need to process \s,
9944         \f etc explicitly.
9945         (token::next): Handle \s, \f, \S, \H immediately rather than
9946         returning them as tokens.
9947         (token::operator==, token::description, token::add_to_node_list,
9948         token::process): Remove handling of deleted tokens.
9949
9950         * troff/env.c (environment::add_char): When adding padding
9951         indicator character, call start_line() if necessary.
9952
9953 Wed Jun  3 09:55:50 1992  James Clark  (jjc@jclark)
9954
9955         * ps/devps/afmtodit: Don't output 0 kerns.
9956
9957         * ps/devps/afmtodit: Remove directory from name of encoding in
9958         font description file.
9959
9960         * ps/devps/afmtodit: Improve error messages.
9961
9962         * ps/devps/afmtodit: Allow DESC file to be specified with -d.
9963
9964         * ps/devps/Makefile: Incorporate FontMakefile. Rework.
9965         * ps/devps/FontMakefile: Deleted.
9966         * ps/devps/afmname: New file.
9967
9968         * ps/devps/symbol.sed: New file.
9969         * ps/devps/symbol.diff: Deleted.
9970         * ps/devps/FontMakefile: Generate symbol.afm using symbol.sed.
9971         Generate zapfdr.afm from zapfd.afm.
9972
9973         * tty/tmac.tty (tty-char): Prefix definition with ".
9974
9975         * macros/tmac.an (TP): Don't start a diversion if one has already
9976         been started.
9977
9978         * tty/tmac.tty-char: Add Latin-1 characters.
9979
9980         * tty/tmac.tty-char: Incorporate suggestions from Paul Eggert.
9981
9982 Tue Jun  2 00:54:34 1992  James Clark  (jjc@jclark)
9983
9984         * tbl/table.c (table::allocate): Delete old_vline, old_entry.
9985         Move declaration of struct horizontal_span.
9986
9987         * tbl/table.c (table::table): Initialize span_list.
9988         (table::~table): Delete span_list.
9989
9990         * lib/ptable.h (PTABLE(T)::~PTABLE(T)): Delete v.
9991
9992         * ps/devps/Makefile: Avoid dependency on GNU make.
9993
9994         * ps/tmac.ps: Check that character does not already exist before
9995         defining it.
9996
9997         * tty/tmac.tty: Add definitions of \(ff, \(!=, \(==, \(~=, \(sq,
9998         \(OE, \(oe, \(AE, \(ae, \(lh, \(rh. Delete definitions of \(en,
9999         \(ru, \(ul, \(br, \(bv, \(sl which are in the font description
10000         files.
10001
10002         * tty/tmac.tty-char: New file.
10003         * tty/Makefile: Install tmac.tty-char.
10004         * tty/tmac.tty: Move definitions of \(ua, \(da, \(uA, \(dA into
10005         tmac.tty-char.
10006
10007         * tty/tmac.tty: Fix definition of \(34.
10008
10009         * tty/dev{ascii,latin1}/R.proto: Add ha and ti. Map
10010         bracket-drawing characters onto |. Add *o.
10011
10012         * troff/env.c (environment::wrap_up_tab): Increment field_spaces
10013         only if current_field.
10014
10015         * troff/dictionary.c (dictionary::lookup): Free old_table after
10016         rehashing. 
10017
10018 Mon Jun  1 10:15:22 1992  James Clark  (jjc@jclark)
10019
10020         * tty/dev{ascii,latin1}/R.proto: Add uppercase Greek characters
10021         whose glyphs are identical to glyphs of some Roman character.
10022
10023         * tty/devlatin1/R.proto (bu): Deleted.
10024         * tty/devascii/R.proto (bu): Deleted.
10025         * tty/tmac.tty: Add definition of \(bu.
10026
10027         * eqn/main.c (do_file): Pass FILE as argument.
10028         (main): Automatically load eqnchar.  New options -F and -n.
10029         Pass do_file an opened FILE.
10030         * groff.c: Don't pass eqnchar to eqn. Pass -F options onto eqn.
10031         No need to include font.h.
10032         * groff.sh: Likewise.  Don't need to use - for standard input.
10033         Prefix files with -- if first file starts with -.
10034
10035         * macros/tmac.e: Conditionalize use of \$* on \n(.g.
10036
10037         * troff/env.c (environment::possibly_break_line): Don't set line
10038         to 0 across call to output_line().  Don't call output_line() until
10039         after discarding nodes after break.
10040
10041 Sun May 31 10:45:29 1992  James Clark  (jjc@jclark)
10042
10043         * request.h (macro::empty): Declare it.
10044         * input.c (macro::empty): New method.
10045         (interpolate_macro):  Don't give a WARN_SPACE if the two-character
10046         macro is empty.
10047
10048 Sat May 30 10:27:15 1992  James Clark  (jjc@jclark)
10049
10050         * troff/env.c (environment::start_field): Decrement space_total
10051         when a space is frozen.
10052
10053 Fri May 22 14:34:38 1992  James Clark  (jjc@jclark)
10054
10055         * macros/tmac.an (R): Delete macro.
10056
10057         * troff/input.c (get_copy, token::next): Support \# (like \" but
10058         newline is ignored).
10059
10060         * troff/input.c (token::next): Fix error message in 'Y' case.
10061
10062 Thu May 21 09:26:24 1992  James Clark  (jjc@jclark)
10063
10064         * eqn/delim.c (define_extensible_string): Recognize any prefix of
10065         a delimiter name.
10066
10067 Fri May 15 10:20:41 1992  James Clark  (jjc at jclark)
10068
10069         * c++test.c: Include <osfcn.h>.
10070
10071         * lib/strtol.c, lib/getcwd.c, ps/psbb.c: Declare errno in case
10072         <errno.h> doesn't.
10073
10074 Fri May  8 09:37:19 1992  James Clark  (jjc at jclark)
10075
10076         * tbl/table.c (table::divide_span): Don't count column separation
10077         if expand was specified.
10078
10079         * tbl/main.c (process_format): Don't ignore width specs in
10080         continued format.  Give warning for changing equal widths or
10081         column separation in continued format.
10082         (process_data): Set column separation, minimum width, equal
10083         columns at end of table.
10084
10085 Thu May  7 08:50:40 1992  James Clark  (jjc at jclark)
10086
10087         * troff/node.c (kern_pair_node::add_discretionary_hyphen,
10088         node::add_discretionary_hyphen): Use soft_hyphen_char.
10089         (set_soft_hyphen_char): New function.
10090         (init_node_requests): Bind to shc.  Initialize soft_hyphen_char.
10091
10092         * Makefile (c++tested): Give more helpful message if test fails.
10093
10094 Tue May  5 10:58:39 1992  James Clark  (jjc at jclark)
10095
10096         * troff/input.c (init_charset_table): Translate 0240 to
10097         an unbreakable space.
10098
10099         * troff/token.h (token::hyphen_indicator): New function.
10100         * troff/charinfo.h (TRANSLATE_HYPHEN_INDICATOR): New special
10101         translation.
10102         * troff/input.c (translate): Allow translation to \%.
10103         * troff/node.c (node::add_char): Handle
10104         TRANSLATE_HYPHEN_INDICATOR.     
10105         (make_node): Don't allow TRANSLATE_HYPHEN_INDICATOR here.
10106
10107         * troff/input.c (init_charset_table): Don't set BREAK_AFTER flag
10108         for \(hy.
10109
10110         * tty/devlatin1/R.proto: \(hy and - should print as 055.
10111
10112 Tue Apr 21 09:24:42 1992  James Clark  (jjc at jclark)
10113
10114         * groff.c (run_commands): If the last command gets a SIGPIPE send
10115         a SIGPIPE to all children than haven't yet terminated.  When
10116         command terminates, set pid field to -1.
10117
10118 Fri Apr 17 11:20:48 1992  James Clark  (jjc at jclark)
10119
10120         * groff.c (main): Pass an appropriate -filename option to gxditview.
10121
10122 Thu Apr 16 15:11:40 1992  James Clark  (jjc at jclark)
10123
10124         * Makefile.bd (install): Remove existing program before copying.
10125
10126         * Makefile, */Makefile, Makefile.bd, groff.sh, groff.c: Allow
10127         programs which have Unix counterparts to be installed with
10128         user-specified prefix.
10129
10130         * troff/input.c (exit_troff): Don't check if exit_started.
10131         (exit_request): Don't call exit_troff if exit_started.
10132
10133         * Makefile.bd (install.mm): Rename to install.dwbmm.
10134
10135 Tue Apr 14 10:05:10 1992  James Clark  (jjc at jclark)
10136
10137         * driver/input.c (do_file): Add missing break for '#' case.
10138
10139 Mon Apr 13 10:11:02 1992  James Clark  (jjc at jclark)
10140
10141         * troff/input.c (input_stack::clear):  Clear past any boundaries and
10142         then add the boundaries back.
10143
10144         * troff/input.c (exit_troff): Return immediately if already
10145         exiting.
10146
10147         * macros/tmac.s (pg@end-text): New macro.  Use pg@end-text for the
10148         end macro.
10149         (pg*end-page): If the text has ended and there are no more
10150         footnotes or keeps, exit.
10151
10152         * macros/doc-ditroff (Lq, Rq): Define as \(lq and \(rq.
10153
10154         * troff/input.c (init_charset_table): Make \(rq transparent by
10155         default.
10156
10157         * macros/tmac.an: Define lq and rq strings.
10158
10159         * macros/tmac.s (Q, U): Define as \(lq and \(rq.
10160
10161 Sun Apr 12 12:54:37 1992  James Clark  (jjc at jclark)
10162
10163         * troff/env.c (environment::final_break): New function.
10164         (environment::newline): Set prev_line_interrupted to 2 if
10165         exit_started.
10166         * troff/env.h: Declare environment::final_break.
10167         * troff/input.c (exit_troff): Call environment::final_break()
10168         instead of environment::do_break().
10169
10170         * macros/Makefile: Install man.local if $(MACRODIR)/man.local
10171         doesn't already exist.
10172         * macros/man.local: New file.
10173         * macros/tmac.an: Load man.local.
10174         * macros/man.ultrix: New file.
10175
10176 Sat Apr 11 17:32:04 1992  James Clark  (jjc at jclark)
10177
10178         * troff/input.c (exit_groff): Rename to...
10179         (exit_troff): New function.
10180
10181         * troff/div.c (exit_started, done_end_macro,
10182         seen_last_page_ejector): New global variables.
10183         (began_page_in_end_macro): New static variable.
10184         (exit_flag): Deleted.
10185         (top_level_diversion::top_level_diversion): Initialize
10186         last_page_count.
10187         (top_level_diversion): More elaborate test for whether
10188         cleanup_and_exit() should be called.
10189         Set began_page_in_end_macro if the end macro isn't yet finished.
10190         * troff/div.h (top_level_diversion::last_page_count): New data
10191         member.
10192         (top_level_diversion::set_last_page): New function.
10193         (exit_started, done_end_macro, seen_last_page_ejector): Declare.
10194         * troff/env.c (do_break): Zero prev_line_interrupted.
10195         * troff/input.c (exit_flag): Delete declaration.
10196         (LAST_PAGE_EJECTOR): New magic cookie.
10197         (token::next): Handle LAST_PAGE_EJECTOR.
10198         (exit_groff): Set exit_started and done_end_macro instead of
10199         exit_flag.  Call top_level_diversion::set_last_page.  Push a
10200         LAST_PAGE_EJECTOR instead of calling push_page_ejector().  Do
10201         another ejection after setting seen_last_page_ejector.
10202
10203 Thu Apr  9 04:37:11 1992  James Clark  (jjc at jclark)
10204
10205         * etc/grog.sh, etc/grog.sh: Recognize -me sh macro.
10206
10207         * macros/tmac.e (TH): Make sure there's room for the initial
10208         header.
10209
10210         * macros/tmac.s (par@init): Make PD and DD at least \n(.V.
10211         Set FVS in points rather than units.
10212
10213 Mon Apr  6 11:21:32 1992  James Clark  (jjc at jclark)
10214
10215         * troff/div.c (top_level_diversion::add_trap): Don't consider the
10216         position of empty slots.
10217
10218 Fri Apr  3 10:46:45 1992  James Clark  (jjc at jclark)
10219
10220         * ps/devps/S: Fix height and depth of parenrightex.
10221         * ps/devps/symbol.diff: Regenerate.
10222
10223 Sat Mar 28 21:17:52 1992  James Clark  (jjc at jclark)
10224
10225         * tmac.e (u): Do underlining as in -mgs.
10226
10227 Fri Mar 27 09:23:44 1992  James Clark  (jjc at jclark)
10228
10229         * tty/tty.c (tty_printer::end_page): If overstriking is
10230         suppressed, still turn overstruck horizontal and vertical lines
10231         into +.
10232
10233         * lib/new.c: Back out Feb 24 change; no longer needed with gcc
10234         2.1.
10235
10236         * refer/label.y (format_expr::evaluate): Avoid use of %0*d.
10237
10238 Wed Mar 18 09:29:10 1992  James Clark  (jjc at jclark)
10239
10240         * Version 1.05 released.
10241
10242 Tue Mar 17 16:50:45 1992  James Clark  (jjc at jclark)
10243
10244         * tty/tty.c: Instead of keeping an array of glyphs and then
10245         sorting it, keep a ordered linked list of glyphs for each line.
10246
10247         * driver/driver.h: Include stddef.h.
10248
10249         * tty/tty.c (compare_glyph):
10250         * refer/refer.c (rcompare):
10251         * troff/env.c (compare_ranges): Arguments of qsort comparison
10252         function should be const void *.
10253
10254         * troff/number.c (parse_term):
10255         * dvi/dvi.c (draw_dvi_printer::draw): Avoid initialization in
10256         switch statement.
10257
10258         * refer/label.y (consider_authors): Don't access variables
10259         constructed under a condition outside that condition: put braces
10260         round for statement containing declaration; redeclare use of same
10261         variable later.
10262
10263         * pic/pic.y (text_expr): Delete production that allows
10264         parenthesised text_expr.
10265         (expr): Allow a conditional_expr to appear in parentheses.
10266         (conditional_expr): Rename to any_expr.
10267
10268         * mm: Install new version 1.01 from jh.
10269
10270         * lib/font.c (font::get_width): Cache scaled widths.
10271         (font::font): Initialize widths_cache.
10272         (font::~font): Destroy widths_cache.
10273         * lib/font.h: Add font::widths_cache. Declare font_widths_cache.
10274
10275 Mon Mar 16 10:16:10 1992  James Clark  (jjc at jclark)
10276
10277         * c++test.c, c++test.ref: New files.
10278         * Makefile: Check that the C++ compiler works.
10279
10280         * ps/tmac.pspic (PSPIC): Do a break.
10281
10282         * ps/tmac.ps: Move definition of PSPIC into...
10283         * ps/tmac.pspic: New file.
10284         (PSPIC): Draw box around picture, but make it invisible to grops.
10285         * ps/tmac.ps: Load tmac.pspic.
10286         * ps/Makefile: Install tmac.pspic.
10287
10288 Sun Mar 15 14:18:08 1992  James Clark  (jjc at jclark)
10289
10290         * lib/font.c (scale_round): If n is negative,
10291         subtract .5 before truncating floating point result.
10292
10293         * lib/fontfile.c: Include <errno.h>.
10294
10295 Tue Mar 10 14:17:03 1992  James Clark  (jjc at jclark)
10296
10297         * driver/input.c (get_char): Inline. Don't update current_lineno.
10298         Change callers to up date current_lineno if necessary.
10299         Use get_char() instead of getc(current_file).
10300
10301 Sun Mar  8 18:05:28 1992  James Clark  (jjc at jclark)
10302
10303         * ps/tmac.ps: Fix up spacing of \(mo and \(nm.
10304
10305 Fri Mar  6 19:38:58 1992  James Clark  (jjc at jclark)
10306
10307         * tty/tty.c (tmac.tty): Define \(rg as (R).
10308
10309 Tue Mar  3 10:11:25 1992  James Clark  (jjc at jclark)
10310
10311         * lib/lib.h: New define a_delete.
10312         * Use a_delete instead of delete when deleting an array of objects
10313         without destructors.
10314
10315         * lib/lib.h: Rename adelete to ad_delete.
10316         * Change uses of adelete.
10317
10318 Mon Mar  2 12:41:05 1992  James Clark  (jjc at jclark)
10319
10320         * eqn/eqn.y: Include lib.h.
10321
10322         * troff/node.c (grow_font_table): Delete old_font_table.
10323
10324         * mm: Install new version from jh.
10325
10326 Fri Feb 28 10:42:23 1992  James Clark  (jjc at jclark)
10327
10328         * tbl/table.h (format_type): Make global instead of local to class
10329         entry_format.  Prefix enumerators with FORMAT_.
10330         * tbl/table.c, tbl/main.c: Corresponding changes.
10331         * refer/token.h (token_type): Make global.  Prefix enumerators
10332         with TOKEN_.
10333         * refer/token.[ch]: Corresponding changes.
10334         * Makefile: Get rid of -DNO_NESTED_TYPES configuration option.
10335
10336         * troff/div.c (node::set_vertical_size): Don't name argument.
10337
10338 Thu Feb 27 10:29:19 1992  James Clark  (jjc at jclark)
10339
10340         * Makefile: New configuration option ARRAY_DELETE_NEEDS_SIZE.
10341         * lib/lib.h: Define adelete accordingly.
10342         * pic/object.c (graphic_object::graphic_object):
10343         * tbl/main.c (format::~format):
10344         * tbl/table.c (table::~table):
10345         * refer/ref.c (reference::~reference, reference::merge,
10346         reference::insert_field, reference::delete_field): Use adelete.
10347
10348         * Makefile: Change NESTED_TYPES to NO_NESTED_TYPES.
10349         * refer/token.h:
10350         * tbl/table.h: Corresponding changes.
10351
10352         * common.c (common_output::dashed_arc, common_output::dotted_arc):
10353         Ensure total_angle is positive.
10354
10355 Wed Feb 26 08:49:26 1992  James Clark  (jjc at jclark)
10356
10357         * refer/ref.c (reference::merge, reference::insert_field,
10358         reference::delete_field): Avoid delete[0].
10359
10360         * refer/token.c (init_special_chars): Move calls to cmupper
10361         outside calls to init_two_char_letter to work around bug in gcc
10362         2.0.
10363
10364 Mon Feb 24 14:20:00 1992  James Clark  (jjc at jclark)
10365
10366         * lib/new.c (operator new): Use __builtin_new for g++.
10367
10368         * pic/object.c (graphic_object::~graphic_object):  Don't use
10369         delete [] on 0.
10370
10371         * pic/object.c (output::compute_scale): Initialize max_width and
10372         max_height.
10373
10374 Sat Feb 15 09:55:20 1992  James Clark  (jjc at jclark)
10375
10376         * troff/input.c (write_request): Call fflush.
10377
10378         * troff/node.h (class composite_node): Move declaration to node.c
10379         * troff/input.c (charinfo_to_node): Rename to ...
10380         (charinfo_to_node_list): Return node list rather than composite
10381         node.
10382         * troff/node.c (make_composite_node): New function.
10383         (make_node, add_char): Call make_composite_node instead of
10384         charinfo_to_node.
10385         (class composite_node): Add a tfont * member.  Delete font_size
10386         member.
10387         (composite_node::composite_node, composite_node::copy,
10388         composite_node::size): Corresponding changes.
10389         (composite_node::tprint): Provide constant spacing, emboldening
10390         and track kerning as specified in tfont.
10391         (composite_node::width): Change width calculation accordingly.
10392         * troff/env.h (environment::composite): New member.
10393         (environment::is_composite, environment::set_composite): New
10394         functions.
10395         * troff/env.c (environment::environment): Initialize composite.
10396         * troff/input.c (charinfo_to_node): Call
10397         environment::set_composite.
10398         * troff/node.c (make_composite_node, make_glyph_node): Use the
10399         plain version of the tfont if the environment is composite.
10400
10401         * troff/node.c (font_info::get_space_width): Additional argument
10402         giving space_size.  Handle constant space correctly. Scale by
10403         space_size unless constant spaced.
10404         (env_sentence_space_width): New function.
10405         * troff/node.h: Declare it.
10406         * troff/env.h (environment::get_space_size,
10407         environment::get_sentence_space_size,
10408         environment::get_narrow_space_width,
10409         environment::get_half_narrow_space_width): Make inline.
10410         (environment::get_space_width): Make inline.  Just call
10411         env_space_width.
10412         * troff/env.c: Delete definitions for funtions made inline.
10413         (environment::space_newline, environment::space): Use
10414         env_sentence_space_width(). Don't scale by space_size.
10415         * troff/node.h: Move declarations of env*space_width() functions
10416         into env.h.
10417
10418 Sat Feb  8 09:30:22 1992  James Clark  (jjc at jclark)
10419
10420         * macros/tmac.s (PS): Don't try to set negative indent.
10421
10422 Thu Feb  6 09:00:35 1992  James Clark  (jjc at jclark)
10423
10424         * pic/pic.y: Fix min function.
10425
10426 Tue Jan 28 07:52:29 1992  James Clark  (jjc at jclark)
10427
10428         * man/mdate.sh: Clear LANGUAGE.
10429
10430 Sun Jan 19 13:02:41 1992  James Clark  (jjc at jclark)
10431
10432         * pic/pic.y, pic/lex.c: Rename COMMAND token to COMMAND_LINE.
10433         * pic/lex.c: New COMMAND keyword.
10434         * pic/pic.y (print_args, print_arg): New rules.
10435         (placeless_element): Use print_args for PRINT.
10436         New COMMAND element.
10437
10438 Tue Jan  7 13:14:31 1992  James Clark  (jjc at jclark)
10439
10440         * troff/input.c (terminal): Handle missing argument correctly.
10441
10442         * pic/pic.y (text_expr): New rule.
10443
10444         * pic/pic.y: Implement := operator.
10445
10446 Sun Jan  5 10:23:02 1992  James Clark  (jjc at jclark)
10447
10448         * etc/grog.pl, etc/grog.sh: Distinguish old and new versions of
10449         mdoc.
10450
10451 Sat Jan  4 14:42:26 1992  James Clark  (jjc at jclark)
10452
10453         * ps/devps/dingbatsrmap: Include this in the distribution.
10454
10455         * macros/tmac.doc: Replace with new version from 2nd Networking
10456         Release. Fix loading of doc-* files.
10457         * macros/{doc-common,doc-ditroff,doc-nroff,doc-syms}: New files.
10458         * macros/tmac.doc.old: New file.  Apply fixes that had been
10459         applied to old tmac.doc.
10460         * macros/tmac.andoc: Check that we're running under groff.
10461         * macros/Makefile: Rework.
10462
10463 Fri Jan  3 13:27:51 1992  James Clark  (jjc at jclark)
10464
10465         * tbl/table.h (format_type): 
10466         * refer/token.h (token_type): If NESTED_TYPES is defined, use
10467         typedef to make these types visible at file scope.
10468         * Makefile: Add NESTED_TYPES configuration option.
10469
10470         * troff/div.c (mark): At the top level use the value of
10471         nl_reg_contents rather than the current vertical position.
10472
10473 Thu Jan  2 10:34:51 1992  James Clark  (jjc at jclark)
10474
10475         * tty/tty.c: Implement \D for horizontal or vertical lines.
10476         (tty_printer::set_char): Use vec_used+2 as serial number.
10477         Don't allow size of vector to exceed USHRT_MAX-2.
10478         Split off part into...
10479         (tty_printer::add_char): New function.
10480         (tty_printer::draw): New function.
10481         (compare_glyph): Handle equal serial numbers.
10482         (tty_printer::end_page): Handle overstruck characters from \D.
10483         (main, usage): Implement -d option.
10484
10485 Mon Dec 23 10:37:51 1991  James Clark  (jjc at jclark)
10486
10487         * tbl/main.c (process_format):
10488         * eqn/text.c (split_text):
10489         * troff/input.c (token::next): Use inner block for declarations
10490         with initializers in switch statement.
10491
10492 Mon Dec 16 20:52:03 1991  James Clark  (jjc at jclark)
10493
10494         * pic/common.c (common_output::dash_line): Cope with zero-length
10495         lines.
10496
10497 Sun Nov 17 12:04:08 1991  James Clark  (jjc at jclark)
10498
10499         * Version 1.04 released.
10500
10501 Wed Nov 13 05:27:21 1991  James Clark  (jjc at jclark)
10502
10503         * macros/tmac.an (TH): Define a macro an-init to define variables
10504         based on command line arguments.
10505         (an-header): Call it.
10506
10507 Sun Nov  3 12:07:34 1991  James Clark  (jjc at jclark)
10508
10509         * Makefile (install.mm): Rename to install.dwbmm.
10510
10511         * Makefile: Integrate mm.
10512         * mm: New directory.
10513
10514 Wed Oct 30 10:11:34 1991  James Clark  (jjc at jclark)
10515
10516         * refer/dirnamemax.c: If PATHCONF_MISSING is defined, include
10517         <sys/types.h>.
10518
10519         * pic/troff.c (troff_output::simple_spline,
10520         troff_output::simple_polygon): Rename variable `v' to `d' to avoid
10521         shadowing parameter.
10522
10523         * lib/tmpfile.c (xtmpfile): Declare dir as const char *.
10524
10525         * lib/ptable.h: Add explicit casts when converting from unsigned
10526         long to unsigned.
10527
10528         * dvi/devdvi/{SA,SB,msam.map,msbm.map}: New files.
10529         * dvi/devdvi/Makefile: Install SA, SB.
10530
10531         * refer/indxbib.c: Add declaration of mktemp.
10532
10533         * refer/lookbib.c: Add declaration of isatty.
10534
10535 Fri Oct 25 09:00:17 1991  James Clark  (jjc at jclark)
10536
10537         * pic/lex.c (interpolate_macro_with_args):  While collecting
10538         arguments, keep track of whether we're in a string.
10539
10540 Wed Oct 23 08:42:48 1991  James Clark  (jjc at jclark)
10541
10542         * ps/tmac.ps (PSPIC): Do the .sp after the \X, and move the \X
10543         down with \v, so as to avoid problems with top of page trap
10544         setting no space mode.
10545
10546 Tue Oct 22 17:38:49 1991  James Clark  (jjc at jclark)
10547
10548         * eqn/lex.c (get_delimited_text): Allow tab before macro body.
10549
10550 Tue Oct 15 17:24:53 1991  James Clark  (jjc at jclark)
10551
10552         * ps/psrm.c (ps_get_line): Fix bug when lines longer than 255.
10553         Improve error message.
10554
10555 Fri Oct 11 11:09:38 1991  James Clark  (jjc at jclark)
10556
10557         * ps/psrm.c (print_ps_string): Don't pass negative numbers to
10558         printf("%03o");
10559
10560 Wed Oct  9 17:50:14 1991  James Clark  (jjc at jclark)
10561
10562         * groff.c (possible_command::execp): Always use _exit() after a
10563         failed exec.
10564
10565         * Makefile: Add HAVE_UNION_WAIT, HAVE_PID_T, WAIT_COREDUMP_0200,
10566         NO_SYS_WAIT_H   configuration options.
10567         * groff.c: Use these options.  Use POSIX-style macros to extract
10568         fields from the status returned by wait().
10569
10570 Fri Oct  4 12:12:27 1991  James Clark  (jjc at jclark)
10571
10572         * tbl/table.c (table::compute_separation_factor): Allow the
10573         separation factor to drop to 0.
10574
10575 Tue Oct  1 18:12:38 1991  James Clark  (jjc at jclark)
10576
10577         * refer/search.c: Include <errno.h>.
10578
10579 Sun Sep 29 08:40:57 1991  James Clark  (jjc at jclark)
10580
10581         * pic/pic.y (YYDEBUG): Don't define for Borland C++.
10582
10583         * lib/lib.h: #ifdef out declarations of itoa and iftoa for Borland
10584         C++. 
10585
10586         * pic/lex.c (input_stack::bol): Move definition out of class body.
10587
10588         * pic/main.c: On MSDOS munge argv[0].
10589
10590         * lib/ptable.h: Define name2 as _Paste2 for Borland C++.
10591
10592         * lib/ptable.c (hash_string): Use unsigned long rather than
10593         unsigned.
10594         (next_ptable_size): Use unsigned rather than int.  Give an error
10595         message if we've hit the largest table size.
10596         * lib/ptable.c: Corresponding changes.  Also use unsigneds for the
10597         table size.
10598
10599         * pic/object.h (object_spec): Make flags unsigned long.  Declare
10600         flags as const unisgned long rather than as enums.
10601
10602         * pic/output.c: Deleted.
10603
10604         * pic/troff.c (troff_output::simple_ellipse): Remove spurious %.
10605
10606         * tbl/table.c (simple_entry::note_double_vrule_on_{left,right}):
10607         Add additional argument.
10608         (line_entry::note_double_vrule_on_{left,right}): Set value of
10609         douvle_vrule_on_{right,left} flag according to argument.
10610         (simple_line_entry::simple_print,
10611         simple_line_entry::double_line_print): If adjacent to double vrule
10612         on a corner extend rather than shorten the rule by half the double
10613         vrule sep.
10614
10615         * troff/number.c (parse_term): In checking for overflow, handle the
10616         case where the current horizontal position is negative.
10617
10618 Thu Sep 12 08:26:09 1991  James Clark  (jjc at jclark)
10619
10620         * pic/object.c (draw_arrow): Check for object having zero length.
10621
10622 Wed Sep 11 10:32:38 1991  James Clark  (jjc at jclark)
10623
10624         * eqn/main.c (do_file): Split off inline equation handling into...
10625         (inline_equation): New function.  Search for starting delimiter
10626         using...
10627         (delim_search): New function. Don't recognize a delimiter that
10628         occurs in the name of an escape sequence, number register, string
10629         etc.
10630
10631 Tue Sep 10 04:01:11 1991  James Clark  (jjc at jclark)
10632
10633         * eqn/delim.c (delim_box::compute_metrics): Don't call
10634         define_extensible_string if left is 0.
10635         (delim_box::output):  Don't print the left delimiter if left is 0.
10636         (delim_box::debug_print): Check for left == 0 before calling printf.
10637
10638 Fri Aug 23 13:02:30 1991  James Clark  (jjc at jclark)
10639
10640         * troff/Makefile (majorminor.c): Include only digits in
10641         minor_version.
10642
10643 Thu Aug 22 09:35:37 1991  James Clark  (jjc at jclark)
10644
10645         * refer/dirnamemax.c: new file.
10646         * refer/genlimits.c: Deleted.
10647         * refer/indxbib.c (main): Use dir_name_max() instead of NAME_MAX.
10648         Don't check path length.
10649         * refer/Makefile: Add dir_name_max.o; delete genlimits.
10650         * Makefile: Add PATHCONF_MISSING option.
10651
10652         * refer/indxbib.c (get_cwd): New function.
10653         (main): Use get_cwd().
10654         * lib/getcwd.c: New file.
10655         * Makefile: Delete -DHAVE_GETWD. Include GETCWD variable. Pass
10656         GETCWD in SUBFLAGS.
10657         * lib/Makefile: Compile getcwd.o.
10658
10659         * ps/tmac.psatk (psatk-defs): Define showpage after pushing
10660         userdict.
10661
10662         * refer/indxbib.c (main): Check success of mktemp.
10663
10664         * lib/tmpfile.c: New file.
10665         * lib/Makefile: Add tmpfile.c.
10666         * lib/lib.h: Declare xtmpfile(); include <stdio.h>.
10667         * ps/ps.h: Delete declaration of mktemp().
10668         * ps/ps.c (ps_printer::ps_printer): Use xtmpfile().
10669         * refer/refer.c (divert_to_temporary_file): Use xtmpfile().
10670         * driver/driver.h: No need now to include errno.h.
10671
10672         * everywhere: Set errno to 0 before calling fopen().
10673
10674         * eqn/eqn.h, etc/soelim.c, driver/driver.h, etc/addftinfo.c,
10675         dvi/tfmtodit.c, groff.c, refer/index.c, refer/linear.c,
10676         refer/lookbib.c, refer/refer.h, ps/psbb.c: Include <errno.h>.
10677
10678 Mon Aug 19 10:52:18 1991  James Clark  (jjc at jclark)
10679
10680         * troff/env.h (translate_space_to_dummy): Declare it.
10681         * troff/env.c (environment::space_newline, environment::space):
10682         If translate_space_to_dummy is set then make the width of spaces 0.
10683         * troff/input.c (translate): If the second character of a
10684         translation is a space, translate to unbreakable space.  If the
10685         first character is a space, set or clear translate_space_to_dummy
10686         according to whether the second character is \&.  Weird!
10687
10688 Tue Jul 30 10:03:56 1991  James Clark  (jjc at jclark)
10689
10690         * groff.c (run_commands): Don't use non-zero exit code because a
10691         command gets SIGPIPE.
10692
10693         * groff.c, groff.sh: Use -mXps with -TXps.
10694
10695         * ps/ps.c (ps_printer::special): Move call to flush_sbuf() into...
10696         (ps_printer::do_exec, ps_printer::do_file, ps_printer::do_def,
10697         ps_printer::do_mdef, ps_printer::do_import): Call flush_sbuf().
10698         (ps_printer::special): New specials invis and endinvis.
10699         (ps_printer::do_invis, ps_printer::do_endinvis): New functions.
10700         (ps_printer::set_char, ps_printer::draw): Return if invis_count>0. 
10701         (ps_printer::end_page): Check that invis_count == 0.
10702         (ps_printer::invis_count): New member.
10703         (ps_printer::ps_printer): Initialize invis_count to 0.
10704
10705         * troff/env.c (environment::hyphenate_line): Hyphenation
10706         indicator at beginning of word inhibits splitting after -, \(em
10707         etc.
10708
10709         * pic/pic.y (element): Allow another element to follow } without
10710         any intervening separator.
10711
10712 Mon Jul 22 12:27:37 1991  James Clark  (jjc at jclark)
10713
10714         * pic/lex.c (get_delimited): Allow tabs before delimiter.
10715
10716 Wed Jul 17 10:59:08 1991  James Clark  (jjc at jclark)
10717
10718         * groff.c: Get rid of HAVE_UNION_WAIT stuff.  Instead suppress
10719         declaration of wait() in header files.
10720         * Makefile: Get rid of -DHAVE_UNION_WAIT.
10721
10722         * tbl/table.c (alphabetic_text_entry::add_tab): New function.
10723
10724         * lib/lib.h: Declare return type of strerror as char *.
10725
10726         * man/Makefile: Add g flag to sed substitutions.
10727         * Makefile (shgroff, bindist): Likewise.
10728
10729 Sun Jul 14 11:57:02 1991  James Clark  (jjc at jclark)
10730
10731         * ps/ps.c (ps_printer::do_import): Move push of userdict into...
10732         * ps/devps/prologue (PBEGIN): Define showpage after pushing
10733         userdict.
10734
10735 Sat Jul 13 20:53:04 1991  James Clark  (jjc at jclark)
10736
10737         * ps/devps/prologue (PBEGIN): Zap any definition of showpage in
10738         userdict.
10739
10740 Fri Jul 12 07:10:09 1991  James Clark  (jjc at jclark)
10741
10742         * man/mdate.sh: Handle the fact that BSD ls -l does not print the
10743         group.
10744
10745 Sun Jul  7 08:00:23 1991  James Clark  (jjc at jclark)
10746
10747         * troff/input.c (define_number_reg):  If currently undefined,
10748         don't define it if the argument is an invalid expression.
10749
10750         * Makefile: Ignore return value of `if' commands without `else'
10751         parts.
10752
10753         * Makefile: Split up CPPDEFINES into a series of separate
10754         configuration options.
10755
10756         * troff/input.c (init_registers): Use time_t instead of long
10757         unless LONG_FOR_TIME_T is defined.  Use returned result rather
10758         than passing pointer.
10759         * Makefile: Document LONG_FOR_TIME_T as a CPPDEFINE.
10760
10761         * lib/Makefile (fontpath.h): Use gendef.
10762
10763 Thu Jul  4 09:48:05 1991  James Clark  (jjc at jclark)
10764
10765         * troff/input.c (input_iterator::shift): Delete argument name.
10766         * troff/node.c (suppress_output_file::really_begin_page,
10767         suppress_output_file::really_transparent_char, node::ascii_print,
10768         node::tprint): Delete names of unused arguments.
10769
10770 Wed Jul  3 17:34:57 1991  James Clark  (jjc at jclark)
10771
10772         * refer/label.y (string):  Pass $4 to command_error.
10773
10774 Tue Jul  2 15:06:01 1991  James Clark  (jjc at jclark)
10775
10776         * Version 1.03 released.
10777
10778 Sat Jun 29 08:14:01 1991  James Clark  (jjc at jclark)
10779
10780         * Makefile: Pass definition of SHELL in SUBFLAGS.
10781
10782         * gendef: New file.
10783         * Makefile, eqn/Makefile, refer/Makefile, troff/Makefile,
10784         ps/Makefile: Use gendef to construct header files that are
10785         constructed from the Makefile.
10786
10787         * macros/Makefile: make all should build stripped version of tmac.e.
10788
10789         * refer/Makefile (clean): Remove y.output.
10790
10791 Fri Jun 28 09:44:36 1991  James Clark  (jjc at jclark)
10792
10793         * ps/pfbtops.c (main): Add -v option which prints out a version
10794         number.
10795         * ps/Makefile (pfbtops): Link with libgroff.a.
10796
10797 Fri Jun 21 07:43:23 1991  James Clark  (jjc at jclark)
10798
10799         * refer/search.h (linear_searcher::get_nkeys): Delete declaration.
10800         * refer/linear.c (linear_searcher::get_nkeys): Delete definition.
10801
10802         * refer/lkbib.c (main): Always terminate reference with blank
10803         line.
10804         * refer/lookbib.c (main): Likewise.
10805
10806         * refer/linear.c (file_buffer::load): Check that the file is not a
10807         binary file.
10808
10809         * refer/Makefile (genlimits): Possibly add -DHAVE_SYS_DIR_H.
10810         (genlimits.c): Include <sys/dir.h> if HAVE_SYS_DIR_H is defined.
10811         Delete second inclusion of <sys/param.h>.
10812
10813 Tue Jun 18 01:32:26 1991  James Clark  (jjc at jclark)
10814
10815         * troff/token.h (token::special): Deleted.
10816
10817         * tbl/main.c (process_format): Rework so that opt->tab_char is
10818         recognized only when appropriate.
10819
10820         * ps/Makefile (clean): Remove pfbtops.
10821
10822 Sun Jun 16 09:37:19 1991  James Clark  (jjc at jclark)
10823
10824         * lib/font.c (text_file::next): Don't return if we have got a
10825         blank line.
10826
10827 Fri Jun 14 09:52:26 1991  James Clark  (jjc at jclark)
10828
10829         * refer/refer.c (store_reference): Get hash code from old_table[i]
10830         when rehashing the table.
10831
10832 Thu Jun 13 01:26:43 1991  James Clark  (jjc at jclark)
10833
10834         * eqn/box.c (box::top_level): Save size and prev size using \R and
10835         restore it afterwards. Set the size to the size at the beginning
10836         of the line.
10837         * eqn/pbox.h: Declare SAVED_INLINE_PREV_SIZE_REG,
10838         SAVED_INLINE_SIZE_REG, and SAVED_SIZE_REG.
10839
10840         * refer/Makefile (limits.h): Use ./genlimits.
10841
10842 Wed Jun 12 16:05:34 1991  James Clark  (jjc at jclark)
10843
10844         * refer/index.c: Delete declarations of stat() and fstat().
10845
10846 Tue Jun 11 14:52:49 1991  James Clark  (jjc at jclark)
10847
10848         * tty/tmac.tty: Add character definitions for \(>= and \(<=.
10849
10850 Mon Jun 10 22:49:48 1991  James Clark  (jjc at jclark)
10851
10852         * etc/grog.sh, etc/grog.pl: Change regex for .PS.
10853
10854 Fri Jun  7 09:13:06 1991  James Clark  (jjc at jclark)
10855
10856         * troff/input.c (token::get_char): Handle \e.
10857
10858         * refer/linear.c: Delete declarations of fstat() and stat().
10859
10860 Wed Jun  5 09:11:59 1991  James Clark  (jjc at jclark)
10861
10862         * troff/node.c, troff/env.c, troff/input.c, Makefile: Remove
10863         OP_DELETE_BROKEN stuff, since we now have a fix for g++.
10864
10865 Mon Jun  3 13:41:32 1991  James Clark  (jjc at jclark)
10866
10867         * troff/input.c (do_define_macro): Improve error handling for end
10868         of file while defining macro.
10869
10870 Sun Jun  2 10:20:24 1991  James Clark  (jjc at jclark)
10871
10872         * eqn/box.h: Fix declaration of set_gsize.
10873         * eqn/box.c (set_gsize): Make argument const char *.
10874         (gsize): Declare as char *.
10875         * eqn/main.c (main): Don't convert gsize to int.
10876         * eqn/lex.c (do_gsize): Pass char * to set_gsize.
10877
10878         * Version 1.02 released.
10879
10880 Sat Jun  1 12:19:46 1991  James Clark  (jjc at jclark)
10881
10882         * macros/tmac.andoc: New file.
10883         * macros/Makefile: Install tmac.andoc.
10884
10885         * troff/node.c, troff/env.c, troff/input.c: Conditionalize use of
10886         operator new and delete on OP_DELETE_BROKEN not being defined.
10887         * Makefile: Mention OP_DELETE_BROKEN.
10888
10889 Mon May 27 13:49:07 1991  James Clark  (jjc at jclark)
10890
10891         * Makefile (bindist): Pass SUBFLAGS.
10892
10893 Sun May 26 14:13:22 1991  James Clark  (jjc at jclark)
10894
10895         * Makefile, groff.c: Pass definitions to groff.c via device.h.
10896
10897         * tty/tty.c (tty_font::load_tty_font): Avoid shadowing
10898         parameter.
10899
10900         * ps/Makefile, ps.c: Pass BROKEN_SPOOLER_FLAGS via broken.h.
10901
10902         * ps/ps.h, ps/psrm.c: Make comment_table and
10903         header_comment_table local to resource_manager::process_file.
10904
10905         * groff.sh: With -TXps pass -printCommand option to gxditview.
10906
10907         * groff.c (possible_command::print): Implement using
10908         append_arg_to_string.
10909
10910         * xditview: Merge in new implementation with own ChangeLog.
10911
10912 Sat May 25 18:33:20 1991  James Clark  (jjc at jclark)
10913
10914         * groff.c (main): Implement PRINT_OPTION.
10915         (append_arg_to_string): New command.
10916         (device_table): Set PRINT_OPTION flag for Xps.
10917
10918 Fri May 24 09:48:58 1991  James Clark  (jjc at jclark)
10919
10920         * troff/groff.h: Rename to troff.h.
10921
10922         * pic/lex.c (lookup_keyword, docmp): New functions.
10923         (get_token): Use new lookup_keyword.
10924         Don't include key.h.
10925         * pic/key.[ch], pic/pic.gperf: Deleted.
10926         * pic/Makefile: Remove gperf stuff.
10927
10928         * pic/Makefile, pic/output.h: Move definition of TEX_SUPPORT
10929         into output.h.
10930         * pic/tex.c: Move include of pic.h before test of TEX_SUPPORT.
10931
10932         * troff/Makefile, troff/node.c: Move definition of
10933         STORE_WIDTH into node.c.
10934
10935         * etc/grog.pl, etc/grog.sh: Support -mdoc.
10936
10937 Thu May 23 12:30:49 1991  James Clark  (jjc at jclark)
10938
10939         * dvi/devdvi/texr.map, dvi.devdvi/texi.map,
10940         dvi/devdvi/texb.map: Add lq and rq.
10941         dvi/devdvi: Regenerate fonts.
10942         * ps/devps/textmap: Add lq and rq.
10943         * ps/devps: Regenerate fonts.
10944         * tty/devascii/R.proto, tty/devlatin1/R.proto: Add lq and rq.
10945         * macros/tmac.e: Define \*(lq and \*(rq to be \(lq and \(rq.
10946
10947         * pic/object.c (position_rectangle): When checking radius
10948         cope with possiblity that width or height is negative.
10949         (box_object::box_object): Have separate xrad and yrad with
10950         signs matching signs of dim components.
10951         (box_object::{north,south}_{east,west}): Use xrad and yrad.
10952         (box_object::print): With rounded boxes use absolute values
10953         for dim and rad arguments.
10954
10955         * lib/Makefile, lib/fontfile.o: Pass definition of FONTPATH
10956         in fontpath.h.
10957
10958         * eqn/Makefile, eqn/main.c: Pass definition of DEVICE in device.h.
10959
10960         * various files: Add explicit destructors to keep Saber CC +d
10961         happy.
10962
10963 Wed May 22 11:37:11 1991  James Clark  (jjc at jclark)
10964
10965         * eqn/box.c (box::top_level): Restore fonts correctly after
10966         font changes in line containing inline equation.  Also
10967         restore previous font as well as current font.
10968         * eqn/pbox.h: Define necessary string and register names.
10969
10970         * troff/input.c (token::next): Case 'R' calls do_register.
10971         (do_register): New function.
10972
10973 Tue May 21 11:28:23 1991  James Clark  (jjc at jclark)
10974
10975         * groff.c, groff.sh: Support Xps device.  Allow each device
10976         to have a pseudo_name and a real_name.
10977
10978         * groff.c (run_commands): Don't print `Broken pipe' messages.
10979
10980         * ps/pfbtops.c: New file.
10981         * ps/Makefile: Add pfbtops.
10982
10983         * troff/number.c (parse_term): Improved error message.
10984
10985 Mon May 20 11:22:14 1991  James Clark  (jjc at jclark)
10986
10987         * groff.c, groff.sh, etc/grog.sh, etc/grog.pl: Support grefer.
10988
10989         * Makefile: Integrate refer.
10990         * refer: New directory.
10991         * man/grefer.man, man/glookbib.man, man/gindxbib.man,
10992         man/lkbib.man: New files.
10993         * man/Makefile: Support refer man pages.
10994
10995         * lib/lib.h: Declare is_prime.
10996         * lib/prime.c: New file.
10997
10998         * troff/input.c (macro_source): New function.
10999         (init_input_requests): Bind "mso" to macro_source.
11000
11001         * troff/env.c (environment::possibly_break_line): Maintain
11002         pointer to pointer to node to be split in ndp so as to avoid
11003         using address of freed node.
11004
11005         * troff/env.c (environment::hyphenate_line): Maintain pointer to
11006         pointer to first node to be hyphenated in startp so as to
11007         avoid using address of freed node.
11008
11009         * troff/env.c (class trie, class hyphen_trie): Make the
11010         elements of the trie be of type char not unsigned char.
11011         Declare arguments to be const char* instead of unsigned char *.
11012         
11013         * troff/env.c (hyphenate): Initialize hbuf[0].
11014
11015         * troff/input.c (set_string): Declare p to be char * and cast
11016         *p to unsigned char when necessary.
11017
11018         * troff/input.c (do_define_macro): Declare s to be const
11019         char*. Cast element to unisgned char when necessary, Declare
11020         d to be an int.  Handle EOF better.
11021
11022         * troff/Makefile, troff/input.c: Different scheme for passing
11023         definitions of MACROPATH, HYPHENFILE and DEVICE.
11024
11025 Tue May 14 13:41:36 1991  James Clark  (jjc at jclark)
11026
11027         * tty/devascii/R.proto: Delete entry for em.
11028         * tty/devlatin1/R.proto: Likewise.
11029
11030 Sat May 11 11:13:28 1991  James Clark  (jjc at jclark)
11031
11032         * troff/input.c (translate): Stop when we get a space. Treat eof
11033         like newline.
11034
11035         * macros/tmac.an (IP): Only pass quoted argument to TP when \n(.$>1.
11036
11037 Wed Apr 24 19:24:33 1991  James Clark  (jjc at jclark)
11038
11039         * tbl/main.c (process_format): A font name following a `f'
11040         modifier that starts with a digit can be only one character long.
11041         Also deal with EOF on the second character of the font name.
11042
11043 Wed Apr 17 11:23:43 1991  James Clark  (jjc at jclark)
11044
11045         * troff/input.c (token::next): Turn \~ into an
11046         unbreakable_space_node.
11047         * troff/node.c (unbreakable_space_node): New class.
11048         * troff/node.h: Declare it.
11049
11050 Tue Apr 16 10:47:12 1991  James Clark  (jjc at jclark)
11051
11052         * dvi/dvi.c (dvi_printer::set_char): Make code an int.  Check that
11053         it's >= 0, before outputting it as a single byte.
11054
11055 Mon Apr 15 11:20:23 1991  James Clark  (jjc at jclark)
11056
11057         * lib/font.c: Make font_char_metric::code an int.
11058         (font::get_code): Change return type to int.
11059         (font::load): Allow code to be arbitrary integer.
11060         * lib/font.h (font::get_code): Change return type to int.
11061         (font::number_to_index): Change argument type to int.
11062         * troff/input.c (token::next):  In case 'N', allow any value.
11063         Store value in token::val.
11064         (token::operator==): For TOKEN_NUMBERED_CHAR test equality of val.
11065         (token::get_char, token::add_to_node_list, token::process): Get
11066         number from val.
11067         (charinfo::set_number): Change argument to int.
11068         (charinfo::get_number):  Require that NUMBERED flag be set.
11069         (get_charinfo_by_number): Store numbered characters not between 0
11070         and 255 in a dictionary.
11071         * troff/charinfo.h (get_charinfo_by_number): Change argument type
11072         to int.
11073         (charinfo::number): Change type to int.
11074         (charinfo::set_number): Change type of set_number to int.
11075         * troff/node.c (troff_output_file::put_char_width,
11076         troff_output_file::put_char): Test whether character is numbered
11077         using charinfo::numbered().
11078         * driver/printer.c (printer::set_numbered_char): Allow arbitrary
11079         values of num.
11080         * lib/nametoindex.c: New implementation to cope with arbitrary
11081         number characters.
11082
11083         * troff/input.c (token::operator==): Test val for
11084         TOKEN_CHAR_HEIGHT, TOKEN_CHAR_SLANT, TOKEN_FONT_POSITION, and
11085         TOKEN_SIZE.
11086
11087         * man/Makefile: Add definiton of BROKEN_SPOOLER_FLAGS.
11088         (.man.n):  sed out @BROKEN_SPOOLER_FLAGS@.
11089
11090 Sun Apr 14 12:57:00 1991  James Clark  (jjc at jclark)
11091
11092         * ps/devps/zapfdr.ps: Don't copy UniqueID.  Avoid use of newdict
11093         variable.
11094
11095         * all Makefiles: rm targets of cp and >.
11096
11097         * xditview/xtotroff.c (MapFont): Unlink troff_name before opening
11098         it.
11099
11100         * eqn/lex.c (def_table): Add dollar.
11101
11102 Sat Apr 13 13:02:44 1991  James Clark  (jjc at jclark)
11103
11104         * troff/input.c (do_width): Push back newline before closing delim
11105         like do_bracket.
11106
11107 Fri Apr 12 15:16:03 1991  James Clark  (jjc at jclark)
11108
11109         * groff.c (possible_command::prepend_arg): New function.
11110         (main): Prepend device -m option.
11111         * groff.sh: Put device -m options before command-line options.
11112
11113 Tue Apr  9 10:24:43 1991  James Clark  (jjc at jclark)
11114
11115         * macros/tmac.an (IP): Quote argument to TP.
11116
11117         * ps/ps.c (main): New option -b, which sets...
11118         (broken_flags): New variable.
11119         (ps_printer::~ps_printer): Incorporate the setup section in the
11120         prolog if (broken_flags & NO_SETUP_SECTION).
11121         (ps_printer::begin_page): Generate {Begin,End}PageSetup comments.
11122         (ps_printer::merge_download_fonts, ps_printer::merge_import_fonts,
11123         ps_printer::merge_ps_fonts, ps_printer::print_font_comment,
11124         ps_printer::print_needed_font_comment,
11125         ps_printer::print_supplied_font_comment,
11126         ps_printer::print_include_font_comments,
11127         ps_printer::lookup_doc_font, ps_printer::download_fonts,
11128         ps_printer::read_download_file, read_document_fonts, add_font,
11129         skip_line, parse_fonts_arg, document_font::document_font,
11130         document_font::~document_font, document_font::download,
11131         ps_output::include_file):  Deleted.
11132         (ps_printer::~ps_printer): Generate %%EOF. Generate %!PS-Adobe-3.0
11133         rather than %!PS-Adobe-2.0.  Make calls to
11134         resource_manager::need_font for each font that we used. Replace
11135         calls to merge_ps_fonts, merge_download_fonts, print_font_comment,
11136         print_supplied_font_comment, print_needed_font_comment by call to
11137         resource_manager::print_header_comments. Output %%Orientation
11138         comment. Output %%Requirements: numcopies comment if ncopies > 1.
11139         Don't output the prolog directly.  Instead call
11140         resource_manager::output_prolog.  Only define #copies when ncopies
11141         > 1.  Delete calls to print_include_font_comments  and
11142         download_fonts.  Add call to resource_manager::document_setup.
11143         (ps_printer::do_file): Call resource_manager::import_file instead
11144         of including it ourselves.
11145         (ps_printer::do_import): Likewise.  Also don't call
11146         merge_import_fonts. Push userdict on the dictionary stack before
11147         and pop it afterwards.
11148         Move declaration of ps_output into ps.h.
11149         * ps/psrm.c: New file implementing resource_manager class.
11150         * ps/ps.h: New file declaring ps_output and resource_manager
11151         classes.
11152         * ps/devps/zapfdr.ps:
11153         * ps/devps/symbolsl.ps:
11154         * ps/devps/prologue:  Use 3.0 conventions.
11155         * ps/Makefile: Pass definition of BROKEN_SPOOLER_FLAGS in DEFINES.
11156         Add default definition of BROKEN_SPOOLER_FLAGS.
11157         * Makefile: New variable BROKEN_SPOOLER_FLAGS.  Add
11158         BROKEN_SPOOLER_FLAGS to SUBFLAGS.
11159
11160 Mon Apr  8 09:26:54 1991  James Clark  (jjc at jclark)
11161
11162         * etc/grog.pl: New file.
11163         * Makefile (GROG): New variable.
11164         Add GROG to SUBFLAGS.
11165         * etc/Makefile (GROG): New variable.
11166         (install.nobin): Install $(GROG) rather than grog.sh.
11167
11168 Thu Apr  4 11:36:45 1991  James Clark  (jjc at jclark)
11169
11170         * eqn/special.c (special_box::compute_metrics): Make the input and
11171         output strings the same.  Get the new height and depth from the
11172         predefined height and depth registers.  Also make subscript kern
11173         and skew available.
11174         (special_box::compute_subscript_kern, special_box::compute_skew):
11175         New functions.
11176
11177         * eqn/box.c (pointer_box::compute_skew,
11178         simple_box::compute_metrics, box::top_level)
11179         * eqn/text.c (prime_box::compute_metrics,
11180         prime_box::comput_subscript_kern)
11181         * eqn/limit.c (limit_box::compute_metrics):
11182         * eqn/delim.c (build_extensible, delim_box::compute_metrics):
11183         * eqn/sqrt.c (sqrt_box::compute_metrics): Protect possibly
11184         negative numbers in `nr' requests with a leading 0.
11185
11186 Wed Apr  3 15:58:23 1991  James Clark  (jjc at jclark)
11187
11188         * eqn/special.c: New file.
11189         * eqn/eqn.y: Declare token SPECIAL.  Make it right associative.
11190         Add new rule for simple.
11191         * eqn/lex.c (token_table): Add SPECIAL.
11192         * eqn/box.h: Declare make_special_box.
11193         * eqn/Makefile: Add special.[co].
11194
11195 Sat Mar 30 10:57:53 1991  James Clark  (jjc at jclark)
11196
11197         * ps/devps/prologue: Possibly set packing to true while defining.
11198         Create grops dictionary here.  Initialize local variables before
11199         defining procedures.
11200         (PICTURE): Rename to PBEGIN. Also do save, noop showpage, count
11201         the dictionary stack. Set strokeadjust and overprint to false if
11202         the relevant operators are defined.
11203         (PEND): New procedure.
11204         * ps/ps.c (ps_printer::~ps_printer): In the prolog just include
11205         prologue.  Do everything else in the setup section.
11206         (ps_printer::do_import): Just call PBEGIN and PEND around the
11207         picture. Also push userdict before, and pop it afterwards.
11208
11209 Wed Mar 27 07:59:50 1991  James Clark  (jjc at jclark)
11210
11211         * troff/node.c (bracket_node::tprint): Brackets were being printed
11212         1m too low.
11213
11214         * macros/tmac.an (SH, SS): Set fill mode.
11215
11216 Tue Mar 26 07:46:31 1991  James Clark  (jjc at jclark)
11217
11218         * troff/div.c (top_level_diversion::begin_page): Set
11219         high_water_mark to 0.
11220
11221 Fri Mar 22 09:19:46 1991  James Clark  (jjc at jclark)
11222
11223         * man/mdate.sh: New file.
11224         * man/mdate.c: Deleted.
11225         * man/Makefile: Use mdate.sh instead of mdate.
11226         (mdate): Deleted.
11227
11228         * eqn/lex.c (do_gsize): Supply missing argument to error message.
11229
11230 Tue Mar 19 11:06:50 1991  James Clark  (jjc at jclark)
11231
11232         * man/mdate.c: New file.
11233         * man/*.man: Replace modification date by @MDATE@.
11234         * man/Makefile (.man.n): Replace @MDATE@ by `mdate $<`.
11235         (mdate): New target.
11236
11237         * lib/font.c (text_file::next): Deal with arbitrarily long lines.
11238         Remove illegal input characters.
11239
11240 Mon Mar 18 08:32:25 1991  James Clark  (jjc at jclark)
11241
11242         * macros/tmac.s (pg*start-col): Do .ns *after* running the hooks.
11243
11244 Sat Mar 16 03:52:25 1991  James Clark  (jjc at jclark)
11245
11246         * troff/div.c (begin_page): Change behaviour when
11247         !first_page_begun and !break_flag.
11248
11249         * troff/input.c (do_name_test): Return 0 if argument is empty.
11250
11251         * troff/input.c (read_long_escape_name): Require closing ] to be
11252         at same input level as opening [.
11253
11254         * troff/input.c (read_increment_and_escape_name): New function.
11255         (get_copy, process_input_stack): Use this for \n.
11256
11257 Fri Mar 15 00:31:48 1991  James Clark  (jjc at jclark)
11258
11259         * troff/div.c (top_level_diversion::begin_page): Ignore the
11260         current value of page_number if !first_page_begun.
11261
11262         * groff.c (main): Fix declaration of buf.
11263
11264         * troff/input.c (do_name_test): New function.
11265         (token::next): Implement \A.
11266         (token::next): Implement \e by turning it into a TOKEN_ESCAPE.
11267         (token::description, token::add_to_node_list, token::process):
11268         Handle TOKEN_ESCAPE.
11269         * troff/token.h: New token TOKEN_ESCAPE.
11270
11271 Thu Mar 14 10:22:26 1991  James Clark  (jjc at jclark)
11272
11273         * pic/main.c (do_picture): Allow space before and after filename
11274         following `<'.  Check that the filename is not empty.
11275
11276 Wed Mar 13 12:49:40 1991  James Clark  (jjc at jclark)
11277
11278         * Version 1.01 released. 
11279
11280         * dvi/devdvi/CompileFonts: Add cm*ss10 fonts.
11281
11282         * dvi/tmac.dvi: ftr HR to H.
11283
11284         * macros/tmac.e: Round up computation of $r.
11285
11286         * xditview/tmac.X:  Don't give up completely in compatibility mode.
11287         Use \n(.s instead of \n[.s].
11288
11289         * dvi/tmac.dvi: Don't give up completely in compatibility mode.
11290         Use \(ci instead of \[ci]. Use \n(.s instead of \n[.s].
11291         Add u to factors inside \s[...]. Rename frac to dvi-frac.
11292         Translate \(FM onto \[prime] and \(!/ onto \[slashnot]; use these
11293         short names in the char definitions.
11294
11295         * ps/tmac.ps: Don't give up completely in compatibility mode.
11296         Fix the fraction definitions to use \n(.s and \(f/. Add an extra
11297         quote in front of \n(.s. Add u to factors inside \s[...].
11298
11299 Mon Mar 11 12:01:20 1991  James Clark  (jjc at jclark)
11300
11301         * tty/tmac.tty: Call the nroff request.
11302
11303         * macros/tmac.e ((x, )x):  Better definitions that work properly
11304         in a diversion.
11305         (@0, @1): Helper macros for (x.
11306
11307         * macros/tmac.e ($s, hl): Use \l rather than \D.
11308
11309         * tty/tmac.tty: Make it work better in compatibility mode.
11310         (pchar): Rename to tty-char.
11311
11312         * macros/tmac.e (@E): New macro.
11313         (r, i, b, rb, bi): Use @E.
11314
11315         * macros/tmac.e (@F): Don't use (;...) syntax.
11316
11317         * macros/tmac.e: Remove mention of \*(||/revisions.  Mention that
11318         it was modified for groff.
11319
11320         * macros/tmac.e: Make sure \n(ps and \n(es are >= \n(.V.
11321
11322         * macros/tmac.e (<., .>): Removed.
11323         ([., .]): If \n(.V>=1v, use [] instead of superscripting.
11324
11325         * macros/tmac.e: Remove check that groff is being used.
11326
11327         * macros/tmac.e (@C): Change families only if using groff; turn
11328         compatibility mode off while changing familes. Save compatibility
11329         mode before changing families and restore it afterwards.
11330
11331         * macros/tmac.e (@h): Remove test for offset + line length.
11332
11333         * macros/tmac.e (sorry): Rename to @S.  Use \$1 instead of \$0
11334         (lo, th, ac): Define to call @S instead of using als.
11335
11336         * macros/tmac.e: Make $r and $R now contain \n(.v*100/\n(.sp, ie
11337         the ratio of the vertical spacing to the point size in units
11338         expressed as a percentage.  Use these instead of $10r and $10R,
11339         Delete $10r and $10R.
11340
11341         * lib/font.c (font::load): In default computation of space_width,
11342         divide by sizescale.  Use scale_round.
11343
11344         * macros/tmac.an (TP): Don't call `nf'.
11345         (an-do-tag): Don't call `fi'.
11346
11347 Sun Mar 10 09:52:35 1991  James Clark  (jjc at jclark)
11348
11349         * troff/input.c (process_input_stack): Handle the case where
11350         spaces at the beginning of an input line are followed by a
11351         newline.
11352
11353 Thu Mar  7 20:18:07 1991  James Clark  (jjc at jclark)
11354
11355         * groff.c (device_table): Add PIC_X_OPTION for dvi device.
11356         * groff.sh: Use pic -x with the dvi device.
11357
11358         * dvi/devdvi/FontMakefile (H): Don't use -s.
11359
11360         * dvi/devdvi/HI, dvi/devdvi/HB: New files.
11361         * dvi/devdvi/Makefile: Add HI and HB to FONTS.
11362         * dvi/devdvi/FontMakefile: Add rules for HI and HB. Include these
11363         in FONTS.
11364
11365 Mon Mar  4 13:20:14 1991  James Clark  (jjc at jclark)
11366
11367         * ps/psfig.diff: New file.
11368         * ps/tmac.psfig: New file.
11369
11370 Sat Mar  2 00:15:09 1991  James Clark  (jjc at jclark)
11371
11372         * macros/tmac.s (]=, ref*do-tl, ref*bib-print): Deleted.
11373         (]-): Don't call ref*do-tl.
11374
11375         * macros/tmac.s (ref*end-print): Use XP if [F not defined.
11376
11377         * macros/tmac.s (ref*normal-print): Call FS rather than fn@do-FS.
11378         (fn@do-FS): Rename to fn*do-FS.
11379
11380         * troff/input.c (transparent_translate): New function.
11381         (process_input_stack): Apply transparent_translate before calling
11382         diversion::transparent_output(unsigned char).
11383
11384 Wed Feb 27 00:13:25 1991  James Clark  (jjc at jclark)
11385
11386         * troff/input.c (do_define_macro): Define the macro before calling
11387         skip_line.
11388
11389         * xditview/Makefile: Add DEVICES variable.  Change install target
11390         to use this.
11391
11392 Tue Feb 26 10:46:22 1991  James Clark  (jjc at jclark)
11393
11394         * groff.c (run_commands): Handle the possibility that there are
11395         child processes other than those forked by us.
11396
11397 Sun Feb 24 21:32:30 1991  James Clark  (jjc at jclark)
11398
11399         * lib/string.c (string::append): New function.
11400         * lib/stringclass.h: Declare it.
11401
11402 Thu Feb 21 11:49:26 1991  James Clark  (jjc at jclark)
11403
11404         * eqn/main.c (main): New option -N which sets
11405         no_newline_in_delim_flag. 
11406         (do_file): If no_newline_in_delim_flag is set don't allow newlines
11407         in delimiters.
11408         * groff.c (main): Pass -N on to eqn.
11409         (help, synopsis): Mention -N.
11410         * groff.sh: Implement -N.
11411
11412 Wed Feb 20 15:16:10 1991  James Clark  (jjc at jclark)
11413
11414         * macros/tmac.s (]=, ref*bib-print, ref*do-tl): New macros.
11415         (]-): Call ref*do-tl if ref*need-tl is non-zero.
11416         (XP): Allow as initializer.
11417
11418 Tue Feb 19 14:09:06 1991  James Clark  (jjc at jclark)
11419
11420         * troff/env.c (environment::wrap_up_field): If field_spaces are
11421         non-zero and we have a current_tab, subtract padding from
11422         tab_distance.  If this makes tab_distance <= 0, use the next tab
11423         stop instead.  If there isn't any next tab or it's a left tab,
11424         wrap up the current tab.
11425         (environment::start_field): Initialize tab_precedes_field.
11426         (environment::wrap_up_tab): If there's a current field, update
11427         pre_field_width, field_distance and tab_precedes_field.
11428         * troff/env.h (environment::tab_precedes_field): New member.
11429
11430 Fri Feb 15 01:24:00 1991  James Clark  (jjc at jclark)
11431
11432         * ps/ps.c (ps_printer::do_file): New function.
11433         (ps_printer::special): Bind to `file' special.
11434         (ps_printer::do_exec): Set ndefined_styles to 0.
11435
11436 Sat Feb  9 03:03:04 1991  James Clark  (jjc at jclark)
11437
11438         * eqn/text.c (split_text): Grok \* and similar escapes sequences.
11439         Avoid stripping first character from the start of unrecognized
11440         escapes.  Use lex_error instead of error to report errors.
11441         * eqn/lex.c (get_token): Rework handling of escapes.
11442         (lex_error): Move declaration into...
11443         * eqn/eqn.h.
11444
11445         * xditview/xditview.c (main): Make -page option work.
11446
11447         * Makefile: Correct comment about -DBROKEN_SPOOLER and pageview.
11448
11449 Wed Feb  6 12:28:43 1991  James Clark  (jjc at jclark)
11450
11451         * macros/tmac.s (B2): Correct size of box.
11452
11453 Tue Feb  5 00:37:35 1991  James Clark  (jjc at jclark)
11454
11455         * macros/tmac.s (B2): Postpone drawing the box until in the
11456         top-level diversion.
11457
11458         * tty/tmac.tty: Add font translations for C, CR, CW.
11459
11460         * groff.c (synopsis, help): Document -i.
11461         * groff.sh: Implement -i.
11462
11463         * macros/tmac.s (@NH): Put a `.' after multi-part numbers.
11464         Simplify the construction of SN.
11465
11466         * troff/number.c (parse_term): Give `|' a higher precedence.
11467         * tbl/table.c (numeric_text_entry::simple_print): Parenthesise
11468         accordingly.
11469
11470         * macros/tmac.s (B2): Use par@finish instead of par@reset.
11471
11472 Mon Feb  4 12:36:09 1991  James Clark  (jjc at jclark)
11473
11474         * lib/string.c (string::move): New function.
11475         * lib/stringclass.h: Declare it.
11476
11477 Sat Feb  2 16:02:16 1991  James Clark  (jjc at jclark)
11478
11479         * troff/env.c (distribute_space): Add optional argument
11480         `force_forward'.
11481         (environment::wrap_up_field): Call distribute_space with
11482         `force_forward' argument of 1.
11483
11484 Fri Feb  1 19:36:33 1991  James Clark  (jjc at jclark)
11485
11486         * lib/string.c, lib/stringclass.h (string::operator+=(char)):
11487         Inline it.  Move reallocation into...
11488         (string::grow1): New function.
11489         * pic/Makefile, tbl/Makefile, eqn/Makefile, ps/Makefile: Redo
11490         dependencies to include library header files.
11491         * lib/Makefile: Make string.c and lf.c depend on stringclass.h.
11492
11493 Thu Jan 31 15:02:27 1991  James Clark  (jjc at jclark)
11494
11495         * macros/tmac.s (@NH): Use the same number registers than -ms does
11496         for the heading level counters.  Use the same string that -ms does
11497         for the number for this heading.
11498
11499 Wed Jan 30 14:25:40 1991  James Clark  (jjc at jclark)
11500
11501         * lib/new.c (operator new): Cast result of malloc to char *.
11502
11503         * troff/input.c (spring_trap, lookup_request): Add assert that nm
11504         is not null.
11505
11506 Tue Jan 29 18:08:05 1991  James Clark  (jjc at jclark)
11507
11508         * groff.c (main): Support -i.
11509
11510 Sun Jan 27 13:23:17 1991  James Clark  (jjc at jclark)
11511
11512         * pic/pic.h: Include <osfcn.h>.
11513
11514         * ps/ps.c: Add declaration of mktemp.
11515
11516         * Makefile: Add -DHAVE_UNION_WAIT option for CPPDEFINES.
11517         * groff.c: If HAVE_UNION_WAIT is defined, declare wait()'s
11518         argument as union wait *.
11519         (run_commands): If HAVE_UNION_WAIT is defined cast wait()'s
11520         argument to union wait *.
11521
11522 Sat Jan 26 12:04:52 1991  James Clark  (jjc at jclark)
11523
11524         * tty/tmac.tty: Add definition of \(co.
11525
11526         * pic/object.c (make_arc): Only increase radius when radius
11527         strictly less than d.
11528         (arc_object::update_bounding_box): May need to add 4.0 to end_quad
11529         more than once.
11530
11531         * troff/env.c (environment::environment(symbol),
11532         environment::environment(const environment *)):  Initialize
11533         input_trap_count.
11534
11535 Sat Jan 19 08:18:35 1991  James Clark  (jjc at jclark)
11536
11537         * tbl/main.c (main): Add exit(0).
11538
11539         * ps/ps.c (ps_printer::~ps_printer): Use fseek instead of rewind.
11540
11541         * pic/main.c (main):
11542         * eqn/main.c (main):
11543         * tbl/main.c (main):
11544         * etc/soelim.c (main):
11545         * driver/printer.c (printer::~printer):
11546         * troff/node.c (real_output_file::~real_output_file,
11547         real_output_file::flush):  Check for errors on stdout.
11548
11549         * most files: Add 1991 to copyright notice.
11550
11551         * macros/tmac.s: Don't test \n(.x and \n(.y.
11552
11553         * troff/input.c (token::next): Rename `escape_char' label to
11554         `handle_escape_char' and `normal_char' label to
11555         `handle_normal_char'.
11556
11557 Thu Jan 17 15:46:35 1991  James Clark  (jjc at jclark)
11558
11559         * groff.c (main, synopsis, help): Support -a option.
11560         * groff.sh: Likewise.  Also eliminate Zflag variable by adding -z
11561         to trflags while parsing options.
11562
11563 Tue Jan 15 13:07:27 1991  James Clark  (jjc at jclark)
11564
11565         * troff/number.c (parse_term): With `m', `M' and `n' scale
11566         indicators, convert scale factor to hunits before scaling.
11567
11568 Mon Jan 14 12:39:12 1991  James Clark  (jjc at jclark)
11569
11570         * lib/font.c (scale_round): Better test for overflow when n is
11571         negative.
11572
11573 Thu Jan 10 11:10:56 1991  James Clark  (jjc at jclark)
11574
11575         * tbl/main.c (process_format): Add second argument of type
11576         options*. Change callers.  Allow opt->tab_char as well as '\t'
11577         between format items.
11578
11579 Mon Jan  7 12:30:18 1991  James Clark  (jjc at jclark)
11580
11581         * macros/tmac.an (PD): With no arguments, make sure register PD is
11582         at least \n[.V].
11583         (TH): Call PD with no argument, instead of setting register PD
11584         directly.
11585
11586 Sun Jan  6 11:18:39 1991  James Clark  (jjc at jclark)
11587
11588         * Version 1.00 released.
11589
11590 Sat Jan  5 08:44:30 1991  James Clark  (jjc at jclark)
11591
11592         * ps/tmac.ps, xditview/tmac.X: Add font translation of C to CR.
11593
11594         * dvi/devdvi/DESC: Mount CW instead of CR.
11595
11596         * dvi/tmac.dvi: Add definition of \(tm.
11597
11598         * dvi/devdvi/texsy.map: Add lh, and rh.
11599         * dvi/devdvi/texex.map: Add lt, rt, lb, rb, lk, rk.
11600         * dvi/devdvi/texmi.map: Add *o. Regenerate fonts.
11601
11602         * dvi/devdvi/FontMakefile: Generate H from cmss10.
11603         * dvi/devdvi/Makefile: Install H.
11604         * dvi/devdvi/H: New file.
11605
11606 Fri Jan  4 15:04:57 1991  James Clark  (jjc at jclark)
11607
11608         * troff/env.c (vertical_spacing): Don't allow vertical spacing to
11609         be 0.
11610
11611 Thu Jan  3 13:41:19 1991  James Clark  (jjc at jclark)
11612
11613         * macros/tmac.s (@EN): Add \n(.V to the argument to ds@need.
11614
11615         * macros/tmac.pic (PS): Avoid attempting to set negative indent.
11616
11617         * macros/tmac.s (@EN): Handle the case where the equation is empty
11618         but the label is not.
11619
11620 Wed Jan  2 10:31:44 1991  James Clark  (jjc at jclark)
11621
11622         * troff/groff.h: New warning category WARN_SPACE.
11623         * troff/input.c: Add WARN_SPACE to DEFAULT_WARNING_MASK. Add
11624         WARN_SPACE to warning_table.
11625         (interpolate_macro): Give a warning of type WARN_SPACE if the name
11626         is longer than two characters and is not defined, but the first
11627         two characters do make a defined name.
11628
11629         * PROBLEMS: New file.
11630
11631         * CHANGES: New file.
11632         * README-0.6, README-1.00: Deleted.
11633
11634         * groff.c, groff.sh: Add X75-12 and X100-12 devices.
11635         * xditview/devX75/Makefile: Make devX75-12.
11636         * xditview/devX100/Makefile: Make devX100-12.
11637
11638         * xditview/devX100/eqnchar, xditview/devX75/eqnchar,
11639         dvi/devdvi/eqnchar, ps/devps/eqnchar: Remove use of \R.
11640
11641 Tue Jan  1 19:24:01 1991  James Clark  (jjc at jclark)
11642
11643         * README-0.7: Rename to README-1.00.
11644
11645         * macros/tmac.pic: New file.
11646         * macros/Makefile (install.nobin): Install tmac.pic.
11647
11648 Mon Dec 31 10:40:53 1990  James Clark  (jjc at jclark)
11649
11650         * troff/env.c (hyphen_word): Correct the test for whether the
11651         token is a hyphen.  Reset npos to 0.
11652
11653         * macros/tmac.s (par@sup-start, par@sup-end): New implementations.
11654
11655 Sun Dec 30 15:53:13 1990  James Clark  (jjc at jclark)
11656
11657         * macros/tmac.s (ds*common-end): Call par*reset.
11658         (PE): Likewise.
11659         (par@reset-indent): Deleted.
11660
11661         * macros/tmac.s (@IP): Divert the label.
11662
11663 Sat Dec 29 14:33:32 1990  James Clark  (jjc at jclark)
11664
11665         * xditview/draw.c (setGC): Use a line width of .1m rather than
11666         .04m by default; round rather than truncate value.
11667
11668         * tbl/table.c (class empty_entry): New class.
11669         (empty_entry::empty_entry, empty_entry::line_type): New functions.
11670         (table::add_entry): Represent empty entries by objects of type
11671         empty_entry.
11672         (table_entry::line_type): Return -1.
11673         (table::determine_row_type): Ignore entries with line_type 0.
11674         Treat type -1 as non-lines.
11675
11676 Fri Dec 28 15:04:41 1990  James Clark  (jjc at jclark)
11677
11678         * ps/devps/textmap, xditview/libXdvi/DviChar.c, tty/devlatin1/R.proto,
11679         macros/tmac.s: Rename \(-d to \(Sd.
11680
11681 Thu Dec 27 12:35:47 1990  James Clark  (jjc at jclark)
11682
11683         * ps/devps/textmap: Add `sd', `/_' and `3d' characters.
11684         * xditview/libXdvi/DviChar.c: Likewise.
11685         * dvi/devdvi/texsy.map: Add `<<', `>>'.
11686
11687 Wed Dec 26 13:33:23 1990  James Clark  (jjc at jclark)
11688
11689         * troff/div.c (top_level_diversion::begin_page): Call
11690         init_output() if the_output is 0.
11691
11692 Sat Dec 22 12:35:29 1990  James Clark  (jjc at jclark)
11693
11694         * troff/input.c: Replace ESCAPE_E by ESCAPE_e and ESCAPE_C by
11695         ESCAPE_c.
11696         (get_copy): Turn \E into ESCAPE_E.
11697         (token::process, asciify): Handle ESCAPE_E.
11698
11699         * macros/tmac.s (ds*common-end, par@reset): Add `.rj 0'.
11700         (RD): New macro.
11701         (DS): Implement `.DS R'.
11702
11703 Fri Dec 21 11:41:53 1990  James Clark  (jjc at jclark)
11704
11705         * macros/tmac.s (FS): New macro.
11706
11707         * macros/tmac.s (fn@do-FS): Use @LP instead of LP.
11708
11709         * macros/tmac.s (cov*tl-init): Remove after first execution
11710         instead of aliasing to @nop.  Call top of page macro explicitly
11711         instead of setting trap; call @init first.  Set pg@top as top of
11712         page macro.
11713         (cov*auto-init): Deleted.  Set cov*tl-init instead of
11714         cov*auto-init as top of page trap. 
11715         (TL, LP): Do a break instead of calling cov*tl-init.
11716         (cov*print): With RP format but no TL, alias FS and FE to @FS and
11717         @FE; in this case also give a warning and always start another
11718         page. No need to set pg@top here.
11719         (cov*tl-init): Rename to cov*first-page-init.
11720
11721         * macros/tmac.s (RP): Do `.pn 0'.
11722         (cov*tl-init): With RP format don't do `.pn 0'.
11723
11724         * macros/tmac.s (pg@cs-top): Set no space mode.
11725
11726         * macros/tmac.s (par@TL, par@AU, par@AI): New macros.
11727         (cov*ab-init): Alias TL, AU and AI to these.
11728
11729 Thu Dec 20 10:10:50 1990  James Clark  (jjc at jclark)
11730
11731         * macros/tmac.s (@EQ): Move the space before the equation into @EN
11732         (@EN): Do nothing unless \n[dl] is > 0.
11733
11734 Tue Dec 18 12:20:47 1990  James Clark  (jjc at jclark)
11735
11736         * pic/object.c (ellipse_object::radius): New function.
11737
11738         * VERSION: Change version to 0.7.
11739
11740         * tbl/table.c (block_entry::do_divert): Declare return type as
11741         void.
11742         (block_entry::divert, alphabetic_block_entry::divert): Return 1.
11743
11744 Mon Dec 17 12:30:34 1990  James Clark  (jjc at jclark)
11745
11746         * troff/column.c: New file.
11747         * troff/Makefile: Corresponding changes.
11748
11749         * troff/hvunits.c (scale(vunits, vunits, vunits)):  New function.
11750         Friend of vunits.
11751
11752         * troff/div.c (top_level_diversion::space): If the space causes
11753         the first-page transition and springs a trap, truncate the space
11754         to 0.
11755
11756 Fri Dec 14 12:30:02 1990  James Clark  (jjc at jclark)
11757
11758         * ps/ps.c (ps_printer::do_import): Add a `clear' after including
11759         the document.
11760
11761         * pic/troff.c (troff_output::line_thickness,
11762         troff_output::set_fill): Do a horizontal motion to compensate for
11763         the width of the \D escape sequence.
11764
11765 Thu Dec 13 10:17:14 1990  James Clark  (jjc at jclark)
11766
11767         * xditview/tmac.X: Reinstate definition of \(rn, but only for X100
11768         (not X75).
11769
11770         * eqn/sqrt.c (sqrt_box::compute_metrics):  Supply missing argument
11771         to printf.
11772
11773         * tbl/table.c (simple_entry::simply_print): Don't declare as pure.
11774         Supply empty definition.
11775         (text_entry::simple_print, simple_text_entry::simple_print):
11776         Delete declarations.
11777         (table::add_entry): Represent empty entries by objects of type
11778         `simple_entry'.
11779
11780 Wed Dec 12 08:50:48 1990  James Clark  (jjc at jclark)
11781
11782         * troff/Makefile: Remove -DHYPHEN_CONTROL from DEFINES.
11783
11784         * tbl/table.c (left_text_entry::add_tab): New function.
11785
11786         * macros/tmac.s: Make @RT an alias for par@reset.  Make RT
11787         initialize like LP.
11788
11789 Mon Dec 10 11:19:55 1990  James Clark  (jjc at jclark)
11790
11791         * troff/env.c (environment::start_field): Give an error message if
11792         there is no next tab.
11793
11794 Sun Dec  9 11:46:40 1990  James Clark  (jjc at jclark)
11795
11796         * troff/env.c (hyphenate): Skip initial elements with zero
11797         hyphenation code.
11798
11799         * macros/tmac.s (par@init): Keep VS in points rather than units.
11800
11801 Sat Dec  8 23:00:27 1990  James Clark  (jjc at jclark)
11802
11803         * pic/main.c (main): Implement `-c' option.
11804         * pic/output.h: Declare make_tpic_output().
11805         * pic/tex.c (tex_output::set_pen_size): Make it virtual and
11806         protected.
11807         (tpic_output): New class.
11808         (tpic_output::tpic_output, tpic_output::set_pen_size,
11809         tpic_output::command, make_tpic_output): New functions.
11810
11811 Fri Dec  7 11:57:41 1990  James Clark  (jjc at jclark)
11812
11813         * tbl/main.c (main): Call `.ab' if \n(.g is false.  Define TS/TE
11814         if they're not already defined.
11815         * tbl/table.c (init_output): Don't test \n(.g.
11816
11817         * troff/input.c (do_if_request): Delete `g' condition. Recognize
11818         `d', `r' and `c' conditions even in compatibility mode.
11819
11820 Tue Dec  4 09:13:47 1990  James Clark  (jjc at jclark)
11821
11822         * ps/tmac.ps (ps-bb): Protect against negative numbers in bounding
11823         box.
11824
11825 Mon Dec  3 07:18:26 1990  James Clark  (jjc at jclark)
11826
11827         * troff/env.h (environment::prev_line_interrupted): New member.
11828         (environment::get_prev_line_interrupted): New function.
11829         * troff/env.c (environment::newline): Set prev_line_interrupted.
11830         (environment::environment(const environment *),
11831         environment::environment(symbol)): Initialize
11832         prev_line_interrupted.
11833         * troff/input.c (process_input_stack): Don't give special
11834         treatment to space and newline at the beginning of the line if the
11835         previous line was interrupted.
11836
11837 Sat Dec  1 15:48:37 1990  James Clark  (jjc at jclark)
11838
11839         * eqn/eqn.y: Disallow PRIME by itself.
11840         * eqn/lex.c (token_table): Bind `opprime' instead of `prime' to
11841         PRIME.
11842         (def_table): Remove definition of '.  Define prime to be `.
11843
11844         * eqn/eqn.y: Split off part of rule `script' into a new rule
11845         `nonsup'.
11846
11847 Fri Nov 30 10:23:44 1990  James Clark  (jjc at jclark)
11848
11849         * macros/tmac.s ({, }): New string aliases.
11850
11851 Thu Nov 29 11:34:40 1990  James Clark  (jjc at jclark)
11852
11853         * README-0.7: New file.
11854
11855 Wed Nov 28 10:09:57 1990  James Clark  (jjc at jclark)
11856
11857         * macros/tmac.s: New file.
11858         * man/groff_ms.man: New file.
11859         * Makefile: Add definition of TMAC_S. Pass TMAC_S in SUBFLAGS.
11860         * Makefile.bd: Similarily.
11861         * man/Makefile: Add groff_ms.n to MAN7PAGES. Replace @TMAC_S@. Add
11862         definition of TMAC_S.
11863         * macros/Makefile: Add definition of TMAC_S. Install tmac.s.
11864         * macros/TODO: New file.
11865
11866 Sat Nov 24 20:04:54 1990  James Clark  (jjc at jclark)
11867
11868         * troff/env.c (right_justify): New function.
11869         (init_env_requests): Bind this to request "rj".
11870         (center_lines): Set right_justify_lines to 0. If we get a bad
11871         integer, center 1 line.
11872         (environment::environment(symbol), environment::environment(const
11873         environment *)): Initialize right_justify_lines.
11874         (environment::get_right_justify_lines): New function.
11875         (init_env_requests): Bind this to number_register ".rj".
11876
11877         * troff/env.c (environment::choose_breakpoint): Implement
11878         hyphenation_margin and hyphenation_space.
11879         (environment::get_hyphenation_space,
11880         environment::get_hyphenation_margin): New functions.
11881         (init_env_requests): Bind these to .hys and .hym.
11882         (hyphenation_space_request, hyphenation_margin_request): New
11883         functions
11884         (init_env_requests): Bind these to hys and hym.
11885         (environment::environment(symbol), environment::environment(const
11886         environment *)): Initialize hyphenation_margin and
11887         hyphenation_space.
11888         * troff/env.h: Corresponding changes to class environment.
11889
11890 Fri Nov 23 09:08:16 1990  James Clark  (jjc at jclark)
11891
11892         * troff/div.c (blank_line): Always do a break.
11893
11894         * eqn/box.c (do_text): Turn off escapes while appending text to
11895         string.
11896
11897 Thu Nov 22 10:58:59 1990  James Clark  (jjc at jclark)
11898
11899         * troff/input.c (while_break_request, while_continue_request): New
11900         functions.
11901         (init_input_requests): Bind these to "break" and "continue".
11902         (while_depth, while_break_flag): New variables.
11903         (while_request): Update while_depth.  Break out of loop if
11904         while_break_flag is set.
11905
11906 Wed Nov 21 10:54:40 1990  James Clark  (jjc at jclark)
11907
11908         * tbl/table.c (init_span_reg): Initialize span_width_reg to \n(.H
11909         rather than 0.
11910
11911 Mon Nov 19 00:45:03 1990  James Clark  (jjc at jclark)
11912
11913         * Makefile: Include -DBROKEN_SPOOLER by default.  Expand comment.
11914
11915         * stringify: New file.
11916         * Makefile (groff.o): Use stringify.
11917
11918         * xditview/tmac.X: Remove definition of \(rn.
11919         * xditview/libXdvi/DviChar.c: Remove radicalex from
11920         Adobe_symbol_map.
11921
11922 Sat Nov 17 10:44:58 1990  James Clark  (jjc at jclark)
11923
11924         * tbl/table.c (table::add_entry): Allow alphabetic text blocks.
11925         (alphabetic_block_entry::alphabetic_block_entry,
11926         alphabetic_block_entry::divert, alphabetic_block_entry::print):
11927         New functions.
11928         (block_entry::divert): Split off body into ...
11929         (block_entry::do_divert): If the block is alphabetic, subtract 2n
11930         from the line length; also update the span width to dl+2n, and the
11931         alphabetic span width to dl.
11932
11933         * driver/input.c (do_file):  While reading argument to D command,
11934         when expanding buffer, multiply szp by sizeof(int) rather than 2
11935         in the argument to memcpy.
11936
11937         * tbl/table.c (compute_span_width): Add 2n rather than 1n to the
11938         width of alphabetic columns.
11939
11940 Fri Nov 16 06:34:27 1990  James Clark  (jjc at jclark)
11941
11942         * troff/node.c (lookup_family): Supply second argument to lookup.
11943
11944         * troff/dictionary.c (dictionary::lookup): After an unsuccesful
11945         search, return immediately if v is 0.
11946
11947         * pic/troff.c: Define EQN_NO_EXTRA_SPACE_REG.
11948         (troff_output::start_picture): Set this reg.
11949         (troff_output::end_picture): Remove this reg
11950         * eqn/box.c (box::extra_space): Don't produce `\x's if
11951         EQN_NO_EXTRA_SPACE_REG is defined.
11952
11953         * eqn/eqn.y: Allow just a PRIME to be a `simple'.
11954         * eqn/text.c (split_text): Map ' to \(fm when it's the first
11955         character.
11956
11957 Thu Nov 15 10:35:06 1990  James Clark  (jjc at jclark)
11958
11959         * macros/tmac.e: Use font 3 instead of B in $c. Remove `bd'
11960         requests.
11961
11962         * troff/div.c (top_level_diversion::top_level_diversion):
11963         Initialize page_number to 0.
11964
11965 Wed Nov 14 21:41:58 1990  James Clark  (jjc at jclark)
11966
11967         * groff/troff (environment::environment(const environment *)):
11968         Initialize name to e->name, rather than "anonymous".
11969
11970 Sat Nov 10 01:59:37 1990  James Clark  (jjc at jclark)
11971
11972         * xditview/libXdvi/Dvi.c (ShowDvi): If eof is encountered, reset
11973         requested_page.  Split middle part into ...
11974         (FindPage): New function.
11975         (SetValues): If we don't yet know the last page, and the requested
11976         page is greater than the current page, call FindPage.
11977         Update the font_map_string before doing this.
11978
11979         * xditview/tmac.X: Add definitions of \(sq, \(ga, \(dg and \(dd.
11980         Translate \(lh and \(rh into left and right double arrows.
11981
11982         * troff/node.c (class hyphen_inhibitor_node): New class.
11983         (hyphen_inhibitor_node::hyphen_inhibitor_node,
11984         hyphen_inhibitor_node::copy, hyphen_inhibitor_node::same,
11985         hyphen_inhibitor_node::type,
11986         hyphen_inhibitor_node::get_hyphenation_type): New functions.
11987         (node::add_discretionary_hyphen): Use hyphen_inhibitor_node rather
11988         than dbreak_node(0, 0) to represent a `\%' at the beginning of a
11989         word.
11990
11991 Fri Nov  9 16:05:38 1990  James Clark  (jjc at jclark)
11992
11993         * troff/node.h (dummy_node::get_hyphenation_type,
11994         transparent_dummy_node::get_hyphenation_type):  Declare them.
11995         * troff/node.c: (dummy_node::get_hyphenation_type,
11996         transparent_dummy_node::get_hyphenation_type): New functions.
11997
11998 Wed Nov  7 10:09:06 1990  James Clark  (jjc at jclark)
11999
12000         * xditview/libXdvi/draw.c: If M_PI not defined after including
12001         math.h, then define it.
12002
12003         * xditview/Makefile: Add definition of AR. Pass it to the submake
12004         in libXdvi.
12005         * xditview/libXdvi/Makefile: Add definitions of AR and RANLIB.
12006
12007 Tue Nov  6 10:14:27 1990  James Clark  (jjc at jclark)
12008
12009         * troff/dictionary.h (object_dictionary::alias): Declare return
12010         value as int.
12011         * troff/dictionary.c (object_dictionary::alias): Return non-zero
12012         if the old name was defined.
12013         * troff/input.c (alias_macro): Give a warning if the old name was
12014         not defined.
12015         * troff/reg.c (alias_reg): Likewise.
12016
12017 Mon Nov  5 00:31:39 1990  James Clark  (jjc at jclark)
12018
12019         * troff/input.c (token::next): Delete implementation of \R.
12020
12021         * macros/Makefile: Strip comments from tmac.e while installing it.
12022
12023         * troff/input.c: New variable `nroff_mode'.
12024         (troff_request, nroff_request): New functions.
12025         (init_input_requests): Bind `troff' and `nroff' to troff_request
12026         and nroff_request.
12027         (do_if_request): Compute results of t and n conditions from
12028         nroff_mode.
12029
12030         * text/text.c (split_text): Fix typo in >=.
12031
12032         * eqn/lex.c: Add definition of `==' to def_table.
12033
12034 Fri Nov  2 02:49:09 1990  James Clark  (jjc at jclark)
12035
12036         * pic/tex.c (tex_output::start_picture): Change the definitions of
12037         \graph and \graphtemp so that they work properly with Plain TeX.
12038
12039         * pic/tex.c (tex_output::solid_arc): Ensure that the second angle
12040         argument to `ar' is not less than the first.
12041
12042         * pic/pic.y: Allow a comma between elements of the variable list
12043         in the argument to `reset'.
12044
12045         * pic/object.c (arc_object::arc_object): Fix computation of
12046         radius.
12047
12048         * eqn/main.c (main): Add exit(0).
12049
12050 Thu Nov  1 02:03:50 1990  James Clark  (jjc at jclark)
12051
12052         * troff/div.c (begin_page): Test no_space_mode after doing the
12053         break, but still push the page ejector cookie before doing the
12054         break.  Also set the next page number after doing the break.
12055         
12056         * xditview/xditview.c (NewFile): Don't set the title and icon name
12057         if this is the first file and its name is `-'.
12058         * groff/groff.c: Define a new device flag XT_OPTION.  Set it for
12059         the X75 and X100 devices.
12060         (main): If a device has the XT_OPTION flag set and there's exactly
12061         one file argument, pass the driver -xrm and -title options to set
12062         the icon name and window title to the name of the file.
12063
12064         * troff/env.c (environment_switch): If there was an argument but
12065         it wasn't a valid number or name, then pop an environment but
12066         don't give an error message on underflow.
12067
12068         * troff/number.c (start_number): Correct spelling in error message.
12069
12070         * troff/input.c (token::delimiter): Don't print an error message
12071         if err is false.
12072
12073         * xditview/libXdvi/parse.c (ParseInput): In case 'D', only call
12074         ParseDrawFunction if dw->display_enable is true.
12075
12076 Wed Oct 31 05:49:50 1990  James Clark  (jjc at jclark)
12077
12078         * pic/pic.y: Parse text positioning like normal attributes, so as
12079         to allow `"text" at 0,0 ljust'.  Don't allow `center' as a
12080         positioning attribute.
12081
12082 Mon Oct 29 22:50:38 1990  James Clark  (jjc at jclark)
12083
12084         * tbl/main.c (process_data): When in state START while reading a
12085         text block, don't change to state MIDDLE if c is a newline.
12086
12087 Sun Oct 28 21:59:56 1990  James Clark  (jjc at jclark)
12088
12089         * dvi/dvi.c (dvi_printer::begin_page): Rename `i' variable to `j'
12090         so as to avoid shadowing parameter.
12091
12092 Wed Oct 24 18:35:39 1990  James Clark  (jjc at jclark)
12093
12094         * tbl/table.c (trim_space): Deleted.
12095         (table::add_entry): Don't call trim_space.
12096
12097 Mon Oct 22 03:48:39 1990  James Clark  (jjc at jclark)
12098
12099         * VERSION: Change version to 0.6.
12100
12101         * troff/number.c (parse_expr): Make == work.
12102
12103 Sat Oct 20 11:28:17 1990  James Clark  (jjc at jclark)
12104
12105         * man/grog.man: New file.
12106         * man/Makefile: Add grog.n to MAN1PAGES.
12107         * etc/grog.sh: New file.
12108         * etc/Makefile: Install grog.sh as grog.
12109
12110 Fri Oct 19 11:17:15 1990  James Clark  (jjc at jclark)
12111
12112         * troff/input.c (token::next): Implement \E.
12113
12114 Thu Oct 18 11:56:24 1990  James Clark  (jjc at jclark)
12115
12116         * xditview/tmac.X: Change font translations to match tmac.ps.
12117
12118         * troff/input.c (non_empty_name_warning): Don't give a warning if
12119         `\{' terminates the name.
12120
12121 Tue Oct 16 10:04:23 1990  James Clark  (jjc at jclark)
12122
12123         * ps/devps/symbol.diff: New file.
12124         * ps/devps/FontMakefile: Mention symbol.diff.
12125
12126 Sun Oct 14 11:46:46 1990  James Clark  (jjc at jclark)
12127
12128         * troff/node.c (font_position): Use get_long_name to read the
12129         external_name.
12130
12131         * troff/env.c (environment_switch): If we get a number that's < 0
12132         or >= NENVIRONMENTS, treat it like a name.
12133         Change NENVIRONMENTS to 10.
12134
12135         * troff/groff.h: Remove definition of FONTS_MAX.
12136         * troff/node.h (class font_family): Make map a pointer instead of
12137         an array. Add a map_size member. Make it a class. Make nm const
12138         and public. Make invalidate_fontno a friend.
12139         * troff/node.c: Define font_table_size. Make font_info a pointer
12140         rather than an array.
12141         (class troff_output_file): Allocate font_position dynamically. Add
12142         nfont_positions member.
12143         (troff_output_file::set_font): Grow font_position if necessary.
12144         (troff_output_file::~troff_output_file): Delete font_position.
12145         (troff_output_file::troff_output_file): Allocate font_position.
12146         (grow_font_table): New function.
12147         (troff_output_file::really_begin_page,
12148         troff_output_file:really_copy_page): Use nfont_positions rather
12149         than FONTS_MAX.
12150         (mount_font_no_translate, mount_style): Call grow_font_table if
12151         necessary.
12152         (font_family::font_family): Allocate map.
12153         (font_family::make_definite): Grow map if necessary. Use
12154         font_table_size instead of FONTS_MAX.
12155         (font_family::~font_family): New function.
12156         (invalidate_fontno): Use font_family::map_size.
12157         (get_fontno, env_space_width, env_half_narrow_space_width,
12158         env_narrow_space_width, symbol_fotno, is_good_fontno,
12159         get_bold_fontno, make_glyph_node): Use font_table_size rather than
12160         FONTS_MAX.
12161         (next_available_font_position): Never return 0.
12162
12163 Fri Oct 12 10:17:52 1990  James Clark  (jjc at jclark)
12164
12165         * ps/tmac.ps: Add font translations for compatibility with dpost.
12166
12167 Thu Oct 11 12:09:03 1990  James Clark  (jjc at jclark)
12168
12169         * eqn/pile.c: Rename default_baseline_sep to baseline_sep.
12170         Move BASELINE_SEP_FORMAT and COLUMN_WIDTH_FORMAT into pbox.h.
12171         Move definitions baseline_sep, shift_down, column_sep,
12172         matrix_side_sep into...
12173         * eqn/box.c: Add them to param_table.
12174         * eqn/pbox.h: Add declarations to pbox.h.
12175
12176         * troff/input.c (set_string): Cast value to unsigned char *.
12177
12178         * troff/token.h (process_input_stack): Declare it static before
12179         declaring it a friend.
12180
12181 Wed Oct 10 09:59:13 1990  James Clark  (jjc at jclark)
12182
12183         * dvi/devdvi/texex.map: Fix positions of extensible brace middle
12184         and bottom.
12185         * dvi/devdvi/EX: Regenerate.
12186
12187         * troff/input.c (init_charset_table): Make ", ', ), ], *, \(dg
12188         transparent.
12189
12190 Tue Oct  9 08:34:02 1990  James Clark  (jjc at jclark)
12191
12192         * eqn/lex.c: In defaults_table, make definition of `dot' call
12193         `dot_def'.  Don't explicitly make it roman.  Similarily for other
12194         accents.
12195
12196         * pic/lex.c (for_input::for_input): Add by_is_multiplicative
12197         argument.
12198         (for_input::get, for_input::peek): Use this.
12199         (do_for): Add by_is_multiplicative argument.
12200         * pic/pic.y: Change optional_by clause to allow '*' after `by'.
12201         Change semantic value of optional_by to be a double plus a flag
12202         saying whethet the by clause is multiplicative.
12203
12204         * eqn/lex.c (get_delimited_text): Remember location of start of
12205         definition.  Improve error handling when EOF is encountered.
12206
12207         * lib/font.h: Rename handle_x_command to
12208         handle_unknown_font_command.
12209         * lib/font.c (font::load): Call handle_unknown_font_command for
12210         any unknown command in the font description file.  Don't call
12211         handle_x_command. Include the name of the command in the argv.
12212         Improve message for unknown command after kernpairs or charset
12213         command.
12214         * ps/ps.c (ps_font::handle_x_command): Rename to
12215         handle_unknown_font_command.  Remove message about `x download'
12216         command.  Give error message for wrong number of arguments.
12217         * ps/devps/afmtodit: Generate `encoding' instead of `x encoding'.
12218         * dvi/dvi.c (dvi_font::handle_x_command): Rename to
12219         handle_unknown_font_command. Give an error message for wrong
12220         number of arguments.  Rename design_size to designsize.
12221         * dvi/tfmtodit.c (main): Generate `checksum' instead of `x
12222         checksum', `designsize' instead of `design_size'.
12223
12224 Mon Oct  8 00:38:55 1990  James Clark  (jjc at jclark)
12225
12226         * eqn/*.[chy]: Change underaccent to uaccent.
12227
12228         * eqn/eqn.y: Add rule for underaccent.  Declare UNDERACCENT token;
12229         give it the same precedence as ACCENT.
12230         * eqn/other.c (make_underaccent_box): New function.
12231         * eqn/box.h: Declare it.
12232         * eqn/lex.c: Add UNDERACCENT to token_table. Add utilde to
12233         def_table.
12234
12235 Sun Oct  7 11:25:16 1990  James Clark  (jjc at jclark)
12236
12237         * pic/pic.y (reset_all): New function. Called in rule for RESET.
12238         (parse_init): Call reset_all.
12239         (define_variable): When defining scale reset only those
12240         pre-defined variables that are scaled.
12241         (defaults_table): Add `scale' as non-scaled value.
12242
12243         * pic/pic.y: Redo parsing of text adjustments: parse adjustments
12244         together with the text; allow any number of positioning words;
12245         allow center as a positioning word.
12246
12247         * pic/object.c (output::compute_scale): Get picture maximum height
12248         and width from variables called maxpswid and maxpsht.
12249         * pic/pic.y: Add maxpswid and maxpsht to defaults_table.
12250
12251 Sat Oct  6 10:16:56 1990  James Clark  (jjc at jclark)
12252
12253         * pic/object.c (object_spec::make_text): Multiply textht by number
12254         of text items.
12255
12256         * pic/pic.y: Allow `sprintf("string", expr,...)' wherever text can
12257         occur.
12258         (do_sprintf): New function.
12259         (pic.gperf): Add sprintf token.
12260         (text, sprintf): New rules.
12261
12262         * pic/pic.y: `rand()' with no arguments returns a random number
12263         in the range [0,1).
12264
12265         * pic/pic.y: Allow a bare expression to be an attribute: change
12266         precedences to support this.  Change optional_ordinal rule to
12267         optional_ordinal_last to avoid reduce/reduce conflict.
12268         * pic/object.c (object_spec::object_spec): Initialize direction.
12269
12270         * pic/pic.y: Implement ^ operator meaning exponentiation.
12271
12272         * troff/node.h: Add default argument to mount_font.
12273         * troff/node.c (font_position): Read an optional third argument
12274         giving the external_name.
12275         (mount_font): Add optional argument giving the external_name.
12276         (mount_font_not_translate): Have additional argument giving
12277         external name.  Use this name to load the font.  Pass both names
12278         to font_info::font_info.
12279         (font_info::font_info): Have additional argument giving
12280         external_name.
12281         (class tfont): New member external_name.
12282         (font_info::get_tfont): Use external name to construct tfont_spec.
12283
12284 Fri Oct  5 04:03:13 1990  James Clark  (jjc at jclark)
12285
12286         * eqn/lex.c (init_table): Add argument giving device.  Define
12287         name of device to be "1".
12288         (do_ifdef): Counts as true if the argument has been defined with
12289         `define'.
12290         * eqn/main.c (main): Call init_table with device argument. Make
12291         device local to main.
12292         * eqn/eqn.h: Change declaration of init_table. Remove declaration
12293         of device.
12294
12295         * pic/lex.c (get_delimited): Allow text to be delimited by
12296         matching {}s.  Don't recognize ending delimiter within a string.
12297
12298         * troff/input.c (get_delim_name): New function.
12299         (token::next): Implement \C.
12300
12301         * lib/font.c (font::load): Grok ---.  Add an alias for each
12302         character based on its code.
12303         (font::get_code_width): Deleted.
12304         * lib/font.h (class font): Declare font::number_to_index().
12305         Remove declaration of font::get_code_width.
12306         * lib/nametoindex.c (font::name_to_index): Add 512 rather than 256
12307         to indices of named characters.
12308         (font::number_to_index): New function.
12309         * troff/input.c (font::number_to_index): New function.
12310         (get_charinfo_by_number, charinfo::get_number,
12311         charinfo::set_number): New functions.
12312         (token::next): Turn \N into a TOKEN_NUMBERED_CHAR.
12313         (token::process, token::description, token::get_char,
12314         token::add_to_node_list, token::operator==): Handle
12315         TOKEN_NUMBERED_CHAR.
12316         * troff/charinfo.h: Declare get_charinfo_by_number,
12317         charinfo::get_number, charinfo::set_number.  Add NUMBERED flag to
12318         charinfo class.
12319         (charinfo::numbered): New function.
12320         * troff/token.h: Add TOKEN_NUMBERED_CHAR.
12321         * troff/env.h (class environment): Remove declaration of ...
12322         * troff/env.c (environment::make_numbered_char_node): Deleted.
12323         * troff/node.c (make_numbered_node): Deleted.
12324         (class numbered_glyph_node): Remove.
12325         (troff_output_file::put_char_width, troff_output_file::put_char):
12326         Handle numbered chars.
12327         (troff_output_file::numbered_char): Removed.
12328         (tfont::get_code_width): Removed.
12329         (make_glyph_node): Don't search special fonts for numbered
12330         characters.
12331         * troff/node.h: Remove declaration of make_numbered_node.
12332         * driver/input.c (do_file): Handle N command.
12333         * driver/printer.h: Add declaration of ...
12334         * driver/printer.c (printer::set_numbered_char): New function.
12335         * dvi/tfmtodit.c (main): Generate unnamed entries.
12336         * ps/devps/afmtodit: Likewise.
12337         * xditview/xtotroff.c (MapFont): Likewise.
12338         * xditview/libXdvi/parse.c (ParseInput): Grok N command.
12339
12340         * tbl/main.c (process_format): If multiple widths are specified
12341         for a column but all the widths are the same, don't give an error
12342         message.
12343
12344         * tbl/table.c (table::do_row): If the current row is all lines and
12345         the stuff doesn't contains a line, mark the top of the row after
12346         printing stuff before the row.  If the current row is not all
12347         lines and the stuff doesn't contain a line, don't unnecessarily
12348         mark the top of the row before printing the stuff.
12349         
12350 Mon Oct  1 11:42:00 1990  James Clark  (jjc at jclark)
12351
12352         * troff/groff.h: Remove MAX_PATH.
12353         * troff/input.c (open_file): Dynamically allocate space for the
12354         path.
12355         (open_mac_file, process_macro_file): Corresponding changes.
12356
12357 Sun Sep 23 18:56:26 1990  James Clark  (jjc at jclark)
12358
12359         * troff/node.h (class output_file): Make copy_file pure.  Add
12360         vspace method ifdef COLUMN. Add is_printing method.
12361         * troff/node.c: Add class printing_reg. Add class
12362         real_output_file. Derive other output_file classes from
12363         real_output_file; in these classes rename begin_page to
12364         really_begin_page, print_line to really_print_line, copy_file to
12365         really_copy_file, transparent_char to really_transparent_char.
12366         Move output_file::flush to real_output_file. Add printing member
12367         to class output_file.
12368         * troff/div.h: Remove printing member from top_level_diversion.
12369         Add vspace member function to class diversion ifdef COLUMN. Add
12370         some declarations ifdef COLUMN.
12371         * troff/div.c (top_level_diversion::copy_file,
12372         top_level_diversion::transparent_output,
12373         top_level_diversion::output): Don't test printing member before
12374         output.
12375         * troff/input.c: Handle initial variable_space_request ifdef
12376         COLUMN.
12377         * troff/Makefile: Add column.c but comment it out. Add -DCOLUMN
12378         but comment it out.
12379
12380 Sat Sep 22 11:32:22 1990  James Clark  (jjc at jclark)
12381
12382         * troff/div.c (diversion::need): Make any space forced.  If we
12383         sprung a trap, set truncated_space to minus the distance to the
12384         trap and set needed_space to the amount that was needed.
12385         (top_level_diversion::space): A forced space turns no_space_mode
12386         off.
12387         (class constant_vunits_reg): New class.
12388         (init_div_requests): Implement number registers .trunc and .ne
12389         using constant_vunits_reg.
12390         (class truncated_space_reg): Deleted.   
12391
12392         * troff/div.h: Don't have a no_space_mode member in diversion.
12393         Instead have it in top_level_diversion.
12394         * troff/div.c (diversion::diversion): Don't initialize
12395         no_space_mode.
12396         (top_level_diversion::top_level_diversion): Initialize
12397         no_space_mode.
12398         (no_space, restore_spacing): Do nothing if curdiv != topdiv.
12399         (macro_diversion::output): Don't clear no_space_mode.
12400
12401         * troff/input.c (diverted_space_node::reread): Don't call
12402         environment::do_break.  In fill mode, act like a blank line.
12403         (diverted_copy_file_node::reread): Don't call
12404         environment::do_break.
12405
12406         * troff/div.c (blank_line): New function.
12407         * troff/div.h: Declare it.
12408         * troff/input.c (process_input_stack): Call it.
12409
12410         * troff/div.c (truncated_space_reg::get_string): New function.
12411         (init_div_requests): Bind to .trunc.
12412         (space_request, top_level_diversion::space,
12413         top_level_diversion::output, macro_diversion::space,
12414         macro_diversion::output): Update truncated_space.
12415         (macro_diversion::output): Redo calculations when trap sprung.
12416         (macro_diversion::output, macro_diversion::space): No need for
12417         trap_flag.
12418
12419         * troff/div.c (top_level_diversion::output): Set nl_reg_contents
12420         after truncating post line spacing.
12421
12422 Fri Sep 21 11:27:25 1990  James Clark  (jjc at jclark)
12423
12424         * ps/devps/prologue (MF, SF): Make them work even if setfont is
12425         defined as a procedure rather than as an operator.
12426
12427 Thu Sep 20 12:55:05 1990  James Clark  (jjc at jclark)
12428
12429         * troff/div.c (macro_diversion::space): Ignore no_space_mode.
12430
12431 Wed Sep 19 10:54:37 1990  James Clark  (jjc at jclark)
12432
12433         * troff/div.c (top_level_diversion::output): Merge
12434         output_file::print_line and output_file::end_of_line member
12435         functions.
12436         * troff/div.h (class output_file):
12437         * troff/node.c (troff_output_file::print_line,
12438         troff_output_file::end_of_line, output_file::end_of_line,
12439         ascii_output_file::print_line, suppress_output_file::print_line):
12440         Corresponding changes.  
12441
12442 Tue Sep 18 11:31:47 1990  James Clark  (jjc at jclark)
12443
12444         * troff/input.c (token::next): Don't give a warning for `\.'.
12445
12446         * troff/env.c (environment::get_center_lines): New function.
12447         (init_env_requests): Bind number register .ce to it.
12448         * troff/env.h: Declare it.
12449         * tbl/table.c (table::init_output): Define reset macro to restore
12450         .ce.  If center option not given, store .ce in SAVED_CENTER_REG.
12451         Then do .ce 0.
12452         (table::print): If center option not given, then imply center
12453         option if SAVED_CENTER_REG > 0.
12454
12455 Mon Sep 17 09:19:19 1990  James Clark  (jjc at jclark)
12456
12457         * ps/devps/Makefile: Remove T from FONTS. Remove TSymbol.ps and
12458         Troff.ps from DOWNLOAD.
12459         
12460         * troff/Makefile: Change comment in DEFINES to avoid confusing
12461         System V make.
12462
12463         * ps/ps.c (ps_printer::do_exec): Allow newlines within PostScript
12464         code.  Don't try to catch errors with stopped.
12465         (check_line_lengths): New function.
12466         * ps/devps/prologue (EXEC): Deleted.
12467         (EBEGIN, EEND): New procedures.
12468
12469 Sun Sep 16 14:51:15 1990  James Clark  (jjc at jclark)
12470
12471         * troff/input.c: Include request.h before node.h.
12472         * troff/node.c: Likewise.
12473         * troff/env.c: Likewise.
12474         * troff/div.c: Likewise.
12475         * troff/node.h (class special_node): Store argument as a macro
12476         rather than a char *.
12477         * troff/node.c (special_node::special_node, special_node::copy):
12478         Grok this.
12479         (special_node::~special_node): Deleted.
12480         (special_node::tprint): Deleted.
12481         (special_node::tprint_start, special_node::tprint_end,
12482         special_node::tprint_char): New functions.
12483         (troff_output_file::special): Deleted.
12484         (troff_output_file::start_special, troff_output_file::end_special,
12485         troff_output_file::special_char): New functions.
12486         * troff/input.c (special_node::tprint): New function.
12487         (do_special): Use macro not char *.
12488         (do_transparent_macro): Deleted.
12489         (token::next): Don't call do_transparent_macro.
12490
12491         * troff/input.c (token::next): Add 'Y' case.
12492         (do_transparent_macro): New function.
12493         * troff/node.c (troff_output_file::special): Handle newlines with
12494         argument using new continuation convention.
12495         * driver/input.c (get_string): Cope with continuation convention.
12496         (do_file): Don't call skip_line after calling get_string(1).
12497         * ps/ps.c (ps_printer::special, ps_printer::do_import,
12498         ps_printer::do_def, ps_printer::do_exec): Cope with newlines in
12499         arg.
12500         * xditview/libXdvi/parse.c (ParseInput): Ignore lines starting
12501         with +.
12502
12503 Sat Sep 15 19:00:10 1990  James Clark  (jjc at jclark)
12504
12505         * troff/input.c (asciify): By default, illegal input characters
12506         should return empty string.
12507
12508         * troff/input.c (copy_file): Handle first page transition like title.
12509         (token::next, process_input_stack): Grok COPY_FILE_REQUEST.
12510
12511         * troff/input.c (token::next): Improve error message for EOF after
12512         escape character.
12513         (input_char_description): New function.
12514         (get_char_for_escape_name): Use input_char_description.
12515         (token::next): Warn about unrecognized escape sequences.
12516         (warning_table): Add WARN_ESCAPE.
12517         * troff/groff.h: Declare WARN_ESCAPE. Change WARN_TOTAL
12518         accordingly.
12519
12520         * troff/token.h: Remove declaration of process_input_stack.
12521
12522         * troff/input.c: Remove declaration of init_hyphen_requests.
12523         * troff/request.h: Correct spelling in declaration of same.
12524
12525         * troff/input.c (token::next): Check whether escape_char is 0.
12526
12527 Fri Sep 14 12:09:25 1990  James Clark  (jjc at jclark)
12528
12529         * groff.c (main, usage, help): Implement -P and -L options.
12530         * groff.sh: Likewise.
12531
12532         * troff/input.c (token::next): Use some gotos to avoid code
12533         duplication.
12534
12535         * troff/input.c (get_long_name, get_name, read_long_ecsape_name):
12536         Avoid calling symbol::symbol if name empty.
12537
12538 Thu Sep 13 06:21:45 1990  James Clark  (jjc at jclark)
12539
12540         * troff/input.c (init_input_requests): Make \n(.x return the major
12541         version number and \n(.y return the minor version number.
12542         * troff/Makefile: Construct file majorminor.c defining
12543         major_version and minor_version automatically from ../VERSION.
12544
12545         * troff/node.c (class glyph_node): Make operator new and operator
12546         delete public.
12547         (class ligature_node): Similarily.
12548
12549         * troff/input.c (operator==(const macro &, const macro &)): New
12550         function.
12551         (non_interpreted_node::same): Use this.
12552         (string_iterator::string_iterator): Make macro& argument const.
12553
12554         * troff/input.c (input_iterator::get): New function. Don't make
12555         asciify_macro or class non_interpreted_node friends of class
12556         input_iterator.
12557         (non_interpreted_node::interpret): Use input_iterator::get.
12558         (asciify_macro): Likewise.
12559
12560         * troff/input.c (~token_node, ~string_iterator, ~arg_list,
12561         ~non_interpreted_node): Deleted.
12562         * troff/node.c: (~suppress_output_file, ~ascii_output_file):
12563         Deleted.
12564
12565         * troff/symbol.h: Make all symbol member functions const.
12566
12567         * lib/strtol.c: New file.
12568         * lib/Makefile: Add strtol.c.
12569         * Makefile: Define STRTOL as strtol.o to include strtol in
12570         libgroff.a.
12571
12572 Wed Sep 12 10:00:49 1990  James Clark  (jjc at jclark)
12573
12574         * pic/troff.c (troff_output::simple_circle): Divide by scale.
12575
12576 Tue Sep 11 14:17:16 1990  James Clark  (jjc at jclark)
12577
12578         * troff/input.c (do_special): Use input_level.
12579
12580         * troff/token.h (TOKEN_BACKSPACE): New token.
12581         (token::backspace): New function.
12582         * troff/input.c (token::description, token::next, token::process):
12583         Grok TOKEN_BACKSPACE.
12584         (do_special): Turn TOKEN_BACKSPACE back into \b.
12585
12586         * troff/token.h (token::leader): New function.
12587         * troff/input.c (do_special): Turn TOKEN_LEADER back into \001.
12588
12589         * troff/input.c (do_special): Turn TOKEN_TAB back into \t.
12590
12591         * troff/input.c (do_special): Use token::description in error
12592         message.
12593
12594 Mon Sep 10 11:06:27 1990  James Clark  (jjc at jclark)
12595
12596         * troff/input.c (decode_args): Combine quoted and
12597         quote_input_level variables. Make it a for (;;) loop.
12598
12599         * troff/input.c (get_char_for_escape_name): Check for \001 and \b.
12600
12601         * troff/input.c (read_long_escape_name): The test for whether to
12602         expand buffer was off by 1.
12603         (read_string): Similarily.
12604
12605 Fri Sep  7 11:45:50 1990  James Clark  (jjc at jclark)
12606
12607         * troff/input.c: Use `const int' rather than `static const int'.
12608
12609         * troff/div.h (diversion::copy_file): Declare as pure virtual.
12610         (macro_diversion::copy_file): New function.
12611         * troff/node.h: New class diverted_copy_file_node.
12612         * troff/node.c: Implement it.
12613         * troff/input.c (copy_file): Use diversion::copy_file. Handle
12614         first page transition by pushing a diverted_copy_file_node.
12615         * troff/input.c (token::next, process_input_stack): Don't handle
12616         COPY_FILE_REQUEST.
12617
12618 Thu Sep  6 13:29:10 1990  James Clark  (jjc at jclark)
12619
12620         * ps/ps.c (flush_sbuf): Remember to add sbuf_kern when checking
12621         whether space widths need adjusting.
12622
12623         * troff/charinfo.h: Generalize translated_to_space to
12624         special_translation so as to allow translation to \&.
12625         * troff/input.c (translate): Allow translation to \&.
12626         (charinfo::*): Corresponding changes.
12627         * troff/node.c (make_node, node::add_char): Corresponding changes.
12628         * troff/node.h (dummy_node::dummy_node): Allow optional first
12629         argument.
12630
12631         * lib/lib.h: Make codes 0200 to 0237 illegal input characters.
12632         * troff/token.h: Remove TOKEN_TITLE. Remove token::title. Add
12633         TOKEN_REQUEST.
12634         * troff/input.c (token::next): Turn a TITLE_REQUEST into a
12635         TOKEN_REQUEST with an argument of TITLE_REQUEST.
12636         (token::process): Grok that.
12637         * troff/input.c (copy_file): Handle first page transition like
12638         title by pushing a COPY_FILE_REQUEST cookie.
12639         (token::next, process_input_stack): Grok that.
12640         * troff/node.h (output_file::copy_file): Add x and y arguments.
12641         Make it non-pure.
12642         * troff/div.c (top_level_diversion::copy_file): Supply them.
12643         * troff/node.c (troff_output_file::copy_file): Add x and y
12644         arguments; moveto specified position.  Invalidate font_position
12645         array after copying file.
12646         (output_file::copy_file): New function.
12647         (suppressed_output_file::copy_file, ascii_output::copy_file):
12648         Removed.
12649         * troff/input.c (transparent_file): New function.
12650         (init_input_requests): Bind to "trf".
12651         (token::next): Handle TRANSPARENT_FILE_REQUEST cookie.
12652         (process_input_stack): Likewise.
12653
12654         * troff/Makefile: Add ../lib/lib.h to GROFF_H.
12655
12656         * troff/node.c (init_node_requests): New number registers .kern
12657         pointing to global_kern_mode, and .lg pointing to
12658         global_ligature_mode.
12659
12660         * troff/node.c (ligature): Don't change it if we get a bad
12661         integer.
12662
12663         * troff/input.c (do_define_string): Don't strip tabs.
12664
12665         * troff/input.c (asciify_macro): Make the string_iterator auto.
12666
12667         * troff/node.c (init_font_requests): Rename to...
12668         (init_node_requests):
12669         * troff/node.h: Change declaration.
12670         * troff/input.c (main): Change call.
12671
12672         * troff/input.c (node::reread, diverted_space_node::reread): New
12673         methods.
12674         (process_input_stack): Call reread rather than
12675         get_diverted_space_node.
12676         * troff/node.c (node::get_diverted_space_node,
12677         diverted_space_node::get_diverted_space_node): Removed.
12678         * troff/node.h: Declare reread methods instead of
12679         get_diverted_space_node methods. Make `n' member private.
12680         * troff/input.c: (token::diverted_space): Removed.
12681         * troff/token.h: Removed declaration.
12682         
12683
12684 Tue Sep  4 00:48:04 1990  James Clark  (jjc at jclark)
12685
12686         * eqn/script.c (script_box::compute_metrics): Don't let
12687         SUP_RAISE_FORMAT become negative.
12688
12689         * tbl/table.c (table::do_row): Entries that don't end in the
12690         this row shouldn't make the row non-blank.
12691         
12692         * tbl/table.c (table::make_columns_equal): Only set the width of
12693         columns which are marked as equal.
12694         
12695         * tbl/main.c (process_data): Before issuing excess data error,
12696         if last character was a newline unget it; then get it again after
12697         the error.  Also include the contents of the entry in the message.
12698
12699         * groff.c: New file.
12700         * Makefile: Build groff from groff.c.  Make it possible to use
12701         either groff.sh or groff.c as groff.
12702         * Makefile.bd: Similarily.
12703
12704 Mon Sep  3 09:39:49 1990  James Clark  (jjc at jclark)
12705
12706         * groff.sh: Don't delay expansion of $@ in assignment to files.
12707         Remove occurrences of \".
12708
12709 Sun Sep  2 09:56:59 1990  James Clark  (jjc at jclark)
12710
12711         * all Makefiles: Simplify and rearrange.
12712
12713         * Makefile: Handle fmod like malloc.
12714         * lib/Makefile: Similarily.
12715         * lib/fmod.c: Remove #ifdef NEED_FMOD.
12716
12717         * Makefile: Rename OPTIMISE to OPTIMIZE.
12718
12719         * groff.sh: Remove assignment to PATH.
12720         * Makefile: Remove SHPATH variable.
12721         * Makefile.bd: Similarily.
12722
12723         * groff.sh: Add -V option to print the pipeline instead of
12724         executing it.
12725
12726 Fri Aug 31 00:56:46 1990  James Clark  (jjc at jclark)
12727
12728         * lib/font.c: Split off file searching into ...
12729         * lib/fontfile.c: New file.
12730
12731         * lib/strerror.c (strerror): Use `Error %d' for unknown errors.
12732
12733 Thu Aug 30 13:13:55 1990  James Clark  (jjc at jclark)
12734
12735         * tbl/table.c (table::do_hspan): Delete assertion that e != 0.
12736         Also change misleading comment.
12737         (table::do_vspan): Change similarily misleading comment.
12738         * tbl/main.c (process_data): A format row with an explicit `s'
12739         uses up a data line, even if all the other columns are `_' or `='.
12740
12741         * troff/input.c (token::description): Fix description of
12742         TOKEN_DUMMY and TOKEN_EMPTY.
12743
12744 Wed Aug 29 04:12:08 1990  James Clark  (jjc at jclark)
12745
12746         * groff.sh: Fix description of -Z in help message.
12747
12748 Tue Aug 28 07:28:33 1990  James Clark  (jjc at jclark)
12749
12750         * pic/object.c (object_spec::make_object): Allow negative and zero
12751         line thicknesses.
12752         * pic/pic.y: Give linethick default value of -1.0.
12753         * pic/troff.c (troff_output::troff_output): Initialize
12754         last_line_thickness to BAD_THICKNESS.
12755         (troff_output::finish_picture): Set thickness to BAD_THICKNESS.
12756         (troff_output::line_thickness): Canonicalize negative thicknesses
12757         to RELATIVE_THICKNESS.
12758         * pic/tex.c (tex_output::set_pen_size): Silently map negative line
12759         thicknesses to DEFAULT_PEN_SIZE. Canonicalize negative pen sizes
12760         to -1.0.
12761         (tex_output::start_picture): Set pen_size to -2.0.
12762
12763         * ps/ps.c (ps_printer::set_line_thickness): If line_thickness is
12764         0, then use 0 linewidth.
12765         (ps_printer::ps_printer): Initialize line_thickness to -1.
12766
12767         * pic/troff.c (troff_output::simple_ellipse): Divide by scale.
12768
12769         * ps/devps/symbolchars: Remove `or'.
12770         * ps/tmac.ps: Implement \(or with .char.
12771
12772         * ps/devps/symbolchars: Move most characters into textmap.
12773         * ps/devps/textmap: Add names for troff bracket characters. Remove
12774         ul, ru, br, bv.
12775
12776         * ps/devps/TSymbol.ps: Removed.
12777         * ps/devps/FontMakefile: Make S from Symbol not TSymbol.
12778         * ps/tmac.ps: Do with .char what TSymbol did.
12779         * ps/devps/download: Remove TSymbol.
12780
12781         * ps/devps/T: Removed.
12782         * ps/devps/Troff.ps: Removed.
12783         * ps/devps/Troff.afm: Removed.
12784         * ps/tmac.ps: Implement \(ru, \(ul, and \(br with .char.
12785         * ps/devps/download: Remove Troff.
12786         * ps/devps/FontMakefile: Remove T target.
12787         * ps/devps/DESC-A4: Remove T from font list.
12788         * ps/devps/DESC-letter: Likewise.
12789
12790         * troff/input.c (macro_to_node): Rename to ...
12791         (charinfo_to_node): Don't pass mac argument.  Temporarily remove the
12792         character's definition while processing it.
12793         * troff/node.c (node::add_char, make_node): Change calls to
12794         macro_to_node accordingly.
12795
12796         * troff/input.c (token::next): Translate \_ to \(ul.
12797
12798         * tty/devascii/R.proto: Add `|'.
12799         * tty/devlatin1/R.proto: Likewise.
12800
12801 Mon Aug 27 11:25:41 1990  James Clark  (jjc at jclark)
12802
12803         * man: Put the version number in all the man pages.
12804
12805 Sun Aug 26 11:40:05 1990  James Clark  (jjc at jclark)
12806
12807         * Makefile.bd: New file.
12808         * README.bd: New file.
12809
12810         * VERSION: New file.
12811         * lib/version.c: Removed.
12812         * lib/Makefile: Create version.c from ../VERSION. Remove version.c
12813         in clean target.
12814
12815         * troff/input.c (main): Get hyphen_file from GROFF_HYPHEN
12816         environment variable.
12817
12818         * all Makefiles: Split install target into install.bin for
12819         binaries, and install.nobin for everything else.
12820         * Makefile: Add bindist target.
12821
12822         * man/afmtodit.man: New file.
12823         * man/Makefile: Add afmtodit.n to MAN1PAGES.
12824         * ps/devps/Makefile: Add textmap to DEVICEFILES. Install afmtodit
12825         in BINDIR.
12826         * ps/Makefile: Pass BINDIR to make install in devps.
12827
12828         * ps/ps.c (ps_printer::set_char): Do nothing if the character is
12829         the space character.
12830
12831         * ps/devps/FontMakefile: Rename symbol.afm to tsymbol.afm.
12832
12833 Sat Aug 25 15:39:03 1990  James Clark  (jjc at jclark)
12834
12835         * ps/ps.c: Redo font downloading.
12836         * ps/devps/download: New file.
12837         * ps/devps/Makefile: Add download to DEVICEFILES.
12838         * ps/devps/afmtodit: Remove -d option.
12839         * ps/devps/FontMakefile: Don't use -d option with afmtodit.
12840         * ps/devps/symbosl.ps: Add %%DocumentFonts comment.
12841         * ps/devps/zapfdr.ps: Likewise.
12842         * ps/devps/TSymbol.ps: Likewise.
12843
12844 Fri Aug 24 20:10:30 1990  James Clark  (jjc at jclark)
12845
12846         * groff.sh: Initialize dev to ${GROFF_TYPESETTER:-@DEVICE@}.
12847
12848 Thu Aug 23 10:03:47 1990  James Clark  (jjc at yquem)
12849
12850         * ps/ps.c (ps_output::include_file): If BROKEN_SPOOLER is defined,
12851         then strip the first line if it starts with %.
12852         * Makefile: Add a comment about this.
12853
12854         * man/tfmtodit.man: New file.
12855         * man/Makefile: Add tfmtodit.n to MAN1PAGES.
12856         * dvi/Makefile: Install tfmtodit in BINDIR.
12857
12858         * dvi/tfmtodit.c (usage): Mention -v option.
12859
12860 Wed Aug 22 09:56:36 1990  James Clark  (jjc at yquem)
12861
12862         * troff/node.c (troff_output_file::end_of_line): Call do_motion.
12863         * troff/node.c (troff_output_file::transparent_char): Don't call
12864         flush_tbuf.
12865
12866         * eqn: Add check_tabs method to most box classes.
12867         * eqn/box.c (box::top_level): Call check_tabs.
12868
12869         * eqn/script.c (script_box::output): Use \Z.
12870         * eqn/limit.c (limit_box::output): Use \Z.
12871
12872         * eqn/box.c (box::top_level): Use itoa.
12873
12874 Tue Aug 21 09:29:28 1990  James Clark  (jjc at yquem)
12875
12876         * dvi/tmac.dvi: Add font translations for CR, C, TT.
12877         * dvi/devdvi/Makefile: Don't make links to CW.
12878
12879         * ps/tmac.ps: Add font translations for C, CW, CO, CX, CD, H, HO,
12880         HX, HD.
12881         * xditview/tmac.X: Likewise.
12882
12883         * troff/node.c: Add font translation feature.
12884         (get_font_translation): New function.
12885         (symbol_fontno): Translate the font name.
12886         (mount_font_no_translate): Rename to mount_font to this.
12887         (mount_font): New function.
12888         (font_family::make_definite): Call mount_font_no_translate instead
12889         of mount_font.
12890         (mount_style): Translate the font name.
12891         (font_translate): New function.
12892         (init_font_requests): Bind "ftr" to font_translate.
12893
12894         * ps/devps/prologue (SN): New procedure that rounds a position to
12895         the nearest (pixel + (.25,.25)).
12896         (DL): Use SN to round endpoints.
12897
12898         * lib/version.c: Changed version to 0.5.
12899
12900 Sat Aug 18 04:43:21 1990  James Clark  (jjc at yquem)
12901
12902         * Makefile: Move definition of PAGE to the very beginning, so that
12903         people are less likely to miss it.
12904
12905 Fri Aug 17 02:15:11 1990  James Clark  (jjc at yquem)
12906
12907         * man/Makefile: Don't need to sed out @UPCASE_PROG_PREFIX@.
12908
12909         * troff/env.c (environment::choose_breakpoint): Make `can't find
12910         breakpoint' error a warning of type WARN_BREAK.  Change message to
12911         `can't break line'.
12912         * troff/groff.h: Declare WARN_BREAK with code 4; change WARN_INPUT to
12913         code 040000.
12914         * troff/input.c: Add WARN_BREAK to warning_table.  Include
12915         WARN_BREAK in DEFAULT_WARNING_MASK.
12916
12917         * tty/tmac.tty: Add definition of \(+-.
12918
12919         * groff.sh: Remove `--' option to set command.
12920
12921         * dvi/devdvi/texsy.map: Remove duplicate md entry.
12922
12923         * ps/devps/eqnchar: Better definition of cdot using md.
12924         * dvi/devdvi/eqnchar:  Likewise.
12925         * xditview/devX100/eqnchar:  Likewise.
12926         * xditview/devX75/eqnchar: Likewise.
12927         * eqn/lex.c: Add definition of cdot.
12928
12929 Thu Aug 16 09:33:57 1990  James Clark  (jjc at yquem)
12930
12931         * troff/input.c (get_optional_char): New function.
12932         * troff/input.c (set_page_character): Use get_optional_char(),
12933         rather than has_arg() and tok.get_char(1).
12934         * troff/env.c (tab_character, leader_character, hyphen_char,
12935         field_characters): Likewise.
12936         (margin_character): Likewise.  Also always delete the
12937         margin_character_node.
12938
12939         * troff/input.c (token::get_char): Use token::description.
12940
12941         * troff/input.c (has_arg): Don't skip over tab and \}.
12942         * troff/number.c (start_number): Give a warning if the number
12943         starts with \} (WARN_RIGHT_BRACE) or tab (WARN_TAB).
12944
12945 Wed Aug 15 10:04:37 1990  James Clark  (jjc at yquem)
12946
12947         * troff/input.c (empty_name_warning, non_empty_name_warning): New
12948         functions.
12949         (get_name, get_long_name): Use these.  Rename `warn' argument to
12950         `required'.
12951
12952         * troff/node.c (get_fontno): Test that the symbol is not null.
12953
12954         * troff/input.c (token::description): New function.
12955         * troff/number.c (parse_term): Use token::description in `numeric
12956         expression expected' message.
12957         * troff/groff.h: Add WARN_MISSING.
12958         * troff/number.c (start_number): New function.
12959         * troff/number.c (get_vunits, get_hunits, get_number, get_integer,
12960         get_incr_number): Use start_number().
12961         * troff/input.c (DEFAULT_WARNING_MASK): Enable WARN_NUMBER by
12962         default.
12963         * troff/input.c (get_name, get_long_name): Use WARN_MISSING.
12964         * troff/reg.c (alter_format): Use WARN_MISSING. Also use
12965         token::descripion.
12966         * troff/input.c (token::get_char): Use WARN_MISSING.
12967         * troff/input.c (token::delimiter): Use token::description.
12968         * troff/env.c (environment_switch): Back out Aug 3 change.
12969         * troff/input.c (has_arg): Skip over \}s and tabs but give a
12970         warning.
12971         * troff/token.h (token::tab): New function.
12972         * troff/node.c (get_fontno): Use tok.skip() rather than has_arg().
12973         * troff/reg.c (alter_format): Likewise.
12974         * troff/node.c (bold_font): Use has_arg() rather than tok.skip().
12975
12976 Tue Aug 14 10:11:21 1990  James Clark  (jjc at yquem)
12977
12978         * troff (most files): Redo warnings. Divide warnings into various
12979         categories; warning() has an additional first argument indicating
12980         the category it falls into.
12981         * troff/input.c (main): -w now takes an argument. New option -W.
12982         (enable_warning, disable_warning): New functions.
12983
12984         * ps/devps/afmtodit: Add -a option to lie about the italic angle.
12985         * ps/devps/FontMakefile: Pretend TI has an angle of 7.
12986
12987 Mon Aug 13 10:11:16 1990  James Clark  (jjc at yquem)
12988
12989         * ps/devps/eqnchar: Better definitions of dotdot, vec, dyad, inf.
12990         * xditview/devX100/eqnchar: Likewise. Remove definition of dot.
12991         * xditview/devX75/eqnchar: Likewise.
12992         * dvi/devdvi/eqnchar: Better definitions of vec, dyad, dotdot.
12993
12994         * eqn/other.c: When bar or over applies to a single character
12995         don't produce an overline_box or an underline_box. Instead produce
12996         an accent_box or an underaccent_box, with the accent a line
12997         whose width is accent_width.  New classes underaccent_box,
12998         overline_char_box and underline_char_box.
12999         * eqn/box.h: Move overline_box, underline_box, accent_box class
13000         declarations into eqn/other.c. Add declarations of
13001         make_underline_box, make_overline_box, make_accent_box.
13002         * eqn/eqn.y: Call make_overline_box, make_underline_box
13003         make_accent_box instead of constructors.
13004         * eqn/pbox.h, eqn/box.c: Add accent_width parameter.
13005
13006         * eqn/other.c: Add accent_box::~accent_box.
13007         * eqn/box.h: Declare it.
13008
13009         * groff.sh: With -Tps, use eqn -D.
13010
13011         * eqn/other.c (overline_box::output): Use \Z. If draw_flag use \D
13012         rather than \l.
13013         (underline_box::output): Similarily.
13014         (accent_box::output): Use \Z.
13015
13016         * xditview/tmac.X: Add definitions of ~ and ^ (so that they are a
13017         bit smaller.)
13018
13019 Sun Aug 12 09:41:15 1990  James Clark  (jjc at yquem)
13020
13021         * troff/div.c (top_level_diversion::transparent_output(unsigned
13022         char)): Use asciify.
13023         * troff/input.c (asciify): Don't make it static.
13024         * troff/token.h (asciify): Declare it.
13025         
13026         * troff/input.c (get_name, get_long_name, token::get_char,
13027         token::delimiter): Add an extra default argument which says
13028         whether a warning should be printed.
13029         * troff: Pass a non-zero argument to one of these rather than
13030         printing a warning directly.
13031
13032 Sat Aug 11 09:02:21 1990  James Clark  (jjc at yquem)
13033
13034         * troff: Consistently use symbol::is_null.
13035
13036         * troff/dictionary.h: Move some inline functions into
13037         dictionary.c.
13038
13039         * troff/request.h: Move inline functions into input.c.
13040         (request_or_macro::invoke): Make it pure.
13041
13042         * troff/input.c, troff/reg.h: New class `constant_int_reg'.
13043         * troff/input.c (init_input_requests): Use class constant_int_reg.
13044         (class compatible_reg): Deleted.
13045         * troff/div.c (init_div_requests): Use class constant_int_reg.
13046         (class last_post_line_extra_space_reg): Deleted.
13047
13048         * troff/env.c (tab_character): Don't change the tab character if
13049         we get an invalid argument.
13050         (hyphen_char): Similarily.
13051
13052         * troff/reg.c (alter_format): Check that nm is not null.
13053
13054         * Makefile, groff.sh: Make it possible to customize the commands
13055         used for printing PostScript and dvi files. Also make it possible
13056         to customize the path used by groff.sh.
13057
13058         * eqn/eqn.y: Make `left' right associative.
13059
13060 Fri Aug 10 18:20:39 1990  James Clark  (jjc at yquem)
13061
13062         * pic/pic.h: Added definition of M_SQRT2 for those systems that
13063         don't have it.
13064
13065         * pic/pic.h: Removed definition of INT_MAX.
13066
13067         * troff/node.c (italic_corrected_node::vertical_extent): Omit
13068         `return'.
13069
13070         * troff/input.c (token::next):  Handle \R like \n.
13071
13072 Tue Aug  7 09:46:33 1990  James Clark  (jjc at yquem)
13073
13074         * ps/tmac.pc (PSPIC): Simplify.
13075
13076         * troff/env.c (tab_stops::to_string):
13077         * pic/pic.y (object_type_name):
13078         * pic/troff.c (simple_output::line):
13079         * pic/tex.c (tex_output::spline):
13080         * pic/object.c (object_spec::make_object):
13081         * tbl/main.c (process_data):  Add cases to switch statements to
13082         avoid cfront warnings. (Some of these are spurious, since the
13083         switch already has a default case.)
13084
13085         * ps/tmac.ps (PSPIC): Reformatted.  Prefix all local names with
13086         `ps-'.  Don't test systat; instead check number of arguments to
13087         ps-bb.
13088
13089 Mon Aug  6 00:13:07 1990  James Clark  (jjc at yquem)
13090
13091         * macros/tmac.e: Do not decrease the page offset by 0.5i.
13092
13093         * ps/ps.c (ps_printer::ps_printer): Use mktemp instead of tempnam.
13094         Unlink the file as soon as we have opened it, so that we don't
13095         have to bother with signal handlers.
13096         (handler): Deleted.
13097         (fatal_error_exit): Deleted.
13098         (main): Don't call signal.
13099
13100         * dvi/tfmtodit.c: Add -k option so that kerns with the skewchar
13101         can be ignored.
13102         * dvi/devdvi/Makefile: Use the -k option with S and MI.
13103
13104         * pic/pic.y:  If there is a label, or an nth construction before
13105         the first `.' in the argument to `with', ignore it and generate a
13106         warning.
13107         * pic/lex.c (lex_warning): New function.
13108
13109         * tbl/table.c (table::init_output): In section keep and release
13110         macro, use 0 indent when diverting and the correct indent when
13111         rereading.
13112
13113         * troff/input.c (interpolate_number_format): Do not interpolate
13114         anything if the number register is not defined.
13115
13116         * tbl/main.c (process_data): Don't add entry when col >= ncolumns.
13117
13118 Sat Aug  4 08:12:05 1990  James Clark  (jjc at yquem)
13119
13120         * ps/devps/prologue (PICTURE): Set components of graphics state to
13121         their default values.
13122
13123         * ps/devps/text.enc: Add trademark
13124         * ps/devps/textmap: Add names for club, spade, heart, diamond,
13125         carriagereturn, suchthat. Use Upsilon1 rather than Upsilon.
13126         * ps/devps/symbolchars: Add names for summation and product.
13127
13128         * dvi/devdvi/texsy.map: Add names for club, spade, heart, diamond,
13129         suchthat. Add pp. Add upper-case letters.
13130
13131         * xditview/libXdvi/DviChar.c: Add names for club, spade, heart,
13132         diamond, carriagereturn, suchthat. Use Upsilon1 rather than
13133         Upsilon.
13134
13135         * dvi/devdvi/texsy.map: Rename lA (left angle bracket) to la, and
13136         rA (right angle bracket) to ra.  Introduce names for double-headed
13137         arrows and double-barred arrows: <>, va, lA, rA, hA, uA, dA, vA.
13138         * ps/devps/textmap: Likewise for ps device.
13139         * xditview/libXdvi/DviChar.c: Likewise for X100 and X75 devices.
13140         * tty/devascii/R.proto: Rename lA to la and rA to ra.
13141         * tty/devascii/R.proto: Likewise.
13142         * tty/tmac.tty: Provide definitions for \(<>, \(lA, \(rA, \(hA,
13143         \(uA, \(dA.
13144         * eqn/delim.c: In delim_table, rename \(lA to \(la and \(rA to \(ra.
13145
13146         * xditview/tmac.X: Add definitions for \(fi \(fl \(ff \(Fi \(Fl.
13147
13148         * eqn/lex.c: Added definitions of `approx', `grad' and `del' to
13149         def_table.
13150
13151 Fri Aug  3 09:59:27 1990  James Clark  (jjc at yquem)
13152
13153         * troff/div.c (when_request): Use symbol::is_null rather than
13154         has_arg to determine whether we have an argument.
13155         (change_trap): Remove the trap if we get an invalid number. Give
13156         an error if we don't get at least the macro name.
13157         (diversion_trap): Remove trap if we get an invalid name or number.
13158
13159         * troff/env.c (environment_switch): Pop if we get an invalid
13160         symbol or numeric expression.
13161
13162         * troff/input.c (do_define_macro):  If EOF is encoutered while
13163         defining the macro, do tok.next() before returning.
13164
13165         * troff/token.h (has_arg): Move definition from here, to ...
13166         * troff/input.c (has_arg): ... here
13167
13168         * troff/env.c (space_size): Do nothing if we get an invalid argument.
13169         * troff/input.c (shift): Likewise.
13170
13171         * pic/lex.c (get_token_after_dot):  Accept `.center' as a synonym
13172         for `.c'.
13173
13174         * pic/troff.c (troff_output::start_picture):  Comment out calls to
13175         `..'.
13176
13177         * eqn/main.c (do_file): Subtract 1 from current_lineno if
13178         interpret_lf_args succeeds.
13179
13180         * eqn/main.c (do_file): Don't recognize delimiter if preceded by
13181         \\.  This avoids problems with \$N.
13182
13183         * groff.sh: Pass -C to preprocessors.
13184
13185         * lib/lf.c (interpret_lf_args):  Be more flexible.
13186
13187         * tbl/main.c (main): Add -C option.
13188         (table_input::get): Do not recognize TE if followed by character
13189         other than a space or newline unless -C option given.
13190         (process_input_file): Likewise for lf, TS.
13191         (process_data): Likewise for lf in text blocks.
13192
13193         * eqn/main.c (main): Add -C option.
13194         (do_file): Don't recognize EQ, EN or lf if followed by character
13195         other than space or newline unless -C option given.
13196         * eqn/lex.c (file_input::read_line): Similarily.
13197         * eqn/eqn.h: Declare compatible_flag.
13198
13199         * etc/soelim.c (main): Add -C option.
13200         (interpret_lf_args): Use version in libgroff.
13201         (do_file):
13202
13203         * pic/main.c (main): Add -C option, which sets compatible_flag.
13204         (top_input::get), (top_input::peek):  If -C option not given,
13205         do not recognize .PS/.PE/.PF/.lf if followed by a character
13206         other than space or newline.
13207         * pic/lex.c (file_input::read_line): Similarily.
13208         * pic/pic.h: Add declaration of compatible_flag.
13209
13210 Thu Aug  2 11:11:27 1990  James Clark  (jjc at yquem)
13211
13212         * ps/tmac.ps (PSPIC): Avoid use of `echo -n'.
13213
13214         * troff/node.c, troff/node.h:  Add `asciify' methods to classes
13215         derived from node.  New class space_char_hmotion_node.
13216         * troff/input.c (asciify_macro): New function.
13217         * troff/input.c (init_input_requests): New request `asciify' bound
13218         to asciify_macro.
13219         * macros/mm.diff: New file.
13220         * Makefile:  In install.mm target use `patch' to apply
13221         macros/mm.diff.
13222
13223         * troff/input.c (macro::print_size): Just print the size in bytes.
13224
13225         * troff/div.c (return_request): Correct the argument
13226         interpretation.
13227
13228 Wed Aug  1 12:38:36 1990  James Clark  (jjc at yquem)
13229
13230         * troff/node.h (class composite_node): Add sz member.
13231         * troff/node.c (composite_node::size): Return sz.
13232         * troff/input.c (macro_to_node):  Use the initial size in the
13233         environment as the size of the composite_node.
13234
13235         * troff/node.c (node::zero_width_tprint):  Provide a reasonable
13236         default.
13237
13238 Tue Jul 31 10:07:10 1990  James Clark  (jjc at yquem)
13239
13240         * troff/div.c (change_trap): If we get a bad number expression,
13241         do nothing.
13242
13243 Mon Jul 30 10:30:49 1990  James Clark  (jjc at yquem)
13244
13245         * lib/matherr.c (matherr): Define this only if math.h defines
13246         TLOSS.
13247
13248 Sun Jul 29 10:34:27 1990  James Clark  (jjc at yquem)
13249
13250         * troff/div.c (macro_diversion::distance_to_next_trap): If there
13251         no diversion trap return vunits(INT_MAX - vresolution).
13252
13253 Sat Jul 28 14:28:14 1990  James Clark  (jjc at yquem)
13254
13255         * troff/input.c (do_zero_width): New implementation that doesn't
13256         use a temporary environment. Use instead:
13257         (token::add_to_node_list): New function.
13258         * troff/env.c (environment::get_prev_char_height),
13259         (environment::get_prev_char_height),
13260         (environment::get_prev_char_skew): New functions.
13261         (environment::get_prev_char): New function.
13262         (environment::get_prev_char_width): Change to use get_prev_char.
13263         (init_env_request): Implement new registers .cht, .cdp, .csk.
13264         * eqn/sqrt.c (sqrt_box::output): Don't rely upon the argument to
13265         \Z being processed in a separate environment.
13266
13267 Fri Jul 27 10:21:25 1990  James Clark  (jjc at yquem)
13268
13269         * tbl/table.c: Removed TABLE_BOTTOM_REG.
13270
13271         * tbl/table.c (table::init_output): In the section release macro,
13272         give a warning message if the section won't fit on one page.
13273
13274         * tbl/table.c (table::do_top): Emit table keep only if table is
13275         boxed.
13276         (table::do_bottom): Likewise for table release.
13277         (table::table), (table::add_vertical_rule):  Remove reference to
13278         keep member.
13279         * tbl/table.h: Remove keep member.
13280
13281         * tbl/table.c: New register SUPPRESS_BOTTOM_REG. In
13282         SECTION_RELEASE_MACRO, if there's not enough space before the next
13283         trap to output the diversion, call T# ourselves, set
13284         SUPPRESS_BOTTOM_REG to 1, spring the trap, then set
13285         SUPPRESS_BOTTOM_REG back to 0.  In T#, do nothing if
13286         SUPPRESS_BOTTOM_REG is non-zero.  In T#, always mark the current
13287         vertical position and return to it before turning traps on again.
13288         
13289 Thu Jul 26 02:54:32 1990  James Clark  (jjc at yquem)
13290
13291         * troff/node.c, troff/node.h: In classes derived from node,
13292         replace prev_char_width method by last_char_node method.
13293         * troff/env.c (environment::get_prev_char_width): Use
13294         node::last_char_node rather than node::get_prev_char_width.
13295
13296         * Makefile: Added comment about -fno-inline on 68030-based
13297         Apollos.
13298
13299         * troff/reg.c (number_format_to_ascii), eqn/delim.c (DELIM_TABLE_SIZE),
13300         tty/tty.c (tty_font::load_tty_font), dvi/tfmtodit.c (main): Cast
13301         expressions using sizeof to int.
13302         * dvi/dvi.c (dvi_font::handle_x_command): Avoid long->int warnings.
13303
13304         * macros/tmac.e (TS):  Don't move @f back past the current
13305         position.
13306
13307 Wed Jul 25 09:11:08 1990  James Clark  (jjc at yquem)
13308
13309         * ps/ps.c (main): Buffer stderr.
13310         * dvi/dvi.c (main): Likewise.
13311         * tty/tty.c (main): Likewise.
13312
13313         * ps/ps.c (ps_printer::do_import): Improve error handling.
13314
13315         * troff/input.c (abort_request): Use asciify.
13316
13317         * driver/printer.h (printer::draw), driver/printer.c (printer::draw),
13318         ps/ps.c (ps_printer::draw), dvi/dvi.c (dvi_printer::draw): Make
13319         type of first argument int rather than char.  This works around a
13320         bug on the 68030 based Apollo using g++ 1.37.1.
13321
13322         * tbl/table.h (class table): Add `keep' member.
13323         * tbl/table.c (table::table): Initialize `keep'.
13324         (table::add_vertical_rule): Set `keep' to 1.
13325         (table::do_top): Only emit table keep macro is `keep' is non-zero.
13326         (table::do_bottom): Likewise for table release macro.
13327         (table::do_row): Emit section keep macro even if the row is 0.
13328
13329 Tue Jul 24 08:35:07 1990  James Clark  (jjc at yquem)
13330
13331         * macros/tmac.e (@C): Preserve the font family across the change
13332         in environments.
13333
13334 Mon Jul 23 10:15:23 1990  James Clark  (jjc at yquem)
13335
13336         * lib/font.c: Initialize font::hor and font::vert to 1.
13337         (font::load_desc): Check the values of font::hor and font::vert.
13338
13339         * lib/lib.h: Added definition of INT_DIGITS. Fix it so that it can
13340         be included in a C compilation.
13341         (iftoa): Use INT_DIGITS. Include lib.h.
13342         (itoa): Likewise.
13343         (as_string): Likewise.
13344         * tbl/table.c: Removed definition of INT_DIGITS.
13345         * eqn/box.c (box::top_level): Use INT_DIGITS + 1 instead of 12.
13346         * troff/input.c (input_input_requests): Likewise.
13347         * ps/ps.c (make_encoding_name): Likewise.
13348         (ps_printer::set_style): Likewise.
13349         (ps_output::put_number): Use 1 + INT_DIGITS + 1 instead of 12.
13350
13351         * tty/devascii/R.proto: Map fm onto '.
13352         * tty/devlatin1/R.proto: Likewise.
13353
13354 Sat Jul 21 12:45:07 1990  James Clark  (jjc at yquem)
13355
13356         * tbl/table.c: Use ' instead of DELIMITER_CHAR in places where the
13357         argument to \w is at a different input level.
13358
13359         * tbl/table.c (table::init_output): Define a new macro
13360         REPEATED_VPT_MACRO, like vpt but if in a diversion also
13361         transparently outputs itself.
13362         (table::define_bottom_macro): Use REPEATED_VPT_MACRO instead of
13363         vpt.
13364         (table::do_row): Likewise.
13365
13366         * tbl/table.c (vertical_rule::print): Prefix the .sp -1 line with
13367         TRANSPARENT_STRING_NAME.
13368
13369         * tbl/table.c (table::init_output): In the table release macro
13370         print an error message and don't produce any output if after
13371         issuing the need request the table still will not fit.  Also
13372         remove the diversion after bringing it back.
13373
13374         * tbl/table.c (table::init_output): Define a new macro
13375         REPEATED_MARK_MACRO, like mk but if in a diversion also
13376         transparently outputs itself.
13377         (table::do_row): Mark row_top_reg using REPEATED_MARK_MACRO. This
13378         is necessary because .TH might not call .T#.
13379         (table::do_top): Likewise TOP_REG.
13380         (table::define_bottom_macro): If TOP_REG is no longer valid, use
13381         #T - DOUBLE_LINE_SEP rather than #T. This is necessary because the
13382         table header might contain just the two top rules.
13383
13384 Fri Jul 20 10:51:42 1990  James Clark  (jjc at yquem)
13385
13386         * troff/div.c: Implement new request `ptr' to print all traps.
13387
13388         * troff/env.c (init_env_requests): Implement `.tabs' reg with
13389         init_string_env_reg.
13390         * troff/env.c (class tab_reg): Deleted.
13391
13392 Thu Jul 19 12:07:16 1990  James Clark  (jjc at yquem)
13393
13394         * troff/div.c: New number register .pn returns the number of the
13395         next page as set by the pn request.
13396
13397         * macros/tmac.an: Redid headers and footers.  Number each manual
13398         entry starting from 1 unless \nC is > 0, like Sun.  Added an
13399         optional 5th argument to .TH which specifies the manual name and
13400         appears in the center of the header.  Understand the X, P and D
13401         registers like Sun.
13402
13403 Wed Jul 18 10:23:31 1990  James Clark  (jjc at yquem)
13404
13405         * troff/env.c (init_env_requests): New number register `.lt' to
13406         return the title length.
13407
13408         * troff/node.h (class transparent_dummy_node): New class.
13409         * troff/node.c (class transparent_dummy_node): Provide member
13410         functions. 
13411         * troff/env.c (interrupt): Add a transparent_dummy_node, rather
13412         than a dummy_node.
13413
13414         * troff/input.c (token::next): New escape sequence \).
13415         * troff/input.c (get_copy): Recognize \) in copy mode.
13416
13417         * troff/input.c (input_stack::clear): New function.
13418         * troff/input.c (exit_request): Use input_stack::clear.
13419
13420         * troff/token.h: Removed TOKEN_NO_PRINT_CHAR.
13421         * troff/input.c (token::process): Removed case TOKEN_NO_PRINT_CHAR.
13422
13423         * troff/env.c: Move set_page_character to input.c.  Move
13424         page_character to input.c also.
13425         * troff/env.c (title): Split off the reading of the parts of the
13426         title into read_title_parts.
13427         * troff/input.c (read_title_parts): New function.  Check the
13428         input_level when testing whether a token matches the delimiter.
13429
13430         * troff/input.c (exit_request): New function.
13431         * troff/input.c (init_input_requests): Bind ex request to
13432         exit_request rather than exit_groff.
13433
13434         * troff/input.c (exit_groff): Call tok.next() before
13435         process_input_stack().
13436
13437 Mon Jul 16 09:47:23 1990  James Clark  (jjc at yquem)
13438
13439         * troff/env.c: ifdef widow control support on WIDOW_CONTROL.
13440         * troff/env.h: ditto.
13441         * troff/input.c: ditto.
13442
13443         * troff/env.c (environment::is_empty): Test pending_lines.
13444
13445         * troff/env.c (environment::have_pending_lines): Removed.
13446
13447         * troff/input.c: Add request to flush pending lines from the
13448         environment.
13449
13450         * troff/env.c, troff/env.h: Add automatic widow control feature.
13451
13452         * troff/input.c (exit_groff):  Do process_input_stack() after
13453         do_break() but before setting exit_flag to 2.
13454
13455         * troff/input.c: Remove FLUSH_PENDING_LINES and
13456         TOKEN_FLUSH_PENDING_LINES. Instead, flush pending lines from
13457         environment after END_TRAP token seen, but only if there aren't
13458         any more traps still unfinished.
13459         * troff/token.h: Remove TOKEN_FLUSH_PENDING_LINES.
13460
13461 Sun Jul 15 10:50:08 1990  James Clark  (jjc at yquem)
13462
13463         * troff/env.c: Rename the `retain_size' member of class
13464         pending_output_line to `no_fill'.
13465
13466         * troff/env.c (title): When the line is output, make the
13467         retain_size argument !fill.
13468
13469         * troff/node.h: Add `hyphenated' member to struct breakpoint.
13470         * troff/node.c (space_node::get_breakpoints),
13471         (dbreak_node::get_breakpoints):  Fill this in.
13472         * troff/env.c:  Allow specification of maximum number of
13473         consecutive hyphenated lines.
13474
13475         * troff/env.c (environment::is_empty): Add test for !current_tab.
13476
13477 Sat Jul 14 11:23:01 1990  James Clark  (jjc at yquem)
13478
13479         * troff/env.c (environment::hyphenate_line): Don't completely give
13480         up if the word is not to be hyphenated; continue so that breaks
13481         can be made at break_char_node's.
13482
13483         * lib/lib.h: Only define INT_MAX if it's not already defined;
13484         undef INT_MIN if it's already defined.
13485
13486         * Makefile: Make it easy to define CFRONT_ANSI_BUG.
13487
13488         * lib/lib.h: If CFRONT_ANSI_BUG is defined, cast INT_MIN to long.
13489         This works around a bug in AT&T C++ 2.0 used with an ANSI C
13490         compiler.
13491         
13492         * macros/tmac.an (an-header): Set no-space mode.
13493
13494         * macros/tmac.an (TH): Start a new page if necessary.
13495
13496         * Started using ChangeLog at version 0.4.
13497
13498 Local Variables:
13499 version-control: never
13500 coding: latin-1
13501 End: