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