Annotation of researchv10no/cmd/troff/FIXES, revision 1.1.1.1

1.1       root        1: Jul 14, 1987:
                      2:        Fixed obscure bug causing incorrect indentation of .mc output.
                      3: 
                      4: Jul 2, 1988:
                      5:        \X now preserves spaces even when contents are diverted.
                      6: 
                      7:        \N code safer -- NTRTAB and NWIDCACHE enlarged.
                      8: 
                      9: Jul 4, 1988:
                     10:        replaced the sbrk nonsense in n3.c by calls to malloc.
                     11: 
                     12:        \N now tests against proper font size.
                     13: 
                     14:        installed Jaap Akkerhuis's code (mutatis mutandis) for
                     15:        permitting up to 99 fonts, swapping them into font pos 0
                     16:        as needed.  fixes the long-standing problem of having
                     17:        multiple font changes on a single output line.
                     18: 
                     19: Sep 19, 1988:
                     20:        added abortive code to handle built-up characters by
                     21:        passing something through as \D'b...'.  never used.
                     22: 
                     23: Oct 2, 1988:
                     24:        default is now -Tpost
                     25: 
                     26: Feb 1, 1989:
                     27:        wait for .pi pipe to empty before exiting
                     28: 
                     29: Apr 5, 1989:
                     30:        .fl and \X now cause output of size, font, hpos and vpos.
                     31:        this is necesary for postprocessors that intend to insert
                     32:        independent material, such as postscript.
                     33: 
                     34: Apr 12, 1989:
                     35:        fixed bug in n2 that failed to suppress printing of \!
                     36:        output when a -o was in effect.
                     37: 
                     38: Apr 23, 1989:
                     39:        Fixed bug in n9 that caused core dump with unterminated
                     40:        \l command, like \l'1.5i
                     41: 
                     42:        ptflush no longer called when -a is on.
                     43: 
                     44: May 25, 1989:
                     45:        Another bug in \l, this time when width is 0.  Not installed,
                     46:        since it's in the new font version.
                     47: 
                     48: July, 1989:
                     49:        A major internal change:  font information is read in ascii
                     50:        instead of the weird binary format of makedev (which is now dead).
                     51:        character names need not all appear in DESC;  new names that
                     52:        appear when a font is used become part of the set of known names.
                     53: 
                     54:        There are some flaky bits here (it's conceivable that some \N
                     55:        number will collide with a real name), and it's probably 10-15%
                     56:        slower.  Tant pis.
                     57: 
                     58:        As a by-product, nroff no longer compiles.  I'll probably get
                     59:        back to this, but an alternative is to bag it once and for all.
                     60: 
                     61: Aug 9, 1989:
                     62:        Changed .tm so it outputs \e, \%, \-, \&, \(blank).
                     63:        This might break indexing code.
                     64:        Only in the new version, as are all subsequent fixes.
                     65: 
                     66: Sep 9, 1989:
                     67:        Fixed internal representation of \D'~...' so that it
                     68:        is immune to .tr ~ and variations.  No external change.
                     69: 
                     70: Oct 10, 1989:
                     71:        Modified flush code to always put out \nH instead of sometimes h.
                     72:        This makes it easier to parse the output for positioning.
                     73: 
                     74: Oct 11, 1989:
                     75:        It is now permitted to do an explicit change to font S.
                     76:        It is not clear what will break (though nothing seems to have).
                     77: 
                     78: Nov 7, 1989:
                     79:        Fixed hyphenation for nov-ice, ad-vice, de-vice, ser-vice, *-vice.
                     80: 
                     81: Nov 17, 1989:
                     82:        A number of small changes preparatory to getting rid of nroff.
                     83:        The argument -Tnroff or -Tnroff-12 changes some internal values
                     84:        so that the predicate .if n is true and certain arithmetic operations
                     85:        are done as if nroff.  This design is not yet final.
                     86: 
                     87: Dec 4, 1989:
                     88:        Another wart to the \X code, to try to preserve blanks in all situations.
                     89: 
                     90: Dec 12, 1989:
                     91:        Removed the .! command, an undocumented synonym for .sy.
                     92: 
                     93: Dec 7, 1990:
                     94:        .fp 3 V VERYLONGNAME used to truncate the name to 10 chars; fixed.
                     95: 
                     96:        increased the limit on FBUFSZ for tables with very long fields.
                     97: 
                     98:        changed atoi1() to use double to avoid intermediate overflow.
                     99: 
                    100:        moved filenames like /usr/lib/font into tdef.h for easy change.
                    101:        removed some dreggish definitions.
                    102: 
                    103:        cleaned up non-portable error printing stuff;  fixed up some messages.
                    104: 
                    105: Dec 27, 1990:
                    106:        converted to ansi c, based on some work by ken thompson, but not
                    107:        as thoroughly as he did.  there is a shell script unansi and an awk
                    108:        program cvt that will help you step back in time if you do not have
                    109:        an ansi c compiler.
                    110: 
                    111:        moved the special-name characters up to 256 instead of 128, although
                    112:        done in terms of ALPHABET, so one can pass 8 bit characters through.
                    113:        removed lots of 0177's and similar numbers.  input is now not filtered,
                    114:        and if a character with the 8th bit on comes in, it will go out again.
                    115: 
                    116:        fixed t11.c to read character names in hex or octal as well as
                    117:        single-character ascii.
                    118: 
                    119:        unknown characters are now carried through with width = spacewidth.
                    120:        needs a way to set widths.
                    121: 
                    122:        removed all signal handling from troff.  you signal, you die.
                    123: 
                    124:        added -d option to print version number.
                    125: 
                    126: Jan, 1991:
                    127:        added tex hyphenation, using standard tex data files, but not the
                    128:        elaborate compressed trie, which is a lot of trouble to save maybe
                    129:        40k bytes.  this appears to run at exactly the same speed as before.
                    130: 
                    131:        so far this stuff reads into a fixed size array; that should change.
                    132:        it should also be possible to deal with multiple languages.
                    133: 
                    134:        the command .ha sets the algorithm.  .ha 1 => tex, with troff rules
                    135:        if tex doesn't hyphenate;  .ha 0 gives troff rules, and .ha resets
                    136:        to the default, which is tex.  the hyphenation algorithm is part of
                    137:        the environment, a nod to a future in which i handle more than one
                    138:        language.
                    139: 
                    140:        replaced the fixed size corebuf array for string/macro storage by
                    141:        a dynamic structure that can grow.
                    142: 
                    143:        this appears to slow things down by maybe 3%.  the code is about
                    144:        the same complexity.
                    145: 
                    146: Feb ??, 1991:
                    147:        working on dealing with large alphabets, notably kanji.
                    148:        added "defaultwidth" to font descriptions, for characters
                    149:        not given an explicit width.
                    150: 
                    151: Mar 5, 1991:
                    152:        huge table sizes for kanji.
                    153: 
                    154: Mar 19, 1991:
                    155:        fixed bug that prevented .rd from working with new corebuf organization.
                    156: 
                    157:        fixed bug that caused .ig inside diversions to give bad storage
                    158:        allocation.  thanks to arthur david olson, whose fix was on netnews
                    159:        3 years earlier.
                    160: 
                    161: Apr 14, 1991:
                    162:        added an extra redundant call of ptfont in setfp, since it appears
                    163:        that some versions of adobe transcript assume that an "x font" command
                    164:        means to change the actual font as well.  the fix preserves the current font.
                    165:        thanks to david brailsford and friends for spotting the problem.
                    166: 
                    167:        fixed up tests in alpha() in n8 to defend isalpha() against too-big inputs.
                    168:        punct() argument had wrong type too.  thanks to rich drexler and peter nelson.
                    169: 
                    170: May 6, 1991:
                    171:        increased size of hyphenation exception buffer to 512 from 128
                    172: 
                    173: May 13, 1991:
                    174:        moved evaluation of \(xx from copy mode to non-copy mode, so that
                    175:        weird character names wouldn't get reevaluated in argument parsing.
                    176:        installed july 27.
                    177: 
                    178: July 27, 1991:
                    179:        added test in setn in n4 to fix bug that permitted things like
                    180:        \n (ab to work "properly".  thanks to jaap for finding and fixing.
                    181: 
                    182:        added paranoid testing in t11 to make sure font files look ok.
                    183: 
                    184: Nov 2, 1991:
                    185:        merged nroff into troff, based on Ken's plan 9 version.
                    186:        merged nii.c into ni.c, removed tw.h, etc.  more work needed
                    187:        to make this stuff cleaner.
                    188: 
                    189: Nov 8, 1991:
                    190:        add a maplow(towlower...) in n8.c to handle brain-damaged libraries.
                    191: 
                    192: Dec 13, 1991:
                    193:        parameterize the font directories, etc., so can be set in makefiles.
                    194:        added -N argument to run as nroff.
                    195: 
                    196: Dec 17, 1991:
                    197:        copy 3rd argument in .fp commands to x font ... lines when it contains
                    198:        a /, for testing fonts locally.
                    199: 
                    200: Jan 2, 1992:
                    201:        fiddle setfp so doesn't put out font stuff if -a turned on.
                    202: 
                    203: Jan 28, 1992:
                    204:        fixed .tm \(mi to print something sensible.  thanks to jaap.
                    205: 
                    206: Mar 1, 1992:
                    207:        input mechanism rearranged to use getc() instead of stack of
                    208:        explicit input buffers.  5-10% slowdown.
                    209: 
                    210: Mar 12, 1992:
                    211:        rearranged tests in popf so that .so is closed properly before
                    212:        moving on to the next macro package.
                    213: 
                    214: Mar 13, 1992:
                    215:        \n(sb initialized wrong in setwd().
                    216: 
                    217:        TYPESETTER=foo troff -Tpost used foo instead of post.
                    218: 
                    219: Mar 30, 1992:
                    220:        added test in getword to avoid hyphenating things with motions
                    221:        (and avoid a core dump sometimes too).
                    222: 
                    223: Apr 5, 1992:
                    224:        fiddled n7.c and added _nmwid to the environment, to add a
                    225:        5th argument to .nm:  the maximum number of digits in any
                    226:        line number.  default is 3, which was previously hardwired in.
                    227: 
                    228:        added jaap's code for yet another register which actually delivers
                    229:        a string, called .S (so it can easily go in the switch in setn()
                    230:        in n4.c); it delivers the current tabstop and alignment modes in
                    231:        a format suitable for a subsequent .ta \n(.S command:
                    232:                .ds T \n(.S
                    233:                ...
                    234:                .ta \*T
                    235: 
                    236: Apr 17, 1992:
                    237:        casefi(), n5.c: .u register should be 0 or 1, not incremented
                    238:        with each .fi.
                    239: 
                    240: May 12, 1992:
                    241:        n1.c: need p++ after strrchr to skip / in program name.
                    242:        thanks to Rich Drechsler.
                    243: 
                    244: May 22, 1992:
                    245:        added extern decls to e.g., void Tchar (*hmot)(void) in tdef.h
                    246:        and added definition to ni.c, so pointers are defined explicitly.
                    247:        makes it work on turbo c++ and probably others.
                    248: 
                    249:        changed a couple of isdigit's and isgraph(getch()) to avoid
                    250:        multiple evaluation (even though it shouldn't happen).
                    251: 
                    252:        Made /usr/bin/nroff a shell script.
                    253: 
                    254: Jun 5, 1992:
                    255:        added tests to t.twrest and t.twinit to avoid 0 deref in
                    256:        n2 and n10, for nroff -t xxxxx.  thanks to Rich Drechsler.
                    257: 
                    258: Jul 12, 1992:
                    259:        added .pt request to trace macros and requests (from jaap).
                    260:        .pt N Print trace of macros (N=1), requests (N=2) or both (N=3)
                    261: 
                    262: Jul 21, 1992:
                    263:        added extra test in nextfile() to pop current input file
                    264:        only if not in .nx command.  thanks to jaap.
                    265: 
                    266:        added test in getword() to avoid hyphenating after \z character,
                    267:        which prevents any hyphenation inside \X'...'.  thanks to jaap.
                    268: 
                    269:        added, then removed, code in getword() to prevent hyphenating
                    270:        anything shorter than 6 characters.  looks like it changed a
                    271:        lot more than i thought.
                    272: 
                    273: Aug 28, 1992:
                    274:        removed call to popi from rdtty();  it was eating up the
                    275:        rest of the macro if it was used from within one.  (thanks, jaap)
                    276: 
                    277: Oct 18, 1992:
                    278:        replaced 32767 by INT_MAX in several places to allow for long pages.
                    279:        tnx, jaap.
                    280: 
                    281: Dec 1, 1992:
                    282:        attempt to get back to clean state of Oct 18 after inserting
                    283:        and backing out changes to detect bad conversions in .nr.
                    284: 
                    285:        cleanup of makefile, editing of README, to get rid of old drivers.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.