1
2Version 1.15 released
3=====================
4
51999-12-28  Werner LEMBERG  <wl@gnu.org>
6
7	* NEWS, VERSION: Changed to 1.15
8
91999-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
26Version 1.14 released
27=====================
28
291999-12-26  Werner LEMBERG  <wl@gnu.org>
30
31	* NEWS, VERSION: Changed to 1.14.
32
331999-12-24  Werner LEMBERG  <wl@gnu.org>
34
35	* refer/refer.cc: Fixing the last fix.
36
37Version 1.13 released
38=====================
39
401999-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
52Version 1.12.1 released
53=======================
54
551999-12-22  Werner LEMBERG  <wl@gnu.org>
56
57	* VERSION: Changed to 1.12.1.
58
591999-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
651999-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
771999-12-18  Werner LEMBERG  <wl@gnu.org>
78
79	* Makefile.in: Doc fixes.
80
811999-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
87Version 1.12 released
88=====================
89
901999-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
1051999-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
1271999-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
1331999-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
1411999-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
1561999-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
1661999-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
1751999-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
1841999-10-06  Gaius Mulley  <gaius@glam.ac.uk>
185
186	* tmac/tmac.html: Small changes.
187
1881999-09-26  Werner LEMBERG  <wl@gnu.org>
189
190	* doc/groff.texinfo: Minor fixes.
191
1921999-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
2041999-09-16  Werner LEMBERG  <wl@gnu.org>
205
206	* doc/groff.texinfo (Common Features): Added Copying chapter.
207	Changed format to @smallbook.
208
2091999-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
2161999-09-14  Werner LEMBERG  <wl@gnu.org>
217
218	* groff/groff.man: More updates.
219
2201999-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
2531999-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
2591999-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
2651999-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
3051999-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
3401999-09-11  Wilfredo Sanchez  <wsanchez@apple.com>
341
342	* tmac/doc-common, tmac/tmac.an: Removed the word `UNIX' in
343	default strings.
344
3451999-09-11  Luke Mewburn  <lukem@netbsd.org>
346
347	* libgroff/string.cc (search): Small fix to test against NULL
348	pointer.
349
3501999-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
3631999-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
3711999-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
3771999-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
3921999-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
4001999-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
4071999-08-31  Werner LEMBERG  <wl@gnu.org>
408
409	* VERSION: Updated to 1.11.1
410
4111999-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
423Fri 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
430Sun Nov 26 11:45:13 1995  James Clark  <jjc@jclark.com>
431
432	* Version 1.10 released.
433
434Fri Nov 24 09:56:16 1995  James Clark  <jjc@jclark.com>
435
436	* afmtodit/afmtodit.pl: Avoid comment on first line.
437
438Mon 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
446Sun 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
450Wed 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
455Fri 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
460Tue 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
465Sat Jul  1 00:42:15 1995  James Clark  <jjc@jclark.com>
466
467	* aclocal.m4 (GROFF_POSIX): Use conflicting declaration technique.
468
469Thu 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
473Tue 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
507Mon Jun 26 14:54:39 1995  James Clark  <jjc@jclark.com>
508
509	* tbl/main.cc (main): Ignore -T option.
510
511Thu 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
531Wed 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
546Sat Jun 10 12:28:16 1995  James Clark  <jjc@jclark.com>
547
548	* troff/input.cc (interpolate_macro): Rephrase missing space
549	warning.
550
551Thu 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
566Wed 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
574Mon 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
597Tue Mar 28 09:52:07 1995  James Clark  <jjc@jclark.com>
598
599	* tmac/tmac.pspic: Immediately remove the temporary file.
600
601Sat 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
606Thu 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
611Fri 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
621Tue 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
627Tue Jan  3 09:13:37 1995  James Clark  <jjc@jclark.com>
628
629	* troff/node.cc (kern_pair_node::vertical_extent): New function.
630
631Sun 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
637Wed Nov 30 10:29:29 1994  James Clark  <jjc@jclark.com>
638
639	* nroff/nroff.sh: Use -Tlatin1 not -TLatin1.
640
641Mon 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
649Sun 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
656Tue Jul 19 13:40:31 1994  James Clark  (jjc@jclark.com)
657
658	* grolj4/lj4.cc (main): Avoid use of strtoul.
659
660Mon 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
665Sun 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
671Thu 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
676Wed 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
686Fri 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
690Wed 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
695Fri 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
700Wed 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
706Tue 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
715Thu 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
722Tue 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
730Thu 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
737Fri 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
741Wed 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
746Sun 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
764Thu 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
768Sun Apr 10 09:54:44 1994  James Clark  (jjc@jclark.com)
769
770	* Makefile.in (MDEFINES): Add LDFLAGS.
771	(LDFLAGS): Add definition line.
772
773Thu 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
783Fri Mar 11 07:28:03 1994  James Clark  (jjc@jclark.com)
784
785	* nroff/conftest.sh: Deleted.
786
787Fri Mar  4 10:51:36 1994  James Clark  (jjc@jclark.com)
788
789	* pic/make-dos-dist: Deleted.
790
791Wed 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
796Sat Feb 19 13:07:16 1994  James Clark  (jjc@jclark.com)
797
798	* Version 1.09 released.
799
800Wed 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
804Mon 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
808Sun 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
844Sat 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
877Fri 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
901Wed 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
906Tue Feb  8 03:56:40 1994  James Clark  (jjc@jclark.com)
907
908	* libbib/linear.cc (file_buffer::load): Use S_ISREG macro.
909
910Thu 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
915Sun Jan  9 16:17:51 1994  James Clark  (jjc@jclark.com)
916
917	* tmac/tmac.s (par*env-init): Call par@reset.
918
919Fri 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
925Wed 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
933Wed 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
939Tue 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
945Mon 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
950Sat 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
955Fri 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
960Thu 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
971Wed 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
976Sat 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
980Thu 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
985Sat 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
993Sat Sep 25 11:08:43 1993  James Clark  (jjc@jclark.com)
994
995	* tmac/tmac.e ($p): Handle possibility that $3 is empty.
996
997Wed 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
1002Tue 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
1018Fri Jul 16 01:43:12 1993  James Clark  (jjc@jclark.com)
1019
1020	* troff/div.cc (page_offset): Use 'm' as default scaling.
1021
1022Sat Jul  3 09:11:38 1993  James Clark  (jjc@jclark.com)
1023
1024	* nroff/nroff.sh: Ignore -u.
1025
1026Wed Jun  9 12:17:27 1993  James Clark  (jjc@jclark.com)
1027
1028	* Makefile.in (MDEFINES): Pass down MAKEOVERRIDES.
1029
1030Fri 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
1044Thu Jun  3 17:47:14 1993  James Clark  (jjc@jclark.com)
1045
1046	* Makefile.in (dist): Use .gz suffix.
1047
1048Thu 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
1113Mon 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
1118Sun 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
1125Sat 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	
1136Fri May  7 12:14:37 1993  James Clark  (jjc at jclark.com)
1137
1138	* tmac/tmac.s (@RT): New definition.
1139
1140Thu 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
1148Sun 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
1153Mon 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
1158Sun 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
1163Thu 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
1168Wed 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
1182Tue 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
1189Mon 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
1208Sat 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
1214Fri 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
1219Tue 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
1226Wed 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
1231Mon 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
1245Sun Apr  4 14:28:53 1993  James Clark  (jjc at jclark)
1246
1247	* eqn/box.cc (box::top_level): Protect equation with \&.
1248
1249Sat 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
1264Fri 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
1280Thu 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
1309Tue 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
1338Mon 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
1347Sun Mar 28 17:44:25 1993  James Clark  (jjc at jclark)
1348
1349	* Makefile.in (check): Dummy target.
1350
1351Wed 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
1360Thu 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
1364Wed 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
1384Tue 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
1395Mon Feb 22 09:10:44 1993  James Clark  (jjc at jclark)
1396
1397	* Makefile.in (dist): Use gzip.
1398
1399Sun 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
1418Fri Feb 19 23:13:51 1993  James Clark  (jjc at jclark)
1419
1420	* Makefile.comm (.man.n): Replace macrodir by tmacdir.
1421
1422Thu Feb 11 16:46:59 1993  James Clark  (jjc at jclark)
1423
1424	* eqn/main.cc (main): Handle "eqn -".
1425
1426Mon 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
1451Mon Dec 28 21:50:21 1992  James Clark  (jjc at jclark)
1452
1453	* pic/pic.h: Move declaration of hypot().
1454
1455Wed 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
1461Thu 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
1469Wed 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
1474Thu 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
1485Wed 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
1500Tue 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
1508Sat Nov 21 05:02:23 1992  James Clark  (jjc at jclark)
1509
1510	* mm: Integrate version 1.07.
1511
1512Tue 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
1518Mon 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
1536Wed 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
1544Sat Nov  7 01:28:33 1992  James Clark  (jjc at jclark)
1545
1546	* tmac/tmac.Xps (Xps-char): Use " as delimiter for \Z.
1547
1548Wed 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
1563Tue 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
1590Fri 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
1599Thu 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
1625Wed 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
1643Mon 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
1649Thu 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
1659Wed Oct 21 14:46:45 1992  James Clark  (jjc at jclark)
1660
1661	* Rename CHANGES to NEWS.
1662
1663Tue Oct 20 23:25:21 1992  James Clark  (jjc at jclark)
1664
1665	* libgroff/new.cc (operator new): Avoid calling malloc(0).
1666
1667Mon Oct 19 09:10:13 1992  James Clark  (jjc at jclark)
1668
1669	* man.ultrix: Removed.
1670
1671Sun 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
1679Sat 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
1690Thu 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
1699Wed 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
1704Sun 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
1709Fri 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
1717Fri Sep 25 11:40:40 1992  James Clark  (jjc at jclark)
1718
1719	* mdate.sh: Use $NF rather than $(NF).
1720
1721Tue 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
1728Mon 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
1772Sun 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
1816Wed 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
1822Tue 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
1830Sun 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
1838Sun 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
1846Sat 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
1851Fri 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
1869Thu Sep  3 08:01:55 1992  James Clark  (jjc at jclark)
1870
1871	* tmac/tmac.s (B, I, BI, CW): Rewrite avoiding aliases.
1872
1873Tue Sep  1 18:24:53 1992  James Clark  (jjc at jclark)
1874
1875	* Version 1.06 released.
1876
1877	* Integrate mm 1.04.
1878
1879Fri Aug 28 11:28:19 1992  James Clark  (jjc at jclark)
1880
1881	* Makefile.comm, Makefile.ccpg, Makefile.cpg: Fix TAGS target.
1882
1883Thu 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
1896Tue 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
1936Mon 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
1957Sun 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
1962Fri 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
1977Thu 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
1983Tue 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
1996Mon 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
2004Sat 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
2023Fri 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
2035Tue 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
2044Mon 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
2057Sun 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
2070Sat 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
2080Fri 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
2102Thu 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
2110Wed 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
2115Mon 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
2130Sat 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
2135Tue 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
2142Mon 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
2148Sun 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
2157Fri 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
2170Wed Jul 22 09:17:58 1992  James Clark  (jjc at jclark)
2171
2172	* dvi/devdvi/textt.map: Add entry for `-'.  Regenerate fonts.
2173
2174Tue 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
2199Mon 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
2212Sun 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
2223Fri 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
2282Thu 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
2292Wed 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
2306Tue 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
2316Sat 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
2324Wed 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
2343Tue 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
2353Mon 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
2449Sun 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
2455Sat 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
2461Thu 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
2475Wed 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
2484Wed 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
2495Mon Jun 22 08:37:45 1992  James Clark  (jjc@jclark)
2496
2497	* pic/pic.y: undef fmod and rand before declaring them.
2498
2499Sun 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
2513Mon 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
2520Sun 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
2557Sat 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
2570Fri 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
2582Thu 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
2599Wed 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
2628Tue 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
2664Mon 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
2687Sun 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
2694Sat 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
2699Fri 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
2708Thu 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
2713Fri 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
2720Fri 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
2731Thu 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
2740Tue 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
2758Tue 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
2764Fri Apr 17 11:20:48 1992  James Clark  (jjc at jclark)
2765
2766	* groff.c (main): Pass an appropriate -filename option to gxditview.
2767
2768Thu 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
2781Tue Apr 14 10:05:10 1992  James Clark  (jjc at jclark)
2782
2783	* driver/input.c (do_file): Add missing break for '#' case.
2784
2785Mon 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
2807Sun 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
2822Sat 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
2849Thu 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
2859Mon 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
2864Fri 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
2869Sat Mar 28 21:17:52 1992  James Clark  (jjc at jclark)
2870
2871	* tmac.e (u): Do underlining as in -mgs.
2872
2873Fri 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
2884Wed Mar 18 09:29:10 1992  James Clark  (jjc at jclark)
2885
2886	* Version 1.05 released.
2887
2888Tue 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
2921Mon 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
2934Sun 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
2941Tue 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
2947Sun Mar  8 18:05:28 1992  James Clark  (jjc at jclark)
2948
2949	* ps/tmac.ps: Fix up spacing of \(mo and \(nm.
2950
2951Fri Mar  6 19:38:58 1992  James Clark  (jjc at jclark)
2952
2953	* tty/tty.c (tmac.tty): Define \(rg as (R).
2954
2955Tue 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
2964Mon 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
2972Fri 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
2984Thu 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
3001Wed 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
3010Mon 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
3020Sat 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
3064Sat 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
3068Thu Feb  6 09:00:35 1992  James Clark  (jjc at jclark)
3069
3070	* pic/pic.y: Fix min function.
3071
3072Tue Jan 28 07:52:29 1992  James Clark  (jjc at jclark)
3073
3074	* man/mdate.sh: Clear LANGUAGE.
3075
3076Sun 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
3084Tue 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
3092Sun 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
3097Sat 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
3109Fri 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
3119Thu 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
3131Mon 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
3138Mon 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
3143Sun Nov 17 12:04:08 1991  James Clark  (jjc at jclark)
3144
3145	* Version 1.04 released.
3146
3147Wed 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
3153Sun 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
3160Wed 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
3181Fri 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
3186Wed 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
3192Tue 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
3196Tue 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
3201Fri 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
3206Wed 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
3216Fri 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
3221Tue Oct  1 18:12:38 1991  James Clark  (jjc at jclark)
3222
3223	* refer/search.c: Include <errno.h>.
3224
3225Sun 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
3264Thu 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
3268Wed 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
3277Tue 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
3284Fri 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
3289Thu 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
3324Mon 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
3334Tue 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
3358Mon Jul 22 12:27:37 1991  James Clark  (jjc at jclark)
3359
3360	* pic/lex.c (get_delimited): Allow tabs before delimiter.
3361
3362Wed 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
3375Sun 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
3381Sat 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
3386Fri 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
3391Sun 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
3409Thu 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
3416Wed Jul  3 17:34:57 1991  James Clark  (jjc at jclark)
3417
3418	* refer/label.y (string):  Pass $4 to command_error.
3419
3420Tue Jul  2 15:06:01 1991  James Clark  (jjc at jclark)
3421
3422	* Version 1.03 released.
3423
3424Sat 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
3437Fri 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
3443Fri 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
3459Tue 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
3468Sun 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
3473Fri 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
3478Thu 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
3488Wed Jun 12 16:05:34 1991  James Clark  (jjc at jclark)
3489
3490	* refer/index.c: Delete declarations of stat() and fstat().
3491
3492Tue Jun 11 14:52:49 1991  James Clark  (jjc at jclark)
3493
3494	* tty/tmac.tty: Add character definitions for \(>= and \(<=.
3495
3496Mon Jun 10 22:49:48 1991  James Clark  (jjc at jclark)
3497
3498	* etc/grog.sh, etc/grog.pl: Change regex for .PS.
3499
3500Fri 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
3506Wed 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
3511Mon 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
3516Sun 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
3526Sat 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
3535Mon May 27 13:49:07 1991  James Clark  (jjc at jclark)
3536
3537	* Makefile (bindist): Pass SUBFLAGS.
3538
3539Sun 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
3558Sat 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
3564Fri 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
3583Thu 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
3609Wed 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
3619Tue 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
3631Mon 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
3671Tue 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
3676Sat 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
3683Wed 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
3689Wed 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
3696Tue 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
3701Mon 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
3736Sun 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
3748Sat 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
3753Fri 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
3759Tue 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
3806Mon 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
3814Thu 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
3832Wed 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
3841Sat 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
3855Wed 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
3862Tue 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
3867Fri 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
3876Tue 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
3886Mon 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
3890Sat 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
3903Fri 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
3917Thu 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
3922Wed 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
3945Mon 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
3993Sun 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
3999Thu 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
4011Mon 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
4016Sat 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
4030Wed 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
4038Tue 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
4043Sun 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
4048Thu 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
4058Wed 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
4064Tue 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
4076Fri 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
4082Sat 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
4095Wed Feb  6 12:28:43 1991  James Clark  (jjc at jclark)
4096
4097	* macros/tmac.s (B2): Correct size of box.
4098
4099Tue 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
4118Mon 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
4123Sat 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
4130Fri 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
4139Thu 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
4145Wed 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
4152Tue Jan 29 18:08:05 1991  James Clark  (jjc at jclark)
4153
4154	* groff.c (main): Support -i.
4155
4156Sun 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
4168Sat 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
4181Sat 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
4203Thu 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
4209Tue 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
4214Mon 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
4219Thu 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
4225Mon 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
4232Sun Jan  6 11:18:39 1991  James Clark  (jjc at jclark)
4233
4234	* Version 1.00 released.
4235
4236Sat 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
4252Fri 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
4257Thu 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
4266Wed 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
4287Tue 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
4294Mon 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
4301Sun 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
4309Sat 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
4322Fri 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
4327Thu 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
4333Wed 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
4338Sat 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
4349Fri 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
4375Thu 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
4380Tue 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
4390Mon 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
4402Fri 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
4411Thu 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
4426Wed 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
4435Mon 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
4440Sun 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
4447Sat 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
4457Fri 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
4466Tue 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
4471Mon 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
4483Sat 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
4493Fri Nov 30 10:23:44 1990  James Clark  (jjc at jclark)
4494
4495	* macros/tmac.s ({, }): New string aliases.
4496
4497Thu Nov 29 11:34:40 1990  James Clark  (jjc at jclark)
4498
4499	* README-0.7: New file.
4500
4501Wed 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
4512Sat 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
4536Fri 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
4543Thu 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
4552Wed 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
4557Mon 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
4568Sat 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
4586Fri 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
4603Thu 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
4611Wed 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
4616Sat 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
4637Fri 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
4644Wed 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
4653Tue 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
4663Mon 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
4680Fri 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
4696Thu 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
4722Wed 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
4728Mon 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
4733Sun 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
4738Wed 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
4743Mon 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
4749Sat 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
4756Fri Oct 19 11:17:15 1990  James Clark  (jjc at jclark)
4757
4758	* troff/input.c (token::next): Implement \E.
4759
4760Thu 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
4767Tue 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
4772Sun 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
4809Fri Oct 12 10:17:52 1990  James Clark  (jjc at jclark)
4810
4811	* ps/tmac.ps: Add font translations for compatibility with dpost.
4812
4813Thu 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
4827Wed 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
4836Tue 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
4870Mon 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
4881Sun 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
4897Sat 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
4930Fri 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	
4996Mon 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
5003Sun 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
5026Sat 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
5068Fri 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
5073Thu Sep 20 12:55:05 1990  James Clark  (jjc at jclark)
5074
5075	* troff/div.c (macro_diversion::space): Ignore no_space_mode.
5076
5077Wed 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
5088Tue 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
5101Mon 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
5115Sun 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
5149Sat 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
5173Fri 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
5184Thu 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
5218Wed Sep 12 10:00:49 1990  James Clark  (jjc at jclark)
5219
5220	* pic/troff.c (troff_output::simple_circle): Divide by scale.
5221
5222Tue 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
5240Mon 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
5251Fri 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
5264Thu 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
5330Tue 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
5350Mon 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
5355Sun 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
5372Fri 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
5379Thu 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
5390Wed Aug 29 04:12:08 1990  James Clark  (jjc at jclark)
5391
5392	* groff.sh: Fix description of -Z in help message.
5393
5394Tue 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
5447Mon Aug 27 11:25:41 1990  James Clark  (jjc at jclark)
5448
5449	* man: Put the version number in all the man pages.
5450
5451Sun 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
5479Sat 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
5490Fri Aug 24 20:10:30 1990  James Clark  (jjc at jclark)
5491
5492	* groff.sh: Initialize dev to ${GROFF_TYPESETTER:-@DEVICE@}.
5493
5494Thu 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
5506Wed 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
5520Tue 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
5546Sat 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
5551Fri 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
5575Thu 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
5591Wed 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
5622Tue 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
5633Mon 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
5665Sun 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
5678Sat 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
5706Fri 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
5718Tue 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
5735Mon 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
5764Sat 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
5797Fri 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
5856Thu 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
5874Wed 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
5884Tue 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
5889Mon 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
5894Sun 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
5899Sat 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
5913Fri 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	
5935Thu 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
5953Wed 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
5975Tue 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
5980Mon 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
6000Sat 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
6030Fri 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
6038Thu 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
6049Wed 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
6083Mon 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
6107Sun 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
6123Sat 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
6144Local Variables:
6145version-control: never
6146coding: latin-1
6147End:
6148