⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fixes

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻
📖 第 1 页 / 共 2 页
字号:
	Some people have complete novels as comments, so we need	to skip comments while checking the legality of font files.	thaks RixhDecember 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 \*TMar 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 128Apr 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 exitingOct 2, 1988:	default is now -TpostSep 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.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -