File: Log

package info (click to toggle)
troffcvt 1.04%2Brepack1-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 3,416 kB
  • sloc: ansic: 13,110; makefile: 6,847; perl: 1,583; cpp: 333; sh: 215
file content (670 lines) | stat: -rw-r--r-- 26,937 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
14 Apr 94

- Created directories h, lib, libunix, and libmac.  h holds header
files, lib holds the general and reader libraries libtcgen.a and
libtcread.a, libunix holds UNIX-specific stuff in libtcunix.a.  libmac
holds source used only by Macintosh versions of the translators (which
don't exist yet).  Some stuff is shared by both troffcvt and the
postprocessors, so that goes in libtcgen.a.

- Abolished TCRStrToNum().  Instead use one of the functions in lib/math.c.

15 Apr 94

- Renamed tcr.h -> tcread.h

- New global variable (long tcrLineNum) for the reader stuff, to indicate input
line number.  *** NOTE that it's not incremented properly yet ***

- TCRInit() should now be called by postprocessors once per input file,
to reset tcrLineNum properly.

- HAVEGETPID configuration parameter is gone now.  The GetPid() function now
exists in different forms in the libunix and libmac libraries.

[[ ... long gap in active development ... ]]

15 Dec 96

- Use portlib string-to-number routines instead of the ones in lib/math.c.

16 Dec 96

- Enable recognition of long request names, and long string and register
references like \*[xxx] and \n[xxx].  This helps with translation of input
intended for groff.

- Add -C option to troffcvt to turn on compatibility mode (disables
recognition of long names).  It's like groff's -C option.

- Add .C register, which is 1 if compatibility mode is on, off otherwise.

20 Dec 96

- Instantiated new type XChar (extended type), which is typedef'ed as an
unsigned long.  It's an unsigned type wide enough to encode information
about any input character (plain, escaped, or special char) in a single
scalar value.  This way I can avoid encoding non-standard characters
in a sequence of bytes.

- Low-level input functions now return type XChar rather than int.

- Renamed Bug() macro to Debug().

21 Dec 96

- There is no longer a limit of 255 special characters.

23 Dec 96

- Making full conversion from using UChar (unsigned char) to XChar
(unsigned long) for internal character type.  This is such a pervasive
change, and has so many implications, that I'm also switching to using
prototyped functions.  This means troffcvt won't compile under non-ANSI
compilers anymore.  That may break it on some systems, I guess, but I
really need to have the compiler tell me when I'm passing the wrong
argument type or the conversion will drive me nuts.

26 Dec 96

- Renamed TCSetOpenLibFileProc() and TCOpenLibFile() to TCRSetOpenLibFileProc()
and TCROpenLibFile().

- ToEsc() has always had a panic triggered to go off it it's called with
a special character code as an argument.  I've now put a similar panic into
FromEsc(); I don't see anywhere that it should be called with a special
character code, but I want to be sure.

- Added FileInfo() function that returns a string consisting of the current
input filename and line number.  Useful for making error messages more
informative.

28 Dec 96

- Added support for building troffcvt distribution on FreeBSD and MkLinux.

- Parameterized how troffcvt constructs system macro filenames for handling
command-line arguments like -me and -ms.  Usually these files have names
like tmac.e and tmac.s, but under Solaris they seem to be named just e and s.

- Modified the way troffcvt interprets command line arguments.
Formerly, it read setup files (action or macro files) named by -a or -m
options as soon as the option was pulled from the command line.  Also,
the -r option, if one was given, had to be given before any -a or -m
options.  This is no longer necessary, because instead of reading setup
files as they're found, troffcvt keeps a list of pointers to them.
After all the option arguments have been examined, it reads the
setup files.  After the setup files have been read it proceeds to read
any other input files named on the command line.

- Eliminated troffcvt -troff and -nroff options.  Now they should be
specified as -t troff or -t nroff (t = formatter type).  Also, the
option -t groff is now recognized (see next item below).  I changed
the option structure to avoid using up more initial option letters
each time a new formatter type is added.  This way only -t is used.

- Added -t groff option to troffcvt.  This defines the .g read-only
register, which keeps troffcvt from aborting on gtbl output or when
using groff macro packages.  (gtbl output and the groff macro
packages test for the .g register and abort if it's not set.)  -t
groff is also intended to make troffcvt act like groff in other
ways, but I haven't implemented other ways yet...check the list below
for future groff-related entries.

- Added ASetCompatibility() function and "req cp" line in actions file to
implement the groff .cp request for setting compatibility mode on the fly.
This is needed to keep troffcvt from dying while reading the groff tmac.e
file.  But the "req cp" line in the actions file should probably really
be interpreted only if the -t groff flag was specified...???

- Add -A option to troffcvt to suppress reading default action file.

30 Dec 96

- Changed tl action to have "title $1 $2 $3" in the post-parsing part.

- The troffcvt output format for three-part titles is different,
too.  It's now incompatible with earlier format.  However, this
should present little problem to postprocessors; three-part title
output was never implemented before, so postprocessors are unlikely
to have tried to do anything with them.

02 Jan 97

- Allow special character references of the form \[xxx].  That is, allow
special characters with long names.  These are disallowed in compatibility
mode.

03 Jan 97

- Modified handling of the .bd request; previously ".bd S F N" was
parsed correctly, but ".bd S N" was not.  The "parse-s" action has been
replaced by the "parse-embolden" action, and the AParseS() function has
been replaced by AParseEmbolden(), which parses all of the .bd request
arguments, not just the "S".  This change is probably of minimal impact;
very little is done with this request by postprocessors.

- Began work on tc2html, a postprocessor for producing HTML.

06 Jan 97

- Added \pass (pass-through) control to troffcvt reader.  Action files can
use this as:
	output-control "pass anything"
to cause:
	\pass anything
to appear in troffcvt output.  Postprocessors can do what they like with
"anything" (which is parsed into rargv[] as a single argument, but normally
it should be dumped unchanged to the output.

- Added \other control to troffcvt reader.  Action files can use this as
	output-control "other arg1 arg2 ..."
to cause
	\other arg1 arg2 ...
to appear in troffcvt output.  Postprocessors can do what they like with
the arguments, but typically \other indicates the presence of unrecognized
requests.

- Added ADumpBadRequests() action function, which can be used to turn
dumping of unrecognized requests on or off with "dump-bad-requests 1" or
"dump-bad-requests 0".  An input line beginning with an unrecognized request
will then appear in the output as:
	\comment bad-req: original-line-here

08 Jan 97

- Added ADumpInputStack() action function, which writes information about
the input stack to stderr.  It can be accessed using "dump-input-stack" in
an action file, which can be useful for debugging.  For example, if you use
the following line in an action file, you can dump the input stack with
.dump_stack requests:
	req dump_stack eol dump-input-stack

- Changed how the push-string action works.  Formerly this just pushed a
string onto the input stack.  The problem with this is that the string didn't
actually get processed until after the action list was finished.  Suppose you
had an action list like this:
	break push-string "this is a line\n" break
The break would be executed, then "abc" should be shoved on the input stack,
another break would be executed, and the action would be over.  Then the
string on the input stack would finally be processed.  Furthermore, if you
had an action list like this:
	push-string "line 1\n" push-string "line 2\n"
the output that would result would be "line 2 line 1" because the strings
would be processed in first-in last-out order.

Now any string put on the stack is processed immediately.  This means you
can put it anywhere in an action list and expect it to be processed where
it occurs.

09 Jan 97

- Began changing "non-parsing" terminology to "post-parsing" in doc/actions.ms
(and will change anywhere else it occurs).  "post" is more descriptive of the
fact that these actions are executed after request arguments are parsed.

14 Jan 97

- Fixed bug of erroneously pushing back newline after processing conditional
if newline was not the last char read (could be endOfInput, e.g., if the
conditional was provided by a push-string of a string that didn't end in
newline).  Now push back newline or endOfInput, whichever was the last char
read.

- tc2html produces "okay" output now.  That is, it can HTML-ize all the
documents in the doc directory pretty well.  Not sure how well it does in
the general case yet.  The biggest difficulty is that to use tc2html with
input intended for a given macro package, you need to write a troffcvt
action file that redefines the structure-related macros to produce produce
\html output lines that tc2html can recognize.  Once this is done, though,
it should be able to do pretty well for most documents formatted using
that macro package.

- Added "flush" action to troffcvt.  It's like "break" but doesn't write
any \break, i.e., it just flushes any pending output if there is any.
This allows you to guarantee that the next stuff written will be on a new
line (e.g., if you write a \pass xxx action to write xxx to the output
literally).

16 Jan 97

- Fixed crashing bug if macro argument \$0 occurred.  Arguments are
supposed to be \$1 .. \$9, but I had an off-by-one error on the bounds
check, which was triggered by some groff macros which use \$0 to mean
the macro name.  Boom.  Probably should at some point just implement
\$0 to do with groff does.

- troff input files can refer to \$* and \$* in a macro to refer to all
the macro arguments concatenated and space-separated.  \$@ additionally
puts double quotes around each argument.

- Actions can now refer to $* and $@, which produce a string consisting
of all request arguments concatenated and space-separated.  $@ additionally
puts double quotes around each argument.

- Fixed following bug:
   When a request is processed, the arguments are parsed and put
   in an array.  If the request's post-parsing action list includes
   a push-string action and the string pushed contains a request,
   processing the request replaces the argument array with the
   new arguments.  Any further argument references in actions
   for the original request then refer to the most recently seen
   arguments!
The fix is to save the current argument information before processing
a request, and restore it afterward.  See parse.c/ProcessRequest().

18 Jan 97

- Allow \$0 inside macros to refer to the macro name, a la groff.

- Implement the groff .mso request.  This is done using the new troffcvt
action push-macro-file, which is like push-file, except that troffcvt
looks for the filename in the same places it looks for a macro file.  Note
that this will not be *quite* the same as in groff, because if a file
of the desired name is found in the troffcvt library directory before
it's found elsewhere, it will be used.

- doc/actions.ms says that the argument array passed to action procedures
has a NULL pointer at the end.  In fact, no NULL pointer has ever been
added.  Fixed now.

- troffcvt/parse.c no longer keeps a separate buffer for the request name.
Instead it just parses the name into the rargv[] array like all the other
arguments.

- troffcvt now allows 99 macro arguments rather than just 9.  Along with
this, you can refer to macro arguments using \$(nn or \$[nnn], not just \$n.

20 Jan 97

- I just discovered that both troff and groff do the following.  If you
define a macro xx, and then refer to it like a string using \*(xx, the
macro gets executed.  I guess this is because macros and strings share
the same namespace.  Still, it seems weird to me.  Nevertheless, both
troff and groff seem to do this.  So troffcvt does it now, too.  This makes
troffcvt handle the groff -man package a lot better because groff's tmac.an
deliberately uses this trick.  [see also 16 Mar 97 entry]

- Implement groff ".shift" request for troffcvt.  New action shift-args
is used for this.

- Implement groff ".do" request for troffcvt.  New action process-do is used
for this.

- Fixed bug where a macro's arguments weren't accessible unless the macro
was the current input source.  For instance, if a file was .so'ed from within
the macro and the file referenced \$1, the macro's first argument wasn't being
seen.

23 Jan 97

- Started working on implementing aliases such as groff has (for the .aln
and .als requests).  This will involve some changes to the data structures
used for requests, macros, strings, and registers.  In particular, the
underlying structure for macros and registers has a pointer back to the
structure holding the name.  This won't work because with aliases, multiple
names will be able to point to the same underlying structure.  (And that
structure can't point back to them all.)  The reason for these backpointers
is so that the name associated with a structure can be obtained, so the
code has to be reworked to allow the name to be gotten differently.

- Fixed memory leak related to deferred removal of macros that got redefined
while they were executing.  (Had the code in there to handle this case, but
it didn't work!)

24 Jan 97

- Eliminated the -tgroff command line option; the groff extensions are now
the default.

- Fixed memory leak with .rn xx yy -- if yy already existed, it wasn't being
removed before renaming xx to yy.  This also had the problem that if you
then removed the new yy, the old yy was still in the namelist and could
reappear!

- Finished implementing the .aln and .als requests, using the alias-register
and alias-macro actions (the latter also applies to request and string
names).

28 Jan 97

- Turns out I hadn't implemented aliases correctly.  In groff, if you
redefine a macro (string, etc.), any aliases are *also* redefined.  Fixed
this.

- Wrote a script "runtest" (built in the troffcvt directory, run in the
troffcvt/tests directory) that'll run troffcvt with a given input file
and compare it to the expected result.  The input and results file must
both be in the tests directory, named xxx and xxx.result, for some xxx.
This is useful for regression testing when I change code that affects
something I know used to work and makes it easier to find bugs.

30 Jan 97

- Added table-of-contents stuff to tc2html, so that you can have a
clickable TOC at the top of the document which links to all the
sections in the document.

04 Feb 97

- Fixed crashing bug which could occur if a request was removed by
its own action list.  To prevent this from occurring, I now increment
the use count on the request object while the action lists are
being executed, and release the use afterward.  (Similar to the
mechanism that prevents crashes of a macro that happens to remove
or redefine itself as it executes.)

05 Feb 97

- Started working on tblcvt, a tbl preprocessor that has much the same
goal as troffcvt: to convert one form of input to output that's easier
to parse.

- Simplified the implementation of strings and macros by not maintaining
a separate "String" type.  Now a string is just a macro without arguments.
(Internally, both strings and macros were simply a source of input.
Furthermore, troff allows .am to a string name and .as to a macro name,
which implies it's treating them similarly internally.)  Anyway, not
having a separate string type eliminates a certain amount of code.

07 Feb 97

- Junked the parse-removelist parsing action (used for .rm and .rr).  I
never liked that this not only parsed the actions, but did something
with them (doing something with them should be handled by the
post-parsing actions.  Replaced parse-removelist with a new action
parse-names (like parse-name, but gets multiple names), and call a
new action remove-names in the port-parsing actions.  (I use parse-names
rather than parse-macro-args because parse-macro-args strips quotes.)

09 Feb 97

- The noescape action was defined in troffcvt/action.c as taking one
argument when it really takes none.  Fixed.

12 Feb 97

- Implement named environments (a la groff) by considering *all*
environments to be named rather than numbers.  Compatibility with
number-only environments is achieved by creating an initial default set
of environments named "0", "1", and "2".

13 Feb 97

- Implement another quoting mode such that a quote in a macro
argument doesn't get subjected to further quote stripping if the
macro passes the argument to another macro.  This is done by turning
these quotes into a special quote character not used anywhere else.
The regular quote-stripping mechanism is still used in compatibility
mode.  [see also 14 Mar 97 entry]

- Transliterations have been limited to transliterating an ASCII character
to another ASCII character.  Eased this limitation slightly so that the
destination character can be anything.  Probably should allow the source
character to be anything as well, but then it's harder to use a simple
array lookup to do the transliteration.

17 Feb 97

- Added -l command line option to troffcvt.  This causes it to print
controls to the output that look like:
	\line file number
to give an indication of the current input file and number.  This helps
for debugging, to figure out what output is resulting from which input
line.

01 Mar 97

- tblcvt works reasonably well now.  Now need to add table-specific controls
to troffcvt and get the postprocessors to do something with them.

- Changed symbols like begin-setup, end-setup, BeginSetup, EndSetup to
setup-begin, setup-end, SetupBegin, SetupEnd.  This change has no functional
significance, it just makes names group better in lists that are organized
alphabetically.

06 Mar 97

- Fixed subtle bug in parse.c where skipping a failed multi-line condition
wouldn't properly detect the closing \} if the line was the last in the
input but didn't end with a newline.  Sheesh.

07 Mar 97

- Modified troffcvt's name lookup mechanism.  Instead of a single list with
all the names on it, have an array of lists, and index into the array using
the name's hash value to select one of the lists.

11 Mar 97

- Corrected failure of troffcvt reader code to recognize \noconstant-width.

13 Mar 97

- Started working on support for the -mdoc macro package.  The
first test (formatting the mdoc manual page itself, using the macros
themselves with no redefinitions) turned out pretty awful -- lots of
\A tests were being written literally to the output.  That's because
I never implemented \A.  After adding code to handle \A, the man page
turned out fairly well.  It could still use some work, much of which I
hope can be done with a tc.mdoc redefinition file.

14 Mar 97

- Oops!  Now I tried formatting the mdoc.samples manual page and it
breaks big time.  Lots of the \A'xx' tests occur in macros and test an
argument using \A'\\$n', where \$n has a quote in it (like "that's").
This causes the delimiter scan to terminated early, spilling text to
the output that should be part of the test.  Okay, to fix this, the
parsing routines need to pay attention to the input level, such that
routines that looks for closing delimiters don't quit parsing until
encounting a delimiter at the same input level as the opening
delimiter.  This is similar to what groff does.  To preserve
compatibility with standard troff, the input level is ignored in
compatibility mode.  This change affects such stuff as \A'xx', \w'xx',
.if 'x'y', and .tl 'left'center'right.  Turns out the same mechanism
can also be used with opening and closing quotes in macro argument
parsing, so the ugly special quote character hack (see 13 Feb 97) can
be junked.

- Modify input character pushback mechanism to record the input level
of pushed back characters, to prevent them from being returned into
the wrong input level should a level change occur after a character is
pushed back but before the next character is read.

16 Mar 97

- Implemented groff's property that when a macro interpolates another
macro as a string (\*x, \*(xx, \*[xxx]), the outer macro's arguments
are not hidden from the inner macro.  This required splitting out
argument information from the MacSrc structure into a separate structure
and maintaining a use count on the argument structure.

- Wrote manual page for unroff.

17 Mar 97

- Changed options for tc2null, tc2text, tc2rtf.  This helps make most
options for troffcvt lowercase and options for postprocessors uppercase,
which helps when writing front ends that execute both troffcvt and a
postprocessor, by reducing option space overlap.

tc2null changes:
	echo input tokens:
	old	-e
	new	-E

tc2rtf changes:
	debugging output:
	old	-d
	new	-D
	echo input tokens:
	old	-e
	new	-E
	character set:
	old	-cs charset
	new	-S charset

tc2text changes:
	echo input tokens:
	old	-e
	new	-E
	join output lines:
	old	-join
	new	-J
	split output lines:
	old	-split nnn
	new	-S nnn

28 Mar 97

- Renamed config/mklinuxppc.p-cf to config/linux-pmac.p-cf per similar
naming change in WRPRC 2.10 config file distribution.

09 Apr 97

- Added support for groff's ".if d", ".if r", and ".if c" constructs.
The ".if c" construct is a little tricky: the input routines create
at a very low level any special char they see that doesn't exist.
This makes any special character always appear to exist if you test
whether it has a code.  But the value given to such characters is
empty, so the test is made based on an empty or non-empty value.

- tc2html now does the following with the <A HREF=xxx> construct:
instead of writing it to the output immediately, it hangs onto it
and "floats" it forward in the document until it encounters a
non-whitespace character.  Then it writes the anchor followed by
the character.  This avoids the problem where an anchor is started
on one line, but the text surrounded by the anchor beginning and
end is on the next line and is part of a display.  Since the text
is typically indented in a display, the leading space was part of
the link and was being underlined as well, which is ugly.  Now the
anchor beginning floats past the spaces.

18 Apr 97

- Moved the troffcvt-specific macros, variables, and rules for
formatting documents with troff2html, troff2rtf, and unroff into the
WRPRC2 configuration files.  This means the distribution *requires*
at least WRPRC-2.10 of that distribution.

06 May 97

- tc2text actually pays a little attention to the indent and temp
indent now.

09 May 97

- Fixed ugly (subtle) bug in troffcvt with writing /indent and /temp-indent.
Normally, troffcvt tries to avoid writing out param settings if the value
hasn't really changed.  The indent was one of these params.  But it really
has to be written out each time.  Consider the following:
	.in .5i
	.ti 1i
	a
	.ti 1i
	.in .5i
	b
This was generating the following output:
	\indent 216
	\temp-indent 432
	a
	\break
	\temp-indent 432
	b
	\break
No \indent was written after the second \temp-indent, because the .in value
didn't change.  But this is wrong, because .in overrides a preceding .ti
and the \indent should be written, like this:
	\indent 216
	\temp-indent 432
	a
	\break
	\temp-indent 432
	\indent 216
	b
	\break
This was fixed by forcing out an \indent on every indent change.  The
output gets a bit more verbose, but it's correct.

- Fixed a temp indent bug where the \temp-indent argument was being
allowed to go negative rather than being clipped to zero.

- Began making tc2text a bit smarter:
  - Pays attention to line length
  - Uses a buffer to assemble the output line.  (Before it was just
    writing characters as soon as it saw them.)  This allows better
    line wrapping (breaking a line before the word that crosses the
    output line length rather than after).  It also allows centering
    to be done (since the entire line is assembled before writing it
    out, it's known how long it is and therefore how much indenting
    is needed.
  - Tabs are expanded.  (Treats all tabs as left-justified, though.)
  - Handles tables a little bit, though badly (especially for cells
    with multiple-line contents).

11 May 97

- Removed -S option from tc2text (and unroff) since tc2text now pays
attention to line length.

13 May 97

- Improved tc2rtf's handling of tables.  The table output isn't great
but at least it no longer instantly crashes Word. :-)

16 May 97

- Changed internal names of some special characters (names written by
troffcvt using @name).  I decided to use PostScript names whenever
possible (PostScript is a preexisting standard that includes most names
I need, so by using it I don't need to make up as many names myself).
This means names like @em-dash become @emdash, etc.  Changes-1.04 lists
the changes.

- Changed oslash sequence from o/ to /o, which matches groff.

- Added special-character sequences to the troffcvt actions file for
those characters recognized by groff that weren't already in the file.
This will help provide the basis for ISO Latin-1 (ISO 8859-1) support,
since lots of Latin-1 characters are specified using special-character
sequences of the form \(xx.

18 May 97

- Removed the restriction on 8-bit input characters.  This was done by
starting special-character codes at 512 rather than 256, and by using
an escape-code range of 256-511 rather than 128-255, which frees up
the range from 128-255 for another purpose - that purpose being to
allow 8-bit characters.  This shouldn't yet be considered as real
"support" for 8-bit input, since all it means is that troffcvt doesn't
filter them out.  Postprocessors don't do anything special with such
characters.

21 May 97

- Removed the UC (university-crest) special character.  That's the kind
of thing that should be locally added on a per-site basis.

- Improved handling of tables by tc2text a little.

- Added -8 option to tc2text and unroff for specifying that 8-bit
characters should be allowed in the output.  -8 turns on reading of
text-8-specials after reading text-specials.  The text-8-specials file
lists the translations for 8-bit Latin-1 character names.

- Wrote list-specials and chk-specials scripts (in misc directory)
for generating a troffable list of all special characters and
for checking which special characters are listed and unlisted in
postprocessor special-character translations tables.

22 May 97

- Removed the @leader-pad special character.  There is no such thing.

- I had @emdash listed as a builtin special character in some places.
It's not.

23 May 97

- The distribution builds under NetBSD 1.2.1 (mac68k) now.