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