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