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

📄 awk.shar

📁 c programming pearls answer
💻 SHAR
📖 第 1 页 / 共 5 页
字号:
-Jun 2, 1999:-	added function stdinit() to run to initialize files[] array,-	in case stdin, etc., are not constants; some compilers care.--May 10, 1999:-	replaced the ERROR ... FATAL, etc., macros with functions-	based on vprintf, to avoid problems caused by overrunning-	fixed-size errbuf array.  thanks to ralph corderoy for the-	impetus, and for pointing out a string termination bug in-	qstring as well.--Apr 21, 1999:-	fixed bug that caused occasional core dumps with commandline-	variable with value ending in \.  (thanks to nelson beebe for-	the test case.)--Apr 16, 1999:-	with code kindly provided by Bruce Lilly, awk now parses -	/=/ and similar constructs more sensibly in more places.-	Bruce also provided some helpful test cases.--Apr 5, 1999:-	changed true/false to True/False in run.c to make it-	easier to compile with C++.  Added some casts on malloc-	and realloc to be honest about casts; ditto.  changed-	ltype int to long in struct rrow to reduce some 64-bit-	complaints; other changes scattered throughout for the-	same purpose.  thanks to Nelson Beebe for these portability-	improvements.--	removed some horrible pointer-int casting in b.c and elsewhere-	by adding ptoi and itonp to localize the casts, which are-	all benign.  fixed one incipient bug that showed up on sgi-	in 64-bit mode.--	reset lineno for new source file; include filename in error-	message.  also fixed line number error in continuation lines.-	(thanks to Nelson Beebe for both of these.)--Mar 24, 1999:-	Nelson Beebe notes that irix 5.3 yacc dies with a bogus-	error; use a newer version or switch to bison, since sgi-	is unlikely to fix it.--Mar 5, 1999:-	changed isnumber to is_number to avoid the problem caused by-	versions of ctype.h that include the name isnumber.--	distribution now includes a script for building on a Mac,-	thanks to Dan Allen.--Feb 20, 1999:-	fixed memory leaks in run.c (call) and tran.c (setfval).-	thanks to Stephen Nutt for finding these and providing the fixes.--Jan 13, 1999:-	replaced srand argument by (unsigned int) in run.c;-	avoids problem on Mac and potentially on Unix & Windows.-	thanks to Dan Allen.--	added a few (int) casts to silence useless compiler warnings.-	e.g., errorflag= in run.c jump().--	added proctab.c to the bundle outout; one less thing-	to have to compile out of the box.--	added calls to _popen and _pclose to the win95 stub for-	pipes (thanks to Steve Adams for this helpful suggestion).-	seems to work, though properties are not well understood-	by me, and it appears that under some circumstances the-	pipe output is truncated.  Be careful.--Oct 19, 1998:-	fixed a couple of bugs in getrec: could fail to update $0-	after a getline var; because inputFS wasn't initialized, -	could split $0 on every character, a misleading diversion.--	fixed caching bug in makedfa: LRU was actually removing-	least often used.--	thanks to ross ridge for finding these, and for providing-	great bug reports.--May 12, 1998:-	fixed potential bug in readrec: might fail to update record-	pointer after growing.  thanks to dan levy for spotting this-	and suggesting the fix.--Mar 12, 1998:-	added -V to print version number and die.--Feb 11, 1998:-	subtle silent bug in lex.c: if the program ended with a number-	longer than 1 digit, part of the input would be pushed back and-	parsed again because token buffer wasn't terminated right.-	example:  awk 'length($0) > 10'.  blush.  at least i found it-	myself.--Aug 31, 1997:-	s/adelete/awkdelete/: SGI uses this in malloc.h.-	thanks to nelson beebe for pointing this one out.--Aug 21, 1997:-	fixed some bugs in sub and gsub when replacement includes \\.-	this is a dark, horrible corner, but at least now i believe that-	the behavior is the same as gawk and the intended posix standard.-	thanks to arnold robbins for advice here.--Aug 9, 1997:-	somewhat regretfully, replaced the ancient lex-based lexical-	analyzer with one written in C.  it's longer, generates less code,-	and more portable; the old one depended too much on mysterious-	properties of lex that were not preserved in other environments.-	in theory these recognize the same language.--	now using strtod to test whether a string is a number, instead of-	the convoluted original function.  should be more portable and-	reliable if strtod is implemented right.--	removed now-pointless optimization in makefile that tries to avoid-	recompilation when awkgram.y is changed but symbols are not.--	removed most fixed-size arrays, though a handful remain, some-	of which are unchecked.  you have been warned.--Aug 4, 1997:-	with some trepidation, replaced the ancient code that managed-	fields and $0 in fixed-size arrays with arrays that grow on-	demand.  there is still some tension between trying to make this-	run fast and making it clean; not sure it's right yet.--	the ill-conceived -mr and -mf arguments are now useful only-	for debugging.  previous dynamic string code removed.--	numerous other minor cleanups along the way.--Jul 30, 1997:-	using code provided by dan levy (to whom profuse thanks), replaced-	fixed-size arrays and awkward kludges by a fairly uniform mechanism-	to grow arrays as needed for printf, sub, gsub, etc.--Jul 23, 1997:-	falling off the end of a function returns "" and 0, not 0.-	thanks to arnold robbins.--Jun 17, 1997:-	replaced several fixed-size arrays by dynamically-created ones-	in run.c; added overflow tests to some previously unchecked cases.-	getline, toupper, tolower.--	getline code is still broken in that recursive calls may wind-	up using the same space.  [fixed later]--	increased RECSIZE to 8192 to push problems further over the horizon.--	added \r to \n as input line separator for programs, not data.-	damn CRLFs.--	modified format() to permit explicit printf("%c", 0) to include-	a null byte in output.  thanks to ken stailey for the fix.--	added a "-safe" argument that disables file output (print >,-	print >>), process creation (cmd|getline, print |, system), and-	access to the environment (ENVIRON).  this is a first approximation-	to a "safe" version of awk, but don't rely on it too much.  thanks-	to joan feigenbaum and matt blaze for the inspiration long ago.--Jul 8, 1996:-	fixed long-standing bug in sub, gsub(/a/, "\\\\&"); thanks to-	ralph corderoy.--Jun 29, 1996:-	fixed awful bug in new field splitting; didn't get all the places-	where input was done.--Jun 28, 1996:-	changed field-splitting to conform to posix definition: fields are-	split using the value of FS at the time of input; it used to be-	the value when the field or NF was first referred to, a much less-	predictable definition.  thanks to arnold robbins for encouragement-	to do the right thing.--May 28, 1996:-	fixed appalling but apparently unimportant bug in parsing octal-	numbers in reg exprs.--	explicit hex in reg exprs now limited to 2 chars: \xa, \xaa.--May 27, 1996:-	cleaned up some declarations so gcc -Wall is now almost silent.--	makefile now includes backup copies of ytab.c and lexyy.c in case-	one makes before looking; it also avoids recreating lexyy.c unless-	really needed.--	s/aprintf/awkprint, s/asprintf/awksprintf/ to avoid some name clashes-	with unwisely-written header files.--	thanks to jeffrey friedl for several of these.--May 26, 1996:-	an attempt to rationalize the (unsigned) char issue.  almost all-	instances of unsigned char have been removed; the handful of places-	in b.c where chars are used as table indices have been hand-crafted.-	added some latin-1 tests to the regression, but i'm not confident;-	none of my compilers seem to care much.  thanks to nelson beebe for-	pointing out some others that do care.--May 2, 1996:-	removed all register declarations.--	enhanced split(), as in gawk, etc:  split(s, a, "") splits s into-	a[1]...a[length(s)] with each character a single element.--	made the same changes for field-splitting if FS is "".--	added nextfile, as in gawk: causes immediate advance to next-	input file. (thanks to arnold robbins for inspiration and code).--	small fixes to regexpr code:  can now handle []], [[], and-	variants;  [] is now a syntax error, rather than matching -	everything;  [z-a] is now empty, not z.  far from complete-	or correct, however.  (thanks to jeffrey friedl for pointing out-	some awful behaviors.)--Apr 29, 1996:-	replaced uchar by uschar everywhere; apparently some compilers-	usurp this name and this causes conflicts.--	fixed call to time in run.c (bltin); arg is time_t *.--	replaced horrible pointer/long punning in b.c by a legitimate-	union.  should be safer on 64-bit machines and cleaner everywhere.-	(thanks to nelson beebe for pointing out some of these problems.)--	replaced nested comments by #if 0...#endif in run.c, lib.c.--	removed getsval, setsval, execute macros from run.c and lib.c.-	machines are 100x faster than they were when these macros were-	first used.--	revised filenames: awk.g.y => awkgram.y, awk.lx.l => awklex.l,-	y.tab.[ch] => ytab.[ch], lex.yy.c => lexyy.c, all in the aid of-	portability to nameless systems.--	"make bundle" now includes yacc and lex output files for recipients-	who don't have yacc or lex.--Aug 15, 1995:-	initialized Cells in setsymtab more carefully; some fields-	were not set.  (thanks to purify, all of whose complaints i-	think i now understand.)--	fixed at least one error in gsub that looked at -1-th element-	of an array when substituting for a null match (e.g., $).--	delete arrayname is now legal; it clears the elements but leaves-	the array, which may not be the right behavior.--	modified makefile: my current make can't cope with the test used-	to avoid unnecessary yacc invocations.--Jul 17, 1995:-	added dynamically growing strings to awk.lx.l and b.c-	to permit regular expressions to be much bigger.-	the state arrays can still overflow.--Aug 24, 1994:-	detect duplicate arguments in function definitions (mdm).--May 11, 1994:-	trivial fix to printf to limit string size in sub().--Apr 22, 1994:-	fixed yet another subtle self-assignment problem:-	$1 = $2; $1 = $1 clobbered $1.--	Regression tests now use private echo, to avoid quoting problems.--Feb 2, 1994:-	changed error() to print line number as %d, not %g.--Jul 23, 1993:-	cosmetic changes: increased sizes of some arrays,-	reworded some error messages.--	added CONVFMT as in posix (just replaced OFMT in getsval)--	FILENAME is now "" until the first thing that causes a file-	to be opened.--Nov 28, 1992:-	deleted yyunput and yyoutput from proto.h;-	different versions of lex give these different declarations.--May 31, 1992:-	added -mr N and -mf N options: more record and fields.-	these really ought to adjust automatically.--	cleaned up some error messages; "out of space" now means-	malloc returned NULL in all cases.--	changed rehash so that if it runs out, it just returns;-	things will continue to run slow, but maybe a bit longer.--Apr 24, 1992:-	remove redundant close of stdin when using -f -.--	got rid of core dump with -d; awk -d just prints date.--Apr 12, 1992:-	added explicit check for /dev/std(in,out,err) in redirection.-	unlike gawk, no /dev/fd/n yet.--	added (file/pipe) builtin.  hard to test satisfactorily.-	not posix.--Feb 20, 1992:-	recompile after abortive changes;  should be unchanged.--Dec 2, 1991:-	die-casting time:  converted to ansi C, installed that.--Nov 30, 1991:-	fixed storage leak in freefa, failing to recover [N]CCL.-	thanks to Bill Jones (jones@cs.usask.ca)--Nov 19, 1991:-	use RAND_MAX instead of literal in builtin().--Nov 12, 1991:-	cranked up some fixed-size arrays in b.c, and added a test for-	overflow in penter.  thanks to mark larsen.--Sep 24, 1991:-	increased buffer in gsub.  a very crude fix to a general problem.-	and again on Sep 26.--Aug 18, 1991:-	enforce variable name syntax for commandline variables: has to-	start with letter or _.--Jul 27, 1991:-	allow newline after ; in for statements.--Jul 21, 1991:-	fixed so that in self-assignment like $1=$1, side effects-	like recomputing $0 take place.  (this is getting subtle.)--Jun 30, 1991:-	better test for detecting too-long output record.--Jun 2, 1991:-	better defense against very long printf strings.-	made break and continue illegal outside of loops.--May 13, 1991:-	removed extra arg on gettemp, tempfree.  minor error message rewording.--May 6, 1991:-	fixed silly bug in hex parsing in hexstr().-	removed an apparently unnecessary test in isnumber().-	warn about weird printf conversions.-	fixed unchecked array overwrite in relex().--	changed for (i in array) to access elements in sorted order.

⌨️ 快捷键说明

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