]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/groff/ChangeLog.115
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / groff / ChangeLog.115
1
2 Version 1.15 released
3 =====================
4
5 1999-12-28  Werner LEMBERG  <wl@gnu.org>
6
7         * NEWS, VERSION: Changed to 1.15
8
9 1999-12-27  Paul Eggert  <eggert@twinsun.com>
10
11         * nroff/nroff.man: -S is safer, not safe.
12
13         * groff/groff.cc (main): Use `safer', not `safe', in variable
14         names.  This does not change the behavior.
15
16         * troff/input.cc (main): Likewise.
17
18         * nroff/nroff.sh: Likewise.
19
20         * troff/input.cc (prepend_string): New function.
21         (main): Prepend -msafer, so that we check macro libraries for
22         safety.
23
24         * PROBLEMS: Report problem with Sun C++ 5.0 and 5.1.
25
26 Version 1.14 released
27 =====================
28
29 1999-12-26  Werner LEMBERG  <wl@gnu.org>
30
31         * NEWS, VERSION: Changed to 1.14.
32
33 1999-12-24  Werner LEMBERG  <wl@gnu.org>
34
35         * refer/refer.cc: Fixing the last fix.
36
37 Version 1.13 released
38 =====================
39
40 1999-12-23  Werner LEMBERG  <wl@gnu.org>
41
42         * tmac/tmac.an: A typo (`.if' instead of `.ie') made the page
43         number disappear.
44
45         * NEWS: Updated.
46
47         * tmac/tmac.safer: Forgot to remove `so' from the `rm' request.
48
49         * VERSION: Changed to 1.13 -- to be compliant with the Adobe 3.0
50         document conventions, the version number must be a real.
51
52 Version 1.12.1 released
53 =======================
54
55 1999-12-22  Werner LEMBERG  <wl@gnu.org>
56
57         * VERSION: Changed to 1.12.1.
58
59 1999-12-22  Alan Rooks  <arooks@istar.ca>
60
61         * refer/refer.cc (do_file): Slight modification to satisfy the
62         `Standard system CC - C++ Compilation System 3.1 03/03/99' on SCO
63         UnixWare 7.1.
64
65 1999-12-20  Werner LEMBERG  <wl@gnu.org>
66
67         * changed prep.ai.mit.edu -> ftp.gnu.org; updated copyright
68         notices.
69
70         * tmac/tmac.safer, tmac/groff_msafer.man: Remove `so' (again) from
71         list of unsafe requests.
72
73         * pic/pic.man: Fixed a typo.
74
75         * man/groff_out.man: Fixed a typo.
76
77 1999-12-18  Werner LEMBERG  <wl@gnu.org>
78
79         * Makefile.in: Doc fixes.
80
81 1999-12-17  Fabrizio Polacco  <fab@prosa.it>
82
83         * groff/groff.cc: Missing `U' option added to getopt().
84
85         * troff/troff.man: Missing `U' option added to synopsis.
86
87 Version 1.12 released
88 =====================
89
90 1999-12-14  Werner LEMBERG  <wl@gnu.org>
91
92         * troff/input.cc (usage), groff/groff.cc (synopsis): Added -U flag
93         to the synopsis.
94
95         * nroff/nroff.sh, nroff/nroff.man: Replaced `secure', `unsecure'
96         with the more appropriate terms `safer' and `unsafe'.
97
98         * libgroff/strerror.c, aclocal.m4, configure.in: Added checks for
99         sys_nerr and sys_errlist[].
100
101         * pic/pic.h, aclocal.m4, configure.in: Added check for hypot().
102
103         * pic/pic.y, pic/pic.cc: Added check for fmod().
104
105 1999-12-13  Werner LEMBERG  <wl@gnu.org>
106
107         * VERSION: Changed to 1.12.
108
109         Here some patches from various sources; most of them taken from
110         the Debian distribution.
111
112         * tmac/groff_mdoc.man, tmac/groff_mdoc.samples.man,
113         tmac/Makefile.sub: New files copied directly from the NetBSD
114         distribution.  Probably, some additional adaptation later on is
115         necessary...
116
117         * tmac/tmac.safer, tmac/groff_msafer.man: Added `so' to the list
118         of unsafe requests.
119
120         * groff/groff.cc, groff/groff.man, nroff/nroff.sh,
121         nroff/nroff.man, pic/main.cc, pic/pic.man, troff/input.cc,
122         troff/troff.man: Added option `-U' for unsafe mode.  Safe mode
123         (`-S') is now the default.
124
125         * README, NEWS: Updated.
126
127 1999-12-09  Werner LEMBERG  <wl@gnu.org>
128
129         * doc/groff.texinfo: Regenerated nodes and menus with emacs.
130
131         * doc/Makefile (clean): Added cleaning commands for groff.texinfo.
132
133 1999-12-06  Werner LEMBERG  <wl@gnu.org>
134
135         * configure.in: Removed AC_PREFIX_PROGRAM since it causes more
136         grief than relief today.  Additionally, it is against the GNU
137         coding standards.
138
139         * configure: Recreated.
140
141 1999-12-05  Werner LEMBERG  <wl@gnu.org>
142
143         * configure.in: Added GROFF_LIBM.
144
145         * configure: Recreated.
146
147         * aclocal.m4 (GROFF_LIBM): New function which tests whether -lm is
148         necessary.
149
150         * Makefile.in: Added definition of $(LIBM).
151
152         * Makefile.comm (LIBM): Removed.
153
154         * pfbtops/Makefile.sub: On AIX, -lm is needed also.
155
156 1999-12-03  Gaius Mulley  <gaius@glam.ac.uk>
157
158         * doc/Makefile: Added rule for generation pic.html.
159
160         (clean): Files produced by grohtml will be removed also.
161
162         * doc/pic.ms: Small fix.
163
164         * tmac/tmac.html: Fixed suppression of headers.
165
166 1999-11-16  Gaius Mulley  <gaius@glam.ac.uk>
167
168         * tmac/tmac.html: Fixing horizontal arrows.
169
170         Turning off hyphenation.
171
172         * tmac/tmac.an: Improved support for grohtml; better indentation,
173         no footers/headers.
174
175 1999-10-31  Gaius Mulley  <gaius@glam.ac.uk>
176
177         * tmac/tmac.arkup: Added CDFTP macro
178
179         * tmac/tmac.html: All headers are turned off for ms, me, and mm
180         macros.
181
182         * tmac/troffrc: Some additions for HTML stuff.
183
184 1999-10-06  Gaius Mulley  <gaius@glam.ac.uk>
185
186         * tmac/tmac.html: Small changes.
187
188 1999-09-26  Werner LEMBERG  <wl@gnu.org>
189
190         * doc/groff.texinfo: Minor fixes.
191
192 1999-09-26  Gaius Mulley  <gaius@glam.ac.uk>
193
194         * devhtml/TR: Changed spacewidth to 3.
195
196         * tmac/Makefile.sub (NORMALFILES): Added tmac.arkup.
197
198         * tmac/tmac.html: Moved markup macros to tmap.arkup.
199
200         * tmac/tmac.arkup: New file.
201
202         * grohtml/ChangeLog: New file.
203
204 1999-09-16  Werner LEMBERG  <wl@gnu.org>
205
206         * doc/groff.texinfo (Common Features): Added Copying chapter.
207         Changed format to @smallbook.
208
209 1999-09-15  Werner LEMBERG  <wl@gnu.org>
210
211         * NEWS: Added info about groff.texinfo.
212
213         * doc/groff.texinfo: Will now compile (using texi2dvi) without
214         warning messages.
215
216 1999-09-14  Werner LEMBERG  <wl@gnu.org>
217
218         * groff/groff.man: More updates.
219
220 1999-09-13  Werner LEMBERG  <wl@gnu.org>
221
222         * doc/groff.texinfo: New file.  This manual is still very
223         rudimentary.  It has been originally contributed by Trent
224         A. Fisher <trent@gnurd.portland.or.us> with first corrections and
225         additions by me.
226
227         * INSTALL: Added information about the `doc' subdir
228
229         * troff/troff.man: Minor fixes.
230
231         * groff/groff.man: Added missing `-L arg' to SYNOPSIS section;
232         reordered options.
233
234         * troff/input.cc (usage): Added missing `-ffam' to usage message.
235
236         * Makefile.in (dist): groff-$(version).tar.gz must be removed
237         also, otherwise it is included itself in another call of `make
238         dist'.
239
240         * groff/groff.cc (synopsis): Removed superfluous space.
241
242         * PROJECTS, PROBLEMS, NEWS: Updated.
243
244         * VERSION: Updated to 1.12beta.
245
246         * BUG-REPORT: Some cosmetic fixes.  Corrected email address.
247
248         * README: Updated: Included documentation about CVS repository,
249         mailing lists, and daily snapshots.
250
251         * tmac/Makefile.sub: Fixed $(tmap_wrap) finally.
252
253 1999-09-12  Bjarni Ingi Gislason  <bjarniig@rhi.hi.is>
254
255         * tmac/tmac.an: If the tag didn't fit into the space that the
256         macro `TP' specifies, the rest of the tag went into the space for
257         the next line.
258
259 1999-09-12  Jeffrey Copeland  <jeff@opennt.com>
260
261         * grolj4/lj4.cc: Added duplex printing (option `-d').
262
263         * grolj4/grolj4.man: Document duplex printing.
264
265 1999-09-12  Werner LEMBERG  <wl@gnu.org>
266
267         * doc/Makefile (pic.ps): Fixed rule which caused problems with
268         non-GNUish sed programs.
269
270         * tmac/doc-syms: Removed extra space from -iso8802-3 macro
271         definition.
272
273         * configure.in (LIBS): Added `-lc'
274
275         * Makefile.comm (.man.n): Added substitution for @TMAC_AN_PREFIX@.
276
277         * pic/tex.cc (solid_arc): Casting M_PI to double.
278
279         * libgroff/putenv.c (putenv): Changed function header to ANSI C.
280
281         * groff/groff.man, tmac/Makefile.sub (MAN7), tmac/groff_msafer.man
282         (new file), tmac/msafer.man (deleted), tmac/groff_me.man (new
283         file), tmac/me.man (deleted): {me,msafer} -> groff_{me,msafer}.
284
285         * groff/groff_man.man: New file.  This manual page was originally
286         written for the Debian GNU/Linux system by Susan G. Kleinmann
287         <sgk@debian.org>.
288
289         * eqn/list.cc (list_box::compute_metrics,
290         list_box::compute_sublist_width): Removed variable declaration to
291         avoid shadowing warnings.
292
293         * grops/psrm.cc (resource_manager::process_file): Ditto.
294
295         * tfmtodit/tfmtodit.cc (main): Ditto.
296
297         * libgroff/font.cc (font::load_desc): Renamed auxiliary variable
298         to avoid shadowing warnings.
299
300         * tbl/table.cc (block_entry::do_divert, table::do_row): Renamed
301         shadowing loop variable.
302
303         * groff/groff.man, troff/troff.man: Added doc about grohtml.
304
305 1999-09-12  Gaius Mulley  <gaius@glam.ac.uk>
306
307         New grohtml frontend to convert groff input to html.
308
309         * Makefile.in (CCPROGDIRS, DEVDIRS): Added html device.
310
311         * tmac/Makefile.sub (NORMALFILES): Added tmac.html.
312
313         * tmac/eqnrc: Added html device.
314
315         * tmac/tmac.html: New file.
316
317         * eqn/main.cc (do_file, inline_equation), pic/troff.cc
318         (troff_output::start_picture, troff_output::finish_picture),
319         tbl/main.cc (process_input_file):
320         Surrounded output with `graphics_start' and `graphics_end' so that
321         the html driver can identify non-text portions.
322
323         * grodvi/dvi.cc (dvi_printer::set_char), grolj4/lj4.cc
324         (lj4_printer::set_char), grops/ps.cc (ps_printer::set_char),
325         grotty/tty.ps (tty_printer::set_char): Additional parameter
326         `name'.
327
328         * include/printer.h: Class printer: New function
329         set_char_and_width; new variables (is_char_named, is_named_set,
330         named_command, named_char_s, named_char_n) to hold information
331         about named characters -- needed by the html driver.
332
333         * libdriver/printer.cc (printer::set_ascii_char,
334         printer::set_special_char): Use set_char_and_width.
335
336         * devhtml/*: New device files for html driver.
337
338         * grohtml/*: New driver grohtml.
339
340 1999-09-11  Wilfredo Sanchez  <wsanchez@apple.com>
341
342         * tmac/doc-common, tmac/tmac.an: Removed the word `UNIX' in
343         default strings.
344
345 1999-09-11  Luke Mewburn  <lukem@netbsd.org>
346
347         * libgroff/string.cc (search): Small fix to test against NULL
348         pointer.
349
350 1999-09-11  Jeff Conrad  <jeff_conrad@msn.com>
351
352         * troff/node.cc (copy): The characters in a bracket escape (e.g.,
353         \b'abc') were stacked in reverse order when processed in a
354         diversion.
355
356         * troff/node.h: Added `*last' to struct `node' to make the above
357         fix work.
358
359         * troff/input.cc (read_draw_node), libdriver/input.cc (do_file):
360         The default scale for the 'f' and 't' graphics functions were 'm'
361         rather than 'u' (i.e., no scaling).
362
363 1999-09-11  Peter Miller  <peterm@jna.com.au>
364
365         * groff/groff.cc (main), groff.man, soelim/soelim.cc (main,
366         do_file), soelim/soelim.man: Added `-I file' option to soelim,
367         defining include paths.
368
369         * soelim/soelim.cc (include_path_append): New function.
370
371 1999-09-11  Larry Jones  <larry.jones@sdrc.com>
372
373         * tbl/main.cc (process_options): Unix (at least Documenter's
374         Workbench) tbl allows arbitrary non-alpha characters between
375         options.
376
377 1999-09-11  Paul Eggert  <eggert@twinsun.com>
378
379         Y2k fixes.  Don't assume that the current year precedes 2000.
380
381         * doc/meref.me: Add \n(y2, \n(y4.
382
383         * tmac/doc-common (Yr): New number register.
384         (Dd): Don't assume current year precedes 2000.
385
386         * tmac/tmac.e (td): Likewise.
387         (y2, y4): New number registers.
388
389         * pic/pic.man: Update reference for pic paper to May, 1991
390         version.
391
392 1999-09-11  Werner LEMBERG  <wl@gnu.org>
393
394         * tmac/Makefile.sub (install_data, stamp-wrap, uninstall_sub):
395         Removed quotation marks which prevented correct expansion of
396         $(tmac_wrap).
397
398         * devlj4/Makefile.sub (LJ4RES): Fixed value (600 instead of 300).
399
400 1999-09-10  Werner LEMBERG  <wl@gnu.org>
401
402         * Makefile.sub (DISTCLEANFILES): Added `config.log' and
403         `config.cache'.
404
405         * Removed configure.old.
406
407 1999-08-31  Werner LEMBERG  <wl@gnu.org>
408
409         * VERSION: Updated to 1.11.1
410
411 1999-05-27  Werner LEMBERG  <wl@gnu.org>
412
413         * doc/Makefile: changed `.PS' postfix to `.ps' for consistency.
414
415         * tmac/Makefile.sub (install_data, stamp-wrap, uninstall_sub):
416         added quotations around $(tmac_wrap) to avoid syntax error if
417         variable is empty.
418
419         * configure: Newly generated using autoconf 2.13.
420
421         * Makefile.in (LDFLAGS): Set variable to @LDFLAGS@.
422
423 Fri Aug 15 08:51:47 1997  Eric S. Raymond  <esr@snark.thyrsus.com>
424
425         * README, PROJECTS, NEWS, INSTALL, VERSION,
426         doc/Makefile. doc/pic.ms, groff/groff.man:
427         Prepare for 1.11 release.  No code changes.
428         Documentation for pic added (doc/pic.ms).
429
430 Sun Nov 26 11:45:13 1995  James Clark  <jjc@jclark.com>
431
432         * Version 1.10 released.
433
434 Fri Nov 24 09:56:16 1995  James Clark  <jjc@jclark.com>
435
436         * afmtodit/afmtodit.pl: Avoid comment on first line.
437
438 Mon Nov 20 11:13:49 1995  James Clark  <jjc@jclark.com>
439
440         * aclocal.m4 (GROFF_INSTALL_SH): New macro.
441         * configure.in: Call it.
442
443         * Makefile.sub (configure): Depends on aclocal.m4 not acgroff.m4.
444         (distfiles): Doesn't depend on config.log or config.cache.
445
446 Sun Oct  1 08:45:36 1995  James Clark  <jjc@jclark.com>
447
448         * grog/grog.sh: Use print "" rather than print in END rule.
449
450 Wed Aug 23 13:30:52 1995  James Clark  <jjc@jclark.com>
451
452         * tbl/main.cc (process_data): Don't give error for excess data
453         entries that are comments.
454
455 Fri Jul 28 11:00:27 1995  James Clark  <jjc@jclark.com>
456
457         * tbl/main.cc (process_data): Fix case where new for-scope rules
458         silently change meaning of code.
459
460 Tue Jul  4 23:39:51 1995  James Clark  <jjc@jclark.com>
461
462         * troff/env.cc (hyphenate): Loop over all consecutive sequences
463         of non-zero hyphenation codes.
464
465 Sat Jul  1 00:42:15 1995  James Clark  <jjc@jclark.com>
466
467         * aclocal.m4 (GROFF_POSIX): Use conflicting declaration technique.
468
469 Thu Jun 29 13:58:36 1995  James Clark  <jjc@jclark.com>
470
471         * tmac/tmac.e (ip): Divert the tag so as to freeze the spaces.
472
473 Tue Jun 27 12:30:16 1995  James Clark  <jjc@jclark.com>
474
475         * tmac/tmac.andoc: Make it work in compatibility mode.
476
477         * refer/token.h (token_info::is_range_sep): New function.
478         * refer/token.cc (init_special_chars): Make \(en a RANGE_SEP.
479         * refer/ref.cc (reference::output): More sophisticated check for
480         multiple pages.
481
482         * devps/prologue.ps (MANUAL): New procedure.
483         * grops/ps.cc (main): New -m option.
484         (usage): Include -m.
485         (ps_printer::~ps_printer): Implement -m.
486
487         * aclocal.m4 (GROFF_G): New macro.
488         * configure.in: Call it.
489         * Makefile.in (g): Provided by configure.
490
491         * hpftodit/hpftodit.cc (basename): Rename to xbasename.
492
493         * tmac/tmac.tty: Disable warning about bad fonts.  Remove font
494         translations.
495
496         * Makefile.in (tmacpath): Don't include /usr/lib/tmac.
497         (tmac_m, tmac_s): Deleted.
498         (sys_tmac_prefix, tmac_wrap, tmac_prefix, tmac_an_prefix,
499         tmac_s_prefix): New variables.
500         (MDEFINES): Change accordingly.
501         * Makefile.comm (.man.n): Use new TMAC_* variables.
502         * configure.in (GROFF_TMAC): Call.
503         * aclocal.m4 (GROFF_TMAC): Define.
504         * tmac/Makefile.sub (stamp_wrap): New target.
505         (install_data, uninstall_sub): Handle macro wrapping.
506
507 Mon Jun 26 14:54:39 1995  James Clark  <jjc@jclark.com>
508
509         * tbl/main.cc (main): Ignore -T option.
510
511 Thu Jun 22 09:08:06 1995  James Clark  <jjc@jclark.com>
512
513         * devlj4/generate/special.map: Add definition of \(nb.
514
515         * tmac/tmac.dvi: Add definition of \(nb.
516
517         * troff/dictionary.c (dictionary::dictionary): association::v gets
518         initialized by association::association.
519
520         * tmac/Makefile.sub: Avoid using temporary files when installing.
521
522         * troff/env.cc (environment::set_font): Make bad font number a
523         warning.
524
525         * Makefile.in (fontpath): Remove $(prefix)/lib/font from fontpath.
526
527         * Makefile.in (datadir): Use share rather than lib.
528
529         * groff/groff.cc (basename): Rename to xbasename.
530
531 Wed Jun 21 16:59:46 1995  James Clark  <jjc@jclark.com>
532
533         * Makefile (CCLIBS): Don't use.
534         * Makefile.ccpg: Likewise.
535
536         * acgroff.m4: Rename to...
537         * aclocal.m4: Modify extensively for autoconf 2.
538         * configure.in: Likewise.
539         * Makefile.in: Likewise.
540
541         * groff/pipeline.c (const): Declare as empty if __STDC__ not
542         defined.
543         (xstrsignal): Check for definition of NSIG. Conditionalize
544         on SYS_SIGLIST_DECLARED.  Make return type const.
545
546 Sat Jun 10 12:28:16 1995  James Clark  <jjc@jclark.com>
547
548         * troff/input.cc (interpolate_macro): Rephrase missing space
549         warning.
550
551 Thu May 11 01:07:16 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
552
553         * addftinfo/addftinfo.cc, eqn/delim.cc, eqn/lex.cc, eqn/list.cc,
554         grodvi/dvi.cc, groff/groff.cc, grops/ps.cc, grops/psrm.cc,
555         grotty/tty.cc, include/ptable.h indxbib/indxbib.cc,
556         libbib/index.cc, libbib/linear.cc, libbib/search.cc,
557         libdriver/input.cc, libdriver/printer.cc, libgroff/font.cc,
558         libgroff/lf.cc, libgroff/nametoindex.cc, libgroff/ptable.cc,
559         libgroff/string.cc, lkbib/lkbib.cc, lookbib/lookbib.cc,
560         pic/lex.cc, pic/object.cc, pic/pic.y refer/label.y refer/ref.cc,
561         refer/refer.cc, refer/token.cc, tbl/main.cc, tbl/table.cc,
562         tfmtodit/tfmtodit.cc, troff/dictionary.cc, troff/div.cc,
563         troff/env.cc, troff/input.cc, troff/node.cc, troff/symbol.cc:
564         Fix 'for' scoping.
565
566 Wed Apr 19 21:15:11 1995  James Clark  <jjc@jclark.com>
567
568         * troff/input.cc (spring_trap): Push a macro_iterator rather than a
569         string_iterator.
570         (spring_trap, postpone_traps, unpostpone_traps): Move to later in
571         file.
572         (macro_iterator::macro_iterator): Add additional argument.
573
574 Mon Apr 10 12:06:02 1995  James Clark  <jjc@jclark.com>
575
576         * troff/div.cc (vertical_size::vertical_size): In place of integer
577         specifying line spacing use cunits specifying post vertical
578         space.
579         (macro_diversion::output, top_level_diversion::output): Likewise.
580         * troff/div.h: Change declarations accordingly.
581         * troff/env.cc (pending_output_line): Replace ls field by post_vs
582         field.
583         (pending_output_line::pending_output_line,
584         pending_output_line::output, environment::output,
585         environment::output_line, environment::output_title,
586         environment::hyphenate_line):  In place of
587         integer specifying line spacing use cunits specifying post vertical
588         space.
589         (environment::environment): Add post_vertical_spacing and
590         prev_post_vertical_spacing arguments.
591         (environment::get_post_vertical_spacing): New function.
592         (environment::total_post_vertical_spacing): New function.
593         (environment::post_vertical_spacing): New function.
594         (init_env_requests): Initialize pvs request and .pvs register.
595         * troff/env.h: Change declarations.
596
597 Tue Mar 28 09:52:07 1995  James Clark  <jjc@jclark.com>
598
599         * tmac/tmac.pspic: Immediately remove the temporary file.
600
601 Sat Mar 25 10:43:11 1995  James Clark  <jjc@jclark.com>
602
603         * tmac/tmac.pspic (PSPIC): Scale graphic uniformly even when
604         height is specified.
605
606 Thu Jan 26 16:20:13 1995  James Clark  <jjc@jclark.com>
607
608         * tbl/table.c (struct vertical rule, class table_entry): Use int
609         not short for start_row and end_row.
610
611 Fri Jan 13 13:53:05 1995  James Clark  <jjc@jclark.com>
612
613         * troff/input.cc (trapping_blank_line, blank_line_macro): New
614         functions.
615         (diverted_space_node::reread, process_input_stack): Call
616         trapping_blank_line() rather than blank_line().
617         (init_input_requests): Bind "blm" to blank_line_macro().
618
619         * tmac/tmac.s (XA): Use .br and par@reset rather than XA.
620
621 Tue Jan 10 11:40:35 1995  James Clark  <jjc@jclark.com>
622
623         * troff/env.cc (environment::possibly_break_line): Require that
624         width total excluding width of final space node be greater than
625         the target text length.
626
627 Tue Jan  3 09:13:37 1995  James Clark  <jjc@jclark.com>
628
629         * troff/node.cc (kern_pair_node::vertical_extent): New function.
630
631 Sun Dec  4 13:19:07 1994  James Clark  <jjc@jclark.com>
632
633         * troff/node.cc (charinfo_node): New class.
634         (glyph_node, composite_node): Derive from charinfo_node.  Change
635         member functions accordingly.
636
637 Wed Nov 30 10:29:29 1994  James Clark  <jjc@jclark.com>
638
639         * nroff/nroff.sh: Use -Tlatin1 not -TLatin1.
640
641 Mon Aug  8 10:17:59 1994  James Clark  (jjc@jclark.com)
642
643         * tmac/tmac.tty-char: Add definitions for \(ab and \[arrowvertex].
644
645         * devps/generate/textmap (notsubset): Add.
646
647         * tmac/tmac.a4: New file.
648
649 Sun Jul 24 20:08:42 1994  James Clark  (jjc@jclark.com)
650
651         * pic/main.cc (had_parse_error): New variable.
652         (do_picture, do_whole_file): Set had_parse_error if yyparse()
653         returns non-zero.
654         (main): Return 1 if had_parse_error is true.
655
656 Tue Jul 19 13:40:31 1994  James Clark  (jjc@jclark.com)
657
658         * grolj4/lj4.cc (main): Avoid use of strtoul.
659
660 Mon Jul 18 15:03:02 1994  James Clark  (jjc@jclark.com)
661
662         * nroff/nroff.sh: Default device is -Tlatin1 if $LC_CTYPE is
663         iso_8859_1 or $LESSCHARSET is latin1.
664
665 Sun Jul 10 13:38:35 1994  James Clark  (jjc@jclark.com)
666
667         * hpftodit: New directory.
668         * Makefile.in (CCPROGDIRS): Add hpftodit.
669         * devlj4/generate: New directory.
670
671 Thu Jul  7 23:49:48 1994  James Clark  (jjc@jclark.com)
672
673         * configure.in: Don't use AC_VFORK.
674         * groff/pipeline.c (run_pipeline): Use fork() always.
675
676 Wed Jul  6 11:13:17 1994  James Clark  (jjc@jclark.com)
677
678         * grops/ps.cc (main): Use %1 not %s in error message for -w.
679
680         * Makefile.in (CCPROGDIRS): Add grolj4.
681         (DEVDIRS): Add devlj4.
682         * grolj4, devlj4: New directories.
683         * tmac/troffrc: Handle lj4.
684         * tmac/tmac.lj4: New file.
685
686 Fri Jun 17 18:02:53 1994  James Clark  (jjc@jclark.com)
687
688         * tmac/tmac.e (@n): Set indent to 0 before calling |h.
689
690 Wed Jun  1 07:33:47 1994  James Clark  (jjc@jclark.com)
691
692         * troff/input.cc (do_if_request): At end of second string, switch
693         environments before getting next token.
694
695 Fri May 20 07:39:18 1994  James Clark  (jjc@jclark.com)
696
697         * devps/psstrip.sed: Split rule that strips whitespace on either
698         side of delimiters.
699
700 Wed May 18 08:13:47 1994  James Clark  (jjc@jclark.com)
701
702         * troff/node.h (font_family::make_definition): Add return value to
703         declaration.  * troff/symbol.h (symbol::operator==,
704         symbol::operator!=): Likewise.
705
706 Tue May 17 20:46:06 1994  James Clark  (jjc@jclark.com)
707
708         * groff/groff.cc (main, help, synopsis): Handle -S.
709         (possible_command::insert_arg): New function.
710
711         * tmac/tmac.safer: New file.
712         * tmac/msafer.man: New file.
713         * tmac/Makefile.sub (FILES): Add tmac.safer and msafer.man.
714
715 Thu Mar 10 01:58:30 1994  Paul Eggert  (eggert@twinsun.com)
716
717         * pic/pic.h, pic/main.cc (safer_flag): New variable.
718         * pic/pic.y (placeless_element): Avoid unsafe operations if
719         `safer_flag' is set.
720         * pic/main.cc (main): Add -S option, which sets `safer_flag'.
721
722 Tue May 10 13:02:31 1994  James Clark  (jjc@jclark.com)
723
724         * eqn/lex.cc (get_token): Put call to add_context() in block to
725         work around Sun C++ 4.0 bug.
726
727         * include/stringclass.h (operator +): Use ?: instead of `if' to
728         work around Sun C++ 4.0 bug.
729
730 Thu May  5 11:18:03 1994  James Clark  (jjc@jclark.com)
731
732         * tbl/main.cc (process_format): Accept - as a synonym for the _
733         key letter.
734
735         * libbib/index.cc (minus_one): Don't declare as const.
736
737 Fri Apr 29 09:32:48 1994  James Clark  (jjc@jclark.com)
738
739         * troff/input.cc (get_char_for_escape_name): Push back a newline.
740
741 Wed Apr 27 21:14:18 1994  James Clark  (jjc@jclark.com)
742
743         * troff/input.cc (write_macro_request): New function.
744         (init_input_requests): Bind write_macro_request to writem.
745
746 Sun Apr 17 11:15:38 1994  James Clark  (jjc@jclark.com)
747
748         * tmac/tmac.s (@EN): Turn filling back on even if there was no
749         equation.
750
751         * eqn/lex.cc (do_space): Supply missing argument to lex_error.
752
753         * tmac/tmac.s (@TS): Renamed from TS.
754         (TS): Call LP then TS again.
755         (cov*ab-init): Alias @TS to TS.
756
757         * tmac/tmac.s: Allow QP or RS to initialize.
758
759         * tmac/tmac.s (par@load-init): New macro.  Call at end of file.
760         Move initializations of PS and LL here.
761         (par@init): Don't initialize HY.  Avoid changing environment 0.
762         (par*env-init): Don't all par@reset.
763
764 Thu Apr 14 19:15:45 1994  James Clark  (jjc@jclark.com)
765
766         * include/posix.h: Include <fcntl.h> only if not using <osfcn.h>.
767
768 Sun Apr 10 09:54:44 1994  James Clark  (jjc@jclark.com)
769
770         * Makefile.in (MDEFINES): Add LDFLAGS.
771         (LDFLAGS): Add definition line.
772
773 Thu Apr  7 22:22:22 1994  James Clark  (jjc@jclark.com)
774
775         * troff/input.cc (get_optional_char): Split off error check into...
776         (check_missing_character): New function.
777         * troff/token.h: Declare it.
778         * troff/env.cc (margin_character): Don't call get_optional_char.
779         Only call tok.next() after making the node.
780
781         * include/lib.h (getopt): Make 2nd argument char *const *.
782
783 Fri Mar 11 07:28:03 1994  James Clark  (jjc@jclark.com)
784
785         * nroff/conftest.sh: Deleted.
786
787 Fri Mar  4 10:51:36 1994  James Clark  (jjc@jclark.com)
788
789         * pic/make-dos-dist: Deleted.
790
791 Wed Mar  2 20:59:16 1994  James Clark  (jjc@jclark.com)
792
793         * devps/psstrip.sed: Strip comments before stripping trailing
794         white space.
795
796 Sat Feb 19 13:07:16 1994  James Clark  (jjc@jclark.com)
797
798         * Version 1.09 released.
799
800 Wed Feb 16 16:53:49 1994  James Clark  (jjc@jclark.com)
801
802         * tmac/doc-ditroff (hK): Don't reset page number if \nC is > 0.
803
804 Mon Feb 14 08:26:40 1994  James Clark  (jjc@jclark.com)
805
806         * libgroff/font.cc (font::load_desc): Fix typo in error message.
807
808 Sun Feb 13 09:37:38 1994  James Clark  (jjc@jclark.com)
809
810         * libgroff/new.cc (operator new): Rewrite so as to avoid warning
811         about returning without a value.
812
813         * troff/charinfo.h (charinfo::get_special_translation): Cast
814         TRANSLATE_NONE to int.
815
816         * refer/token.cc (lookup_token, store_token): Remove bogus loop
817         test.  Fix test so that it works with n unsigned.
818
819         * pic/pic.y (defaults_table): Fully bracket initializer.
820         * pic/lex.cc (lookup_keyword): Likewise.
821         * eqn/lex.cc (token_table, def_table): Likewise.
822         * eqn/box.cc (param_table): Likewise.
823         * troff/input.cc (warning_table): Likewise.
824         * libgroff/font.cc (table): Likewise.
825         * grops/ps.cc (ps_printer::special): Likewise.
826         * grops/psrm.cc (resource_manager::process_file): Likewise.
827         * tfmtodit/tfmtodit.cc (lig_chars, lig_table): Likewise.
828         * refer/command.cc (command_table): Likewise.
829         * addftinfo/addftinfo.cc (param_table): Likewise.
830
831         * troff/symbol.cc (symbol::symbol): Prevent compiler warnings
832         about temp's being unused.
833         (unused): New function.
834
835         * groff/pipeline.cc: Declare c_fatal.
836
837         * libbib/linear.cc (bmpattern::search): Cast patterrn[--j] to
838         uchar.
839
840         * libbib/index.cc (index_search_item::load): Prevent compiler
841         warnings about fd_closer's being unused.
842         (unused): New function.
843
844 Sat Feb 12 10:31:59 1994  James Clark  (jjc@jclark.com)
845
846         * troff/input.cc (copy_mode_error): Make `prefix' static.
847         Fix typo.
848
849         * include/posix.h: Include <osfcn.h> is HAVE_CC_OSFCN_H is
850         defined.
851         * acgroff.m4, configure.in, Makefile: Rename HAVE_CC_UNISTD_H to
852         HAVE_CC_OSFCN_H and modify accordingly.
853
854         * troff/input.cc (init_charset_table): radicalex overlaps
855         horizontally.
856
857         * groff/acgroff.m4 (GROFF_ISC_SYSV3): New macro (from
858         udodo!hans@relay.NL.net).
859         * groff/configure.in: Call it.
860
861         * groff/acgroff.m4 (GROFF_PCLOSE): New macro.
862         * groff/configure.in: Call it.
863         * include/lib.h: Conditionalize declaration of pclose.
864
865         * troff/div.cc (last_page_number): New global variable.
866         (top_level_diversion::begin_page): Exit if we just printed the
867         last page.
868         * troff/div.h (last_page_number): Declare it.
869         * troff/input.cc (parse_output_page_list): Set last_page_number.
870
871         * eqn/sqrt.cc: Rename \(rn to \[radicalex].
872         * devps/S, devps/textmap, tmac/tmac.ps, tmac/tmac.dvi,
873         tmac/tmac.X: Likewise.
874         * tmac/tmac.ps, tmac/tmac.X, tmac.dvi: Add definitions of \(rn.
875         * tmac.dvi: Make \(ru and \(ul extend beyond their width by .04m.
876
877 Fri Feb 11 11:45:40 1994  James Clark  (jjc@jclark.com)
878
879         * tmac/doc-ditroff (hK): Remove groff specific code which
880         prevented page-breaks between separate manual entries.  If this is
881         the first page, don't set the page number to 1.
882
883         * acgroff.m4 (GROFF_POSIX): New macro.
884         * configure.in: Use it.
885
886         * troff/node.cc (class real_output_file,
887         real_output_file::real_output_file,
888         real_output_file::~real_output_file): Conditionalize use of
889         popen/pclose on POPEN_MISSING.
890         * troff/node.h: Conditionalize pipe_command on POPEN_MISSING.
891         * troff/input.cc (pipe_command): Give an error if POPEN_MISSING.
892         (pipe_source): Similarily.
893
894         * acgroff.m4 (GROFF_PROG_CCC): Update message about libg++.
895
896         * acgroff.m4 (GROFF_GETOPT, GROFF_PUTENV, GROFF_POPEN): Detect
897         presence of declarations by trying to compile example with
898         conflicting declarations.  (gcc only gives a warning for missing
899         declarations.)
900
901 Wed Feb  9 09:12:23 1994  James Clark  (jjc@jclark.com)
902
903         * tmac/tmac.pspic (PSPIC): Allow options to specify alignment
904         (from Ulrich Lauther).
905
906 Tue Feb  8 03:56:40 1994  James Clark  (jjc@jclark.com)
907
908         * libbib/linear.cc (file_buffer::load): Use S_ISREG macro.
909
910 Thu Feb  3 09:34:35 1994  James Clark  (jjc@jclark.com)
911
912         * indxbib/indxbib.cc (write_hash_table): Add code for case where
913         pointers and ints have different sizes.
914
915 Sun Jan  9 16:17:51 1994  James Clark  (jjc@jclark.com)
916
917         * tmac/tmac.s (par*env-init): Call par@reset.
918
919 Fri Jan  7 10:24:27 1994  James Clark  (jjc@jclark.com)
920
921         * tmac/tmac.s (@IP): Switch to a new environment when diverting
922         tag.
923         (par*push-tag-env, par*pop-tag-env): New macros.
924
925 Wed Jan  5 21:18:34 1994  James Clark  (jjc@jclark.com)
926
927         * grops/ps.cc (ps_printer::ps_printer): Use MAX_LINE_LENGTH for
928         initializing `out'.  Reduce MAX_LINE_LENGTH from 79 to 72.
929
930         * grops/ps.cc (ps_printer::~ps_printer): Output %%CreationDate
931         comment.  Include <time.h>.
932
933 Wed Dec 15 14:14:00 1993  James Clark  (jjc@jclark.com)
934
935         * grops/ps.cc (is_small_h, is_small_v): Deleted.
936         (ps_printer::flush_sbuf): Use absolute motion only at beginning of
937         lines.
938
939 Tue Dec 14 10:06:34 1993  James Clark  (jjc@jclark.com)
940
941         * troff/input.cc (read_request): Only print a prompt if reading
942         from the terminal.  Also clearerr on EOF if reading from the
943         terminal.  Declare isatty.
944
945 Mon Nov 29 08:38:15 1993  James Clark  (jjc@jclark.com)
946
947         * refer/label.y: Rename map_t to map_func and extractor_t to
948         extractor_func.
949
950 Sat Oct 30 06:38:12 1993  James Clark  (jjc@jclark.com)
951
952         * include/assert.h: Don't use volatile.
953         * libgroff/assert.cc: Likewise.
954
955 Fri Oct 29 15:00:23 1993  James Clark  (jjc@jclark.com)
956
957         * troff/input.cc (abort_request): Look at character in tok before
958         calling get_copy().
959
960 Thu Oct 28 14:09:48 1993  James Clark  (jjc@jclark.com)
961
962         * troff/troff.h (NO_RETURN): Deleted.
963         * troff/div.cc (cleanup_and_exit):  Don't declare aas NO_RETURN.
964         * troff/input.cc (exit_troff): Likewise
965
966         * Makefile.in: Remove `Making ...' messages since GNU make now
967         gives these.
968
969         * configure.in: Use AC_HAVE_HEADERS(unistd.h) instead of AC_UNISTD_H.
970
971 Wed Oct 27 11:12:51 1993  James Clark  (jjc@jclark.com)
972
973         * tmac/tmac.s (@init): Initialize PO to \n(.o here, rather than
974         to constant 1 inch.
975
976 Sat Oct 23 10:03:52 1993  James Clark  (jjc@jclark.com)
977
978         * tmac/tmac.e (hl): Use \n[.in] rather than \n(.i.
979
980 Thu Oct 14 12:09:45 1993  James Clark  (jjc@jclark.com)
981
982         * eqn/delim.cc (delim_box::compute_metrics): Don't increase
983         MARK_REG if there was no left delimiter.
984
985 Sat Oct  2 19:54:47 1993  James Clark  (jjc@jclark.com)
986
987         * pic/troff.cc (troff_output::text): Set line thickness to
988         relative before outputting text.
989
990         * tmac/tmac.e (@k): Don't zero ?T.
991         ((z): Likewise.
992
993 Sat Sep 25 11:08:43 1993  James Clark  (jjc@jclark.com)
994
995         * tmac/tmac.e ($p): Handle possibility that $3 is empty.
996
997 Wed Aug 18 08:51:41 1993  James Clark  (jjc@jclark.com)
998
999         * troff/input.cc (decode_args): Warn about unquoted tabs (from
1000         Paul Eggert).
1001
1002 Tue Aug 10 08:38:32 1993  James Clark  (jjc@jclark.com)
1003
1004         * troff/input.cc (ignoring): New variable.
1005         (ignore): Set ignoring during call to do_define_macro.
1006         (do_define_macro): Clear ignoring before interpolating terminating
1007         macro.
1008         (copy_mode_error): New function.
1009         (get_char_for_escape_name, read_long_escape_name,
1010         interpolate_arg): Use copy_mode_error.
1011         (warning_table): Add WARN_IG.
1012         * troff/troff.h (WARN_IG): Declare.
1013         (WARN_TOTAL): Change accordingly.
1014
1015         * groff/pipeline.c (strsignal): Rename to xstrsignal.
1016         * groff/groff.cc (strsignal): Delete declaration.
1017
1018 Fri Jul 16 01:43:12 1993  James Clark  (jjc@jclark.com)
1019
1020         * troff/div.cc (page_offset): Use 'm' as default scaling.
1021
1022 Sat Jul  3 09:11:38 1993  James Clark  (jjc@jclark.com)
1023
1024         * nroff/nroff.sh: Ignore -u.
1025
1026 Wed Jun  9 12:17:27 1993  James Clark  (jjc@jclark.com)
1027
1028         * Makefile.in (MDEFINES): Pass down MAKEOVERRIDES.
1029
1030 Fri Jun  4 17:35:47 1993  James Clark  (jjc@jclark.com)
1031
1032         * tmac/tmac.s (par*box-draw): Set adjustment mode to l while
1033         drawing box.
1034         (B2): With -Tascii, leave additional vertical space before
1035         and after. Ensure that the left and right indent is restored to
1036         what it was even if the point size changes.  Don't call
1037         par@finish. Change the indent, line length and title length
1038         directly.  With -Tascii, make the width of the box 1n less.
1039         (B1): Remember 1n at the current point size.  Don't call
1040         par@reset.  Change the indent, line length and title length
1041         directly.  Ensure that the temporary indent is preserved.
1042         (par*box-mark-top): Turn off no spacing mode.
1043
1044 Thu Jun  3 17:47:14 1993  James Clark  (jjc@jclark.com)
1045
1046         * Makefile.in (dist): Use .gz suffix.
1047
1048 Thu May 27 20:04:59 1993  James Clark  (jjc@jclark.com)
1049
1050         * troff/input.cc (main): Add return 0.
1051         * pic/main.cc (main): Use return instead of exit.
1052         * tbl/main.cc (main): Likewise.
1053         * eqn/main.cc (main): Likewise.
1054         * grops/ps.cc (main): Likewise.
1055         * grotty/tty.cc (main): Likewise.
1056         * groff/groff.cc (main): Likewise.
1057         * grodvi/dvi.cc (main): Likewise.
1058         * refer/refer.cc (main): Likewise.
1059         * indxbib/indxbib.cc (main): Likewise.
1060         * lkbib/lkbib.cc (main): Likewise.
1061         * soelim/soelim.cc (main): Likewise.
1062         * addftinfo/addftinfo.cc (main): Likewise.
1063         * acgroff.m4 (GROFF_PROG_CCC, GROFF_CC_COMPILE_CHECK,
1064         GROFF_COOKIE_BUG, GROFF_CC_ANSI_BUG): Likewise.
1065
1066         * troff/token.h (process_input_stack): Don't declare as static.
1067         * troff/input.cc: Likewise.
1068
1069         * troff/node.c (invalidate_fontno): Make it a static member of
1070         class font_family.  Change callers.
1071         * troff/node.c: Change declaration.
1072
1073         * tbl/main.cc (struct input_entry_format): Add explicit public
1074         specifier.
1075         * tbl/table.cc (struct text_stuff, struct single_hline_stuff,
1076         struct double_hline_stuff): Likewise.
1077         * tbl/table.h (struct entry_format): Likewise.
1078         * pic/object.h (struct saved_state): Likewise.
1079
1080         * include/stringclass.h: Add forward declarations of friend
1081         functions that are later declared as inline.  Don't include inline
1082         specifier in friend declaration.
1083
1084         * libgroff/lib.h: Declare popen and pclose.
1085         * acgroff.m4 (GROFF_POPEN): New macro.
1086         * configure.in: Call it.
1087
1088         * include/lib.h (PI): New constant. Undef first if necessary.
1089         * tfmtodit/tfmtodit.cc (main): Use PI rather than M_PI.
1090         * grops/ps.cc (degrees, radians): Likewise.
1091         * libgroff/font.cc (font::get_skew): Likewise.
1092
1093         * grops/ps.cc (is_ascii): New function.
1094         (ps_output::put_string): Use is_ascii.  Use csprint rather than
1095         isprint.
1096         (ps_printer::define_encoding): Use csspace.
1097         * libgroff/strtol.c (ISASCII): New macro.
1098         (strtol): Cast arguments to is*() and tolower() to unsigned char.
1099         Use ISASCII rather than isascii.
1100         * libgroff/cmap.cc: Use isascii() only if <ctype.h> defines it.
1101         * libgroff/cset.cc: Likewise.
1102         * libdriver/input.cc: Include cset.h.
1103         (do_file, get_integer, possibly_get_integer): Use csdigit() rather
1104         than isdigit().
1105
1106         * refer/refer.cc (main): Use %ld rather than %d for longs.
1107
1108         * libbib/index.cc (index_search_item_iterator::get_tag): Use
1109         S_ISREG macro.
1110
1111         * addftinfo/addftinfo.cc (param_t): Add explicit `int'.
1112
1113 Mon May 24 08:51:37 1993  James Clark  (jjc@jclark.com)
1114
1115         * troff/input.cc (hyphenation_code): Skip white space between
1116         char/code pairs.
1117
1118 Sun May 16 08:15:52 1993  James Clark  (jjc at jclark.com)
1119
1120         * tbl/table.h (table::entry_list_tailp): New member.
1121         (table::table): Initialize it.
1122         (table::add_entry): Use entry_list_tailp to avoid O(n^2)
1123         behaviour.
1124
1125 Sat May 15 17:26:00 1993  James Clark  (jjc at jclark.com)
1126
1127         * grotty/tty.cc (tty_printer::add_char): Don't discard characters
1128         with negative horizontal positions. Remove casts of glyph::hpos to
1129         int.
1130         (USHRT_MAX): Delete definition.
1131         (SHRT_MAX, SHRT_MIN): New definitions.
1132         (glyph::hpos): Change type to short.
1133         (tty_printer::end_page): Output multiple backspaces if necessary.
1134          Remove casts of glyph::hpos to int.
1135         
1136 Fri May  7 12:14:37 1993  James Clark  (jjc at jclark.com)
1137
1138         * tmac/tmac.s (@RT): New definition.
1139
1140 Thu May  6 21:36:54 1993  James Clark  (jjc at jclark.com)
1141
1142         * refer/refer.cc (do_file): Make sure current_filename is set when
1143         filename is "-".
1144
1145         * pic/common.cc (common_output::dot_line): Handle zero length
1146         lines.
1147
1148 Sun May  2 19:54:16 1993  James Clark  (jjc at jclark.com)
1149
1150         * tmac/tmac.s (par@reset): Get value for .hy for \n[HY].
1151         (par@init): Initialize \n[HY].
1152
1153 Mon Apr 26 11:43:16 1993  James Clark  (jjc at jclark.com)
1154
1155         * troff/dictionary.cc (dictionary::remove): Continue when
1156         r < j < i.
1157
1158 Sun Apr 25 11:03:00 1993  James Clark  (jjc at jclark.com)
1159
1160         * Makefile.com (.y.cc): Avoid ending up with two versions of
1161         $(YTABH).
1162
1163 Thu Apr 22 21:03:45 1993  James Clark  (jjc at jclark.com)
1164
1165         * tmac/tmac.dvi (\(,c): Define only if it does not exist.
1166         (\(,C): Likewise.  Also fix typo.
1167
1168 Wed Apr 21 08:47:32 1993  James Clark  (jjc at jclark.com)
1169
1170         * lib.h: Delete extraneous semi-colon.
1171
1172         * Add pso request: `so' from a pipe.
1173         * troff/input.c (file_iterator::file_iterator): Add 3rd argument.
1174         (file_iterator::close): New function.
1175         (file_iterator::~file_iterator, file_iterator::next_file): Use
1176         file_iterator::close.
1177         (file_iterator::backtrace): Say `process' rather than `file' when
1178         the stream is popened.
1179         (pipe_source): New function.
1180         (init_input_requests): Bind ".pso" to pipe_source.
1181
1182 Tue Apr 20 00:02:26 1993  James Clark  (jjc at jclark.com)
1183
1184         * afmtodit/afmtodit.pl: Avoid single quotes in comments.
1185
1186         * pfbtops/pfbtops.c: Output 64 characters per line.  Output hex
1187         digits in lower case.
1188
1189 Mon Apr 19 09:55:57 1993  James Clark  (jjc at jclark)
1190
1191         * Version 1.08 released.
1192
1193         * Makefile.in (dist): Insert || true after ln -s commands that
1194         might fail.
1195
1196         * mm: Update to mm 1.16.
1197
1198         * acgroff.m4 (GROFF_CSH_HACK): New macro.
1199         * configure.in: Call GROFF_CSH_HACK.  Substitute for
1200         SH_SCRIPT_SED_CMD.
1201         * Makefile.in (SH_SCRIPT_SED_CMD): New variable.  Include in
1202         MDEFINES.
1203         * nroff/Makefile.sub (nroff): New target.
1204         (install_data): Install nroff.
1205         * eqn/Makefile.sub (neqn): Sed with SH_SCRIPT_SED_CMD.
1206         * grog/Makefile.sub (grog): Sed grog.sh with SH_SCRIPT_SED_CMD.
1207
1208 Sat Apr 17 08:24:28 1993  James Clark  (jjc at jclark)
1209
1210         * eqn/Makefile.sub (neqn): Add chmod +x.
1211
1212         * grog/Makefile.sub (grog): Remove spurious semi-colon.
1213
1214 Fri Apr 16 22:41:57 1993  James Clark  (jjc at jclark)
1215
1216         * troff/input.cc (string_iterator::string_iterator()): Initialize
1217         lineno and count.
1218
1219 Tue Apr 13 10:22:28 1993  James Clark  (jjc at jclark)
1220
1221         * troff/div.cc (macro_diversion::space,
1222         top_level_diversion::space): Don't set high_water_mark.
1223         (macro_diversion::output, top_level_diversion::output): Don't
1224         include post line space in high water mark.
1225
1226 Wed Apr  7 12:48:18 1993  James Clark  (jjc at jclark)
1227
1228         * eqn/eqn.y: Don't define YYDEBUG.
1229         * pic/pic.y: Likewise.
1230
1231 Mon Apr  5 10:15:15 1993  James Clark  (jjc at jclark)
1232
1233         * tmac/tmac.e ([3): Add space after comma following editors.
1234         Change double spaces to single spaces.
1235         ([4): Change double spaces to single spaces.
1236
1237         * grops/ps.h (USE_PS_ADOBE_2_0): New flag for broken_flags.
1238         * grops/ps.cc (ps_printer::~ps_printer): If the USE_PS_ADOBE_2_0
1239         bit is set in broken_flags, use 2.0 rather than 3.0 as the version
1240         after %!PS-Adobe- (for Newsprint).
1241
1242         * troff/div.cc (top_level_diversion::begin_page): When
1243         before_first_page is 1, set page_number to 1.
1244
1245 Sun Apr  4 14:28:53 1993  James Clark  (jjc at jclark)
1246
1247         * eqn/box.cc (box::top_level): Protect equation with \&.
1248
1249 Sat Apr  3 23:27:25 1993  James Clark  (jjc at jclark)
1250
1251         * groff/groff.cc (possible_command::set_name): Delete old name.
1252
1253         * groff/groff.cc (possible_command::~possible_command): Use
1254         a_delete.
1255
1256         * troff/node.cc (troff_output_file::begun_page): New member.
1257         (troff_output_file::troff_output_file): Initialize it.
1258         (troff_output_file::really_begin_page): Only output V command if a
1259         page has been begun.
1260
1261         * pic/pic.y (placeless_element): Delete argument to PRINT after
1262         use.
1263
1264 Fri Apr  2 11:31:02 1993  James Clark  (jjc at jclark)
1265
1266         * Make wrapman work.
1267         * troff/div.h (class top_level_diversion): Replace
1268         first_page_begun by before_first_page (with opposite sense).
1269         * Change first_page_begun to before_first_page inverting sense.
1270         * troff/div.cc (class nl_reg): New class.
1271         (init_div_requests): Use class nl_reg for \n(nl.
1272         (top_level_diversion::begin_page): Don't call
1273         output_file::begin_page if before_first_page is 2;
1274         reset before_first_page afterwards.  If have_next_page_number is
1275         false, then always increment page_number.
1276         * tmac/tmac.an: Set traps within TH rather than at the top-level.
1277         Restore compatibility mode after loading, and then disable
1278         compatibility mode in TH.
1279
1280 Thu Apr  1 11:09:34 1993  James Clark  (jjc at jclark)
1281
1282         * grotty/tty.cc (tty_printer::end_page): Don't discard characters
1283         past last line.
1284         * troff/node.h (output_file::trailer): Declare.
1285         * troff/div.cc (cleanup_and_exit): Call output_file::trailer().
1286         * troff/node.cc (output_file::trailer): New function.
1287         (troff_output_file::~troff_output_file): Move most code into...
1288         (troff_output_file::trailer): New function.
1289         (class troff_output_file): Delete page_length member. Declare
1290         trailer().
1291         (troff_output_file::really_begin_page): Use current page length
1292         for final V command.
1293
1294         * tbl/main.cc (struct options): New decimal_point_char member.
1295         (options::options): Initialize this.
1296         (process_options): Implement decimalpoint option.
1297         (process_data): Pass decimal_point_char option to table::table.
1298         * tbl/table.h (class table): New decimal_point_char member.
1299         (table::table): Add additional argument.
1300         * tbl/table.cc (find_dot): Rename to find_decimal_point. Add
1301         second argument specifying decimal point character.  Use this
1302         instead of '.'.
1303         (table::table): Initialize decimal_point_char.
1304         (table::add_entry): Change call to find_dot.
1305
1306         * troff/input.cc (get_copy, token::next): Implement \V.
1307         (interpolate_environment_variable): New function.
1308
1309 Tue Mar 30 14:41:39 1993  James Clark  (jjc at jclark)
1310
1311         * pic/lex.cc (lookup_keyword): Rename MIN to K_MIN, MAX to K_MAX.
1312         * pic/pic.y: Likewise.
1313
1314         * grotty/tty.cc (tty_printer::add_char, tty_printer::end_page):
1315         Add casts to int.
1316         * refer/ref.cc (reference::insert_field, reference::delete_field):
1317         Likewise.
1318         * troff/number.cc (parse_term): Likewise.
1319
1320         * acgroff.m4 (GROFF_PROG_YACC): New macro.
1321         * configure.in: Use GROFF_PROG_YACC.
1322
1323         * acgroff.m4 (GROFF_PROG_CCC): Don't add -O automatically for gcc
1324         and g++.
1325         * Makefile.in (OPTIMIZE): New define.
1326         (DEBUG): Empty by default.
1327         (CCFLAGS, CFLAGS): Include $(OPTIMIZE).
1328
1329         * acgroff.m4 (GROFF_SYS_SIGLIST): Don't quote program.
1330         (GROFF_ARRAY_DELETE): Likewise.
1331         (GROFF_CC_COMPILE_CHECK): Quote use of $2 and $3.
1332
1333         * troff/env.cc (trie::~trie): Make virtual to shut up g++.
1334
1335         * devps/psstrip.sed: Use different delimiter on last line (so that
1336         it works with BSD 4.4 sed.)
1337
1338 Mon Mar 29 17:07:14 1993  James Clark  (jjc at jclark)
1339
1340         * devps/psstrip.sed: Delete comments.
1341
1342         * acgroff.m4 (AC_GETOPT): Don't test whether <unistd.h> declares
1343         optind, opterr, optarg.
1344         * lib.h: When UNISTD_H_DECLARES_GETOPT is defined, declare optind,
1345         opterr, optarg.
1346
1347 Sun Mar 28 17:44:25 1993  James Clark  (jjc at jclark)
1348
1349         * Makefile.in (check): Dummy target.
1350
1351 Wed Mar  3 04:53:38 1993  James Clark  (jjc at jclark)
1352
1353         * Version 1.07 released.
1354
1355         * Integrate mm 1.11.
1356
1357         * tbl/table.cc (alphabetic_block_entry::print): start_row was used
1358         where start_col was meant.
1359
1360 Thu Feb 25 07:55:36 1993  James Clark  (jjc at jclark)
1361
1362         * grog/grog.sh, grog/grog.pl: Recognize PH and SA as -mm macros.
1363
1364 Wed Feb 24 10:15:34 1993  James Clark  (jjc at jclark)
1365
1366         * troff/input.cc (token::next): Make \z\o'...' and similar things
1367         work.
1368
1369         * env.h (MARGIN_CHARACTER_ON, MARGIN_CHARACTER_NEXT): New
1370         constants.
1371         (environment): Add margin_character_flags member.
1372         * env.cc (environment::environment(symbol),
1373         environment::environment(const environment *): Initialize
1374         margin_character_flags.
1375         (margin_character): Rewrite.
1376         (environment::output_line): Add a margin character if
1377         margin_character_flags is non-zero.  Turn off the
1378         MARGIN_CHARACTER_NEXT bit.  If that makes margin_character_flags
1379         zero, use margin_character_node without copying and then set
1380         margin_character_node to 0.
1381
1382         * devps/DESC.in: Change minimum size to 1000.
1383
1384 Tue Feb 23 14:57:49 1993  James Clark  (jjc at jclark)
1385
1386         * troff/symbol.h (symbol::hash): Change return type to unsigned
1387         long.
1388         * troff/dictionary.cc (dictionary::lookup, dictionary::remove):
1389         Add casts to int.
1390
1391         * test-groff: Use -r rather than -x.
1392
1393         * grops/psfig.diff: Include in distribution again.
1394
1395 Mon Feb 22 09:10:44 1993  James Clark  (jjc at jclark)
1396
1397         * Makefile.in (dist): Use gzip.
1398
1399 Sun Feb 21 11:12:53 1993  James Clark  (jjc at jclark)
1400
1401         * acgroff.m4 (GROFF_GETOPT): Check for declaration of getopt() in
1402         unistd.h as well as in stdlib.h.
1403         * include/lib.h: Include <stdlib.h> is STDLIB_H_DECLARES_GETOPT is
1404         defined; otherwise include <sys/types.h> and <unistd.h> if
1405         UNISTD_H_DECLARES_GETOPT is defined.
1406
1407         * configure.in: use builtin(include, ... rather than include(...
1408         * configure: Regenerate with autoconf 1.3.
1409
1410         * libdriver/print.cc (printer::adjust_arc_center): Use new
1411         algorithm suggested by Andy Fyfe.
1412
1413         * libdriver/printer.cc (printer::adjust_arc_center): New function.
1414         * include/printer.h: Declare this.
1415         * grops/ps.cc (ps_printer::draw): Use it.
1416         * grodvi/dvi.cc (dvi_printer::draw): Use it.
1417
1418 Fri Feb 19 23:13:51 1993  James Clark  (jjc at jclark)
1419
1420         * Makefile.comm (.man.n): Replace macrodir by tmacdir.
1421
1422 Thu Feb 11 16:46:59 1993  James Clark  (jjc at jclark)
1423
1424         * eqn/main.cc (main): Handle "eqn -".
1425
1426 Mon Jan  4 20:29:56 1993  James Clark  (jjc at jclark)
1427
1428         * tmac/tmac.e (++): Install fix from comp.bugs.4sd.
1429
1430         * mm: Integrate version 1.08.
1431
1432         * pic/troff.cc (troff_output::finish_picture): Set
1433         EQN_NO_EXTRA_SPACE reg to 0 rather than removing it.
1434         * eqn/box.cc (box::extra_space): Set EQN_NO_EXTRA_SPACE_REG to 0
1435         if it's not defined. Check whether the register is non-zero rather
1436         than whether it's not defined.
1437         * tmac.e ({, <): Make argument to \x zero if \n(0x is non-zero.
1438
1439         * indxbib/indxbib.cc: Move all signal handling into...
1440         * indxbib/signal.c: New file.
1441         * configure.in: Call AC_RETSIGTYPE.
1442
1443         * acgroff.m4 (GROFF_STRUCT_EXCEPTION): New macro.
1444         * configure.in: Call GROFF_STRUCT_EXCEPTION.
1445         * libgroff/matherr.c: Protect with ifdef HAVE_STRUCT_EXCEPTION.
1446
1447         * troff/input.cc (token::token, token::operator=): Work round SGI
1448         C++ bug.
1449         * pic/object.cc (position::position): Likewise.
1450
1451 Mon Dec 28 21:50:21 1992  James Clark  (jjc at jclark)
1452
1453         * pic/pic.h: Move declaration of hypot().
1454
1455 Wed Dec 16 12:28:29 1992  James Clark  (jjc at jclark)
1456
1457         * pic/pic.h: Declare hypot().
1458
1459         * pic/pic.h: Define M_PI if necessary.
1460
1461 Thu Dec 10 12:03:29 1992  James Clark  (jjc at jclark)
1462
1463         * tmac/tmac.e (re): Add alternative version that doesn't use groff
1464         `.ta T' feature.
1465
1466         * devps/prologue.ps (RE): Handle the possibility that the old font
1467         doesn't have a FontName entry.
1468
1469 Wed Dec  2 10:25:29 1992  James Clark  (jjc at jclark)
1470
1471         * tmac/tmac.e (fam): Redefine to set family in environment 2.
1472         (@C): Use @fam not fam.
1473
1474 Thu Nov 26 16:01:25 1992  James Clark  (jjc at jclark)
1475
1476         * lookbib/lookbib.cc (main): Change type of start to const char *.
1477         * lkbib/lkbib.cc (main): Likewise.
1478
1479         * eqn/lex.cc (definition::definition): Don't use member
1480         initializer syntax for members of anonymous unions.
1481
1482         * troff/input.cc (input_stack::backtrace): Change type of to const
1483         char *.
1484
1485 Wed Nov 25 13:43:09 1992  James Clark  (jjc at jclark)
1486
1487         * include/stringclass.h (class string): Declare inline friend
1488         functions as inline in class declaration.
1489         * troff/hvunits.h (class hunits, class vunits): Likewise.
1490         * include/refid.h (class reference_id): Likewise
1491         * troff/troff.h (points_to_units(units), scale(units, double)):
1492         Delete declarations.
1493         * libdriver/input.cc (get_char): Delete declaration.
1494         * include/lib.h: Change 2nd argument of getopt from const char **
1495         to char **.
1496         * troff/symbol.cc (symbol::symbol): Cast `new char *[n]' to `const
1497         char **' before assigning to a `const char **'.
1498         * tbl/table.cc: Delete extra declarations of prints().
1499
1500 Tue Nov 24 14:33:13 1992  James Clark  (jjc at jclark)
1501
1502         * libgroff/font.cc (font::load_desc): Cast `new char *[n]' to `const
1503         char **' before assigning to a `const char **'.
1504
1505         * libgroff/errarg.cc (errarg::errarg): Don't use member
1506         initializer syntax for members of anonymous unions.
1507
1508 Sat Nov 21 05:02:23 1992  James Clark  (jjc at jclark)
1509
1510         * mm: Integrate version 1.07.
1511
1512 Tue Nov 17 16:44:27 1992  James Clark  (jjc at jclark)
1513
1514         * troff/input.c (translate2): Rename to
1515         (translate_no_transparent).
1516         (init_input_requests): Rename tr2 to trnt.
1517
1518 Mon Nov 16 09:49:32 1992  James Clark  (jjc at jclark)
1519
1520         * troff/charinfo.h (class charinfo): Add transparent_translate field.
1521         (charinfo::set_translation, charinfo::set_special_translation):
1522         Add second argument that specifies value for
1523         transparent_translate.
1524         (charinfo::get_translation, charinfo::get_special_translation):
1525         Add optional second argument that specifies whether translation is
1526         being used for transparent throughput.
1527         * troff/input.cc (charinfo::set_translation,
1528         charinfo::set_special_translation): Handle second argument.
1529         (charinfo::charinfo): Initialize transparent_translate.
1530         (translate): Split main part off into
1531         (do_translate): New function.  Pass argument saying whether
1532         translation applies to transparent throughput.
1533         (translate2): New request.
1534         (init_input_requests): Bind translate2 to `tr2'.
1535
1536 Wed Nov 11 11:43:20 1992  James Clark  (jjc at jclark)
1537
1538         * tbl/table.h (class table): Add `nokeep' flag.
1539         * tbl/main.cc (process_options): Handle `nokeep' option.
1540         * tbl/table.cc (table::init_output, table::do_row, table::do_top,
1541         table::do_bottom): Don't output keep/release macro definitions or
1542         calls when `nokeep' option has been specified.
1543
1544 Sat Nov  7 01:28:33 1992  James Clark  (jjc at jclark)
1545
1546         * tmac/tmac.Xps (Xps-char): Use " as delimiter for \Z.
1547
1548 Wed Nov  4 16:29:04 1992  James Clark  (jjc at jclark)
1549
1550         * tbl/table.cc (table_entry::divert, block_entry::do_divert,
1551         block_entry::divert, alphabetic_block_entry::divert): Add extra
1552         argument giving column separation.
1553         (table::compute_widths): Pass column separation to
1554         table_entry::divert().
1555         (block_entry::do_divert): If an entry spans multiple columns and a
1556         minimumum width has been specified for each column, then set the
1557         line length to the sum of the widths (plus possibly the column
1558         separations).
1559
1560         * troff/input.cc (set_escape_char): Don't set the escape_char
1561         until after calling has_arg().
1562
1563 Tue Nov  3 11:23:27 1992  James Clark  (jjc at jclark)
1564
1565         * tbl/table.cc (table::do_top): Add missing \s0 for double box
1566         case.
1567
1568         * tbl/table.cc (table::print_double_hline): Avoid extra new line
1569         in case where r > nrows - 1.
1570
1571         * tbl/table.cc (BODY_HEIGHT): Deleted.
1572         (LINE_SEP): New definition.
1573         (table::print_single_hline, table::print_double_hline,
1574         table::compute_vrule_top_adjust, table::compute_vrule_bot_adjust,
1575         table::do_row, table::do_top): Use LINE_SEP space before a line
1576         instead of \n[.v]-BODY_HEIGHT-BODY_DEPTH.
1577
1578         * tbl/table.cc (text_entry::print_contents): New function.
1579         (text_string_name, right_text_string_name): Deleted.
1580         (TEXT_STRING, RIGHT_TEXT_STRING): Deleted.
1581         (simple_text_entry::do_width, numeric_text_entry::do_width,
1582         alphabetic_text_entry::do_width): Don't store the contents of the
1583         entry in a string.
1584         (left_text_entry::simple_print, right_text_entry::simple_print,
1585         center_text_entry::simple_print,
1586         alphabetic_text_entry::simple_print,
1587         numeric_text_entry::simple_print): Print the entry directly
1588         instead of using the stored string.
1589
1590 Fri Oct 30 10:39:32 1992  James Clark  (jjc at jclark)
1591
1592         * devps/Makefile: Strip PostScript files.
1593         * devps/prologue: Rename to...
1594         * devps/prologue.ps.
1595         * devps/psstrip.sed: New file.
1596         * devps/download: Use .pfa rather than .ps for installed versions
1597         of fonts.
1598
1599 Thu Oct 29 09:14:43 1992  James Clark  (jjc at jclark)
1600
1601         * troff/env.cc (input_trap): Give a warning if the argument is out
1602         of range.
1603
1604         * troff/env.cc (adjust): Treat negative argument as missing. Round
1605         argument > 5 down to 5.
1606
1607         * troff/env.cc (center, right_justify): Make negative argument zero.
1608
1609         * troff/div.cc (page_offset, vertical_position_traps): Treat
1610         invalid argument as missing.
1611         * troff/env.cc (line_spacing, line_length, title_length, indent,
1612         underline, hyphen_line_max_request, control_char,
1613         no_break_control_char, widow_control_request, adjust, input_trap,
1614         point_size): Likewise.
1615         * troff/node.cc (ligature, kern_request, bold_font, track_kern,
1616         constant_space): Likewise.
1617         * troff/input.cc (compatible, shift, warn_request,
1618         set_escape_char): Likewise.
1619
1620         * tbl/main.cc (format::format): Avoid doing `new int[0]'.
1621         * tbl/table.cc (table::table): Likewise.
1622
1623         * Makefile.dev (install_dev): depends on $(DEVFILES).
1624
1625 Wed Oct 28 08:30:57 1992  James Clark  (jjc at jclark)
1626
1627         * devX75, devX75-12, devX100, devX100-12: New directories.
1628         * Makefile.in: Add these to DEVDIRS.
1629
1630         * troff/Makefile.sub, eqn/Makefile.sub, indxbib/Makefile.sub,
1631         afmtodit/Makefile.sub, tmac/Makefile.sub, nroff/Makefile.sub,
1632         grog/Makefile.sub, mm/Makefile.sub (uninstall_sub): New target.
1633         * Makefile.in (uninstall, uninstall_sub, uninstall_dirs): New
1634         targets.
1635         * Makefile.ccpg, Makefile.cpg, Makefile.dev, Makefile.man
1636         (uninstall): New target.
1637         * Makefile.comm (uninstall, uninstall_sub, uninstall_man,
1638         uninstall_prog, uninstall_dev): New targets.
1639
1640         * troff/div.cc (return_request): Treat an invalid argument as
1641         missing.
1642
1643 Mon Oct 26 11:33:47 1992  James Clark  (jjc at jclark)
1644
1645         * tmac/tmac.e ((f): Set up the environment even when there's a
1646         current diversion.  Transperently throughput a call to @N.
1647         (@N): New macro.
1648
1649 Thu Oct 22 05:05:59 1992  James Clark  (jjc at jclark)
1650
1651         * tbl/table.cc (table::compute_vrule_top_adjust): Round adjustment
1652         up to vertical resolution.
1653
1654         * tbl/table.cc (table::do_row): Change row number after printing
1655         stuff list.
1656
1657         * pic/lex.cc (get_token_after_dot): Make .left and .right work.
1658
1659 Wed Oct 21 14:46:45 1992  James Clark  (jjc at jclark)
1660
1661         * Rename CHANGES to NEWS.
1662
1663 Tue Oct 20 23:25:21 1992  James Clark  (jjc at jclark)
1664
1665         * libgroff/new.cc (operator new): Avoid calling malloc(0).
1666
1667 Mon Oct 19 09:10:13 1992  James Clark  (jjc at jclark)
1668
1669         * man.ultrix: Removed.
1670
1671 Sun Oct 18 06:35:15 1992  James Clark  (jjc at jclark)
1672
1673         * Makefile.comm (extraclean): Delete files whose names begin with
1674         `='.
1675
1676         * pic/troff.cc (troff_output::text): Fix typo in implementation of
1677         aligned text.
1678
1679 Sat Oct 10 09:32:29 1992  James Clark  (jjc at jclark)
1680
1681         * troff/env.cc (hyphenate_request, vertical_spacing, no_number):
1682         * troff/div.cc (page_length, need_space, space_request): Treat
1683         invalid optional argument as missing.
1684         * troff/env.cc (number_lines): If the first argument is present
1685         but not a number, turn on line numbering, don't change the next
1686         line number and parse the remaining arguments.
1687
1688         * tmac/tmac.e (@q): Do the `ne' before changing to environment 2.
1689
1690 Thu Oct  8 10:24:40 1992  James Clark  (jjc at jclark)
1691
1692         * eqn/box.h: Change declaration accordingly.
1693         * eqn/box.cc (set_gsize): Change return type to int.  Return 0 if
1694         the specified size was bad but don't give an error.  Check for
1695         overflow.
1696         * eqn/main.cc (main): Change caller. Leave validation to set_gsize.
1697         * eqn/lex (do_size): Likewise.
1698
1699 Wed Oct  7 09:48:59 1992  James Clark  (jjc at jclark)
1700
1701         * acgroff.m4 (GROFF_PROG_CCC): Use fopen when checking for C++
1702         compatible headers.
1703
1704 Sun Oct  4 18:24:02 1992  James Clark  (jjc at jclark)
1705
1706         * tbl/table.cc (table::init_output): Improve error message when
1707         table won't fit on one page.
1708
1709 Fri Oct  2 10:41:40 1992  James Clark  (jjc at jclark)
1710
1711         * pic/troff.cc (troff_output::start_picture): Generate line
1712         containing a horizontal motion equal to the width of the picture.
1713
1714         * groff/groff.cc (main): Allow PROG_PREFIX to be set at runtime
1715         using GROFF_COMMAND_PREFIX environment variable.
1716
1717 Fri Sep 25 11:40:40 1992  James Clark  (jjc at jclark)
1718
1719         * mdate.sh: Use $NF rather than $(NF).
1720
1721 Tue Sep 22 09:47:24 1992  James Clark  (jjc at jclark)
1722
1723         * pic/main.cc (main):  Use %1 not %c in argument to warning.
1724
1725         * eqn/main.cc (main): Output code to check that geqn was given the
1726         correct -T option.
1727
1728 Mon Sep 21 10:59:16 1992  James Clark  (jjc at jclark)
1729
1730         * Makefile.in (dist): Instead of doing `make -f ../Makefile', do
1731         `ln -s ../Makefile .; make; rm -f Makefile'.
1732
1733         * troff/hyphen: Rename to...
1734         * troff/hyphen.us:
1735         * troff/input.cc (main): Delete -H option. Don't call
1736         read_hyphen_file().
1737         * troff/env.cc: Include searchpath.h and macropath.h.
1738         (exception_dictionary): Deleted.
1739         (ht): Deleted.
1740         (read_hyphen_file): Deleted.
1741         (hyphenation_language): New struct.
1742         (class trie, class hyphen_trie): Move declarations up.
1743         (trie_node::~trie_node): Deleted.
1744         (trie::delete_trie_node): New function.
1745         (trie::do_delete): New pure virtual function.
1746         (hyphen_trie::do_delete): New function.
1747         (trie::~trie): New function.
1748         (hyphen_trie::~hyphen_trie): New function.
1749         (trie::clear): No need to chcek that tp is not 0.
1750         (current_language, language_dictionary): New variables.
1751         (hyphen_word): Give an error if no current language.  Use
1752         exceptions dictionary in current language.
1753         (hyphen_trie::read_patterns_file): Find file using macro_path.
1754         Allow comments (starting with %) in patterns file.  Don't make it
1755         a fatal error if the file can't be found.
1756         (hyphenate): Return if no current language.  Get the exceptions
1757         dictionary and the hyphenation patterns from the current language.
1758         (set_hyphenation_language): New variable.
1759         (hyphenation_patterns_file): New function.
1760         (hyphenation_language_reg): New class.
1761         (hyphenation_language_reg::get_string): New function.
1762         (init_hyphen_requests): Bind "hla" to set_hyphenation_language and
1763         "hpf" to hyphenation_patterns_file.  Initialize `.hla' number
1764         register.
1765         * groff/groff.cc (main, help, synopsis): Delete -H option.
1766         * include/Makefile.sub: Don't define HYPHENFILE.
1767         * Makefile.in: Delete hyphenfile variable and remove from MDEFINES.
1768         * Makefile.comm (.man.n): Don't substitute for HYPHENFILE.
1769         * tmac/troffrc: Set hyphenation language to `us'. Load `hyphen.us'
1770         hyphenation patterns.
1771
1772 Sun Sep 20 09:33:02 1992  James Clark  (jjc at jclark)
1773
1774         * eqn/neqn.sh: New file.
1775         * eqn/Makefile.sub: Handle neqn.sh.
1776
1777         * eqn/eqn.h: Declare `nroff' variable.
1778         * eqn/box.cc (param_table): Add `nroff' param.
1779         (nroff): Define it.
1780         * eqn/lex.cc (yylex): Handle TDEFINE and NDEFINE using `nroff'
1781         variable.
1782         * tmac/eqnrc: Set `nroff' to 1 for -Tascii or -Tlatin1.
1783
1784         * troff/troff.h (WARN_FONT): New warning.
1785         (WARN_TOTAL): Change accordingly.
1786         * troff/input.cc (DEFAULT_WARNING_MASK): Include WARN_FONT.
1787         (warning_table): Add WARN_FONT.
1788         * troff/node.cc (mount_font_no_translate): Pass argument to
1789         font::load_font.  If this is non-zero, give a warning.
1790         Don't give an error message when accessing a font that has already
1791         been found to be invalid.
1792         * include/font.h (font::load, font::load_font): Add additional
1793         optional argument which suppresses error message if the font is
1794         not found.
1795         * libgroff/font.cc (font::load_font): Handle additional argument.
1796         (font::load): Add additional argument. If this is non-null, set it
1797         to 1 and don't give error message.
1798
1799         * include/printer.h (printer::end_page): Add argument giving
1800         length of page.
1801         * libdriver/input.cc (do_file): Pass this.
1802         * grops/ps.cc (ps_printer::end_page): Add argument.
1803         * grodvi/dvi.cc (dvi_printer::end_page,
1804         draw_dvi_printer::end_page): Add argument.
1805         * grotty/tty.cc (class tty_printer): Remove lines_per_page and
1806         columns_per_page members. New member nlines.
1807         (DEFAULT_LINES_PER_PAGE): Deleted.
1808         (tty_printer::tty_printer): Don't compute lines_per_page from
1809         font::paperlength. Don't compute columns_per_page from
1810         font::paperwidth.
1811         (tty_printer::add_char): Don't check horizontal position against
1812         columns_per_page. Grow glyphs vector if neccessary.
1813         (tty_printer::end_page): Add argument giving page_length in units.
1814         Discard lines past end of page.
1815
1816 Wed Sep 16 06:29:52 1992  James Clark  (jjc at jclark)
1817
1818         * tmac/tmac.tty-char: Fix definition of \(/l.
1819
1820         * tmac/tmac.X: Define \(en.
1821
1822 Tue Sep 15 10:37:13 1992  James Clark  (jjc at jclark)
1823
1824         * acgroff.m4 (GROFF_PRINT): If a system has lpr and lp but not
1825         lpq, then use lp rather than lpr.
1826
1827         * tmac/tmac.s (par@reset): Don't call `ad'.
1828         (par*env-init): Call `ad'.
1829
1830 Sun Sep 13 18:48:20 1992  James Clark  (jjc at jclark)
1831
1832         * mdate.sh: Use $(NF) instead of $6 to extract year from output of
1833         date.
1834
1835         * troff/symbol.cc: #undef BLOCK_SIZE if it's defined.
1836         * indxbib/indxbib.cc: Likewise.
1837
1838 Sun Sep  6 09:44:46 1992  James Clark  (jjc at jclark)
1839
1840         * libgroff/putenv.c: New file.
1841         * libgroff/Makefile.sub: Add putenv.c to CSRCS.
1842         * Makefile.in: Say that putenv.o can be one of LIBOBJS.
1843         * configure.in: Test for putenv with AC_REPLACE_FUNCS. Test for
1844         stdlib.h with AC_HAVE_HEADERS.
1845
1846 Sat Sep  5 18:11:52 1992  James Clark  (jjc at jclark)
1847
1848         * indxbib/dirnamemax.c: Include <sys/dir.h> only if <dirent.h>
1849         does not exist.
1850
1851 Fri Sep  4 09:43:26 1992  James Clark  (jjc at jclark)
1852
1853         * eqn/box.cc (gsize): Make it an int.
1854         (set_gsize): Parse argument handling increment or decrement.
1855         (box::top_level): Convert gsize to a string.
1856
1857         * troff/input.cc (exit_troff): Make buf unsigned char [].
1858         Call to make_temp_iterator casts buf to char*.
1859
1860         * Makefile.in ($(TARGETS), dot): Pass $(MDEFINES) to recursive makes.
1861
1862         * Makefile.ccpg (depend.temp): Depends on $(YTABC).
1863         * Makefile.cpg (depend.temp): Likewise.
1864
1865         * Makefile.dep: Remove Makefile.dep from $(REALCLEANFILES).
1866
1867         * Makefile.comm: Add y.output to MOSTLYCLEANFILES.
1868
1869 Thu Sep  3 08:01:55 1992  James Clark  (jjc at jclark)
1870
1871         * tmac/tmac.s (B, I, BI, CW): Rewrite avoiding aliases.
1872
1873 Tue Sep  1 18:24:53 1992  James Clark  (jjc at jclark)
1874
1875         * Version 1.06 released.
1876
1877         * Integrate mm 1.04.
1878
1879 Fri Aug 28 11:28:19 1992  James Clark  (jjc at jclark)
1880
1881         * Makefile.comm, Makefile.ccpg, Makefile.cpg: Fix TAGS target.
1882
1883 Thu Aug 27 11:03:33 1992  James Clark  (jjc at jclark)
1884
1885         * afmtodit/afmtodit.pl: Add -n option that disables generation of
1886         ligatures command.
1887         * devps/generate/Makefile (CR, CB, CI, CBI): Pass -n flag to
1888         afmtodit. Regenerate.
1889
1890         * tmac/tmac.e ()z): Adjust _b if necessary so as to avoid moving
1891         @f back past the current position.
1892
1893         * tmac/tmac.e: Change calls to @R so that comments are not part of
1894         arguments.
1895
1896 Tue Aug 25 10:42:07 1992  James Clark  (jjc at jclark)
1897
1898         * configure.in: Check for mkstemp with AC_HAVE_FUNCS.
1899
1900         * acgroff.m4 (GROFF_PROG_CCC): Don't check for <osfcn.h>. Instead
1901         check that we can link a call to a function declared in <stdio.h>.
1902         (GROFF_UNISTD_H): New macro.
1903         * configure.in: Call it.
1904         * Makefile.in: Document it.
1905         * include/posix.h: New file.
1906         * troff/troff.h: Don't include <osfcn.h>
1907         * troff/input.cc: Include posix.h.
1908         * libgroff/new.cc, libgroff/tmpfile.cc: Include posix.h rather than
1909         osfcn.h.
1910         * indxbib/indxbib.cc, libbib/{search.cc,linear.cc,index.cc}:
1911         Include posix.h rather <sys/types.h>, <sys/stat.h>, <osfcn.h>,
1912         <fcntl.h>.
1913         * indxbib/indxbib.cc (S_IRUSR, S_IRGRP, S_IROTH): Delete definitions.
1914         * libbib/index.cc (S_ISREG, O_RDONLY): Delete definitions.
1915         * libbib/search.cc (O_RDONLY): Delete definition.
1916         * refer/refer.cc, include/driver.h, pic/pic.h, groff/groff.cc:
1917         Don't include <osfcn.h>.
1918
1919         * acgroff.m4 (GROFF_TIME_T): New macro.
1920         * configure.in: Call it.
1921         * Makefile.in: Document it.
1922
1923         * acgroff.m4 (GROFF_TRADITIONAL_CPP): New macro.
1924         * configure.in: Call it.
1925         * Makefile.in: Document -DTRADITIONAL_CPP.
1926         * include/ptable.h: Don't include generic.h.
1927         (name2): Define it.
1928
1929         * tmac/tmac.s (][): Make [T1 and [T2 aliases for [T.
1930         Afterwards remove [T1 and [T2.
1931         (ref*spec!0, ref*spec!2): Use T1 rather than T.
1932         (ref*spec!1, ref*spec!4, ref*spec!4): Use T2 rather than T.
1933         (ref*add-T2): Renamed from ref*add-T.
1934         (ref*add-T1): New macro.
1935
1936 Mon Aug 24 11:11:11 1992  James Clark  (jjc at jclark)
1937
1938         * acgroff.m4 (AC_PROG_CCC): Use GROFF_EXIT rather than exit 1.
1939
1940         * libbib/index.cc: Include <fcntl.h>.
1941         (O_RDONLY): Define if necessary.
1942         (make_index_search_item, index_search_item_iterator::get_tag,
1943         index_search_item::check_files): Use O_RDONLY.
1944         * libbib/seach.cc: Include <fcntl.h>, <sys/types.h>, <sys/stat.h>.
1945         (O_RDONLY): Define if necessary.
1946         (search_list::add_file): Use O_RDONLY.
1947         * indxbib/indxbib.cc: Include <fcntl.h>, <sys/types.h>,
1948         <sys/stat.h>.
1949         (S_IRUSR, S_IRGRP, S_IROTH): Define if necessary.
1950         (main): Use these.
1951
1952         * libbib/index.cc (S_ISREG): Define it if necessary.
1953         (index_search_item::load): Use S_ISREG.
1954
1955         * include/driver.h: Include <errno.h>.
1956
1957 Sun Aug 23 11:32:18 1992  James Clark  (jjc at jclark)
1958
1959         * eqn/box.cc (body_height): Increase default value to 85.
1960         (body_depth): Increase default value to 35.
1961
1962 Fri Aug 21 05:34:42 1992  James Clark  (jjc at jclark)
1963
1964         * eqn/pbox.h (SAVE_FONT_STRING): Define it.
1965         * eqn/box.cc (box::top_level): Hide use of \R in a string that is
1966         protected from expansion with \E.
1967
1968         * acgroff.m4 (GROFF_PAGE): Use `case' to test domain.
1969
1970         * Makefile (Makefile): New target.
1971
1972         * Makefile.sub (configure, distfiles): New targets.
1973
1974         * acgroff.m4 (GROFF_BROKEN_SPOOLER_FLAGS): Avoid using ${var:-val}
1975         construct.
1976
1977 Thu Aug 20 12:27:26 1992  James Clark  (jjc at jclark)
1978
1979         * eqn/box.cc (param_table): Add body_height and body_depth.
1980
1981         * eqn/lex.cc (def_table): Make circumflex in hat_def roman.
1982
1983 Tue Aug 18 16:24:25 1992  James Clark  (jjc at jclark)
1984
1985         * psbb/Makefile.sub: Don't link with libgroff.a.
1986
1987         * acgroff.m4 (GROFF_PUTENV): New macro.
1988         * configure.in: Call GROFF_PUTENV.
1989         * Makefile.in: Document STDLIB_H_DECLARES_PUTENV.
1990         * groff/groff.cc: Don't declare putenv if STDLIB_H_DECLARES_PUTENV
1991         is defined.
1992
1993         * troff/env.cc (distribute_space): Rename force_forward argument
1994         to force_reverse.  Reverse the list if force_reverse is true.
1995
1996 Mon Aug 17 17:49:05 1992  James Clark  (jjc at jclark)
1997
1998         * tmac/tmac.an: Don't define a string `T'. Just define Tm.
1999
2000         * eqn/pile.cc (matrix_box::compute_metrics): Don't allow computed
2001         height or depth to be negative.  Guard against SUP_RAISE quantity
2002         being negative.
2003
2004 Sat Aug 15 08:18:54 1992  James Clark  (jjc at jclark)
2005
2006         * devps/generate/textmap: Add `an' (arrowhorizex).
2007         * tmac/tmac.ps: \(an overlaps horizontally.
2008         * tmac/tmac.dvi, tmac/tmac.tty: Add `an'.
2009
2010         * devps/symbolchars: Add arrowverttp, arrowvertbt.
2011         * devps/textmap: Add arrowvertex.
2012         * eqn/delim.cc (delim_table): Add uparrow, downarrow and
2013         updownarrow delimiters.
2014         * tmac/tmac.ps, tmac/tmac.X: Add definition of \(va.
2015
2016         * tbl/table.cc (simple_entry::position_vertically,
2017         block_entry::position_vertically):  For a centered entry, perform
2018         the motion in two stages.
2019
2020         * refer/refer.cc (split_punct): Don't call lookup_token if there
2021         is no token.
2022
2023 Fri Aug 14 11:14:58 1992  James Clark  (jjc at jclark)
2024
2025         * troff/input.cc (token::next): Delete token_node after copying
2026         token.
2027
2028         * grodvi/grodvi.cc (dvi_printer::dvi_printer): Initialize
2029         cur_point_size.
2030
2031         * libdriver/printer.cc (printer::load_font): Delete old_font_table.
2032
2033         * grops/ps.cc (ps_printer::define_encoding): Delete elements of vec.
2034
2035 Tue Aug 11 13:50:38 1992  James Clark  (jjc at jclark)
2036
2037         * grops/ps.cc (usage): -b option takes an argument.
2038
2039         * devps/prologue (PLG): New procedure.
2040         * grops/ps.cc (main, usage): New -g option.
2041         (ps_printer::~ps_printer):  If guess_flag is set, guess the paper
2042         length using PLG.
2043
2044 Mon Aug 10 11:17:53 1992  James Clark  (jjc at jclark)
2045
2046         * include/cset.h: Include <limits.h> if we have it.
2047
2048         * libgroff/illegal.cc: New file.
2049         * include/lib.h (illegal_input_char): Use table.
2050         * troff/input.cc (ESCAPE_RIGHT_PARENTHESIS): Renumber to 0206.
2051         * pic/lex.cc (ARG1): Renumber to 14.
2052         * eqn/lex.cc (ARG1): Likewise.
2053
2054         * troff/Makefile.sub (majorminor.cc): Handle 3 part versions
2055         (eg 1.05.90) correctly.
2056
2057 Sun Aug  9 13:35:43 1992  James Clark  (jjc at jclark)
2058
2059         * tmac/tmac.e (sr): Deleted. Set $r and $R directly.
2060         Rename $r and $R registers to $v and $V.
2061         ($r, $R): Initialize to 0.
2062         (@v, @V): New macros.
2063         (sz): Call @v.
2064         (@M): Call @V.
2065
2066         * troff/input.cc (main, usage): Add -R option that says not to
2067         load troffrc.
2068         * eqn/main.cc (main, usage): Rename -n to -R.
2069
2070 Sat Aug  8 00:16:00 1992  James Clark  (jjc at jclark)
2071
2072         * devps/DESC.in: Leave font positions 5-9 blank.
2073         * devdvi/DESC.in: Likewise.
2074
2075         * grog/grog.pl: Handle `.PS <file' correctly.
2076
2077         * troff/input.cc (input_stack::push): Improve error message when
2078         input stack limit exceeded.
2079
2080 Fri Aug  7 13:08:16 1992  James Clark  (jjc at jclark)
2081
2082         * refer/refer.cc (main): Fix typo in handling of `a' option.
2083
2084         * refer/refer.cc (do_bib): In state START after a newline remain
2085         in state START.
2086
2087         * groff/groff.sh: Deleted.
2088         * groff/Makefile.sub: Delete handling of groff.sh.
2089
2090         * pic/troff.cc (troff_output::text): Test \n(0p rather than \*(.T
2091         to determine whether to use \X'ps:...'.
2092         * tmac/troffrc: Set 0p register to 0.
2093         * tmac/tmac.ps: Set 0p register to 1.
2094
2095         * groff/groff.cc: Support -X option. Give warning for -TXps and
2096         transform to -X -Tps. Pass troff a -r.X=1 option if -X is used.
2097         * tmac/troffrc: Support -r.X=1.
2098
2099         * pic/troff.cc (troff_output::dot): Don't test
2100         zero_length_line_flag.
2101
2102 Thu Aug  6 13:32:08 1992  James Clark  (jjc at jclark)
2103
2104         * include/lib.h: Declare getopt() and friends unless
2105         STDLIB_H_DECLARES_GETOPT is defined.
2106
2107         * doc/chars.tr: Delete.
2108         * man/groff_char.man: New file.
2109
2110 Wed Aug  5 00:38:58 1992  James Clark  (jjc at jclark)
2111
2112         * tmac/tmac.e (np, bu): Test \n($p with string expression in case
2113         user has changed register format.
2114
2115 Mon Aug  3 11:22:18 1992  James Clark  (jjc at jclark)
2116
2117         * groff/groff.cc: Get rid of device_table.  Get postprocessor from
2118         `postpro' command in DESC file.  Get spooler command from `print'
2119         command in DESC file.  Execute spooler command with /bin/sh.
2120
2121         * groff/groff.cc: Split Unix-specific parts into...
2122         * groff/pipeline.c: New file.
2123
2124         * LICENSE: Delete.
2125         * COPYING: New file.
2126         * all files: Update copyright notices.
2127
2128         * Rearrange files.  Redo Makefiles.  Use autoconf.
2129
2130 Sat Aug  1 09:36:50 1992  James Clark  (jjc at jclark)
2131
2132         * troff/input.c (charinfo_to_node_list): Interpret character
2133         definition with escape_char of `\'.
2134
2135 Tue Jul 28 12:20:12 1992  James Clark  (jjc at jclark)
2136
2137         * lib/strerror.c, lib/iftoa.c, lib/itoa.c: Don't include lib.h.
2138         Define INT_DIGITS as big enough for 64-bit integer.
2139         * lib/strtol.c: Don't include lib.h.
2140         * lib/lib.h: Delete ifdef __cplusplus stuff.
2141
2142 Mon Jul 27 11:08:50 1992  James Clark  (jjc at jclark)
2143
2144         * ps/devps/Makefile: Add DESC to DEVICEFILES.  Separate out rule
2145         for making DESC.  Make $(FONTS) depend on DESC. afmtodit should
2146         get DESC from current directory.
2147
2148 Sun Jul 26 15:38:26 1992  James Clark  (jjc at jclark)
2149
2150         * tbl/main.c (main): Always reset the line number when reading
2151         from stdin.
2152
2153         * tbl/table.c (table::print_single_hline, table::print_double_hline,
2154         table::define_bottom_macro, table::do_row, table::do_top): Round
2155         vertical spacing up to vertical resolution.
2156
2157 Fri Jul 24 14:32:07 1992  James Clark  (jjc at jclark)
2158
2159         * ps/ps.h (enum resource_type): Avoid comma at end of
2160         enumerator-list.
2161         * dvi/dvi.c (class dvi_printer): Likewise.
2162         * dvi/tfmtodit.c (gf::load): Likewise.
2163         * refer/label.y (struct expression): Likewise.
2164         * refer/refer.c (class label_processing_state): Likewise.
2165         * refer/indxbib.c (do_file): Likewise.
2166         * troff/troff.c (enum warning_type): Likewise.
2167         * tbl/main.c (process_data): Likewise.
2168         * troff/charinfo.h (class charinfo):
2169
2170 Wed Jul 22 09:17:58 1992  James Clark  (jjc at jclark)
2171
2172         * dvi/devdvi/textt.map: Add entry for `-'.  Regenerate fonts.
2173
2174 Tue Jul 21 11:39:26 1992  James Clark  (jjc at jclark)
2175
2176         * groff.c: Move to new groff subdirectory.
2177         * groff/Makefile: New file.
2178         * Makefile: Remove handling of groff.c. Add groff to SUBDIRS.
2179
2180         * man/mdate.sh: Use ls -L if supported.
2181
2182         * Consolidate all header files produced by gendef into lib/defs.h.
2183         * lib/macropath.c, lib/fontfile.c, lib/device.c: Include defs.h.
2184         Don't include path.h.
2185         * lib/Makefile (path.h): Don't generate.
2186         * troff/input.c: Include defs.h. Don't include config.h.
2187         * troff/Makefile (config.h): Don't generate.
2188         * refer/index.h: Don't include suffix.h.
2189         * refer/index.c: Include defs.h.
2190         * refer/indxbib.c: Include defs.h.
2191         * refer/refer.h, refer/lkbib.h: Don't include path.h. Include
2192         defs.h.
2193         * refer/Makefile (suffix.h, path.h): Don't generate.
2194         * groff.c: Don't include config.h. Include defs.h.
2195         * Makefile (config.h): Don't generate.
2196         (lib/defs.h): Generate.
2197         (topclean): Remove lib/defs.h.
2198
2199 Mon Jul 20 10:12:57 1992  James Clark  (jjc at jclark)
2200
2201         * lib/malloc.c, lib/getpagesize.h: Deleted.
2202         * Makefile: Add COOKIE_BUG configuration option.  Delete malloc
2203         related stuff.
2204         * lib/Makefile: Delete malloc-related stuff.
2205         * lib/new.c: Workaround COOKIE_BUG if necessary.
2206
2207         * refer/lkbib.c, refer/indxbib.c: Don't include refer.h.  Include
2208         needed header files directly.
2209         * refer/refer.h: Omit definition of DEFAULT_INDEX.
2210         * Makefile: Include definition of DEFAULT_INDEX in path.h.
2211
2212 Sun Jul 19 10:19:22 1992  James Clark  (jjc at jclark)
2213
2214         * lib/font.c (FONT_COMMAND_HANDLER): Pass command name and single
2215         argument.
2216         * lib/font (font::load_desc, font::load): Don't split argument of
2217         unknown command.
2218         (font::handle_unknown_font_command): Change type.
2219         * ps/ps.c (ps_font::handle_unknown_font_command,
2220         handle_unknown_desc_command): Change type.
2221         * dvi/dvi.c (dvi_font::handle_unknown_font_command): Change type.
2222
2223 Fri Jul 17 11:12:49 1992  James Clark  (jjc at jclark)
2224
2225         * lib/font.h (font::handle_unknown_font_command): Add file and
2226         line arguments.
2227         * lib/font.c (font::handle_unknown_font_command):
2228         * ps/ps.c (ps_font::handle_unknown_font_command):
2229         * dvi/dvi.c (dvi_font::handle_unknown_font_command): Add file and
2230         lineno arguments.  Use _with_file_and_line functions for error
2231         reporting.
2232
2233         * lib/fontfile.c (font::unknown_desc_command_handler): New static
2234         data member.
2235         * lib/font.c (font::set_unknown_desc_command_handler): New
2236         function.
2237         (font::load_desc): For unknown commands, call
2238         unknown_desc_command_handler if not null.
2239         * lib/font.h (class font): Declare them.
2240         (FONT_COMMAND_HANDLER): New typedef.
2241         * ps/ps.c (handle_unknown_desc_command): New function.
2242         (main): Set bflag if we had a -b option. Call
2243         font::set_unknown_desc_command_handler.
2244         (broken.h): Don't include.
2245         * ps/Makefile: No need for broken.h.  Pass BROKEN_SPOOLER_FLAGS to
2246         submake
2247         * ps/devps/Makefile: Add `broken' command to DESC file using
2248         BROKEN_SPOOLER_FLAGS.
2249
2250         * macros/tmac.e ([, ]): Add as synonyms for { and }.
2251
2252         * macros/tmac.e ($p): Only exdent if \$3 > 0.
2253
2254         * macros/tmac.e (@R, @S): New macros.
2255         Declare @, po, $0, $i, $p, df, so, fu, bt, *, ?a, ?b, ?C, ?e, ?H,
2256         ?I, ?n, ?o, ?R, ?s, ?T, ?W, ?w registers with @R.
2257         Declare $H, $[0-9], .. macros with @S.
2258         Declare |0, |1, |2, |3 strings with @S.
2259
2260         * macros/tmac.e (@S): Rename to @U.
2261
2262         * macros/tmac.e (@z): Define @b and bp as empty instead of
2263         deleting them,
2264
2265         * macros/tmac.e (@m): Deleted.
2266         (@h): Don't call @m.
2267         (@z): Don't set @m trap.
2268
2269         * macros/tmac.e ($h, $f): Define |z as empty string.
2270
2271         * macros/tmac.e (@D): Rework to avoid unbalanced .el requests.
2272         (@q): Likewise.
2273
2274         * macros/tmac.e (@h): Set ?H, ?C , ?s registers to 0 rather than
2275         removing them.
2276         ()f): Likewise for * register.
2277
2278         * macros/tmac.e (sr): Don't ever scale the arguments. If the third
2279         argument is missing, don't change $R.  Call sr with three
2280         arguments when initializing.
2281
2282 Thu Jul 16 12:17:12 1992  James Clark  (jjc at jclark)
2283
2284         * macros/tmac.e (sr): New macro.
2285         Initialize $r and $R using sr.
2286
2287         * macros/tmac.e (,): Delete \*(#[.
2288
2289         * troff/env.c (set_tabs): Read the tab type even if the position
2290         is bad.  Allow the position of the first tab stop to be negative.
2291
2292 Wed Jul 15 13:14:37 1992  James Clark  (jjc at jclark)
2293
2294         * refer/dirnamemax.c: Use pathconf() if <unistd.h> defines
2295         _POSIX_VERSION.
2296         * refer/Makefile: Compile dirnamemax.c using -DHAVE_UNISTD_H
2297         rather than -DPATHCONF_MISSING.
2298         * Makefile: Get rid of PATHCONF_MISSING.
2299
2300         * refer/map.c: New file.
2301         * refer/index.c: Interface to mmap through map.c.  Rename map_size
2302         to map_len.
2303         * refer/Makefile: Handle map.c.
2304         * Makefile: Include -DHAVE_MMAP in OLDCFLAGS rather than CFLAGS.
2305
2306 Tue Jul 14 14:15:20 1992  James Clark  (jjc at jclark)
2307
2308         * Makefile: RANLIB should be `true' if there is no ranlib.
2309         * lib/Makefile (libgroff.a): Simplify.
2310         * driver/Makefile (libdriver.a): Simplify.
2311
2312         * Makefile: Change -DWAIT_COREDUMP_0200 to -DWCOREFLAG=0200.
2313         * groff.c (WCOREDUMP): Use WCOREFLAG.  Define only if not already
2314         defined.
2315
2316 Sat Jul 11 09:19:17 1992  James Clark  (jjc at jclark)
2317
2318         * troff/env.c (compare_ranges): Declare as extern "C".
2319
2320         * troff/input.c (init_registers): Use `struct tm' instead of `tm'.
2321
2322         * macros/tmac.s, macros/tmac.e: Change .nx /dev/null to .nx.
2323
2324 Wed Jul  8 11:52:27 1992  James Clark  (jjc at jclark)
2325
2326         * pic/troff.c (troff_output::text): Merge in grops_output::text,
2327         but conditionalize use of \X based on \*(.T.
2328         (grops_output::*): Deleted.
2329         * pic/output.h: Delete declaration of make_grops_output.
2330         * pic/main.c (main): Ignore -p and -x.  driver_extension_flag is 1
2331         by default. -n sets it to 0.
2332         (usage): Corresponding changes.
2333         * groff.c (main): Don't pass -x or -p to pic.
2334         * groff.sh: Likewise.
2335
2336         * ps/ps.c (ps_printer::do_exec, ps_printer::do_file): Force ndefs
2337         to be non-zero.
2338
2339         * ps/devps/afmtodit: Change calculation of asc_boundary and
2340         desc_boundary.  Make these bounds inclusive.
2341         * ps/devps: Regenerate font files.
2342
2343 Tue Jul  7 13:14:15 1992  James Clark  (jjc at jclark)
2344
2345         * macros/tmac.latin1: New file.
2346         * macros/tmac.tty-char: Use tmac.latin1.
2347         (tmac.tty-tr): Deleted.
2348         * macros/Makefile: Install tmac.latin1.
2349         * macros/tmac.dvi: Use tmac.latin1.
2350         * macros/troffrc: Translate \[char160] onto no-break space here.
2351         * macros/{tmac.dvi,tmac.ps,tmac.tty,tmac.X75}: Don't do it here.
2352
2353 Mon Jul  6 11:06:52 1992  James Clark  (jjc at jclark)
2354
2355         * macros/tmac.Xps: Use `do' request.
2356
2357         * macros/tmac.ps: Use `do' request.
2358
2359         * macros/tmac.e (@C): Use `do' request.
2360
2361         * macros/tmac.X, macros/tmac.Xps: Moved from xditview.
2362         * macros/Makefile: Install tmac.X*.
2363
2364         * tty/tmac.tty, tty/tmac.tty-char: Move to macros.
2365         * tty/Makefile: Don't install tmac.tty*.
2366         * macros/Makefile: Install tmac.tty*.
2367
2368         * dvi/tmac.dvi: Move to macros.
2369         * dvi/Makefile: Don't install tmac.dvi.
2370         * macros/Makefile: Install tmac.dvi.
2371
2372         * ps/tmac.ps*: Move to macros.
2373         * ps/Makefile: Don't install tmac.ps*.
2374         * macros/Makefile: Install tmac.ps*.
2375
2376         * eqn/box.c: Provide draw_lines parameter corresponding to -D
2377         option.
2378         * macros/eqnrc: Set draw_lines parameter based on device.
2379         * groff.c: Don't pass -D flag to eqn.
2380         * groff.sh: Likewise.
2381         * eqn/main.c: Warn about use of -D.
2382
2383         * troff/input.c (process_startup_file): New function.
2384         (main): Call process_startup_file().
2385         * macros/troffrc: New file.
2386         * macros/Makefile: Install troffrc.
2387         * groff.c (main): Don't pass extra -m option to troff. For a
2388         pseudo device pass the name of the pseudo device to troff using
2389         -d.
2390         * groff.sh: Likewise.
2391         * groff.c (possible_command::prepend_arg): Deleted.
2392
2393         * troff/input.c (do_request): New function.
2394         (init_input_requests): Bind "do" to do_request.
2395
2396         * eqn/main.c (main): Instead of loading eqnchar from device directory,
2397         load eqnrc from macro directory.
2398         * macros/eqnrc: New file.
2399         * macros/Makefile: Install eqnrc.
2400         * ps/devps/eqnchar: Deleted.
2401         * ps/devps/Makefile: Don't install eqnchar.
2402         * dvi/devdvi/eqnchar: Deleted.
2403         * dvi/devdvi/Makefile: Don't install eqnchar.
2404         * groff.c (main): Pass -M to eqn. Don't pass -F to eqn. New
2405         variable optM.
2406
2407         * lib/device.[ch]: New files.
2408         * lib/font.h (font::set_device_name, font::get_device_name):
2409         Deleted.
2410         * lib/fontfile.c: Use device.h.
2411         * lib/Makefile: Handle device.[ch]. Make paths.h define DEVICE.
2412         * troff/input.c: Delete definition of `device'.
2413         (main): Don't initialize device.
2414         * troff/troff.h: Include device.h rather than declaring device.
2415         * troff/Makefile: No need to handle DEVICE.
2416         * driver/input.c: Include device.h. Don't use
2417         font::{set,get}_device_name.
2418         * groff.c, Makefile: Rename device.h to config.h.
2419         * groff.c: Use library device variable.
2420         * eqn/main.c: Use library device variable.
2421         * eqn/Makefile: No need to handle DEVICE.
2422
2423         * lib/searchpath.[ch]: New files.
2424         * lib/Makefile: Handle searchpath.[ch].
2425         * troff/input.c (open_file, init_dirs): Deleted.
2426         (macro_dirs): Deleted.
2427         (open_mac_file, macro_source): Use class search_path.
2428         (add_string, struct string_list): Move definition.
2429         (main): Change -M option to use macro_path. Delete call to
2430         init_dirs().
2431         * lib/fontfile.c (font::command_line_font_dir, font::open_file):
2432         Rewrite to use class search_path.
2433         * lib/font.h, lib/fontfile.c (font::cl_font_dirs): Deleted.
2434         * lib/Makefile: fontfile.c depends on searchpath.h.
2435         * lib/Makefile: Rename fontpath.h to paths.h. Make paths.h define
2436         MACROPATH.
2437         * lib/macropath.[ch]: New files.
2438         * troff/Makefile: No need to handle MACROPATH.
2439
2440         * troff/input.c: Delete DUMP code.
2441         * lib/fontfile.c, lib/font.h: Delete
2442         font::forget_command_line_font_dirs.
2443
2444         * troff/input.c (push_token): New function.
2445         (handle_first_page_transition): Use push_token().
2446         (process_input_stack): Change handling of a space at the beginning
2447         of the line.
2448
2449 Sun Jul  5 17:11:09 1992  James Clark  (jjc at jclark)
2450
2451         * troff/input.c (font_dirs): Delete unused variable.
2452
2453         * eqn/lex.c (do_set): Correct error messages.
2454
2455 Sat Jul  4 10:20:55 1992  James Clark  (jjc at jclark)
2456
2457         * troff/input.c (do_define_string): Allow the string name to be
2458         followed immediately by a tab.
2459         (define_character): Likewise.
2460
2461 Thu Jul  2 10:59:15 1992  James Clark  (jjc at jclark)
2462
2463         * ps/ps.c (ps_printer::draw): When drawing an arc, don't allow k to
2464         be negative.
2465
2466         * troff/input.c (input_iterator::is_file): New virtual function.
2467         (file_iterator::is_file): New function.
2468         (input_stack::end_file): New function.
2469         (input_stack::next_file): Handle the situation where there is no
2470         file on the input stack correctly.  Avoid making two passes over
2471         the input stack.
2472         (next_file): Make the filename optional; in this case call
2473         input_stack::end_file().
2474
2475 Wed Jul  1 10:17:25 1992  James Clark  (jjc at jclark)
2476
2477         * dvi/tmac.dvi: Change the definitions of \(ul and _ so that they
2478         produce a real _ charater when the current font is CW and _
2479         otherwise.
2480
2481         * lib/errarg.c (errarg::errarg(const char *)): Invert conditional
2482         expression to work around gcc 2.2 bug.
2483
2484 Wed Jun 24 08:12:24 1992  James Clark  (jjc at jclark)
2485
2486         * eqn/main.c (main): Don't give an error if we can't find eqnchar.
2487
2488         * troff/env.c (environment::add_padding): New function.
2489         (environment::add_char): Use add_padding().
2490         (environment::space): Likewise.
2491         (environment::wrap_up_field): Add some padding if there is none
2492         and there's no current tab.
2493         * troff/env.h: Declare environment::add_padding.
2494
2495 Mon Jun 22 08:37:45 1992  James Clark  (jjc@jclark)
2496
2497         * pic/pic.y: undef fmod and rand before declaring them.
2498
2499 Sun Jun 14 11:40:18 1992  James Clark  (jjc@jclark)
2500
2501         * troff/input.c (main): If the DESC file specifies a font name of
2502         0, then leave the corresponding font position empty.
2503
2504         * nroff.sh: New file.
2505         * Makefile (install.nobin): Install nroff.sh.
2506
2507         * tty/devlatin1/R.proto: Add ao as synonym for de.
2508         * tty/tmac.tty-char: Define ao as o.
2509
2510         * tty/dev{ascii,latin1}/R.proto: Add aq.
2511         * tty/tmac.tty-char: Delete definition of aq.
2512
2513 Mon Jun  8 11:43:20 1992  James Clark  (jjc@jclark)
2514
2515         * troff/input.c (init_charset_table): Don't translate 0240.
2516         * ps/tmac.ps: Translate char160 to space.
2517         * dvi/tmac.dvi: Likewise.
2518         * tty/tmac.tty: Likewise.
2519
2520 Sun Jun  7 10:52:35 1992  James Clark  (jjc@jclark)
2521
2522         * dvi/tmac.dvi: Add support for all Latin-1 characters.
2523
2524         * macros/tmac.s: Delete definitions of \(rg, \(ah, \(ad, \(a-,
2525         \(ao, \(ac, \(ho, \(-D, \(Sd, \(TP, \(Tp, \(ss, \(AE, \(ae, \(OE,
2526         \(oe, \(r?, \(r!.
2527
2528         * tty/tmac.tty-char: Add \(ah.
2529
2530         * dvi/tmac.dvi: Add definitions of Tp, TP, Sd, -D, ho.
2531         No need to define \(FM and \(!/. Conditionalize all character
2532         definitions.
2533
2534         * ps/devps/lgreekmap: Add +h, +f, +p.
2535
2536         * ps/tmac.psnew: New file.
2537         * ps/Makefile: Install tmac.psnew.
2538
2539         * troff/input.c (charinfo_to_node_list): Don't ever interpret
2540         character definitions in compatible mode.
2541
2542         * troff/input.c (remove_character): New function.
2543         (init_input_requests): Bind remove_character to "rchar".
2544
2545         * ps/tmac.psold: New file.
2546         * ps/Makefile: Install tmac.psold.
2547         * ps/tmac.ps: Load tmac.psold. Move definitions of ISO Latin-1
2548         characters into tmac.psold.  Make these definitions unconditional.
2549
2550         * tty/tmac.tty-char: Define \n(_C only if it is not already defined.
2551
2552         * ps/tmac.ps: Don't define \('c and \('C.
2553
2554         * ps/devps/textmap: Move Greek characters to...
2555         * ps/devps/symbolchars:
2556
2557 Sat Jun  6 16:41:17 1992  James Clark  (jjc@jclark)
2558
2559         * ps/devps/text.enc: Add quotesingle.
2560         * ps/devps/textmap: Add +h, +f, +p, Fn, Bq, bq, aq, lz.
2561         * tty/tmac.tty-char: Likewise.
2562         * dvi/devdvi/texmi.map: Add +h, +f, +p.
2563         * dvi/devdvi/texi.map: Add Fn.
2564         * dvi/devdvi/msam.map: Add lz.
2565         * dvi/tmac.dvi: Handle Bq, bq, aq.
2566
2567         * pic/lex.c (get_token): Recognize 'th.
2568         * pic/map.y: Allow `expr'th in contexts where ORDINAL was allowed.
2569
2570 Fri Jun  5 11:20:46 1992  James Clark  (jjc@jclark)
2571
2572         * ps/devps/textmap: Move di, mu, +- to...
2573         * ps/devps/symbolchars:
2574
2575         * macros/tmac.s (@XS): Don't call par@reset or fi.
2576         (XA): Call LP. Turn off adjustment. Reduce line length.
2577
2578         * macros/tmac.s: Initially alias XS to LP.
2579         (XS): Rename to @XS.
2580         (cov*ab-init): Alias XS to @XS.
2581
2582 Thu Jun  4 09:12:05 1992  James Clark  (jjc@jclark)
2583
2584         * troff/token.h: Delete TOKEN_CHAR_HEIGHT, TOKEN_CHAR_SLANT,
2585         TOKEN_FONT_NAME, TOKEN_FONT_POSITION, TOKEN_SIZE tokens.
2586         (token::is_size, token::changes_env): Deleted.
2587         * troff/number.c (parse_term): No need to process \s explicitly.
2588         Call tok.next() only after scale indicator has been processed.
2589         * troff/input.c (do_overstrike, do_bracket): No need to process \s,
2590         \f etc explicitly.
2591         (token::next): Handle \s, \f, \S, \H immediately rather than
2592         returning them as tokens.
2593         (token::operator==, token::description, token::add_to_node_list,
2594         token::process): Remove handling of deleted tokens.
2595
2596         * troff/env.c (environment::add_char): When adding padding
2597         indicator character, call start_line() if necessary.
2598
2599 Wed Jun  3 09:55:50 1992  James Clark  (jjc@jclark)
2600
2601         * ps/devps/afmtodit: Don't output 0 kerns.
2602
2603         * ps/devps/afmtodit: Remove directory from name of encoding in
2604         font description file.
2605
2606         * ps/devps/afmtodit: Improve error messages.
2607
2608         * ps/devps/afmtodit: Allow DESC file to be specified with -d.
2609
2610         * ps/devps/Makefile: Incorporate FontMakefile. Rework.
2611         * ps/devps/FontMakefile: Deleted.
2612         * ps/devps/afmname: New file.
2613
2614         * ps/devps/symbol.sed: New file.
2615         * ps/devps/symbol.diff: Deleted.
2616         * ps/devps/FontMakefile: Generate symbol.afm using symbol.sed.
2617         Generate zapfdr.afm from zapfd.afm.
2618
2619         * tty/tmac.tty (tty-char): Prefix definition with ".
2620
2621         * macros/tmac.an (TP): Don't start a diversion if one has already
2622         been started.
2623
2624         * tty/tmac.tty-char: Add Latin-1 characters.
2625
2626         * tty/tmac.tty-char: Incorporate suggestions from Paul Eggert.
2627
2628 Tue Jun  2 00:54:34 1992  James Clark  (jjc@jclark)
2629
2630         * tbl/table.c (table::allocate): Delete old_vline, old_entry.
2631         Move declaration of struct horizontal_span.
2632
2633         * tbl/table.c (table::table): Initialize span_list.
2634         (table::~table): Delete span_list.
2635
2636         * lib/ptable.h (PTABLE(T)::~PTABLE(T)): Delete v.
2637
2638         * ps/devps/Makefile: Avoid dependency on GNU make.
2639
2640         * ps/tmac.ps: Check that character does not already exist before
2641         defining it.
2642
2643         * tty/tmac.tty: Add definitions of \(ff, \(!=, \(==, \(~=, \(sq,
2644         \(OE, \(oe, \(AE, \(ae, \(lh, \(rh. Delete definitions of \(en,
2645         \(ru, \(ul, \(br, \(bv, \(sl which are in the font description
2646         files.
2647
2648         * tty/tmac.tty-char: New file.
2649         * tty/Makefile: Install tmac.tty-char.
2650         * tty/tmac.tty: Move definitions of \(ua, \(da, \(uA, \(dA into
2651         tmac.tty-char.
2652
2653         * tty/tmac.tty: Fix definition of \(34.
2654
2655         * tty/dev{ascii,latin1}/R.proto: Add ha and ti. Map
2656         bracket-drawing characters onto |. Add *o.
2657
2658         * troff/env.c (environment::wrap_up_tab): Increment field_spaces
2659         only if current_field.
2660
2661         * troff/dictionary.c (dictionary::lookup): Free old_table after
2662         rehashing.
2663
2664 Mon Jun  1 10:15:22 1992  James Clark  (jjc@jclark)
2665
2666         * tty/dev{ascii,latin1}/R.proto: Add uppercase Greek characters
2667         whose glyphs are identical to glyphs of some Roman character.
2668
2669         * tty/devlatin1/R.proto (bu): Deleted.
2670         * tty/devascii/R.proto (bu): Deleted.
2671         * tty/tmac.tty: Add definition of \(bu.
2672
2673         * eqn/main.c (do_file): Pass FILE as argument.
2674         (main): Automatically load eqnchar.  New options -F and -n.
2675         Pass do_file an opened FILE.
2676         * groff.c: Don't pass eqnchar to eqn. Pass -F options onto eqn.
2677         No need to include font.h.
2678         * groff.sh: Likewise.  Don't need to use - for standard input.
2679         Prefix files with -- if first file starts with -.
2680
2681         * macros/tmac.e: Conditionalize use of \$* on \n(.g.
2682
2683         * troff/env.c (environment::possibly_break_line): Don't set line
2684         to 0 across call to output_line().  Don't call output_line() until
2685         after discarding nodes after break.
2686
2687 Sun May 31 10:45:29 1992  James Clark  (jjc@jclark)
2688
2689         * request.h (macro::empty): Declare it.
2690         * input.c (macro::empty): New method.
2691         (interpolate_macro):  Don't give a WARN_SPACE if the two-character
2692         macro is empty.
2693
2694 Sat May 30 10:27:15 1992  James Clark  (jjc@jclark)
2695
2696         * troff/env.c (environment::start_field): Decrement space_total
2697         when a space is frozen.
2698
2699 Fri May 22 14:34:38 1992  James Clark  (jjc@jclark)
2700
2701         * macros/tmac.an (R): Delete macro.
2702
2703         * troff/input.c (get_copy, token::next): Support \# (like \" but
2704         newline is ignored).
2705
2706         * troff/input.c (token::next): Fix error message in 'Y' case.
2707
2708 Thu May 21 09:26:24 1992  James Clark  (jjc@jclark)
2709
2710         * eqn/delim.c (define_extensible_string): Recognize any prefix of
2711         a delimiter name.
2712
2713 Fri May 15 10:20:41 1992  James Clark  (jjc at jclark)
2714
2715         * c++test.c: Include <osfcn.h>.
2716
2717         * lib/strtol.c, lib/getcwd.c, ps/psbb.c: Declare errno in case
2718         <errno.h> doesn't.
2719
2720 Fri May  8 09:37:19 1992  James Clark  (jjc at jclark)
2721
2722         * tbl/table.c (table::divide_span): Don't count column separation
2723         if expand was specified.
2724
2725         * tbl/main.c (process_format): Don't ignore width specs in
2726         continued format.  Give warning for changing equal widths or
2727         column separation in continued format.
2728         (process_data): Set column separation, minimum width, equal
2729         columns at end of table.
2730
2731 Thu May  7 08:50:40 1992  James Clark  (jjc at jclark)
2732
2733         * troff/node.c (kern_pair_node::add_discretionary_hyphen,
2734         node::add_discretionary_hyphen): Use soft_hyphen_char.
2735         (set_soft_hyphen_char): New function.
2736         (init_node_requests): Bind to shc.  Initialize soft_hyphen_char.
2737
2738         * Makefile (c++tested): Give more helpful message if test fails.
2739
2740 Tue May  5 10:58:39 1992  James Clark  (jjc at jclark)
2741
2742         * troff/input.c (init_charset_table): Translate 0240 to
2743         an unbreakable space.
2744
2745         * troff/token.h (token::hyphen_indicator): New function.
2746         * troff/charinfo.h (TRANSLATE_HYPHEN_INDICATOR): New special
2747         translation.
2748         * troff/input.c (translate): Allow translation to \%.
2749         * troff/node.c (node::add_char): Handle
2750         TRANSLATE_HYPHEN_INDICATOR.     
2751         (make_node): Don't allow TRANSLATE_HYPHEN_INDICATOR here.
2752
2753         * troff/input.c (init_charset_table): Don't set BREAK_AFTER flag
2754         for \(hy.
2755
2756         * tty/devlatin1/R.proto: \(hy and - should print as 055.
2757
2758 Tue Apr 21 09:24:42 1992  James Clark  (jjc at jclark)
2759
2760         * groff.c (run_commands): If the last command gets a SIGPIPE send
2761         a SIGPIPE to all children than haven't yet terminated.  When
2762         command terminates, set pid field to -1.
2763
2764 Fri Apr 17 11:20:48 1992  James Clark  (jjc at jclark)
2765
2766         * groff.c (main): Pass an appropriate -filename option to gxditview.
2767
2768 Thu Apr 16 15:11:40 1992  James Clark  (jjc at jclark)
2769
2770         * Makefile.bd (install): Remove existing program before copying.
2771
2772         * Makefile, */Makefile, Makefile.bd, groff.sh, groff.c: Allow
2773         programs which have Unix counterparts to be installed with
2774         user-specified prefix.
2775
2776         * troff/input.c (exit_troff): Don't check if exit_started.
2777         (exit_request): Don't call exit_troff if exit_started.
2778
2779         * Makefile.bd (install.mm): Rename to install.dwbmm.
2780
2781 Tue Apr 14 10:05:10 1992  James Clark  (jjc at jclark)
2782
2783         * driver/input.c (do_file): Add missing break for '#' case.
2784
2785 Mon Apr 13 10:11:02 1992  James Clark  (jjc at jclark)
2786
2787         * troff/input.c (input_stack::clear):  Clear past any boundaries and
2788         then add the boundaries back.
2789
2790         * troff/input.c (exit_troff): Return immediately if already
2791         exiting.
2792
2793         * macros/tmac.s (pg@end-text): New macro.  Use pg@end-text for the
2794         end macro.
2795         (pg*end-page): If the text has ended and there are no more
2796         footnotes or keeps, exit.
2797
2798         * macros/doc-ditroff (Lq, Rq): Define as \(lq and \(rq.
2799
2800         * troff/input.c (init_charset_table): Make \(rq transparent by
2801         default.
2802
2803         * macros/tmac.an: Define lq and rq strings.
2804
2805         * macros/tmac.s (Q, U): Define as \(lq and \(rq.
2806
2807 Sun Apr 12 12:54:37 1992  James Clark  (jjc at jclark)
2808
2809         * troff/env.c (environment::final_break): New function.
2810         (environment::newline): Set prev_line_interrupted to 2 if
2811         exit_started.
2812         * troff/env.h: Declare environment::final_break.
2813         * troff/input.c (exit_troff): Call environment::final_break()
2814         instead of environment::do_break().
2815
2816         * macros/Makefile: Install man.local if $(MACRODIR)/man.local
2817         doesn't already exist.
2818         * macros/man.local: New file.
2819         * macros/tmac.an: Load man.local.
2820         * macros/man.ultrix: New file.
2821
2822 Sat Apr 11 17:32:04 1992  James Clark  (jjc at jclark)
2823
2824         * troff/input.c (exit_groff): Rename to...
2825         (exit_troff): New function.
2826
2827         * troff/div.c (exit_started, done_end_macro,
2828         seen_last_page_ejector): New global variables.
2829         (began_page_in_end_macro): New static variable.
2830         (exit_flag): Deleted.
2831         (top_level_diversion::top_level_diversion): Initialize
2832         last_page_count.
2833         (top_level_diversion): More elaborate test for whether
2834         cleanup_and_exit() should be called.
2835         Set began_page_in_end_macro if the end macro isn't yet finished.
2836         * troff/div.h (top_level_diversion::last_page_count): New data
2837         member.
2838         (top_level_diversion::set_last_page): New function.
2839         (exit_started, done_end_macro, seen_last_page_ejector): Declare.
2840         * troff/env.c (do_break): Zero prev_line_interrupted.
2841         * troff/input.c (exit_flag): Delete declaration.
2842         (LAST_PAGE_EJECTOR): New magic cookie.
2843         (token::next): Handle LAST_PAGE_EJECTOR.
2844         (exit_groff): Set exit_started and done_end_macro instead of
2845         exit_flag.  Call top_level_diversion::set_last_page.  Push a
2846         LAST_PAGE_EJECTOR instead of calling push_page_ejector().  Do
2847         another ejection after setting seen_last_page_ejector.
2848
2849 Thu Apr  9 04:37:11 1992  James Clark  (jjc at jclark)
2850
2851         * etc/grog.sh, etc/grog.sh: Recognize -me sh macro.
2852
2853         * macros/tmac.e (TH): Make sure there's room for the initial
2854         header.
2855
2856         * macros/tmac.s (par@init): Make PD and DD at least \n(.V.
2857         Set FVS in points rather than units.
2858
2859 Mon Apr  6 11:21:32 1992  James Clark  (jjc at jclark)
2860
2861         * troff/div.c (top_level_diversion::add_trap): Don't consider the
2862         position of empty slots.
2863
2864 Fri Apr  3 10:46:45 1992  James Clark  (jjc at jclark)
2865
2866         * ps/devps/S: Fix height and depth of parenrightex.
2867         * ps/devps/symbol.diff: Regenerate.
2868
2869 Sat Mar 28 21:17:52 1992  James Clark  (jjc at jclark)
2870
2871         * tmac.e (u): Do underlining as in -mgs.
2872
2873 Fri Mar 27 09:23:44 1992  James Clark  (jjc at jclark)
2874
2875         * tty/tty.c (tty_printer::end_page): If overstriking is
2876         suppressed, still turn overstruck horizontal and vertical lines
2877         into +.
2878
2879         * lib/new.c: Back out Feb 24 change; no longer needed with gcc
2880         2.1.
2881
2882         * refer/label.y (format_expr::evaluate): Avoid use of %0*d.
2883
2884 Wed Mar 18 09:29:10 1992  James Clark  (jjc at jclark)
2885
2886         * Version 1.05 released.
2887
2888 Tue Mar 17 16:50:45 1992  James Clark  (jjc at jclark)
2889
2890         * tty/tty.c: Instead of keeping an array of glyphs and then
2891         sorting it, keep a ordered linked list of glyphs for each line.
2892
2893         * driver/driver.h: Include stddef.h.
2894
2895         * tty/tty.c (compare_glyph):
2896         * refer/refer.c (rcompare):
2897         * troff/env.c (compare_ranges): Arguments of qsort comparison
2898         function should be const void *.
2899
2900         * troff/number.c (parse_term):
2901         * dvi/dvi.c (draw_dvi_printer::draw): Avoid initialization in
2902         switch statement.
2903
2904         * refer/label.y (consider_authors): Don't access variables
2905         constructed under a condition outside that condition: put braces
2906         round for statement containing declaration; redeclare use of same
2907         variable later.
2908
2909         * pic/pic.y (text_expr): Delete production that allows
2910         parenthesised text_expr.
2911         (expr): Allow a conditional_expr to appear in parentheses.
2912         (conditional_expr): Rename to any_expr.
2913
2914         * mm: Install new version 1.01 from jh.
2915
2916         * lib/font.c (font::get_width): Cache scaled widths.
2917         (font::font): Initialize widths_cache.
2918         (font::~font): Destroy widths_cache.
2919         * lib/font.h: Add font::widths_cache. Declare font_widths_cache.
2920
2921 Mon Mar 16 10:16:10 1992  James Clark  (jjc at jclark)
2922
2923         * c++test.c, c++test.ref: New files.
2924         * Makefile: Check that the C++ compiler works.
2925
2926         * ps/tmac.pspic (PSPIC): Do a break.
2927
2928         * ps/tmac.ps: Move definition of PSPIC into...
2929         * ps/tmac.pspic: New file.
2930         (PSPIC): Draw box around picture, but make it invisible to grops.
2931         * ps/tmac.ps: Load tmac.pspic.
2932         * ps/Makefile: Install tmac.pspic.
2933
2934 Sun Mar 15 14:18:08 1992  James Clark  (jjc at jclark)
2935
2936         * lib/font.c (scale_round): If n is negative,
2937         subtract .5 before truncating floating point result.
2938
2939         * lib/fontfile.c: Include <errno.h>.
2940
2941 Tue Mar 10 14:17:03 1992  James Clark  (jjc at jclark)
2942
2943         * driver/input.c (get_char): Inline. Don't update current_lineno.
2944         Change callers to up date current_lineno if necessary.
2945         Use get_char() instead of getc(current_file).
2946
2947 Sun Mar  8 18:05:28 1992  James Clark  (jjc at jclark)
2948
2949         * ps/tmac.ps: Fix up spacing of \(mo and \(nm.
2950
2951 Fri Mar  6 19:38:58 1992  James Clark  (jjc at jclark)
2952
2953         * tty/tty.c (tmac.tty): Define \(rg as (R).
2954
2955 Tue Mar  3 10:11:25 1992  James Clark  (jjc at jclark)
2956
2957         * lib/lib.h: New define a_delete.
2958         * Use a_delete instead of delete when deleting an array of objects
2959         without destructors.
2960
2961         * lib/lib.h: Rename adelete to ad_delete.
2962         * Change uses of adelete.
2963
2964 Mon Mar  2 12:41:05 1992  James Clark  (jjc at jclark)
2965
2966         * eqn/eqn.y: Include lib.h.
2967
2968         * troff/node.c (grow_font_table): Delete old_font_table.
2969
2970         * mm: Install new version from jh.
2971
2972 Fri Feb 28 10:42:23 1992  James Clark  (jjc at jclark)
2973
2974         * tbl/table.h (format_type): Make global instead of local to class
2975         entry_format.  Prefix enumerators with FORMAT_.
2976         * tbl/table.c, tbl/main.c: Corresponding changes.
2977         * refer/token.h (token_type): Make global.  Prefix enumerators
2978         with TOKEN_.
2979         * refer/token.[ch]: Corresponding changes.
2980         * Makefile: Get rid of -DNO_NESTED_TYPES configuration option.
2981
2982         * troff/div.c (node::set_vertical_size): Don't name argument.
2983
2984 Thu Feb 27 10:29:19 1992  James Clark  (jjc at jclark)
2985
2986         * Makefile: New configuration option ARRAY_DELETE_NEEDS_SIZE.
2987         * lib/lib.h: Define adelete accordingly.
2988         * pic/object.c (graphic_object::graphic_object):
2989         * tbl/main.c (format::~format):
2990         * tbl/table.c (table::~table):
2991         * refer/ref.c (reference::~reference, reference::merge,
2992         reference::insert_field, reference::delete_field): Use adelete.
2993
2994         * Makefile: Change NESTED_TYPES to NO_NESTED_TYPES.
2995         * refer/token.h:
2996         * tbl/table.h: Corresponding changes.
2997
2998         * common.c (common_output::dashed_arc, common_output::dotted_arc):
2999         Ensure total_angle is positive.
3000
3001 Wed Feb 26 08:49:26 1992  James Clark  (jjc at jclark)
3002
3003         * refer/ref.c (reference::merge, reference::insert_field,
3004         reference::delete_field): Avoid delete[0].
3005
3006         * refer/token.c (init_special_chars): Move calls to cmupper
3007         outside calls to init_two_char_letter to work around bug in gcc
3008         2.0.
3009
3010 Mon Feb 24 14:20:00 1992  James Clark  (jjc at jclark)
3011
3012         * lib/new.c (operator new): Use __builtin_new for g++.
3013
3014         * pic/object.c (graphic_object::~graphic_object):  Don't use
3015         delete [] on 0.
3016
3017         * pic/object.c (output::compute_scale): Initialize max_width and
3018         max_height.
3019
3020 Sat Feb 15 09:55:20 1992  James Clark  (jjc at jclark)
3021
3022         * troff/input.c (write_request): Call fflush.
3023
3024         * troff/node.h (class composite_node): Move declaration to node.c
3025         * troff/input.c (charinfo_to_node): Rename to ...
3026         (charinfo_to_node_list): Return node list rather than composite
3027         node.
3028         * troff/node.c (make_composite_node): New function.
3029         (make_node, add_char): Call make_composite_node instead of
3030         charinfo_to_node.
3031         (class composite_node): Add a tfont * member.  Delete font_size
3032         member.
3033         (composite_node::composite_node, composite_node::copy,
3034         composite_node::size): Corresponding changes.
3035         (composite_node::tprint): Provide constant spacing, emboldening
3036         and track kerning as specified in tfont.
3037         (composite_node::width): Change width calculation accordingly.
3038         * troff/env.h (environment::composite): New member.
3039         (environment::is_composite, environment::set_composite): New
3040         functions.
3041         * troff/env.c (environment::environment): Initialize composite.
3042         * troff/input.c (charinfo_to_node): Call
3043         environment::set_composite.
3044         * troff/node.c (make_composite_node, make_glyph_node): Use the
3045         plain version of the tfont if the environment is composite.
3046
3047         * troff/node.c (font_info::get_space_width): Additional argument
3048         giving space_size.  Handle constant space correctly. Scale by
3049         space_size unless constant spaced.
3050         (env_sentence_space_width): New function.
3051         * troff/node.h: Declare it.
3052         * troff/env.h (environment::get_space_size,
3053         environment::get_sentence_space_size,
3054         environment::get_narrow_space_width,
3055         environment::get_half_narrow_space_width): Make inline.
3056         (environment::get_space_width): Make inline.  Just call
3057         env_space_width.
3058         * troff/env.c: Delete definitions for funtions made inline.
3059         (environment::space_newline, environment::space): Use
3060         env_sentence_space_width(). Don't scale by space_size.
3061         * troff/node.h: Move declarations of env*space_width() functions
3062         into env.h.
3063
3064 Sat Feb  8 09:30:22 1992  James Clark  (jjc at jclark)
3065
3066         * macros/tmac.s (PS): Don't try to set negative indent.
3067
3068 Thu Feb  6 09:00:35 1992  James Clark  (jjc at jclark)
3069
3070         * pic/pic.y: Fix min function.
3071
3072 Tue Jan 28 07:52:29 1992  James Clark  (jjc at jclark)
3073
3074         * man/mdate.sh: Clear LANGUAGE.
3075
3076 Sun Jan 19 13:02:41 1992  James Clark  (jjc at jclark)
3077
3078         * pic/pic.y, pic/lex.c: Rename COMMAND token to COMMAND_LINE.
3079         * pic/lex.c: New COMMAND keyword.
3080         * pic/pic.y (print_args, print_arg): New rules.
3081         (placeless_element): Use print_args for PRINT.
3082         New COMMAND element.
3083
3084 Tue Jan  7 13:14:31 1992  James Clark  (jjc at jclark)
3085
3086         * troff/input.c (terminal): Handle missing argument correctly.
3087
3088         * pic/pic.y (text_expr): New rule.
3089
3090         * pic/pic.y: Implement := operator.
3091
3092 Sun Jan  5 10:23:02 1992  James Clark  (jjc at jclark)
3093
3094         * etc/grog.pl, etc/grog.sh: Distinguish old and new versions of
3095         mdoc.
3096
3097 Sat Jan  4 14:42:26 1992  James Clark  (jjc at jclark)
3098
3099         * ps/devps/dingbatsrmap: Include this in the distribution.
3100
3101         * macros/tmac.doc: Replace with new version from 2nd Networking
3102         Release. Fix loading of doc-* files.
3103         * macros/{doc-common,doc-ditroff,doc-nroff,doc-syms}: New files.
3104         * macros/tmac.doc.old: New file.  Apply fixes that had been
3105         applied to old tmac.doc.
3106         * macros/tmac.andoc: Check that we're running under groff.
3107         * macros/Makefile: Rework.
3108
3109 Fri Jan  3 13:27:51 1992  James Clark  (jjc at jclark)
3110
3111         * tbl/table.h (format_type):
3112         * refer/token.h (token_type): If NESTED_TYPES is defined, use
3113         typedef to make these types visible at file scope.
3114         * Makefile: Add NESTED_TYPES configuration option.
3115
3116         * troff/div.c (mark): At the top level use the value of
3117         nl_reg_contents rather than the current vertical position.
3118
3119 Thu Jan  2 10:34:51 1992  James Clark  (jjc at jclark)
3120
3121         * tty/tty.c: Implement \D for horizontal or vertical lines.
3122         (tty_printer::set_char): Use vec_used+2 as serial number.
3123         Don't allow size of vector to exceed USHRT_MAX-2.
3124         Split off part into...
3125         (tty_printer::add_char): New function.
3126         (tty_printer::draw): New function.
3127         (compare_glyph): Handle equal serial numbers.
3128         (tty_printer::end_page): Handle overstruck characters from \D.
3129         (main, usage): Implement -d option.
3130
3131 Mon Dec 23 10:37:51 1991  James Clark  (jjc at jclark)
3132
3133         * tbl/main.c (process_format):
3134         * eqn/text.c (split_text):
3135         * troff/input.c (token::next): Use inner block for declarations
3136         with initializers in switch statement.
3137
3138 Mon Dec 16 20:52:03 1991  James Clark  (jjc at jclark)
3139
3140         * pic/common.c (common_output::dash_line): Cope with zero-length
3141         lines.
3142
3143 Sun Nov 17 12:04:08 1991  James Clark  (jjc at jclark)
3144
3145         * Version 1.04 released.
3146
3147 Wed Nov 13 05:27:21 1991  James Clark  (jjc at jclark)
3148
3149         * macros/tmac.an (TH): Define a macro an-init to define variables
3150         based on command line arguments.
3151         (an-header): Call it.
3152
3153 Sun Nov  3 12:07:34 1991  James Clark  (jjc at jclark)
3154
3155         * Makefile (install.mm): Rename to install.dwbmm.
3156
3157         * Makefile: Integrate mm.
3158         * mm: New directory.
3159
3160 Wed Oct 30 10:11:34 1991  James Clark  (jjc at jclark)
3161
3162         * refer/dirnamemax.c: If PATHCONF_MISSING is defined, include
3163         <sys/types.h>.
3164
3165         * pic/troff.c (troff_output::simple_spline,
3166         troff_output::simple_polygon): Rename variable `v' to `d' to avoid
3167         shadowing parameter.
3168
3169         * lib/tmpfile.c (xtmpfile): Declare dir as const char *.
3170
3171         * lib/ptable.h: Add explicit casts when converting from unsigned
3172         long to unsigned.
3173
3174         * dvi/devdvi/{SA,SB,msam.map,msbm.map}: New files.
3175         * dvi/devdvi/Makefile: Install SA, SB.
3176
3177         * refer/indxbib.c: Add declaration of mktemp.
3178
3179         * refer/lookbib.c: Add declaration of isatty.
3180
3181 Fri Oct 25 09:00:17 1991  James Clark  (jjc at jclark)
3182
3183         * pic/lex.c (interpolate_macro_with_args):  While collecting
3184         arguments, keep track of whether we're in a string.
3185
3186 Wed Oct 23 08:42:48 1991  James Clark  (jjc at jclark)
3187
3188         * ps/tmac.ps (PSPIC): Do the .sp after the \X, and move the \X
3189         down with \v, so as to avoid problems with top of page trap
3190         setting no space mode.
3191
3192 Tue Oct 22 17:38:49 1991  James Clark  (jjc at jclark)
3193
3194         * eqn/lex.c (get_delimited_text): Allow tab before macro body.
3195
3196 Tue Oct 15 17:24:53 1991  James Clark  (jjc at jclark)
3197
3198         * ps/psrm.c (ps_get_line): Fix bug when lines longer than 255.
3199         Improve error message.
3200
3201 Fri Oct 11 11:09:38 1991  James Clark  (jjc at jclark)
3202
3203         * ps/psrm.c (print_ps_string): Don't pass negative numbers to
3204         printf("%03o");
3205
3206 Wed Oct  9 17:50:14 1991  James Clark  (jjc at jclark)
3207
3208         * groff.c (possible_command::execp): Always use _exit() after a
3209         failed exec.
3210
3211         * Makefile: Add HAVE_UNION_WAIT, HAVE_PID_T, WAIT_COREDUMP_0200,
3212         NO_SYS_WAIT_H   configuration options.
3213         * groff.c: Use these options.  Use POSIX-style macros to extract
3214         fields from the status returned by wait().
3215
3216 Fri Oct  4 12:12:27 1991  James Clark  (jjc at jclark)
3217
3218         * tbl/table.c (table::compute_separation_factor): Allow the
3219         separation factor to drop to 0.
3220
3221 Tue Oct  1 18:12:38 1991  James Clark  (jjc at jclark)
3222
3223         * refer/search.c: Include <errno.h>.
3224
3225 Sun Sep 29 08:40:57 1991  James Clark  (jjc at jclark)
3226
3227         * pic/pic.y (YYDEBUG): Don't define for Borland C++.
3228
3229         * lib/lib.h: #ifdef out declarations of itoa and iftoa for Borland
3230         C++.
3231
3232         * pic/lex.c (input_stack::bol): Move definition out of class body.
3233
3234         * pic/main.c: On MSDOS munge argv[0].
3235
3236         * lib/ptable.h: Define name2 as _Paste2 for Borland C++.
3237
3238         * lib/ptable.c (hash_string): Use unsigned long rather than
3239         unsigned.
3240         (next_ptable_size): Use unsigned rather than int.  Give an error
3241         message if we've hit the largest table size.
3242         * lib/ptable.c: Corresponding changes.  Also use unsigneds for the
3243         table size.
3244
3245         * pic/object.h (object_spec): Make flags unsigned long.  Declare
3246         flags as const unisgned long rather than as enums.
3247
3248         * pic/output.c: Deleted.
3249
3250         * pic/troff.c (troff_output::simple_ellipse): Remove spurious %.
3251
3252         * tbl/table.c (simple_entry::note_double_vrule_on_{left,right}):
3253         Add additional argument.
3254         (line_entry::note_double_vrule_on_{left,right}): Set value of
3255         douvle_vrule_on_{right,left} flag according to argument.
3256         (simple_line_entry::simple_print,
3257         simple_line_entry::double_line_print): If adjacent to double vrule
3258         on a corner extend rather than shorten the rule by half the double
3259         vrule sep.
3260
3261         * troff/number.c (parse_term): In checking for overflow, handle the
3262         case where the current horizontal position is negative.
3263
3264 Thu Sep 12 08:26:09 1991  James Clark  (jjc at jclark)
3265
3266         * pic/object.c (draw_arrow): Check for object having zero length.
3267
3268 Wed Sep 11 10:32:38 1991  James Clark  (jjc at jclark)
3269
3270         * eqn/main.c (do_file): Split off inline equation handling into...
3271         (inline_equation): New function.  Search for starting delimiter
3272         using...
3273         (delim_search): New function. Don't recognize a delimiter that
3274         occurs in the name of an escape sequence, number register, string
3275         etc.
3276
3277 Tue Sep 10 04:01:11 1991  James Clark  (jjc at jclark)
3278
3279         * eqn/delim.c (delim_box::compute_metrics): Don't call
3280         define_extensible_string if left is 0.
3281         (delim_box::output):  Don't print the left delimiter if left is 0.
3282         (delim_box::debug_print): Check for left == 0 before calling printf.
3283
3284 Fri Aug 23 13:02:30 1991  James Clark  (jjc at jclark)
3285
3286         * troff/Makefile (majorminor.c): Include only digits in
3287         minor_version.
3288
3289 Thu Aug 22 09:35:37 1991  James Clark  (jjc at jclark)
3290
3291         * refer/dirnamemax.c: new file.
3292         * refer/genlimits.c: Deleted.
3293         * refer/indxbib.c (main): Use dir_name_max() instead of NAME_MAX.
3294         Don't check path length.
3295         * refer/Makefile: Add dir_name_max.o; delete genlimits.
3296         * Makefile: Add PATHCONF_MISSING option.
3297
3298         * refer/indxbib.c (get_cwd): New function.
3299         (main): Use get_cwd().
3300         * lib/getcwd.c: New file.
3301         * Makefile: Delete -DHAVE_GETWD. Include GETCWD variable. Pass
3302         GETCWD in SUBFLAGS.
3303         * lib/Makefile: Compile getcwd.o.
3304
3305         * ps/tmac.psatk (psatk-defs): Define showpage after pushing
3306         userdict.
3307
3308         * refer/indxbib.c (main): Check success of mktemp.
3309
3310         * lib/tmpfile.c: New file.
3311         * lib/Makefile: Add tmpfile.c.
3312         * lib/lib.h: Declare xtmpfile(); include <stdio.h>.
3313         * ps/ps.h: Delete declaration of mktemp().
3314         * ps/ps.c (ps_printer::ps_printer): Use xtmpfile().
3315         * refer/refer.c (divert_to_temporary_file): Use xtmpfile().
3316         * driver/driver.h: No need now to include errno.h.
3317
3318         * everywhere: Set errno to 0 before calling fopen().
3319
3320         * eqn/eqn.h, etc/soelim.c, driver/driver.h, etc/addftinfo.c,
3321         dvi/tfmtodit.c, groff.c, refer/index.c, refer/linear.c,
3322         refer/lookbib.c, refer/refer.h, ps/psbb.c: Include <errno.h>.
3323
3324 Mon Aug 19 10:52:18 1991  James Clark  (jjc at jclark)
3325
3326         * troff/env.h (translate_space_to_dummy): Declare it.
3327         * troff/env.c (environment::space_newline, environment::space):
3328         If translate_space_to_dummy is set then make the width of spaces 0.
3329         * troff/input.c (translate): If the second character of a
3330         translation is a space, translate to unbreakable space.  If the
3331         first character is a space, set or clear translate_space_to_dummy
3332         according to whether the second character is \&.  Weird!
3333
3334 Tue Jul 30 10:03:56 1991  James Clark  (jjc at jclark)
3335
3336         * groff.c (run_commands): Don't use non-zero exit code because a
3337         command gets SIGPIPE.
3338
3339         * groff.c, groff.sh: Use -mXps with -TXps.
3340
3341         * ps/ps.c (ps_printer::special): Move call to flush_sbuf() into...
3342         (ps_printer::do_exec, ps_printer::do_file, ps_printer::do_def,
3343         ps_printer::do_mdef, ps_printer::do_import): Call flush_sbuf().
3344         (ps_printer::special): New specials invis and endinvis.
3345         (ps_printer::do_invis, ps_printer::do_endinvis): New functions.
3346         (ps_printer::set_char, ps_printer::draw): Return if invis_count>0.
3347         (ps_printer::end_page): Check that invis_count == 0.
3348         (ps_printer::invis_count): New member.
3349         (ps_printer::ps_printer): Initialize invis_count to 0.
3350
3351         * troff/env.c (environment::hyphenate_line): Hyphenation
3352         indicator at beginning of word inhibits splitting after -, \(em
3353         etc.
3354
3355         * pic/pic.y (element): Allow another element to follow } without
3356         any intervening separator.
3357
3358 Mon Jul 22 12:27:37 1991  James Clark  (jjc at jclark)
3359
3360         * pic/lex.c (get_delimited): Allow tabs before delimiter.
3361
3362 Wed Jul 17 10:59:08 1991  James Clark  (jjc at jclark)
3363
3364         * groff.c: Get rid of HAVE_UNION_WAIT stuff.  Instead suppress
3365         declaration of wait() in header files.
3366         * Makefile: Get rid of -DHAVE_UNION_WAIT.
3367
3368         * tbl/table.c (alphabetic_text_entry::add_tab): New function.
3369
3370         * lib/lib.h: Declare return type of strerror as char *.
3371
3372         * man/Makefile: Add g flag to sed substitutions.
3373         * Makefile (shgroff, bindist): Likewise.
3374
3375 Sun Jul 14 11:57:02 1991  James Clark  (jjc at jclark)
3376
3377         * ps/ps.c (ps_printer::do_import): Move push of userdict into...
3378         * ps/devps/prologue (PBEGIN): Define showpage after pushing
3379         userdict.
3380
3381 Sat Jul 13 20:53:04 1991  James Clark  (jjc at jclark)
3382
3383         * ps/devps/prologue (PBEGIN): Zap any definition of showpage in
3384         userdict.
3385
3386 Fri Jul 12 07:10:09 1991  James Clark  (jjc at jclark)
3387
3388         * man/mdate.sh: Handle the fact that BSD ls -l does not print the
3389         group.
3390
3391 Sun Jul  7 08:00:23 1991  James Clark  (jjc at jclark)
3392
3393         * troff/input.c (define_number_reg):  If currently undefined,
3394         don't define it if the argument is an invalid expression.
3395
3396         * Makefile: Ignore return value of `if' commands without `else'
3397         parts.
3398
3399         * Makefile: Split up CPPDEFINES into a series of separate
3400         configuration options.
3401
3402         * troff/input.c (init_registers): Use time_t instead of long
3403         unless LONG_FOR_TIME_T is defined.  Use returned result rather
3404         than passing pointer.
3405         * Makefile: Document LONG_FOR_TIME_T as a CPPDEFINE.
3406
3407         * lib/Makefile (fontpath.h): Use gendef.
3408
3409 Thu Jul  4 09:48:05 1991  James Clark  (jjc at jclark)
3410
3411         * troff/input.c (input_iterator::shift): Delete argument name.
3412         * troff/node.c (suppress_output_file::really_begin_page,
3413         suppress_output_file::really_transparent_char, node::ascii_print,
3414         node::tprint): Delete names of unused arguments.
3415
3416 Wed Jul  3 17:34:57 1991  James Clark  (jjc at jclark)
3417
3418         * refer/label.y (string):  Pass $4 to command_error.
3419
3420 Tue Jul  2 15:06:01 1991  James Clark  (jjc at jclark)
3421
3422         * Version 1.03 released.
3423
3424 Sat Jun 29 08:14:01 1991  James Clark  (jjc at jclark)
3425
3426         * Makefile: Pass definition of SHELL in SUBFLAGS.
3427
3428         * gendef: New file.
3429         * Makefile, eqn/Makefile, refer/Makefile, troff/Makefile,
3430         ps/Makefile: Use gendef to construct header files that are
3431         constructed from the Makefile.
3432
3433         * macros/Makefile: make all should build stripped version of tmac.e.
3434
3435         * refer/Makefile (clean): Remove y.output.
3436
3437 Fri Jun 28 09:44:36 1991  James Clark  (jjc at jclark)
3438
3439         * ps/pfbtops.c (main): Add -v option which prints out a version
3440         number.
3441         * ps/Makefile (pfbtops): Link with libgroff.a.
3442
3443 Fri Jun 21 07:43:23 1991  James Clark  (jjc at jclark)
3444
3445         * refer/search.h (linear_searcher::get_nkeys): Delete declaration.
3446         * refer/linear.c (linear_searcher::get_nkeys): Delete definition.
3447
3448         * refer/lkbib.c (main): Always terminate reference with blank
3449         line.
3450         * refer/lookbib.c (main): Likewise.
3451
3452         * refer/linear.c (file_buffer::load): Check that the file is not a
3453         binary file.
3454
3455         * refer/Makefile (genlimits): Possibly add -DHAVE_SYS_DIR_H.
3456         (genlimits.c): Include <sys/dir.h> if HAVE_SYS_DIR_H is defined.
3457         Delete second inclusion of <sys/param.h>.
3458
3459 Tue Jun 18 01:32:26 1991  James Clark  (jjc at jclark)
3460
3461         * troff/token.h (token::special): Deleted.
3462
3463         * tbl/main.c (process_format): Rework so that opt->tab_char is
3464         recognized only when appropriate.
3465
3466         * ps/Makefile (clean): Remove pfbtops.
3467
3468 Sun Jun 16 09:37:19 1991  James Clark  (jjc at jclark)
3469
3470         * lib/font.c (text_file::next): Don't return if we have got a
3471         blank line.
3472
3473 Fri Jun 14 09:52:26 1991  James Clark  (jjc at jclark)
3474
3475         * refer/refer.c (store_reference): Get hash code from old_table[i]
3476         when rehashing the table.
3477
3478 Thu Jun 13 01:26:43 1991  James Clark  (jjc at jclark)
3479
3480         * eqn/box.c (box::top_level): Save size and prev size using \R and
3481         restore it afterwards. Set the size to the size at the beginning
3482         of the line.
3483         * eqn/pbox.h: Declare SAVED_INLINE_PREV_SIZE_REG,
3484         SAVED_INLINE_SIZE_REG, and SAVED_SIZE_REG.
3485
3486         * refer/Makefile (limits.h): Use ./genlimits.
3487
3488 Wed Jun 12 16:05:34 1991  James Clark  (jjc at jclark)
3489
3490         * refer/index.c: Delete declarations of stat() and fstat().
3491
3492 Tue Jun 11 14:52:49 1991  James Clark  (jjc at jclark)
3493
3494         * tty/tmac.tty: Add character definitions for \(>= and \(<=.
3495
3496 Mon Jun 10 22:49:48 1991  James Clark  (jjc at jclark)
3497
3498         * etc/grog.sh, etc/grog.pl: Change regex for .PS.
3499
3500 Fri Jun  7 09:13:06 1991  James Clark  (jjc at jclark)
3501
3502         * troff/input.c (token::get_char): Handle \e.
3503
3504         * refer/linear.c: Delete declarations of fstat() and stat().
3505
3506 Wed Jun  5 09:11:59 1991  James Clark  (jjc at jclark)
3507
3508         * troff/node.c, troff/env.c, troff/input.c, Makefile: Remove
3509         OP_DELETE_BROKEN stuff, since we now have a fix for g++.
3510
3511 Mon Jun  3 13:41:32 1991  James Clark  (jjc at jclark)
3512
3513         * troff/input.c (do_define_macro): Improve error handling for end
3514         of file while defining macro.
3515
3516 Sun Jun  2 10:20:24 1991  James Clark  (jjc at jclark)
3517
3518         * eqn/box.h: Fix declaration of set_gsize.
3519         * eqn/box.c (set_gsize): Make argument const char *.
3520         (gsize): Declare as char *.
3521         * eqn/main.c (main): Don't convert gsize to int.
3522         * eqn/lex.c (do_gsize): Pass char * to set_gsize.
3523
3524         * Version 1.02 released.
3525
3526 Sat Jun  1 12:19:46 1991  James Clark  (jjc at jclark)
3527
3528         * macros/tmac.andoc: New file.
3529         * macros/Makefile: Install tmac.andoc.
3530
3531         * troff/node.c, troff/env.c, troff/input.c: Conditionalize use of
3532         operator new and delete on OP_DELETE_BROKEN not being defined.
3533         * Makefile: Mention OP_DELETE_BROKEN.
3534
3535 Mon May 27 13:49:07 1991  James Clark  (jjc at jclark)
3536
3537         * Makefile (bindist): Pass SUBFLAGS.
3538
3539 Sun May 26 14:13:22 1991  James Clark  (jjc at jclark)
3540
3541         * Makefile, groff.c: Pass definitions to groff.c via device.h.
3542
3543         * tty/tty.c (tty_font::load_tty_font): Avoid shadowing
3544         parameter.
3545
3546         * ps/Makefile, ps.c: Pass BROKEN_SPOOLER_FLAGS via broken.h.
3547
3548         * ps/ps.h, ps/psrm.c: Make comment_table and
3549         header_comment_table local to resource_manager::process_file.
3550
3551         * groff.sh: With -TXps pass -printCommand option to gxditview.
3552
3553         * groff.c (possible_command::print): Implement using
3554         append_arg_to_string.
3555
3556         * xditview: Merge in new implementation with own ChangeLog.
3557
3558 Sat May 25 18:33:20 1991  James Clark  (jjc at jclark)
3559
3560         * groff.c (main): Implement PRINT_OPTION.
3561         (append_arg_to_string): New command.
3562         (device_table): Set PRINT_OPTION flag for Xps.
3563
3564 Fri May 24 09:48:58 1991  James Clark  (jjc at jclark)
3565
3566         * troff/groff.h: Rename to troff.h.
3567
3568         * pic/lex.c (lookup_keyword, docmp): New functions.
3569         (get_token): Use new lookup_keyword.
3570         Don't include key.h.
3571         * pic/key.[ch], pic/pic.gperf: Deleted.
3572         * pic/Makefile: Remove gperf stuff.
3573
3574         * pic/Makefile, pic/output.h: Move definition of TEX_SUPPORT
3575         into output.h.
3576         * pic/tex.c: Move include of pic.h before test of TEX_SUPPORT.
3577
3578         * troff/Makefile, troff/node.c: Move definition of
3579         STORE_WIDTH into node.c.
3580
3581         * etc/grog.pl, etc/grog.sh: Support -mdoc.
3582
3583 Thu May 23 12:30:49 1991  James Clark  (jjc at jclark)
3584
3585         * dvi/devdvi/texr.map, dvi.devdvi/texi.map,
3586         dvi/devdvi/texb.map: Add lq and rq.
3587         dvi/devdvi: Regenerate fonts.
3588         * ps/devps/textmap: Add lq and rq.
3589         * ps/devps: Regenerate fonts.
3590         * tty/devascii/R.proto, tty/devlatin1/R.proto: Add lq and rq.
3591         * macros/tmac.e: Define \*(lq and \*(rq to be \(lq and \(rq.
3592
3593         * pic/object.c (position_rectangle): When checking radius
3594         cope with possiblity that width or height is negative.
3595         (box_object::box_object): Have separate xrad and yrad with
3596         signs matching signs of dim components.
3597         (box_object::{north,south}_{east,west}): Use xrad and yrad.
3598         (box_object::print): With rounded boxes use absolute values
3599         for dim and rad arguments.
3600
3601         * lib/Makefile, lib/fontfile.o: Pass definition of FONTPATH
3602         in fontpath.h.
3603
3604         * eqn/Makefile, eqn/main.c: Pass definition of DEVICE in device.h.
3605
3606         * various files: Add explicit destructors to keep Saber CC +d
3607         happy.
3608
3609 Wed May 22 11:37:11 1991  James Clark  (jjc at jclark)
3610
3611         * eqn/box.c (box::top_level): Restore fonts correctly after
3612         font changes in line containing inline equation.  Also
3613         restore previous font as well as current font.
3614         * eqn/pbox.h: Define necessary string and register names.
3615
3616         * troff/input.c (token::next): Case 'R' calls do_register.
3617         (do_register): New function.
3618
3619 Tue May 21 11:28:23 1991  James Clark  (jjc at jclark)
3620
3621         * groff.c, groff.sh: Support Xps device.  Allow each device
3622         to have a pseudo_name and a real_name.
3623
3624         * groff.c (run_commands): Don't print `Broken pipe' messages.
3625
3626         * ps/pfbtops.c: New file.
3627         * ps/Makefile: Add pfbtops.
3628
3629         * troff/number.c (parse_term): Improved error message.
3630
3631 Mon May 20 11:22:14 1991  James Clark  (jjc at jclark)
3632
3633         * groff.c, groff.sh, etc/grog.sh, etc/grog.pl: Support grefer.
3634
3635         * Makefile: Integrate refer.
3636         * refer: New directory.
3637         * man/grefer.man, man/glookbib.man, man/gindxbib.man,
3638         man/lkbib.man: New files.
3639         * man/Makefile: Support refer man pages.
3640
3641         * lib/lib.h: Declare is_prime.
3642         * lib/prime.c: New file.
3643
3644         * troff/input.c (macro_source): New function.
3645         (init_input_requests): Bind "mso" to macro_source.
3646
3647         * troff/env.c (environment::possibly_break_line): Maintain
3648         pointer to pointer to node to be split in ndp so as to avoid
3649         using address of freed node.
3650
3651         * troff/env.c (environment::hyphenate_line): Maintain pointer to
3652         pointer to first node to be hyphenated in startp so as to
3653         avoid using address of freed node.
3654
3655         * troff/env.c (class trie, class hyphen_trie): Make the
3656         elements of the trie be of type char not unsigned char.
3657         Declare arguments to be const char* instead of unsigned char *.
3658         
3659         * troff/env.c (hyphenate): Initialize hbuf[0].
3660
3661         * troff/input.c (set_string): Declare p to be char * and cast
3662         *p to unsigned char when necessary.
3663
3664         * troff/input.c (do_define_macro): Declare s to be const
3665         char*. Cast element to unisgned char when necessary, Declare
3666         d to be an int.  Handle EOF better.
3667
3668         * troff/Makefile, troff/input.c: Different scheme for passing
3669         definitions of MACROPATH, HYPHENFILE and DEVICE.
3670
3671 Tue May 14 13:41:36 1991  James Clark  (jjc at jclark)
3672
3673         * tty/devascii/R.proto: Delete entry for em.
3674         * tty/devlatin1/R.proto: Likewise.
3675
3676 Sat May 11 11:13:28 1991  James Clark  (jjc at jclark)
3677
3678         * troff/input.c (translate): Stop when we get a space. Treat eof
3679         like newline.
3680
3681         * macros/tmac.an (IP): Only pass quoted argument to TP when \n(.$>1.
3682
3683 Wed Apr 24 19:24:33 1991  James Clark  (jjc at jclark)
3684
3685         * tbl/main.c (process_format): A font name following a `f'
3686         modifier that starts with a digit can be only one character long.
3687         Also deal with EOF on the second character of the font name.
3688
3689 Wed Apr 17 11:23:43 1991  James Clark  (jjc at jclark)
3690
3691         * troff/input.c (token::next): Turn \~ into an
3692         unbreakable_space_node.
3693         * troff/node.c (unbreakable_space_node): New class.
3694         * troff/node.h: Declare it.
3695
3696 Tue Apr 16 10:47:12 1991  James Clark  (jjc at jclark)
3697
3698         * dvi/dvi.c (dvi_printer::set_char): Make code an int.  Check that
3699         it's >= 0, before outputting it as a single byte.
3700
3701 Mon Apr 15 11:20:23 1991  James Clark  (jjc at jclark)
3702
3703         * lib/font.c: Make font_char_metric::code an int.
3704         (font::get_code): Change return type to int.
3705         (font::load): Allow code to be arbitrary integer.
3706         * lib/font.h (font::get_code): Change return type to int.
3707         (font::number_to_index): Change argument type to int.
3708         * troff/input.c (token::next):  In case 'N', allow any value.
3709         Store value in token::val.
3710         (token::operator==): For TOKEN_NUMBERED_CHAR test equality of val.
3711         (token::get_char, token::add_to_node_list, token::process): Get
3712         number from val.
3713         (charinfo::set_number): Change argument to int.
3714         (charinfo::get_number):  Require that NUMBERED flag be set.
3715         (get_charinfo_by_number): Store numbered characters not between 0
3716         and 255 in a dictionary.
3717         * troff/charinfo.h (get_charinfo_by_number): Change argument type
3718         to int.
3719         (charinfo::number): Change type to int.
3720         (charinfo::set_number): Change type of set_number to int.
3721         * troff/node.c (troff_output_file::put_char_width,
3722         troff_output_file::put_char): Test whether character is numbered
3723         using charinfo::numbered().
3724         * driver/printer.c (printer::set_numbered_char): Allow arbitrary
3725         values of num.
3726         * lib/nametoindex.c: New implementation to cope with arbitrary
3727         number characters.
3728
3729         * troff/input.c (token::operator==): Test val for
3730         TOKEN_CHAR_HEIGHT, TOKEN_CHAR_SLANT, TOKEN_FONT_POSITION, and
3731         TOKEN_SIZE.
3732
3733         * man/Makefile: Add definiton of BROKEN_SPOOLER_FLAGS.
3734         (.man.n):  sed out @BROKEN_SPOOLER_FLAGS@.
3735
3736 Sun Apr 14 12:57:00 1991  James Clark  (jjc at jclark)
3737
3738         * ps/devps/zapfdr.ps: Don't copy UniqueID.  Avoid use of newdict
3739         variable.
3740
3741         * all Makefiles: rm targets of cp and >.
3742
3743         * xditview/xtotroff.c (MapFont): Unlink troff_name before opening
3744         it.
3745
3746         * eqn/lex.c (def_table): Add dollar.
3747
3748 Sat Apr 13 13:02:44 1991  James Clark  (jjc at jclark)
3749
3750         * troff/input.c (do_width): Push back newline before closing delim
3751         like do_bracket.
3752
3753 Fri Apr 12 15:16:03 1991  James Clark  (jjc at jclark)
3754
3755         * groff.c (possible_command::prepend_arg): New function.
3756         (main): Prepend device -m option.
3757         * groff.sh: Put device -m options before command-line options.
3758
3759 Tue Apr  9 10:24:43 1991  James Clark  (jjc at jclark)
3760
3761         * macros/tmac.an (IP): Quote argument to TP.
3762
3763         * ps/ps.c (main): New option -b, which sets...
3764         (broken_flags): New variable.
3765         (ps_printer::~ps_printer): Incorporate the setup section in the
3766         prolog if (broken_flags & NO_SETUP_SECTION).
3767         (ps_printer::begin_page): Generate {Begin,End}PageSetup comments.
3768         (ps_printer::merge_download_fonts, ps_printer::merge_import_fonts,
3769         ps_printer::merge_ps_fonts, ps_printer::print_font_comment,
3770         ps_printer::print_needed_font_comment,
3771         ps_printer::print_supplied_font_comment,
3772         ps_printer::print_include_font_comments,
3773         ps_printer::lookup_doc_font, ps_printer::download_fonts,
3774         ps_printer::read_download_file, read_document_fonts, add_font,
3775         skip_line, parse_fonts_arg, document_font::document_font,
3776         document_font::~document_font, document_font::download,
3777         ps_output::include_file):  Deleted.
3778         (ps_printer::~ps_printer): Generate %%EOF. Generate %!PS-Adobe-3.0
3779         rather than %!PS-Adobe-2.0.  Make calls to
3780         resource_manager::need_font for each font that we used. Replace
3781         calls to merge_ps_fonts, merge_download_fonts, print_font_comment,
3782         print_supplied_font_comment, print_needed_font_comment by call to
3783         resource_manager::print_header_comments. Output %%Orientation
3784         comment. Output %%Requirements: numcopies comment if ncopies > 1.
3785         Don't output the prolog directly.  Instead call
3786         resource_manager::output_prolog.  Only define #copies when ncopies
3787         > 1.  Delete calls to print_include_font_comments  and
3788         download_fonts.  Add call to resource_manager::document_setup.
3789         (ps_printer::do_file): Call resource_manager::import_file instead
3790         of including it ourselves.
3791         (ps_printer::do_import): Likewise.  Also don't call
3792         merge_import_fonts. Push userdict on the dictionary stack before
3793         and pop it afterwards.
3794         Move declaration of ps_output into ps.h.
3795         * ps/psrm.c: New file implementing resource_manager class.
3796         * ps/ps.h: New file declaring ps_output and resource_manager
3797         classes.
3798         * ps/devps/zapfdr.ps:
3799         * ps/devps/symbolsl.ps:
3800         * ps/devps/prologue:  Use 3.0 conventions.
3801         * ps/Makefile: Pass definition of BROKEN_SPOOLER_FLAGS in DEFINES.
3802         Add default definition of BROKEN_SPOOLER_FLAGS.
3803         * Makefile: New variable BROKEN_SPOOLER_FLAGS.  Add
3804         BROKEN_SPOOLER_FLAGS to SUBFLAGS.
3805
3806 Mon Apr  8 09:26:54 1991  James Clark  (jjc at jclark)
3807
3808         * etc/grog.pl: New file.
3809         * Makefile (GROG): New variable.
3810         Add GROG to SUBFLAGS.
3811         * etc/Makefile (GROG): New variable.
3812         (install.nobin): Install $(GROG) rather than grog.sh.
3813
3814 Thu Apr  4 11:36:45 1991  James Clark  (jjc at jclark)
3815
3816         * eqn/special.c (special_box::compute_metrics): Make the input and
3817         output strings the same.  Get the new height and depth from the
3818         predefined height and depth registers.  Also make subscript kern
3819         and skew available.
3820         (special_box::compute_subscript_kern, special_box::compute_skew):
3821         New functions.
3822
3823         * eqn/box.c (pointer_box::compute_skew,
3824         simple_box::compute_metrics, box::top_level)
3825         * eqn/text.c (prime_box::compute_metrics,
3826         prime_box::comput_subscript_kern)
3827         * eqn/limit.c (limit_box::compute_metrics):
3828         * eqn/delim.c (build_extensible, delim_box::compute_metrics):
3829         * eqn/sqrt.c (sqrt_box::compute_metrics): Protect possibly
3830         negative numbers in `nr' requests with a leading 0.
3831
3832 Wed Apr  3 15:58:23 1991  James Clark  (jjc at jclark)
3833
3834         * eqn/special.c: New file.
3835         * eqn/eqn.y: Declare token SPECIAL.  Make it right associative.
3836         Add new rule for simple.
3837         * eqn/lex.c (token_table): Add SPECIAL.
3838         * eqn/box.h: Declare make_special_box.
3839         * eqn/Makefile: Add special.[co].
3840
3841 Sat Mar 30 10:57:53 1991  James Clark  (jjc at jclark)
3842
3843         * ps/devps/prologue: Possibly set packing to true while defining.
3844         Create grops dictionary here.  Initialize local variables before
3845         defining procedures.
3846         (PICTURE): Rename to PBEGIN. Also do save, noop showpage, count
3847         the dictionary stack. Set strokeadjust and overprint to false if
3848         the relevant operators are defined.
3849         (PEND): New procedure.
3850         * ps/ps.c (ps_printer::~ps_printer): In the prolog just include
3851         prologue.  Do everything else in the setup section.
3852         (ps_printer::do_import): Just call PBEGIN and PEND around the
3853         picture. Also push userdict before, and pop it afterwards.
3854
3855 Wed Mar 27 07:59:50 1991  James Clark  (jjc at jclark)
3856
3857         * troff/node.c (bracket_node::tprint): Brackets were being printed
3858         1m too low.
3859
3860         * macros/tmac.an (SH, SS): Set fill mode.
3861
3862 Tue Mar 26 07:46:31 1991  James Clark  (jjc at jclark)
3863
3864         * troff/div.c (top_level_diversion::begin_page): Set
3865         high_water_mark to 0.
3866
3867 Fri Mar 22 09:19:46 1991  James Clark  (jjc at jclark)
3868
3869         * man/mdate.sh: New file.
3870         * man/mdate.c: Deleted.
3871         * man/Makefile: Use mdate.sh instead of mdate.
3872         (mdate): Deleted.
3873
3874         * eqn/lex.c (do_gsize): Supply missing argument to error message.
3875
3876 Tue Mar 19 11:06:50 1991  James Clark  (jjc at jclark)
3877
3878         * man/mdate.c: New file.
3879         * man/*.man: Replace modification date by @MDATE@.
3880         * man/Makefile (.man.n): Replace @MDATE@ by `mdate $<`.
3881         (mdate): New target.
3882
3883         * lib/font.c (text_file::next): Deal with arbitrarily long lines.
3884         Remove illegal input characters.
3885
3886 Mon Mar 18 08:32:25 1991  James Clark  (jjc at jclark)
3887
3888         * macros/tmac.s (pg*start-col): Do .ns *after* running the hooks.
3889
3890 Sat Mar 16 03:52:25 1991  James Clark  (jjc at jclark)
3891
3892         * troff/div.c (begin_page): Change behaviour when
3893         !first_page_begun and !break_flag.
3894
3895         * troff/input.c (do_name_test): Return 0 if argument is empty.
3896
3897         * troff/input.c (read_long_escape_name): Require closing ] to be
3898         at same input level as opening [.
3899
3900         * troff/input.c (read_increment_and_escape_name): New function.
3901         (get_copy, process_input_stack): Use this for \n.
3902
3903 Fri Mar 15 00:31:48 1991  James Clark  (jjc at jclark)
3904
3905         * troff/div.c (top_level_diversion::begin_page): Ignore the
3906         current value of page_number if !first_page_begun.
3907
3908         * groff.c (main): Fix declaration of buf.
3909
3910         * troff/input.c (do_name_test): New function.
3911         (token::next): Implement \A.
3912         (token::next): Implement \e by turning it into a TOKEN_ESCAPE.
3913         (token::description, token::add_to_node_list, token::process):
3914         Handle TOKEN_ESCAPE.
3915         * troff/token.h: New token TOKEN_ESCAPE.
3916
3917 Thu Mar 14 10:22:26 1991  James Clark  (jjc at jclark)
3918
3919         * pic/main.c (do_picture): Allow space before and after filename
3920         following `<'.  Check that the filename is not empty.
3921
3922 Wed Mar 13 12:49:40 1991  James Clark  (jjc at jclark)
3923
3924         * Version 1.01 released.
3925
3926         * dvi/devdvi/CompileFonts: Add cm*ss10 fonts.
3927
3928         * dvi/tmac.dvi: ftr HR to H.
3929
3930         * macros/tmac.e: Round up computation of $r.
3931
3932         * xditview/tmac.X:  Don't give up completely in compatibility mode.
3933         Use \n(.s instead of \n[.s].
3934
3935         * dvi/tmac.dvi: Don't give up completely in compatibility mode.
3936         Use \(ci instead of \[ci]. Use \n(.s instead of \n[.s].
3937         Add u to factors inside \s[...]. Rename frac to dvi-frac.
3938         Translate \(FM onto \[prime] and \(!/ onto \[slashnot]; use these
3939         short names in the char definitions.
3940
3941         * ps/tmac.ps: Don't give up completely in compatibility mode.
3942         Fix the fraction definitions to use \n(.s and \(f/. Add an extra
3943         quote in front of \n(.s. Add u to factors inside \s[...].
3944
3945 Mon Mar 11 12:01:20 1991  James Clark  (jjc at jclark)
3946
3947         * tty/tmac.tty: Call the nroff request.
3948
3949         * macros/tmac.e ((x, )x):  Better definitions that work properly
3950         in a diversion.
3951         (@0, @1): Helper macros for (x.
3952
3953         * macros/tmac.e ($s, hl): Use \l rather than \D.
3954
3955         * tty/tmac.tty: Make it work better in compatibility mode.
3956         (pchar): Rename to tty-char.
3957
3958         * macros/tmac.e (@E): New macro.
3959         (r, i, b, rb, bi): Use @E.
3960
3961         * macros/tmac.e (@F): Don't use (;...) syntax.
3962
3963         * macros/tmac.e: Remove mention of \*(||/revisions.  Mention that
3964         it was modified for groff.
3965
3966         * macros/tmac.e: Make sure \n(ps and \n(es are >= \n(.V.
3967
3968         * macros/tmac.e (<., .>): Removed.
3969         ([., .]): If \n(.V>=1v, use [] instead of superscripting.
3970
3971         * macros/tmac.e: Remove check that groff is being used.
3972
3973         * macros/tmac.e (@C): Change families only if using groff; turn
3974         compatibility mode off while changing familes. Save compatibility
3975         mode before changing families and restore it afterwards.
3976
3977         * macros/tmac.e (@h): Remove test for offset + line length.
3978
3979         * macros/tmac.e (sorry): Rename to @S.  Use \$1 instead of \$0
3980         (lo, th, ac): Define to call @S instead of using als.
3981
3982         * macros/tmac.e: Make $r and $R now contain \n(.v*100/\n(.sp, ie
3983         the ratio of the vertical spacing to the point size in units
3984         expressed as a percentage.  Use these instead of $10r and $10R,
3985         Delete $10r and $10R.
3986
3987         * lib/font.c (font::load): In default computation of space_width,
3988         divide by sizescale.  Use scale_round.
3989
3990         * macros/tmac.an (TP): Don't call `nf'.
3991         (an-do-tag): Don't call `fi'.
3992
3993 Sun Mar 10 09:52:35 1991  James Clark  (jjc at jclark)
3994
3995         * troff/input.c (process_input_stack): Handle the case where
3996         spaces at the beginning of an input line are followed by a
3997         newline.
3998
3999 Thu Mar  7 20:18:07 1991  James Clark  (jjc at jclark)
4000
4001         * groff.c (device_table): Add PIC_X_OPTION for dvi device.
4002         * groff.sh: Use pic -x with the dvi device.
4003
4004         * dvi/devdvi/FontMakefile (H): Don't use -s.
4005
4006         * dvi/devdvi/HI, dvi/devdvi/HB: New files.
4007         * dvi/devdvi/Makefile: Add HI and HB to FONTS.
4008         * dvi/devdvi/FontMakefile: Add rules for HI and HB. Include these
4009         in FONTS.
4010
4011 Mon Mar  4 13:20:14 1991  James Clark  (jjc at jclark)
4012
4013         * ps/psfig.diff: New file.
4014         * ps/tmac.psfig: New file.
4015
4016 Sat Mar  2 00:15:09 1991  James Clark  (jjc at jclark)
4017
4018         * macros/tmac.s (]=, ref*do-tl, ref*bib-print): Deleted.
4019         (]-): Don't call ref*do-tl.
4020
4021         * macros/tmac.s (ref*end-print): Use XP if [F not defined.
4022
4023         * macros/tmac.s (ref*normal-print): Call FS rather than fn@do-FS.
4024         (fn@do-FS): Rename to fn*do-FS.
4025
4026         * troff/input.c (transparent_translate): New function.
4027         (process_input_stack): Apply transparent_translate before calling
4028         diversion::transparent_output(unsigned char).
4029
4030 Wed Feb 27 00:13:25 1991  James Clark  (jjc at jclark)
4031
4032         * troff/input.c (do_define_macro): Define the macro before calling
4033         skip_line.
4034
4035         * xditview/Makefile: Add DEVICES variable.  Change install target
4036         to use this.
4037
4038 Tue Feb 26 10:46:22 1991  James Clark  (jjc at jclark)
4039
4040         * groff.c (run_commands): Handle the possibility that there are
4041         child processes other than those forked by us.
4042
4043 Sun Feb 24 21:32:30 1991  James Clark  (jjc at jclark)
4044
4045         * lib/string.c (string::append): New function.
4046         * lib/stringclass.h: Declare it.
4047
4048 Thu Feb 21 11:49:26 1991  James Clark  (jjc at jclark)
4049
4050         * eqn/main.c (main): New option -N which sets
4051         no_newline_in_delim_flag.
4052         (do_file): If no_newline_in_delim_flag is set don't allow newlines
4053         in delimiters.
4054         * groff.c (main): Pass -N on to eqn.
4055         (help, synopsis): Mention -N.
4056         * groff.sh: Implement -N.
4057
4058 Wed Feb 20 15:16:10 1991  James Clark  (jjc at jclark)
4059
4060         * macros/tmac.s (]=, ref*bib-print, ref*do-tl): New macros.
4061         (]-): Call ref*do-tl if ref*need-tl is non-zero.
4062         (XP): Allow as initializer.
4063
4064 Tue Feb 19 14:09:06 1991  James Clark  (jjc at jclark)
4065
4066         * troff/env.c (environment::wrap_up_field): If field_spaces are
4067         non-zero and we have a current_tab, subtract padding from
4068         tab_distance.  If this makes tab_distance <= 0, use the next tab
4069         stop instead.  If there isn't any next tab or it's a left tab,
4070         wrap up the current tab.
4071         (environment::start_field): Initialize tab_precedes_field.
4072         (environment::wrap_up_tab): If there's a current field, update
4073         pre_field_width, field_distance and tab_precedes_field.
4074         * troff/env.h (environment::tab_precedes_field): New member.
4075
4076 Fri Feb 15 01:24:00 1991  James Clark  (jjc at jclark)
4077
4078         * ps/ps.c (ps_printer::do_file): New function.
4079         (ps_printer::special): Bind to `file' special.
4080         (ps_printer::do_exec): Set ndefined_styles to 0.
4081
4082 Sat Feb  9 03:03:04 1991  James Clark  (jjc at jclark)
4083
4084         * eqn/text.c (split_text): Grok \* and similar escapes sequences.
4085         Avoid stripping first character from the start of unrecognized
4086         escapes.  Use lex_error instead of error to report errors.
4087         * eqn/lex.c (get_token): Rework handling of escapes.
4088         (lex_error): Move declaration into...
4089         * eqn/eqn.h.
4090
4091         * xditview/xditview.c (main): Make -page option work.
4092
4093         * Makefile: Correct comment about -DBROKEN_SPOOLER and pageview.
4094
4095 Wed Feb  6 12:28:43 1991  James Clark  (jjc at jclark)
4096
4097         * macros/tmac.s (B2): Correct size of box.
4098
4099 Tue Feb  5 00:37:35 1991  James Clark  (jjc at jclark)
4100
4101         * macros/tmac.s (B2): Postpone drawing the box until in the
4102         top-level diversion.
4103
4104         * tty/tmac.tty: Add font translations for C, CR, CW.
4105
4106         * groff.c (synopsis, help): Document -i.
4107         * groff.sh: Implement -i.
4108
4109         * macros/tmac.s (@NH): Put a `.' after multi-part numbers.
4110         Simplify the construction of SN.
4111
4112         * troff/number.c (parse_term): Give `|' a higher precedence.
4113         * tbl/table.c (numeric_text_entry::simple_print): Parenthesise
4114         accordingly.
4115
4116         * macros/tmac.s (B2): Use par@finish instead of par@reset.
4117
4118 Mon Feb  4 12:36:09 1991  James Clark  (jjc at jclark)
4119
4120         * lib/string.c (string::move): New function.
4121         * lib/stringclass.h: Declare it.
4122
4123 Sat Feb  2 16:02:16 1991  James Clark  (jjc at jclark)
4124
4125         * troff/env.c (distribute_space): Add optional argument
4126         `force_forward'.
4127         (environment::wrap_up_field): Call distribute_space with
4128         `force_forward' argument of 1.
4129
4130 Fri Feb  1 19:36:33 1991  James Clark  (jjc at jclark)
4131
4132         * lib/string.c, lib/stringclass.h (string::operator+=(char)):
4133         Inline it.  Move reallocation into...
4134         (string::grow1): New function.
4135         * pic/Makefile, tbl/Makefile, eqn/Makefile, ps/Makefile: Redo
4136         dependencies to include library header files.
4137         * lib/Makefile: Make string.c and lf.c depend on stringclass.h.
4138
4139 Thu Jan 31 15:02:27 1991  James Clark  (jjc at jclark)
4140
4141         * macros/tmac.s (@NH): Use the same number registers than -ms does
4142         for the heading level counters.  Use the same string that -ms does
4143         for the number for this heading.
4144
4145 Wed Jan 30 14:25:40 1991  James Clark  (jjc at jclark)
4146
4147         * lib/new.c (operator new): Cast result of malloc to char *.
4148
4149         * troff/input.c (spring_trap, lookup_request): Add assert that nm
4150         is not null.
4151
4152 Tue Jan 29 18:08:05 1991  James Clark  (jjc at jclark)
4153
4154         * groff.c (main): Support -i.
4155
4156 Sun Jan 27 13:23:17 1991  James Clark  (jjc at jclark)
4157
4158         * pic/pic.h: Include <osfcn.h>.
4159
4160         * ps/ps.c: Add declaration of mktemp.
4161
4162         * Makefile: Add -DHAVE_UNION_WAIT option for CPPDEFINES.
4163         * groff.c: If HAVE_UNION_WAIT is defined, declare wait()'s
4164         argument as union wait *.
4165         (run_commands): If HAVE_UNION_WAIT is defined cast wait()'s
4166         argument to union wait *.
4167
4168 Sat Jan 26 12:04:52 1991  James Clark  (jjc at jclark)
4169
4170         * tty/tmac.tty: Add definition of \(co.
4171
4172         * pic/object.c (make_arc): Only increase radius when radius
4173         strictly less than d.
4174         (arc_object::update_bounding_box): May need to add 4.0 to end_quad
4175         more than once.
4176
4177         * troff/env.c (environment::environment(symbol),
4178         environment::environment(const environment *)):  Initialize
4179         input_trap_count.
4180
4181 Sat Jan 19 08:18:35 1991  James Clark  (jjc at jclark)
4182
4183         * tbl/main.c (main): Add exit(0).
4184
4185         * ps/ps.c (ps_printer::~ps_printer): Use fseek instead of rewind.
4186
4187         * pic/main.c (main):
4188         * eqn/main.c (main):
4189         * tbl/main.c (main):
4190         * etc/soelim.c (main):
4191         * driver/printer.c (printer::~printer):
4192         * troff/node.c (real_output_file::~real_output_file,
4193         real_output_file::flush):  Check for errors on stdout.
4194
4195         * most files: Add 1991 to copyright notice.
4196
4197         * macros/tmac.s: Don't test \n(.x and \n(.y.
4198
4199         * troff/input.c (token::next): Rename `escape_char' label to
4200         `handle_escape_char' and `normal_char' label to
4201         `handle_normal_char'.
4202
4203 Thu Jan 17 15:46:35 1991  James Clark  (jjc at jclark)
4204
4205         * groff.c (main, synopsis, help): Support -a option.
4206         * groff.sh: Likewise.  Also eliminate Zflag variable by adding -z
4207         to trflags while parsing options.
4208
4209 Tue Jan 15 13:07:27 1991  James Clark  (jjc at jclark)
4210
4211         * troff/number.c (parse_term): With `m', `M' and `n' scale
4212         indicators, convert scale factor to hunits before scaling.
4213
4214 Mon Jan 14 12:39:12 1991  James Clark  (jjc at jclark)
4215
4216         * lib/font.c (scale_round): Better test for overflow when n is
4217         negative.
4218
4219 Thu Jan 10 11:10:56 1991  James Clark  (jjc at jclark)
4220
4221         * tbl/main.c (process_format): Add second argument of type
4222         options*. Change callers.  Allow opt->tab_char as well as '\t'
4223         between format items.
4224
4225 Mon Jan  7 12:30:18 1991  James Clark  (jjc at jclark)
4226
4227         * macros/tmac.an (PD): With no arguments, make sure register PD is
4228         at least \n[.V].
4229         (TH): Call PD with no argument, instead of setting register PD
4230         directly.
4231
4232 Sun Jan  6 11:18:39 1991  James Clark  (jjc at jclark)
4233
4234         * Version 1.00 released.
4235
4236 Sat Jan  5 08:44:30 1991  James Clark  (jjc at jclark)
4237
4238         * ps/tmac.ps, xditview/tmac.X: Add font translation of C to CR.
4239
4240         * dvi/devdvi/DESC: Mount CW instead of CR.
4241
4242         * dvi/tmac.dvi: Add definition of \(tm.
4243
4244         * dvi/devdvi/texsy.map: Add lh, and rh.
4245         * dvi/devdvi/texex.map: Add lt, rt, lb, rb, lk, rk.
4246         * dvi/devdvi/texmi.map: Add *o. Regenerate fonts.
4247
4248         * dvi/devdvi/FontMakefile: Generate H from cmss10.
4249         * dvi/devdvi/Makefile: Install H.
4250         * dvi/devdvi/H: New file.
4251
4252 Fri Jan  4 15:04:57 1991  James Clark  (jjc at jclark)
4253
4254         * troff/env.c (vertical_spacing): Don't allow vertical spacing to
4255         be 0.
4256
4257 Thu Jan  3 13:41:19 1991  James Clark  (jjc at jclark)
4258
4259         * macros/tmac.s (@EN): Add \n(.V to the argument to ds@need.
4260
4261         * macros/tmac.pic (PS): Avoid attempting to set negative indent.
4262
4263         * macros/tmac.s (@EN): Handle the case where the equation is empty
4264         but the label is not.
4265
4266 Wed Jan  2 10:31:44 1991  James Clark  (jjc at jclark)
4267
4268         * troff/groff.h: New warning category WARN_SPACE.
4269         * troff/input.c: Add WARN_SPACE to DEFAULT_WARNING_MASK. Add
4270         WARN_SPACE to warning_table.
4271         (interpolate_macro): Give a warning of type WARN_SPACE if the name
4272         is longer than two characters and is not defined, but the first
4273         two characters do make a defined name.
4274
4275         * PROBLEMS: New file.
4276
4277         * CHANGES: New file.
4278         * README-0.6, README-1.00: Deleted.
4279
4280         * groff.c, groff.sh: Add X75-12 and X100-12 devices.
4281         * xditview/devX75/Makefile: Make devX75-12.
4282         * xditview/devX100/Makefile: Make devX100-12.
4283
4284         * xditview/devX100/eqnchar, xditview/devX75/eqnchar,
4285         dvi/devdvi/eqnchar, ps/devps/eqnchar: Remove use of \R.
4286
4287 Tue Jan  1 19:24:01 1991  James Clark  (jjc at jclark)
4288
4289         * README-0.7: Rename to README-1.00.
4290
4291         * macros/tmac.pic: New file.
4292         * macros/Makefile (install.nobin): Install tmac.pic.
4293
4294 Mon Dec 31 10:40:53 1990  James Clark  (jjc at jclark)
4295
4296         * troff/env.c (hyphen_word): Correct the test for whether the
4297         token is a hyphen.  Reset npos to 0.
4298
4299         * macros/tmac.s (par@sup-start, par@sup-end): New implementations.
4300
4301 Sun Dec 30 15:53:13 1990  James Clark  (jjc at jclark)
4302
4303         * macros/tmac.s (ds*common-end): Call par*reset.
4304         (PE): Likewise.
4305         (par@reset-indent): Deleted.
4306
4307         * macros/tmac.s (@IP): Divert the label.
4308
4309 Sat Dec 29 14:33:32 1990  James Clark  (jjc at jclark)
4310
4311         * xditview/draw.c (setGC): Use a line width of .1m rather than
4312         .04m by default; round rather than truncate value.
4313
4314         * tbl/table.c (class empty_entry): New class.
4315         (empty_entry::empty_entry, empty_entry::line_type): New functions.
4316         (table::add_entry): Represent empty entries by objects of type
4317         empty_entry.
4318         (table_entry::line_type): Return -1.
4319         (table::determine_row_type): Ignore entries with line_type 0.
4320         Treat type -1 as non-lines.
4321
4322 Fri Dec 28 15:04:41 1990  James Clark  (jjc at jclark)
4323
4324         * ps/devps/textmap, xditview/libXdvi/DviChar.c, tty/devlatin1/R.proto,
4325         macros/tmac.s: Rename \(-d to \(Sd.
4326
4327 Thu Dec 27 12:35:47 1990  James Clark  (jjc at jclark)
4328
4329         * ps/devps/textmap: Add `sd', `/_' and `3d' characters.
4330         * xditview/libXdvi/DviChar.c: Likewise.
4331         * dvi/devdvi/texsy.map: Add `<<', `>>'.
4332
4333 Wed Dec 26 13:33:23 1990  James Clark  (jjc at jclark)
4334
4335         * troff/div.c (top_level_diversion::begin_page): Call
4336         init_output() if the_output is 0.
4337
4338 Sat Dec 22 12:35:29 1990  James Clark  (jjc at jclark)
4339
4340         * troff/input.c: Replace ESCAPE_E by ESCAPE_e and ESCAPE_C by
4341         ESCAPE_c.
4342         (get_copy): Turn \E into ESCAPE_E.
4343         (token::process, asciify): Handle ESCAPE_E.
4344
4345         * macros/tmac.s (ds*common-end, par@reset): Add `.rj 0'.
4346         (RD): New macro.
4347         (DS): Implement `.DS R'.
4348
4349 Fri Dec 21 11:41:53 1990  James Clark  (jjc at jclark)
4350
4351         * macros/tmac.s (FS): New macro.
4352
4353         * macros/tmac.s (fn@do-FS): Use @LP instead of LP.
4354
4355         * macros/tmac.s (cov*tl-init): Remove after first execution
4356         instead of aliasing to @nop.  Call top of page macro explicitly
4357         instead of setting trap; call @init first.  Set pg@top as top of
4358         page macro.
4359         (cov*auto-init): Deleted.  Set cov*tl-init instead of
4360         cov*auto-init as top of page trap.
4361         (TL, LP): Do a break instead of calling cov*tl-init.
4362         (cov*print): With RP format but no TL, alias FS and FE to @FS and
4363         @FE; in this case also give a warning and always start another
4364         page. No need to set pg@top here.
4365         (cov*tl-init): Rename to cov*first-page-init.
4366
4367         * macros/tmac.s (RP): Do `.pn 0'.
4368         (cov*tl-init): With RP format don't do `.pn 0'.
4369
4370         * macros/tmac.s (pg@cs-top): Set no space mode.
4371
4372         * macros/tmac.s (par@TL, par@AU, par@AI): New macros.
4373         (cov*ab-init): Alias TL, AU and AI to these.
4374
4375 Thu Dec 20 10:10:50 1990  James Clark  (jjc at jclark)
4376
4377         * macros/tmac.s (@EQ): Move the space before the equation into @EN
4378         (@EN): Do nothing unless \n[dl] is > 0.
4379
4380 Tue Dec 18 12:20:47 1990  James Clark  (jjc at jclark)
4381
4382         * pic/object.c (ellipse_object::radius): New function.
4383
4384         * VERSION: Change version to 0.7.
4385
4386         * tbl/table.c (block_entry::do_divert): Declare return type as
4387         void.
4388         (block_entry::divert, alphabetic_block_entry::divert): Return 1.
4389
4390 Mon Dec 17 12:30:34 1990  James Clark  (jjc at jclark)
4391
4392         * troff/column.c: New file.
4393         * troff/Makefile: Corresponding changes.
4394
4395         * troff/hvunits.c (scale(vunits, vunits, vunits)):  New function.
4396         Friend of vunits.
4397
4398         * troff/div.c (top_level_diversion::space): If the space causes
4399         the first-page transition and springs a trap, truncate the space
4400         to 0.
4401
4402 Fri Dec 14 12:30:02 1990  James Clark  (jjc at jclark)
4403
4404         * ps/ps.c (ps_printer::do_import): Add a `clear' after including
4405         the document.
4406
4407         * pic/troff.c (troff_output::line_thickness,
4408         troff_output::set_fill): Do a horizontal motion to compensate for
4409         the width of the \D escape sequence.
4410
4411 Thu Dec 13 10:17:14 1990  James Clark  (jjc at jclark)
4412
4413         * xditview/tmac.X: Reinstate definition of \(rn, but only for X100
4414         (not X75).
4415
4416         * eqn/sqrt.c (sqrt_box::compute_metrics):  Supply missing argument
4417         to printf.
4418
4419         * tbl/table.c (simple_entry::simply_print): Don't declare as pure.
4420         Supply empty definition.
4421         (text_entry::simple_print, simple_text_entry::simple_print):
4422         Delete declarations.
4423         (table::add_entry): Represent empty entries by objects of type
4424         `simple_entry'.
4425
4426 Wed Dec 12 08:50:48 1990  James Clark  (jjc at jclark)
4427
4428         * troff/Makefile: Remove -DHYPHEN_CONTROL from DEFINES.
4429
4430         * tbl/table.c (left_text_entry::add_tab): New function.
4431
4432         * macros/tmac.s: Make @RT an alias for par@reset.  Make RT
4433         initialize like LP.
4434
4435 Mon Dec 10 11:19:55 1990  James Clark  (jjc at jclark)
4436
4437         * troff/env.c (environment::start_field): Give an error message if
4438         there is no next tab.
4439
4440 Sun Dec  9 11:46:40 1990  James Clark  (jjc at jclark)
4441
4442         * troff/env.c (hyphenate): Skip initial elements with zero
4443         hyphenation code.
4444
4445         * macros/tmac.s (par@init): Keep VS in points rather than units.
4446
4447 Sat Dec  8 23:00:27 1990  James Clark  (jjc at jclark)
4448
4449         * pic/main.c (main): Implement `-c' option.
4450         * pic/output.h: Declare make_tpic_output().
4451         * pic/tex.c (tex_output::set_pen_size): Make it virtual and
4452         protected.
4453         (tpic_output): New class.
4454         (tpic_output::tpic_output, tpic_output::set_pen_size,
4455         tpic_output::command, make_tpic_output): New functions.
4456
4457 Fri Dec  7 11:57:41 1990  James Clark  (jjc at jclark)
4458
4459         * tbl/main.c (main): Call `.ab' if \n(.g is false.  Define TS/TE
4460         if they're not already defined.
4461         * tbl/table.c (init_output): Don't test \n(.g.
4462
4463         * troff/input.c (do_if_request): Delete `g' condition. Recognize
4464         `d', `r' and `c' conditions even in compatibility mode.
4465
4466 Tue Dec  4 09:13:47 1990  James Clark  (jjc at jclark)
4467
4468         * ps/tmac.ps (ps-bb): Protect against negative numbers in bounding
4469         box.
4470
4471 Mon Dec  3 07:18:26 1990  James Clark  (jjc at jclark)
4472
4473         * troff/env.h (environment::prev_line_interrupted): New member.
4474         (environment::get_prev_line_interrupted): New function.
4475         * troff/env.c (environment::newline): Set prev_line_interrupted.
4476         (environment::environment(const environment *),
4477         environment::environment(symbol)): Initialize
4478         prev_line_interrupted.
4479         * troff/input.c (process_input_stack): Don't give special
4480         treatment to space and newline at the beginning of the line if the
4481         previous line was interrupted.
4482
4483 Sat Dec  1 15:48:37 1990  James Clark  (jjc at jclark)
4484
4485         * eqn/eqn.y: Disallow PRIME by itself.
4486         * eqn/lex.c (token_table): Bind `opprime' instead of `prime' to
4487         PRIME.
4488         (def_table): Remove definition of '.  Define prime to be `.
4489
4490         * eqn/eqn.y: Split off part of rule `script' into a new rule
4491         `nonsup'.
4492
4493 Fri Nov 30 10:23:44 1990  James Clark  (jjc at jclark)
4494
4495         * macros/tmac.s ({, }): New string aliases.
4496
4497 Thu Nov 29 11:34:40 1990  James Clark  (jjc at jclark)
4498
4499         * README-0.7: New file.
4500
4501 Wed Nov 28 10:09:57 1990  James Clark  (jjc at jclark)
4502
4503         * macros/tmac.s: New file.
4504         * man/groff_ms.man: New file.
4505         * Makefile: Add definition of TMAC_S. Pass TMAC_S in SUBFLAGS.
4506         * Makefile.bd: Similarily.
4507         * man/Makefile: Add groff_ms.n to MAN7PAGES. Replace @TMAC_S@. Add
4508         definition of TMAC_S.
4509         * macros/Makefile: Add definition of TMAC_S. Install tmac.s.
4510         * macros/TODO: New file.
4511
4512 Sat Nov 24 20:04:54 1990  James Clark  (jjc at jclark)
4513
4514         * troff/env.c (right_justify): New function.
4515         (init_env_requests): Bind this to request "rj".
4516         (center_lines): Set right_justify_lines to 0. If we get a bad
4517         integer, center 1 line.
4518         (environment::environment(symbol), environment::environment(const
4519         environment *)): Initialize right_justify_lines.
4520         (environment::get_right_justify_lines): New function.
4521         (init_env_requests): Bind this to number_register ".rj".
4522
4523         * troff/env.c (environment::choose_breakpoint): Implement
4524         hyphenation_margin and hyphenation_space.
4525         (environment::get_hyphenation_space,
4526         environment::get_hyphenation_margin): New functions.
4527         (init_env_requests): Bind these to .hys and .hym.
4528         (hyphenation_space_request, hyphenation_margin_request): New
4529         functions
4530         (init_env_requests): Bind these to hys and hym.
4531         (environment::environment(symbol), environment::environment(const
4532         environment *)): Initialize hyphenation_margin and
4533         hyphenation_space.
4534         * troff/env.h: Corresponding changes to class environment.
4535
4536 Fri Nov 23 09:08:16 1990  James Clark  (jjc at jclark)
4537
4538         * troff/div.c (blank_line): Always do a break.
4539
4540         * eqn/box.c (do_text): Turn off escapes while appending text to
4541         string.
4542
4543 Thu Nov 22 10:58:59 1990  James Clark  (jjc at jclark)
4544
4545         * troff/input.c (while_break_request, while_continue_request): New
4546         functions.
4547         (init_input_requests): Bind these to "break" and "continue".
4548         (while_depth, while_break_flag): New variables.
4549         (while_request): Update while_depth.  Break out of loop if
4550         while_break_flag is set.
4551
4552 Wed Nov 21 10:54:40 1990  James Clark  (jjc at jclark)
4553
4554         * tbl/table.c (init_span_reg): Initialize span_width_reg to \n(.H
4555         rather than 0.
4556
4557 Mon Nov 19 00:45:03 1990  James Clark  (jjc at jclark)
4558
4559         * Makefile: Include -DBROKEN_SPOOLER by default.  Expand comment.
4560
4561         * stringify: New file.
4562         * Makefile (groff.o): Use stringify.
4563
4564         * xditview/tmac.X: Remove definition of \(rn.
4565         * xditview/libXdvi/DviChar.c: Remove radicalex from
4566         Adobe_symbol_map.
4567
4568 Sat Nov 17 10:44:58 1990  James Clark  (jjc at jclark)
4569
4570         * tbl/table.c (table::add_entry): Allow alphabetic text blocks.
4571         (alphabetic_block_entry::alphabetic_block_entry,
4572         alphabetic_block_entry::divert, alphabetic_block_entry::print):
4573         New functions.
4574         (block_entry::divert): Split off body into ...
4575         (block_entry::do_divert): If the block is alphabetic, subtract 2n
4576         from the line length; also update the span width to dl+2n, and the
4577         alphabetic span width to dl.
4578
4579         * driver/input.c (do_file):  While reading argument to D command,
4580         when expanding buffer, multiply szp by sizeof(int) rather than 2
4581         in the argument to memcpy.
4582
4583         * tbl/table.c (compute_span_width): Add 2n rather than 1n to the
4584         width of alphabetic columns.
4585
4586 Fri Nov 16 06:34:27 1990  James Clark  (jjc at jclark)
4587
4588         * troff/node.c (lookup_family): Supply second argument to lookup.
4589
4590         * troff/dictionary.c (dictionary::lookup): After an unsuccesful
4591         search, return immediately if v is 0.
4592
4593         * pic/troff.c: Define EQN_NO_EXTRA_SPACE_REG.
4594         (troff_output::start_picture): Set this reg.
4595         (troff_output::end_picture): Remove this reg
4596         * eqn/box.c (box::extra_space): Don't produce `\x's if
4597         EQN_NO_EXTRA_SPACE_REG is defined.
4598
4599         * eqn/eqn.y: Allow just a PRIME to be a `simple'.
4600         * eqn/text.c (split_text): Map ' to \(fm when it's the first
4601         character.
4602
4603 Thu Nov 15 10:35:06 1990  James Clark  (jjc at jclark)
4604
4605         * macros/tmac.e: Use font 3 instead of B in $c. Remove `bd'
4606         requests.
4607
4608         * troff/div.c (top_level_diversion::top_level_diversion):
4609         Initialize page_number to 0.
4610
4611 Wed Nov 14 21:41:58 1990  James Clark  (jjc at jclark)
4612
4613         * groff/troff (environment::environment(const environment *)):
4614         Initialize name to e->name, rather than "anonymous".
4615
4616 Sat Nov 10 01:59:37 1990  James Clark  (jjc at jclark)
4617
4618         * xditview/libXdvi/Dvi.c (ShowDvi): If eof is encountered, reset
4619         requested_page.  Split middle part into ...
4620         (FindPage): New function.
4621         (SetValues): If we don't yet know the last page, and the requested
4622         page is greater than the current page, call FindPage.
4623         Update the font_map_string before doing this.
4624
4625         * xditview/tmac.X: Add definitions of \(sq, \(ga, \(dg and \(dd.
4626         Translate \(lh and \(rh into left and right double arrows.
4627
4628         * troff/node.c (class hyphen_inhibitor_node): New class.
4629         (hyphen_inhibitor_node::hyphen_inhibitor_node,
4630         hyphen_inhibitor_node::copy, hyphen_inhibitor_node::same,
4631         hyphen_inhibitor_node::type,
4632         hyphen_inhibitor_node::get_hyphenation_type): New functions.
4633         (node::add_discretionary_hyphen): Use hyphen_inhibitor_node rather
4634         than dbreak_node(0, 0) to represent a `\%' at the beginning of a
4635         word.
4636
4637 Fri Nov  9 16:05:38 1990  James Clark  (jjc at jclark)
4638
4639         * troff/node.h (dummy_node::get_hyphenation_type,
4640         transparent_dummy_node::get_hyphenation_type):  Declare them.
4641         * troff/node.c: (dummy_node::get_hyphenation_type,
4642         transparent_dummy_node::get_hyphenation_type): New functions.
4643
4644 Wed Nov  7 10:09:06 1990  James Clark  (jjc at jclark)
4645
4646         * xditview/libXdvi/draw.c: If M_PI not defined after including
4647         math.h, then define it.
4648
4649         * xditview/Makefile: Add definition of AR. Pass it to the submake
4650         in libXdvi.
4651         * xditview/libXdvi/Makefile: Add definitions of AR and RANLIB.
4652
4653 Tue Nov  6 10:14:27 1990  James Clark  (jjc at jclark)
4654
4655         * troff/dictionary.h (object_dictionary::alias): Declare return
4656         value as int.
4657         * troff/dictionary.c (object_dictionary::alias): Return non-zero
4658         if the old name was defined.
4659         * troff/input.c (alias_macro): Give a warning if the old name was
4660         not defined.
4661         * troff/reg.c (alias_reg): Likewise.
4662
4663 Mon Nov  5 00:31:39 1990  James Clark  (jjc at jclark)
4664
4665         * troff/input.c (token::next): Delete implementation of \R.
4666
4667         * macros/Makefile: Strip comments from tmac.e while installing it.
4668
4669         * troff/input.c: New variable `nroff_mode'.
4670         (troff_request, nroff_request): New functions.
4671         (init_input_requests): Bind `troff' and `nroff' to troff_request
4672         and nroff_request.
4673         (do_if_request): Compute results of t and n conditions from
4674         nroff_mode.
4675
4676         * text/text.c (split_text): Fix typo in >=.
4677
4678         * eqn/lex.c: Add definition of `==' to def_table.
4679
4680 Fri Nov  2 02:49:09 1990  James Clark  (jjc at jclark)
4681
4682         * pic/tex.c (tex_output::start_picture): Change the definitions of
4683         \graph and \graphtemp so that they work properly with Plain TeX.
4684
4685         * pic/tex.c (tex_output::solid_arc): Ensure that the second angle
4686         argument to `ar' is not less than the first.
4687
4688         * pic/pic.y: Allow a comma between elements of the variable list
4689         in the argument to `reset'.
4690
4691         * pic/object.c (arc_object::arc_object): Fix computation of
4692         radius.
4693
4694         * eqn/main.c (main): Add exit(0).
4695
4696 Thu Nov  1 02:03:50 1990  James Clark  (jjc at jclark)
4697
4698         * troff/div.c (begin_page): Test no_space_mode after doing the
4699         break, but still push the page ejector cookie before doing the
4700         break.  Also set the next page number after doing the break.
4701         
4702         * xditview/xditview.c (NewFile): Don't set the title and icon name
4703         if this is the first file and its name is `-'.
4704         * groff/groff.c: Define a new device flag XT_OPTION.  Set it for
4705         the X75 and X100 devices.
4706         (main): If a device has the XT_OPTION flag set and there's exactly
4707         one file argument, pass the driver -xrm and -title options to set
4708         the icon name and window title to the name of the file.
4709
4710         * troff/env.c (environment_switch): If there was an argument but
4711         it wasn't a valid number or name, then pop an environment but
4712         don't give an error message on underflow.
4713
4714         * troff/number.c (start_number): Correct spelling in error message.
4715
4716         * troff/input.c (token::delimiter): Don't print an error message
4717         if err is false.
4718
4719         * xditview/libXdvi/parse.c (ParseInput): In case 'D', only call
4720         ParseDrawFunction if dw->display_enable is true.
4721
4722 Wed Oct 31 05:49:50 1990  James Clark  (jjc at jclark)
4723
4724         * pic/pic.y: Parse text positioning like normal attributes, so as
4725         to allow `"text" at 0,0 ljust'.  Don't allow `center' as a
4726         positioning attribute.
4727
4728 Mon Oct 29 22:50:38 1990  James Clark  (jjc at jclark)
4729
4730         * tbl/main.c (process_data): When in state START while reading a
4731         text block, don't change to state MIDDLE if c is a newline.
4732
4733 Sun Oct 28 21:59:56 1990  James Clark  (jjc at jclark)
4734
4735         * dvi/dvi.c (dvi_printer::begin_page): Rename `i' variable to `j'
4736         so as to avoid shadowing parameter.
4737
4738 Wed Oct 24 18:35:39 1990  James Clark  (jjc at jclark)
4739
4740         * tbl/table.c (trim_space): Deleted.
4741         (table::add_entry): Don't call trim_space.
4742
4743 Mon Oct 22 03:48:39 1990  James Clark  (jjc at jclark)
4744
4745         * VERSION: Change version to 0.6.
4746
4747         * troff/number.c (parse_expr): Make == work.
4748
4749 Sat Oct 20 11:28:17 1990  James Clark  (jjc at jclark)
4750
4751         * man/grog.man: New file.
4752         * man/Makefile: Add grog.n to MAN1PAGES.
4753         * etc/grog.sh: New file.
4754         * etc/Makefile: Install grog.sh as grog.
4755
4756 Fri Oct 19 11:17:15 1990  James Clark  (jjc at jclark)
4757
4758         * troff/input.c (token::next): Implement \E.
4759
4760 Thu Oct 18 11:56:24 1990  James Clark  (jjc at jclark)
4761
4762         * xditview/tmac.X: Change font translations to match tmac.ps.
4763
4764         * troff/input.c (non_empty_name_warning): Don't give a warning if
4765         `\{' terminates the name.
4766
4767 Tue Oct 16 10:04:23 1990  James Clark  (jjc at jclark)
4768
4769         * ps/devps/symbol.diff: New file.
4770         * ps/devps/FontMakefile: Mention symbol.diff.
4771
4772 Sun Oct 14 11:46:46 1990  James Clark  (jjc at jclark)
4773
4774         * troff/node.c (font_position): Use get_long_name to read the
4775         external_name.
4776
4777         * troff/env.c (environment_switch): If we get a number that's < 0
4778         or >= NENVIRONMENTS, treat it like a name.
4779         Change NENVIRONMENTS to 10.
4780
4781         * troff/groff.h: Remove definition of FONTS_MAX.
4782         * troff/node.h (class font_family): Make map a pointer instead of
4783         an array. Add a map_size member. Make it a class. Make nm const
4784         and public. Make invalidate_fontno a friend.
4785         * troff/node.c: Define font_table_size. Make font_info a pointer
4786         rather than an array.
4787         (class troff_output_file): Allocate font_position dynamically. Add
4788         nfont_positions member.
4789         (troff_output_file::set_font): Grow font_position if necessary.
4790         (troff_output_file::~troff_output_file): Delete font_position.
4791         (troff_output_file::troff_output_file): Allocate font_position.
4792         (grow_font_table): New function.
4793         (troff_output_file::really_begin_page,
4794         troff_output_file:really_copy_page): Use nfont_positions rather
4795         than FONTS_MAX.
4796         (mount_font_no_translate, mount_style): Call grow_font_table if
4797         necessary.
4798         (font_family::font_family): Allocate map.
4799         (font_family::make_definite): Grow map if necessary. Use
4800         font_table_size instead of FONTS_MAX.
4801         (font_family::~font_family): New function.
4802         (invalidate_fontno): Use font_family::map_size.
4803         (get_fontno, env_space_width, env_half_narrow_space_width,
4804         env_narrow_space_width, symbol_fotno, is_good_fontno,
4805         get_bold_fontno, make_glyph_node): Use font_table_size rather than
4806         FONTS_MAX.
4807         (next_available_font_position): Never return 0.
4808
4809 Fri Oct 12 10:17:52 1990  James Clark  (jjc at jclark)
4810
4811         * ps/tmac.ps: Add font translations for compatibility with dpost.
4812
4813 Thu Oct 11 12:09:03 1990  James Clark  (jjc at jclark)
4814
4815         * eqn/pile.c: Rename default_baseline_sep to baseline_sep.
4816         Move BASELINE_SEP_FORMAT and COLUMN_WIDTH_FORMAT into pbox.h.
4817         Move definitions baseline_sep, shift_down, column_sep,
4818         matrix_side_sep into...
4819         * eqn/box.c: Add them to param_table.
4820         * eqn/pbox.h: Add declarations to pbox.h.
4821
4822         * troff/input.c (set_string): Cast value to unsigned char *.
4823
4824         * troff/token.h (process_input_stack): Declare it static before
4825         declaring it a friend.
4826
4827 Wed Oct 10 09:59:13 1990  James Clark  (jjc at jclark)
4828
4829         * dvi/devdvi/texex.map: Fix positions of extensible brace middle
4830         and bottom.
4831         * dvi/devdvi/EX: Regenerate.
4832
4833         * troff/input.c (init_charset_table): Make ", ', ), ], *, \(dg
4834         transparent.
4835
4836 Tue Oct  9 08:34:02 1990  James Clark  (jjc at jclark)
4837
4838         * eqn/lex.c: In defaults_table, make definition of `dot' call
4839         `dot_def'.  Don't explicitly make it roman.  Similarily for other
4840         accents.
4841
4842         * pic/lex.c (for_input::for_input): Add by_is_multiplicative
4843         argument.
4844         (for_input::get, for_input::peek): Use this.
4845         (do_for): Add by_is_multiplicative argument.
4846         * pic/pic.y: Change optional_by clause to allow '*' after `by'.
4847         Change semantic value of optional_by to be a double plus a flag
4848         saying whethet the by clause is multiplicative.
4849
4850         * eqn/lex.c (get_delimited_text): Remember location of start of
4851         definition.  Improve error handling when EOF is encountered.
4852
4853         * lib/font.h: Rename handle_x_command to
4854         handle_unknown_font_command.
4855         * lib/font.c (font::load): Call handle_unknown_font_command for
4856         any unknown command in the font description file.  Don't call
4857         handle_x_command. Include the name of the command in the argv.
4858         Improve message for unknown command after kernpairs or charset
4859         command.
4860         * ps/ps.c (ps_font::handle_x_command): Rename to
4861         handle_unknown_font_command.  Remove message about `x download'
4862         command.  Give error message for wrong number of arguments.
4863         * ps/devps/afmtodit: Generate `encoding' instead of `x encoding'.
4864         * dvi/dvi.c (dvi_font::handle_x_command): Rename to
4865         handle_unknown_font_command. Give an error message for wrong
4866         number of arguments.  Rename design_size to designsize.
4867         * dvi/tfmtodit.c (main): Generate `checksum' instead of `x
4868         checksum', `designsize' instead of `design_size'.
4869
4870 Mon Oct  8 00:38:55 1990  James Clark  (jjc at jclark)
4871
4872         * eqn/*.[chy]: Change underaccent to uaccent.
4873
4874         * eqn/eqn.y: Add rule for underaccent.  Declare UNDERACCENT token;
4875         give it the same precedence as ACCENT.
4876         * eqn/other.c (make_underaccent_box): New function.
4877         * eqn/box.h: Declare it.
4878         * eqn/lex.c: Add UNDERACCENT to token_table. Add utilde to
4879         def_table.
4880
4881 Sun Oct  7 11:25:16 1990  James Clark  (jjc at jclark)
4882
4883         * pic/pic.y (reset_all): New function. Called in rule for RESET.
4884         (parse_init): Call reset_all.
4885         (define_variable): When defining scale reset only those
4886         pre-defined variables that are scaled.
4887         (defaults_table): Add `scale' as non-scaled value.
4888
4889         * pic/pic.y: Redo parsing of text adjustments: parse adjustments
4890         together with the text; allow any number of positioning words;
4891         allow center as a positioning word.
4892
4893         * pic/object.c (output::compute_scale): Get picture maximum height
4894         and width from variables called maxpswid and maxpsht.
4895         * pic/pic.y: Add maxpswid and maxpsht to defaults_table.
4896
4897 Sat Oct  6 10:16:56 1990  James Clark  (jjc at jclark)
4898
4899         * pic/object.c (object_spec::make_text): Multiply textht by number
4900         of text items.
4901
4902         * pic/pic.y: Allow `sprintf("string", expr,...)' wherever text can
4903         occur.
4904         (do_sprintf): New function.
4905         (pic.gperf): Add sprintf token.
4906         (text, sprintf): New rules.
4907
4908         * pic/pic.y: `rand()' with no arguments returns a random number
4909         in the range [0,1).
4910
4911         * pic/pic.y: Allow a bare expression to be an attribute: change
4912         precedences to support this.  Change optional_ordinal rule to
4913         optional_ordinal_last to avoid reduce/reduce conflict.
4914         * pic/object.c (object_spec::object_spec): Initialize direction.
4915
4916         * pic/pic.y: Implement ^ operator meaning exponentiation.
4917
4918         * troff/node.h: Add default argument to mount_font.
4919         * troff/node.c (font_position): Read an optional third argument
4920         giving the external_name.
4921         (mount_font): Add optional argument giving the external_name.
4922         (mount_font_not_translate): Have additional argument giving
4923         external name.  Use this name to load the font.  Pass both names
4924         to font_info::font_info.
4925         (font_info::font_info): Have additional argument giving
4926         external_name.
4927         (class tfont): New member external_name.
4928         (font_info::get_tfont): Use external name to construct tfont_spec.
4929
4930 Fri Oct  5 04:03:13 1990  James Clark  (jjc at jclark)
4931
4932         * eqn/lex.c (init_table): Add argument giving device.  Define
4933         name of device to be "1".
4934         (do_ifdef): Counts as true if the argument has been defined with
4935         `define'.
4936         * eqn/main.c (main): Call init_table with device argument. Make
4937         device local to main.
4938         * eqn/eqn.h: Change declaration of init_table. Remove declaration
4939         of device.
4940
4941         * pic/lex.c (get_delimited): Allow text to be delimited by
4942         matching {}s.  Don't recognize ending delimiter within a string.
4943
4944         * troff/input.c (get_delim_name): New function.
4945         (token::next): Implement \C.
4946
4947         * lib/font.c (font::load): Grok ---.  Add an alias for each
4948         character based on its code.
4949         (font::get_code_width): Deleted.
4950         * lib/font.h (class font): Declare font::number_to_index().
4951         Remove declaration of font::get_code_width.
4952         * lib/nametoindex.c (font::name_to_index): Add 512 rather than 256
4953         to indices of named characters.
4954         (font::number_to_index): New function.
4955         * troff/input.c (font::number_to_index): New function.
4956         (get_charinfo_by_number, charinfo::get_number,
4957         charinfo::set_number): New functions.
4958         (token::next): Turn \N into a TOKEN_NUMBERED_CHAR.
4959         (token::process, token::description, token::get_char,
4960         token::add_to_node_list, token::operator==): Handle
4961         TOKEN_NUMBERED_CHAR.
4962         * troff/charinfo.h: Declare get_charinfo_by_number,
4963         charinfo::get_number, charinfo::set_number.  Add NUMBERED flag to
4964         charinfo class.
4965         (charinfo::numbered): New function.
4966         * troff/token.h: Add TOKEN_NUMBERED_CHAR.
4967         * troff/env.h (class environment): Remove declaration of ...
4968         * troff/env.c (environment::make_numbered_char_node): Deleted.
4969         * troff/node.c (make_numbered_node): Deleted.
4970         (class numbered_glyph_node): Remove.
4971         (troff_output_file::put_char_width, troff_output_file::put_char):
4972         Handle numbered chars.
4973         (troff_output_file::numbered_char): Removed.
4974         (tfont::get_code_width): Removed.
4975         (make_glyph_node): Don't search special fonts for numbered
4976         characters.
4977         * troff/node.h: Remove declaration of make_numbered_node.
4978         * driver/input.c (do_file): Handle N command.
4979         * driver/printer.h: Add declaration of ...
4980         * driver/printer.c (printer::set_numbered_char): New function.
4981         * dvi/tfmtodit.c (main): Generate unnamed entries.
4982         * ps/devps/afmtodit: Likewise.
4983         * xditview/xtotroff.c (MapFont): Likewise.
4984         * xditview/libXdvi/parse.c (ParseInput): Grok N command.
4985
4986         * tbl/main.c (process_format): If multiple widths are specified
4987         for a column but all the widths are the same, don't give an error
4988         message.
4989
4990         * tbl/table.c (table::do_row): If the current row is all lines and
4991         the stuff doesn't contains a line, mark the top of the row after
4992         printing stuff before the row.  If the current row is not all
4993         lines and the stuff doesn't contain a line, don't unnecessarily
4994         mark the top of the row before printing the stuff.
4995         
4996 Mon Oct  1 11:42:00 1990  James Clark  (jjc at jclark)
4997
4998         * troff/groff.h: Remove MAX_PATH.
4999         * troff/input.c (open_file): Dynamically allocate space for the
5000         path.
5001         (open_mac_file, process_macro_file): Corresponding changes.
5002
5003 Sun Sep 23 18:56:26 1990  James Clark  (jjc at jclark)
5004
5005         * troff/node.h (class output_file): Make copy_file pure.  Add
5006         vspace method ifdef COLUMN. Add is_printing method.
5007         * troff/node.c: Add class printing_reg. Add class
5008         real_output_file. Derive other output_file classes from
5009         real_output_file; in these classes rename begin_page to
5010         really_begin_page, print_line to really_print_line, copy_file to
5011         really_copy_file, transparent_char to really_transparent_char.
5012         Move output_file::flush to real_output_file. Add printing member
5013         to class output_file.
5014         * troff/div.h: Remove printing member from top_level_diversion.
5015         Add vspace member function to class diversion ifdef COLUMN. Add
5016         some declarations ifdef COLUMN.
5017         * troff/div.c (top_level_diversion::copy_file,
5018         top_level_diversion::transparent_output,
5019         top_level_diversion::output): Don't test printing member before
5020         output.
5021         * troff/input.c: Handle initial variable_space_request ifdef
5022         COLUMN.
5023         * troff/Makefile: Add column.c but comment it out. Add -DCOLUMN
5024         but comment it out.
5025
5026 Sat Sep 22 11:32:22 1990  James Clark  (jjc at jclark)
5027
5028         * troff/div.c (diversion::need): Make any space forced.  If we
5029         sprung a trap, set truncated_space to minus the distance to the
5030         trap and set needed_space to the amount that was needed.
5031         (top_level_diversion::space): A forced space turns no_space_mode
5032         off.
5033         (class constant_vunits_reg): New class.
5034         (init_div_requests): Implement number registers .trunc and .ne
5035         using constant_vunits_reg.
5036         (class truncated_space_reg): Deleted.   
5037
5038         * troff/div.h: Don't have a no_space_mode member in diversion.
5039         Instead have it in top_level_diversion.
5040         * troff/div.c (diversion::diversion): Don't initialize
5041         no_space_mode.
5042         (top_level_diversion::top_level_diversion): Initialize
5043         no_space_mode.
5044         (no_space, restore_spacing): Do nothing if curdiv != topdiv.
5045         (macro_diversion::output): Don't clear no_space_mode.
5046
5047         * troff/input.c (diverted_space_node::reread): Don't call
5048         environment::do_break.  In fill mode, act like a blank line.
5049         (diverted_copy_file_node::reread): Don't call
5050         environment::do_break.
5051
5052         * troff/div.c (blank_line): New function.
5053         * troff/div.h: Declare it.
5054         * troff/input.c (process_input_stack): Call it.
5055
5056         * troff/div.c (truncated_space_reg::get_string): New function.
5057         (init_div_requests): Bind to .trunc.
5058         (space_request, top_level_diversion::space,
5059         top_level_diversion::output, macro_diversion::space,
5060         macro_diversion::output): Update truncated_space.
5061         (macro_diversion::output): Redo calculations when trap sprung.
5062         (macro_diversion::output, macro_diversion::space): No need for
5063         trap_flag.
5064
5065         * troff/div.c (top_level_diversion::output): Set nl_reg_contents
5066         after truncating post line spacing.
5067
5068 Fri Sep 21 11:27:25 1990  James Clark  (jjc at jclark)
5069
5070         * ps/devps/prologue (MF, SF): Make them work even if setfont is
5071         defined as a procedure rather than as an operator.
5072
5073 Thu Sep 20 12:55:05 1990  James Clark  (jjc at jclark)
5074
5075         * troff/div.c (macro_diversion::space): Ignore no_space_mode.
5076
5077 Wed Sep 19 10:54:37 1990  James Clark  (jjc at jclark)
5078
5079         * troff/div.c (top_level_diversion::output): Merge
5080         output_file::print_line and output_file::end_of_line member
5081         functions.
5082         * troff/div.h (class output_file):
5083         * troff/node.c (troff_output_file::print_line,
5084         troff_output_file::end_of_line, output_file::end_of_line,
5085         ascii_output_file::print_line, suppress_output_file::print_line):
5086         Corresponding changes.  
5087
5088 Tue Sep 18 11:31:47 1990  James Clark  (jjc at jclark)
5089
5090         * troff/input.c (token::next): Don't give a warning for `\.'.
5091
5092         * troff/env.c (environment::get_center_lines): New function.
5093         (init_env_requests): Bind number register .ce to it.
5094         * troff/env.h: Declare it.
5095         * tbl/table.c (table::init_output): Define reset macro to restore
5096         .ce.  If center option not given, store .ce in SAVED_CENTER_REG.
5097         Then do .ce 0.
5098         (table::print): If center option not given, then imply center
5099         option if SAVED_CENTER_REG > 0.
5100
5101 Mon Sep 17 09:19:19 1990  James Clark  (jjc at jclark)
5102
5103         * ps/devps/Makefile: Remove T from FONTS. Remove TSymbol.ps and
5104         Troff.ps from DOWNLOAD.
5105         
5106         * troff/Makefile: Change comment in DEFINES to avoid confusing
5107         System V make.
5108
5109         * ps/ps.c (ps_printer::do_exec): Allow newlines within PostScript
5110         code.  Don't try to catch errors with stopped.
5111         (check_line_lengths): New function.
5112         * ps/devps/prologue (EXEC): Deleted.
5113         (EBEGIN, EEND): New procedures.
5114
5115 Sun Sep 16 14:51:15 1990  James Clark  (jjc at jclark)
5116
5117         * troff/input.c: Include request.h before node.h.
5118         * troff/node.c: Likewise.
5119         * troff/env.c: Likewise.
5120         * troff/div.c: Likewise.
5121         * troff/node.h (class special_node): Store argument as a macro
5122         rather than a char *.
5123         * troff/node.c (special_node::special_node, special_node::copy):
5124         Grok this.
5125         (special_node::~special_node): Deleted.
5126         (special_node::tprint): Deleted.
5127         (special_node::tprint_start, special_node::tprint_end,
5128         special_node::tprint_char): New functions.
5129         (troff_output_file::special): Deleted.
5130         (troff_output_file::start_special, troff_output_file::end_special,
5131         troff_output_file::special_char): New functions.
5132         * troff/input.c (special_node::tprint): New function.
5133         (do_special): Use macro not char *.
5134         (do_transparent_macro): Deleted.
5135         (token::next): Don't call do_transparent_macro.
5136
5137         * troff/input.c (token::next): Add 'Y' case.
5138         (do_transparent_macro): New function.
5139         * troff/node.c (troff_output_file::special): Handle newlines with
5140         argument using new continuation convention.
5141         * driver/input.c (get_string): Cope with continuation convention.
5142         (do_file): Don't call skip_line after calling get_string(1).
5143         * ps/ps.c (ps_printer::special, ps_printer::do_import,
5144         ps_printer::do_def, ps_printer::do_exec): Cope with newlines in
5145         arg.
5146         * xditview/libXdvi/parse.c (ParseInput): Ignore lines starting
5147         with +.
5148
5149 Sat Sep 15 19:00:10 1990  James Clark  (jjc at jclark)
5150
5151         * troff/input.c (asciify): By default, illegal input characters
5152         should return empty string.
5153
5154         * troff/input.c (copy_file): Handle first page transition like title.
5155         (token::next, process_input_stack): Grok COPY_FILE_REQUEST.
5156
5157         * troff/input.c (token::next): Improve error message for EOF after
5158         escape character.
5159         (input_char_description): New function.
5160         (get_char_for_escape_name): Use input_char_description.
5161         (token::next): Warn about unrecognized escape sequences.
5162         (warning_table): Add WARN_ESCAPE.
5163         * troff/groff.h: Declare WARN_ESCAPE. Change WARN_TOTAL
5164         accordingly.
5165
5166         * troff/token.h: Remove declaration of process_input_stack.
5167
5168         * troff/input.c: Remove declaration of init_hyphen_requests.
5169         * troff/request.h: Correct spelling in declaration of same.
5170
5171         * troff/input.c (token::next): Check whether escape_char is 0.
5172
5173 Fri Sep 14 12:09:25 1990  James Clark  (jjc at jclark)
5174
5175         * groff.c (main, usage, help): Implement -P and -L options.
5176         * groff.sh: Likewise.
5177
5178         * troff/input.c (token::next): Use some gotos to avoid code
5179         duplication.
5180
5181         * troff/input.c (get_long_name, get_name, read_long_ecsape_name):
5182         Avoid calling symbol::symbol if name empty.
5183
5184 Thu Sep 13 06:21:45 1990  James Clark  (jjc at jclark)
5185
5186         * troff/input.c (init_input_requests): Make \n(.x return the major
5187         version number and \n(.y return the minor version number.
5188         * troff/Makefile: Construct file majorminor.c defining
5189         major_version and minor_version automatically from ../VERSION.
5190
5191         * troff/node.c (class glyph_node): Make operator new and operator
5192         delete public.
5193         (class ligature_node): Similarily.
5194
5195         * troff/input.c (operator==(const macro &, const macro &)): New
5196         function.
5197         (non_interpreted_node::same): Use this.
5198         (string_iterator::string_iterator): Make macro& argument const.
5199
5200         * troff/input.c (input_iterator::get): New function. Don't make
5201         asciify_macro or class non_interpreted_node friends of class
5202         input_iterator.
5203         (non_interpreted_node::interpret): Use input_iterator::get.
5204         (asciify_macro): Likewise.
5205
5206         * troff/input.c (~token_node, ~string_iterator, ~arg_list,
5207         ~non_interpreted_node): Deleted.
5208         * troff/node.c: (~suppress_output_file, ~ascii_output_file):
5209         Deleted.
5210
5211         * troff/symbol.h: Make all symbol member functions const.
5212
5213         * lib/strtol.c: New file.
5214         * lib/Makefile: Add strtol.c.
5215         * Makefile: Define STRTOL as strtol.o to include strtol in
5216         libgroff.a.
5217
5218 Wed Sep 12 10:00:49 1990  James Clark  (jjc at jclark)
5219
5220         * pic/troff.c (troff_output::simple_circle): Divide by scale.
5221
5222 Tue Sep 11 14:17:16 1990  James Clark  (jjc at jclark)
5223
5224         * troff/input.c (do_special): Use input_level.
5225
5226         * troff/token.h (TOKEN_BACKSPACE): New token.
5227         (token::backspace): New function.
5228         * troff/input.c (token::description, token::next, token::process):
5229         Grok TOKEN_BACKSPACE.
5230         (do_special): Turn TOKEN_BACKSPACE back into \b.
5231
5232         * troff/token.h (token::leader): New function.
5233         * troff/input.c (do_special): Turn TOKEN_LEADER back into \001.
5234
5235         * troff/input.c (do_special): Turn TOKEN_TAB back into \t.
5236
5237         * troff/input.c (do_special): Use token::description in error
5238         message.
5239
5240 Mon Sep 10 11:06:27 1990  James Clark  (jjc at jclark)
5241
5242         * troff/input.c (decode_args): Combine quoted and
5243         quote_input_level variables. Make it a for (;;) loop.
5244
5245         * troff/input.c (get_char_for_escape_name): Check for \001 and \b.
5246
5247         * troff/input.c (read_long_escape_name): The test for whether to
5248         expand buffer was off by 1.
5249         (read_string): Similarily.
5250
5251 Fri Sep  7 11:45:50 1990  James Clark  (jjc at jclark)
5252
5253         * troff/input.c: Use `const int' rather than `static const int'.
5254
5255         * troff/div.h (diversion::copy_file): Declare as pure virtual.
5256         (macro_diversion::copy_file): New function.
5257         * troff/node.h: New class diverted_copy_file_node.
5258         * troff/node.c: Implement it.
5259         * troff/input.c (copy_file): Use diversion::copy_file. Handle
5260         first page transition by pushing a diverted_copy_file_node.
5261         * troff/input.c (token::next, process_input_stack): Don't handle
5262         COPY_FILE_REQUEST.
5263
5264 Thu Sep  6 13:29:10 1990  James Clark  (jjc at jclark)
5265
5266         * ps/ps.c (flush_sbuf): Remember to add sbuf_kern when checking
5267         whether space widths need adjusting.
5268
5269         * troff/charinfo.h: Generalize translated_to_space to
5270         special_translation so as to allow translation to \&.
5271         * troff/input.c (translate): Allow translation to \&.
5272         (charinfo::*): Corresponding changes.
5273         * troff/node.c (make_node, node::add_char): Corresponding changes.
5274         * troff/node.h (dummy_node::dummy_node): Allow optional first
5275         argument.
5276
5277         * lib/lib.h: Make codes 0200 to 0237 illegal input characters.
5278         * troff/token.h: Remove TOKEN_TITLE. Remove token::title. Add
5279         TOKEN_REQUEST.
5280         * troff/input.c (token::next): Turn a TITLE_REQUEST into a
5281         TOKEN_REQUEST with an argument of TITLE_REQUEST.
5282         (token::process): Grok that.
5283         * troff/input.c (copy_file): Handle first page transition like
5284         title by pushing a COPY_FILE_REQUEST cookie.
5285         (token::next, process_input_stack): Grok that.
5286         * troff/node.h (output_file::copy_file): Add x and y arguments.
5287         Make it non-pure.
5288         * troff/div.c (top_level_diversion::copy_file): Supply them.
5289         * troff/node.c (troff_output_file::copy_file): Add x and y
5290         arguments; moveto specified position.  Invalidate font_position
5291         array after copying file.
5292         (output_file::copy_file): New function.
5293         (suppressed_output_file::copy_file, ascii_output::copy_file):
5294         Removed.
5295         * troff/input.c (transparent_file): New function.
5296         (init_input_requests): Bind to "trf".
5297         (token::next): Handle TRANSPARENT_FILE_REQUEST cookie.
5298         (process_input_stack): Likewise.
5299
5300         * troff/Makefile: Add ../lib/lib.h to GROFF_H.
5301
5302         * troff/node.c (init_node_requests): New number registers .kern
5303         pointing to global_kern_mode, and .lg pointing to
5304         global_ligature_mode.
5305
5306         * troff/node.c (ligature): Don't change it if we get a bad
5307         integer.
5308
5309         * troff/input.c (do_define_string): Don't strip tabs.
5310
5311         * troff/input.c (asciify_macro): Make the string_iterator auto.
5312
5313         * troff/node.c (init_font_requests): Rename to...
5314         (init_node_requests):
5315         * troff/node.h: Change declaration.
5316         * troff/input.c (main): Change call.
5317
5318         * troff/input.c (node::reread, diverted_space_node::reread): New
5319         methods.
5320         (process_input_stack): Call reread rather than
5321         get_diverted_space_node.
5322         * troff/node.c (node::get_diverted_space_node,
5323         diverted_space_node::get_diverted_space_node): Removed.
5324         * troff/node.h: Declare reread methods instead of
5325         get_diverted_space_node methods. Make `n' member private.
5326         * troff/input.c: (token::diverted_space): Removed.
5327         * troff/token.h: Removed declaration.
5328         
5329
5330 Tue Sep  4 00:48:04 1990  James Clark  (jjc at jclark)
5331
5332         * eqn/script.c (script_box::compute_metrics): Don't let
5333         SUP_RAISE_FORMAT become negative.
5334
5335         * tbl/table.c (table::do_row): Entries that don't end in the
5336         this row shouldn't make the row non-blank.
5337         
5338         * tbl/table.c (table::make_columns_equal): Only set the width of
5339         columns which are marked as equal.
5340         
5341         * tbl/main.c (process_data): Before issuing excess data error,
5342         if last character was a newline unget it; then get it again after
5343         the error.  Also include the contents of the entry in the message.
5344
5345         * groff.c: New file.
5346         * Makefile: Build groff from groff.c.  Make it possible to use
5347         either groff.sh or groff.c as groff.
5348         * Makefile.bd: Similarily.
5349
5350 Mon Sep  3 09:39:49 1990  James Clark  (jjc at jclark)
5351
5352         * groff.sh: Don't delay expansion of $@ in assignment to files.
5353         Remove occurrences of \".
5354
5355 Sun Sep  2 09:56:59 1990  James Clark  (jjc at jclark)
5356
5357         * all Makefiles: Simplify and rearrange.
5358
5359         * Makefile: Handle fmod like malloc.
5360         * lib/Makefile: Similarily.
5361         * lib/fmod.c: Remove #ifdef NEED_FMOD.
5362
5363         * Makefile: Rename OPTIMISE to OPTIMIZE.
5364
5365         * groff.sh: Remove assignment to PATH.
5366         * Makefile: Remove SHPATH variable.
5367         * Makefile.bd: Similarily.
5368
5369         * groff.sh: Add -V option to print the pipeline instead of
5370         executing it.
5371
5372 Fri Aug 31 00:56:46 1990  James Clark  (jjc at jclark)
5373
5374         * lib/font.c: Split off file searching into ...
5375         * lib/fontfile.c: New file.
5376
5377         * lib/strerror.c (strerror): Use `Error %d' for unknown errors.
5378
5379 Thu Aug 30 13:13:55 1990  James Clark  (jjc at jclark)
5380
5381         * tbl/table.c (table::do_hspan): Delete assertion that e != 0.
5382         Also change misleading comment.
5383         (table::do_vspan): Change similarily misleading comment.
5384         * tbl/main.c (process_data): A format row with an explicit `s'
5385         uses up a data line, even if all the other columns are `_' or `='.
5386
5387         * troff/input.c (token::description): Fix description of
5388         TOKEN_DUMMY and TOKEN_EMPTY.
5389
5390 Wed Aug 29 04:12:08 1990  James Clark  (jjc at jclark)
5391
5392         * groff.sh: Fix description of -Z in help message.
5393
5394 Tue Aug 28 07:28:33 1990  James Clark  (jjc at jclark)
5395
5396         * pic/object.c (object_spec::make_object): Allow negative and zero
5397         line thicknesses.
5398         * pic/pic.y: Give linethick default value of -1.0.
5399         * pic/troff.c (troff_output::troff_output): Initialize
5400         last_line_thickness to BAD_THICKNESS.
5401         (troff_output::finish_picture): Set thickness to BAD_THICKNESS.
5402         (troff_output::line_thickness): Canonicalize negative thicknesses
5403         to RELATIVE_THICKNESS.
5404         * pic/tex.c (tex_output::set_pen_size): Silently map negative line
5405         thicknesses to DEFAULT_PEN_SIZE. Canonicalize negative pen sizes
5406         to -1.0.
5407         (tex_output::start_picture): Set pen_size to -2.0.
5408
5409         * ps/ps.c (ps_printer::set_line_thickness): If line_thickness is
5410         0, then use 0 linewidth.
5411         (ps_printer::ps_printer): Initialize line_thickness to -1.
5412
5413         * pic/troff.c (troff_output::simple_ellipse): Divide by scale.
5414
5415         * ps/devps/symbolchars: Remove `or'.
5416         * ps/tmac.ps: Implement \(or with .char.
5417
5418         * ps/devps/symbolchars: Move most characters into textmap.
5419         * ps/devps/textmap: Add names for troff bracket characters. Remove
5420         ul, ru, br, bv.
5421
5422         * ps/devps/TSymbol.ps: Removed.
5423         * ps/devps/FontMakefile: Make S from Symbol not TSymbol.
5424         * ps/tmac.ps: Do with .char what TSymbol did.
5425         * ps/devps/download: Remove TSymbol.
5426
5427         * ps/devps/T: Removed.
5428         * ps/devps/Troff.ps: Removed.
5429         * ps/devps/Troff.afm: Removed.
5430         * ps/tmac.ps: Implement \(ru, \(ul, and \(br with .char.
5431         * ps/devps/download: Remove Troff.
5432         * ps/devps/FontMakefile: Remove T target.
5433         * ps/devps/DESC-A4: Remove T from font list.
5434         * ps/devps/DESC-letter: Likewise.
5435
5436         * troff/input.c (macro_to_node): Rename to ...
5437         (charinfo_to_node): Don't pass mac argument.  Temporarily remove the
5438         character's definition while processing it.
5439         * troff/node.c (node::add_char, make_node): Change calls to
5440         macro_to_node accordingly.
5441
5442         * troff/input.c (token::next): Translate \_ to \(ul.
5443
5444         * tty/devascii/R.proto: Add `|'.
5445         * tty/devlatin1/R.proto: Likewise.
5446
5447 Mon Aug 27 11:25:41 1990  James Clark  (jjc at jclark)
5448
5449         * man: Put the version number in all the man pages.
5450
5451 Sun Aug 26 11:40:05 1990  James Clark  (jjc at jclark)
5452
5453         * Makefile.bd: New file.
5454         * README.bd: New file.
5455
5456         * VERSION: New file.
5457         * lib/version.c: Removed.
5458         * lib/Makefile: Create version.c from ../VERSION. Remove version.c
5459         in clean target.
5460
5461         * troff/input.c (main): Get hyphen_file from GROFF_HYPHEN
5462         environment variable.
5463
5464         * all Makefiles: Split install target into install.bin for
5465         binaries, and install.nobin for everything else.
5466         * Makefile: Add bindist target.
5467
5468         * man/afmtodit.man: New file.
5469         * man/Makefile: Add afmtodit.n to MAN1PAGES.
5470         * ps/devps/Makefile: Add textmap to DEVICEFILES. Install afmtodit
5471         in BINDIR.
5472         * ps/Makefile: Pass BINDIR to make install in devps.
5473
5474         * ps/ps.c (ps_printer::set_char): Do nothing if the character is
5475         the space character.
5476
5477         * ps/devps/FontMakefile: Rename symbol.afm to tsymbol.afm.
5478
5479 Sat Aug 25 15:39:03 1990  James Clark  (jjc at jclark)
5480
5481         * ps/ps.c: Redo font downloading.
5482         * ps/devps/download: New file.
5483         * ps/devps/Makefile: Add download to DEVICEFILES.
5484         * ps/devps/afmtodit: Remove -d option.
5485         * ps/devps/FontMakefile: Don't use -d option with afmtodit.
5486         * ps/devps/symbosl.ps: Add %%DocumentFonts comment.
5487         * ps/devps/zapfdr.ps: Likewise.
5488         * ps/devps/TSymbol.ps: Likewise.
5489
5490 Fri Aug 24 20:10:30 1990  James Clark  (jjc at jclark)
5491
5492         * groff.sh: Initialize dev to ${GROFF_TYPESETTER:-@DEVICE@}.
5493
5494 Thu Aug 23 10:03:47 1990  James Clark  (jjc at yquem)
5495
5496         * ps/ps.c (ps_output::include_file): If BROKEN_SPOOLER is defined,
5497         then strip the first line if it starts with %.
5498         * Makefile: Add a comment about this.
5499
5500         * man/tfmtodit.man: New file.
5501         * man/Makefile: Add tfmtodit.n to MAN1PAGES.
5502         * dvi/Makefile: Install tfmtodit in BINDIR.
5503
5504         * dvi/tfmtodit.c (usage): Mention -v option.
5505
5506 Wed Aug 22 09:56:36 1990  James Clark  (jjc at yquem)
5507
5508         * troff/node.c (troff_output_file::end_of_line): Call do_motion.
5509         * troff/node.c (troff_output_file::transparent_char): Don't call
5510         flush_tbuf.
5511
5512         * eqn: Add check_tabs method to most box classes.
5513         * eqn/box.c (box::top_level): Call check_tabs.
5514
5515         * eqn/script.c (script_box::output): Use \Z.
5516         * eqn/limit.c (limit_box::output): Use \Z.
5517
5518         * eqn/box.c (box::top_level): Use itoa.
5519
5520 Tue Aug 21 09:29:28 1990  James Clark  (jjc at yquem)
5521
5522         * dvi/tmac.dvi: Add font translations for CR, C, TT.
5523         * dvi/devdvi/Makefile: Don't make links to CW.
5524
5525         * ps/tmac.ps: Add font translations for C, CW, CO, CX, CD, H, HO,
5526         HX, HD.
5527         * xditview/tmac.X: Likewise.
5528
5529         * troff/node.c: Add font translation feature.
5530         (get_font_translation): New function.
5531         (symbol_fontno): Translate the font name.
5532         (mount_font_no_translate): Rename to mount_font to this.
5533         (mount_font): New function.
5534         (font_family::make_definite): Call mount_font_no_translate instead
5535         of mount_font.
5536         (mount_style): Translate the font name.
5537         (font_translate): New function.
5538         (init_font_requests): Bind "ftr" to font_translate.
5539
5540         * ps/devps/prologue (SN): New procedure that rounds a position to
5541         the nearest (pixel + (.25,.25)).
5542         (DL): Use SN to round endpoints.
5543
5544         * lib/version.c: Changed version to 0.5.
5545
5546 Sat Aug 18 04:43:21 1990  James Clark  (jjc at yquem)
5547
5548         * Makefile: Move definition of PAGE to the very beginning, so that
5549         people are less likely to miss it.
5550
5551 Fri Aug 17 02:15:11 1990  James Clark  (jjc at yquem)
5552
5553         * man/Makefile: Don't need to sed out @UPCASE_PROG_PREFIX@.
5554
5555         * troff/env.c (environment::choose_breakpoint): Make `can't find
5556         breakpoint' error a warning of type WARN_BREAK.  Change message to
5557         `can't break line'.
5558         * troff/groff.h: Declare WARN_BREAK with code 4; change WARN_INPUT to
5559         code 040000.
5560         * troff/input.c: Add WARN_BREAK to warning_table.  Include
5561         WARN_BREAK in DEFAULT_WARNING_MASK.
5562
5563         * tty/tmac.tty: Add definition of \(+-.
5564
5565         * groff.sh: Remove `--' option to set command.
5566
5567         * dvi/devdvi/texsy.map: Remove duplicate md entry.
5568
5569         * ps/devps/eqnchar: Better definition of cdot using md.
5570         * dvi/devdvi/eqnchar:  Likewise.
5571         * xditview/devX100/eqnchar:  Likewise.
5572         * xditview/devX75/eqnchar: Likewise.
5573         * eqn/lex.c: Add definition of cdot.
5574
5575 Thu Aug 16 09:33:57 1990  James Clark  (jjc at yquem)
5576
5577         * troff/input.c (get_optional_char): New function.
5578         * troff/input.c (set_page_character): Use get_optional_char(),
5579         rather than has_arg() and tok.get_char(1).
5580         * troff/env.c (tab_character, leader_character, hyphen_char,
5581         field_characters): Likewise.
5582         (margin_character): Likewise.  Also always delete the
5583         margin_character_node.
5584
5585         * troff/input.c (token::get_char): Use token::description.
5586
5587         * troff/input.c (has_arg): Don't skip over tab and \}.
5588         * troff/number.c (start_number): Give a warning if the number
5589         starts with \} (WARN_RIGHT_BRACE) or tab (WARN_TAB).
5590
5591 Wed Aug 15 10:04:37 1990  James Clark  (jjc at yquem)
5592
5593         * troff/input.c (empty_name_warning, non_empty_name_warning): New
5594         functions.
5595         (get_name, get_long_name): Use these.  Rename `warn' argument to
5596         `required'.
5597
5598         * troff/node.c (get_fontno): Test that the symbol is not null.
5599
5600         * troff/input.c (token::description): New function.
5601         * troff/number.c (parse_term): Use token::description in `numeric
5602         expression expected' message.
5603         * troff/groff.h: Add WARN_MISSING.
5604         * troff/number.c (start_number): New function.
5605         * troff/number.c (get_vunits, get_hunits, get_number, get_integer,
5606         get_incr_number): Use start_number().
5607         * troff/input.c (DEFAULT_WARNING_MASK): Enable WARN_NUMBER by
5608         default.
5609         * troff/input.c (get_name, get_long_name): Use WARN_MISSING.
5610         * troff/reg.c (alter_format): Use WARN_MISSING. Also use
5611         token::descripion.
5612         * troff/input.c (token::get_char): Use WARN_MISSING.
5613         * troff/input.c (token::delimiter): Use token::description.
5614         * troff/env.c (environment_switch): Back out Aug 3 change.
5615         * troff/input.c (has_arg): Skip over \}s and tabs but give a
5616         warning.
5617         * troff/token.h (token::tab): New function.
5618         * troff/node.c (get_fontno): Use tok.skip() rather than has_arg().
5619         * troff/reg.c (alter_format): Likewise.
5620         * troff/node.c (bold_font): Use has_arg() rather than tok.skip().
5621
5622 Tue Aug 14 10:11:21 1990  James Clark  (jjc at yquem)
5623
5624         * troff (most files): Redo warnings. Divide warnings into various
5625         categories; warning() has an additional first argument indicating
5626         the category it falls into.
5627         * troff/input.c (main): -w now takes an argument. New option -W.
5628         (enable_warning, disable_warning): New functions.
5629
5630         * ps/devps/afmtodit: Add -a option to lie about the italic angle.
5631         * ps/devps/FontMakefile: Pretend TI has an angle of 7.
5632
5633 Mon Aug 13 10:11:16 1990  James Clark  (jjc at yquem)
5634
5635         * ps/devps/eqnchar: Better definitions of dotdot, vec, dyad, inf.
5636         * xditview/devX100/eqnchar: Likewise. Remove definition of dot.
5637         * xditview/devX75/eqnchar: Likewise.
5638         * dvi/devdvi/eqnchar: Better definitions of vec, dyad, dotdot.
5639
5640         * eqn/other.c: When bar or over applies to a single character
5641         don't produce an overline_box or an underline_box. Instead produce
5642         an accent_box or an underaccent_box, with the accent a line
5643         whose width is accent_width.  New classes underaccent_box,
5644         overline_char_box and underline_char_box.
5645         * eqn/box.h: Move overline_box, underline_box, accent_box class
5646         declarations into eqn/other.c. Add declarations of
5647         make_underline_box, make_overline_box, make_accent_box.
5648         * eqn/eqn.y: Call make_overline_box, make_underline_box
5649         make_accent_box instead of constructors.
5650         * eqn/pbox.h, eqn/box.c: Add accent_width parameter.
5651
5652         * eqn/other.c: Add accent_box::~accent_box.
5653         * eqn/box.h: Declare it.
5654
5655         * groff.sh: With -Tps, use eqn -D.
5656
5657         * eqn/other.c (overline_box::output): Use \Z. If draw_flag use \D
5658         rather than \l.
5659         (underline_box::output): Similarily.
5660         (accent_box::output): Use \Z.
5661
5662         * xditview/tmac.X: Add definitions of ~ and ^ (so that they are a
5663         bit smaller.)
5664
5665 Sun Aug 12 09:41:15 1990  James Clark  (jjc at yquem)
5666
5667         * troff/div.c (top_level_diversion::transparent_output(unsigned
5668         char)): Use asciify.
5669         * troff/input.c (asciify): Don't make it static.
5670         * troff/token.h (asciify): Declare it.
5671         
5672         * troff/input.c (get_name, get_long_name, token::get_char,
5673         token::delimiter): Add an extra default argument which says
5674         whether a warning should be printed.
5675         * troff: Pass a non-zero argument to one of these rather than
5676         printing a warning directly.
5677
5678 Sat Aug 11 09:02:21 1990  James Clark  (jjc at yquem)
5679
5680         * troff: Consistently use symbol::is_null.
5681
5682         * troff/dictionary.h: Move some inline functions into
5683         dictionary.c.
5684
5685         * troff/request.h: Move inline functions into input.c.
5686         (request_or_macro::invoke): Make it pure.
5687
5688         * troff/input.c, troff/reg.h: New class `constant_int_reg'.
5689         * troff/input.c (init_input_requests): Use class constant_int_reg.
5690         (class compatible_reg): Deleted.
5691         * troff/div.c (init_div_requests): Use class constant_int_reg.
5692         (class last_post_line_extra_space_reg): Deleted.
5693
5694         * troff/env.c (tab_character): Don't change the tab character if
5695         we get an invalid argument.
5696         (hyphen_char): Similarily.
5697
5698         * troff/reg.c (alter_format): Check that nm is not null.
5699
5700         * Makefile, groff.sh: Make it possible to customize the commands
5701         used for printing PostScript and dvi files. Also make it possible
5702         to customize the path used by groff.sh.
5703
5704         * eqn/eqn.y: Make `left' right associative.
5705
5706 Fri Aug 10 18:20:39 1990  James Clark  (jjc at yquem)
5707
5708         * pic/pic.h: Added definition of M_SQRT2 for those systems that
5709         don't have it.
5710
5711         * pic/pic.h: Removed definition of INT_MAX.
5712
5713         * troff/node.c (italic_corrected_node::vertical_extent): Omit
5714         `return'.
5715
5716         * troff/input.c (token::next):  Handle \R like \n.
5717
5718 Tue Aug  7 09:46:33 1990  James Clark  (jjc at yquem)
5719
5720         * ps/tmac.pc (PSPIC): Simplify.
5721
5722         * troff/env.c (tab_stops::to_string):
5723         * pic/pic.y (object_type_name):
5724         * pic/troff.c (simple_output::line):
5725         * pic/tex.c (tex_output::spline):
5726         * pic/object.c (object_spec::make_object):
5727         * tbl/main.c (process_data):  Add cases to switch statements to
5728         avoid cfront warnings. (Some of these are spurious, since the
5729         switch already has a default case.)
5730
5731         * ps/tmac.ps (PSPIC): Reformatted.  Prefix all local names with
5732         `ps-'.  Don't test systat; instead check number of arguments to
5733         ps-bb.
5734
5735 Mon Aug  6 00:13:07 1990  James Clark  (jjc at yquem)
5736
5737         * macros/tmac.e: Do not decrease the page offset by 0.5i.
5738
5739         * ps/ps.c (ps_printer::ps_printer): Use mktemp instead of tempnam.
5740         Unlink the file as soon as we have opened it, so that we don't
5741         have to bother with signal handlers.
5742         (handler): Deleted.
5743         (fatal_error_exit): Deleted.
5744         (main): Don't call signal.
5745
5746         * dvi/tfmtodit.c: Add -k option so that kerns with the skewchar
5747         can be ignored.
5748         * dvi/devdvi/Makefile: Use the -k option with S and MI.
5749
5750         * pic/pic.y:  If there is a label, or an nth construction before
5751         the first `.' in the argument to `with', ignore it and generate a
5752         warning.
5753         * pic/lex.c (lex_warning): New function.
5754
5755         * tbl/table.c (table::init_output): In section keep and release
5756         macro, use 0 indent when diverting and the correct indent when
5757         rereading.
5758
5759         * troff/input.c (interpolate_number_format): Do not interpolate
5760         anything if the number register is not defined.
5761
5762         * tbl/main.c (process_data): Don't add entry when col >= ncolumns.
5763
5764 Sat Aug  4 08:12:05 1990  James Clark  (jjc at yquem)
5765
5766         * ps/devps/prologue (PICTURE): Set components of graphics state to
5767         their default values.
5768
5769         * ps/devps/text.enc: Add trademark
5770         * ps/devps/textmap: Add names for club, spade, heart, diamond,
5771         carriagereturn, suchthat. Use Upsilon1 rather than Upsilon.
5772         * ps/devps/symbolchars: Add names for summation and product.
5773
5774         * dvi/devdvi/texsy.map: Add names for club, spade, heart, diamond,
5775         suchthat. Add pp. Add upper-case letters.
5776
5777         * xditview/libXdvi/DviChar.c: Add names for club, spade, heart,
5778         diamond, carriagereturn, suchthat. Use Upsilon1 rather than
5779         Upsilon.
5780
5781         * dvi/devdvi/texsy.map: Rename lA (left angle bracket) to la, and
5782         rA (right angle bracket) to ra.  Introduce names for double-headed
5783         arrows and double-barred arrows: <>, va, lA, rA, hA, uA, dA, vA.
5784         * ps/devps/textmap: Likewise for ps device.
5785         * xditview/libXdvi/DviChar.c: Likewise for X100 and X75 devices.
5786         * tty/devascii/R.proto: Rename lA to la and rA to ra.
5787         * tty/devascii/R.proto: Likewise.
5788         * tty/tmac.tty: Provide definitions for \(<>, \(lA, \(rA, \(hA,
5789         \(uA, \(dA.
5790         * eqn/delim.c: In delim_table, rename \(lA to \(la and \(rA to \(ra.
5791
5792         * xditview/tmac.X: Add definitions for \(fi \(fl \(ff \(Fi \(Fl.
5793
5794         * eqn/lex.c: Added definitions of `approx', `grad' and `del' to
5795         def_table.
5796
5797 Fri Aug  3 09:59:27 1990  James Clark  (jjc at yquem)
5798
5799         * troff/div.c (when_request): Use symbol::is_null rather than
5800         has_arg to determine whether we have an argument.
5801         (change_trap): Remove the trap if we get an invalid number. Give
5802         an error if we don't get at least the macro name.
5803         (diversion_trap): Remove trap if we get an invalid name or number.
5804
5805         * troff/env.c (environment_switch): Pop if we get an invalid
5806         symbol or numeric expression.
5807
5808         * troff/input.c (do_define_macro):  If EOF is encoutered while
5809         defining the macro, do tok.next() before returning.
5810
5811         * troff/token.h (has_arg): Move definition from here, to ...
5812         * troff/input.c (has_arg): ... here
5813
5814         * troff/env.c (space_size): Do nothing if we get an invalid argument.
5815         * troff/input.c (shift): Likewise.
5816
5817         * pic/lex.c (get_token_after_dot):  Accept `.center' as a synonym
5818         for `.c'.
5819
5820         * pic/troff.c (troff_output::start_picture):  Comment out calls to
5821         `..'.
5822
5823         * eqn/main.c (do_file): Subtract 1 from current_lineno if
5824         interpret_lf_args succeeds.
5825
5826         * eqn/main.c (do_file): Don't recognize delimiter if preceded by
5827         \\.  This avoids problems with \$N.
5828
5829         * groff.sh: Pass -C to preprocessors.
5830
5831         * lib/lf.c (interpret_lf_args):  Be more flexible.
5832
5833         * tbl/main.c (main): Add -C option.
5834         (table_input::get): Do not recognize TE if followed by character
5835         other than a space or newline unless -C option given.
5836         (process_input_file): Likewise for lf, TS.
5837         (process_data): Likewise for lf in text blocks.
5838
5839         * eqn/main.c (main): Add -C option.
5840         (do_file): Don't recognize EQ, EN or lf if followed by character
5841         other than space or newline unless -C option given.
5842         * eqn/lex.c (file_input::read_line): Similarily.
5843         * eqn/eqn.h: Declare compatible_flag.
5844
5845         * etc/soelim.c (main): Add -C option.
5846         (interpret_lf_args): Use version in libgroff.
5847         (do_file):
5848
5849         * pic/main.c (main): Add -C option, which sets compatible_flag.
5850         (top_input::get), (top_input::peek):  If -C option not given,
5851         do not recognize .PS/.PE/.PF/.lf if followed by a character
5852         other than space or newline.
5853         * pic/lex.c (file_input::read_line): Similarily.
5854         * pic/pic.h: Add declaration of compatible_flag.
5855
5856 Thu Aug  2 11:11:27 1990  James Clark  (jjc at yquem)
5857
5858         * ps/tmac.ps (PSPIC): Avoid use of `echo -n'.
5859
5860         * troff/node.c, troff/node.h:  Add `asciify' methods to classes
5861         derived from node.  New class space_char_hmotion_node.
5862         * troff/input.c (asciify_macro): New function.
5863         * troff/input.c (init_input_requests): New request `asciify' bound
5864         to asciify_macro.
5865         * macros/mm.diff: New file.
5866         * Makefile:  In install.mm target use `patch' to apply
5867         macros/mm.diff.
5868
5869         * troff/input.c (macro::print_size): Just print the size in bytes.
5870
5871         * troff/div.c (return_request): Correct the argument
5872         interpretation.
5873
5874 Wed Aug  1 12:38:36 1990  James Clark  (jjc at yquem)
5875
5876         * troff/node.h (class composite_node): Add sz member.
5877         * troff/node.c (composite_node::size): Return sz.
5878         * troff/input.c (macro_to_node):  Use the initial size in the
5879         environment as the size of the composite_node.
5880
5881         * troff/node.c (node::zero_width_tprint):  Provide a reasonable
5882         default.
5883
5884 Tue Jul 31 10:07:10 1990  James Clark  (jjc at yquem)
5885
5886         * troff/div.c (change_trap): If we get a bad number expression,
5887         do nothing.
5888
5889 Mon Jul 30 10:30:49 1990  James Clark  (jjc at yquem)
5890
5891         * lib/matherr.c (matherr): Define this only if math.h defines
5892         TLOSS.
5893
5894 Sun Jul 29 10:34:27 1990  James Clark  (jjc at yquem)
5895
5896         * troff/div.c (macro_diversion::distance_to_next_trap): If there
5897         no diversion trap return vunits(INT_MAX - vresolution).
5898
5899 Sat Jul 28 14:28:14 1990  James Clark  (jjc at yquem)
5900
5901         * troff/input.c (do_zero_width): New implementation that doesn't
5902         use a temporary environment. Use instead:
5903         (token::add_to_node_list): New function.
5904         * troff/env.c (environment::get_prev_char_height),
5905         (environment::get_prev_char_height),
5906         (environment::get_prev_char_skew): New functions.
5907         (environment::get_prev_char): New function.
5908         (environment::get_prev_char_width): Change to use get_prev_char.
5909         (init_env_request): Implement new registers .cht, .cdp, .csk.
5910         * eqn/sqrt.c (sqrt_box::output): Don't rely upon the argument to
5911         \Z being processed in a separate environment.
5912
5913 Fri Jul 27 10:21:25 1990  James Clark  (jjc at yquem)
5914
5915         * tbl/table.c: Removed TABLE_BOTTOM_REG.
5916
5917         * tbl/table.c (table::init_output): In the section release macro,
5918         give a warning message if the section won't fit on one page.
5919
5920         * tbl/table.c (table::do_top): Emit table keep only if table is
5921         boxed.
5922         (table::do_bottom): Likewise for table release.
5923         (table::table), (table::add_vertical_rule):  Remove reference to
5924         keep member.
5925         * tbl/table.h: Remove keep member.
5926
5927         * tbl/table.c: New register SUPPRESS_BOTTOM_REG. In
5928         SECTION_RELEASE_MACRO, if there's not enough space before the next
5929         trap to output the diversion, call T# ourselves, set
5930         SUPPRESS_BOTTOM_REG to 1, spring the trap, then set
5931         SUPPRESS_BOTTOM_REG back to 0.  In T#, do nothing if
5932         SUPPRESS_BOTTOM_REG is non-zero.  In T#, always mark the current
5933         vertical position and return to it before turning traps on again.
5934         
5935 Thu Jul 26 02:54:32 1990  James Clark  (jjc at yquem)
5936
5937         * troff/node.c, troff/node.h: In classes derived from node,
5938         replace prev_char_width method by last_char_node method.
5939         * troff/env.c (environment::get_prev_char_width): Use
5940         node::last_char_node rather than node::get_prev_char_width.
5941
5942         * Makefile: Added comment about -fno-inline on 68030-based
5943         Apollos.
5944
5945         * troff/reg.c (number_format_to_ascii), eqn/delim.c (DELIM_TABLE_SIZE),
5946         tty/tty.c (tty_font::load_tty_font), dvi/tfmtodit.c (main): Cast
5947         expressions using sizeof to int.
5948         * dvi/dvi.c (dvi_font::handle_x_command): Avoid long->int warnings.
5949
5950         * macros/tmac.e (TS):  Don't move @f back past the current
5951         position.
5952
5953 Wed Jul 25 09:11:08 1990  James Clark  (jjc at yquem)
5954
5955         * ps/ps.c (main): Buffer stderr.
5956         * dvi/dvi.c (main): Likewise.
5957         * tty/tty.c (main): Likewise.
5958
5959         * ps/ps.c (ps_printer::do_import): Improve error handling.
5960
5961         * troff/input.c (abort_request): Use asciify.
5962
5963         * driver/printer.h (printer::draw), driver/printer.c (printer::draw),
5964         ps/ps.c (ps_printer::draw), dvi/dvi.c (dvi_printer::draw): Make
5965         type of first argument int rather than char.  This works around a
5966         bug on the 68030 based Apollo using g++ 1.37.1.
5967
5968         * tbl/table.h (class table): Add `keep' member.
5969         * tbl/table.c (table::table): Initialize `keep'.
5970         (table::add_vertical_rule): Set `keep' to 1.
5971         (table::do_top): Only emit table keep macro is `keep' is non-zero.
5972         (table::do_bottom): Likewise for table release macro.
5973         (table::do_row): Emit section keep macro even if the row is 0.
5974
5975 Tue Jul 24 08:35:07 1990  James Clark  (jjc at yquem)
5976
5977         * macros/tmac.e (@C): Preserve the font family across the change
5978         in environments.
5979
5980 Mon Jul 23 10:15:23 1990  James Clark  (jjc at yquem)
5981
5982         * lib/font.c: Initialize font::hor and font::vert to 1.
5983         (font::load_desc): Check the values of font::hor and font::vert.
5984
5985         * lib/lib.h: Added definition of INT_DIGITS. Fix it so that it can
5986         be included in a C compilation.
5987         (iftoa): Use INT_DIGITS. Include lib.h.
5988         (itoa): Likewise.
5989         (as_string): Likewise.
5990         * tbl/table.c: Removed definition of INT_DIGITS.
5991         * eqn/box.c (box::top_level): Use INT_DIGITS + 1 instead of 12.
5992         * troff/input.c (input_input_requests): Likewise.
5993         * ps/ps.c (make_encoding_name): Likewise.
5994         (ps_printer::set_style): Likewise.
5995         (ps_output::put_number): Use 1 + INT_DIGITS + 1 instead of 12.
5996
5997         * tty/devascii/R.proto: Map fm onto '.
5998         * tty/devlatin1/R.proto: Likewise.
5999
6000 Sat Jul 21 12:45:07 1990  James Clark  (jjc at yquem)
6001
6002         * tbl/table.c: Use ' instead of DELIMITER_CHAR in places where the
6003         argument to \w is at a different input level.
6004
6005         * tbl/table.c (table::init_output): Define a new macro
6006         REPEATED_VPT_MACRO, like vpt but if in a diversion also
6007         transparently outputs itself.
6008         (table::define_bottom_macro): Use REPEATED_VPT_MACRO instead of
6009         vpt.
6010         (table::do_row): Likewise.
6011
6012         * tbl/table.c (vertical_rule::print): Prefix the .sp -1 line with
6013         TRANSPARENT_STRING_NAME.
6014
6015         * tbl/table.c (table::init_output): In the table release macro
6016         print an error message and don't produce any output if after
6017         issuing the need request the table still will not fit.  Also
6018         remove the diversion after bringing it back.
6019
6020         * tbl/table.c (table::init_output): Define a new macro
6021         REPEATED_MARK_MACRO, like mk but if in a diversion also
6022         transparently outputs itself.
6023         (table::do_row): Mark row_top_reg using REPEATED_MARK_MACRO. This
6024         is necessary because .TH might not call .T#.
6025         (table::do_top): Likewise TOP_REG.
6026         (table::define_bottom_macro): If TOP_REG is no longer valid, use
6027         #T - DOUBLE_LINE_SEP rather than #T. This is necessary because the
6028         table header might contain just the two top rules.
6029
6030 Fri Jul 20 10:51:42 1990  James Clark  (jjc at yquem)
6031
6032         * troff/div.c: Implement new request `ptr' to print all traps.
6033
6034         * troff/env.c (init_env_requests): Implement `.tabs' reg with
6035         init_string_env_reg.
6036         * troff/env.c (class tab_reg): Deleted.
6037
6038 Thu Jul 19 12:07:16 1990  James Clark  (jjc at yquem)
6039
6040         * troff/div.c: New number register .pn returns the number of the
6041         next page as set by the pn request.
6042
6043         * macros/tmac.an: Redid headers and footers.  Number each manual
6044         entry starting from 1 unless \nC is > 0, like Sun.  Added an
6045         optional 5th argument to .TH which specifies the manual name and
6046         appears in the center of the header.  Understand the X, P and D
6047         registers like Sun.
6048
6049 Wed Jul 18 10:23:31 1990  James Clark  (jjc at yquem)
6050
6051         * troff/env.c (init_env_requests): New number register `.lt' to
6052         return the title length.
6053
6054         * troff/node.h (class transparent_dummy_node): New class.
6055         * troff/node.c (class transparent_dummy_node): Provide member
6056         functions.
6057         * troff/env.c (interrupt): Add a transparent_dummy_node, rather
6058         than a dummy_node.
6059
6060         * troff/input.c (token::next): New escape sequence \).
6061         * troff/input.c (get_copy): Recognize \) in copy mode.
6062
6063         * troff/input.c (input_stack::clear): New function.
6064         * troff/input.c (exit_request): Use input_stack::clear.
6065
6066         * troff/token.h: Removed TOKEN_NO_PRINT_CHAR.
6067         * troff/input.c (token::process): Removed case TOKEN_NO_PRINT_CHAR.
6068
6069         * troff/env.c: Move set_page_character to input.c.  Move
6070         page_character to input.c also.
6071         * troff/env.c (title): Split off the reading of the parts of the
6072         title into read_title_parts.
6073         * troff/input.c (read_title_parts): New function.  Check the
6074         input_level when testing whether a token matches the delimiter.
6075
6076         * troff/input.c (exit_request): New function.
6077         * troff/input.c (init_input_requests): Bind ex request to
6078         exit_request rather than exit_groff.
6079
6080         * troff/input.c (exit_groff): Call tok.next() before
6081         process_input_stack().
6082
6083 Mon Jul 16 09:47:23 1990  James Clark  (jjc at yquem)
6084
6085         * troff/env.c: ifdef widow control support on WIDOW_CONTROL.
6086         * troff/env.h: ditto.
6087         * troff/input.c: ditto.
6088
6089         * troff/env.c (environment::is_empty): Test pending_lines.
6090
6091         * troff/env.c (environment::have_pending_lines): Removed.
6092
6093         * troff/input.c: Add request to flush pending lines from the
6094         environment.
6095
6096         * troff/env.c, troff/env.h: Add automatic widow control feature.
6097
6098         * troff/input.c (exit_groff):  Do process_input_stack() after
6099         do_break() but before setting exit_flag to 2.
6100
6101         * troff/input.c: Remove FLUSH_PENDING_LINES and
6102         TOKEN_FLUSH_PENDING_LINES. Instead, flush pending lines from
6103         environment after END_TRAP token seen, but only if there aren't
6104         any more traps still unfinished.
6105         * troff/token.h: Remove TOKEN_FLUSH_PENDING_LINES.
6106
6107 Sun Jul 15 10:50:08 1990  James Clark  (jjc at yquem)
6108
6109         * troff/env.c: Rename the `retain_size' member of class
6110         pending_output_line to `no_fill'.
6111
6112         * troff/env.c (title): When the line is output, make the
6113         retain_size argument !fill.
6114
6115         * troff/node.h: Add `hyphenated' member to struct breakpoint.
6116         * troff/node.c (space_node::get_breakpoints),
6117         (dbreak_node::get_breakpoints):  Fill this in.
6118         * troff/env.c:  Allow specification of maximum number of
6119         consecutive hyphenated lines.
6120
6121         * troff/env.c (environment::is_empty): Add test for !current_tab.
6122
6123 Sat Jul 14 11:23:01 1990  James Clark  (jjc at yquem)
6124
6125         * troff/env.c (environment::hyphenate_line): Don't completely give
6126         up if the word is not to be hyphenated; continue so that breaks
6127         can be made at break_char_node's.
6128
6129         * lib/lib.h: Only define INT_MAX if it's not already defined;
6130         undef INT_MIN if it's already defined.
6131
6132         * Makefile: Make it easy to define CFRONT_ANSI_BUG.
6133
6134         * lib/lib.h: If CFRONT_ANSI_BUG is defined, cast INT_MIN to long.
6135         This works around a bug in AT&T C++ 2.0 used with an ANSI C
6136         compiler.
6137         
6138         * macros/tmac.an (an-header): Set no-space mode.
6139
6140         * macros/tmac.an (TH): Start a new page if necessary.
6141
6142         * Started using ChangeLog at version 0.4.
6143
6144 Local Variables:
6145 version-control: never
6146 coding: latin-1
6147 End: