mirror of
https://github.com/9fans/plan9port.git
synced 2025-01-15 11:20:03 +00:00
821 lines
24 KiB
Text
821 lines
24 KiB
Text
March 11, 1994
|
|
|
|
If we are just plain old nroff (and not doing UNICODE) we should
|
|
only Lookup characters, not Install when we don't know them.
|
|
If we are troff, we Install them anyway
|
|
|
|
March 8, 1994
|
|
|
|
Nroff had problems with parsing quoted white space as options or
|
|
character code in some terminals tables. Changed by having scanf
|
|
include white space when necessary as suggested by Rich.
|
|
|
|
March 1, 1994
|
|
|
|
Made sanity check for terminal type depending on the trace level;
|
|
trace level set with -tn flag at start up
|
|
|
|
22 Feb, 1994
|
|
|
|
More pointer shuffling fixes.
|
|
|
|
18 Feb, 1994
|
|
|
|
More disabling of multibyte stuff. Fixed bug in n5.c: casetm didn'
|
|
know about the new format in the fontables.
|
|
|
|
Feb 17, 1994
|
|
|
|
Removed extra include <setlocale> from n1.c
|
|
|
|
Fixed dubious pointer shuffling in n7.c, t10.c & n8.c. Thanks Rich!
|
|
|
|
Feb 10, 1994
|
|
|
|
Disabled the multybyte stuff; only plan 9 will get it.
|
|
|
|
Jan 24, 1994
|
|
|
|
Fixed nasty bug discovered by td, which caused core dumps on
|
|
\D'l-0.002775i 0i' and apparently all numbers closer to 0
|
|
than -.002775. Fixed in storeline() and storeword() (n7.c).
|
|
|
|
Dec 16, 1993
|
|
|
|
nroff & troff -N were looking for the TYPESETTER variable, causing
|
|
|
|
troff: cannot open /sys/lib/troff/term/tab.202; line 1, file stdin
|
|
|
|
fixed my moving getenv("TYPESETTER") to t10.c in t_ptinit(void).
|
|
|
|
Dec 3, 1993:
|
|
|
|
The sequence \s+2\H'+10' came sometimes out in the wrong order
|
|
(x H before s), so there wasn't a difference bewteen \s+2\H'+10'
|
|
and \H'+10'\s+2. Now the fonts bits of the CHARHT are used to
|
|
register the current pontsize, so we can issue a s10 in t10.c
|
|
if needed. A bit sneaky.
|
|
|
|
Try to prevent double slashes in path names. Especially under
|
|
plan9 things started to look ugly.
|
|
|
|
Exception word list now grows dynamic.
|
|
|
|
Nov 30, 1993:
|
|
|
|
Allow multiple calls to .pi, requested by Rob.
|
|
.pi cat
|
|
.pi dogs
|
|
is now equivalent with
|
|
.pi cat | dogs
|
|
|
|
|
|
.ab now takes also optional error code:
|
|
.ab [n] [string]
|
|
If n and string, n is exit code, string is message
|
|
If n, n is exit code, ``User Abort, exit code n" is message
|
|
If !n and string, standard exit code, string is message
|
|
If !n and ! string, standard exit code, "User Abort" is message
|
|
|
|
Nov 24, 1993:
|
|
|
|
Reordered code to keep the UNASNI scripts happy.
|
|
|
|
Nroff dumped core reading terminal tables: apparenty under plan 9,
|
|
scanf includes the '\n'; added test for '\0' in parse in n10.c.
|
|
|
|
Relative tab settings (.ta +1C +2C) didn't work; anding the
|
|
previous value with TABMASK fixes this (caseta).
|
|
|
|
Nov 23, 1993:
|
|
|
|
Included code, originally done by bwk for plan 9, to handle
|
|
multi-byte characters.
|
|
|
|
Nov 3, 1993:
|
|
|
|
``pair internal'' two char names by shifting 16 bits. Will allow
|
|
the use of 16 bit characters sets (Unicode in plan9 etc.) for
|
|
macro's etc.
|
|
|
|
Oct 20, 1993:
|
|
|
|
Word & line buffers are now dynamic: No more word or line overflow
|
|
unless when we run out of memory.
|
|
|
|
Oct 11, 1993:
|
|
|
|
lost diversion warning pops up regularly with man macro's. Due
|
|
to a possible macro coding problem. Triggered by something like
|
|
troff -man:
|
|
.TP
|
|
.TP
|
|
foo
|
|
.ex
|
|
Minimal code:
|
|
.di aa
|
|
throw away this diversion (aa) while being defined.
|
|
.rm aa
|
|
.br
|
|
.di
|
|
|
|
Fixed by disallowing .rm to throw away current diversion. The
|
|
rn request will complain with:
|
|
|
|
cannot remove diversion aa during definition; etc.
|
|
|
|
Sep 29, 1993:
|
|
|
|
Some long standing fixes which never went back in the source.
|
|
Thanks to Janet & Rich.
|
|
|
|
Sep 28, 1993:
|
|
|
|
Changed getach() (n1.c), so it does't consider truncated
|
|
special characters as (8-bit) ascii. STX ETX ENQ ACK and BELL
|
|
are still allowed for the ultimate backwards compatibility.
|
|
|
|
Some code changes, so real ANSI compilers like the SGI version
|
|
(acc from Sun is a poor excuse for an ANSI compiler) don't
|
|
barf. Some compromises (static Tchar wbuf in n9.c) allowed so
|
|
the unansified stuff for non-ansi compilers (cc on Sun's) will
|
|
work as well.
|
|
|
|
Sep 9, 1993:
|
|
|
|
Be nice to Gerard. Now also word spaces in .tl and after
|
|
tabs/fleids etc.
|
|
|
|
Aug 12, 1993:
|
|
|
|
Tabs setting can now be humongous. We also allow 99 tabs to
|
|
accomodate tbl. As a side effect, NTM buffers are now 1K
|
|
|
|
Aug 11, 1993:
|
|
|
|
.R register, now contains maximum number of addessable
|
|
registers minus the number actually used.
|
|
|
|
Small esthetic changes in error messages; removed a statement
|
|
which wasn't reached anyway.
|
|
|
|
Aug 10, 1993:
|
|
|
|
Some more speed hacks: be smarter doing the linear table
|
|
lookups in alloc() and finds().
|
|
|
|
The real name of the det diversion size macro is now gd.
|
|
|
|
Aug 9, 1993:
|
|
|
|
A much faster way to find the end of a string/macro, by
|
|
remembering that when defined.
|
|
|
|
Aug 6, 1993:
|
|
|
|
Slightly more eficient way of skipping to the end of a
|
|
string/macro
|
|
|
|
Aug 5, 1993:
|
|
|
|
Prevent character sign extension for 8-bit charnames diversions
|
|
etc. by unpair
|
|
|
|
Aug 4, 1993:
|
|
|
|
Growing the dynamical macro/strings name space and registers
|
|
space (See the experiment of 21 July) now with bigger
|
|
increments. Casts added to satisfy non-ANSI compilers.
|
|
|
|
Aug 3, 1993:
|
|
|
|
Should check return value in alloc (n3.c), to prevent core dump
|
|
when memory gets tight.
|
|
|
|
July 28, 1993:
|
|
|
|
New request: .sg <div> sets the dn and dl registers to the size
|
|
of the diversion named in the argument. Doesn't do anything
|
|
when the named diversion doesn't exist. The name sg is
|
|
temporary until we find a better one.
|
|
|
|
July 21, 1993:
|
|
|
|
Experiment: Macro space & registers name allocated
|
|
dynamically. Note that current reallocation occurs in
|
|
increments of 1, to force the code to be executed a lot; a kind
|
|
of stress testing. Also, eight bit characters allowed in
|
|
macro/string names.
|
|
|
|
July 21, 1993:
|
|
|
|
Turn on the escape mode if the end macro is called.
|
|
|
|
July 20, 1993:
|
|
|
|
Tracing mode now default off
|
|
|
|
Don't print s stackdump either when a file specfied on the
|
|
command line argument cannot be opened
|
|
|
|
July 15, 1993:
|
|
|
|
Don't print useless line & current file informations when a
|
|
file specfied on the command line argument cannot be opened.
|
|
|
|
Sun ansi compiler doesn't default adhere to standards. Undid
|
|
the kludge in tdef.h
|
|
|
|
July 14, 1993:
|
|
|
|
Coding error made the tab type R not function properly
|
|
|
|
July 12, 1993:
|
|
|
|
Fixed a typo in the version stuff, noticed by Rich
|
|
|
|
July 9, 1993:
|
|
|
|
Added the dwb home configuration stuff, thanks RIch. Also,
|
|
NCHARS is big enough. Added a fflush to casetm, so .fm <file>
|
|
will be up to date.
|
|
|
|
June 25, 1993 (Rich):
|
|
|
|
-t option
|
|
|
|
reinstated for the sake of compatibility. Some old
|
|
shells scripts and man(1) from SunOs want this, sigh
|
|
|
|
Compiler and system dependencies
|
|
|
|
Some systems pull in sys/types.h via #include <time.h> and then
|
|
the compiler complains about two ushort typedefs. Therefore,
|
|
ushort is now Ushort (and uchar Uchar).
|
|
|
|
The SVID specifies a strdup, POSIX doesn't, anyway, troff
|
|
provides its own version, slightly different then the standard
|
|
one. A To prevent name clashes with that definion, renamed to
|
|
strdupl.
|
|
|
|
June 24, 1993 (Rich):
|
|
|
|
-V option added for DWB3.4 (rich)
|
|
|
|
May 18, 1993:
|
|
|
|
Trivial fix (.cf) request for troff -a
|
|
|
|
issuing
|
|
|
|
.cf /dev/null
|
|
|
|
with troff -a gives some spurious output:
|
|
|
|
H720
|
|
H720
|
|
s10
|
|
f1
|
|
|
|
fixed by checking for ascii mode it ptesc(), ptps() and
|
|
ptfont() in t10.c
|
|
|
|
|
|
Enhancement
|
|
|
|
Added a .tm request to roff. Works just like .tm, but now
|
|
it will do it to file. The name is coined by Carmela. Great
|
|
for creating indeces & toc's (we hope).
|
|
|
|
May 18 1993:
|
|
|
|
Compatibilty change
|
|
|
|
Somebody complained that his favorite macro didn't work:
|
|
it had a BELL (^G) in the name. This was a non-documented
|
|
feature of earlier versions of troff (although the
|
|
documentation actually doesn't say that you can. (They can
|
|
only be used for delimiters or with the tr request), so it
|
|
isn't that important).
|
|
|
|
But the sake of eternal backward compatibilaty I allowed
|
|
some control characters like, STX, ACK, etc. also be part
|
|
of a macro/string name.
|
|
|
|
While at it, I made it also possible to have eight bit
|
|
characters be part of the name. It might be that this screws
|
|
up the way users think about these things. For UNICODE
|
|
versions, they probably want to do that as well, and that
|
|
won't work as easy, (because these characters are 16-bits
|
|
wide), so it is dubious whether we actually want this.
|
|
|
|
BTW. Now
|
|
|
|
.de \(ts\ts
|
|
.tm terminal sigma macro
|
|
..
|
|
.\(ts\(ts
|
|
|
|
also works, as long the internal cookie for ts isn't more then
|
|
eight bits.
|
|
|
|
May 12, 1993:
|
|
|
|
Syntax change
|
|
|
|
Some requests accept tabs as a separator, some don't and
|
|
this can be a nuisance. Now a tab is also recognized as
|
|
an argument separator for requests, this makes
|
|
|
|
.so /dev/null
|
|
|
|
works.
|
|
|
|
To be more precise, any motion character is allowed, so
|
|
|
|
.so\h'5i'/dev/null
|
|
|
|
will work as well, if one really wants that.
|
|
|
|
It will be a problem for users who really relied on this as in
|
|
|
|
.ds x string
|
|
|
|
and expect the tab to become part of the string a, but I haven't
|
|
seen any use of that (obscure trick).
|
|
|
|
May 6, 1993:
|
|
|
|
Eileen count fixed
|
|
|
|
Troff sometimes went in a loop, and exited with: ``job
|
|
looping; check abuse of macros'' (also known as the Eileen's
|
|
loop). It can be forced with the next trivial programme:
|
|
|
|
.de ff
|
|
.di xx
|
|
..
|
|
.wh -1 ff
|
|
.bp
|
|
|
|
Basically what happens is that a page transition now will
|
|
happen in a diversion, which doesn't make sense. Wat really
|
|
happens is that eject() (in n7.c) doesn't eject the frame
|
|
because we are in a diversion. This cause the loop in n1.c
|
|
(because now always stack->pname <= ejl). Adding check on
|
|
whether we are not in a diversion takes care of the problem.
|
|
|
|
March 30, 1993:
|
|
|
|
Need request, .ne
|
|
|
|
When there is a begin of page trap set, and the first thing
|
|
in the file is a .ne request, the trap gets fired, but,
|
|
the x font R etc. cookies doen't come out, because the
|
|
troff thinks that the first page pseudo transition already
|
|
took place. Fixed by forcing the start of the first page
|
|
in the casene request with the same code as in casetl (which
|
|
caused a similar problem quite some time ago).
|
|
|
|
Change to .cf request ``Here document''
|
|
|
|
If the argument of .cf starts with a <<, the rest of it is taken
|
|
as an EOF token. It will reat the rest of the input until it hits
|
|
the EOF token and copies it to the output. This is similar as
|
|
the shell's ``here document'' mechanisme and put in place to
|
|
improve the kludgy way picasso, picpack etc. now include
|
|
postscript.
|
|
|
|
Using troff -TLatin1 (DWB version) and \N'...' caused core dump
|
|
|
|
In t11, in chadd, it should test on NCHARS - ALPHABET to see
|
|
whether we run out of table space (and we probably should beaf
|
|
up NCHARS for the DWB version).
|
|
|
|
March 16, 1993:
|
|
|
|
Diversion rename bug fix
|
|
|
|
It is possible to get troff in an infinite loop by renaming a
|
|
diversion in progress, and calling it later with the
|
|
new name (as in .di xx, .rn xx yy, .yy). The effect depends on
|
|
whether troff already put stuff in the diversion or not.
|
|
|
|
Fix by having .rn also rename the current diversion (if
|
|
there is any and when appropriate). If the diversion calls
|
|
itself by the new name and given the fix made on 11 nov
|
|
1992, this will now result in an error. (BTW, the fix from
|
|
11 nov is improved: diversions nest, so we have to account
|
|
for that).
|
|
|
|
December 18, 1992:
|
|
Some people have complete novels as comments, so we need
|
|
to skip comments while checking the legality of font files.
|
|
thaks Rixh
|
|
|
|
December 16, 1992
|
|
|
|
Some people rely on the order that -r arguments are given,
|
|
so that troff -rC1 -rC3 ends up setting register C to 3.
|
|
Because cpushback() pushes things in a LIFO order back, we
|
|
have to do the same to get -r args in a FIFO order.
|
|
|
|
Nov 17, 1992:
|
|
|
|
Giving a -rL8 option cuased the string .nr L 8 to be printed
|
|
on the output, using the wonderful 3b2. Some garbage was
|
|
left in buf[100] in main(). Fixed by setting buf[0] explicitly
|
|
to 0 (because some C-compilers complain about ``no automatic
|
|
aggregate initialization'').
|
|
|
|
Nov 11, 1992:
|
|
|
|
Diversion bug fix
|
|
|
|
If a diversion was being read and the input is faulty so
|
|
the diversion was reading in itself, it caused troff to
|
|
loop undefinitely. This was easily fixed by a test in
|
|
control(a,b) in n1.c.
|
|
|
|
Something similar things might happen with macros causing
|
|
the ``eileenct problem'', but I didn't look for that. We
|
|
have to wait until it happens.
|
|
|
|
Oct 26, 1992:
|
|
|
|
Numeric arguments:
|
|
|
|
Illegal argments are treated as missing arguments. This
|
|
changed the semantics of .ll, .ls, .in, .lg, .ul, .cu .lt
|
|
(which acted as if the argument was 0) and .ps which was
|
|
simply ignored with an illegal argument.
|
|
|
|
Tidied up number parsing in atoi1(). This prevents arguments
|
|
like .x or 1.2.3.4 being interpret as a legal number (nonumb = 0)
|
|
|
|
Numeric arguments error reporting:
|
|
|
|
Controlled by .pt, illegal numbers are now reported (default
|
|
trace mode is 1). This is also true for the escapes:
|
|
\h'..', \v'..' \H'..', \S'..', \N'..', \D'..', \l'.., \L'..
|
|
and \x'..'.
|
|
|
|
\D'c' is the only drawing request which doesn't take a pair
|
|
of numbers as arguments, so a special case is put here in
|
|
setdraw() (This code actually could use an overhaul to get
|
|
better parsing. As long as the \D'..' cookies are machine
|
|
generated it is low on the priority list).
|
|
|
|
Don't generate an error if the illegal argument to a request
|
|
is a \}. It is too painful to do right (although it can be
|
|
done, but it would clutter getch() and getcho() even more).
|
|
|
|
Input line numbers (.c register) bug fixes:
|
|
|
|
In not taken branches of .if or .ie, the input line #
|
|
(numtab[CD].val) should be raised when necessary (in eatblk()).
|
|
|
|
For concealed newlines, we still should count the line for input.
|
|
|
|
Setfield (n9.c) sometimes pushes the rest of the line back to
|
|
the input (including \n), without adjusting numtab[CD].val
|
|
|
|
Because .c (and so numtab[CD].val) is the number of lines read
|
|
and the error might actually happen in the current line
|
|
(before seeing the '\n), we need to apply correction in
|
|
errprint when nlflg set. (This correction needs to be undone
|
|
when inside a macro because the nlflg is set by reading the
|
|
args to the macro).
|
|
|
|
Line number setting (.lf) request bug fixes:
|
|
|
|
I interpret that the .c register will contain the number of
|
|
read lines, not including the current one.
|
|
|
|
Also, don't change the input line number when the first
|
|
argument of .lf is not a number.
|
|
|
|
As a net effect, the next input
|
|
|
|
.EQ
|
|
.EN
|
|
.ab
|
|
|
|
will generate the same output whether eqn has been used or not.
|
|
|
|
If request bug fix:
|
|
|
|
A ``.if page .tm foo'' caused the next line being ignored;
|
|
This bcause when the 2nd delimiter of a string couldn't be
|
|
found in cmpstr, the next line was always eaten. Solution:
|
|
in caseif1, if the condition is false, we should check
|
|
nlflg before eating a block. (Note: We might have eaten
|
|
\{\ as well. We could disallow the \{\ in a string to be
|
|
compared to prevent that but that might break other things).
|
|
|
|
Enhancement to .pt:
|
|
|
|
The .pt now pops the previous values when no argument is
|
|
specified. Turned out to be handy when chasing for problems.
|
|
Just ``bracked'' the code with .pt 7 and .pt and you get
|
|
a trace of only that block. The meaning of the arguments
|
|
is now:
|
|
01 trace numeric arguments (default on)
|
|
02 trace requests
|
|
04 trace macros
|
|
|
|
Abort request (.ab) beautification:
|
|
|
|
Don't print the extra carriage return when .ab is called
|
|
without an argument.
|
|
|
|
Oct 12, 1992:
|
|
|
|
(Comments & spelling errors from this day on by jaap)
|
|
|
|
replaced 32767 by INT_MAX in several places to allow for very
|
|
long pages (on 32-but machines).
|
|
|
|
The ``.fp 1 R \"COMMENT'' complains about ``./troff: Can't
|
|
open font file /usr/lib/font/devpost/h'' on some systems. It
|
|
sees the tab as part of the optional font file. Apparently it
|
|
is system dependent whether isgraph() includes the tab
|
|
character. Fixed by using getach() in getname() in n1.c
|
|
instead.
|
|
|
|
Aug 28, 1992:
|
|
removed call to popi from rdtty(); it was eating up the
|
|
rest of the macro if it was used from within one. (thanks, jaap)
|
|
|
|
|
|
Jul 21, 1992:
|
|
added extra test in nextfile() to pop current input file
|
|
only if not in .nx command. thanks to jaap.
|
|
|
|
added test in getword() to avoid hyphenating after \z character,
|
|
which prevents any hyphenation inside \X'...'. thanks to jaap.
|
|
|
|
added, then removed, code in getword() to prevent hyphenating
|
|
anything shorter than 6 characters. looks like it changed a
|
|
lot more than i thought.
|
|
|
|
Jul 12, 1992:
|
|
added .pt request to trace macros and requests (from jaap).
|
|
.pt N Print trace of macros (N=1), requests (N=2) or both (N=3)
|
|
|
|
Jun 5, 1992:
|
|
added tests to t.twrest and t.twinit to avoid 0 deref in
|
|
n2 and n10, for nroff -t xxxxx. thanks to Rich Drechsler.
|
|
|
|
May 22, 1992:
|
|
added extern decls to e.g., void Tchar (*hmot)(void) in tdef.h
|
|
and added definition to ni.c, so pointers are defined explicitly.
|
|
makes it work on turbo c++ and probably others.
|
|
|
|
changed a couple of isdigit's and isgraph(getch()) to avoid
|
|
multiple evaluation (even though it shouldn't happen).
|
|
|
|
Made /usr/bin/nroff a shell script.
|
|
|
|
May 12, 1992:
|
|
n1.c: need p++ after strrchr to skip / in program name.
|
|
thanks to Rich Drechsler.
|
|
|
|
Apr 17, 1992:
|
|
casefi(), n5.c: .u register should be 0 or 1, not incremented
|
|
with each .fi.
|
|
|
|
Apr 5, 1992:
|
|
fiddled n7.c and added _nmwid to the environment, to add a
|
|
5th argument to .nm: the maximum number of digits in any
|
|
line number. default is 3, which was previously hardwired in.
|
|
|
|
added jaap's code for yet another register which actually delivers
|
|
a string, called .S (so it can easily go in the switch in setn()
|
|
in n4.c); it delivers the current tabstop and alignment modes in
|
|
a format suitable for a subsequent .ta \n(.S command:
|
|
.ds T \n(.S
|
|
...
|
|
.ta \*T
|
|
|
|
Mar 30, 1992:
|
|
added test in getword to avoid hyphenating things with motions
|
|
(and avoid a core dump sometimes too).
|
|
|
|
Mar 13, 1992:
|
|
\n(sb initialized wrong in setwd().
|
|
|
|
TYPESETTER=foo troff -Tpost used foo instead of post.
|
|
|
|
Mar 12, 1992:
|
|
rearranged tests in popf so that .so is closed properly before
|
|
moving on to the next macro package.
|
|
|
|
Mar 1, 1992:
|
|
input mechanism rearranged to use getc() instead of stack of
|
|
explicit input buffers. 5-10% slowdown.
|
|
|
|
Jan 28, 1992:
|
|
fixed .tm \(mi to print something sensible. thanks to jaap.
|
|
|
|
Jan 2, 1992:
|
|
fiddle setfp so doesn't put out font stuff if -a turned on.
|
|
|
|
Dec 17, 1991:
|
|
copy 3rd argument in .fp commands to x font ... lines when it contains
|
|
a /, for testing fonts locally.
|
|
|
|
Dec 13, 1991:
|
|
parameterize the font directories, etc., so can be set in makefiles.
|
|
added -N argument to run as nroff.
|
|
|
|
Nov 8, 1991:
|
|
add a maplow(towlower...) in n8.c to handle brain-damaged libraries.
|
|
|
|
Nov 2, 1991:
|
|
merged nroff into troff, based on Ken's plan 9 version.
|
|
merged nii.c into ni.c, removed tw.h, etc. more work needed
|
|
to make this stuff cleaner.
|
|
|
|
July 27, 1991:
|
|
added test in setn in n4 to fix bug that permitted things like
|
|
\n (ab to work "properly". thanks to jaap for finding and fixing.
|
|
|
|
added paranoid testing in t11 to make sure font files look ok.
|
|
|
|
May 13, 1991:
|
|
moved evaluation of \(xx from copy mode to non-copy mode, so that
|
|
weird character names wouldn't get reevaluated in argument parsing.
|
|
installed july 27.
|
|
|
|
May 6, 1991:
|
|
increased size of hyphenation exception buffer to 512 from 128
|
|
|
|
Apr 14, 1991:
|
|
added an extra redundant call of ptfont in setfp, since it appears
|
|
that some versions of adobe transcript assume that an "x font" command
|
|
means to change the actual font as well. the fix preserves the current font.
|
|
thanks to david brailsford and friends for spotting the problem.
|
|
|
|
fixed up tests in alpha() in n8 to defend isalpha() against too-big inputs.
|
|
punct() argument had wrong type too. thanks to rich drexler and peter nelson.
|
|
|
|
Mar 19, 1991:
|
|
fixed bug that prevented .rd from working with new corebuf organization.
|
|
|
|
fixed bug that caused .ig inside diversions to give bad storage
|
|
allocation. thanks to arthur david olson, whose fix was on netnews
|
|
3 years earlier.
|
|
|
|
Mar 5, 1991:
|
|
huge table sizes for kanji.
|
|
|
|
Feb ??, 1991:
|
|
working on dealing with large alphabets, notably kanji.
|
|
added "defaultwidth" to font descriptions, for characters
|
|
not given an explicit width.
|
|
|
|
Jan, 1991:
|
|
added tex hyphenation, using standard tex data files, but not the
|
|
elaborate compressed trie, which is a lot of trouble to save maybe
|
|
40k bytes. this appears to run at exactly the same speed as before.
|
|
|
|
so far this stuff reads into a fixed size array; that should change.
|
|
it should also be possible to deal with multiple languages.
|
|
|
|
the command .ha sets the algorithm. .ha 1 => tex, with troff rules
|
|
if tex doesn't hyphenate; .ha 0 gives troff rules, and .ha resets
|
|
to the default, which is tex. the hyphenation algorithm is part of
|
|
the environment, a nod to a future in which i handle more than one
|
|
language.
|
|
|
|
replaced the fixed size corebuf array for string/macro storage by
|
|
a dynamic structure that can grow.
|
|
|
|
this appears to slow things down by maybe 3%. the code is about
|
|
the same complexity.
|
|
|
|
Dec 27, 1990:
|
|
converted to ansi c, based on some work by ken thompson, but not
|
|
as thoroughly as he did. there is a shell script unansi and an awk
|
|
program cvt that will help you step back in time if you do not have
|
|
an ansi c compiler.
|
|
|
|
moved the special-name characters up to 256 instead of 128, although
|
|
done in terms of ALPHABET, so one can pass 8 bit characters through.
|
|
removed lots of 0177's and similar numbers. input is now not filtered,
|
|
and if a character with the 8th bit on comes in, it will go out again.
|
|
|
|
fixed t11.c to read character names in hex or octal as well as
|
|
single-character ascii.
|
|
|
|
unknown characters are now carried through with width = spacewidth.
|
|
needs a way to set widths.
|
|
|
|
removed all signal handling from troff. you signal, you die.
|
|
|
|
added -d option to print version number.
|
|
|
|
Dec 7, 1990:
|
|
.fp 3 V VERYLONGNAME used to truncate the name to 10 chars; fixed.
|
|
|
|
increased the limit on FBUFSZ for tables with very long fields.
|
|
|
|
changed atoi1() to use double to avoid intermediate overflow.
|
|
|
|
moved filenames like /usr/lib/font into tdef.h for easy change.
|
|
removed some dreggish definitions.
|
|
|
|
cleaned up non-portable error printing stuff; fixed up some messages.
|
|
|
|
Dec 12, 1989:
|
|
Removed the .! command, an undocumented synonym for .sy.
|
|
|
|
Dec 4, 1989:
|
|
Another wart to the \X code, to try to preserve blanks in all situations.
|
|
|
|
Nov 17, 1989:
|
|
A number of small changes preparatory to getting rid of nroff.
|
|
The argument -Tnroff or -Tnroff-12 changes some internal values
|
|
so that the predicate .if n is true and certain arithmetic operations
|
|
are done as if nroff. This design is not yet final.
|
|
|
|
Nov 7, 1989:
|
|
Fixed hyphenation for nov-ice, ad-vice, de-vice, ser-vice, *-vice.
|
|
|
|
Oct 11, 1989:
|
|
It is now permitted to do an explicit change to font S.
|
|
It is not clear what will break (though nothing seems to have).
|
|
|
|
Oct 10, 1989:
|
|
Modified flush code to always put out \nH instead of sometimes h.
|
|
This makes it easier to parse the output for positioning.
|
|
|
|
Sep 9, 1989:
|
|
Fixed internal representation of \D'~...' so that it
|
|
is immune to .tr ~ and variations. No external change.
|
|
|
|
Aug 9, 1989:
|
|
Changed .tm so it outputs \e, \%, \-, \&, \(blank).
|
|
This might break indexing code.
|
|
Only in the new version, as are all subsequent fixes.
|
|
|
|
July, 1989:
|
|
A major internal change: font information is read in ascii
|
|
instead of the weird binary format of makedev (which is now dead).
|
|
character names need not all appear in DESC; new names that
|
|
appear when a font is used become part of the set of known names.
|
|
|
|
There are some flaky bits here (it's conceivable that some \N
|
|
number will collide with a real name), and it's probably 10-15%
|
|
slower. Tant pis.
|
|
|
|
As a by-product, nroff no longer compiles. I'll probably get
|
|
back to this, but an alternative is to bag it once and for all.
|
|
|
|
May 25, 1989:
|
|
Another bug in \l, this time when width is 0. Not installed,
|
|
since it's in the new font version.
|
|
|
|
Apr 23, 1989:
|
|
Fixed bug in n9 that caused core dump with unterminated
|
|
\l command, like \l'1.5i
|
|
|
|
ptflush no longer called when -a is on.
|
|
|
|
Apr 12, 1989:
|
|
fixed bug in n2 that failed to suppress printing of \!
|
|
output when a -o was in effect.
|
|
|
|
Apr 5, 1989:
|
|
.fl and \X now cause output of size, font, hpos and vpos.
|
|
this is necesary for postprocessors that intend to insert
|
|
independent material, such as postscript.
|
|
|
|
Feb 1, 1989:
|
|
wait for .pi pipe to empty before exiting
|
|
|
|
Oct 2, 1988:
|
|
default is now -Tpost
|
|
|
|
Sep 19, 1988:
|
|
added abortive code to handle built-up characters by
|
|
passing something through as \D'b...'. never used.
|
|
|
|
Jul 4, 1988:
|
|
replaced the sbrk nonsense in n3.c by calls to malloc.
|
|
|
|
\N now tests against proper font size.
|
|
|
|
installed Jaap Akkerhuis's code (mutatis mutandis) for
|
|
permitting up to 99 fonts, swapping them into font pos 0
|
|
as needed. fixes the long-standing problem of having
|
|
multiple font changes on a single output line.
|
|
|
|
Jul 2, 1988:
|
|
\X now preserves spaces even when contents are diverted.
|
|
|
|
\N code safer -- NTRTAB and NWIDCACHE enlarged.
|
|
|
|
Jul 14, 1987:
|
|
Fixed obscure bug causing incorrect indentation of .mc output.
|