BSD 4_3_Net_2 development
[unix-history] / usr / src / usr.bin / groff / ChangeLog
CommitLineData
99786af8
C
1Wed Mar 13 12:49:40 1991 James Clark (jjc at jclark)
2
3 * Version 1.01 released.
4
5 * dvi/devdvi/CompileFonts: Add cm*ss10 fonts.
6
7 * dvi/tmac.dvi: ftr HR to H.
8
9 * macros/tmac.e: Round up computation of $r.
10
11 * xditview/tmac.X: Don't give up completely in compatibility mode.
12 Use \n(.s instead of \n[.s].
13
14 * dvi/tmac.dvi: Don't give up completely in compatibility mode.
15 Use \(ci instead of \[ci]. Use \n(.s instead of \n[.s].
16 Add u to factors inside \s[...]. Rename frac to dvi-frac.
17 Translate \(FM onto \[prime] and \(!/ onto \[slashnot]; use these
18 short names in the char definitions.
19
20 * ps/tmac.ps: Don't give up completely in compatibility mode.
21 Fix the fraction definitions to use \n(.s and \(f/. Add an extra
22 quote in front of \n(.s. Add u to factors inside \s[...].
23
24Mon Mar 11 12:01:20 1991 James Clark (jjc at jclark)
25
26 * tty/tmac.tty: Call the nroff request.
27
28 * macros/tmac.e ((x, )x): Better definitions that work properly
29 in a diversion.
30 (@0, @1): Helper macros for (x.
31
32 * macros/tmac.e ($s, hl): Use \l rather than \D.
33
34 * tty/tmac.tty: Make it work better in compatibility mode.
35 (pchar): Rename to tty-char.
36
37 * macros/tmac.e (@E): New macro.
38 (r, i, b, rb, bi): Use @E.
39
40 * macros/tmac.e (@F): Don't use (;...) syntax.
41
42 * macros/tmac.e: Remove mention of \*(||/revisions. Mention that
43 it was modified for groff.
44
45 * macros/tmac.e: Make sure \n(ps and \n(es are >= \n(.V.
46
47 * macros/tmac.e (<., .>): Removed.
48 ([., .]): If \n(.V>=1v, use [] instead of superscripting.
49
50 * macros/tmac.e: Remove check that groff is being used.
51
52 * macros/tmac.e (@C): Change families only if using groff; turn
53 compatibility mode off while changing familes. Save compatibility
54 mode before changing families and restore it afterwards.
55
56 * macros/tmac.e (@h): Remove test for offset + line length.
57
58 * macros/tmac.e (sorry): Rename to @S. Use \$1 instead of \$0
59 (lo, th, ac): Define to call @S instead of using als.
60
61 * macros/tmac.e: Make $r and $R now contain \n(.v*100/\n(.sp, ie
62 the ratio of the vertical spacing to the point size in units
63 expressed as a percentage. Use these instead of $10r and $10R,
64 Delete $10r and $10R.
65
66 * lib/font.c (font::load): In default computation of space_width,
67 divide by sizescale. Use scale_round.
68
69 * macros/tmac.an (TP): Don't call `nf'.
70 (an-do-tag): Don't call `fi'.
71
72Sun Mar 10 09:52:35 1991 James Clark (jjc at jclark)
73
74 * troff/input.c (process_input_stack): Handle the case where
75 spaces at the beginning of an input line are followed by a
76 newline.
77
78Thu Mar 7 20:18:07 1991 James Clark (jjc at jclark)
79
80 * groff.c (device_table): Add PIC_X_OPTION for dvi device.
81 * groff.sh: Use pic -x with the dvi device.
82
83 * dvi/devdvi/FontMakefile (H): Don't use -s.
84
85 * dvi/devdvi/HI, dvi/devdvi/HB: New files.
86 * dvi/devdvi/Makefile: Add HI and HB to FONTS.
87 * dvi/devdvi/FontMakefile: Add rules for HI and HB. Include these
88 in FONTS.
89
90Mon Mar 4 13:20:14 1991 James Clark (jjc at jclark)
91
92 * ps/psfig.diff: New file.
93 * ps/tmac.psfig: New file.
94
95Sat Mar 2 00:15:09 1991 James Clark (jjc at jclark)
96
97 * macros/tmac.s (]=, ref*do-tl, ref*bib-print): Deleted.
98 (]-): Don't call ref*do-tl.
99
100 * macros/tmac.s (ref*end-print): Use XP if [F not defined.
101
102 * macros/tmac.s (ref*normal-print): Call FS rather than fn@do-FS.
103 (fn@do-FS): Rename to fn*do-FS.
104
105 * troff/input.c (transparent_translate): New function.
106 (process_input_stack): Apply transparent_translate before calling
107 diversion::transparent_output(unsigned char).
108
109Wed Feb 27 00:13:25 1991 James Clark (jjc at jclark)
110
111 * troff/input.c (do_define_macro): Define the macro before calling
112 skip_line.
113
114 * xditview/Makefile: Add DEVICES variable. Change install target
115 to use this.
116
117Tue Feb 26 10:46:22 1991 James Clark (jjc at jclark)
118
119 * groff.c (run_commands): Handle the possibility that there are
120 child processes other than those forked by us.
121
122Sun Feb 24 21:32:30 1991 James Clark (jjc at jclark)
123
124 * lib/string.c (string::append): New function.
125 * lib/stringclass.h: Declare it.
126
127Thu Feb 21 11:49:26 1991 James Clark (jjc at jclark)
128
129 * eqn/main.c (main): New option -N which sets
130 no_newline_in_delim_flag.
131 (do_file): If no_newline_in_delim_flag is set don't allow newlines
132 in delimiters.
133 * groff.c (main): Pass -N on to eqn.
134 (help, synopsis): Mention -N.
135 * groff.sh: Implement -N.
136
137Wed Feb 20 15:16:10 1991 James Clark (jjc at jclark)
138
139 * macros/tmac.s (]=, ref*bib-print, ref*do-tl): New macros.
140 (]-): Call ref*do-tl if ref*need-tl is non-zero.
141 (XP): Allow as initializer.
142
143Tue Feb 19 14:09:06 1991 James Clark (jjc at jclark)
144
145 * troff/env.c (environment::wrap_up_field): If field_spaces are
146 non-zero and we have a current_tab, subtract padding from
147 tab_distance. If this makes tab_distance <= 0, use the next tab
148 stop instead. If there isn't any next tab or it's a left tab,
149 wrap up the current tab.
150 (environment::start_field): Initialize tab_precedes_field.
151 (environment::wrap_up_tab): If there's a current field, update
152 pre_field_width, field_distance and tab_precedes_field.
153 * troff/env.h (environment::tab_precedes_field): New member.
154
155Fri Feb 15 01:24:00 1991 James Clark (jjc at jclark)
156
157 * ps/ps.c (ps_printer::do_file): New function.
158 (ps_printer::special): Bind to `file' special.
159 (ps_printer::do_exec): Set ndefined_styles to 0.
160
161Sat Feb 9 03:03:04 1991 James Clark (jjc at jclark)
162
163 * eqn/text.c (split_text): Grok \* and similar escapes sequences.
164 Avoid stripping first character from the start of unrecognized
165 escapes. Use lex_error instead of error to report errors.
166 * eqn/lex.c (get_token): Rework handling of escapes.
167 (lex_error): Move declaration into...
168 * eqn/eqn.h.
169
170 * xditview/xditview.c (main): Make -page option work.
171
172 * Makefile: Correct comment about -DBROKEN_SPOOLER and pageview.
173
174Wed Feb 6 12:28:43 1991 James Clark (jjc at jclark)
175
176 * macros/tmac.s (B2): Correct size of box.
177
178Tue Feb 5 00:37:35 1991 James Clark (jjc at jclark)
179
180 * macros/tmac.s (B2): Postpone drawing the box until in the
181 top-level diversion.
182
183 * tty/tmac.tty: Add font translations for C, CR, CW.
184
185 * groff.c (synopsis, help): Document -i.
186 * groff.sh: Implement -i.
187
188 * macros/tmac.s (@NH): Put a `.' after multi-part numbers.
189 Simplify the construction of SN.
190
191 * troff/number.c (parse_term): Give `|' a higher precedence.
192 * tbl/table.c (numeric_text_entry::simple_print): Parenthesise
193 accordingly.
194
195 * macros/tmac.s (B2): Use par@finish instead of par@reset.
196
197Mon Feb 4 12:36:09 1991 James Clark (jjc at jclark)
198
199 * lib/string.c (string::move): New function.
200 * lib/stringclass.h: Declare it.
201
202Sat Feb 2 16:02:16 1991 James Clark (jjc at jclark)
203
204 * troff/env.c (distribute_space): Add optional argument
205 `force_forward'.
206 (environment::wrap_up_field): Call distribute_space with
207 `force_forward' argument of 1.
208
209Fri Feb 1 19:36:33 1991 James Clark (jjc at jclark)
210
211 * lib/string.c, lib/stringclass.h (string::operator+=(char)):
212 Inline it. Move reallocation into...
213 (string::grow1): New function.
214 * pic/Makefile, tbl/Makefile, eqn/Makefile, ps/Makefile: Redo
215 dependencies to include library header files.
216 * lib/Makefile: Make string.c and lf.c depend on stringclass.h.
217
218Thu Jan 31 15:02:27 1991 James Clark (jjc at jclark)
219
220 * macros/tmac.s (@NH): Use the same number registers than -ms does
221 for the heading level counters. Use the same string that -ms does
222 for the number for this heading.
223
224Wed Jan 30 14:25:40 1991 James Clark (jjc at jclark)
225
226 * lib/new.c (operator new): Cast result of malloc to char *.
227
228 * troff/input.c (spring_trap, lookup_request): Add assert that nm
229 is not null.
230
231Tue Jan 29 18:08:05 1991 James Clark (jjc at jclark)
232
233 * groff.c (main): Support -i.
234
235Sun Jan 27 13:23:17 1991 James Clark (jjc at jclark)
236
237 * pic/pic.h: Include <osfcn.h>.
238
239 * ps/ps.c: Add declaration of mktemp.
240
241 * Makefile: Add -DHAVE_UNION_WAIT option for CPPDEFINES.
242 * groff.c: If HAVE_UNION_WAIT is defined, declare wait()'s
243 argument as union wait *.
244 (run_commands): If HAVE_UNION_WAIT is defined cast wait()'s
245 argument to union wait *.
246
247Sat Jan 26 12:04:52 1991 James Clark (jjc at jclark)
248
249 * tty/tmac.tty: Add definition of \(co.
250
251 * pic/object.c (make_arc): Only increase radius when radius
252 strictly less than d.
253 (arc_object::update_bounding_box): May need to add 4.0 to end_quad
254 more than once.
255
256 * troff/env.c (environment::environment(symbol),
257 environment::environment(const environment *)): Initialize
258 input_trap_count.
259
260Sat Jan 19 08:18:35 1991 James Clark (jjc at jclark)
261
262 * tbl/main.c (main): Add exit(0).
263
264 * ps/ps.c (ps_printer::~ps_printer): Use fseek instead of rewind.
265
266 * pic/main.c (main):
267 * eqn/main.c (main):
268 * tbl/main.c (main):
269 * etc/soelim.c (main):
270 * driver/printer.c (printer::~printer):
271 * troff/node.c (real_output_file::~real_output_file,
272 real_output_file::flush): Check for errors on stdout.
273
274 * most files: Add 1991 to copyright notice.
275
276 * macros/tmac.s: Don't test \n(.x and \n(.y.
277
278 * troff/input.c (token::next): Rename `escape_char' label to
279 `handle_escape_char' and `normal_char' label to
280 `handle_normal_char'.
281
282Thu Jan 17 15:46:35 1991 James Clark (jjc at jclark)
283
284 * groff.c (main, synopsis, help): Support -a option.
285 * groff.sh: Likewise. Also eliminate Zflag variable by adding -z
286 to trflags while parsing options.
287
288Tue Jan 15 13:07:27 1991 James Clark (jjc at jclark)
289
290 * troff/number.c (parse_term): With `m', `M' and `n' scale
291 indicators, convert scale factor to hunits before scaling.
292
293Mon Jan 14 12:39:12 1991 James Clark (jjc at jclark)
294
295 * lib/font.c (scale_round): Better test for overflow when n is
296 negative.
297
298Thu Jan 10 11:10:56 1991 James Clark (jjc at jclark)
299
300 * tbl/main.c (process_format): Add second argument of type
301 options*. Change callers. Allow opt->tab_char as well as '\t'
302 between format items.
303
304Mon Jan 7 12:30:18 1991 James Clark (jjc at jclark)
305
306 * macros/tmac.an (PD): With no arguments, make sure register PD is
307 at least \n[.V].
308 (TH): Call PD with no argument, instead of setting register PD
309 directly.
310
311Sun Jan 6 11:18:39 1991 James Clark (jjc at jclark)
312
313 * Version 1.00 released.
314
315Sat Jan 5 08:44:30 1991 James Clark (jjc at jclark)
316
317 * ps/tmac.ps, xditview/tmac.X: Add font translation of C to CR.
318
319 * dvi/devdvi/DESC: Mount CW instead of CR.
320
321 * dvi/tmac.dvi: Add definition of \(tm.
322
323 * dvi/devdvi/texsy.map: Add lh, and rh.
324 * dvi/devdvi/texex.map: Add lt, rt, lb, rb, lk, rk.
325 * dvi/devdvi/texmi.map: Add *o. Regenerate fonts.
326
327 * dvi/devdvi/FontMakefile: Generate H from cmss10.
328 * dvi/devdvi/Makefile: Install H.
329 * dvi/devdvi/H: New file.
330
331Fri Jan 4 15:04:57 1991 James Clark (jjc at jclark)
332
333 * troff/env.c (vertical_spacing): Don't allow vertical spacing to
334 be 0.
335
336Thu Jan 3 13:41:19 1991 James Clark (jjc at jclark)
337
338 * macros/tmac.s (@EN): Add \n(.V to the argument to ds@need.
339
340 * macros/tmac.pic (PS): Avoid attempting to set negative indent.
341
342 * macros/tmac.s (@EN): Handle the case where the equation is empty
343 but the label is not.
344
345Wed Jan 2 10:31:44 1991 James Clark (jjc at jclark)
346
347 * troff/groff.h: New warning category WARN_SPACE.
348 * troff/input.c: Add WARN_SPACE to DEFAULT_WARNING_MASK. Add
349 WARN_SPACE to warning_table.
350 (interpolate_macro): Give a warning of type WARN_SPACE if the name
351 is longer than two characters and is not defined, but the first
352 two characters do make a defined name.
353
354 * PROBLEMS: New file.
355
356 * CHANGES: New file.
357 * README-0.6, README-1.00: Deleted.
358
359 * groff.c, groff.sh: Add X75-12 and X100-12 devices.
360 * xditview/devX75/Makefile: Make devX75-12.
361 * xditview/devX100/Makefile: Make devX100-12.
362
363 * xditview/devX100/eqnchar, xditview/devX75/eqnchar,
364 dvi/devdvi/eqnchar, ps/devps/eqnchar: Remove use of \R.
365
366Tue Jan 1 19:24:01 1991 James Clark (jjc at jclark)
367
368 * README-0.7: Rename to README-1.00.
369
370 * macros/tmac.pic: New file.
371 * macros/Makefile (install.nobin): Install tmac.pic.
372
373Mon Dec 31 10:40:53 1990 James Clark (jjc at jclark)
374
375 * troff/env.c (hyphen_word): Correct the test for whether the
376 token is a hyphen. Reset npos to 0.
377
378 * macros/tmac.s (par@sup-start, par@sup-end): New implementations.
379
380Sun Dec 30 15:53:13 1990 James Clark (jjc at jclark)
381
382 * macros/tmac.s (ds*common-end): Call par*reset.
383 (PE): Likewise.
384 (par@reset-indent): Deleted.
385
386 * macros/tmac.s (@IP): Divert the label.
387
388Sat Dec 29 14:33:32 1990 James Clark (jjc at jclark)
389
390 * xditview/draw.c (setGC): Use a line width of .1m rather than
391 .04m by default; round rather than truncate value.
392
393 * tbl/table.c (class empty_entry): New class.
394 (empty_entry::empty_entry, empty_entry::line_type): New functions.
395 (table::add_entry): Represent empty entries by objects of type
396 empty_entry.
397 (table_entry::line_type): Return -1.
398 (table::determine_row_type): Ignore entries with line_type 0.
399 Treat type -1 as non-lines.
400
401Fri Dec 28 15:04:41 1990 James Clark (jjc at jclark)
402
403 * ps/devps/textmap, xditview/libXdvi/DviChar.c, tty/devlatin1/R.proto,
404 macros/tmac.s: Rename \(-d to \(Sd.
405
406Thu Dec 27 12:35:47 1990 James Clark (jjc at jclark)
407
408 * ps/devps/textmap: Add `sd', `/_' and `3d' characters.
409 * xditview/libXdvi/DviChar.c: Likewise.
410 * dvi/devdvi/texsy.map: Add `<<', `>>'.
411
412Wed Dec 26 13:33:23 1990 James Clark (jjc at jclark)
413
414 * troff/div.c (top_level_diversion::begin_page): Call
415 init_output() if the_output is 0.
416
417Sat Dec 22 12:35:29 1990 James Clark (jjc at jclark)
418
419 * troff/input.c: Replace ESCAPE_E by ESCAPE_e and ESCAPE_C by
420 ESCAPE_c.
421 (get_copy): Turn \E into ESCAPE_E.
422 (token::process, asciify): Handle ESCAPE_E.
423
424 * macros/tmac.s (ds*common-end, par@reset): Add `.rj 0'.
425 (RD): New macro.
426 (DS): Implement `.DS R'.
427
428Fri Dec 21 11:41:53 1990 James Clark (jjc at jclark)
429
430 * macros/tmac.s (FS): New macro.
431
432 * macros/tmac.s (fn@do-FS): Use @LP instead of LP.
433
434 * macros/tmac.s (cov*tl-init): Remove after first execution
435 instead of aliasing to @nop. Call top of page macro explicitly
436 instead of setting trap; call @init first. Set pg@top as top of
437 page macro.
438 (cov*auto-init): Deleted. Set cov*tl-init instead of
439 cov*auto-init as top of page trap.
440 (TL, LP): Do a break instead of calling cov*tl-init.
441 (cov*print): With RP format but no TL, alias FS and FE to @FS and
442 @FE; in this case also give a warning and always start another
443 page. No need to set pg@top here.
444 (cov*tl-init): Rename to cov*first-page-init.
445
446 * macros/tmac.s (RP): Do `.pn 0'.
447 (cov*tl-init): With RP format don't do `.pn 0'.
448
449 * macros/tmac.s (pg@cs-top): Set no space mode.
450
451 * macros/tmac.s (par@TL, par@AU, par@AI): New macros.
452 (cov*ab-init): Alias TL, AU and AI to these.
453
454Thu Dec 20 10:10:50 1990 James Clark (jjc at jclark)
455
456 * macros/tmac.s (@EQ): Move the space before the equation into @EN
457 (@EN): Do nothing unless \n[dl] is > 0.
458
459Tue Dec 18 12:20:47 1990 James Clark (jjc at jclark)
460
461 * pic/object.c (ellipse_object::radius): New function.
462
463 * VERSION: Change version to 0.7.
464
465 * tbl/table.c (block_entry::do_divert): Declare return type as
466 void.
467 (block_entry::divert, alphabetic_block_entry::divert): Return 1.
468
469Mon Dec 17 12:30:34 1990 James Clark (jjc at jclark)
470
471 * troff/column.c: New file.
472 * troff/Makefile: Corresponding changes.
473
474 * troff/hvunits.c (scale(vunits, vunits, vunits)): New function.
475 Friend of vunits.
476
477 * troff/div.c (top_level_diversion::space): If the space causes
478 the first-page transition and springs a trap, truncate the space
479 to 0.
480
481Fri Dec 14 12:30:02 1990 James Clark (jjc at jclark)
482
483 * ps/ps.c (ps_printer::do_import): Add a `clear' after including
484 the document.
485
486 * pic/troff.c (troff_output::line_thickness,
487 troff_output::set_fill): Do a horizontal motion to compensate for
488 the width of the \D escape sequence.
489
490Thu Dec 13 10:17:14 1990 James Clark (jjc at jclark)
491
492 * xditview/tmac.X: Reinstate definition of \(rn, but only for X100
493 (not X75).
494
495 * eqn/sqrt.c (sqrt_box::compute_metrics): Supply missing argument
496 to printf.
497
498 * tbl/table.c (simple_entry::simply_print): Don't declare as pure.
499 Supply empty definition.
500 (text_entry::simple_print, simple_text_entry::simple_print):
501 Delete declarations.
502 (table::add_entry): Represent empty entries by objects of type
503 `simple_entry'.
504
505Wed Dec 12 08:50:48 1990 James Clark (jjc at jclark)
506
507 * troff/Makefile: Remove -DHYPHEN_CONTROL from DEFINES.
508
509 * tbl/table.c (left_text_entry::add_tab): New function.
510
511 * macros/tmac.s: Make @RT an alias for par@reset. Make RT
512 initialize like LP.
513
514Mon Dec 10 11:19:55 1990 James Clark (jjc at jclark)
515
516 * troff/env.c (environment::start_field): Give an error message if
517 there is no next tab.
518
519Sun Dec 9 11:46:40 1990 James Clark (jjc at jclark)
520
521 * troff/env.c (hyphenate): Skip initial elements with zero
522 hyphenation code.
523
524 * macros/tmac.s (par@init): Keep VS in points rather than units.
525
526Sat Dec 8 23:00:27 1990 James Clark (jjc at jclark)
527
528 * pic/main.c (main): Implement `-c' option.
529 * pic/output.h: Declare make_tpic_output().
530 * pic/tex.c (tex_output::set_pen_size): Make it virtual and
531 protected.
532 (tpic_output): New class.
533 (tpic_output::tpic_output, tpic_output::set_pen_size,
534 tpic_output::command, make_tpic_output): New functions.
535
536Fri Dec 7 11:57:41 1990 James Clark (jjc at jclark)
537
538 * tbl/main.c (main): Call `.ab' if \n(.g is false. Define TS/TE
539 if they're not already defined.
540 * tbl/table.c (init_output): Don't test \n(.g.
541
542 * troff/input.c (do_if_request): Delete `g' condition. Recognize
543 `d', `r' and `c' conditions even in compatibility mode.
544
545Tue Dec 4 09:13:47 1990 James Clark (jjc at jclark)
546
547 * ps/tmac.ps (ps-bb): Protect against negative numbers in bounding
548 box.
549
550Mon Dec 3 07:18:26 1990 James Clark (jjc at jclark)
551
552 * troff/env.h (environment::prev_line_interrupted): New member.
553 (environment::get_prev_line_interrupted): New function.
554 * troff/env.c (environment::newline): Set prev_line_interrupted.
555 (environment::environment(const environment *),
556 environment::environment(symbol)): Initialize
557 prev_line_interrupted.
558 * troff/input.c (process_input_stack): Don't give special
559 treatment to space and newline at the beginning of the line if the
560 previous line was interrupted.
561
562Sat Dec 1 15:48:37 1990 James Clark (jjc at jclark)
563
564 * eqn/eqn.y: Disallow PRIME by itself.
565 * eqn/lex.c (token_table): Bind `opprime' instead of `prime' to
566 PRIME.
567 (def_table): Remove definition of '. Define prime to be `.
568
569 * eqn/eqn.y: Split off part of rule `script' into a new rule
570 `nonsup'.
571
572Fri Nov 30 10:23:44 1990 James Clark (jjc at jclark)
573
574 * macros/tmac.s ({, }): New string aliases.
575
576Thu Nov 29 11:34:40 1990 James Clark (jjc at jclark)
577
578 * README-0.7: New file.
579
580Wed Nov 28 10:09:57 1990 James Clark (jjc at jclark)
581
582 * macros/tmac.s: New file.
583 * man/groff_ms.man: New file.
584 * Makefile: Add definition of TMAC_S. Pass TMAC_S in SUBFLAGS.
585 * Makefile.bd: Similarily.
586 * man/Makefile: Add groff_ms.n to MAN7PAGES. Replace @TMAC_S@. Add
587 definition of TMAC_S.
588 * macros/Makefile: Add definition of TMAC_S. Install tmac.s.
589 * macros/TODO: New file.
590
591Sat Nov 24 20:04:54 1990 James Clark (jjc at jclark)
592
593 * troff/env.c (right_justify): New function.
594 (init_env_requests): Bind this to request "rj".
595 (center_lines): Set right_justify_lines to 0. If we get a bad
596 integer, center 1 line.
597 (environment::environment(symbol), environment::environment(const
598 environment *)): Initialize right_justify_lines.
599 (environment::get_right_justify_lines): New function.
600 (init_env_requests): Bind this to number_register ".rj".
601
602 * troff/env.c (environment::choose_breakpoint): Implement
603 hyphenation_margin and hyphenation_space.
604 (environment::get_hyphenation_space,
605 environment::get_hyphenation_margin): New functions.
606 (init_env_requests): Bind these to .hys and .hym.
607 (hyphenation_space_request, hyphenation_margin_request): New
608 functions
609 (init_env_requests): Bind these to hys and hym.
610 (environment::environment(symbol), environment::environment(const
611 environment *)): Initialize hyphenation_margin and
612 hyphenation_space.
613 * troff/env.h: Corresponding changes to class environment.
614
615Fri Nov 23 09:08:16 1990 James Clark (jjc at jclark)
616
617 * troff/div.c (blank_line): Always do a break.
618
619 * eqn/box.c (do_text): Turn off escapes while appending text to
620 string.
621
622Thu Nov 22 10:58:59 1990 James Clark (jjc at jclark)
623
624 * troff/input.c (while_break_request, while_continue_request): New
625 functions.
626 (init_input_requests): Bind these to "break" and "continue".
627 (while_depth, while_break_flag): New variables.
628 (while_request): Update while_depth. Break out of loop if
629 while_break_flag is set.
630
631Wed Nov 21 10:54:40 1990 James Clark (jjc at jclark)
632
633 * tbl/table.c (init_span_reg): Initialize span_width_reg to \n(.H
634 rather than 0.
635
636Mon Nov 19 00:45:03 1990 James Clark (jjc at jclark)
637
638 * Makefile: Include -DBROKEN_SPOOLER by default. Expand comment.
639
640 * stringify: New file.
641 * Makefile (groff.o): Use stringify.
642
643 * xditview/tmac.X: Remove definition of \(rn.
644 * xditview/libXdvi/DviChar.c: Remove radicalex from
645 Adobe_symbol_map.
646
647Sat Nov 17 10:44:58 1990 James Clark (jjc at jclark)
648
649 * tbl/table.c (table::add_entry): Allow alphabetic text blocks.
650 (alphabetic_block_entry::alphabetic_block_entry,
651 alphabetic_block_entry::divert, alphabetic_block_entry::print):
652 New functions.
653 (block_entry::divert): Split off body into ...
654 (block_entry::do_divert): If the block is alphabetic, subtract 2n
655 from the line length; also update the span width to dl+2n, and the
656 alphabetic span width to dl.
657
658 * driver/input.c (do_file): While reading argument to D command,
659 when expanding buffer, multiply szp by sizeof(int) rather than 2
660 in the argument to memcpy.
661
662 * tbl/table.c (compute_span_width): Add 2n rather than 1n to the
663 width of alphabetic columns.
664
665Fri Nov 16 06:34:27 1990 James Clark (jjc at jclark)
666
667 * troff/node.c (lookup_family): Supply second argument to lookup.
668
669 * troff/dictionary.c (dictionary::lookup): After an unsuccesful
670 search, return immediately if v is 0.
671
672 * pic/troff.c: Define EQN_NO_EXTRA_SPACE_REG.
673 (troff_output::start_picture): Set this reg.
674 (troff_output::end_picture): Remove this reg
675 * eqn/box.c (box::extra_space): Don't produce `\x's if
676 EQN_NO_EXTRA_SPACE_REG is defined.
677
678 * eqn/eqn.y: Allow just a PRIME to be a `simple'.
679 * eqn/text.c (split_text): Map ' to \(fm when it's the first
680 character.
681
682Thu Nov 15 10:35:06 1990 James Clark (jjc at jclark)
683
684 * macros/tmac.e: Use font 3 instead of B in $c. Remove `bd'
685 requests.
686
687 * troff/div.c (top_level_diversion::top_level_diversion):
688 Initialize page_number to 0.
689
690Wed Nov 14 21:41:58 1990 James Clark (jjc at jclark)
691
692 * groff/troff (environment::environment(const environment *)):
693 Initialize name to e->name, rather than "anonymous".
694
695Sat Nov 10 01:59:37 1990 James Clark (jjc at jclark)
696
697 * xditview/libXdvi/Dvi.c (ShowDvi): If eof is encountered, reset
698 requested_page. Split middle part into ...
699 (FindPage): New function.
700 (SetValues): If we don't yet know the last page, and the requested
701 page is greater than the current page, call FindPage.
702 Update the font_map_string before doing this.
703
704 * xditview/tmac.X: Add definitions of \(sq, \(ga, \(dg and \(dd.
705 Translate \(lh and \(rh into left and right double arrows.
706
707 * troff/node.c (class hyphen_inhibitor_node): New class.
708 (hyphen_inhibitor_node::hyphen_inhibitor_node,
709 hyphen_inhibitor_node::copy, hyphen_inhibitor_node::same,
710 hyphen_inhibitor_node::type,
711 hyphen_inhibitor_node::get_hyphenation_type): New functions.
712 (node::add_discretionary_hyphen): Use hyphen_inhibitor_node rather
713 than dbreak_node(0, 0) to represent a `\%' at the beginning of a
714 word.
715
716Fri Nov 9 16:05:38 1990 James Clark (jjc at jclark)
717
718 * troff/node.h (dummy_node::get_hyphenation_type,
719 transparent_dummy_node::get_hyphenation_type): Declare them.
720 * troff/node.c: (dummy_node::get_hyphenation_type,
721 transparent_dummy_node::get_hyphenation_type): New functions.
722
723Wed Nov 7 10:09:06 1990 James Clark (jjc at jclark)
724
725 * xditview/libXdvi/draw.c: If M_PI not defined after including
726 math.h, then define it.
727
728 * xditview/Makefile: Add definition of AR. Pass it to the submake
729 in libXdvi.
730 * xditview/libXdvi/Makefile: Add definitions of AR and RANLIB.
731
732Tue Nov 6 10:14:27 1990 James Clark (jjc at jclark)
733
734 * troff/dictionary.h (object_dictionary::alias): Declare return
735 value as int.
736 * troff/dictionary.c (object_dictionary::alias): Return non-zero
737 if the old name was defined.
738 * troff/input.c (alias_macro): Give a warning if the old name was
739 not defined.
740 * troff/reg.c (alias_reg): Likewise.
741
742Mon Nov 5 00:31:39 1990 James Clark (jjc at jclark)
743
744 * troff/input.c (token::next): Delete implementation of \R.
745
746 * macros/Makefile: Strip comments from tmac.e while installing it.
747
748 * troff/input.c: New variable `nroff_mode'.
749 (troff_request, nroff_request): New functions.
750 (init_input_requests): Bind `troff' and `nroff' to troff_request
751 and nroff_request.
752 (do_if_request): Compute results of t and n conditions from
753 nroff_mode.
754
755 * text/text.c (split_text): Fix typo in >=.
756
757 * eqn/lex.c: Add definition of `==' to def_table.
758
759Fri Nov 2 02:49:09 1990 James Clark (jjc at jclark)
760
761 * pic/tex.c (tex_output::start_picture): Change the definitions of
762 \graph and \graphtemp so that they work properly with Plain TeX.
763
764 * pic/tex.c (tex_output::solid_arc): Ensure that the second angle
765 argument to `ar' is not less than the first.
766
767 * pic/pic.y: Allow a comma between elements of the variable list
768 in the argument to `reset'.
769
770 * pic/object.c (arc_object::arc_object): Fix computation of
771 radius.
772
773 * eqn/main.c (main): Add exit(0).
774
775Thu Nov 1 02:03:50 1990 James Clark (jjc at jclark)
776
777 * troff/div.c (begin_page): Test no_space_mode after doing the
778 break, but still push the page ejector cookie before doing the
779 break. Also set the next page number after doing the break.
780
781 * xditview/xditview.c (NewFile): Don't set the title and icon name
782 if this is the first file and its name is `-'.
783 * groff/groff.c: Define a new device flag XT_OPTION. Set it for
784 the X75 and X100 devices.
785 (main): If a device has the XT_OPTION flag set and there's exactly
786 one file argument, pass the driver -xrm and -title options to set
787 the icon name and window title to the name of the file.
788
789 * troff/env.c (environment_switch): If there was an argument but
790 it wasn't a valid number or name, then pop an environment but
791 don't give an error message on underflow.
792
793 * troff/number.c (start_number): Correct spelling in error message.
794
795 * troff/input.c (token::delimiter): Don't print an error message
796 if err is false.
797
798 * xditview/libXdvi/parse.c (ParseInput): In case 'D', only call
799 ParseDrawFunction if dw->display_enable is true.
800
801Wed Oct 31 05:49:50 1990 James Clark (jjc at jclark)
802
803 * pic/pic.y: Parse text positioning like normal attributes, so as
804 to allow `"text" at 0,0 ljust'. Don't allow `center' as a
805 positioning attribute.
806
807Mon Oct 29 22:50:38 1990 James Clark (jjc at jclark)
808
809 * tbl/main.c (process_data): When in state START while reading a
810 text block, don't change to state MIDDLE if c is a newline.
811
812Sun Oct 28 21:59:56 1990 James Clark (jjc at jclark)
813
814 * dvi/dvi.c (dvi_printer::begin_page): Rename `i' variable to `j'
815 so as to avoid shadowing parameter.
816
817Wed Oct 24 18:35:39 1990 James Clark (jjc at jclark)
818
819 * tbl/table.c (trim_space): Deleted.
820 (table::add_entry): Don't call trim_space.
821
822Mon Oct 22 03:48:39 1990 James Clark (jjc at jclark)
823
824 * VERSION: Change version to 0.6.
825
826 * troff/number.c (parse_expr): Make == work.
827
828Sat Oct 20 11:28:17 1990 James Clark (jjc at jclark)
829
830 * man/grog.man: New file.
831 * man/Makefile: Add grog.n to MAN1PAGES.
832 * etc/grog.sh: New file.
833 * etc/Makefile: Install grog.sh as grog.
834
835Fri Oct 19 11:17:15 1990 James Clark (jjc at jclark)
836
837 * troff/input.c (token::next): Implement \E.
838
839Thu Oct 18 11:56:24 1990 James Clark (jjc at jclark)
840
841 * xditview/tmac.X: Change font translations to match tmac.ps.
842
843 * troff/input.c (non_empty_name_warning): Don't give a warning if
844 `\{' terminates the name.
845
846Tue Oct 16 10:04:23 1990 James Clark (jjc at jclark)
847
848 * ps/devps/symbol.diff: New file.
849 * ps/devps/FontMakefile: Mention symbol.diff.
850
851Sun Oct 14 11:46:46 1990 James Clark (jjc at jclark)
852
853 * troff/node.c (font_position): Use get_long_name to read the
854 external_name.
855
856 * troff/env.c (environment_switch): If we get a number that's < 0
857 or >= NENVIRONMENTS, treat it like a name.
858 Change NENVIRONMENTS to 10.
859
860 * troff/groff.h: Remove definition of FONTS_MAX.
861 * troff/node.h (class font_family): Make map a pointer instead of
862 an array. Add a map_size member. Make it a class. Make nm const
863 and public. Make invalidate_fontno a friend.
864 * troff/node.c: Define font_table_size. Make font_info a pointer
865 rather than an array.
866 (class troff_output_file): Allocate font_position dynamically. Add
867 nfont_positions member.
868 (troff_output_file::set_font): Grow font_position if necessary.
869 (troff_output_file::~troff_output_file): Delete font_position.
870 (troff_output_file::troff_output_file): Allocate font_position.
871 (grow_font_table): New function.
872 (troff_output_file::really_begin_page,
873 troff_output_file:really_copy_page): Use nfont_positions rather
874 than FONTS_MAX.
875 (mount_font_no_translate, mount_style): Call grow_font_table if
876 necessary.
877 (font_family::font_family): Allocate map.
878 (font_family::make_definite): Grow map if necessary. Use
879 font_table_size instead of FONTS_MAX.
880 (font_family::~font_family): New function.
881 (invalidate_fontno): Use font_family::map_size.
882 (get_fontno, env_space_width, env_half_narrow_space_width,
883 env_narrow_space_width, symbol_fotno, is_good_fontno,
884 get_bold_fontno, make_glyph_node): Use font_table_size rather than
885 FONTS_MAX.
886 (next_available_font_position): Never return 0.
887
888Fri Oct 12 10:17:52 1990 James Clark (jjc at jclark)
889
890 * ps/tmac.ps: Add font translations for compatibility with dpost.
891
892Thu Oct 11 12:09:03 1990 James Clark (jjc at jclark)
893
894 * eqn/pile.c: Rename default_baseline_sep to baseline_sep.
895 Move BASELINE_SEP_FORMAT and COLUMN_WIDTH_FORMAT into pbox.h.
896 Move definitions baseline_sep, shift_down, column_sep,
897 matrix_side_sep into...
898 * eqn/box.c: Add them to param_table.
899 * eqn/pbox.h: Add declarations to pbox.h.
900
901 * troff/input.c (set_string): Cast value to unsigned char *.
902
903 * troff/token.h (process_input_stack): Declare it static before
904 declaring it a friend.
905
906Wed Oct 10 09:59:13 1990 James Clark (jjc at jclark)
907
908 * dvi/devdvi/texex.map: Fix positions of extensible brace middle
909 and bottom.
910 * dvi/devdvi/EX: Regenerate.
911
912 * troff/input.c (init_charset_table): Make ", ', ), ], *, \(dg
913 transparent.
914
915Tue Oct 9 08:34:02 1990 James Clark (jjc at jclark)
916
917 * eqn/lex.c: In defaults_table, make definition of `dot' call
918 `dot_def'. Don't explicitly make it roman. Similarily for other
919 accents.
920
921 * pic/lex.c (for_input::for_input): Add by_is_multiplicative
922 argument.
923 (for_input::get, for_input::peek): Use this.
924 (do_for): Add by_is_multiplicative argument.
925 * pic/pic.y: Change optional_by clause to allow '*' after `by'.
926 Change semantic value of optional_by to be a double plus a flag
927 saying whethet the by clause is multiplicative.
928
929 * eqn/lex.c (get_delimited_text): Remember location of start of
930 definition. Improve error handling when EOF is encountered.
931
932 * lib/font.h: Rename handle_x_command to
933 handle_unknown_font_command.
934 * lib/font.c (font::load): Call handle_unknown_font_command for
935 any unknown command in the font description file. Don't call
936 handle_x_command. Include the name of the command in the argv.
937 Improve message for unknown command after kernpairs or charset
938 command.
939 * ps/ps.c (ps_font::handle_x_command): Rename to
940 handle_unknown_font_command. Remove message about `x download'
941 command. Give error message for wrong number of arguments.
942 * ps/devps/afmtodit: Generate `encoding' instead of `x encoding'.
943 * dvi/dvi.c (dvi_font::handle_x_command): Rename to
944 handle_unknown_font_command. Give an error message for wrong
945 number of arguments. Rename design_size to designsize.
946 * dvi/tfmtodit.c (main): Generate `checksum' instead of `x
947 checksum', `designsize' instead of `design_size'.
948
949Mon Oct 8 00:38:55 1990 James Clark (jjc at jclark)
950
951 * eqn/*.[chy]: Change underaccent to uaccent.
952
953 * eqn/eqn.y: Add rule for underaccent. Declare UNDERACCENT token;
954 give it the same precedence as ACCENT.
955 * eqn/other.c (make_underaccent_box): New function.
956 * eqn/box.h: Declare it.
957 * eqn/lex.c: Add UNDERACCENT to token_table. Add utilde to
958 def_table.
959
960Sun Oct 7 11:25:16 1990 James Clark (jjc at jclark)
961
962 * pic/pic.y (reset_all): New function. Called in rule for RESET.
963 (parse_init): Call reset_all.
964 (define_variable): When defining scale reset only those
965 pre-defined variables that are scaled.
966 (defaults_table): Add `scale' as non-scaled value.
967
968 * pic/pic.y: Redo parsing of text adjustments: parse adjustments
969 together with the text; allow any number of positioning words;
970 allow center as a positioning word.
971
972 * pic/object.c (output::compute_scale): Get picture maximum height
973 and width from variables called maxpswid and maxpsht.
974 * pic/pic.y: Add maxpswid and maxpsht to defaults_table.
975
976Sat Oct 6 10:16:56 1990 James Clark (jjc at jclark)
977
978 * pic/object.c (object_spec::make_text): Multiply textht by number
979 of text items.
980
981 * pic/pic.y: Allow `sprintf("string", expr,...)' wherever text can
982 occur.
983 (do_sprintf): New function.
984 (pic.gperf): Add sprintf token.
985 (text, sprintf): New rules.
986
987 * pic/pic.y: `rand()' with no arguments returns a random number
988 in the range [0,1).
989
990 * pic/pic.y: Allow a bare expression to be an attribute: change
991 precedences to support this. Change optional_ordinal rule to
992 optional_ordinal_last to avoid reduce/reduce conflict.
993 * pic/object.c (object_spec::object_spec): Initialize direction.
994
995 * pic/pic.y: Implement ^ operator meaning exponentiation.
996
997 * troff/node.h: Add default argument to mount_font.
998 * troff/node.c (font_position): Read an optional third argument
999 giving the external_name.
1000 (mount_font): Add optional argument giving the external_name.
1001 (mount_font_not_translate): Have additional argument giving
1002 external name. Use this name to load the font. Pass both names
1003 to font_info::font_info.
1004 (font_info::font_info): Have additional argument giving
1005 external_name.
1006 (class tfont): New member external_name.
1007 (font_info::get_tfont): Use external name to construct tfont_spec.
1008
1009Fri Oct 5 04:03:13 1990 James Clark (jjc at jclark)
1010
1011 * eqn/lex.c (init_table): Add argument giving device. Define
1012 name of device to be "1".
1013 (do_ifdef): Counts as true if the argument has been defined with
1014 `define'.
1015 * eqn/main.c (main): Call init_table with device argument. Make
1016 device local to main.
1017 * eqn/eqn.h: Change declaration of init_table. Remove declaration
1018 of device.
1019
1020 * pic/lex.c (get_delimited): Allow text to be delimited by
1021 matching {}s. Don't recognize ending delimiter within a string.
1022
1023 * troff/input.c (get_delim_name): New function.
1024 (token::next): Implement \C.
1025
1026 * lib/font.c (font::load): Grok ---. Add an alias for each
1027 character based on its code.
1028 (font::get_code_width): Deleted.
1029 * lib/font.h (class font): Declare font::number_to_index().
1030 Remove declaration of font::get_code_width.
1031 * lib/nametoindex.c (font::name_to_index): Add 512 rather than 256
1032 to indices of named characters.
1033 (font::number_to_index): New function.
1034 * troff/input.c (font::number_to_index): New function.
1035 (get_charinfo_by_number, charinfo::get_number,
1036 charinfo::set_number): New functions.
1037 (token::next): Turn \N into a TOKEN_NUMBERED_CHAR.
1038 (token::process, token::description, token::get_char,
1039 token::add_to_node_list, token::operator==): Handle
1040 TOKEN_NUMBERED_CHAR.
1041 * troff/charinfo.h: Declare get_charinfo_by_number,
1042 charinfo::get_number, charinfo::set_number. Add NUMBERED flag to
1043 charinfo class.
1044 (charinfo::numbered): New function.
1045 * troff/token.h: Add TOKEN_NUMBERED_CHAR.
1046 * troff/env.h (class environment): Remove declaration of ...
1047 * troff/env.c (environment::make_numbered_char_node): Deleted.
1048 * troff/node.c (make_numbered_node): Deleted.
1049 (class numbered_glyph_node): Remove.
1050 (troff_output_file::put_char_width, troff_output_file::put_char):
1051 Handle numbered chars.
1052 (troff_output_file::numbered_char): Removed.
1053 (tfont::get_code_width): Removed.
1054 (make_glyph_node): Don't search special fonts for numbered
1055 characters.
1056 * troff/node.h: Remove declaration of make_numbered_node.
1057 * driver/input.c (do_file): Handle N command.
1058 * driver/printer.h: Add declaration of ...
1059 * driver/printer.c (printer::set_numbered_char): New function.
1060 * dvi/tfmtodit.c (main): Generate unnamed entries.
1061 * ps/devps/afmtodit: Likewise.
1062 * xditview/xtotroff.c (MapFont): Likewise.
1063 * xditview/libXdvi/parse.c (ParseInput): Grok N command.
1064
1065 * tbl/main.c (process_format): If multiple widths are specified
1066 for a column but all the widths are the same, don't give an error
1067 message.
1068
1069 * tbl/table.c (table::do_row): If the current row is all lines and
1070 the stuff doesn't contains a line, mark the top of the row after
1071 printing stuff before the row. If the current row is not all
1072 lines and the stuff doesn't contain a line, don't unnecessarily
1073 mark the top of the row before printing the stuff.
1074
1075Mon Oct 1 11:42:00 1990 James Clark (jjc at jclark)
1076
1077 * troff/groff.h: Remove MAX_PATH.
1078 * troff/input.c (open_file): Dynamically allocate space for the
1079 path.
1080 (open_mac_file, process_macro_file): Corresponding changes.
1081
1082Sun Sep 23 18:56:26 1990 James Clark (jjc at jclark)
1083
1084 * troff/node.h (class output_file): Make copy_file pure. Add
1085 vspace method ifdef COLUMN. Add is_printing method.
1086 * troff/node.c: Add class printing_reg. Add class
1087 real_output_file. Derive other output_file classes from
1088 real_output_file; in these classes rename begin_page to
1089 really_begin_page, print_line to really_print_line, copy_file to
1090 really_copy_file, transparent_char to really_transparent_char.
1091 Move output_file::flush to real_output_file. Add printing member
1092 to class output_file.
1093 * troff/div.h: Remove printing member from top_level_diversion.
1094 Add vspace member function to class diversion ifdef COLUMN. Add
1095 some declarations ifdef COLUMN.
1096 * troff/div.c (top_level_diversion::copy_file,
1097 top_level_diversion::transparent_output,
1098 top_level_diversion::output): Don't test printing member before
1099 output.
1100 * troff/input.c: Handle initial variable_space_request ifdef
1101 COLUMN.
1102 * troff/Makefile: Add column.c but comment it out. Add -DCOLUMN
1103 but comment it out.
1104
1105Sat Sep 22 11:32:22 1990 James Clark (jjc at jclark)
1106
1107 * troff/div.c (diversion::need): Make any space forced. If we
1108 sprung a trap, set truncated_space to minus the distance to the
1109 trap and set needed_space to the amount that was needed.
1110 (top_level_diversion::space): A forced space turns no_space_mode
1111 off.
1112 (class constant_vunits_reg): New class.
1113 (init_div_requests): Implement number registers .trunc and .ne
1114 using constant_vunits_reg.
1115 (class truncated_space_reg): Deleted.
1116
1117 * troff/div.h: Don't have a no_space_mode member in diversion.
1118 Instead have it in top_level_diversion.
1119 * troff/div.c (diversion::diversion): Don't initialize
1120 no_space_mode.
1121 (top_level_diversion::top_level_diversion): Initialize
1122 no_space_mode.
1123 (no_space, restore_spacing): Do nothing if curdiv != topdiv.
1124 (macro_diversion::output): Don't clear no_space_mode.
1125
1126 * troff/input.c (diverted_space_node::reread): Don't call
1127 environment::do_break. In fill mode, act like a blank line.
1128 (diverted_copy_file_node::reread): Don't call
1129 environment::do_break.
1130
1131 * troff/div.c (blank_line): New function.
1132 * troff/div.h: Declare it.
1133 * troff/input.c (process_input_stack): Call it.
1134
1135 * troff/div.c (truncated_space_reg::get_string): New function.
1136 (init_div_requests): Bind to .trunc.
1137 (space_request, top_level_diversion::space,
1138 top_level_diversion::output, macro_diversion::space,
1139 macro_diversion::output): Update truncated_space.
1140 (macro_diversion::output): Redo calculations when trap sprung.
1141 (macro_diversion::output, macro_diversion::space): No need for
1142 trap_flag.
1143
1144 * troff/div.c (top_level_diversion::output): Set nl_reg_contents
1145 after truncating post line spacing.
1146
1147Fri Sep 21 11:27:25 1990 James Clark (jjc at jclark)
1148
1149 * ps/devps/prologue (MF, SF): Make them work even if setfont is
1150 defined as a procedure rather than as an operator.
1151
1152Thu Sep 20 12:55:05 1990 James Clark (jjc at jclark)
1153
1154 * troff/div.c (macro_diversion::space): Ignore no_space_mode.
1155
1156Wed Sep 19 10:54:37 1990 James Clark (jjc at jclark)
1157
1158 * troff/div.c (top_level_diversion::output): Merge
1159 output_file::print_line and output_file::end_of_line member
1160 functions.
1161 * troff/div.h (class output_file):
1162 * troff/node.c (troff_output_file::print_line,
1163 troff_output_file::end_of_line, output_file::end_of_line,
1164 ascii_output_file::print_line, suppress_output_file::print_line):
1165 Corresponding changes.
1166
1167Tue Sep 18 11:31:47 1990 James Clark (jjc at jclark)
1168
1169 * troff/input.c (token::next): Don't give a warning for `\.'.
1170
1171 * troff/env.c (environment::get_center_lines): New function.
1172 (init_env_requests): Bind number register .ce to it.
1173 * troff/env.h: Declare it.
1174 * tbl/table.c (table::init_output): Define reset macro to restore
1175 .ce. If center option not given, store .ce in SAVED_CENTER_REG.
1176 Then do .ce 0.
1177 (table::print): If center option not given, then imply center
1178 option if SAVED_CENTER_REG > 0.
1179
1180Mon Sep 17 09:19:19 1990 James Clark (jjc at jclark)
1181
1182 * ps/devps/Makefile: Remove T from FONTS. Remove TSymbol.ps and
1183 Troff.ps from DOWNLOAD.
1184
1185 * troff/Makefile: Change comment in DEFINES to avoid confusing
1186 System V make.
1187
1188 * ps/ps.c (ps_printer::do_exec): Allow newlines within PostScript
1189 code. Don't try to catch errors with stopped.
1190 (check_line_lengths): New function.
1191 * ps/devps/prologue (EXEC): Deleted.
1192 (EBEGIN, EEND): New procedures.
1193
1194Sun Sep 16 14:51:15 1990 James Clark (jjc at jclark)
1195
1196 * troff/input.c: Include request.h before node.h.
1197 * troff/node.c: Likewise.
1198 * troff/env.c: Likewise.
1199 * troff/div.c: Likewise.
1200 * troff/node.h (class special_node): Store argument as a macro
1201 rather than a char *.
1202 * troff/node.c (special_node::special_node, special_node::copy):
1203 Grok this.
1204 (special_node::~special_node): Deleted.
1205 (special_node::tprint): Deleted.
1206 (special_node::tprint_start, special_node::tprint_end,
1207 special_node::tprint_char): New functions.
1208 (troff_output_file::special): Deleted.
1209 (troff_output_file::start_special, troff_output_file::end_special,
1210 troff_output_file::special_char): New functions.
1211 * troff/input.c (special_node::tprint): New function.
1212 (do_special): Use macro not char *.
1213 (do_transparent_macro): Deleted.
1214 (token::next): Don't call do_transparent_macro.
1215
1216 * troff/input.c (token::next): Add 'Y' case.
1217 (do_transparent_macro): New function.
1218 * troff/node.c (troff_output_file::special): Handle newlines with
1219 argument using new continuation convention.
1220 * driver/input.c (get_string): Cope with continuation convention.
1221 (do_file): Don't call skip_line after calling get_string(1).
1222 * ps/ps.c (ps_printer::special, ps_printer::do_import,
1223 ps_printer::do_def, ps_printer::do_exec): Cope with newlines in
1224 arg.
1225 * xditview/libXdvi/parse.c (ParseInput): Ignore lines starting
1226 with +.
1227
1228Sat Sep 15 19:00:10 1990 James Clark (jjc at jclark)
1229
1230 * troff/input.c (asciify): By default, illegal input characters
1231 should return empty string.
1232
1233 * troff/input.c (copy_file): Handle first page transition like title.
1234 (token::next, process_input_stack): Grok COPY_FILE_REQUEST.
1235
1236 * troff/input.c (token::next): Improve error message for EOF after
1237 escape character.
1238 (input_char_description): New function.
1239 (get_char_for_escape_name): Use input_char_description.
1240 (token::next): Warn about unrecognized escape sequences.
1241 (warning_table): Add WARN_ESCAPE.
1242 * troff/groff.h: Declare WARN_ESCAPE. Change WARN_TOTAL
1243 accordingly.
1244
1245 * troff/token.h: Remove declaration of process_input_stack.
1246
1247 * troff/input.c: Remove declaration of init_hyphen_requests.
1248 * troff/request.h: Correct spelling in declaration of same.
1249
1250 * troff/input.c (token::next): Check whether escape_char is 0.
1251
1252Fri Sep 14 12:09:25 1990 James Clark (jjc at jclark)
1253
1254 * groff.c (main, usage, help): Implement -P and -L options.
1255 * groff.sh: Likewise.
1256
1257 * troff/input.c (token::next): Use some gotos to avoid code
1258 duplication.
1259
1260 * troff/input.c (get_long_name, get_name, read_long_ecsape_name):
1261 Avoid calling symbol::symbol if name empty.
1262
1263Thu Sep 13 06:21:45 1990 James Clark (jjc at jclark)
1264
1265 * troff/input.c (init_input_requests): Make \n(.x return the major
1266 version number and \n(.y return the minor version number.
1267 * troff/Makefile: Construct file majorminor.c defining
1268 major_version and minor_version automatically from ../VERSION.
1269
1270 * troff/node.c (class glyph_node): Make operator new and operator
1271 delete public.
1272 (class ligature_node): Similarily.
1273
1274 * troff/input.c (operator==(const macro &, const macro &)): New
1275 function.
1276 (non_interpreted_node::same): Use this.
1277 (string_iterator::string_iterator): Make macro& argument const.
1278
1279 * troff/input.c (input_iterator::get): New function. Don't make
1280 asciify_macro or class non_interpreted_node friends of class
1281 input_iterator.
1282 (non_interpreted_node::interpret): Use input_iterator::get.
1283 (asciify_macro): Likewise.
1284
1285 * troff/input.c (~token_node, ~string_iterator, ~arg_list,
1286 ~non_interpreted_node): Deleted.
1287 * troff/node.c: (~suppress_output_file, ~ascii_output_file):
1288 Deleted.
1289
1290 * troff/symbol.h: Make all symbol member functions const.
1291
1292 * lib/strtol.c: New file.
1293 * lib/Makefile: Add strtol.c.
1294 * Makefile: Define STRTOL as strtol.o to include strtol in
1295 libgroff.a.
1296
1297Wed Sep 12 10:00:49 1990 James Clark (jjc at jclark)
1298
1299 * pic/troff.c (troff_output::simple_circle): Divide by scale.
1300
1301Tue Sep 11 14:17:16 1990 James Clark (jjc at jclark)
1302
1303 * troff/input.c (do_special): Use input_level.
1304
1305 * troff/token.h (TOKEN_BACKSPACE): New token.
1306 (token::backspace): New function.
1307 * troff/input.c (token::description, token::next, token::process):
1308 Grok TOKEN_BACKSPACE.
1309 (do_special): Turn TOKEN_BACKSPACE back into \b.
1310
1311 * troff/token.h (token::leader): New function.
1312 * troff/input.c (do_special): Turn TOKEN_LEADER back into \001.
1313
1314 * troff/input.c (do_special): Turn TOKEN_TAB back into \t.
1315
1316 * troff/input.c (do_special): Use token::description in error
1317 message.
1318
1319Mon Sep 10 11:06:27 1990 James Clark (jjc at jclark)
1320
1321 * troff/input.c (decode_args): Combine quoted and
1322 quote_input_level variables. Make it a for (;;) loop.
1323
1324 * troff/input.c (get_char_for_escape_name): Check for \001 and \b.
1325
1326 * troff/input.c (read_long_escape_name): The test for whether to
1327 expand buffer was off by 1.
1328 (read_string): Similarily.
1329
1330Fri Sep 7 11:45:50 1990 James Clark (jjc at jclark)
1331
1332 * troff/input.c: Use `const int' rather than `static const int'.
1333
1334 * troff/div.h (diversion::copy_file): Declare as pure virtual.
1335 (macro_diversion::copy_file): New function.
1336 * troff/node.h: New class diverted_copy_file_node.
1337 * troff/node.c: Implement it.
1338 * troff/input.c (copy_file): Use diversion::copy_file. Handle
1339 first page transition by pushing a diverted_copy_file_node.
1340 * troff/input.c (token::next, process_input_stack): Don't handle
1341 COPY_FILE_REQUEST.
1342
1343Thu Sep 6 13:29:10 1990 James Clark (jjc at jclark)
1344
1345 * ps/ps.c (flush_sbuf): Remember to add sbuf_kern when checking
1346 whether space widths need adjusting.
1347
1348 * troff/charinfo.h: Generalize translated_to_space to
1349 special_translation so as to allow translation to \&.
1350 * troff/input.c (translate): Allow translation to \&.
1351 (charinfo::*): Corresponding changes.
1352 * troff/node.c (make_node, node::add_char): Corresponding changes.
1353 * troff/node.h (dummy_node::dummy_node): Allow optional first
1354 argument.
1355
1356 * lib/lib.h: Make codes 0200 to 0237 illegal input characters.
1357 * troff/token.h: Remove TOKEN_TITLE. Remove token::title. Add
1358 TOKEN_REQUEST.
1359 * troff/input.c (token::next): Turn a TITLE_REQUEST into a
1360 TOKEN_REQUEST with an argument of TITLE_REQUEST.
1361 (token::process): Grok that.
1362 * troff/input.c (copy_file): Handle first page transition like
1363 title by pushing a COPY_FILE_REQUEST cookie.
1364 (token::next, process_input_stack): Grok that.
1365 * troff/node.h (output_file::copy_file): Add x and y arguments.
1366 Make it non-pure.
1367 * troff/div.c (top_level_diversion::copy_file): Supply them.
1368 * troff/node.c (troff_output_file::copy_file): Add x and y
1369 arguments; moveto specified position. Invalidate font_position
1370 array after copying file.
1371 (output_file::copy_file): New function.
1372 (suppressed_output_file::copy_file, ascii_output::copy_file):
1373 Removed.
1374 * troff/input.c (transparent_file): New function.
1375 (init_input_requests): Bind to "trf".
1376 (token::next): Handle TRANSPARENT_FILE_REQUEST cookie.
1377 (process_input_stack): Likewise.
1378
1379 * troff/Makefile: Add ../lib/lib.h to GROFF_H.
1380
1381 * troff/node.c (init_node_requests): New number registers .kern
1382 pointing to global_kern_mode, and .lg pointing to
1383 global_ligature_mode.
1384
1385 * troff/node.c (ligature): Don't change it if we get a bad
1386 integer.
1387
1388 * troff/input.c (do_define_string): Don't strip tabs.
1389
1390 * troff/input.c (asciify_macro): Make the string_iterator auto.
1391
1392 * troff/node.c (init_font_requests): Rename to...
1393 (init_node_requests):
1394 * troff/node.h: Change declaration.
1395 * troff/input.c (main): Change call.
1396
1397 * troff/input.c (node::reread, diverted_space_node::reread): New
1398 methods.
1399 (process_input_stack): Call reread rather than
1400 get_diverted_space_node.
1401 * troff/node.c (node::get_diverted_space_node,
1402 diverted_space_node::get_diverted_space_node): Removed.
1403 * troff/node.h: Declare reread methods instead of
1404 get_diverted_space_node methods. Make `n' member private.
1405 * troff/input.c: (token::diverted_space): Removed.
1406 * troff/token.h: Removed declaration.
1407
1408
1409Tue Sep 4 00:48:04 1990 James Clark (jjc at jclark)
1410
1411 * eqn/script.c (script_box::compute_metrics): Don't let
1412 SUP_RAISE_FORMAT become negative.
1413
1414 * tbl/table.c (table::do_row): Entries that don't end in the
1415 this row shouldn't make the row non-blank.
1416
1417 * tbl/table.c (table::make_columns_equal): Only set the width of
1418 columns which are marked as equal.
1419
1420 * tbl/main.c (process_data): Before issuing excess data error,
1421 if last character was a newline unget it; then get it again after
1422 the error. Also include the contents of the entry in the message.
1423
1424 * groff.c: New file.
1425 * Makefile: Build groff from groff.c. Make it possible to use
1426 either groff.sh or groff.c as groff.
1427 * Makefile.bd: Similarily.
1428
1429Mon Sep 3 09:39:49 1990 James Clark (jjc at jclark)
1430
1431 * groff.sh: Don't delay expansion of $@ in assignment to files.
1432 Remove occurrences of \".
1433
1434Sun Sep 2 09:56:59 1990 James Clark (jjc at jclark)
1435
1436 * all Makefiles: Simplify and rearrange.
1437
1438 * Makefile: Handle fmod like malloc.
1439 * lib/Makefile: Similarily.
1440 * lib/fmod.c: Remove #ifdef NEED_FMOD.
1441
1442 * Makefile: Rename OPTIMISE to OPTIMIZE.
1443
1444 * groff.sh: Remove assignment to PATH.
1445 * Makefile: Remove SHPATH variable.
1446 * Makefile.bd: Similarily.
1447
1448 * groff.sh: Add -V option to print the pipeline instead of
1449 executing it.
1450
1451Fri Aug 31 00:56:46 1990 James Clark (jjc at jclark)
1452
1453 * lib/font.c: Split off file searching into ...
1454 * lib/fontfile.c: New file.
1455
1456 * lib/strerror.c (strerror): Use `Error %d' for unknown errors.
1457
1458Thu Aug 30 13:13:55 1990 James Clark (jjc at jclark)
1459
1460 * tbl/table.c (table::do_hspan): Delete assertion that e != 0.
1461 Also change misleading comment.
1462 (table::do_vspan): Change similarily misleading comment.
1463 * tbl/main.c (process_data): A format row with an explicit `s'
1464 uses up a data line, even if all the other columns are `_' or `='.
1465
1466 * troff/input.c (token::description): Fix description of
1467 TOKEN_DUMMY and TOKEN_EMPTY.
1468
1469Wed Aug 29 04:12:08 1990 James Clark (jjc at jclark)
1470
1471 * groff.sh: Fix description of -Z in help message.
1472
1473Tue Aug 28 07:28:33 1990 James Clark (jjc at jclark)
1474
1475 * pic/object.c (object_spec::make_object): Allow negative and zero
1476 line thicknesses.
1477 * pic/pic.y: Give linethick default value of -1.0.
1478 * pic/troff.c (troff_output::troff_output): Initialize
1479 last_line_thickness to BAD_THICKNESS.
1480 (troff_output::finish_picture): Set thickness to BAD_THICKNESS.
1481 (troff_output::line_thickness): Canonicalize negative thicknesses
1482 to RELATIVE_THICKNESS.
1483 * pic/tex.c (tex_output::set_pen_size): Silently map negative line
1484 thicknesses to DEFAULT_PEN_SIZE. Canonicalize negative pen sizes
1485 to -1.0.
1486 (tex_output::start_picture): Set pen_size to -2.0.
1487
1488 * ps/ps.c (ps_printer::set_line_thickness): If line_thickness is
1489 0, then use 0 linewidth.
1490 (ps_printer::ps_printer): Initialize line_thickness to -1.
1491
1492 * pic/troff.c (troff_output::simple_ellipse): Divide by scale.
1493
1494 * ps/devps/symbolchars: Remove `or'.
1495 * ps/tmac.ps: Implement \(or with .char.
1496
1497 * ps/devps/symbolchars: Move most characters into textmap.
1498 * ps/devps/textmap: Add names for troff bracket characters. Remove
1499 ul, ru, br, bv.
1500
1501 * ps/devps/TSymbol.ps: Removed.
1502 * ps/devps/FontMakefile: Make S from Symbol not TSymbol.
1503 * ps/tmac.ps: Do with .char what TSymbol did.
1504 * ps/devps/download: Remove TSymbol.
1505
1506 * ps/devps/T: Removed.
1507 * ps/devps/Troff.ps: Removed.
1508 * ps/devps/Troff.afm: Removed.
1509 * ps/tmac.ps: Implement \(ru, \(ul, and \(br with .char.
1510 * ps/devps/download: Remove Troff.
1511 * ps/devps/FontMakefile: Remove T target.
1512 * ps/devps/DESC-A4: Remove T from font list.
1513 * ps/devps/DESC-letter: Likewise.
1514
1515 * troff/input.c (macro_to_node): Rename to ...
1516 (charinfo_to_node): Don't pass mac argument. Temporarily remove the
1517 character's definition while processing it.
1518 * troff/node.c (node::add_char, make_node): Change calls to
1519 macro_to_node accordingly.
1520
1521 * troff/input.c (token::next): Translate \_ to \(ul.
1522
1523 * tty/devascii/R.proto: Add `|'.
1524 * tty/devlatin1/R.proto: Likewise.
1525
1526Mon Aug 27 11:25:41 1990 James Clark (jjc at jclark)
1527
1528 * man: Put the version number in all the man pages.
1529
1530Sun Aug 26 11:40:05 1990 James Clark (jjc at jclark)
1531
1532 * Makefile.bd: New file.
1533 * README.bd: New file.
1534
1535 * VERSION: New file.
1536 * lib/version.c: Removed.
1537 * lib/Makefile: Create version.c from ../VERSION. Remove version.c
1538 in clean target.
1539
1540 * troff/input.c (main): Get hyphen_file from GROFF_HYPHEN
1541 environment variable.
1542
1543 * all Makefiles: Split install target into install.bin for
1544 binaries, and install.nobin for everything else.
1545 * Makefile: Add bindist target.
1546
1547 * man/afmtodit.man: New file.
1548 * man/Makefile: Add afmtodit.n to MAN1PAGES.
1549 * ps/devps/Makefile: Add textmap to DEVICEFILES. Install afmtodit
1550 in BINDIR.
1551 * ps/Makefile: Pass BINDIR to make install in devps.
1552
1553 * ps/ps.c (ps_printer::set_char): Do nothing if the character is
1554 the space character.
1555
1556 * ps/devps/FontMakefile: Rename symbol.afm to tsymbol.afm.
1557
1558Sat Aug 25 15:39:03 1990 James Clark (jjc at jclark)
1559
1560 * ps/ps.c: Redo font downloading.
1561 * ps/devps/download: New file.
1562 * ps/devps/Makefile: Add download to DEVICEFILES.
1563 * ps/devps/afmtodit: Remove -d option.
1564 * ps/devps/FontMakefile: Don't use -d option with afmtodit.
1565 * ps/devps/symbosl.ps: Add %%DocumentFonts comment.
1566 * ps/devps/zapfdr.ps: Likewise.
1567 * ps/devps/TSymbol.ps: Likewise.
1568
1569Fri Aug 24 20:10:30 1990 James Clark (jjc at jclark)
1570
1571 * groff.sh: Initialize dev to ${GROFF_TYPESETTER:-@DEVICE@}.
1572
1573Thu Aug 23 10:03:47 1990 James Clark (jjc at yquem)
1574
1575 * ps/ps.c (ps_output::include_file): If BROKEN_SPOOLER is defined,
1576 then strip the first line if it starts with %.
1577 * Makefile: Add a comment about this.
1578
1579 * man/tfmtodit.man: New file.
1580 * man/Makefile: Add tfmtodit.n to MAN1PAGES.
1581 * dvi/Makefile: Install tfmtodit in BINDIR.
1582
1583 * dvi/tfmtodit.c (usage): Mention -v option.
1584
1585Wed Aug 22 09:56:36 1990 James Clark (jjc at yquem)
1586
1587 * troff/node.c (troff_output_file::end_of_line): Call do_motion.
1588 * troff/node.c (troff_output_file::transparent_char): Don't call
1589 flush_tbuf.
1590
1591 * eqn: Add check_tabs method to most box classes.
1592 * eqn/box.c (box::top_level): Call check_tabs.
1593
1594 * eqn/script.c (script_box::output): Use \Z.
1595 * eqn/limit.c (limit_box::output): Use \Z.
1596
1597 * eqn/box.c (box::top_level): Use itoa.
1598
1599Tue Aug 21 09:29:28 1990 James Clark (jjc at yquem)
1600
1601 * dvi/tmac.dvi: Add font translations for CR, C, TT.
1602 * dvi/devdvi/Makefile: Don't make links to CW.
1603
1604 * ps/tmac.ps: Add font translations for C, CW, CO, CX, CD, H, HO,
1605 HX, HD.
1606 * xditview/tmac.X: Likewise.
1607
1608 * troff/node.c: Add font translation feature.
1609 (get_font_translation): New function.
1610 (symbol_fontno): Translate the font name.
1611 (mount_font_no_translate): Rename to mount_font to this.
1612 (mount_font): New function.
1613 (font_family::make_definite): Call mount_font_no_translate instead
1614 of mount_font.
1615 (mount_style): Translate the font name.
1616 (font_translate): New function.
1617 (init_font_requests): Bind "ftr" to font_translate.
1618
1619 * ps/devps/prologue (SN): New procedure that rounds a position to
1620 the nearest (pixel + (.25,.25)).
1621 (DL): Use SN to round endpoints.
1622
1623 * lib/version.c: Changed version to 0.5.
1624
1625Sat Aug 18 04:43:21 1990 James Clark (jjc at yquem)
1626
1627 * Makefile: Move definition of PAGE to the very beginning, so that
1628 people are less likely to miss it.
1629
1630Fri Aug 17 02:15:11 1990 James Clark (jjc at yquem)
1631
1632 * man/Makefile: Don't need to sed out @UPCASE_PROG_PREFIX@.
1633
1634 * troff/env.c (environment::choose_breakpoint): Make `can't find
1635 breakpoint' error a warning of type WARN_BREAK. Change message to
1636 `can't break line'.
1637 * troff/groff.h: Declare WARN_BREAK with code 4; change WARN_INPUT to
1638 code 040000.
1639 * troff/input.c: Add WARN_BREAK to warning_table. Include
1640 WARN_BREAK in DEFAULT_WARNING_MASK.
1641
1642 * tty/tmac.tty: Add definition of \(+-.
1643
1644 * groff.sh: Remove `--' option to set command.
1645
1646 * dvi/devdvi/texsy.map: Remove duplicate md entry.
1647
1648 * ps/devps/eqnchar: Better definition of cdot using md.
1649 * dvi/devdvi/eqnchar: Likewise.
1650 * xditview/devX100/eqnchar: Likewise.
1651 * xditview/devX75/eqnchar: Likewise.
1652 * eqn/lex.c: Add definition of cdot.
1653
1654Thu Aug 16 09:33:57 1990 James Clark (jjc at yquem)
1655
1656 * troff/input.c (get_optional_char): New function.
1657 * troff/input.c (set_page_character): Use get_optional_char(),
1658 rather than has_arg() and tok.get_char(1).
1659 * troff/env.c (tab_character, leader_character, hyphen_char,
1660 field_characters): Likewise.
1661 (margin_character): Likewise. Also always delete the
1662 margin_character_node.
1663
1664 * troff/input.c (token::get_char): Use token::description.
1665
1666 * troff/input.c (has_arg): Don't skip over tab and \}.
1667 * troff/number.c (start_number): Give a warning if the number
1668 starts with \} (WARN_RIGHT_BRACE) or tab (WARN_TAB).
1669
1670Wed Aug 15 10:04:37 1990 James Clark (jjc at yquem)
1671
1672 * troff/input.c (empty_name_warning, non_empty_name_warning): New
1673 functions.
1674 (get_name, get_long_name): Use these. Rename `warn' argument to
1675 `required'.
1676
1677 * troff/node.c (get_fontno): Test that the symbol is not null.
1678
1679 * troff/input.c (token::description): New function.
1680 * troff/number.c (parse_term): Use token::description in `numeric
1681 expression expected' message.
1682 * troff/groff.h: Add WARN_MISSING.
1683 * troff/number.c (start_number): New function.
1684 * troff/number.c (get_vunits, get_hunits, get_number, get_integer,
1685 get_incr_number): Use start_number().
1686 * troff/input.c (DEFAULT_WARNING_MASK): Enable WARN_NUMBER by
1687 default.
1688 * troff/input.c (get_name, get_long_name): Use WARN_MISSING.
1689 * troff/reg.c (alter_format): Use WARN_MISSING. Also use
1690 token::descripion.
1691 * troff/input.c (token::get_char): Use WARN_MISSING.
1692 * troff/input.c (token::delimiter): Use token::description.
1693 * troff/env.c (environment_switch): Back out Aug 3 change.
1694 * troff/input.c (has_arg): Skip over \}s and tabs but give a
1695 warning.
1696 * troff/token.h (token::tab): New function.
1697 * troff/node.c (get_fontno): Use tok.skip() rather than has_arg().
1698 * troff/reg.c (alter_format): Likewise.
1699 * troff/node.c (bold_font): Use has_arg() rather than tok.skip().
1700
1701Tue Aug 14 10:11:21 1990 James Clark (jjc at yquem)
1702
1703 * troff (most files): Redo warnings. Divide warnings into various
1704 categories; warning() has an additional first argument indicating
1705 the category it falls into.
1706 * troff/input.c (main): -w now takes an argument. New option -W.
1707 (enable_warning, disable_warning): New functions.
1708
1709 * ps/devps/afmtodit: Add -a option to lie about the italic angle.
1710 * ps/devps/FontMakefile: Pretend TI has an angle of 7.
1711
1712Mon Aug 13 10:11:16 1990 James Clark (jjc at yquem)
1713
1714 * ps/devps/eqnchar: Better definitions of dotdot, vec, dyad, inf.
1715 * xditview/devX100/eqnchar: Likewise. Remove definition of dot.
1716 * xditview/devX75/eqnchar: Likewise.
1717 * dvi/devdvi/eqnchar: Better definitions of vec, dyad, dotdot.
1718
1719 * eqn/other.c: When bar or over applies to a single character
1720 don't produce an overline_box or an underline_box. Instead produce
1721 an accent_box or an underaccent_box, with the accent a line
1722 whose width is accent_width. New classes underaccent_box,
1723 overline_char_box and underline_char_box.
1724 * eqn/box.h: Move overline_box, underline_box, accent_box class
1725 declarations into eqn/other.c. Add declarations of
1726 make_underline_box, make_overline_box, make_accent_box.
1727 * eqn/eqn.y: Call make_overline_box, make_underline_box
1728 make_accent_box instead of constructors.
1729 * eqn/pbox.h, eqn/box.c: Add accent_width parameter.
1730
1731 * eqn/other.c: Add accent_box::~accent_box.
1732 * eqn/box.h: Declare it.
1733
1734 * groff.sh: With -Tps, use eqn -D.
1735
1736 * eqn/other.c (overline_box::output): Use \Z. If draw_flag use \D
1737 rather than \l.
1738 (underline_box::output): Similarily.
1739 (accent_box::output): Use \Z.
1740
1741 * xditview/tmac.X: Add definitions of ~ and ^ (so that they are a
1742 bit smaller.)
1743
1744Sun Aug 12 09:41:15 1990 James Clark (jjc at yquem)
1745
1746 * troff/div.c (top_level_diversion::transparent_output(unsigned
1747 char)): Use asciify.
1748 * troff/input.c (asciify): Don't make it static.
1749 * troff/token.h (asciify): Declare it.
1750
1751 * troff/input.c (get_name, get_long_name, token::get_char,
1752 token::delimiter): Add an extra default argument which says
1753 whether a warning should be printed.
1754 * troff: Pass a non-zero argument to one of these rather than
1755 printing a warning directly.
1756
1757Sat Aug 11 09:02:21 1990 James Clark (jjc at yquem)
1758
1759 * troff: Consistently use symbol::is_null.
1760
1761 * troff/dictionary.h: Move some inline functions into
1762 dictionary.c.
1763
1764 * troff/request.h: Move inline functions into input.c.
1765 (request_or_macro::invoke): Make it pure.
1766
1767 * troff/input.c, troff/reg.h: New class `constant_int_reg'.
1768 * troff/input.c (init_input_requests): Use class constant_int_reg.
1769 (class compatible_reg): Deleted.
1770 * troff/div.c (init_div_requests): Use class constant_int_reg.
1771 (class last_post_line_extra_space_reg): Deleted.
1772
1773 * troff/env.c (tab_character): Don't change the tab character if
1774 we get an invalid argument.
1775 (hyphen_char): Similarily.
1776
1777 * troff/reg.c (alter_format): Check that nm is not null.
1778
1779 * Makefile, groff.sh: Make it possible to customize the commands
1780 used for printing PostScript and dvi files. Also make it possible
1781 to customize the path used by groff.sh.
1782
1783 * eqn/eqn.y: Make `left' right associative.
1784
1785Fri Aug 10 18:20:39 1990 James Clark (jjc at yquem)
1786
1787 * pic/pic.h: Added definition of M_SQRT2 for those systems that
1788 don't have it.
1789
1790 * pic/pic.h: Removed definition of INT_MAX.
1791
1792 * troff/node.c (italic_corrected_node::vertical_extent): Omit
1793 `return'.
1794
1795 * troff/input.c (token::next): Handle \R like \n.
1796
1797Tue Aug 7 09:46:33 1990 James Clark (jjc at yquem)
1798
1799 * ps/tmac.pc (PSPIC): Simplify.
1800
1801 * troff/env.c (tab_stops::to_string):
1802 * pic/pic.y (object_type_name):
1803 * pic/troff.c (simple_output::line):
1804 * pic/tex.c (tex_output::spline):
1805 * pic/object.c (object_spec::make_object):
1806 * tbl/main.c (process_data): Add cases to switch statements to
1807 avoid cfront warnings. (Some of these are spurious, since the
1808 switch already has a default case.)
1809
1810 * ps/tmac.ps (PSPIC): Reformatted. Prefix all local names with
1811 `ps-'. Don't test systat; instead check number of arguments to
1812 ps-bb.
1813
1814Mon Aug 6 00:13:07 1990 James Clark (jjc at yquem)
1815
1816 * macros/tmac.e: Do not decrease the page offset by 0.5i.
1817
1818 * ps/ps.c (ps_printer::ps_printer): Use mktemp instead of tempnam.
1819 Unlink the file as soon as we have opened it, so that we don't
1820 have to bother with signal handlers.
1821 (handler): Deleted.
1822 (fatal_error_exit): Deleted.
1823 (main): Don't call signal.
1824
1825 * dvi/tfmtodit.c: Add -k option so that kerns with the skewchar
1826 can be ignored.
1827 * dvi/devdvi/Makefile: Use the -k option with S and MI.
1828
1829 * pic/pic.y: If there is a label, or an nth construction before
1830 the first `.' in the argument to `with', ignore it and generate a
1831 warning.
1832 * pic/lex.c (lex_warning): New function.
1833
1834 * tbl/table.c (table::init_output): In section keep and release
1835 macro, use 0 indent when diverting and the correct indent when
1836 rereading.
1837
1838 * troff/input.c (interpolate_number_format): Do not interpolate
1839 anything if the number register is not defined.
1840
1841 * tbl/main.c (process_data): Don't add entry when col >= ncolumns.
1842
1843Sat Aug 4 08:12:05 1990 James Clark (jjc at yquem)
1844
1845 * ps/devps/prologue (PICTURE): Set components of graphics state to
1846 their default values.
1847
1848 * ps/devps/text.enc: Add trademark
1849 * ps/devps/textmap: Add names for club, spade, heart, diamond,
1850 carriagereturn, suchthat. Use Upsilon1 rather than Upsilon.
1851 * ps/devps/symbolchars: Add names for summation and product.
1852
1853 * dvi/devdvi/texsy.map: Add names for club, spade, heart, diamond,
1854 suchthat. Add pp. Add upper-case letters.
1855
1856 * xditview/libXdvi/DviChar.c: Add names for club, spade, heart,
1857 diamond, carriagereturn, suchthat. Use Upsilon1 rather than
1858 Upsilon.
1859
1860 * dvi/devdvi/texsy.map: Rename lA (left angle bracket) to la, and
1861 rA (right angle bracket) to ra. Introduce names for double-headed
1862 arrows and double-barred arrows: <>, va, lA, rA, hA, uA, dA, vA.
1863 * ps/devps/textmap: Likewise for ps device.
1864 * xditview/libXdvi/DviChar.c: Likewise for X100 and X75 devices.
1865 * tty/devascii/R.proto: Rename lA to la and rA to ra.
1866 * tty/devascii/R.proto: Likewise.
1867 * tty/tmac.tty: Provide definitions for \(<>, \(lA, \(rA, \(hA,
1868 \(uA, \(dA.
1869 * eqn/delim.c: In delim_table, rename \(lA to \(la and \(rA to \(ra.
1870
1871 * xditview/tmac.X: Add definitions for \(fi \(fl \(ff \(Fi \(Fl.
1872
1873 * eqn/lex.c: Added definitions of `approx', `grad' and `del' to
1874 def_table.
1875
1876Fri Aug 3 09:59:27 1990 James Clark (jjc at yquem)
1877
1878 * troff/div.c (when_request): Use symbol::is_null rather than
1879 has_arg to determine whether we have an argument.
1880 (change_trap): Remove the trap if we get an invalid number. Give
1881 an error if we don't get at least the macro name.
1882 (diversion_trap): Remove trap if we get an invalid name or number.
1883
1884 * troff/env.c (environment_switch): Pop if we get an invalid
1885 symbol or numeric expression.
1886
1887 * troff/input.c (do_define_macro): If EOF is encoutered while
1888 defining the macro, do tok.next() before returning.
1889
1890 * troff/token.h (has_arg): Move definition from here, to ...
1891 * troff/input.c (has_arg): ... here
1892
1893 * troff/env.c (space_size): Do nothing if we get an invalid argument.
1894 * troff/input.c (shift): Likewise.
1895
1896 * pic/lex.c (get_token_after_dot): Accept `.center' as a synonym
1897 for `.c'.
1898
1899 * pic/troff.c (troff_output::start_picture): Comment out calls to
1900 `..'.
1901
1902 * eqn/main.c (do_file): Subtract 1 from current_lineno if
1903 interpret_lf_args succeeds.
1904
1905 * eqn/main.c (do_file): Don't recognize delimiter if preceded by
1906 \\. This avoids problems with \$N.
1907
1908 * groff.sh: Pass -C to preprocessors.
1909
1910 * lib/lf.c (interpret_lf_args): Be more flexible.
1911
1912 * tbl/main.c (main): Add -C option.
1913 (table_input::get): Do not recognize TE if followed by character
1914 other than a space or newline unless -C option given.
1915 (process_input_file): Likewise for lf, TS.
1916 (process_data): Likewise for lf in text blocks.
1917
1918 * eqn/main.c (main): Add -C option.
1919 (do_file): Don't recognize EQ, EN or lf if followed by character
1920 other than space or newline unless -C option given.
1921 * eqn/lex.c (file_input::read_line): Similarily.
1922 * eqn/eqn.h: Declare compatible_flag.
1923
1924 * etc/soelim.c (main): Add -C option.
1925 (interpret_lf_args): Use version in libgroff.
1926 (do_file):
1927
1928 * pic/main.c (main): Add -C option, which sets compatible_flag.
1929 (top_input::get), (top_input::peek): If -C option not given,
1930 do not recognize .PS/.PE/.PF/.lf if followed by a character
1931 other than space or newline.
1932 * pic/lex.c (file_input::read_line): Similarily.
1933 * pic/pic.h: Add declaration of compatible_flag.
1934
1935Thu Aug 2 11:11:27 1990 James Clark (jjc at yquem)
1936
1937 * ps/tmac.ps (PSPIC): Avoid use of `echo -n'.
1938
1939 * troff/node.c, troff/node.h: Add `asciify' methods to classes
1940 derived from node. New class space_char_hmotion_node.
1941 * troff/input.c (asciify_macro): New function.
1942 * troff/input.c (init_input_requests): New request `asciify' bound
1943 to asciify_macro.
1944 * macros/mm.diff: New file.
1945 * Makefile: In install.mm target use `patch' to apply
1946 macros/mm.diff.
1947
1948 * troff/input.c (macro::print_size): Just print the size in bytes.
1949
1950 * troff/div.c (return_request): Correct the argument
1951 interpretation.
1952
1953Wed Aug 1 12:38:36 1990 James Clark (jjc at yquem)
1954
1955 * troff/node.h (class composite_node): Add sz member.
1956 * troff/node.c (composite_node::size): Return sz.
1957 * troff/input.c (macro_to_node): Use the initial size in the
1958 environment as the size of the composite_node.
1959
1960 * troff/node.c (node::zero_width_tprint): Provide a reasonable
1961 default.
1962
1963Tue Jul 31 10:07:10 1990 James Clark (jjc at yquem)
1964
1965 * troff/div.c (change_trap): If we get a bad number expression,
1966 do nothing.
1967
1968Mon Jul 30 10:30:49 1990 James Clark (jjc at yquem)
1969
1970 * lib/matherr.c (matherr): Define this only if math.h defines
1971 TLOSS.
1972
1973Sun Jul 29 10:34:27 1990 James Clark (jjc at yquem)
1974
1975 * troff/div.c (macro_diversion::distance_to_next_trap): If there
1976 no diversion trap return vunits(INT_MAX - vresolution).
1977
1978Sat Jul 28 14:28:14 1990 James Clark (jjc at yquem)
1979
1980 * troff/input.c (do_zero_width): New implementation that doesn't
1981 use a temporary environment. Use instead:
1982 (token::add_to_node_list): New function.
1983 * troff/env.c (environment::get_prev_char_height),
1984 (environment::get_prev_char_height),
1985 (environment::get_prev_char_skew): New functions.
1986 (environment::get_prev_char): New function.
1987 (environment::get_prev_char_width): Change to use get_prev_char.
1988 (init_env_request): Implement new registers .cht, .cdp, .csk.
1989 * eqn/sqrt.c (sqrt_box::output): Don't rely upon the argument to
1990 \Z being processed in a separate environment.
1991
1992Fri Jul 27 10:21:25 1990 James Clark (jjc at yquem)
1993
1994 * tbl/table.c: Removed TABLE_BOTTOM_REG.
1995
1996 * tbl/table.c (table::init_output): In the section release macro,
1997 give a warning message if the section won't fit on one page.
1998
1999 * tbl/table.c (table::do_top): Emit table keep only if table is
2000 boxed.
2001 (table::do_bottom): Likewise for table release.
2002 (table::table), (table::add_vertical_rule): Remove reference to
2003 keep member.
2004 * tbl/table.h: Remove keep member.
2005
2006 * tbl/table.c: New register SUPPRESS_BOTTOM_REG. In
2007 SECTION_RELEASE_MACRO, if there's not enough space before the next
2008 trap to output the diversion, call T# ourselves, set
2009 SUPPRESS_BOTTOM_REG to 1, spring the trap, then set
2010 SUPPRESS_BOTTOM_REG back to 0. In T#, do nothing if
2011 SUPPRESS_BOTTOM_REG is non-zero. In T#, always mark the current
2012 vertical position and return to it before turning traps on again.
2013
2014Thu Jul 26 02:54:32 1990 James Clark (jjc at yquem)
2015
2016 * troff/node.c, troff/node.h: In classes derived from node,
2017 replace prev_char_width method by last_char_node method.
2018 * troff/env.c (environment::get_prev_char_width): Use
2019 node::last_char_node rather than node::get_prev_char_width.
2020
2021 * Makefile: Added comment about -fno-inline on 68030-based
2022 Apollos.
2023
2024 * troff/reg.c (number_format_to_ascii), eqn/delim.c (DELIM_TABLE_SIZE),
2025 tty/tty.c (tty_font::load_tty_font), dvi/tfmtodit.c (main): Cast
2026 expressions using sizeof to int.
2027 * dvi/dvi.c (dvi_font::handle_x_command): Avoid long->int warnings.
2028
2029 * macros/tmac.e (TS): Don't move @f back past the current
2030 position.
2031
2032Wed Jul 25 09:11:08 1990 James Clark (jjc at yquem)
2033
2034 * ps/ps.c (main): Buffer stderr.
2035 * dvi/dvi.c (main): Likewise.
2036 * tty/tty.c (main): Likewise.
2037
2038 * ps/ps.c (ps_printer::do_import): Improve error handling.
2039
2040 * troff/input.c (abort_request): Use asciify.
2041
2042 * driver/printer.h (printer::draw), driver/printer.c (printer::draw),
2043 ps/ps.c (ps_printer::draw), dvi/dvi.c (dvi_printer::draw): Make
2044 type of first argument int rather than char. This works around a
2045 bug on the 68030 based Apollo using g++ 1.37.1.
2046
2047 * tbl/table.h (class table): Add `keep' member.
2048 * tbl/table.c (table::table): Initialize `keep'.
2049 (table::add_vertical_rule): Set `keep' to 1.
2050 (table::do_top): Only emit table keep macro is `keep' is non-zero.
2051 (table::do_bottom): Likewise for table release macro.
2052 (table::do_row): Emit section keep macro even if the row is 0.
2053
2054Tue Jul 24 08:35:07 1990 James Clark (jjc at yquem)
2055
2056 * macros/tmac.e (@C): Preserve the font family across the change
2057 in environments.
2058
2059Mon Jul 23 10:15:23 1990 James Clark (jjc at yquem)
2060
2061 * lib/font.c: Initialize font::hor and font::vert to 1.
2062 (font::load_desc): Check the values of font::hor and font::vert.
2063
2064 * lib/lib.h: Added definition of INT_DIGITS. Fix it so that it can
2065 be included in a C compilation.
2066 (iftoa): Use INT_DIGITS. Include lib.h.
2067 (itoa): Likewise.
2068 (as_string): Likewise.
2069 * tbl/table.c: Removed definition of INT_DIGITS.
2070 * eqn/box.c (box::top_level): Use INT_DIGITS + 1 instead of 12.
2071 * troff/input.c (input_input_requests): Likewise.
2072 * ps/ps.c (make_encoding_name): Likewise.
2073 (ps_printer::set_style): Likewise.
2074 (ps_output::put_number): Use 1 + INT_DIGITS + 1 instead of 12.
2075
2076 * tty/devascii/R.proto: Map fm onto '.
2077 * tty/devlatin1/R.proto: Likewise.
2078
2079Sat Jul 21 12:45:07 1990 James Clark (jjc at yquem)
2080
2081 * tbl/table.c: Use ' instead of DELIMITER_CHAR in places where the
2082 argument to \w is at a different input level.
2083
2084 * tbl/table.c (table::init_output): Define a new macro
2085 REPEATED_VPT_MACRO, like vpt but if in a diversion also
2086 transparently outputs itself.
2087 (table::define_bottom_macro): Use REPEATED_VPT_MACRO instead of
2088 vpt.
2089 (table::do_row): Likewise.
2090
2091 * tbl/table.c (vertical_rule::print): Prefix the .sp -1 line with
2092 TRANSPARENT_STRING_NAME.
2093
2094 * tbl/table.c (table::init_output): In the table release macro
2095 print an error message and don't produce any output if after
2096 issuing the need request the table still will not fit. Also
2097 remove the diversion after bringing it back.
2098
2099 * tbl/table.c (table::init_output): Define a new macro
2100 REPEATED_MARK_MACRO, like mk but if in a diversion also
2101 transparently outputs itself.
2102 (table::do_row): Mark row_top_reg using REPEATED_MARK_MACRO. This
2103 is necessary because .TH might not call .T#.
2104 (table::do_top): Likewise TOP_REG.
2105 (table::define_bottom_macro): If TOP_REG is no longer valid, use
2106 #T - DOUBLE_LINE_SEP rather than #T. This is necessary because the
2107 table header might contain just the two top rules.
2108
2109Fri Jul 20 10:51:42 1990 James Clark (jjc at yquem)
2110
2111 * troff/div.c: Implement new request `ptr' to print all traps.
2112
2113 * troff/env.c (init_env_requests): Implement `.tabs' reg with
2114 init_string_env_reg.
2115 * troff/env.c (class tab_reg): Deleted.
2116
2117Thu Jul 19 12:07:16 1990 James Clark (jjc at yquem)
2118
2119 * troff/div.c: New number register .pn returns the number of the
2120 next page as set by the pn request.
2121
2122 * macros/tmac.an: Redid headers and footers. Number each manual
2123 entry starting from 1 unless \nC is > 0, like Sun. Added an
2124 optional 5th argument to .TH which specifies the manual name and
2125 appears in the center of the header. Understand the X, P and D
2126 registers like Sun.
2127
2128Wed Jul 18 10:23:31 1990 James Clark (jjc at yquem)
2129
2130 * troff/env.c (init_env_requests): New number register `.lt' to
2131 return the title length.
2132
2133 * troff/node.h (class transparent_dummy_node): New class.
2134 * troff/node.c (class transparent_dummy_node): Provide member
2135 functions.
2136 * troff/env.c (interrupt): Add a transparent_dummy_node, rather
2137 than a dummy_node.
2138
2139 * troff/input.c (token::next): New escape sequence \).
2140 * troff/input.c (get_copy): Recognize \) in copy mode.
2141
2142 * troff/input.c (input_stack::clear): New function.
2143 * troff/input.c (exit_request): Use input_stack::clear.
2144
2145 * troff/token.h: Removed TOKEN_NO_PRINT_CHAR.
2146 * troff/input.c (token::process): Removed case TOKEN_NO_PRINT_CHAR.
2147
2148 * troff/env.c: Move set_page_character to input.c. Move
2149 page_character to input.c also.
2150 * troff/env.c (title): Split off the reading of the parts of the
2151 title into read_title_parts.
2152 * troff/input.c (read_title_parts): New function. Check the
2153 input_level when testing whether a token matches the delimiter.
2154
2155 * troff/input.c (exit_request): New function.
2156 * troff/input.c (init_input_requests): Bind ex request to
2157 exit_request rather than exit_groff.
2158
2159 * troff/input.c (exit_groff): Call tok.next() before
2160 process_input_stack().
2161
2162Mon Jul 16 09:47:23 1990 James Clark (jjc at yquem)
2163
2164 * troff/env.c: ifdef widow control support on WIDOW_CONTROL.
2165 * troff/env.h: ditto.
2166 * troff/input.c: ditto.
2167
2168 * troff/env.c (environment::is_empty): Test pending_lines.
2169
2170 * troff/env.c (environment::have_pending_lines): Removed.
2171
2172 * troff/input.c: Add request to flush pending lines from the
2173 environment.
2174
2175 * troff/env.c, troff/env.h: Add automatic widow control feature.
2176
2177 * troff/input.c (exit_groff): Do process_input_stack() after
2178 do_break() but before setting exit_flag to 2.
2179
2180 * troff/input.c: Remove FLUSH_PENDING_LINES and
2181 TOKEN_FLUSH_PENDING_LINES. Instead, flush pending lines from
2182 environment after END_TRAP token seen, but only if there aren't
2183 any more traps still unfinished.
2184 * troff/token.h: Remove TOKEN_FLUSH_PENDING_LINES.
2185
2186Sun Jul 15 10:50:08 1990 James Clark (jjc at yquem)
2187
2188 * troff/env.c: Rename the `retain_size' member of class
2189 pending_output_line to `no_fill'.
2190
2191 * troff/env.c (title): When the line is output, make the
2192 retain_size argument !fill.
2193
2194 * troff/node.h: Add `hyphenated' member to struct breakpoint.
2195 * troff/node.c (space_node::get_breakpoints),
2196 (dbreak_node::get_breakpoints): Fill this in.
2197 * troff/env.c: Allow specification of maximum number of
2198 consecutive hyphenated lines.
2199
2200 * troff/env.c (environment::is_empty): Add test for !current_tab.
2201
2202Sat Jul 14 11:23:01 1990 James Clark (jjc at yquem)
2203
2204 * troff/env.c (environment::hyphenate_line): Don't completely give
2205 up if the word is not to be hyphenated; continue so that breaks
2206 can be made at break_char_node's.
2207
2208 * lib/lib.h: Only define INT_MAX if it's not already defined;
2209 undef INT_MIN if it's already defined.
2210
2211 * Makefile: Make it easy to define CFRONT_ANSI_BUG.
2212
2213 * lib/lib.h: If CFRONT_ANSI_BUG is defined, cast INT_MIN to long.
2214 This works around a bug in AT&T C++ 2.0 used with an ANSI C
2215 compiler.
2216
2217 * macros/tmac.an (an-header): Set no-space mode.
2218
2219 * macros/tmac.an (TH): Start a new page if necessary.
2220
2221 * Started using ChangeLog at version 0.4.
2222
2223Local Variables:
2224version-control: never
2225End: