123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821 |
- 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.
|