1 5cedca1b 2004-05-15 devnull March 11, 1994
3 5cedca1b 2004-05-15 devnull If we are just plain old nroff (and not doing UNICODE) we should
4 5cedca1b 2004-05-15 devnull only Lookup characters, not Install when we don't know them.
5 5cedca1b 2004-05-15 devnull If we are troff, we Install them anyway
7 5cedca1b 2004-05-15 devnull March 8, 1994
9 5cedca1b 2004-05-15 devnull Nroff had problems with parsing quoted white space as options or
10 5cedca1b 2004-05-15 devnull character code in some terminals tables. Changed by having scanf
11 5cedca1b 2004-05-15 devnull include white space when necessary as suggested by Rich.
13 5cedca1b 2004-05-15 devnull March 1, 1994
15 5cedca1b 2004-05-15 devnull Made sanity check for terminal type depending on the trace level;
16 5cedca1b 2004-05-15 devnull trace level set with -tn flag at start up
18 5cedca1b 2004-05-15 devnull 22 Feb, 1994
20 5cedca1b 2004-05-15 devnull More pointer shuffling fixes.
22 5cedca1b 2004-05-15 devnull 18 Feb, 1994
24 5cedca1b 2004-05-15 devnull More disabling of multibyte stuff. Fixed bug in n5.c: casetm didn'
25 5cedca1b 2004-05-15 devnull know about the new format in the fontables.
27 5cedca1b 2004-05-15 devnull Feb 17, 1994
29 5cedca1b 2004-05-15 devnull Removed extra include <setlocale> from n1.c
31 5cedca1b 2004-05-15 devnull Fixed dubious pointer shuffling in n7.c, t10.c & n8.c. Thanks Rich!
33 5cedca1b 2004-05-15 devnull Feb 10, 1994
35 5cedca1b 2004-05-15 devnull Disabled the multybyte stuff; only plan 9 will get it.
37 5cedca1b 2004-05-15 devnull Jan 24, 1994
39 5cedca1b 2004-05-15 devnull Fixed nasty bug discovered by td, which caused core dumps on
40 5cedca1b 2004-05-15 devnull \D'l-0.002775i 0i' and apparently all numbers closer to 0
41 5cedca1b 2004-05-15 devnull than -.002775. Fixed in storeline() and storeword() (n7.c).
43 5cedca1b 2004-05-15 devnull Dec 16, 1993
45 5cedca1b 2004-05-15 devnull nroff & troff -N were looking for the TYPESETTER variable, causing
47 5cedca1b 2004-05-15 devnull troff: cannot open /sys/lib/troff/term/tab.202; line 1, file stdin
49 5cedca1b 2004-05-15 devnull fixed my moving getenv("TYPESETTER") to t10.c in t_ptinit(void).
51 5cedca1b 2004-05-15 devnull Dec 3, 1993:
53 5cedca1b 2004-05-15 devnull The sequence \s+2\H'+10' came sometimes out in the wrong order
54 5cedca1b 2004-05-15 devnull (x H before s), so there wasn't a difference bewteen \s+2\H'+10'
55 5cedca1b 2004-05-15 devnull and \H'+10'\s+2. Now the fonts bits of the CHARHT are used to
56 5cedca1b 2004-05-15 devnull register the current pontsize, so we can issue a s10 in t10.c
57 5cedca1b 2004-05-15 devnull if needed. A bit sneaky.
59 5cedca1b 2004-05-15 devnull Try to prevent double slashes in path names. Especially under
60 5cedca1b 2004-05-15 devnull plan9 things started to look ugly.
62 5cedca1b 2004-05-15 devnull Exception word list now grows dynamic.
64 5cedca1b 2004-05-15 devnull Nov 30, 1993:
66 5cedca1b 2004-05-15 devnull Allow multiple calls to .pi, requested by Rob.
69 5cedca1b 2004-05-15 devnull is now equivalent with
70 5cedca1b 2004-05-15 devnull .pi cat | dogs
73 5cedca1b 2004-05-15 devnull .ab now takes also optional error code:
74 5cedca1b 2004-05-15 devnull .ab [n] [string]
75 5cedca1b 2004-05-15 devnull If n and string, n is exit code, string is message
76 5cedca1b 2004-05-15 devnull If n, n is exit code, ``User Abort, exit code n" is message
77 5cedca1b 2004-05-15 devnull If !n and string, standard exit code, string is message
78 5cedca1b 2004-05-15 devnull If !n and ! string, standard exit code, "User Abort" is message
80 5cedca1b 2004-05-15 devnull Nov 24, 1993:
82 5cedca1b 2004-05-15 devnull Reordered code to keep the UNASNI scripts happy.
84 5cedca1b 2004-05-15 devnull Nroff dumped core reading terminal tables: apparenty under plan 9,
85 5cedca1b 2004-05-15 devnull scanf includes the '\n'; added test for '\0' in parse in n10.c.
87 5cedca1b 2004-05-15 devnull Relative tab settings (.ta +1C +2C) didn't work; anding the
88 5cedca1b 2004-05-15 devnull previous value with TABMASK fixes this (caseta).
90 5cedca1b 2004-05-15 devnull Nov 23, 1993:
92 5cedca1b 2004-05-15 devnull Included code, originally done by bwk for plan 9, to handle
93 5cedca1b 2004-05-15 devnull multi-byte characters.
95 5cedca1b 2004-05-15 devnull Nov 3, 1993:
97 5cedca1b 2004-05-15 devnull ``pair internal'' two char names by shifting 16 bits. Will allow
98 5cedca1b 2004-05-15 devnull the use of 16 bit characters sets (Unicode in plan9 etc.) for
99 5cedca1b 2004-05-15 devnull macro's etc.
101 5cedca1b 2004-05-15 devnull Oct 20, 1993:
103 5cedca1b 2004-05-15 devnull Word & line buffers are now dynamic: No more word or line overflow
104 5cedca1b 2004-05-15 devnull unless when we run out of memory.
106 5cedca1b 2004-05-15 devnull Oct 11, 1993:
108 5cedca1b 2004-05-15 devnull lost diversion warning pops up regularly with man macro's. Due
109 5cedca1b 2004-05-15 devnull to a possible macro coding problem. Triggered by something like
110 5cedca1b 2004-05-15 devnull troff -man:
115 5cedca1b 2004-05-15 devnull Minimal code:
117 5cedca1b 2004-05-15 devnull throw away this diversion (aa) while being defined.
122 5cedca1b 2004-05-15 devnull Fixed by disallowing .rm to throw away current diversion. The
123 5cedca1b 2004-05-15 devnull rn request will complain with:
125 5cedca1b 2004-05-15 devnull cannot remove diversion aa during definition; etc.
127 5cedca1b 2004-05-15 devnull Sep 29, 1993:
129 5cedca1b 2004-05-15 devnull Some long standing fixes which never went back in the source.
130 5cedca1b 2004-05-15 devnull Thanks to Janet & Rich.
132 5cedca1b 2004-05-15 devnull Sep 28, 1993:
134 5cedca1b 2004-05-15 devnull Changed getach() (n1.c), so it does't consider truncated
135 5cedca1b 2004-05-15 devnull special characters as (8-bit) ascii. STX ETX ENQ ACK and BELL
136 5cedca1b 2004-05-15 devnull are still allowed for the ultimate backwards compatibility.
138 5cedca1b 2004-05-15 devnull Some code changes, so real ANSI compilers like the SGI version
139 5cedca1b 2004-05-15 devnull (acc from Sun is a poor excuse for an ANSI compiler) don't
140 5cedca1b 2004-05-15 devnull barf. Some compromises (static Tchar wbuf in n9.c) allowed so
141 5cedca1b 2004-05-15 devnull the unansified stuff for non-ansi compilers (cc on Sun's) will
142 5cedca1b 2004-05-15 devnull work as well.
144 5cedca1b 2004-05-15 devnull Sep 9, 1993:
146 5cedca1b 2004-05-15 devnull Be nice to Gerard. Now also word spaces in .tl and after
147 5cedca1b 2004-05-15 devnull tabs/fleids etc.
149 5cedca1b 2004-05-15 devnull Aug 12, 1993:
151 5cedca1b 2004-05-15 devnull Tabs setting can now be humongous. We also allow 99 tabs to
152 5cedca1b 2004-05-15 devnull accomodate tbl. As a side effect, NTM buffers are now 1K
154 5cedca1b 2004-05-15 devnull Aug 11, 1993:
156 5cedca1b 2004-05-15 devnull .R register, now contains maximum number of addessable
157 5cedca1b 2004-05-15 devnull registers minus the number actually used.
159 5cedca1b 2004-05-15 devnull Small esthetic changes in error messages; removed a statement
160 5cedca1b 2004-05-15 devnull which wasn't reached anyway.
162 5cedca1b 2004-05-15 devnull Aug 10, 1993:
164 5cedca1b 2004-05-15 devnull Some more speed hacks: be smarter doing the linear table
165 5cedca1b 2004-05-15 devnull lookups in alloc() and finds().
167 5cedca1b 2004-05-15 devnull The real name of the det diversion size macro is now gd.
169 5cedca1b 2004-05-15 devnull Aug 9, 1993:
171 5cedca1b 2004-05-15 devnull A much faster way to find the end of a string/macro, by
172 5cedca1b 2004-05-15 devnull remembering that when defined.
174 5cedca1b 2004-05-15 devnull Aug 6, 1993:
176 5cedca1b 2004-05-15 devnull Slightly more eficient way of skipping to the end of a
177 5cedca1b 2004-05-15 devnull string/macro
179 5cedca1b 2004-05-15 devnull Aug 5, 1993:
181 5cedca1b 2004-05-15 devnull Prevent character sign extension for 8-bit charnames diversions
182 5cedca1b 2004-05-15 devnull etc. by unpair
184 5cedca1b 2004-05-15 devnull Aug 4, 1993:
186 5cedca1b 2004-05-15 devnull Growing the dynamical macro/strings name space and registers
187 5cedca1b 2004-05-15 devnull space (See the experiment of 21 July) now with bigger
188 5cedca1b 2004-05-15 devnull increments. Casts added to satisfy non-ANSI compilers.
190 5cedca1b 2004-05-15 devnull Aug 3, 1993:
192 5cedca1b 2004-05-15 devnull Should check return value in alloc (n3.c), to prevent core dump
193 5cedca1b 2004-05-15 devnull when memory gets tight.
195 5cedca1b 2004-05-15 devnull July 28, 1993:
197 5cedca1b 2004-05-15 devnull New request: .sg <div> sets the dn and dl registers to the size
198 5cedca1b 2004-05-15 devnull of the diversion named in the argument. Doesn't do anything
199 5cedca1b 2004-05-15 devnull when the named diversion doesn't exist. The name sg is
200 5cedca1b 2004-05-15 devnull temporary until we find a better one.
202 5cedca1b 2004-05-15 devnull July 21, 1993:
204 5cedca1b 2004-05-15 devnull Experiment: Macro space & registers name allocated
205 5cedca1b 2004-05-15 devnull dynamically. Note that current reallocation occurs in
206 5cedca1b 2004-05-15 devnull increments of 1, to force the code to be executed a lot; a kind
207 5cedca1b 2004-05-15 devnull of stress testing. Also, eight bit characters allowed in
208 5cedca1b 2004-05-15 devnull macro/string names.
210 5cedca1b 2004-05-15 devnull July 21, 1993:
212 5cedca1b 2004-05-15 devnull Turn on the escape mode if the end macro is called.
214 5cedca1b 2004-05-15 devnull July 20, 1993:
216 5cedca1b 2004-05-15 devnull Tracing mode now default off
218 5cedca1b 2004-05-15 devnull Don't print s stackdump either when a file specfied on the
219 5cedca1b 2004-05-15 devnull command line argument cannot be opened
221 5cedca1b 2004-05-15 devnull July 15, 1993:
223 5cedca1b 2004-05-15 devnull Don't print useless line & current file informations when a
224 5cedca1b 2004-05-15 devnull file specfied on the command line argument cannot be opened.
226 5cedca1b 2004-05-15 devnull Sun ansi compiler doesn't default adhere to standards. Undid
227 5cedca1b 2004-05-15 devnull the kludge in tdef.h
229 5cedca1b 2004-05-15 devnull July 14, 1993:
231 5cedca1b 2004-05-15 devnull Coding error made the tab type R not function properly
233 5cedca1b 2004-05-15 devnull July 12, 1993:
235 5cedca1b 2004-05-15 devnull Fixed a typo in the version stuff, noticed by Rich
237 5cedca1b 2004-05-15 devnull July 9, 1993:
239 5cedca1b 2004-05-15 devnull Added the dwb home configuration stuff, thanks RIch. Also,
240 5cedca1b 2004-05-15 devnull NCHARS is big enough. Added a fflush to casetm, so .fm <file>
241 5cedca1b 2004-05-15 devnull will be up to date.
243 5cedca1b 2004-05-15 devnull June 25, 1993 (Rich):
245 5cedca1b 2004-05-15 devnull -t option
247 5cedca1b 2004-05-15 devnull reinstated for the sake of compatibility. Some old
248 5cedca1b 2004-05-15 devnull shells scripts and man(1) from SunOs want this, sigh
250 5cedca1b 2004-05-15 devnull Compiler and system dependencies
252 5cedca1b 2004-05-15 devnull Some systems pull in sys/types.h via #include <time.h> and then
253 5cedca1b 2004-05-15 devnull the compiler complains about two ushort typedefs. Therefore,
254 5cedca1b 2004-05-15 devnull ushort is now Ushort (and uchar Uchar).
256 5cedca1b 2004-05-15 devnull The SVID specifies a strdup, POSIX doesn't, anyway, troff
257 5cedca1b 2004-05-15 devnull provides its own version, slightly different then the standard
258 5cedca1b 2004-05-15 devnull one. A To prevent name clashes with that definion, renamed to
259 5cedca1b 2004-05-15 devnull strdupl.
261 5cedca1b 2004-05-15 devnull June 24, 1993 (Rich):
263 5cedca1b 2004-05-15 devnull -V option added for DWB3.4 (rich)
265 5cedca1b 2004-05-15 devnull May 18, 1993:
267 5cedca1b 2004-05-15 devnull Trivial fix (.cf) request for troff -a
271 5cedca1b 2004-05-15 devnull .cf /dev/null
273 5cedca1b 2004-05-15 devnull with troff -a gives some spurious output:
280 5cedca1b 2004-05-15 devnull fixed by checking for ascii mode it ptesc(), ptps() and
281 5cedca1b 2004-05-15 devnull ptfont() in t10.c
284 5cedca1b 2004-05-15 devnull Enhancement
286 5cedca1b 2004-05-15 devnull Added a .tm request to roff. Works just like .tm, but now
287 5cedca1b 2004-05-15 devnull it will do it to file. The name is coined by Carmela. Great
288 5cedca1b 2004-05-15 devnull for creating indeces & toc's (we hope).
290 5cedca1b 2004-05-15 devnull May 18 1993:
292 5cedca1b 2004-05-15 devnull Compatibilty change
294 5cedca1b 2004-05-15 devnull Somebody complained that his favorite macro didn't work:
295 5cedca1b 2004-05-15 devnull it had a BELL (^G) in the name. This was a non-documented
296 5cedca1b 2004-05-15 devnull feature of earlier versions of troff (although the
297 5cedca1b 2004-05-15 devnull documentation actually doesn't say that you can. (They can
298 5cedca1b 2004-05-15 devnull only be used for delimiters or with the tr request), so it
299 5cedca1b 2004-05-15 devnull isn't that important).
301 5cedca1b 2004-05-15 devnull But the sake of eternal backward compatibilaty I allowed
302 5cedca1b 2004-05-15 devnull some control characters like, STX, ACK, etc. also be part
303 5cedca1b 2004-05-15 devnull of a macro/string name.
305 5cedca1b 2004-05-15 devnull While at it, I made it also possible to have eight bit
306 5cedca1b 2004-05-15 devnull characters be part of the name. It might be that this screws
307 5cedca1b 2004-05-15 devnull up the way users think about these things. For UNICODE
308 5cedca1b 2004-05-15 devnull versions, they probably want to do that as well, and that
309 5cedca1b 2004-05-15 devnull won't work as easy, (because these characters are 16-bits
310 5cedca1b 2004-05-15 devnull wide), so it is dubious whether we actually want this.
312 5cedca1b 2004-05-15 devnull BTW. Now
314 5cedca1b 2004-05-15 devnull .de \(ts\ts
315 5cedca1b 2004-05-15 devnull .tm terminal sigma macro
317 5cedca1b 2004-05-15 devnull .\(ts\(ts
319 5cedca1b 2004-05-15 devnull also works, as long the internal cookie for ts isn't more then
320 5cedca1b 2004-05-15 devnull eight bits.
322 5cedca1b 2004-05-15 devnull May 12, 1993:
324 5cedca1b 2004-05-15 devnull Syntax change
326 5cedca1b 2004-05-15 devnull Some requests accept tabs as a separator, some don't and
327 5cedca1b 2004-05-15 devnull this can be a nuisance. Now a tab is also recognized as
328 5cedca1b 2004-05-15 devnull an argument separator for requests, this makes
330 5cedca1b 2004-05-15 devnull .so /dev/null
334 5cedca1b 2004-05-15 devnull To be more precise, any motion character is allowed, so
336 5cedca1b 2004-05-15 devnull .so\h'5i'/dev/null
338 5cedca1b 2004-05-15 devnull will work as well, if one really wants that.
340 5cedca1b 2004-05-15 devnull It will be a problem for users who really relied on this as in
342 5cedca1b 2004-05-15 devnull .ds x string
344 5cedca1b 2004-05-15 devnull and expect the tab to become part of the string a, but I haven't
345 5cedca1b 2004-05-15 devnull seen any use of that (obscure trick).
347 5cedca1b 2004-05-15 devnull May 6, 1993:
349 5cedca1b 2004-05-15 devnull Eileen count fixed
351 5cedca1b 2004-05-15 devnull Troff sometimes went in a loop, and exited with: ``job
352 5cedca1b 2004-05-15 devnull looping; check abuse of macros'' (also known as the Eileen's
353 5cedca1b 2004-05-15 devnull loop). It can be forced with the next trivial programme:
358 5cedca1b 2004-05-15 devnull .wh -1 ff
361 5cedca1b 2004-05-15 devnull Basically what happens is that a page transition now will
362 5cedca1b 2004-05-15 devnull happen in a diversion, which doesn't make sense. Wat really
363 5cedca1b 2004-05-15 devnull happens is that eject() (in n7.c) doesn't eject the frame
364 5cedca1b 2004-05-15 devnull because we are in a diversion. This cause the loop in n1.c
365 5cedca1b 2004-05-15 devnull (because now always stack->pname <= ejl). Adding check on
366 5cedca1b 2004-05-15 devnull whether we are not in a diversion takes care of the problem.
368 5cedca1b 2004-05-15 devnull March 30, 1993:
370 5cedca1b 2004-05-15 devnull Need request, .ne
372 5cedca1b 2004-05-15 devnull When there is a begin of page trap set, and the first thing
373 5cedca1b 2004-05-15 devnull in the file is a .ne request, the trap gets fired, but,
374 5cedca1b 2004-05-15 devnull the x font R etc. cookies doen't come out, because the
375 5cedca1b 2004-05-15 devnull troff thinks that the first page pseudo transition already
376 5cedca1b 2004-05-15 devnull took place. Fixed by forcing the start of the first page
377 5cedca1b 2004-05-15 devnull in the casene request with the same code as in casetl (which
378 5cedca1b 2004-05-15 devnull caused a similar problem quite some time ago).
380 5cedca1b 2004-05-15 devnull Change to .cf request ``Here document''
382 5cedca1b 2004-05-15 devnull If the argument of .cf starts with a <<, the rest of it is taken
383 5cedca1b 2004-05-15 devnull as an EOF token. It will reat the rest of the input until it hits
384 5cedca1b 2004-05-15 devnull the EOF token and copies it to the output. This is similar as
385 5cedca1b 2004-05-15 devnull the shell's ``here document'' mechanisme and put in place to
386 5cedca1b 2004-05-15 devnull improve the kludgy way picasso, picpack etc. now include
387 5cedca1b 2004-05-15 devnull postscript.
389 5cedca1b 2004-05-15 devnull Using troff -TLatin1 (DWB version) and \N'...' caused core dump
391 5cedca1b 2004-05-15 devnull In t11, in chadd, it should test on NCHARS - ALPHABET to see
392 5cedca1b 2004-05-15 devnull whether we run out of table space (and we probably should beaf
393 5cedca1b 2004-05-15 devnull up NCHARS for the DWB version).
395 5cedca1b 2004-05-15 devnull March 16, 1993:
397 5cedca1b 2004-05-15 devnull Diversion rename bug fix
399 5cedca1b 2004-05-15 devnull It is possible to get troff in an infinite loop by renaming a
400 5cedca1b 2004-05-15 devnull diversion in progress, and calling it later with the
401 5cedca1b 2004-05-15 devnull new name (as in .di xx, .rn xx yy, .yy). The effect depends on
402 5cedca1b 2004-05-15 devnull whether troff already put stuff in the diversion or not.
404 5cedca1b 2004-05-15 devnull Fix by having .rn also rename the current diversion (if
405 5cedca1b 2004-05-15 devnull there is any and when appropriate). If the diversion calls
406 5cedca1b 2004-05-15 devnull itself by the new name and given the fix made on 11 nov
407 5cedca1b 2004-05-15 devnull 1992, this will now result in an error. (BTW, the fix from
408 5cedca1b 2004-05-15 devnull 11 nov is improved: diversions nest, so we have to account
409 5cedca1b 2004-05-15 devnull for that).
411 5cedca1b 2004-05-15 devnull December 18, 1992:
412 5cedca1b 2004-05-15 devnull Some people have complete novels as comments, so we need
413 5cedca1b 2004-05-15 devnull to skip comments while checking the legality of font files.
414 5cedca1b 2004-05-15 devnull thaks Rixh
416 5cedca1b 2004-05-15 devnull December 16, 1992
418 5cedca1b 2004-05-15 devnull Some people rely on the order that -r arguments are given,
419 5cedca1b 2004-05-15 devnull so that troff -rC1 -rC3 ends up setting register C to 3.
420 5cedca1b 2004-05-15 devnull Because cpushback() pushes things in a LIFO order back, we
421 5cedca1b 2004-05-15 devnull have to do the same to get -r args in a FIFO order.
423 5cedca1b 2004-05-15 devnull Nov 17, 1992:
425 5cedca1b 2004-05-15 devnull Giving a -rL8 option cuased the string .nr L 8 to be printed
426 5cedca1b 2004-05-15 devnull on the output, using the wonderful 3b2. Some garbage was
427 5cedca1b 2004-05-15 devnull left in buf[100] in main(). Fixed by setting buf[0] explicitly
428 5cedca1b 2004-05-15 devnull to 0 (because some C-compilers complain about ``no automatic
429 5cedca1b 2004-05-15 devnull aggregate initialization'').
431 5cedca1b 2004-05-15 devnull Nov 11, 1992:
433 5cedca1b 2004-05-15 devnull Diversion bug fix
435 5cedca1b 2004-05-15 devnull If a diversion was being read and the input is faulty so
436 5cedca1b 2004-05-15 devnull the diversion was reading in itself, it caused troff to
437 5cedca1b 2004-05-15 devnull loop undefinitely. This was easily fixed by a test in
438 5cedca1b 2004-05-15 devnull control(a,b) in n1.c.
440 5cedca1b 2004-05-15 devnull Something similar things might happen with macros causing
441 5cedca1b 2004-05-15 devnull the ``eileenct problem'', but I didn't look for that. We
442 5cedca1b 2004-05-15 devnull have to wait until it happens.
444 5cedca1b 2004-05-15 devnull Oct 26, 1992:
446 5cedca1b 2004-05-15 devnull Numeric arguments:
448 5cedca1b 2004-05-15 devnull Illegal argments are treated as missing arguments. This
449 5cedca1b 2004-05-15 devnull changed the semantics of .ll, .ls, .in, .lg, .ul, .cu .lt
450 5cedca1b 2004-05-15 devnull (which acted as if the argument was 0) and .ps which was
451 5cedca1b 2004-05-15 devnull simply ignored with an illegal argument.
453 5cedca1b 2004-05-15 devnull Tidied up number parsing in atoi1(). This prevents arguments
454 5cedca1b 2004-05-15 devnull like .x or 1.2.3.4 being interpret as a legal number (nonumb = 0)
456 5cedca1b 2004-05-15 devnull Numeric arguments error reporting:
458 5cedca1b 2004-05-15 devnull Controlled by .pt, illegal numbers are now reported (default
459 5cedca1b 2004-05-15 devnull trace mode is 1). This is also true for the escapes:
460 5cedca1b 2004-05-15 devnull \h'..', \v'..' \H'..', \S'..', \N'..', \D'..', \l'.., \L'..
461 5cedca1b 2004-05-15 devnull and \x'..'.
463 5cedca1b 2004-05-15 devnull \D'c' is the only drawing request which doesn't take a pair
464 5cedca1b 2004-05-15 devnull of numbers as arguments, so a special case is put here in
465 5cedca1b 2004-05-15 devnull setdraw() (This code actually could use an overhaul to get
466 5cedca1b 2004-05-15 devnull better parsing. As long as the \D'..' cookies are machine
467 5cedca1b 2004-05-15 devnull generated it is low on the priority list).
469 5cedca1b 2004-05-15 devnull Don't generate an error if the illegal argument to a request
470 5cedca1b 2004-05-15 devnull is a \}. It is too painful to do right (although it can be
471 5cedca1b 2004-05-15 devnull done, but it would clutter getch() and getcho() even more).
473 5cedca1b 2004-05-15 devnull Input line numbers (.c register) bug fixes:
475 5cedca1b 2004-05-15 devnull In not taken branches of .if or .ie, the input line #
476 5cedca1b 2004-05-15 devnull (numtab[CD].val) should be raised when necessary (in eatblk()).
478 5cedca1b 2004-05-15 devnull For concealed newlines, we still should count the line for input.
480 5cedca1b 2004-05-15 devnull Setfield (n9.c) sometimes pushes the rest of the line back to
481 5cedca1b 2004-05-15 devnull the input (including \n), without adjusting numtab[CD].val
483 5cedca1b 2004-05-15 devnull Because .c (and so numtab[CD].val) is the number of lines read
484 5cedca1b 2004-05-15 devnull and the error might actually happen in the current line
485 5cedca1b 2004-05-15 devnull (before seeing the '\n), we need to apply correction in
486 5cedca1b 2004-05-15 devnull errprint when nlflg set. (This correction needs to be undone
487 5cedca1b 2004-05-15 devnull when inside a macro because the nlflg is set by reading the
488 5cedca1b 2004-05-15 devnull args to the macro).
490 5cedca1b 2004-05-15 devnull Line number setting (.lf) request bug fixes:
492 5cedca1b 2004-05-15 devnull I interpret that the .c register will contain the number of
493 5cedca1b 2004-05-15 devnull read lines, not including the current one.
495 5cedca1b 2004-05-15 devnull Also, don't change the input line number when the first
496 5cedca1b 2004-05-15 devnull argument of .lf is not a number.
498 5cedca1b 2004-05-15 devnull As a net effect, the next input
504 5cedca1b 2004-05-15 devnull will generate the same output whether eqn has been used or not.
506 5cedca1b 2004-05-15 devnull If request bug fix:
508 5cedca1b 2004-05-15 devnull A ``.if page .tm foo'' caused the next line being ignored;
509 5cedca1b 2004-05-15 devnull This bcause when the 2nd delimiter of a string couldn't be
510 5cedca1b 2004-05-15 devnull found in cmpstr, the next line was always eaten. Solution:
511 5cedca1b 2004-05-15 devnull in caseif1, if the condition is false, we should check
512 5cedca1b 2004-05-15 devnull nlflg before eating a block. (Note: We might have eaten
513 5cedca1b 2004-05-15 devnull \{\ as well. We could disallow the \{\ in a string to be
514 5cedca1b 2004-05-15 devnull compared to prevent that but that might break other things).
516 5cedca1b 2004-05-15 devnull Enhancement to .pt:
518 5cedca1b 2004-05-15 devnull The .pt now pops the previous values when no argument is
519 5cedca1b 2004-05-15 devnull specified. Turned out to be handy when chasing for problems.
520 5cedca1b 2004-05-15 devnull Just ``bracked'' the code with .pt 7 and .pt and you get
521 5cedca1b 2004-05-15 devnull a trace of only that block. The meaning of the arguments
523 5cedca1b 2004-05-15 devnull 01 trace numeric arguments (default on)
524 5cedca1b 2004-05-15 devnull 02 trace requests
525 5cedca1b 2004-05-15 devnull 04 trace macros
527 5cedca1b 2004-05-15 devnull Abort request (.ab) beautification:
529 5cedca1b 2004-05-15 devnull Don't print the extra carriage return when .ab is called
530 5cedca1b 2004-05-15 devnull without an argument.
532 5cedca1b 2004-05-15 devnull Oct 12, 1992:
534 5cedca1b 2004-05-15 devnull (Comments & spelling errors from this day on by jaap)
536 5cedca1b 2004-05-15 devnull replaced 32767 by INT_MAX in several places to allow for very
537 5cedca1b 2004-05-15 devnull long pages (on 32-but machines).
539 5cedca1b 2004-05-15 devnull The ``.fp 1 R \"COMMENT'' complains about ``./troff: Can't
540 5cedca1b 2004-05-15 devnull open font file /usr/lib/font/devpost/h'' on some systems. It
541 5cedca1b 2004-05-15 devnull sees the tab as part of the optional font file. Apparently it
542 5cedca1b 2004-05-15 devnull is system dependent whether isgraph() includes the tab
543 5cedca1b 2004-05-15 devnull character. Fixed by using getach() in getname() in n1.c
544 5cedca1b 2004-05-15 devnull instead.
546 5cedca1b 2004-05-15 devnull Aug 28, 1992:
547 5cedca1b 2004-05-15 devnull removed call to popi from rdtty(); it was eating up the
548 5cedca1b 2004-05-15 devnull rest of the macro if it was used from within one. (thanks, jaap)
551 5cedca1b 2004-05-15 devnull Jul 21, 1992:
552 5cedca1b 2004-05-15 devnull added extra test in nextfile() to pop current input file
553 5cedca1b 2004-05-15 devnull only if not in .nx command. thanks to jaap.
555 5cedca1b 2004-05-15 devnull added test in getword() to avoid hyphenating after \z character,
556 5cedca1b 2004-05-15 devnull which prevents any hyphenation inside \X'...'. thanks to jaap.
558 5cedca1b 2004-05-15 devnull added, then removed, code in getword() to prevent hyphenating
559 5cedca1b 2004-05-15 devnull anything shorter than 6 characters. looks like it changed a
560 5cedca1b 2004-05-15 devnull lot more than i thought.
562 5cedca1b 2004-05-15 devnull Jul 12, 1992:
563 5cedca1b 2004-05-15 devnull added .pt request to trace macros and requests (from jaap).
564 5cedca1b 2004-05-15 devnull .pt N Print trace of macros (N=1), requests (N=2) or both (N=3)
566 5cedca1b 2004-05-15 devnull Jun 5, 1992:
567 5cedca1b 2004-05-15 devnull added tests to t.twrest and t.twinit to avoid 0 deref in
568 5cedca1b 2004-05-15 devnull n2 and n10, for nroff -t xxxxx. thanks to Rich Drechsler.
570 5cedca1b 2004-05-15 devnull May 22, 1992:
571 5cedca1b 2004-05-15 devnull added extern decls to e.g., void Tchar (*hmot)(void) in tdef.h
572 5cedca1b 2004-05-15 devnull and added definition to ni.c, so pointers are defined explicitly.
573 5cedca1b 2004-05-15 devnull makes it work on turbo c++ and probably others.
575 5cedca1b 2004-05-15 devnull changed a couple of isdigit's and isgraph(getch()) to avoid
576 5cedca1b 2004-05-15 devnull multiple evaluation (even though it shouldn't happen).
578 5cedca1b 2004-05-15 devnull Made /usr/bin/nroff a shell script.
580 5cedca1b 2004-05-15 devnull May 12, 1992:
581 5cedca1b 2004-05-15 devnull n1.c: need p++ after strrchr to skip / in program name.
582 5cedca1b 2004-05-15 devnull thanks to Rich Drechsler.
584 5cedca1b 2004-05-15 devnull Apr 17, 1992:
585 5cedca1b 2004-05-15 devnull casefi(), n5.c: .u register should be 0 or 1, not incremented
586 5cedca1b 2004-05-15 devnull with each .fi.
588 5cedca1b 2004-05-15 devnull Apr 5, 1992:
589 5cedca1b 2004-05-15 devnull fiddled n7.c and added _nmwid to the environment, to add a
590 5cedca1b 2004-05-15 devnull 5th argument to .nm: the maximum number of digits in any
591 5cedca1b 2004-05-15 devnull line number. default is 3, which was previously hardwired in.
593 5cedca1b 2004-05-15 devnull added jaap's code for yet another register which actually delivers
594 5cedca1b 2004-05-15 devnull a string, called .S (so it can easily go in the switch in setn()
595 5cedca1b 2004-05-15 devnull in n4.c); it delivers the current tabstop and alignment modes in
596 5cedca1b 2004-05-15 devnull a format suitable for a subsequent .ta \n(.S command:
597 5cedca1b 2004-05-15 devnull .ds T \n(.S
601 5cedca1b 2004-05-15 devnull Mar 30, 1992:
602 5cedca1b 2004-05-15 devnull added test in getword to avoid hyphenating things with motions
603 5cedca1b 2004-05-15 devnull (and avoid a core dump sometimes too).
605 5cedca1b 2004-05-15 devnull Mar 13, 1992:
606 5cedca1b 2004-05-15 devnull \n(sb initialized wrong in setwd().
608 5cedca1b 2004-05-15 devnull TYPESETTER=foo troff -Tpost used foo instead of post.
610 5cedca1b 2004-05-15 devnull Mar 12, 1992:
611 5cedca1b 2004-05-15 devnull rearranged tests in popf so that .so is closed properly before
612 5cedca1b 2004-05-15 devnull moving on to the next macro package.
614 5cedca1b 2004-05-15 devnull Mar 1, 1992:
615 5cedca1b 2004-05-15 devnull input mechanism rearranged to use getc() instead of stack of
616 5cedca1b 2004-05-15 devnull explicit input buffers. 5-10% slowdown.
618 5cedca1b 2004-05-15 devnull Jan 28, 1992:
619 5cedca1b 2004-05-15 devnull fixed .tm \(mi to print something sensible. thanks to jaap.
621 5cedca1b 2004-05-15 devnull Jan 2, 1992:
622 5cedca1b 2004-05-15 devnull fiddle setfp so doesn't put out font stuff if -a turned on.
624 5cedca1b 2004-05-15 devnull Dec 17, 1991:
625 5cedca1b 2004-05-15 devnull copy 3rd argument in .fp commands to x font ... lines when it contains
626 5cedca1b 2004-05-15 devnull a /, for testing fonts locally.
628 5cedca1b 2004-05-15 devnull Dec 13, 1991:
629 5cedca1b 2004-05-15 devnull parameterize the font directories, etc., so can be set in makefiles.
630 5cedca1b 2004-05-15 devnull added -N argument to run as nroff.
632 5cedca1b 2004-05-15 devnull Nov 8, 1991:
633 5cedca1b 2004-05-15 devnull add a maplow(towlower...) in n8.c to handle brain-damaged libraries.
635 5cedca1b 2004-05-15 devnull Nov 2, 1991:
636 5cedca1b 2004-05-15 devnull merged nroff into troff, based on Ken's plan 9 version.
637 5cedca1b 2004-05-15 devnull merged nii.c into ni.c, removed tw.h, etc. more work needed
638 5cedca1b 2004-05-15 devnull to make this stuff cleaner.
640 5cedca1b 2004-05-15 devnull July 27, 1991:
641 5cedca1b 2004-05-15 devnull added test in setn in n4 to fix bug that permitted things like
642 5cedca1b 2004-05-15 devnull \n (ab to work "properly". thanks to jaap for finding and fixing.
644 5cedca1b 2004-05-15 devnull added paranoid testing in t11 to make sure font files look ok.
646 5cedca1b 2004-05-15 devnull May 13, 1991:
647 5cedca1b 2004-05-15 devnull moved evaluation of \(xx from copy mode to non-copy mode, so that
648 5cedca1b 2004-05-15 devnull weird character names wouldn't get reevaluated in argument parsing.
649 5cedca1b 2004-05-15 devnull installed july 27.
651 5cedca1b 2004-05-15 devnull May 6, 1991:
652 5cedca1b 2004-05-15 devnull increased size of hyphenation exception buffer to 512 from 128
654 5cedca1b 2004-05-15 devnull Apr 14, 1991:
655 5cedca1b 2004-05-15 devnull added an extra redundant call of ptfont in setfp, since it appears
656 5cedca1b 2004-05-15 devnull that some versions of adobe transcript assume that an "x font" command
657 5cedca1b 2004-05-15 devnull means to change the actual font as well. the fix preserves the current font.
658 5cedca1b 2004-05-15 devnull thanks to david brailsford and friends for spotting the problem.
660 5cedca1b 2004-05-15 devnull fixed up tests in alpha() in n8 to defend isalpha() against too-big inputs.
661 5cedca1b 2004-05-15 devnull punct() argument had wrong type too. thanks to rich drexler and peter nelson.
663 5cedca1b 2004-05-15 devnull Mar 19, 1991:
664 5cedca1b 2004-05-15 devnull fixed bug that prevented .rd from working with new corebuf organization.
666 5cedca1b 2004-05-15 devnull fixed bug that caused .ig inside diversions to give bad storage
667 5cedca1b 2004-05-15 devnull allocation. thanks to arthur david olson, whose fix was on netnews
668 5cedca1b 2004-05-15 devnull 3 years earlier.
670 5cedca1b 2004-05-15 devnull Mar 5, 1991:
671 5cedca1b 2004-05-15 devnull huge table sizes for kanji.
673 5cedca1b 2004-05-15 devnull Feb ??, 1991:
674 5cedca1b 2004-05-15 devnull working on dealing with large alphabets, notably kanji.
675 5cedca1b 2004-05-15 devnull added "defaultwidth" to font descriptions, for characters
676 5cedca1b 2004-05-15 devnull not given an explicit width.
678 5cedca1b 2004-05-15 devnull Jan, 1991:
679 5cedca1b 2004-05-15 devnull added tex hyphenation, using standard tex data files, but not the
680 5cedca1b 2004-05-15 devnull elaborate compressed trie, which is a lot of trouble to save maybe
681 5cedca1b 2004-05-15 devnull 40k bytes. this appears to run at exactly the same speed as before.
683 5cedca1b 2004-05-15 devnull so far this stuff reads into a fixed size array; that should change.
684 5cedca1b 2004-05-15 devnull it should also be possible to deal with multiple languages.
686 5cedca1b 2004-05-15 devnull the command .ha sets the algorithm. .ha 1 => tex, with troff rules
687 5cedca1b 2004-05-15 devnull if tex doesn't hyphenate; .ha 0 gives troff rules, and .ha resets
688 5cedca1b 2004-05-15 devnull to the default, which is tex. the hyphenation algorithm is part of
689 5cedca1b 2004-05-15 devnull the environment, a nod to a future in which i handle more than one
690 5cedca1b 2004-05-15 devnull language.
692 5cedca1b 2004-05-15 devnull replaced the fixed size corebuf array for string/macro storage by
693 5cedca1b 2004-05-15 devnull a dynamic structure that can grow.
695 5cedca1b 2004-05-15 devnull this appears to slow things down by maybe 3%. the code is about
696 5cedca1b 2004-05-15 devnull the same complexity.
698 5cedca1b 2004-05-15 devnull Dec 27, 1990:
699 5cedca1b 2004-05-15 devnull converted to ansi c, based on some work by ken thompson, but not
700 5cedca1b 2004-05-15 devnull as thoroughly as he did. there is a shell script unansi and an awk
701 5cedca1b 2004-05-15 devnull program cvt that will help you step back in time if you do not have
702 5cedca1b 2004-05-15 devnull an ansi c compiler.
704 5cedca1b 2004-05-15 devnull moved the special-name characters up to 256 instead of 128, although
705 5cedca1b 2004-05-15 devnull done in terms of ALPHABET, so one can pass 8 bit characters through.
706 5cedca1b 2004-05-15 devnull removed lots of 0177's and similar numbers. input is now not filtered,
707 5cedca1b 2004-05-15 devnull and if a character with the 8th bit on comes in, it will go out again.
709 5cedca1b 2004-05-15 devnull fixed t11.c to read character names in hex or octal as well as
710 5cedca1b 2004-05-15 devnull single-character ascii.
712 5cedca1b 2004-05-15 devnull unknown characters are now carried through with width = spacewidth.
713 5cedca1b 2004-05-15 devnull needs a way to set widths.
715 5cedca1b 2004-05-15 devnull removed all signal handling from troff. you signal, you die.
717 5cedca1b 2004-05-15 devnull added -d option to print version number.
719 5cedca1b 2004-05-15 devnull Dec 7, 1990:
720 5cedca1b 2004-05-15 devnull .fp 3 V VERYLONGNAME used to truncate the name to 10 chars; fixed.
722 5cedca1b 2004-05-15 devnull increased the limit on FBUFSZ for tables with very long fields.
724 5cedca1b 2004-05-15 devnull changed atoi1() to use double to avoid intermediate overflow.
726 5cedca1b 2004-05-15 devnull moved filenames like /usr/lib/font into tdef.h for easy change.
727 5cedca1b 2004-05-15 devnull removed some dreggish definitions.
729 5cedca1b 2004-05-15 devnull cleaned up non-portable error printing stuff; fixed up some messages.
731 5cedca1b 2004-05-15 devnull Dec 12, 1989:
732 5cedca1b 2004-05-15 devnull Removed the .! command, an undocumented synonym for .sy.
734 5cedca1b 2004-05-15 devnull Dec 4, 1989:
735 5cedca1b 2004-05-15 devnull Another wart to the \X code, to try to preserve blanks in all situations.
737 5cedca1b 2004-05-15 devnull Nov 17, 1989:
738 5cedca1b 2004-05-15 devnull A number of small changes preparatory to getting rid of nroff.
739 5cedca1b 2004-05-15 devnull The argument -Tnroff or -Tnroff-12 changes some internal values
740 5cedca1b 2004-05-15 devnull so that the predicate .if n is true and certain arithmetic operations
741 5cedca1b 2004-05-15 devnull are done as if nroff. This design is not yet final.
743 5cedca1b 2004-05-15 devnull Nov 7, 1989:
744 5cedca1b 2004-05-15 devnull Fixed hyphenation for nov-ice, ad-vice, de-vice, ser-vice, *-vice.
746 5cedca1b 2004-05-15 devnull Oct 11, 1989:
747 5cedca1b 2004-05-15 devnull It is now permitted to do an explicit change to font S.
748 5cedca1b 2004-05-15 devnull It is not clear what will break (though nothing seems to have).
750 5cedca1b 2004-05-15 devnull Oct 10, 1989:
751 5cedca1b 2004-05-15 devnull Modified flush code to always put out \nH instead of sometimes h.
752 5cedca1b 2004-05-15 devnull This makes it easier to parse the output for positioning.
754 5cedca1b 2004-05-15 devnull Sep 9, 1989:
755 5cedca1b 2004-05-15 devnull Fixed internal representation of \D'~...' so that it
756 5cedca1b 2004-05-15 devnull is immune to .tr ~ and variations. No external change.
758 5cedca1b 2004-05-15 devnull Aug 9, 1989:
759 5cedca1b 2004-05-15 devnull Changed .tm so it outputs \e, \%, \-, \&, \(blank).
760 5cedca1b 2004-05-15 devnull This might break indexing code.
761 5cedca1b 2004-05-15 devnull Only in the new version, as are all subsequent fixes.
763 5cedca1b 2004-05-15 devnull July, 1989:
764 5cedca1b 2004-05-15 devnull A major internal change: font information is read in ascii
765 5cedca1b 2004-05-15 devnull instead of the weird binary format of makedev (which is now dead).
766 5cedca1b 2004-05-15 devnull character names need not all appear in DESC; new names that
767 5cedca1b 2004-05-15 devnull appear when a font is used become part of the set of known names.
769 5cedca1b 2004-05-15 devnull There are some flaky bits here (it's conceivable that some \N
770 5cedca1b 2004-05-15 devnull number will collide with a real name), and it's probably 10-15%
771 5cedca1b 2004-05-15 devnull slower. Tant pis.
773 5cedca1b 2004-05-15 devnull As a by-product, nroff no longer compiles. I'll probably get
774 5cedca1b 2004-05-15 devnull back to this, but an alternative is to bag it once and for all.
776 5cedca1b 2004-05-15 devnull May 25, 1989:
777 5cedca1b 2004-05-15 devnull Another bug in \l, this time when width is 0. Not installed,
778 5cedca1b 2004-05-15 devnull since it's in the new font version.
780 5cedca1b 2004-05-15 devnull Apr 23, 1989:
781 5cedca1b 2004-05-15 devnull Fixed bug in n9 that caused core dump with unterminated
782 5cedca1b 2004-05-15 devnull \l command, like \l'1.5i
784 5cedca1b 2004-05-15 devnull ptflush no longer called when -a is on.
786 5cedca1b 2004-05-15 devnull Apr 12, 1989:
787 5cedca1b 2004-05-15 devnull fixed bug in n2 that failed to suppress printing of \!
788 5cedca1b 2004-05-15 devnull output when a -o was in effect.
790 5cedca1b 2004-05-15 devnull Apr 5, 1989:
791 5cedca1b 2004-05-15 devnull .fl and \X now cause output of size, font, hpos and vpos.
792 5cedca1b 2004-05-15 devnull this is necesary for postprocessors that intend to insert
793 5cedca1b 2004-05-15 devnull independent material, such as postscript.
795 5cedca1b 2004-05-15 devnull Feb 1, 1989:
796 5cedca1b 2004-05-15 devnull wait for .pi pipe to empty before exiting
798 5cedca1b 2004-05-15 devnull Oct 2, 1988:
799 5cedca1b 2004-05-15 devnull default is now -Tpost
801 5cedca1b 2004-05-15 devnull Sep 19, 1988:
802 5cedca1b 2004-05-15 devnull added abortive code to handle built-up characters by
803 5cedca1b 2004-05-15 devnull passing something through as \D'b...'. never used.
805 5cedca1b 2004-05-15 devnull Jul 4, 1988:
806 5cedca1b 2004-05-15 devnull replaced the sbrk nonsense in n3.c by calls to malloc.
808 5cedca1b 2004-05-15 devnull \N now tests against proper font size.
810 5cedca1b 2004-05-15 devnull installed Jaap Akkerhuis's code (mutatis mutandis) for
811 5cedca1b 2004-05-15 devnull permitting up to 99 fonts, swapping them into font pos 0
812 5cedca1b 2004-05-15 devnull as needed. fixes the long-standing problem of having
813 5cedca1b 2004-05-15 devnull multiple font changes on a single output line.
815 5cedca1b 2004-05-15 devnull Jul 2, 1988:
816 5cedca1b 2004-05-15 devnull \X now preserves spaces even when contents are diverted.
818 5cedca1b 2004-05-15 devnull \N code safer -- NTRTAB and NWIDCACHE enlarged.
820 5cedca1b 2004-05-15 devnull Jul 14, 1987:
821 5cedca1b 2004-05-15 devnull Fixed obscure bug causing incorrect indentation of .mc output.